re PR middle-end/26630 (Incorrect result when subtracting, casting to short and back...
authorRichard Biener <rguenth@gcc.gnu.org>
Mon, 13 Mar 2006 09:02:40 +0000 (09:02 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 13 Mar 2006 09:02:40 +0000 (09:02 +0000)
2006-03-13  Richard Guenther  <rguenther@suse.de>

        PR middle-end/26630
        * gcc.dg/torture/pr26630.c: New testcase.

From-SVN: r111990

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/pr26630.c [new file with mode: 0644]

index ebdbc184389869ac6a12e5163093ee909c7b2aac..553dba47913424c03a6e59a96272c8b381e3563a 100644 (file)
@@ -1,4 +1,9 @@
-2003-03-11  Roger Sayle  <roger@eyesopen.com>
+2006-03-13  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/26630
+       * gcc.dg/torture/pr26630.c: New testcase.
+
+2006-03-11  Roger Sayle  <roger@eyesopen.com>
 
        * gfortran.dg/dependency_10.f90: New test case.
        * gfortran.dg/dependency_11.f90: Likewise.
diff --git a/gcc/testsuite/gcc.dg/torture/pr26630.c b/gcc/testsuite/gcc.dg/torture/pr26630.c
new file mode 100644 (file)
index 0000000..08cf5f6
--- /dev/null
@@ -0,0 +1,11 @@
+/* { dg-do run } */
+
+extern void abort(void);
+int main()
+{
+  int a1 = 40000;
+  int c1 = ( ((int)(short)(a1-10000)) + 10000)*2;
+  if (c1 != 80000)
+    abort();
+  return 0;
+}