aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2013-12-20 17:32:21 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2013-12-20 17:32:21 +0100
commitabdd0cfa93ee92acb9498ec1a430b6d86137f7f4 (patch)
tree2fb5becd3701a9193980c22daa0377bb914cd102 /gcc
parent392356899b2de257a3b13c7a8aacc5140de9b4ee (diff)
downloadgcc-abdd0cfa93ee92acb9498ec1a430b6d86137f7f4.zip
gcc-abdd0cfa93ee92acb9498ec1a430b6d86137f7f4.tar.gz
gcc-abdd0cfa93ee92acb9498ec1a430b6d86137f7f4.tar.bz2
re PR c++/59255 (Segmentation fault with std::function and -fprofile-use)
PR c++/59255 * g++.dg/tree-prof/pr59255.C: New test. From-SVN: r206152
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/tree-prof/pr59255.C29
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 95afd48..73f0cb9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/59255
+ * g++.dg/tree-prof/pr59255.C: New test.
+
2013-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gcc.target/arm/neon-vceq_p64.c: New test.
diff --git a/gcc/testsuite/g++.dg/tree-prof/pr59255.C b/gcc/testsuite/g++.dg/tree-prof/pr59255.C
new file mode 100644
index 0000000..eb2b51f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-prof/pr59255.C
@@ -0,0 +1,29 @@
+// PR c++/59255
+// { dg-options "-O2 -std=c++11" }
+
+struct S
+{
+ __attribute__((noinline, noclone)) ~S () noexcept (true)
+ {
+ if (fn)
+ fn (1);
+ }
+ void (*fn) (int);
+};
+
+__attribute__((noinline, noclone)) void
+foo (int x)
+{
+ if (x != 1)
+ throw 1;
+}
+
+int
+main ()
+{
+ for (int i = 0; i < 100; i++)
+ {
+ S s;
+ s.fn = foo;
+ }
+}