From f7a758103e01ef44772fa9255c15e9b55ad6ac3f Mon Sep 17 00:00:00 2001 From: mycroft Date: Wed, 8 Jul 1992 22:22:23 +0000 Subject: *** empty log message *** git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1529 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree.h | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'gcc/tree.h') diff --git a/gcc/tree.h b/gcc/tree.h index e632cdca841..72ef3f6f1fd 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -725,14 +725,28 @@ struct tree_type /* Every ..._DECL node gets a unique number. */ #define DECL_UID(NODE) ((NODE)->decl.uid) -/* Nonzero in a VAR_DECL or PARM_DECL means this decl was made by inlining; +/* For any sort of a ..._DECL node, this points to the original (abstract) + decl node which this decl is an instance of, or else it is NULL indicating + that this decl is not an instance of some other decl. */ +#define DECL_ABSTRACT_ORIGIN(NODE) ((NODE)->decl.abstract_origin) + +/* Nonzero for any sort of ..._DECL node means this decl node represents + an inline instance of some original (abstract) decl from an inline function; suppress any warnings about shadowing some other variable. */ -#define DECL_FROM_INLINE(NODE) ((NODE)->decl.from_inline_flag) +#define DECL_FROM_INLINE(NODE) (DECL_ABSTRACT_ORIGIN (NODE) != (tree) 0) /* Nonzero if a _DECL means that the name of this decl should be ignored for symbolic debug purposes. */ #define DECL_IGNORED_P(NODE) ((NODE)->decl.ignored_flag) +/* Nonzero for a given ..._DECL node means that this node represents an + "abstract instance" of the given declaration (e.g. in the original + declaration of an inline function). When generating symbolic debugging + information, we musn't try to generate any address information for nodes + marked as "abstract instances" because we don't actually generate + any code or allocate any data space for such instances. */ +#define DECL_ABSTRACT(NODE) ((NODE)->decl.abstract_flag) + /* Nonzero if a _DECL means that no warnings should be generated just because this decl is unused. */ #define DECL_IN_SYSTEM_HEADER(NODE) ((NODE)->decl.in_system_header_flag) @@ -812,8 +826,8 @@ struct tree_decl unsigned inline_flag : 1; unsigned bit_field_flag : 1; unsigned virtual_flag : 1; - unsigned from_inline_flag : 1; unsigned ignored_flag : 1; + unsigned abstract_flag : 1; unsigned in_system_header_flag : 1; /* room for seven more */ @@ -832,6 +846,7 @@ struct tree_decl union tree_node *arguments; union tree_node *result; union tree_node *initial; + union tree_node *abstract_origin; /* The PRINT_NAME field is marked for death. */ char *print_name; union tree_node *assembler_name; -- cgit v1.2.1