diff --git a/gcc/testsuite/g++.dg/torture/pr97960.C b/gcc/testsuite/g++.dg/torture/pr97960.C new file mode 100644 index 00000000000..c6c068ea12e --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr97960.C @@ -0,0 +1,30 @@ +// PR tree-optimization/97960 +// { dg-do run } + +#if __CHAR_BIT__ == 8 && __SIZEOF_INT__ == 4 +const int & +foo (const int &d, const int &f) +{ + if (d < f) + return f; + return d; +} + +short a[575]; +unsigned b[25]; +unsigned char g; +#endif + +int +main () +{ +#if __CHAR_BIT__ == 8 && __SIZEOF_INT__ == 4 + for (int e = 0; e < 23; ++e) + a[e * 23] = 16137; + for (signed char h = (unsigned char) (foo (g, 253) + 3); h < 24; h++) + b[h] = 1064739102; + for (int e = 0; e < 23; ++e) + if (a[e * 23] != 16137) + __builtin_abort (); +#endif +}