This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix fork instrumentation for libgcov
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 31 Aug 2013 16:30:04 +0200
- Subject: Fix fork instrumentation for libgcov
- Authentication-results: sourceware.org; auth=none
Hi,
as noticed by Martin Liska, -O0 -fprofile-generate code won't land into
__gcov_fork. This is due to early exit from expand_builtin.
Fixed and will be comitted as obvious.
Honza
* builtins.c (expand_builtin): Do not exit early for gcov
instrumented functions.
* gcc.dg/fork-instrumentation.c: New testcase.
Index: builtins.c
===================================================================
--- builtins.c (revision 202100)
+++ builtins.c (working copy)
@@ -5850,6 +5850,13 @@ expand_builtin (tree exp, rtx target, rt
set of builtins. */
if (!optimize
&& !called_as_built_in (fndecl)
+ && fcode != BUILT_IN_FORK
+ && fcode != BUILT_IN_EXECL
+ && fcode != BUILT_IN_EXECV
+ && fcode != BUILT_IN_EXECLP
+ && fcode != BUILT_IN_EXECLE
+ && fcode != BUILT_IN_EXECVP
+ && fcode != BUILT_IN_EXECVE
&& fcode != BUILT_IN_ALLOCA
&& fcode != BUILT_IN_ALLOCA_WITH_ALIGN
&& fcode != BUILT_IN_FREE)
Index: testsuite/gcc.dg/fork-instrumentation.c
===================================================================
--- testsuite/gcc.dg/fork-instrumentation.c (revision 0)
+++ testsuite/gcc.dg/fork-instrumentation.c (working copy)
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O0 -fprofile-generate" } */
+int fork(void);
+t()
+{
+ fork ();
+}
+/* { dg-final { scan-assembler "gcov_fork" } } */