------- 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