* gcc.dg/Wvla-1.c: Rename to...
* gcc.dg/Wvla-larger-than-1.c: ...this.
* gcc.dg/Wvla-2.c: Rename to...
* gcc.dg/Wvla-larger-than-2.c: ...this.
* gcc.dg/Wvla-3.c: Rename to...
* gcc.dg/Walloca-11.c.: ...this.
* gcc.dg/wvla-[1-7].c: Rename to:
* gcc.dg/Wvla-[1-7].c: ...this.
From-SVN: r241344
+2016-10-19 Aldy Hernandez <aldyh@redhat.com>
+
+ * gcc.dg/Wvla-1.c: Rename to...
+ * gcc.dg/Wvla-larger-than-1.c: ...this.
+ * gcc.dg/Wvla-2.c: Rename to...
+ * gcc.dg/Wvla-larger-than-2.c: ...this.
+ * gcc.dg/Wvla-3.c: Rename to...
+ * gcc.dg/Walloca-11.c.: ...this.
+ * gcc.dg/wvla-[1-7].c: Rename to:
+ * gcc.dg/Wvla-[1-7].c: ...this.
+
2016-10-19 Bin Cheng <bin.cheng@arm.com>
PR tree-optimization/78005
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Walloca -O2" } */
+
+// Make sure we don't warn on VLA with -Walloca.
+
+void f (void*);
+
+void h1 (unsigned n)
+{
+ int a [n];
+ f (a);
+}
/* { dg-do compile } */
-/* { dg-options "-Wvla-larger-than=100 -O2" } */
+/* { dg-options "-std=c89 -Wvla" } */
-typedef __SIZE_TYPE__ size_t;
-
-extern void useit (char *);
-
-int num;
-
-void test_vlas (size_t num)
-{
- char str2[num]; /* { dg-warning "unbounded use" } */
- useit(str2);
-
- num = 98;
- for (int i=0; i < 1234; ++i) {
- char str[num]; // OK, VLA in a loop, but it is a
- // known size *AND* the compiler takes
- // care of cleaning up between
- // iterations with
- // __builtin_stack_restore.
- useit(str);
- }
-}
+extern void
+func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
/* { dg-do compile } */
-/* { dg-require-effective-target stdint_types } */
-/* { dg-options "-O2 -Wvla-larger-than=40" } */
+/* { dg-options "-std=c99 -Wvla" } */
-#include <stdint.h>
-
-void f0 (void *);
-void
-f1 (__SIZE_TYPE__ a)
-{
- if (a <= 10)
- {
- // 10 * 4 bytes = 40: OK!
- uint32_t x[a];
- f0 (x);
- }
-}
-
-void
-f2 (__SIZE_TYPE__ a)
-{
- if (a <= 11)
- {
- // 11 * 4 bytes = 44: Not OK.
- uint32_t x[a]; // { dg-warning "array may be too large" }
- // { dg-message "note:.*argument may be as large as 44" "note" { target *-*-* } 25 }
- f0 (x);
- }
-}
-
-void
-f3 (__SIZE_TYPE__ a, __SIZE_TYPE__ b)
-{
- if (a <= 5 && b <= 3)
- {
- // 5 * 3 * 4 bytes = 60: Not OK.
- uint32_t x[a][b]; // { dg-warning "array may be too large" }
- f0 (x);
- }
-}
-
-void
-f4 (__SIZE_TYPE__ a, __SIZE_TYPE__ b)
-{
- if (a <= 5 && b <= 2)
- {
- // 5 * 2 * 4 bytes = 40 bytes: OK!
- uint32_t x[a][b];
- f0 (x);
- }
-}
-
-void
-f5 (__SIZE_TYPE__ len)
-{
- // Test that a direct call to __builtin_alloca_with_align is not
- // confused with a VLA.
- void *p = __builtin_alloca_with_align (len, 8);
- f0 (p);
-}
-
-void
-f6 (unsigned stuff)
-{
- int n = 7000;
- do {
- char a[n]; // { dg-warning "variable-length array is too large" }
- f0 (a);
- } while (stuff--);
-}
+extern void
+func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
/* { dg-do compile } */
-/* { dg-options "-Walloca -O2" } */
+/* { dg-options "-pedantic-errors -std=c89 -Wvla" } */
-// Make sure we don't warn on VLA with -Walloca.
-
-void f (void*);
-
-void h1 (unsigned n)
-{
- int a [n];
- f (a);
-}
+extern void
+func (int i, int array[i]); /* { dg-error "ISO C90 forbids variable.* array 'array'" } */
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors -std=c99 -Wvla" } */
+
+extern void
+func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors -std=c89 -Wno-vla" } */
+
+extern void
+func (int i, int array[i]);
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-std=c89 -Wvla" } */
+
+extern void
+func (int i, int [i]); /* { dg-warning "ISO C90 forbids variable length array" } */
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-pedantic-errors -std=c89 -Wvla" } */
+
+extern void
+func (int i, int [i]); /* { dg-error "ISO C90 forbids variable" } */
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-Wvla-larger-than=100 -O2" } */
+
+typedef __SIZE_TYPE__ size_t;
+
+extern void useit (char *);
+
+int num;
+
+void test_vlas (size_t num)
+{
+ char str2[num]; /* { dg-warning "unbounded use" } */
+ useit(str2);
+
+ num = 98;
+ for (int i=0; i < 1234; ++i) {
+ char str[num]; // OK, VLA in a loop, but it is a
+ // known size *AND* the compiler takes
+ // care of cleaning up between
+ // iterations with
+ // __builtin_stack_restore.
+ useit(str);
+ }
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-require-effective-target stdint_types } */
+/* { dg-options "-O2 -Wvla-larger-than=40" } */
+
+#include <stdint.h>
+
+void f0 (void *);
+void
+f1 (__SIZE_TYPE__ a)
+{
+ if (a <= 10)
+ {
+ // 10 * 4 bytes = 40: OK!
+ uint32_t x[a];
+ f0 (x);
+ }
+}
+
+void
+f2 (__SIZE_TYPE__ a)
+{
+ if (a <= 11)
+ {
+ // 11 * 4 bytes = 44: Not OK.
+ uint32_t x[a]; // { dg-warning "array may be too large" }
+ // { dg-message "note:.*argument may be as large as 44" "note" { target *-*-* } 25 }
+ f0 (x);
+ }
+}
+
+void
+f3 (__SIZE_TYPE__ a, __SIZE_TYPE__ b)
+{
+ if (a <= 5 && b <= 3)
+ {
+ // 5 * 3 * 4 bytes = 60: Not OK.
+ uint32_t x[a][b]; // { dg-warning "array may be too large" }
+ f0 (x);
+ }
+}
+
+void
+f4 (__SIZE_TYPE__ a, __SIZE_TYPE__ b)
+{
+ if (a <= 5 && b <= 2)
+ {
+ // 5 * 2 * 4 bytes = 40 bytes: OK!
+ uint32_t x[a][b];
+ f0 (x);
+ }
+}
+
+void
+f5 (__SIZE_TYPE__ len)
+{
+ // Test that a direct call to __builtin_alloca_with_align is not
+ // confused with a VLA.
+ void *p = __builtin_alloca_with_align (len, 8);
+ f0 (p);
+}
+
+void
+f6 (unsigned stuff)
+{
+ int n = 7000;
+ do {
+ char a[n]; // { dg-warning "variable-length array is too large" }
+ f0 (a);
+ } while (stuff--);
+}
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-std=c89 -Wvla" } */
-
-extern void
-func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-std=c99 -Wvla" } */
-
-extern void
-func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-pedantic-errors -std=c89 -Wvla" } */
-
-extern void
-func (int i, int array[i]); /* { dg-error "ISO C90 forbids variable.* array 'array'" } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-pedantic-errors -std=c99 -Wvla" } */
-
-extern void
-func (int i, int array[i]); /* { dg-warning "ISO C90 forbids variable length array 'array'" } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-pedantic-errors -std=c89 -Wno-vla" } */
-
-extern void
-func (int i, int array[i]);
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-std=c89 -Wvla" } */
-
-extern void
-func (int i, int [i]); /* { dg-warning "ISO C90 forbids variable length array" } */
+++ /dev/null
-/* { dg-do compile } */
-/* { dg-options "-pedantic-errors -std=c89 -Wvla" } */
-
-extern void
-func (int i, int [i]); /* { dg-error "ISO C90 forbids variable" } */