aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2005-10-12 16:34:09 -0700
committerRichard Henderson <rth@gcc.gnu.org>2005-10-12 16:34:09 -0700
commit52dd234b210c06bea54ef726995e1fce035329be (patch)
treee0ba09b20b9401b57ddfd7bb96ac65cafde86a0b /gcc/tree.h
parent6deb03391308dcffb9bb4a4155cd27d7e60329f9 (diff)
downloadgcc-52dd234b210c06bea54ef726995e1fce035329be.zip
gcc-52dd234b210c06bea54ef726995e1fce035329be.tar.gz
gcc-52dd234b210c06bea54ef726995e1fce035329be.tar.bz2
re PR c/24255 (__transparent_union__ mishandled)
PR c/24255 * tree.h (DECL_TRANSPARENT_UNION): Remove. * function.c (assign_parm_find_data_types): Don't support it. * print-tree.c (print_node): Likewise. * c-common.c (handle_transparent_union_attribute): Likewise. Use build_duplicate_type. * tree-inline.c (remap_type_1): Split out of remap_type; properly remap aggregate fields. (build_duplicate_type): New. * doc/extend.texi (Variable Attributes): Remove documentation for transparent_union. From-SVN: r105338
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h12
1 files changed, 3 insertions, 9 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index 144dbd8..f54f6d3 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2199,12 +2199,11 @@ struct tree_decl_common GTY(())
/* In LABEL_DECL, this is DECL_ERROR_ISSUED.
In VAR_DECL and PARM_DECL, this is DECL_REGISTER. */
unsigned decl_flag_0 : 1;
- /* In FIELD_DECL, this is DECL_PACKED
- In PARM_DECL, this is DECL_TRANSPARENT_UNION. */
+ /* In FIELD_DECL, this is DECL_PACKED. */
unsigned decl_flag_1 : 1;
/* In FIELD_DECL, this is DECL_BIT_FIELD
In VAR_DECL and FUNCTION_DECL, this is DECL_EXTERNAL.
- In TYPE_DECL, this is TYPE_DECL_SUPRESS_DEBUG*/
+ In TYPE_DECL, this is TYPE_DECL_SUPRESS_DEBUG. */
unsigned decl_flag_2 : 1;
/* In FIELD_DECL, this is DECL_NONADDRESSABLE_P
In VAR_DECL and PARM_DECL, this is DECL_HAS_VALUE_EXPR. */
@@ -2386,12 +2385,6 @@ struct tree_const_decl GTY(())
where the data was actually passed. */
#define DECL_INCOMING_RTL(NODE) (PARM_DECL_CHECK (NODE)->parm_decl.incoming_rtl)
-/* 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) \
- (PARM_DECL_CHECK (NODE)->decl_common.decl_flag_1)
-
struct tree_parm_decl GTY(())
{
struct tree_decl_with_rtl common;
@@ -3989,6 +3982,7 @@ extern bool debug_find_tree (tree, tree);
/* This is in tree-inline.c since the routine uses
data structures from the inliner. */
extern tree unsave_expr_now (tree);
+extern tree build_duplicate_type (tree);
/* In emit-rtl.c */
extern rtx emit_line_note (location_t);