diff options
author | Martin Jambor <mjambor@suse.cz> | 2014-03-21 13:59:35 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2014-03-21 13:59:35 +0100 |
commit | 3d8d00439b8507ebb9c89949d44133bbdcde333f (patch) | |
tree | 9a7d70708594301be7def95ae86b5e51f4577ef8 /gcc/symtab.c | |
parent | d833415cdac558ab5da28048154d119856b62ad6 (diff) | |
download | gcc-3d8d00439b8507ebb9c89949d44133bbdcde333f.zip gcc-3d8d00439b8507ebb9c89949d44133bbdcde333f.tar.gz gcc-3d8d00439b8507ebb9c89949d44133bbdcde333f.tar.bz2 |
re PR ipa/59176 (ICE edge points to wrong declaration / verify_cgraph_node failed)
2014-03-21 Martin Jambor <mjambor@suse.cz>
PR ipa/59176
* cgraph.h (symtab_node): New flag body_removed.
* ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
when removing bodies.
* symtab.c (dump_symtab_base): Dump body_removed flag.
* cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
had their bodies removed.
testsuite/
* g++.dg/torture/pr59176.C: New test.
From-SVN: r208748
Diffstat (limited to 'gcc/symtab.c')
-rw-r--r-- | gcc/symtab.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/symtab.c b/gcc/symtab.c index 2d6f665..4db4870 100644 --- a/gcc/symtab.c +++ b/gcc/symtab.c @@ -601,6 +601,8 @@ dump_symtab_base (FILE *f, symtab_node *node) ? IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->alias_target)) : IDENTIFIER_POINTER (node->alias_target)); + if (node->body_removed) + fprintf (f, "\n Body removed by symtab_remove_unreachable_nodes"); fprintf (f, "\n Visibility:"); if (node->in_other_partition) fprintf (f, " in_other_partition"); |