aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2006-09-16 09:01:16 +0000
committerEric Christopher <echristo@gcc.gnu.org>2006-09-16 09:01:16 +0000
commit70fb00df825a01713f7e907128ed2f900e5ac287 (patch)
treedef99f4399c3f3870a8bf4fd8e214410a64584eb
parent3c40b0525ea4b4fd83041c2b9d0ef78801a3dabe (diff)
downloadgcc-70fb00df825a01713f7e907128ed2f900e5ac287.zip
gcc-70fb00df825a01713f7e907128ed2f900e5ac287.tar.gz
gcc-70fb00df825a01713f7e907128ed2f900e5ac287.tar.bz2
re PR target/29030 (gcc.dg/array-9.c produces internal compiler error on Darwin at -m64)
2006-09-16 Andrew Pinski <pinskia@physics.uc.edu> Jack Howarth <howarth@bromo.med.uc.edu> PR target/29030 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse) skip on error_mark_node. (rs6000_darwin64_record_arg_recurse): Likewise. Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu> From-SVN: r116994
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/rs6000.c10
2 files changed, 16 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ae47784..52549ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
+ Jack Howarth <howarth@bromo.med.uc.edu>
+
+ PR target/29030
+ * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
+ skip on error_mark_node.
+ (rs6000_darwin64_record_arg_recurse): Likewise.
+
2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
* rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 780e905..d8d0db1 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -4607,7 +4607,10 @@ rs6000_darwin64_record_arg_advance_recurse (CUMULATIVE_ARGS *cum,
{
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 (CUMULATIVE_ARGS *cum, tree type,
{
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))