From: Richard Kenner Date: Fri, 19 Aug 1994 21:32:29 +0000 (-0400) Subject: (struct tree_type): New field transparent_union_flag. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=adb230612706c2ae934ad2b5432078b0d8596655;p=gcc.git (struct tree_type): New field transparent_union_flag. (struct tree_decl): New field transparent_union. ({DECL,TYPE}_TRANSPARENT_UNION): New macros. From-SVN: r7946 --- diff --git a/gcc/tree.h b/gcc/tree.h index dbe5ff9cf5c..14ed555876e 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -619,6 +619,10 @@ struct tree_block function when they are created. */ #define TYPE_NEEDS_CONSTRUCTING(NODE) ((NODE)->type.needs_constructing_flag) +/* Indicates that objects of this type (a UNION_TYPE), should be passed + the same way that the first union alternative would be passed. */ +#define TYPE_TRANSPARENT_UNION(NODE) ((NODE)->type.transparent_union_flag) + struct tree_type { char common[sizeof (struct tree_common)]; @@ -637,6 +641,7 @@ struct tree_type unsigned string_flag : 1; unsigned no_force_blk_flag : 1; unsigned needs_constructing_flag : 1; + unsigned transparent_union_flag : 1; unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1; unsigned lang_flag_2 : 1; @@ -644,7 +649,7 @@ struct tree_type unsigned lang_flag_4 : 1; unsigned lang_flag_5 : 1; unsigned lang_flag_6 : 1; - /* room for 6 more bits */ + /* room for 5 more bits */ unsigned int align; union tree_node *pointer_to; @@ -928,6 +933,11 @@ struct tree_type so it should not be output now. */ #define DECL_DEFER_OUTPUT(NODE) ((NODE)->decl.defer_output) +/* Used in PARM_DECLs whose type are unions to indicate that the + argument should be passed in the same way that the first union + alternative would be passed. */ +#define DECL_TRANSPARENT_UNION(NODE) ((NODE)->decl.transparent_union) + /* Additional flags for language-specific uses. */ #define DECL_LANG_FLAG_0(NODE) ((NODE)->decl.lang_flag_0) #define DECL_LANG_FLAG_1(NODE) ((NODE)->decl.lang_flag_1) @@ -963,7 +973,8 @@ struct tree_decl unsigned in_system_header_flag : 1; unsigned common_flag : 1; unsigned defer_output : 1; - /* room for five more */ + unsigned transparent_union : 1; + /* room for four more */ unsigned lang_flag_0 : 1; unsigned lang_flag_1 : 1;