aboutsummaryrefslogtreecommitdiff
path: root/SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c')
-rw-r--r--SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c b/SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c
new file mode 100644
index 00000000..9c465d49
--- /dev/null
+++ b/SingleSource/Regression/C/gcc-c-torture/execute/20041114-1.c
@@ -0,0 +1,35 @@
+/* Verify that
+
+ var <= 0 || ((long unsigned) (unsigned) (var - 1) < MAX_UNSIGNED_INT)
+
+ gets folded to 1. */
+
+#include <limits.h>
+
+void abort (void);
+void link_failure (void);
+
+volatile int v;
+
+void
+foo (int var)
+{
+ if (!(var <= 0
+ || ((long unsigned) (unsigned) (var - 1) < UINT_MAX)))
+ link_failure ();
+}
+
+int
+main (int argc, char **argv)
+{
+ foo (v);
+ return 0;
+}
+
+#ifndef __OPTIMIZE__
+void
+link_failure (void)
+{
+ abort ();
+}
+#endif