From 3c4e91c903a599641e3adf08b6f2646d778c4cf3 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 12 Jan 2016 14:22:40 +0000 Subject: re PR debug/69077 (omnetpp ICEs with -flto -g) 2016-01-12 Richard Biener PR lto/69077 lto/ * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags. * g++.dg/lto/pr69077_0.C: New testcase. * g++.dg/lto/pr69077_1.C: Likewise. From-SVN: r232272 --- gcc/lto/ChangeLog | 6 ++++++ gcc/lto/lto-symtab.c | 12 ++++++++++++ 2 files changed, 18 insertions(+) (limited to 'gcc/lto') diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 8d5d278..352fe17 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2016-01-12 Richard Biener + + PR lto/69077 + * lto-symtab.c (lto_symtab_prevailing_virtual_decl): Properly + merge TREE_ADDRESSABLE and DECL_POSSIBLY_INLINED flags. + 2016-01-04 Jakub Jelinek Update copyright years. diff --git a/gcc/lto/lto-symtab.c b/gcc/lto/lto-symtab.c index 3936916..a6f6d01 100644 --- a/gcc/lto/lto-symtab.c +++ b/gcc/lto/lto-symtab.c @@ -997,6 +997,18 @@ lto_symtab_prevailing_virtual_decl (tree decl) n = n->next_sharing_asm_name; if (n) { + /* Merge decl state in both directions, we may still end up using + the other decl. */ + TREE_ADDRESSABLE (n->decl) |= TREE_ADDRESSABLE (decl); + TREE_ADDRESSABLE (decl) |= TREE_ADDRESSABLE (n->decl); + + if (TREE_CODE (decl) == FUNCTION_DECL) + { + /* Merge decl state in both directions, we may still end up using + the other decl. */ + DECL_POSSIBLY_INLINED (n->decl) |= DECL_POSSIBLY_INLINED (decl); + DECL_POSSIBLY_INLINED (decl) |= DECL_POSSIBLY_INLINED (n->decl); + } lto_symtab_prevail_decl (n->decl, decl); decl = n->decl; } -- cgit v1.1