X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ast_t.h;h=c5699c9ed4facf807cb529701d412ecd1a12bdf0;hb=f5a32d212adb7b0e23b0bc6bbb3043b230dbc24d;hp=2c32f85de5abdb36015b8b487d3bcbebabb284b7;hpb=309ebf0fcc07a2048721630a93566f24f6b04b70;p=cparser diff --git a/ast_t.h b/ast_t.h index 2c32f85..c5699c9 100644 --- a/ast_t.h +++ b/ast_t.h @@ -83,6 +83,7 @@ typedef enum expression_kind_t { EXPR_FUNCNAME, EXPR_BUILTIN_SYMBOL, EXPR_BUILTIN_CONSTANT_P, + EXPR_BUILTIN_TYPES_COMPATIBLE_P, EXPR_BUILTIN_PREFETCH, EXPR_OFFSETOF, EXPR_VA_START, @@ -280,6 +281,12 @@ struct builtin_constant_expression_t { expression_t *value; }; +struct builtin_types_compatible_expression_t { + expression_base_t base; + type_t *left; + type_t *right; +}; + struct builtin_prefetch_expression_t { expression_base_t base; expression_t *adr; @@ -380,30 +387,31 @@ struct label_address_expression_t { }; union expression_t { - expression_kind_t kind; - expression_base_t base; - const_expression_t conste; - funcname_expression_t funcname; - string_literal_expression_t string; - wide_string_literal_expression_t wide_string; - compound_literal_expression_t compound_literal; - builtin_symbol_expression_t builtin_symbol; - builtin_constant_expression_t builtin_constant; - builtin_prefetch_expression_t builtin_prefetch; - reference_expression_t reference; - call_expression_t call; - unary_expression_t unary; - binary_expression_t binary; - select_expression_t select; - array_access_expression_t array_access; - typeprop_expression_t typeprop; - offsetof_expression_t offsetofe; - va_start_expression_t va_starte; - va_arg_expression_t va_arge; - conditional_expression_t conditional; - statement_expression_t statement; - classify_type_expression_t classify_type; - label_address_expression_t label_address; + expression_kind_t kind; + expression_base_t base; + const_expression_t conste; + funcname_expression_t funcname; + string_literal_expression_t string; + wide_string_literal_expression_t wide_string; + compound_literal_expression_t compound_literal; + builtin_symbol_expression_t builtin_symbol; + builtin_constant_expression_t builtin_constant; + builtin_types_compatible_expression_t builtin_types_compatible; + builtin_prefetch_expression_t builtin_prefetch; + reference_expression_t reference; + call_expression_t call; + unary_expression_t unary; + binary_expression_t binary; + select_expression_t select; + array_access_expression_t array_access; + typeprop_expression_t typeprop; + offsetof_expression_t offsetofe; + va_start_expression_t va_starte; + va_arg_expression_t va_arge; + conditional_expression_t conditional; + statement_expression_t statement; + classify_type_expression_t classify_type; + label_address_expression_t label_address; }; typedef enum initializer_kind_t {