tree.h (struct tree_decl): Add comdat_flag.

* tree.h (struct tree_decl): Add comdat_flag.
	(DECL_COMDAT): Define it.
	* toplev.c (wrapup_global_declarations): Don't output a
	DECL_COMDAT function just because it's public.

From-SVN: r26733
This commit is contained in:
Mark Mitchell 1999-05-02 17:43:33 +00:00 committed by Mark Mitchell
parent af36a4d251
commit 5918224249
3 changed files with 20 additions and 1 deletions

View File

@ -1,3 +1,10 @@
Sun May 2 14:02:21 1999 Mark Mitchell <mark@codesourcery.com>
* tree.h (struct tree_decl): Add comdat_flag.
(DECL_COMDAT): Define it.
* toplev.c (wrapup_global_declarations): Don't output a
DECL_COMDAT function just because it's public.
Sun May 2 15:16:42 1999 Joseph S. Myers <jsm28@cam.ac.uk>
* pdp11.h (TARGET_SWITCHES): Fix error in previous change.

View File

@ -2753,7 +2753,7 @@ wrapup_global_declarations (vec, len)
&& DECL_INITIAL (decl) != 0
&& DECL_SAVED_INSNS (decl) != 0
&& (flag_keep_inline_functions
|| TREE_PUBLIC (decl)
|| (TREE_PUBLIC (decl) && !DECL_COMDAT (decl))
|| TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl))))
{
reconsider = 1;

View File

@ -1246,6 +1246,17 @@ struct tree_type
multiple translation units should be merged. */
#define DECL_ONE_ONLY(NODE) (DECL_CHECK (NODE)->decl.transparent_union)
/* Used in a DECL to indicate that, even if it TREE_PUBLIC, it need
not be put out unless it is needed in this translation unit.
Entities like this are shared across translation units (like weak
entities), but are guaranteed to be generated by any translation
unit that needs them, and therefore need not be put out anywhere
where they are not needed. DECL_COMDAT is just a hint to the
back-end; it is up to front-ends which set this flag to ensure
that there will never be any harm, other than bloat, in putting out
something which is DECL_COMDAT. */
#define DECL_COMDAT(NODE) (DECL_CHECK (NODE)->decl.comdat_flag)
/* Used in FUNCTION_DECLs to indicate that function entry and exit should
be instrumented with calls to support routines. */
#define DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT(NODE) ((NODE)->decl.no_instrument_function_entry_exit)
@ -1321,6 +1332,7 @@ struct tree_decl
unsigned non_addr_const_p : 1;
unsigned no_instrument_function_entry_exit : 1;
unsigned no_check_memory_usage : 1;
unsigned comdat_flag : 1;
/* For a FUNCTION_DECL, if inline, this is the size of frame needed.
If built-in, this is the code for which built-in function.