aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1997-12-01 10:53:12 -0700
committerJeff Law <law@gcc.gnu.org>1997-12-01 10:53:12 -0700
commitf45ebe475405f8298ff7521a3a1cce3b153d91ec (patch)
tree448a82241bdc2368d95925d23a0f1c36aad73a69 /gcc
parent7dfef6ed40301c60119e111e695e1ca1b02f439a (diff)
downloadgcc-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/ChangeLog17
-rw-r--r--gcc/config/pa/pa-hpux10.h3
-rw-r--r--gcc/config/pa/pa.h11
-rw-r--r--gcc/dwarfout.c17
-rw-r--r--gcc/except.c1
-rw-r--r--gcc/expr.c1
-rw-r--r--gcc/invoke.texi1
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);
}
}
diff --git a/gcc/expr.c b/gcc/expr.c
index 7545c43..f07b3f6 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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},