aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-10-07 12:52:34 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-10-07 10:52:34 +0000
commitbd67cff183ab44d9a243ce983e236e4a0be17ac3 (patch)
treec0002800d1ff4d491d967009e61a8dd25140f15a /gcc/ipa.c
parent9f23af489a0c86f0b2f98db15d0e5761ed72dacd (diff)
downloadgcc-bd67cff183ab44d9a243ce983e236e4a0be17ac3.zip
gcc-bd67cff183ab44d9a243ce983e236e4a0be17ac3.tar.gz
gcc-bd67cff183ab44d9a243ce983e236e4a0be17ac3.tar.bz2
re PR middle-end/45926 (Revision 165057 breaks GOMP)
PR middle-end/45926 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch. From-SVN: r165090
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r--gcc/ipa.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 4fbc3b7..8eadd36 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -238,19 +238,14 @@ cgraph_remove_unreachable_nodes (bool before_inlining_p, FILE *file)
#endif
varpool_reset_queue ();
for (node = cgraph_nodes; node; node = node->next)
- if (!node->analyzed)
- {
- gcc_assert (!node->aux);
- node->reachable = false;
- }
- else if ((!cgraph_can_remove_if_no_direct_calls_and_refs_p (node)
- /* Keep around virtual functions for possible devirtualization. */
- || (!before_inlining_p
- && !node->global.inlined_to
- && DECL_VIRTUAL_P (node->decl)
- && (DECL_COMDAT (node->decl) || DECL_EXTERNAL (node->decl))))
- && ((!DECL_EXTERNAL (node->decl))
- || before_inlining_p))
+ if ((!cgraph_can_remove_if_no_direct_calls_and_refs_p (node)
+ /* Keep around virtual functions for possible devirtualization. */
+ || (!before_inlining_p
+ && !node->global.inlined_to
+ && DECL_VIRTUAL_P (node->decl)
+ && (DECL_COMDAT (node->decl) || DECL_EXTERNAL (node->decl))))
+ && ((!DECL_EXTERNAL (node->decl))
+ || before_inlining_p))
{
gcc_assert (!node->global.inlined_to);
enqueue_cgraph_node (node, &first);