X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ast_t.h;h=2dd76ffa49a85d5806f01e2fbf1e4d7db90cc7b8;hb=b43672c3e931836e6a7e18b0bfb799ac4c419a56;hp=3bc1974e11aaaa31a0744539db318d57b559836f;hpb=766c1d3084850035952ad0ffa6d1148f33af615f;p=cparser diff --git a/ast_t.h b/ast_t.h index 3bc1974..2dd76ff 100644 --- a/ast_t.h +++ b/ast_t.h @@ -76,8 +76,7 @@ typedef enum { EXPR_UNARY_CAST, EXPR_UNARY_CAST_IMPLICIT, /**< compiler generated cast */ EXPR_UNARY_ASSUME, /**< MS __assume() */ - EXPR_UNARY_BITFIELD_EXTRACT, - EXPR_UNARY_LAST = EXPR_UNARY_BITFIELD_EXTRACT, + EXPR_UNARY_LAST = EXPR_UNARY_ASSUME, EXPR_BINARY_FIRST, EXPR_BINARY_ADD = EXPR_BINARY_FIRST, @@ -181,8 +180,7 @@ typedef enum { case EXPR_UNARY_PREFIX_DECREMENT: \ case EXPR_UNARY_CAST: \ case EXPR_UNARY_CAST_IMPLICIT: \ - case EXPR_UNARY_ASSUME: \ - case EXPR_UNARY_BITFIELD_EXTRACT: + case EXPR_UNARY_ASSUME: /** * A scope containing declarations. @@ -196,6 +194,9 @@ struct expression_base_t { expression_kind_t kind; type_t *type; source_position_t source_position; +#ifndef NDEBUG + bool transformed; +#endif }; struct const_expression_t { @@ -251,7 +252,6 @@ struct builtin_prefetch_expression_t { struct reference_expression_t { expression_base_t base; - symbol_t *symbol; declaration_t *declaration; }; @@ -499,6 +499,7 @@ typedef enum gnu_attribute_kind_t { GNU_AK_VISIBILITY, GNU_AK_REGPARM, GNU_AK_MODEL, + GNU_AK_MODE, GNU_AK_TRAP_EXIT, GNU_AK_SP_SWITCH, GNU_AK_SENTINEL, @@ -531,7 +532,7 @@ struct declaration_t { unsigned char declared_storage_class; unsigned char storage_class; unsigned char alignment; /**< Alignment of the declaration, 0 for default. */ - decl_modifiers_t modifiers; /**< MS __declspec modifiers. */ + decl_modifiers_t decl_modifiers; /**< MS __declspec modifiers. */ const char *deprecated_string; /**< MS deprecated string if any. */ symbol_t *get_property_sym; /**< MS get property. */ symbol_t *put_property_sym; /**< MS put property. */ @@ -543,13 +544,13 @@ struct declaration_t { symbol_t *symbol; source_position_t source_position; union { - bool is_defined; + bool complete; /**< used to indicate wether struct/union types are already defined or if just the name is declared */ statement_t *statement; initializer_t *initializer; expression_t *enum_value; } init; scope_t scope; /**< The scope that this declaration opens. */ - scope_t *parent_scope; /**< The parant scope where this declaration lives. */ + scope_t *parent_scope; /**< The parent scope where this declaration lives. */ /** next declaration in a scope */ declaration_t *next; @@ -594,6 +595,9 @@ struct statement_base_t { statement_kind_t kind; statement_t *next; source_position_t source_position; +#ifndef NDEBUG + bool transformed; +#endif }; struct invalid_statement_t {