[Bug target/29030] gcc.dg/array-9.c produces internal compiler error on Darwin at -m64
howarth at nitro dot med dot uc dot edu
gcc-bugzilla@gcc.gnu.org
Thu Sep 14 02:18:00 GMT 2006
------- Comment #8 from howarth at nitro dot med dot uc dot edu 2006-09-14 02:18 -------
Andrew,
I just noticed that the same code fragment exists in
rs6000_darwin64_record_arg_recurse
as well as in rs6000_darwin64_record_arg_advance_recurse. Shouldn't we then
make the patch...
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c (revision 116941)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -4607,7 +4607,10 @@ rs6000_darwin64_record_arg_advance_recur
{
HOST_WIDE_INT bitpos = startbitpos;
tree ftype = TREE_TYPE (f);
- enum machine_mode mode = TYPE_MODE (ftype);
+ enum machine_mode mode;
+ if (ftype == error_mark_node)
+ continue;
+ mode = TYPE_MODE (ftype);
if (DECL_SIZE (f) != 0
&& host_integerp (bit_position (f), 1))
@@ -4975,7 +4978,10 @@ rs6000_darwin64_record_arg_recurse (CUMU
{
HOST_WIDE_INT bitpos = startbitpos;
tree ftype = TREE_TYPE (f);
- enum machine_mode mode = TYPE_MODE (ftype);
+ enum machine_mode mode;
+ if (ftype == error_mark_node)
+ continue;
+ mode = TYPE_MODE (ftype);
if (DECL_SIZE (f) != 0
&& host_integerp (bit_position (f), 1))
...for completeness?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29030
More information about the Gcc-bugs
mailing list