diff gcc/testsuite/gcc.dg/torture/pr81814.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gcc.dg/torture/pr81814.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,36 @@
+/* PR middle-end/81814 */
+/* { dg-do run } */
+
+int
+main ()
+{
+  int i = 0x01000000;
+  int a;
+
+  a = ((signed char) i) != 0 ? 0 : (unsigned long long int) i;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((signed short int) i) != 0 ? 0 : (unsigned long long int) i;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((unsigned short int) i) != 0 ? 0 : (unsigned long long int) i;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((unsigned char) i) != 0 ? 0 : (unsigned long long int) i;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((signed char) i) == 0 ? (unsigned long long int) i : 0;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((signed short int) i) == 0 ? (unsigned long long int) i : 0;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((unsigned short int) i) == 0 ? (unsigned long long int) i : 0;
+  if (a != 0x01000000)
+    __builtin_abort ();
+  a = ((unsigned char) i) == 0 ? (unsigned long long int) i : 0;
+  if (a != 0x01000000)
+    __builtin_abort ();
+
+  return 0;
+}