]> git.draconx.ca Git - cdecl99.git/blobdiff - src/parse.y
libcdecl: Combine tag/typedef identifier rules.
[cdecl99.git] / src / parse.y
index 918cbd033a085870a70fc8f59a8058e468ebfbc5..a993ea6100459e100bd3f367da553b35f7541d0f 100644 (file)
@@ -343,7 +343,7 @@ typespec_simple: T_VOID
        | T_COMPLEX
        | T_IMAGINARY
 
-typespec_tagged: T_STRUCT | T_UNION | T_ENUM
+typespec_tagged: T_STRUCT | T_UNION | T_ENUM | { $$ = CDECL_TYPE_IDENT; }
 
 qualifier_simple: T_CONST
        | T_RESTRICT
@@ -365,17 +365,13 @@ typespec: typespec_noid | typespec_tagged T_IDENT {
        ALLOC_STRUCT($$, struct cdecl_declspec,
                .type  = $1,
                .ident = $2);
-} | T_IDENT {
-       ALLOC_STRUCT($$, struct cdecl_declspec,
-               .type = CDECL_TYPE_IDENT,
-               .ident = $1);
 }
 
 declspec_noid: declspec_notype | typespec_noid
 
 vla_ident: T_IDENT | T_ASTERISK {
        ALLOC($$, sizeof "");
-       strcpy($$, "");
+       *$$ = 0;
 }
 
 array: T_LBRACKET array_length T_RBRACKET {
@@ -572,7 +568,7 @@ array_length: T_UINT {
 
 english_vla: T_IDENT | {
        ALLOC($$, sizeof "");
-       strcpy($$, "");
+       *$$ = 0;
 }
 
 %%