aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture
diff options
context:
space:
mode:
authorAndrew Pinski <pinskia@physics.uc.edu>2005-11-02 21:44:17 +0000
committerRichard Henderson <rth@gcc.gnu.org>2005-11-02 13:44:17 -0800
commitb426200a44956b057905abb52df07e763e7e2185 (patch)
treea8a257208152510defaa462a00320fab1c588c5b /gcc/testsuite/gcc.c-torture
parent88a33c3406ca21d94db7ca092f3f65c898e23fda (diff)
downloadgcc-b426200a44956b057905abb52df07e763e7e2185.zip
gcc-b426200a44956b057905abb52df07e763e7e2185.tar.gz
gcc-b426200a44956b057905abb52df07e763e7e2185.tar.bz2
re PR middle-end/22429 (-1073741824 <= n && n <= 1073741823 is true where n is 1073741824)
PR 22429 * fold-const.c (build_range_check): Use unsigned when signed overflow is undefined also. If etype is subtype, make sure that the subtraction is in the supertype. From-SVN: r106400
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr22429.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr22429.c b/gcc/testsuite/gcc.c-torture/execute/pr22429.c
new file mode 100644
index 0000000..aa55b6e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr22429.c
@@ -0,0 +1,17 @@
+extern void abort (void);
+
+#define N (1 << (sizeof(int) * __CHAR_BIT__ - 2))
+
+int f(int n)
+{
+ if (-N <= n && n <= N-1)
+ return 1;
+ return 0;
+}
+
+int main ()
+{
+ if (f (N))
+ abort ();
+ return 0;
+}