]> git.corax.cc Git - ccc/commitdiff
parser: Simplify specifier_qualifier_list type
authorMatthias Kruk <m@m10k.eu>
Sat, 11 Jul 2020 08:58:54 +0000 (17:58 +0900)
committerMatthias Kruk <m@m10k.eu>
Sat, 11 Jul 2020 08:58:54 +0000 (17:58 +0900)
src/grammar.c
src/grammar.h

index e6bf406d10ed8a7b26ca79693f36e214cbe2a215..d092852a99df05647af070ba8a24e2334e8d3f9d 100644 (file)
@@ -1189,23 +1189,12 @@ struct specifier_qualifier_list *specifier_qualifier_list_new(void)
 
 void specifier_qualifier_list_free(struct specifier_qualifier_list *sql)
 {
-       switch(sql->type) {
-       case SQ_LIST_TYPE_SPECIFIER_LIST:
-               if(sql->data.tspec) {
-                       type_specifier_free(sql->data.tspec);
-               }
-
-               break;
-
-       case SQ_LIST_TYPE_QUALIFIER_LIST:
-               if(sql->data.tqual) {
-                       type_qualifier_free(sql->data.tqual);
-               }
-
-               break;
+       if(sql->tspec) {
+               type_specifier_free(sql->tspec);
+       }
 
-       default:
-               break;
+       if(sql->tqual) {
+               type_qualifier_free(sql->tqual);
        }
 
        if(sql->next) {
index a14bf2c0ec603d6caa2918d992b8a7fa8b66b5f8..dbb7723b3cbb39766342aa48e29d7d0ed031c768 100644 (file)
@@ -317,20 +317,9 @@ enum type_specifier_type {
         TYPE_SPECIFIER_TYPEDEF
 };
 
-enum sq_list_type {
-       SQ_LIST_TYPE_INVALID,
-       SQ_LIST_TYPE_SPECIFIER_LIST,
-       SQ_LIST_TYPE_QUALIFIER_LIST
-};
-
 struct specifier_qualifier_list {
-       enum sq_list_type type;
-
-       union {
-               struct type_specifier *tspec;
-               struct type_qualifier *tqual;
-       } data;
-
+       struct type_specifier *tspec;
+       struct type_qualifier *tqual;
        struct specifier_qualifier_list *next;
 };