tree.h (STRIP_NOPS): Check for error_mark_node.
authorJason Merrill <jason@redhat.com>
Mon, 10 Jul 2000 07:18:06 +0000 (03:18 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Mon, 10 Jul 2000 07:18:06 +0000 (03:18 -0400)
        * tree.h (STRIP_NOPS): Check for error_mark_node.
        (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
        (dwarf2out_*): Remove duplicate declarations.

        * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
        DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.

From-SVN: r34939

gcc/ChangeLog
gcc/c-decl.c
gcc/tree.h

index a9874be..df05c77 100644 (file)
@@ -1,3 +1,12 @@
+2000-07-09  Jason Merrill  <jason@redhat.com>
+
+       * tree.h (STRIP_NOPS): Check for error_mark_node.
+       (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
+       (dwarf2out_*): Remove duplicate declarations.
+
+       * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
+       DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
+
 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
 
        * diagnostic.c (wrap_text): New function.
index 8319f45..b2beebf 100644 (file)
@@ -1965,7 +1965,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
          DECL_SAVED_INSNS (newdecl) = DECL_SAVED_INSNS (olddecl);
          DECL_ARGUMENTS (newdecl) = DECL_ARGUMENTS (olddecl);
          if (DECL_INLINE (newdecl))
-           DECL_ABSTRACT_ORIGIN (newdecl) = DECL_ORIGIN (olddecl);
+           DECL_ABSTRACT_ORIGIN (newdecl) = DECL_ABSTRACT_ORIGIN (olddecl);
        }
     }
   if (different_binding_level)
index bb6602c..39a94c7 100644 (file)
@@ -350,10 +350,11 @@ extern void tree_class_check_failed PARAMS ((const tree, int,
 /* Given an expression as a tree, strip any NON_LVALUE_EXPRs and NOP_EXPRs
    that don't change the machine mode.  */
 
-#define STRIP_NOPS(EXP) \
+#define STRIP_NOPS(EXP)                                                \
   while ((TREE_CODE (EXP) == NOP_EXPR                          \
          || TREE_CODE (EXP) == CONVERT_EXPR                    \
          || TREE_CODE (EXP) == NON_LVALUE_EXPR)                \
+        && TREE_OPERAND (EXP, 0) != error_mark_node            \
         && (TYPE_MODE (TREE_TYPE (EXP))                        \
             == TYPE_MODE (TREE_TYPE (TREE_OPERAND (EXP, 0))))) \
     (EXP) = TREE_OPERAND (EXP, 0);
@@ -364,6 +365,7 @@ extern void tree_class_check_failed PARAMS ((const tree, int,
   while ((TREE_CODE (EXP) == NOP_EXPR                          \
          || TREE_CODE (EXP) == CONVERT_EXPR                    \
          || TREE_CODE (EXP) == NON_LVALUE_EXPR)                \
+        && TREE_OPERAND (EXP, 0) != error_mark_node            \
         && (TYPE_MODE (TREE_TYPE (EXP))                        \
             == TYPE_MODE (TREE_TYPE (TREE_OPERAND (EXP, 0))))  \
         && (TREE_UNSIGNED (TREE_TYPE (EXP))                    \
@@ -376,6 +378,7 @@ extern void tree_class_check_failed PARAMS ((const tree, int,
   while ((TREE_CODE (EXP) == NOP_EXPR                          \
          || TREE_CODE (EXP) == CONVERT_EXPR                    \
          || TREE_CODE (EXP) == NON_LVALUE_EXPR)                \
+        && TREE_OPERAND (EXP, 0) != error_mark_node            \
         && (TREE_TYPE (EXP)                                    \
             == TREE_TYPE (TREE_OPERAND (EXP, 0))))             \
     (EXP) = TREE_OPERAND (EXP, 0);
@@ -2532,52 +2535,6 @@ extern tree invert_truthvalue    PARAMS ((tree));
 
 extern tree (*lang_type_promotes_to)   PARAMS ((tree));
 \f
-/* Interface of the DWARF2 unwind info support.  */
-
-/* Decide whether we want to emit frame unwind information for the current
-   translation unit.  */
-
-extern int dwarf2out_do_frame          PARAMS ((void));
-
-/* Generate a new label for the CFI info to refer to.  */
-
-extern char *dwarf2out_cfi_label       PARAMS ((void));
-
-/* Entry point to update the canonical frame address (CFA).  */
-
-extern void dwarf2out_def_cfa          PARAMS ((const char *, unsigned, long));
-
-/* Add the CFI for saving a register window.  */
-
-extern void dwarf2out_window_save      PARAMS ((const char *));
-
-/* Add a CFI to update the running total of the size of arguments pushed
-   onto the stack.  */
-
-extern void dwarf2out_args_size                PARAMS ((const char *, long));
-
-/* Entry point for saving a register to the stack.  */
-
-extern void dwarf2out_reg_save         PARAMS ((const char *, unsigned, long));
-
-/* Entry point for saving the return address in the stack.  */
-
-extern void dwarf2out_return_save      PARAMS ((const char *, long));
-
-/* Entry point for saving the return address in a register.  */
-
-extern void dwarf2out_return_reg       PARAMS ((const char *, unsigned));
-
-/* Output a marker (i.e. a label) for the beginning of a function, before
-   the prologue.  */
-
-extern void dwarf2out_begin_prologue   PARAMS ((void));
-
-/* Output a marker (i.e. a label) for the absolute end of the generated
-   code for a function definition.  */
-
-extern void dwarf2out_end_epilogue     PARAMS ((void));
-\f
 /* The language front-end must define these functions.  */
 
 /* Function of no arguments for initializing options.  */
@@ -2910,7 +2867,7 @@ extern void dwarf2out_begin_prologue      PARAMS ((void));
    code for a function definition.  */
 
 extern void dwarf2out_end_epilogue     PARAMS ((void));
-
+\f
 /* Redefine abort to report an internal error w/o coredump, and
    reporting the location of the error in the source file.  This logic
    is duplicated in rtl.h and tree.h because every file that needs the