Testcase for PR rtl-optimization/68381
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Nov 2015 13:35:56 +0000 (13:35 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 24 Nov 2015 13:35:56 +0000 (13:35 +0000)
PR rtl-optimization/68381
* gcc.c-torture/execute/pr68381.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230809 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr68381.c [new file with mode: 0644]

index 47f7ea5..9f327b3 100644 (file)
@@ -1,5 +1,10 @@
 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
+       PR rtl-optimization/68381
+       * gcc.c-torture/execute/pr68381.c: New test.
+
+2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
        * gcc.target/aarch64/cmpimm_branch_1.c: New test.
        * gcc.target/aarch64/cmpimm_cset_1.c: Likewise.
 
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr68381.c b/gcc/testsuite/gcc.c-torture/execute/pr68381.c
new file mode 100644 (file)
index 0000000..cb6abcb
--- /dev/null
@@ -0,0 +1,22 @@
+/* { dg-options "-O -fexpensive-optimizations -fno-tree-bit-ccp" } */
+
+__attribute__ ((noinline, noclone))
+int
+foo (unsigned short x, unsigned short y)
+{
+  int r;
+  if (__builtin_mul_overflow (x, y, &r))
+    __builtin_abort ();
+  return r;
+}
+
+int
+main (void)
+{
+  int x = 1;
+  int y = 2;
+  if (foo (x, y) != x * y)
+    __builtin_abort ();
+  return 0;
+}
+