]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: [multiple changes]
authorRichard Biener <rguenther@suse.de>
Mon, 18 Sep 2017 11:10:06 +0000 (11:10 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 18 Sep 2017 11:10:06 +0000 (11:10 +0000)
2017-09-18  Richard Biener  <rguenther@suse.de>

Backport from mainline
2017-04-07  Richard Biener  <rguenther@suse.de>

PR middle-end/80341
* gcc.dg/torture/pr80341.c: New testcase.

2017-04-04  Richard Biener  <rguenther@suse.de>

PR middle-end/80281
* gcc.dg/torture/pr80281.c: New testcase.

From-SVN: r252920

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

index 910888ed964c9e5b6387329cd8f9a787a82e6417..bf4436f972e4945f9d3de7b27f374958b3810479 100644 (file)
@@ -1,3 +1,16 @@
+2017-09-18  Richard Biener  <rguenther@suse.de>
+       Backport from mainline
+       2017-04-07  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/80341
+       * gcc.dg/torture/pr80341.c: New testcase.
+
+       2017-04-04  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/80281
+       * gcc.dg/torture/pr80281.c: New testcase.
+
 2017-09-18  Richard Biener  <rguenther@suse.de>
  
        Backport from mainline
diff --git a/gcc/testsuite/gcc.dg/torture/pr80281.c b/gcc/testsuite/gcc.dg/torture/pr80281.c
new file mode 100644 (file)
index 0000000..bff4f6e
--- /dev/null
@@ -0,0 +1,14 @@
+/* { dg-run } */
+/* { dg-require-effective-target int32plus } */
+
+int
+main ()
+{
+  volatile int a = 0;
+  long long b = 2147483648LL;
+  int c = a % 2;
+  int x = ((int) -b + c) % -2147483647;
+  if (x != -1)
+    __builtin_abort ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/torture/pr80341.c b/gcc/testsuite/gcc.dg/torture/pr80341.c
new file mode 100644 (file)
index 0000000..c9e1239
--- /dev/null
@@ -0,0 +1,20 @@
+/* { dg-do run } */
+/* { dg-additional-options "-Wno-overflow" } */
+/* { dg-require-effective-target int32plus } */
+
+const signed char c = -84;
+signed char s;
+
+void
+foo ()
+{
+  s = (unsigned short) c / -55;
+}
+
+int
+main ()
+{
+  foo ();
+  if (s != 90)
+    __builtin_abort ();
+}