parser: Remove the unused attribute alignment from struct declaration_specifiers_t.
[cparser] / preprocessor.c
index d23d0d2..aec9f1c 100644 (file)
@@ -1,3 +1,7 @@
+/*
+ * This file is part of cparser.
+ * Copyright (C) 2012 Matthias Braun <matze@braunis.de>
+ */
 #include <config.h>
 
 #include <assert.h>
@@ -7,7 +11,6 @@
 #include <ctype.h>
 
 #include "preprocessor.h"
-#include "token_t.h"
 #include "symbol_t.h"
 #include "adt/util.h"
 #include "adt/error.h"
@@ -17,6 +20,7 @@
 #include "diagnostic.h"
 #include "string_rep.h"
 #include "input.h"
+#include "symbol_table.h"
 
 #define MAX_PUTBACK 3
 #define INCLUDE_LIMIT 199  /* 199 is for gcc "compatibility" */
@@ -1851,18 +1855,18 @@ static void parse_define_directive(void)
                        = size / sizeof(new_definition->parameters[0]);
                new_definition->parameters = obstack_finish(&pp_obstack);
                for (size_t i = 0; i < new_definition->n_parameters; ++i) {
-                       pp_definition_t *param    = &new_definition->parameters[i];
-                       symbol_t        *symbol   = param->symbol;
-                       pp_definition_t *previous = symbol->pp_definition;
+                       pp_definition_t *const param     = &new_definition->parameters[i];
+                       symbol_t        *const param_sym = param->symbol;
+                       pp_definition_t *const previous  = param_sym->pp_definition;
                        if (previous != NULL
                            && previous->function_definition == new_definition) {
-                               errorf(&param->pos, "duplicate macro parameter '%Y'", symbol);
+                               errorf(&param->pos, "duplicate macro parameter '%Y'", param_sym);
                                param->symbol = sym_anonymous;
                                continue;
                        }
                        param->parent_expansion    = previous;
                        param->function_definition = new_definition;
-                       symbol->pp_definition      = param;
+                       param_sym->pp_definition   = param;
                }
        } else {
                next_input_token();
@@ -1873,8 +1877,7 @@ static void parse_define_directive(void)
        bool next_must_be_param = false;
        while (!info.at_line_begin) {
                if (pp_token.kind == T_IDENTIFIER) {
-                       const symbol_t  *symbol     = pp_token.base.symbol;
-                       pp_definition_t *definition = symbol->pp_definition;
+                       pp_definition_t *const definition = pp_token.base.symbol->pp_definition;
                        if (definition != NULL
                            && definition->function_definition == new_definition) {
                            pp_token.kind                = T_MACRO_PARAMETER;
@@ -1901,14 +1904,14 @@ static void parse_define_directive(void)
 
        if (new_definition->has_parameters) {
                for (size_t i = 0; i < new_definition->n_parameters; ++i) {
-                       pp_definition_t *param      = &new_definition->parameters[i];
-                       symbol_t        *symbol     = param->symbol;
-                       if (symbol == sym_anonymous)
+                       pp_definition_t *const param     = &new_definition->parameters[i];
+                       symbol_t        *const param_sym = param->symbol;
+                       if (param_sym == sym_anonymous)
                                continue;
-                       assert(symbol->pp_definition == param);
+                       assert(param_sym->pp_definition == param);
                        assert(param->function_definition == new_definition);
-                       symbol->pp_definition   = param->parent_expansion;
-                       param->parent_expansion = NULL;
+                       param_sym->pp_definition = param->parent_expansion;
+                       param->parent_expansion  = NULL;
                }
        }