PR tree-optimization/78586 - [7 Regression] Wrong code caused by printf-return-value
authorMartin Sebor <msebor@redhat.com>
Wed, 30 Nov 2016 19:16:03 +0000 (19:16 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Wed, 30 Nov 2016 19:16:03 +0000 (12:16 -0700)
gcc/testsuite/ChangeLog:

PR tree-optimization/78586
* gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.

From-SVN: r243081

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c

index fe0edd71f66c33148d5f9afc56e1ebe59872b822..0924207df584d7b3af0c3eb0b2372d4700aa291e 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-30  Martin Sebor  <msebor@redhat.com>
+
+       PR tree-optimization/78586
+       * gcc.dg/tree-ssa/builtin-sprintf-2.c: New test cases.
+
 2016-11-30  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR tree-optimization/77856
index 6279956c411fc0e0d3d63eb428a9c2d1950063e7..4dddccdf44db9decb6b3036047d91c793fb282b9 100644 (file)
 # define LINE 0
 #endif
 
-#define INT_MAX __INT_MAX__
+#define INT_MAX    __INT_MAX__
+#define INT_MIN    (-INT_MAX - 1)
+
+#define LONG_MAX   __LONG_MAX__
+#define LONG_MIN   (-LONG_MAX - 1)
 
 char *buf;
 char buf8k [8192];
@@ -50,8 +54,13 @@ char buf8k [8192];
       }                                                                        \
   }
 
+typedef __SIZE_TYPE__ size_t;
+
 extern int i;
+extern unsigned u;
 extern long li;
+extern unsigned long lu;
+extern size_t sz;
 extern char *str;
 
 extern double d;
@@ -162,6 +171,20 @@ RNG (0,  4,  7, "%i", i)
 RNG (0,  5,  7, "%i", i)
 RNG (0,  6,  7, "%i", i)
 
+RNG (4,  4, 32, "%i", i)
+RNG (4,  4, 32, "%u", u)
+RNG (4,  4, 32, "%li", li)
+RNG (4,  4, 32, "%lu", lu)
+RNG (4,  4, 32, "%zu", sz)
+
+/* Exercise bug 78586.  */
+RNG (4,  4, 32, "%lu", (unsigned long)i)
+RNG (4,  4, 32, "%lu", (unsigned)u)
+RNG (4,  4, 32, "%lu", (unsigned long)li)
+RNG (4,  4, 32, "%lu", (unsigned long)lu)
+RNG (4,  4, 32, "%lu", (unsigned long)sz)
+
+
 #if __SIZEOF_INT__ == 4
 
 /* A 32-bit int takes up at most 11 bytes (-2147483648) not including
@@ -252,5 +275,5 @@ RNG (0,  6,   8, "%s%ls", "1", L"2");
 
 */
 
-/* { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *__builtin_abort" 114 "optimized" { target { ilp32 || lp64 } } } } */
-/* { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *__builtin_abort" 83 "optimized" { target { { ! ilp32 } && { ! lp64 } } } } } */
+/* { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *__builtin_abort" 124 "optimized" { target { ilp32 || lp64 } } } } */
+/* { dg-final { scan-tree-dump-times "> \\\[\[0-9.\]+%\\\]:\n *__builtin_abort" 93 "optimized" { target { { ! ilp32 } && { ! lp64 } } } } } */