From aa8b5d0754cb919f0a671cc4124343b5fda80079 Mon Sep 17 00:00:00 2001
From: echristo <echristo@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 16 Sep 2006 09:01:16 +0000
Subject: [PATCH] 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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116994 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog              |  8 ++++++++
 gcc/config/rs6000/rs6000.c | 10 ++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ae477841b418..52549ad870e1 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 780e905daac5..d8d0db10b7c6 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))
-- 
GitLab