fork-instrumentation.c: New testcase.
authorJan Hubicka <jh@suse.cz>
Sun, 1 Sep 2013 11:59:27 +0000 (13:59 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 1 Sep 2013 11:59:27 +0000 (11:59 +0000)
* gcc.dg/fork-instrumentation.c: New testcase.
* builtins.c (expand_builtin): Do not exit early for gcov
instrumented functions.

From-SVN: r202142

gcc/ChangeLog
gcc/builtins.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fork-instrumentation.c [new file with mode: 0644]

index 7d0a381bfd92d043905f748d4a8fa82b66b7420f..b141e613bc4bb344fc9444f4e3113239b1f64874 100644 (file)
@@ -1,3 +1,8 @@
+2013-08-31  Jan Hubicka  <jh@suse.cz>
+
+       * bulitins.c (expand_builtin): Do not early exit for gcov
+       instrumented functions.
+
 2013-08-31  Marek Polacek  <polacek@redhat.com>
 
        * ubsan.c: Include tm_p.h.
index 92aec31ab4733fb12715109f0973de061dd18070..581a05074257dc95cd30989ea776011ae243f1f5 100644 (file)
@@ -5851,6 +5851,13 @@ expand_builtin (tree exp, rtx target, rtx subtarget, enum machine_mode mode,
      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 315a2df0deafb12cf2932a59b7462297400c2a64..9cbc4276f568c4f9301201c162eeeb7f54ab7e6a 100644 (file)
@@ -1,3 +1,7 @@
+2013-08-31  Jan Hubicka  <jh@suse.cz>
+
+       * gcc.dg/fork-instrumentation.c: New testcase.
+
 2013-08-30  Uros Bizjak  <ubizjak@gmail.com>
 
        * g++.dg/abi/mangle33.C (dg-final): Use match count in scan RE.
diff --git a/gcc/testsuite/gcc.dg/fork-instrumentation.c b/gcc/testsuite/gcc.dg/fork-instrumentation.c
new file mode 100644 (file)
index 0000000..bd9bf41
--- /dev/null
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-options "-O0 -fprofile-generate" } */
+int fork(void);
+t()
+{
+  fork ();
+}
+/* { dg-final { scan-assembler "gcov_fork" } } */