aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@gcc.gnu.org>2013-09-18 18:27:49 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-09-18 18:27:49 +0000
commitc9b29b2540c8f68779937cd6024d256774538a2d (patch)
tree504b55ffc84319f85fe2a6ecf1351304b56f259e /gcc
parent080cbf9ecbdb635632aa8b5d9b0f7956020f5369 (diff)
downloadgcc-c9b29b2540c8f68779937cd6024d256774538a2d.zip
gcc-c9b29b2540c8f68779937cd6024d256774538a2d.tar.gz
gcc-c9b29b2540c8f68779937cd6024d256774538a2d.tar.bz2
Add missed testsuite/g++.dg/pr58438.C
From-SVN: r202715
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/pr58438.C45
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/pr58438.C b/gcc/testsuite/g++.dg/pr58438.C
new file mode 100644
index 0000000..4c62cb2
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr58438.C
@@ -0,0 +1,45 @@
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-march=amdfam10 -O3 -fprofile-generate" } */
+enum gimple_code {};
+struct A {
+ gimple_code code;
+};
+struct B {
+ A gsbase;
+};
+int **a;
+int b, d, e, f, g, h, i, j, k, l, m, n, o;
+gimple_code c, p;
+class C {
+ virtual unsigned m_fn1();
+};
+B q;
+static int fn1() {
+ int r;
+ if (k)
+ i = 0;
+ for (; i; j++) {
+ b = c <= 0;
+ if (b)
+ n = *a[0];
+ b = p && c;
+ if (b)
+ r = *a[0];
+ b = q.gsbase.code && c;
+ if (b)
+ o = *a[0];
+ m = o;
+ if (e || 1 & r || d || l)
+ return 0;
+ }
+}
+
+class D : C {
+ unsigned m_fn1() {
+ fn1();
+ for (; h; g++)
+ for (;; f++)
+ ;
+ }
+};
+void fn2() { new D; }