diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-19 17:32:29 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-19 17:32:29 -0400 |
commit | adb230612706c2ae934ad2b5432078b0d8596655 (patch) | |
tree | 5689db88efbbe7efe5a1173c34f1c5bfa5e619c4 | |
parent | 17c962890433bdadc7228dbe967c97f9e38581c4 (diff) | |
download | gcc-adb230612706c2ae934ad2b5432078b0d8596655.zip gcc-adb230612706c2ae934ad2b5432078b0d8596655.tar.gz gcc-adb230612706c2ae934ad2b5432078b0d8596655.tar.bz2 |
(struct tree_type): New field transparent_union_flag.
(struct tree_decl): New field transparent_union.
({DECL,TYPE}_TRANSPARENT_UNION): New macros.
From-SVN: r7946
-rw-r--r-- | gcc/tree.h | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -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; |