aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-profile.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-08-21 08:18:48 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-08-21 06:18:48 +0000
commit07db0f9bb354bd9a46e62c6d9960a9a3c40d1c15 (patch)
tree0f26a66adb521cd14338701fd3c485f3c20cfdb0 /gcc/tree-profile.c
parent65fa79c3dbf14ee9b24ec23b685fbdedeeadca98 (diff)
downloadgcc-07db0f9bb354bd9a46e62c6d9960a9a3c40d1c15.zip
gcc-07db0f9bb354bd9a46e62c6d9960a9a3c40d1c15.tar.gz
gcc-07db0f9bb354bd9a46e62c6d9960a9a3c40d1c15.tar.bz2
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
Diffstat (limited to 'gcc/tree-profile.c')
-rw-r--r--gcc/tree-profile.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index 6ab06e6..31d305b 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. */