aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
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/function.c
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/function.c')
-rw-r--r--gcc/function.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 2df1eff..7cff2a0 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -2013,9 +2013,8 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm,
/* If the parm is to be passed as a transparent union, use the type of
the first field for the tests below. We have already verified that
the modes are the same. */
- if (DECL_TRANSPARENT_UNION (parm)
- || (TREE_CODE (passed_type) == UNION_TYPE
- && TYPE_TRANSPARENT_UNION (passed_type)))
+ if (TREE_CODE (passed_type) == UNION_TYPE
+ && TYPE_TRANSPARENT_UNION (passed_type))
passed_type = TREE_TYPE (TYPE_FIELDS (passed_type));
/* See if this arg was passed by invisible reference. */