From 07db0f9bb354bd9a46e62c6d9960a9a3c40d1c15 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 21 Aug 2014 08:18:48 +0200 Subject: [PATCH] tree-profile.c (tree_profiling): Skip external functions when doing coverage instrumentation. * tree-profile.c (tree_profiling): Skip external functions when doing coverage instrumentation. * cgraphunit.c (compile): Do not assert that all nodes are reachable. * gcc.dg/ipa/ctor-empty-1.c: Update template. From-SVN: r214256 --- gcc/ChangeLog | 6 ++++++ gcc/cgraphunit.c | 5 ----- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c | 6 +++--- gcc/tree-profile.c | 7 +++++++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e997a32f1954..69a1d38a1ef9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-08-20 Jan Hubicka + + * tree-profile.c (tree_profiling): Skip external functions + when doing coverage instrumentation. + * cgraphunit.c (compile): Do not assert that all nodes are reachable. + 2014-08-20 Bill Schmidt * config/rs6000/altivec.h (vec_cpsgn): New #define. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 20294b3845a4..0bbe9f68612a 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -2209,11 +2209,6 @@ compile (void) cgraph_materialize_all_clones (); bitmap_obstack_initialize (NULL); execute_ipa_pass_list (g->get_passes ()->all_late_ipa_passes); -#ifdef ENABLE_CHECKING - symtab_node::verify_symtab_nodes (); - /* Verify late IPA passes cleaned up after themselves. */ - gcc_assert (!symtab_remove_unreachable_nodes (false, dump_file)); -#endif bitmap_obstack_release (NULL); mark_functions_to_output (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c5b9d83811c0..e1367e80bb6d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -17,6 +17,10 @@ * gcc.target/powerpc/swaps-p8-11.c: New test. * gcc.target/powerpc/swaps-p8-12.c: New test. +2014-08-20 Jan Hubicka + + * gcc.dg/ipa/ctor-empty-1.c: Update template. + 2014-08-20 Jan Hubicka * g++.dg/ipa/devirt-37.C: Fix testcase. diff --git a/gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c b/gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c index bb8e7aff25d8..e678c6d03152 100644 --- a/gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c +++ b/gcc/testsuite/gcc.dg/ipa/ctor-empty-1.c @@ -1,8 +1,8 @@ /* { dg-do compile } */ -/* { dg-options "-O3 -c -fdump-ipa-cgraph" } */ +/* { dg-options "-O3 -c -fdump-ipa-free-inline-summary" } */ static __attribute__((constructor)) void empty_constructor() { } -/* { dg-final { scan-ipa-dump "Reclaiming functions: empty_constructor" "cgraph" } } */ -/* { dg-final { cleanup-ipa-dump "cgraph" } } */ +/* { dg-final { scan-ipa-dump "Reclaiming functions: empty_constructor" "free-inline-summary" } } */ +/* { dg-final { cleanup-ipa-dump "free-inline-summary" } } */ diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c index 6ab06e69c3f0..31d305b4e8d1 100644 --- a/gcc/tree-profile.c +++ b/gcc/tree-profile.c @@ -578,6 +578,13 @@ tree_profiling (void) if (DECL_SOURCE_LOCATION (node->decl) == BUILTINS_LOCATION) continue; + /* Do not instrument extern inline functions when testing coverage. + While this is not perfectly consistent (early inlined extern inlines + will get acocunted), testsuite expects that. */ + if (DECL_EXTERNAL (node->decl) + && flag_test_coverage) + continue; + push_cfun (DECL_STRUCT_FUNCTION (node->decl)); /* Local pure-const may imply need to fixup the cfg. */ -- 2.47.2