From: Andrew Pinski Date: Tue, 23 Mar 2004 05:24:56 +0000 (+0000) Subject: [multiple changes] X-Git-Tag: releases/gcc-3.3.4~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b9b0ffbc7a42697238294f8a3cb3f2d71b5135f;p=thirdparty%2Fgcc.git [multiple changes] 2004-03-22 Andrew Pinski BackPort: 2004-01-09 Andrew Pinski PR debug/11231 * dbxout.c (dbxout_type_fields): Return if any item is error_mark_node or the type is error_mark_node. From-SVN: r79850 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 601652fde96e..159226be38ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-03-22 Andrew Pinski + + BackPort: + 2004-01-09 Andrew Pinski + + PR debug/11231 + * dbxout.c (dbxout_type_fields): Return if any item is error_mark_node or the + type is error_mark_node. + 2004-03-22 Eric Botcazou PR middle-end/14470 diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index 8efd8cd26122..09b4aada4256 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -1209,6 +1209,10 @@ machopic_select_rtx_section (mode, x, align) && (GET_CODE (x) == CONST_INT || GET_CODE (x) == CONST_DOUBLE)) literal4_section (); + else if (GET_CODE (x) == SYMBOL_REF + || GET_CODE (x) == CONST + || GET_CODE (x) == LABEL_REF) + const_data_section (); else const_section (); } diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index b3468f2b66b6..579c775b40b0 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -196,16 +196,17 @@ Boston, MA 02111-1307, USA. */ a SYMBOL_REF. */ #undef PREFERRED_RELOAD_CLASS -#define PREFERRED_RELOAD_CLASS(X,CLASS) \ - (((GET_CODE (X) == CONST_DOUBLE \ - && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ - ? NO_REGS \ - : (GET_MODE_CLASS (GET_MODE (X)) == MODE_INT \ - && (CLASS) == NON_SPECIAL_REGS) \ - ? GENERAL_REGS \ - : (GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == HIGH) \ - ? BASE_REGS \ - : (CLASS))) +#define PREFERRED_RELOAD_CLASS(X,CLASS) \ + ((GET_CODE (X) == CONST_DOUBLE \ + && GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT) \ + ? NO_REGS \ + : ((GET_CODE (X) == SYMBOL_REF || GET_CODE (X) == HIGH) \ + && reg_class_subset_p (BASE_REGS, (CLASS))) \ + ? BASE_REGS \ + : (GET_MODE_CLASS (GET_MODE (X)) == MODE_INT \ + && (CLASS) == NON_SPECIAL_REGS) \ + ? GENERAL_REGS \ + : (CLASS)) /* Fix for emit_group_load (): force large constants to be pushed via regs. */ #define ALWAYS_PUSH_CONSTS_USING_REGS_P 1 diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index b97520baecac..f7fefdf93d6d 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -29,7 +29,7 @@ Boston, MA 02111-1307, USA. */ #include "varray.h" #ifndef __GNUC__ -#error "You should be using 'make bootstrap' -- see installation instructions" + #error "You should be using 'make bootstrap' -- see installation instructions" #endif #include "c-common.h" diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 8a8b5616082b..460921418d1d 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -796,6 +796,11 @@ dbxout_type_fields (type) field that we can support. */ for (tem = TYPE_FIELDS (type); tem; tem = TREE_CHAIN (tem)) { + + /* If on of the nodes is an error_mark or its type is then return early. */ + if (tem == error_mark_node || TREE_TYPE (tem) == error_mark_node) + return; + /* Omit here local type decls until we know how to support them. */ if (TREE_CODE (tem) == TYPE_DECL /* Omit fields whose position or size are variable or too large to