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" } } */

Reply via email to