diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-06-26 20:50:24 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-06-26 18:50:24 +0000 |
commit | e288a46ccc3f824c1fde7a34d92a265659a05ee5 (patch) | |
tree | 6629c6fbf16d67b6b1ae6de297c37f51a25cd8d9 /gcc/varasm.c | |
parent | 6a7424669d61d9697fcce29813f70578211af4fd (diff) | |
download | gcc-e288a46ccc3f824c1fde7a34d92a265659a05ee5.zip gcc-e288a46ccc3f824c1fde7a34d92a265659a05ee5.tar.gz gcc-e288a46ccc3f824c1fde7a34d92a265659a05ee5.tar.bz2 |
invoke.texi (-fsemantic-interposition): Document.
* doc/invoke.texi (-fsemantic-interposition): Document.
* common.opt (fsemantic-interposition): New flag.
* varasm.c (decl_replaceable_p): Use it.
* gcc.dg/tree-ssa/interposition.c: New testcase.
From-SVN: r212049
Diffstat (limited to 'gcc/varasm.c')
-rw-r--r-- | gcc/varasm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/varasm.c b/gcc/varasm.c index 7be56f1..aea5a25 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -6830,6 +6830,9 @@ decl_replaceable_p (tree decl) gcc_assert (DECL_P (decl)); if (!TREE_PUBLIC (decl) || DECL_COMDAT (decl)) return false; + if (!flag_semantic_interposition + && !DECL_WEAK (decl)) + return false; return !decl_binds_to_current_def_p (decl); } |