Re-add test.
authorEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 26 Feb 2018 16:37:11 +0000 (16:37 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 26 Feb 2018 16:37:11 +0000 (16:37 +0000)
From-SVN: r257998

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

diff --git a/gcc/testsuite/gcc.c-torture/execute/20180226-1.c b/gcc/testsuite/gcc.c-torture/execute/20180226-1.c
new file mode 100644 (file)
index 0000000..e2b678c
--- /dev/null
@@ -0,0 +1,31 @@
+/* PR rtl-optimization/83496 */
+/* Reported by Hauke Mehrtens <gcc@hauke-m.de> */
+
+extern void abort (void);
+
+typedef unsigned long mp_digit;
+
+typedef struct { int used, alloc, sign; mp_digit *dp; } mp_int;
+
+int mytest(mp_int *a, mp_digit b) __attribute__((noclone, noinline));
+
+int mytest(mp_int *a, mp_digit b)
+{
+  if (a->sign == 1)
+    return -1;
+  if (a->used > 1)
+    return 1;
+  if (a->dp[0] > b)
+    return 1;
+  if (a->dp[0] < b)
+    return -1;
+  return 0;
+}
+
+int main (void)
+{
+  mp_int i = { 2, 0, -1 };
+  if (mytest (&i, 0) != 1)
+    abort ();
+  return 0;
+}