diff options
author | Jeff Law <law@gcc.gnu.org> | 1997-12-01 10:53:12 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-12-01 10:53:12 -0700 |
commit | f45ebe475405f8298ff7521a3a1cce3b153d91ec (patch) | |
tree | 448a82241bdc2368d95925d23a0f1c36aad73a69 /gcc | |
parent | 7dfef6ed40301c60119e111e695e1ca1b02f439a (diff) | |
download | gcc-f45ebe475405f8298ff7521a3a1cce3b153d91ec.zip gcc-f45ebe475405f8298ff7521a3a1cce3b153d91ec.tar.gz gcc-f45ebe475405f8298ff7521a3a1cce3b153d91ec.tar.bz2 |
O Bring in changes from release branch (egcs_ss_971127).
From-SVN: r16866
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/config/pa/pa-hpux10.h | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 11 | ||||
-rw-r--r-- | gcc/dwarfout.c | 17 | ||||
-rw-r--r-- | gcc/except.c | 1 | ||||
-rw-r--r-- | gcc/expr.c | 1 | ||||
-rw-r--r-- | gcc/invoke.texi | 1 |
7 files changed, 49 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eda2c67..70a34a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -10,6 +10,12 @@ Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com) * unroll.c (find_splittable_givs): Don't split givs with a dest_reg that was created by loop. +Thu Nov 27 09:34:58 1997 Jason Merrill <jason@yorick.cygnus.com> + + * expr.c (preexpand_calls): Don't look past a TRY_CATCH_EXPR. + + * except.c (expand_start_all_catch): One more do_pending_stack_adjust. + Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com> * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. @@ -33,6 +39,11 @@ Wed Nov 26 11:12:26 1997 Jason Merrill <jason@yorick.cygnus.com> * toplev.c (main): Complain about -gdwarfn. +Tue Nov 25 22:43:30 1997 Jason Merrill <jason@yorick.cygnus.com> + + * dwarfout.c (output_type): If finalizing, write out nested types + of types we've already written. + Tue Nov 25 20:32:24 1997 Michael Meissner <meissner@cygnus.com> (patches originally from Geoffrey Keating) @@ -73,6 +84,12 @@ Mon Nov 24 22:41:55 1997 Jason Merrill <jason@yorick.cygnus.com> * optabs.c (init_optabs): Lose get_dynamic_handler_chain_libfunc. * expr.h: Likewise. +Sat Nov 22 18:58:20 1997 Jeffrey A Law (law@cygnus.com) + + * pa-hpux10.h (NEW_HP_ASSEMBLER): Define. + * pa.h (LEGITIMATE_CONSTANT_P): Reject LABEL_REFs if not using + gas and not using the new HP assembler. + Fri Nov 21 15:20:05 1997 Jeffrey A Law (law@cygnus.com) * Makefile.in (program_transform_cross_name): Clean up "-e" confusion. diff --git a/gcc/config/pa/pa-hpux10.h b/gcc/config/pa/pa-hpux10.h index 1c57d5e..c4b8ddd 100644 --- a/gcc/config/pa/pa-hpux10.h +++ b/gcc/config/pa/pa-hpux10.h @@ -69,3 +69,6 @@ do { \ #define MD_STARTFILE_PREFIX "/usr/ccs/lib/" #endif +/* hpux10 has the new HP assembler. It's still lousy, but it's a whole lot + better than the assembler shipped with older versions of hpux. */ +#define NEW_HP_ASSEMBLER diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 7d6c826..5944448 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1396,12 +1396,21 @@ extern struct rtx_def *hppa_builtin_saveregs (); && (reload_in_progress || reload_completed || ! symbolic_expression_p (X))) /* Include all constant integers and constant doubles, but not - floating-point, except for floating-point zero. */ + floating-point, except for floating-point zero. + Reject LABEL_REFs if we're not using gas or the new HP assembler. */ +#ifdef NEW_HP_ASSEMBLER #define LEGITIMATE_CONSTANT_P(X) \ ((GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \ || (X) == CONST0_RTX (GET_MODE (X))) \ && !function_label_operand (X, VOIDmode)) +#else +#define LEGITIMATE_CONSTANT_P(X) \ + ((GET_MODE_CLASS (GET_MODE (X)) != MODE_FLOAT \ + || (X) == CONST0_RTX (GET_MODE (X))) \ + && (GET_CODE (X) != LABEL_REF || TARGET_GAS)\ + && !function_label_operand (X, VOIDmode)) +#endif /* Subroutine for EXTRA_CONSTRAINT. diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c index 21f78b5..77248f6 100644 --- a/gcc/dwarfout.c +++ b/gcc/dwarfout.c @@ -4193,7 +4193,22 @@ output_type (type, containing_scope) type = type_main_variant (type); if (TREE_ASM_WRITTEN (type)) - return; + { + if (finalizing && AGGREGATE_TYPE_P (type)) + { + register tree member; + + /* Some of our nested types might not have been defined when we + were written out before; force them out now. */ + + for (member = TYPE_FIELDS (type); member; + member = TREE_CHAIN (member)) + if (TREE_CODE (member) == TYPE_DECL + && ! TREE_ASM_WRITTEN (TREE_TYPE (member))) + output_type (TREE_TYPE (member), containing_scope); + } + return; + } /* If this is a nested type whose containing class hasn't been written out yet, writing it out will cover this one, too. */ diff --git a/gcc/except.c b/gcc/except.c index cdfa977..0b5ceec 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -1366,6 +1366,7 @@ expand_start_all_catch () expand_internal_throw (entry->outer_context); } } + do_pending_stack_adjust (); free (entry); } } @@ -10044,6 +10044,7 @@ preexpand_calls (exp) case RTL_EXPR: case WITH_CLEANUP_EXPR: case CLEANUP_POINT_EXPR: + case TRY_CATCH_EXPR: return; case SAVE_EXPR: diff --git a/gcc/invoke.texi b/gcc/invoke.texi index cf1c8a5..2bb3d99 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -4518,6 +4518,7 @@ defaults. These @samp{-m} options are defined for the i386 family of computers: +@table @code @item -mcpu=@var{cpu type} Assume the defaults for the machine type @var{cpu type} when scheduling instructions. The choices for @var{cpu type} are: @samp{i386}, |