aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr107131.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr107131.c b/gcc/testsuite/gcc.c-torture/execute/pr107131.c
new file mode 100644
index 0000000..d4259f1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr107131.c
@@ -0,0 +1,18 @@
+/* PR target/107131 */
+
+__attribute__((noipa)) unsigned long long
+foo (unsigned char o)
+{
+ unsigned long long t1 = -(long long) (o == 0);
+ unsigned long long t2 = -(long long) (t1 > 10439075533421201520ULL);
+ unsigned long long t3 = -(long long) (t1 <= t2);
+ return t3;
+}
+
+int
+main ()
+{
+ if (foo (0) != -1ULL)
+ __builtin_abort ();
+ return 0;
+}