X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fc-tree.h;h=8e8836242708e497dce05454b1a65adb2565548c;hb=4706835117e8da8ad02963fe9de97a1e07851ced;hp=0d94cebd84d15559b67c64c2822c1587c65f3bb9;hpb=0a65c3bb2e7a62f358adba72c51c5793c1fa349e;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 0d94cebd84d..8e883624270 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -98,7 +98,7 @@ along with GCC; see the file COPYING3. If not see (but this is presently difficult because some of them need FILE*). */ #define C_DECL_ISNT_PROTOTYPE(EXP) \ (EXP == 0 \ - || (TYPE_ARG_TYPES (TREE_TYPE (EXP)) == 0 \ + || (!prototype_p (TREE_TYPE (EXP)) \ && !DECL_BUILT_IN (EXP))) /* For FUNCTION_TYPE, a hidden list of types of arguments. The same as @@ -134,6 +134,8 @@ struct c_expr only used to distinguish tag definitions, tag references and typeof uses. */ enum c_typespec_kind { + /* No typespec. This appears only in struct c_declspec. */ + ctsk_none, /* A reserved keyword type specifier. */ ctsk_resword, /* A reference to a tag, previously declared, such as "struct foo". @@ -225,13 +227,14 @@ struct c_declspecs { /* Any type specifier keyword used such as "int", not reflecting modifiers such as "short", or cts_none if none. */ ENUM_BITFIELD (c_typespec_keyword) typespec_word : 8; + /* The kind of type specifier if one has been seen, ctsk_none + otherwise. */ + ENUM_BITFIELD (c_typespec_kind) typespec_kind : 3; /* Whether any expressions in typeof specifiers may appear in constant expressions. */ BOOL_BITFIELD expr_const_operands : 1; /* Whether any declaration specifiers have been seen at all. */ BOOL_BITFIELD declspecs_seen_p : 1; - /* Whether a type specifier has been seen. */ - BOOL_BITFIELD type_seen_p : 1; /* Whether something other than a storage class specifier or attribute has been seen. This is used to warn for the obsolescent usage of storage class specifiers other than at the @@ -241,10 +244,6 @@ struct c_declspecs { BOOL_BITFIELD non_sc_seen_p : 1; /* Whether the type is specified by a typedef or typeof name. */ BOOL_BITFIELD typedef_p : 1; - /* Whether a struct, union or enum type either had its content - defined by a type specifier in the list or was the first visible - declaration of its tag. */ - BOOL_BITFIELD tag_defined_p : 1; /* Whether the type is explicitly "signed" or specified by a typedef whose type is explicitly "signed". */ BOOL_BITFIELD explicit_signed_p : 1; @@ -295,7 +294,7 @@ enum c_declarator_kind { cdk_attrs }; -typedef struct GTY(()) c_arg_tag_d { +typedef struct c_arg_tag_d { /* The argument name. */ tree id; /* The type of the argument. */ @@ -502,7 +501,6 @@ extern void c_initialize_diagnostics (diagnostic_context *); extern bool c_vla_unspec_p (tree x, tree fn); /* in c-typeck.c */ -extern bool in_late_binary_op; extern int in_alignof; extern int in_sizeof; extern int in_typeof;