aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-11-13 13:38:57 +0100
committerRichard Biener <rguenther@suse.de>2023-11-13 13:40:29 +0100
commita0b2abef4e62d816f669df478a3cc320647c3b31 (patch)
tree530fc14d93c013f9d6262370d575691cc90e8012
parente0cacaabca30208f4ed05abddf48ff821374a0c6 (diff)
downloadgcc-a0b2abef4e62d816f669df478a3cc320647c3b31.zip
gcc-a0b2abef4e62d816f669df478a3cc320647c3b31.tar.gz
gcc-a0b2abef4e62d816f669df478a3cc320647c3b31.tar.bz2
tree-optimization/111792 - new testcase
This was fixed as part of the PR111000 fix. PR tree-optimization/111792 PR tree-optimization/111000 * gcc.dg/torture/pr111792.c: New testcase.
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr111792.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr111792.c b/gcc/testsuite/gcc.dg/torture/pr111792.c
new file mode 100644
index 0000000..58ae6f1
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr111792.c
@@ -0,0 +1,39 @@
+/* { dg-do run } */
+/* { dg-require-effective-target lp64 } */
+
+int c, d, h, i, j, l, *n = &h;
+short e, f, g, *k, m;
+long o;
+short p(short p1, int q) { return q >= 32 || p1 > 5 >> q ? 1 : p1 << q; }
+long u(unsigned p1)
+{
+ int r = 50, s, *t = &c;
+ L:
+ m && (*k = 0);
+ for (d = 1; d; d--)
+ for (s = 0; s < 3; s++) {
+ *n = i ^ p1;
+ *t = p1 > (unsigned)p((unsigned)(o = 4073709551615) >= p1 && 5, r);
+ if (f)
+ goto L;
+ }
+ for (; e < 1;)
+ return j;
+ int *b[2] = {&s, &r};
+ for (; l; l--) {
+ long a[1];
+ for (r = 0; r < 1; r++) {
+ h = a[0];
+ if (g)
+ goto L;
+ }
+ }
+ return 0;
+}
+int main()
+{
+ u(6);
+ if (c != 1)
+ __builtin_abort();
+ return 0;
+}