O Bring in changes from release branch (egcs_ss_971127).
authorJeff Law <law@gcc.gnu.org>
Mon, 1 Dec 1997 17:53:12 +0000 (10:53 -0700)
committerJeff Law <law@gcc.gnu.org>
Mon, 1 Dec 1997 17:53:12 +0000 (10:53 -0700)
From-SVN: r16866

gcc/ChangeLog
gcc/config/pa/pa-hpux10.h
gcc/config/pa/pa.h
gcc/dwarfout.c
gcc/except.c
gcc/expr.c
gcc/invoke.texi

index eda2c67ba82f93af8bc7fe4fcde56ad023e3a009..70a34a6c78f45286b4ee7a04de3c7203ec6ef7c0 100644 (file)
@@ -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.
index 1c57d5ee6ea70cc1a2b3386aae7917b02ff9feb3..c4b8ddd36dcce60606cf387bf463655dc5aa11a6 100644 (file)
@@ -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
index 7d6c826a594eab94520aa40cc5090bc294776186..5944448a849c02eb1ea944076db76c53a6c10a06 100644 (file)
@@ -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.
 
index 21f78b5661f71319759a90bacfe6017de76b5f56..77248f6d4367f859064b7f79809ed921fb5661fd 100644 (file)
@@ -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.  */
index cdfa9777a90f44e6b7b78b69afe1fadf09a2fa13..0b5ceecc8bc71b0f349a69c0e9ebcc87d2183dc9 100644 (file)
@@ -1366,6 +1366,7 @@ expand_start_all_catch ()
              expand_internal_throw (entry->outer_context);
            }
        }
+      do_pending_stack_adjust ();
       free (entry);
     }
 }
index 7545c43ea8d7c16bbdd695cc099e61e804fc8474..f07b3f674777bb4981a751d3d8417cfb9e661dca 100644 (file)
@@ -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:
index cf1c8a58f626988714ff59cf376f89daefc3e59d..2bb3d99a4be5ccb0218e1e6a94238bba825b4d83 100644 (file)
@@ -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},