summaryrefslogtreecommitdiff
path: root/gcc/ipa-comdats.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-02-16 13:28:40 +0100
committerMartin Liska <marxin@gcc.gnu.org>2015-02-16 12:28:40 +0000
commit62991c35a8070efed1af4a46f64151cc4e95207e (patch)
tree4c85ac027d5564772007d24642eee409ea76f5e7 /gcc/ipa-comdats.c
parent3d5cb23da1ea830d33eea2a1a19912ee7dd63c45 (diff)
re PR ipa/65059 (Chrome LTO: lto1: internal compiler error: in ipa_comdats, at ipa-comdats.c:360)
Fix PR ipa/65059. PR ipa/65059 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to external functions. From-SVN: r220733
Diffstat (limited to 'gcc/ipa-comdats.c')
-rw-r--r--gcc/ipa-comdats.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ipa-comdats.c b/gcc/ipa-comdats.c
index ad5945f468d..9f43f299dbb 100644
--- a/gcc/ipa-comdats.c
+++ b/gcc/ipa-comdats.c
@@ -328,9 +328,14 @@ ipa_comdats (void)
FOR_EACH_DEFINED_SYMBOL (symbol)
{
+ struct cgraph_node *fun;
symbol->aux = NULL;
if (!symbol->get_comdat_group ()
&& !symbol->alias
+ /* Thunks to external functions do not need to be categorized. */
+ && (!(fun = dyn_cast <cgraph_node *> (symbol))
+ || !fun->thunk.thunk_p
+ || fun->function_symbol ()->definition)
&& symbol->real_symbol_p ())
{
tree *val = map.get (symbol);