Hi,
I've run the gcc testsuite for target nvptx-none and ran into "test for
excess errors" FAILs due to:
...
sorry, unimplemented: target cannot support alloca.
...
This patch marks those testcases as requiring alloca.
OK for trunk for stage1?
Thanks,
- Tom
2017-03-23 Tom de Vries <t...@codesourcery.com>
* gcc.dg/Walloca-7.c: Add dg-require-effective-target alloca.
* gcc.dg/Walloca-12.c: Same.
* gcc.dg/attr-alloc_size-8.c: Same.
* gcc.dg/Walloca-4.c: Same.
* gcc.dg/Walloca-8.c: Same.
* gcc.dg/Walloca-13.c: Same.
* gcc.dg/attr-alloc_size-9.c: Same.
* gcc.dg/Walloca-1.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
* gcc.dg/Walloca-5.c: Same.
* gcc.dg/Walloca-10.c: Same.
* gcc.dg/Walloca-9.c: Same.
* gcc.dg/attr-alloc_size-6.c: Same.
* gcc.dg/Wvla-larger-than-1.c: Same.
* gcc.dg/torture/pr71881.c: Same.
* gcc.dg/torture/pr71901.c: Same.
* gcc.dg/torture/pr78742.c: Same.
* gcc.dg/builtin-alloc-size.c: Same.
* gcc.dg/Walloca-2.c: Same.
* gcc.dg/Walloca-6.c: Same.
* gcc.dg/Walloca-11.c: Same.
* gcc.dg/attr-alloc_size-7.c: Same.
* gcc.dg/Wvla-larger-than-2.c: Same.
* gcc.dg/Walloca-3.c: Same.
* c-c++-common/Wimplicit-fallthrough-7.c: Same.
* gcc.c-torture/compile/pr79413.c: Same.
* gcc.c-torture/compile/pr78439.c: Same.
Index: gcc/testsuite/gcc.dg/Walloca-7.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-7.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-7.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca -O0" } */
extern void f(void *);
Index: gcc/testsuite/gcc.dg/Walloca-12.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-12.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-12.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=128 -O2" } */
void f (void*);
Index: gcc/testsuite/gcc.dg/attr-alloc_size-8.c
===================================================================
--- gcc/testsuite/gcc.dg/attr-alloc_size-8.c (revision 246278)
+++ gcc/testsuite/gcc.dg/attr-alloc_size-8.c (working copy)
@@ -3,6 +3,7 @@
-Wvla-larger-than, and -Walloc-size-larger-than options. The former
two more specific options override the more general latter option. */
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-O2 -Walloc-size-larger-than=123 -Walloca-larger-than=234 -Wvla-larger-than=345" } */
#define SIZE_MAX __SIZE_MAX__
Index: gcc/testsuite/gcc.dg/Walloca-4.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-4.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-4.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=5000 -O2" } */
char *
Index: gcc/testsuite/gcc.dg/Walloca-8.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-8.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-8.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=2000 -O2" } */
void *p;
Index: gcc/testsuite/gcc.dg/Walloca-13.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-13.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-13.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=100 -O2" } */
void f (void*);
Index: gcc/testsuite/gcc.dg/attr-alloc_size-9.c
===================================================================
--- gcc/testsuite/gcc.dg/attr-alloc_size-9.c (revision 246278)
+++ gcc/testsuite/gcc.dg/attr-alloc_size-9.c (working copy)
@@ -3,6 +3,7 @@
with attribute malloc. This means that the pointer they return
can be assumed not to alias any other valid pointer. */
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-O2 -fdump-tree-optimized" } */
void sink (void*);
Index: gcc/testsuite/gcc.dg/Walloca-1.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-1.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-1.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=2000 -O2" } */
#define alloca __builtin_alloca
Index: gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c
===================================================================
--- gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c (revision 246278)
+++ gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-3.c (working copy)
@@ -4,6 +4,7 @@
-O2 (-ftree-vrp) is necessary for the tests involving ranges to pass,
otherwise -O1 is sufficient.
{ dg-do compile }
+ { dg-require-effective-target alloca }
{ dg-options "-O2 -Wformat -Wformat-overflow=1 -ftrack-macro-expansion=0" } */
typedef __SIZE_TYPE__ size_t;
Index: gcc/testsuite/gcc.dg/Walloca-5.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-5.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-5.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=123 -O2" } */
/* { dg-xfail-if "Currently broken but Andrew's work should fix this" { *-*-* } } */
Index: gcc/testsuite/gcc.dg/Walloca-10.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-10.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-10.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=2000 -O2" } */
// Test when the conditionals are incorrectly reversed.
Index: gcc/testsuite/gcc.dg/Walloca-9.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-9.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-9.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=5000 -O2" } */
extern void useit(char *);
Index: gcc/testsuite/gcc.dg/attr-alloc_size-6.c
===================================================================
--- gcc/testsuite/gcc.dg/attr-alloc_size-6.c (revision 246278)
+++ gcc/testsuite/gcc.dg/attr-alloc_size-6.c (working copy)
@@ -4,6 +4,7 @@
to allocate objects in excess of the number of bytes specified by
-Walloc-larger-than=maximum. */
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-O0 -Wall -Walloc-size-larger-than=12345" } */
#define MAXOBJSZ 12345
Index: gcc/testsuite/gcc.dg/Wvla-larger-than-1.c
===================================================================
--- gcc/testsuite/gcc.dg/Wvla-larger-than-1.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Wvla-larger-than-1.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Wvla-larger-than=100 -O2" } */
typedef __SIZE_TYPE__ size_t;
Index: gcc/testsuite/gcc.dg/torture/pr71881.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr71881.c (revision 246278)
+++ gcc/testsuite/gcc.dg/torture/pr71881.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-additional-options "-g" } */
int a, b, c, d, *e, f, g;
Index: gcc/testsuite/gcc.dg/torture/pr71901.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr71901.c (revision 246278)
+++ gcc/testsuite/gcc.dg/torture/pr71901.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
typedef struct { int _mp_size; } mpz_t[1];
int a, b;
Index: gcc/testsuite/gcc.dg/torture/pr78742.c
===================================================================
--- gcc/testsuite/gcc.dg/torture/pr78742.c (revision 246278)
+++ gcc/testsuite/gcc.dg/torture/pr78742.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target int128 } */
+/* { dg-require-effective-target alloca } */
void foo();
Index: gcc/testsuite/gcc.dg/builtin-alloc-size.c
===================================================================
--- gcc/testsuite/gcc.dg/builtin-alloc-size.c (revision 246278)
+++ gcc/testsuite/gcc.dg/builtin-alloc-size.c (working copy)
@@ -3,6 +3,7 @@
attribute alloc_size that __builtin_object_size can make use of (or
are treated as if they were for that purpose)..
{ dg-do compile }
+ { dg-require-effective-target alloca }
{ dg-additional-options "-O2 -fdump-tree-optimized" } */
void sink (void*);
Index: gcc/testsuite/gcc.dg/Walloca-2.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-2.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-2.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=2000 -O2" } */
void f (void *);
Index: gcc/testsuite/gcc.dg/Walloca-6.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-6.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-6.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=256 -O2" } */
/* { dg-xfail-if "Currently broken but Andrew's work should fix this" { *-*-* } } */
Index: gcc/testsuite/gcc.dg/Walloca-11.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-11.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-11.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca -O2" } */
// Make sure we don't warn on VLA with -Walloca.
Index: gcc/testsuite/gcc.dg/attr-alloc_size-7.c
===================================================================
--- gcc/testsuite/gcc.dg/attr-alloc_size-7.c (revision 246278)
+++ gcc/testsuite/gcc.dg/attr-alloc_size-7.c (working copy)
@@ -3,6 +3,7 @@
detect and diagnose calls that attemnpt to allocate objects in excess
of the maximum specified by -Walloc-size-larger-than=maximum. */
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-O2 -Wall -Walloc-size-larger-than=12345" } */
#define SIZE_MAX __SIZE_MAX__
Index: gcc/testsuite/gcc.dg/Wvla-larger-than-2.c
===================================================================
--- gcc/testsuite/gcc.dg/Wvla-larger-than-2.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Wvla-larger-than-2.c (working copy)
@@ -1,5 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target stdint_types } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-O2 -Wvla-larger-than=40" } */
#include <stdint.h>
Index: gcc/testsuite/gcc.dg/Walloca-3.c
===================================================================
--- gcc/testsuite/gcc.dg/Walloca-3.c (revision 246278)
+++ gcc/testsuite/gcc.dg/Walloca-3.c (working copy)
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Walloca-larger-than=2000 -O2" } */
void f (void *);
Index: gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c
===================================================================
--- gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c (revision 246278)
+++ gcc/testsuite/c-c++-common/Wimplicit-fallthrough-7.c (working copy)
@@ -1,5 +1,6 @@
/* PR c/7652 */
/* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
/* { dg-options "-Wimplicit-fallthrough" } */
extern void bar (int);
Index: gcc/testsuite/gcc.c-torture/compile/pr79413.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/pr79413.c (revision 246278)
+++ gcc/testsuite/gcc.c-torture/compile/pr79413.c (working copy)
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target alloca } */
/* PR c/79413 */
void
Index: gcc/testsuite/gcc.c-torture/compile/pr78439.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/pr78439.c (revision 246278)
+++ gcc/testsuite/gcc.c-torture/compile/pr78439.c (working copy)
@@ -1,3 +1,4 @@
+/* { dg-require-effective-target alloca } */
/* PR target/78439. */
enum demangle_component_type