This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix fork instrumentation for libgcov


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]