diff options
author | Jason Merrill <jason@redhat.com> | 2000-07-10 03:18:06 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-07-10 03:18:06 -0400 |
commit | 9a6bb3f78c96de6dd512c1a8cd543384be304832 (patch) | |
tree | cc6a81da130c19fb3639d7984a1e0d0c001b990d /gcc | |
parent | 2bb5d995f27dcd3db33ecd983795ffd0654a2e5d (diff) | |
download | gcc-9a6bb3f78c96de6dd512c1a8cd543384be304832.zip gcc-9a6bb3f78c96de6dd512c1a8cd543384be304832.tar.gz gcc-9a6bb3f78c96de6dd512c1a8cd543384be304832.tar.bz2 |
tree.h (STRIP_NOPS): Check for error_mark_node.
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/c-decl.c | 2 | ||||
-rw-r--r-- | gcc/tree.h | 53 |
3 files changed, 15 insertions, 49 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a9874be..df05c77 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 8319f45..b2beebf 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -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) @@ -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)); -/* 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)); - /* 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)); - + /* 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 |