Commit 59182242 by Mark Mitchell Committed by Mark Mitchell

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
parent af36a4d2
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.
......
......@@ -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;
......
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment