diff --git a/gcc/testsuite/c-c++-common/Walloca-larger-than.c b/gcc/testsuite/c-c++-common/Walloca-larger-than.c
index e7851eabb463e449456ffb124cafb596d84fd186..6fdc1de17c9f483a7fc7d8b5819ed478644cfd81 100644
--- a/gcc/testsuite/c-c++-common/Walloca-larger-than.c
+++ b/gcc/testsuite/c-c++-common/Walloca-larger-than.c
@@ -1,6 +1,7 @@
 /* PR middle-end/100425 - missing -Walloca-larger-than with -O0
    { dg-do compile }
-   { dg-options "-O0 -Wall -Walloca-larger-than=128" } */
+   { dg-options "-O0 -Wall -Walloca-larger-than=128" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/c-c++-common/Warray-bounds-9.c b/gcc/testsuite/c-c++-common/Warray-bounds-9.c
index be05775fa913ad4bd181dc3a4e239aef6b14e117..3b5cdfe12a2aeef04032629f75df5256399e3d87 100644
--- a/gcc/testsuite/c-c++-common/Warray-bounds-9.c
+++ b/gcc/testsuite/c-c++-common/Warray-bounds-9.c
@@ -1,7 +1,8 @@
 /* PR tree-optimization/99121 - ICE in -Warray-bounds on a multidimensional
    VLA
    { dg-do compile }
-   { dg-options "-O2 -Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-O2 -Wall -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 #define NOIPA __attribute__ ((noipa))
 
diff --git a/gcc/testsuite/c-c++-common/Wdangling-pointer-2.c b/gcc/testsuite/c-c++-common/Wdangling-pointer-2.c
index 527e5e7b2c6f884f5d033531c93f32616e7d88b8..20f11b227d647f8db28fc0489591d1ad8c407b83 100644
--- a/gcc/testsuite/c-c++-common/Wdangling-pointer-2.c
+++ b/gcc/testsuite/c-c++-common/Wdangling-pointer-2.c
@@ -2,7 +2,8 @@
    variable within the same function
    Exercise basic cases of -Wdangling-pointer with optimization.
    { dg-do compile }
-   { dg-options "-O2 -Wall -Wno-uninitialized -Wno-return-local-addr -ftrack-macro-expansion=0" } */
+   { dg-options "-O2 -Wall -Wno-uninitialized -Wno-return-local-addr -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 typedef __INTPTR_TYPE__ intptr_t;
 typedef __SIZE_TYPE__   size_t;
diff --git a/gcc/testsuite/c-c++-common/Wdangling-pointer-4.c b/gcc/testsuite/c-c++-common/Wdangling-pointer-4.c
index e57e66f833682780e1d018b4c4644ba4cff7a4b4..a747aabd28881c2b1dcf03d8e238f98e4de988b7 100644
--- a/gcc/testsuite/c-c++-common/Wdangling-pointer-4.c
+++ b/gcc/testsuite/c-c++-common/Wdangling-pointer-4.c
@@ -2,7 +2,8 @@
    variable within the same function
    Exercise -Wdangling-pointer for VLAs.
    { dg-do compile }
-   { dg-options "-O0 -Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-O0 -Wall -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 void sink (void*, ...);
 
diff --git a/gcc/testsuite/c-c++-common/Wdangling-pointer-5.c b/gcc/testsuite/c-c++-common/Wdangling-pointer-5.c
index 1f549ca70a76618bd21ec7f9689c429f19603b87..2a165cea767688a03e6ed38f772f5fa09384072b 100644
--- a/gcc/testsuite/c-c++-common/Wdangling-pointer-5.c
+++ b/gcc/testsuite/c-c++-common/Wdangling-pointer-5.c
@@ -3,7 +3,8 @@
    Exercise -Wdangling-pointer for escaping stores of addreses of auto
    variables.
    { dg-do compile }
-   { dg-options "-O0 -Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-O0 -Wall -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 void* alloca (__SIZE_TYPE__);
 
diff --git a/gcc/testsuite/c-c++-common/Wdangling-pointer.c b/gcc/testsuite/c-c++-common/Wdangling-pointer.c
index 394ff923746db3835014faad9506713172c13ad1..0a18c3c8249e9f2cadcbe3daebea28310d244ce1 100644
--- a/gcc/testsuite/c-c++-common/Wdangling-pointer.c
+++ b/gcc/testsuite/c-c++-common/Wdangling-pointer.c
@@ -2,7 +2,8 @@
    variable within the same function
    Exercise basic cases of -Wdangling-pointer without optimization.
    { dg-do compile }
-   { dg-options "-O0 -Wall -Wno-uninitialized -ftrack-macro-expansion=0" } */
+   { dg-options "-O0 -Wall -Wno-uninitialized -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 typedef __INTPTR_TYPE__ intptr_t;
 typedef __SIZE_TYPE__   size_t;
diff --git a/gcc/testsuite/c-c++-common/auto-init-11.c b/gcc/testsuite/c-c++-common/auto-init-11.c
index 6eb468785ce14a4eded0035039951e07e2c57d40..aafa2154a062eca0a785eb76dc0a75ce9fd697e5 100644
--- a/gcc/testsuite/c-c++-common/auto-init-11.c
+++ b/gcc/testsuite/c-c++-common/auto-init-11.c
@@ -1,6 +1,7 @@
 /* Verify zero initialization for VLA automatic variables.  */
 /* { dg-do compile } */
 /* { dg-options "-ftrivial-auto-var-init=zero -fdump-tree-gimple" } */
+/* { dg-require-effective-target alloca } */
 
 extern void bar (int);
 
diff --git a/gcc/testsuite/c-c++-common/auto-init-12.c b/gcc/testsuite/c-c++-common/auto-init-12.c
index 964291c5bd9498905dc83c5b490d520e8796cdd5..c073bc9a1f8b1dd3923e3cfba86df6f38570c1b7 100644
--- a/gcc/testsuite/c-c++-common/auto-init-12.c
+++ b/gcc/testsuite/c-c++-common/auto-init-12.c
@@ -1,6 +1,7 @@
 /* Verify zero initialization for VLA automatic variables.  */
 /* { dg-do compile } */
 /* { dg-options "-ftrivial-auto-var-init=pattern -fdump-tree-gimple" } */
+/* { dg-require-effective-target alloca } */
 
 extern void bar (int);
 
diff --git a/gcc/testsuite/c-c++-common/auto-init-15.c b/gcc/testsuite/c-c++-common/auto-init-15.c
index 5857287ecbef3af061c1dcd6e5efae80e0ce160f..77710a961747345a1f284543baee7f394455c41b 100644
--- a/gcc/testsuite/c-c++-common/auto-init-15.c
+++ b/gcc/testsuite/c-c++-common/auto-init-15.c
@@ -1,6 +1,7 @@
 /* Verify the auto initialization of nested VLA.  */
 /* { dg-do compile } */
 /* { dg-options "-ftrivial-auto-var-init=zero -fdump-tree-gimple" } */
+/* { dg-require-effective-target alloca } */
 
 void g(void *);
 
diff --git a/gcc/testsuite/c-c++-common/auto-init-16.c b/gcc/testsuite/c-c++-common/auto-init-16.c
index 1e309959fc5c1a268b9508b6a8cbcf016f116d00..3714bc3212568413df214e64052509455069eb3b 100644
--- a/gcc/testsuite/c-c++-common/auto-init-16.c
+++ b/gcc/testsuite/c-c++-common/auto-init-16.c
@@ -1,6 +1,7 @@
 /* Verify the auto initialization of nested VLA.  */
 /* { dg-do compile } */
 /* { dg-options "-ftrivial-auto-var-init=pattern -fdump-tree-gimple" } */
+/* { dg-require-effective-target alloca } */
 
 void g(void *);
 
diff --git a/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c b/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
index d24f3b59d7b895e59b01930b21db59ceaed16a32..9cb202fc690b5372564fc4c659c43667ef8400f9 100644
--- a/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
+++ b/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
@@ -1,3 +1,5 @@
+/* { dg-require-effective-target alloca } */
+
 /* PR libstdc++/88101 */
 
 struct S { char a; short b; char c; };
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c b/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
index d98b7e746be397142052463a48df8024d62b655a..0e16301ede9e60d4f2578f376024a27b18276065 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr99787-1.c
@@ -1,4 +1,5 @@
 /* { dg-options "-ftree-slp-vectorize -ffp-contract=on -ffloat-store"  }  */
+/* { dg-require-effective-target alloca } */
 
 _Complex foo_x_0;
 int foo_n11, foo_i, foo_l;
diff --git a/gcc/testsuite/gcc.dg/Walloca-larger-than-4.c b/gcc/testsuite/gcc.dg/Walloca-larger-than-4.c
index 9d4c4e8d062a4ef9a6c7f1a0a5eb6838093b63e9..aac8b9732f7540b73b9bad0f445863bdc83323d0 100644
--- a/gcc/testsuite/gcc.dg/Walloca-larger-than-4.c
+++ b/gcc/testsuite/gcc.dg/Walloca-larger-than-4.c
@@ -1,6 +1,7 @@
 /* PR middle-end/100425 - missing -Walloca-larger-than with -O0
    { dg-do compile }
-   { dg-options "-O0 -Wall -Walloca-larger-than=128" } */
+   { dg-options "-O0 -Wall -Walloca-larger-than=128" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/Wdangling-pointer.c b/gcc/testsuite/gcc.dg/Wdangling-pointer.c
index d792d09ffca49ce91802a1e770fef4dc2e23ab67..89e222038dbc9c4f90e7bb0d4f0b71680e476bd5 100644
--- a/gcc/testsuite/gcc.dg/Wdangling-pointer.c
+++ b/gcc/testsuite/gcc.dg/Wdangling-pointer.c
@@ -1,6 +1,7 @@
 /* Exercise basic C-only cases of -Wdangling-pointer.
    { dg-do compile }
-   { dg-options "-O0 -Wall" } */
+   { dg-options "-O0 -Wall" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c b/gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c
index 2b00d77e8b83e7b1a75727231eff6edc5a87e1bf..e9316a5d239cecf0c5961888ccd719298bc78fd2 100644
--- a/gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c
+++ b/gcc/testsuite/gcc.dg/Wfree-nonheap-object-2.c
@@ -2,7 +2,8 @@
    Verify that attempting to reallocate unallocated objects referenced
    either directly or through pointers is diagnosed.
    { dg-do compile }
-   { dg-options "-O2 -Wall -Wfree-nonheap-object" }  */
+   { dg-options "-O2 -Wall -Wfree-nonheap-object" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/Wfree-nonheap-object.c b/gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
index bb222ccf6abc9362b5e04f40c15873150dac680f..c7c668043a53e1c4fbcfce39191f5042ce90b36e 100644
--- a/gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
+++ b/gcc/testsuite/gcc.dg/Wfree-nonheap-object.c
@@ -3,7 +3,8 @@
    or through pointers is diagnosed.  In most cases this doesn't require
    optimization.
    { dg-do compile }
-   { dg-options "-Wall -Wfree-nonheap-object" }  */
+   { dg-options "-Wall -Wfree-nonheap-object" }
+   { dg-require-effective-target alloca } */
 
 typedef __INTPTR_TYPE__ intptr_t;
 typedef __SIZE_TYPE__   size_t;
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-56.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-56.c
index b3e598ca30e4ab34790271b544be7dffb485651d..5ba4de48f5a5afe04037e6c5058f2bd91eb73734 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-56.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-56.c
@@ -1,7 +1,8 @@
 /* PR middle-end/92942 - missing -Wstringop-overflow for allocations with
    a negative lower bound size
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 #define SIZE_MAX        __SIZE_MAX__
 #define UINT8_MAX       __UINT8_MAX__
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-57.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-57.c
index 173aa164646042158f5b7247135c5e5ed946bef3..6ae8589070f098dcfaa00ba3bfefd8b8bacb8759 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-57.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-57.c
@@ -1,7 +1,8 @@
 /* Verify that an anti-range ~[A, B] with small positive A and B
    is handled correctly and doesn't trigger warnings.
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 typedef __typeof__ (sizeof 0) size_t;
 
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-67.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-67.c
index 7b8f3f014c63b359ebf6ebbfca6735b41dd3bb14..0f01082ede4013f66e7a70c8bd6dcd89d0e57ccb 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-67.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-67.c
@@ -1,7 +1,8 @@
 /* PR middle-end/100571 - bogus -Wstringop-overflow with VLA of elements
    larger than byte
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 __attribute__ ((access (read_only, 1, 2))) void fro (int *, int);
 __attribute__ ((access (write_only, 1, 2))) void fwo (int *, int);
diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-71.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-71.c
index f56a00560b0016400f6cb07af694e1d9b69b0e69..74311ecf7ff47c7fab4ca610c544d236d32da3ce 100644
--- a/gcc/testsuite/gcc.dg/Wstringop-overflow-71.c
+++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-71.c
@@ -2,7 +2,8 @@
    a larger scalar into a smaller array
    Verify warnings for overflow by stores of results of built-in functions.
    { dg-do compile }
-   { dg-options "-O2" } */
+   { dg-options "-O2" }
+   { dg-require-effective-target alloca } */
 
 typedef __INT16_TYPE__ int16_t;
 typedef __SIZE_TYPE__  size_t;
diff --git a/gcc/testsuite/gcc.dg/Wvla-larger-than-5.c b/gcc/testsuite/gcc.dg/Wvla-larger-than-5.c
index c131f837a1b1d2a7d3cc1cba184b484dd3743e95..ebd7fb3e017f742bdb0aef05fab2a566a6dcb17d 100644
--- a/gcc/testsuite/gcc.dg/Wvla-larger-than-5.c
+++ b/gcc/testsuite/gcc.dg/Wvla-larger-than-5.c
@@ -1,6 +1,7 @@
 /* PR middle-end/100510 - bogus -Wvla-large-than with -Walloca
    { dg-do compile }
-   { dg-options "-O0 -Walloca -Wvla-larger-than=1000" } */
+   { dg-options "-O0 -Walloca -Wvla-larger-than=1000" }
+   { dg-require-effective-target alloca } */
 
 void f (void*);
 
diff --git a/gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c b/gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
index 102aa4b9220391dc23842ed8d870da35a1af03c0..bc4f63bb3bd6fd2644336d01b2f15349b9db09ed 100644
--- a/gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/taint-alloc-1.c
@@ -1,5 +1,6 @@
 // TODO: remove need for this option
 /* { dg-additional-options "-fanalyzer-checker=taint" } */
+/* { dg-require-effective-target alloca } */
 
 #include "analyzer-decls.h"
 #include <stdio.h>
diff --git a/gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c b/gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
index 2e1e6a09feadc89b126cf88c7fa40bc7ddf16dca..18a5f8d8cc53afce86a43be7b56bd8eeabcbbe63 100644
--- a/gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/torture/ubsan-1.c
@@ -1,5 +1,6 @@
 /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
 /* { dg-additional-options "-fsanitize=bounds" } */
+/* { dg-require-effective-target alloca } */
 
 #include <stdlib.h>
 #include "../analyzer-decls.h"
diff --git a/gcc/testsuite/gcc.dg/graphite/pr99085.c b/gcc/testsuite/gcc.dg/graphite/pr99085.c
index dc1c9359ef0c11cc81f1d371627f230298f1de1c..dd068862fb76accfca515f5d18c42b35190a103f 100644
--- a/gcc/testsuite/gcc.dg/graphite/pr99085.c
+++ b/gcc/testsuite/gcc.dg/graphite/pr99085.c
@@ -1,6 +1,7 @@
 /* PR target/99085 */
 /* { dg-do compile } */
 /* { dg-options "-O2 -fgraphite-identity -fsel-sched-pipelining -fselective-scheduling2" } */
+/* { dg-require-effective-target alloca } */
 
 void
 foo (int m, int n, int o, int i)
diff --git a/gcc/testsuite/gcc.dg/pr100225.c b/gcc/testsuite/gcc.dg/pr100225.c
index b32163441a3c37bdfd8d085ac4e958821afcf0c1..f0efd29fa869b43c3b710933b83c959cde5d8586 100644
--- a/gcc/testsuite/gcc.dg/pr100225.c
+++ b/gcc/testsuite/gcc.dg/pr100225.c
@@ -1,6 +1,7 @@
 /* PR rtl-optimization/100225 */
 /* { dg-do compile } */
 /* { dg-options "-O1 -fmodulo-sched" } */
+/* { dg-require-effective-target alloca } */
 
 void
 vorbis_synthesis_lapout (void);
diff --git a/gcc/testsuite/gcc.dg/pr98721-1.c b/gcc/testsuite/gcc.dg/pr98721-1.c
index 868b071afc5148b06554eaaafaaf7542a1e94f9c..1c7574fb8838a1e2f3166d6cdc9c56b67bcea965 100644
--- a/gcc/testsuite/gcc.dg/pr98721-1.c
+++ b/gcc/testsuite/gcc.dg/pr98721-1.c
@@ -1,6 +1,7 @@
 /* PR tree-optimization/98721 */
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
+/* { dg-require-effective-target alloca } */
 
 int
 foo (int n)
diff --git a/gcc/testsuite/gcc.dg/pr99122-2.c b/gcc/testsuite/gcc.dg/pr99122-2.c
index 2b1054282332a79be3102271b9045213cc88dfd5..c0c850f141cde0bb8ac0615262828eda61566fd7 100644
--- a/gcc/testsuite/gcc.dg/pr99122-2.c
+++ b/gcc/testsuite/gcc.dg/pr99122-2.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -g -w" } */
+/* { dg-require-effective-target alloca } */
 
 static int foo ();
 
diff --git a/gcc/testsuite/gcc.dg/sso-14.c b/gcc/testsuite/gcc.dg/sso-14.c
index aeff3fb16fb8d6e76694f4136f2ddbd41052139d..7b1590ad03a7bb83bd88c5caf54cd9ab7310e053 100644
--- a/gcc/testsuite/gcc.dg/sso-14.c
+++ b/gcc/testsuite/gcc.dg/sso-14.c
@@ -2,6 +2,7 @@
 /* Testcase by George Thopas <george.thopas@gmail.com> */
 
 /* { dg-do compile } */
+/* { dg-require-effective-target alloca } */
 
 #include <stddef.h>
 #include <stdlib.h>
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
index df46023d8c58aebd06e1851aa4e8b6cff970dfa5..a28f0668c91783eddd8eb2b183dbcdf92ae9ab70 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-25.c
@@ -1,6 +1,7 @@
 /* PR middle-end/97373 - missing warning on sprintf into allocated destination
    { dg-do compile }
-   { dg-options "-O2 -Wall -ftrack-macro-expansion=0" } */
+   { dg-options "-O2 -Wall -ftrack-macro-expansion=0" }
+   { dg-require-effective-target alloca } */
 
 #include "../range.h"
 
diff --git a/gcc/testsuite/gcc.dg/uninit-38.c b/gcc/testsuite/gcc.dg/uninit-38.c
index ff2aee6cccf4acf698e2f6e08ec3b5d0bac7b1cf..9a202430b595e2a39b0cc254b993a7ec9223b1fd 100644
--- a/gcc/testsuite/gcc.dg/uninit-38.c
+++ b/gcc/testsuite/gcc.dg/uninit-38.c
@@ -6,7 +6,8 @@
    be adjusted.  Ditto if -Wuninitialized output changes for some
    other reason.
    { dg-do compile { target { { lp64 || ilp32 } || llp64 } } }
-   { dg-options "-O2 -Wall -ftrack-macro-expansion=0 -fno-ipa-modref" } */
+   { dg-options "-O2 -Wall -ftrack-macro-expansion=0 -fno-ipa-modref" }
+   { dg-require-effective-target alloca } */
 
 #define CONCAT(x, y)   x ## y
 #define CAT(x, y)      CONCAT(x, y)
diff --git a/gcc/testsuite/gcc.dg/uninit-39.c b/gcc/testsuite/gcc.dg/uninit-39.c
index 0f9185427739e51e814123df4c39dff9ad7f6e5e..4d17f14725f185bb6f16ac548608710bda3b926d 100644
--- a/gcc/testsuite/gcc.dg/uninit-39.c
+++ b/gcc/testsuite/gcc.dg/uninit-39.c
@@ -1,7 +1,8 @@
 /* PR c/98592 - ICE in gimple_canonical_types_compatible_p while formatting
    a MEM_REF
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 void f (int);
 
diff --git a/gcc/testsuite/gcc.dg/uninit-41.c b/gcc/testsuite/gcc.dg/uninit-41.c
index b485611e994dff5d79d9ff05d133d5c4871047dc..f2e17a81d0922e94799dc9702a763ff740dceb24 100644
--- a/gcc/testsuite/gcc.dg/uninit-41.c
+++ b/gcc/testsuite/gcc.dg/uninit-41.c
@@ -1,7 +1,8 @@
 /* Verify that calls to non-modifying built-ins aren't considered
    potentially modifying.
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/uninit-pr100250.c b/gcc/testsuite/gcc.dg/uninit-pr100250.c
index 8e7a787ddac406fa584e1d585573b016b4e8e9c8..d47fc24cc5a768d31ff09fa315c95cc07d03db83 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr100250.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr100250.c
@@ -1,6 +1,7 @@
 /* PR middle-end/100250 - ICE related to -Wmaybe-uninitialized
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 extern void f (int D, const int[D], const int[D]);
 
diff --git a/gcc/testsuite/gcc.dg/uninit-pr101300.c b/gcc/testsuite/gcc.dg/uninit-pr101300.c
index 4392e8bae4fe93d5b3b6764c7ebd3bc9d2fd3d5d..840fd0b2d6274480b17088545a57c4947992f16c 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr101300.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr101300.c
@@ -1,7 +1,8 @@
 /* PR middle-end/101300 - -fsanitize=undefined suppresses -Wuninitialized
    for a VLA read at -O0
    { dg-do compile }
-   { dg-options "-O0 -Wall -fsanitize=undefined" } */
+   { dg-options "-O0 -Wall -fsanitize=undefined" }
+   { dg-require-effective-target alloca } */
 
 int warn_vla_rd0 (int n)
 {
diff --git a/gcc/testsuite/gcc.dg/uninit-pr101494.c b/gcc/testsuite/gcc.dg/uninit-pr101494.c
index d3267b6e43a4fe4c7a9c7b42c4958b6989ccebed..3c68d1495931906d3691192d1442319be6c9d6b1 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr101494.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr101494.c
@@ -1,6 +1,7 @@
 /* PR middle-end/101494 - bogus -Wmaybe-uninitialized on memrchr of size 0
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/uninit-pr98578.c b/gcc/testsuite/gcc.dg/uninit-pr98578.c
index 745328b9f8d6b617992b2a0cf6ea47ab3ba61f0a..db566c79136919f0f41bd701586a1b7eef3911b2 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr98578.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr98578.c
@@ -1,6 +1,7 @@
 /* PR middle-end/98578 - ICE warning on uninitialized VLA access
    { dg-do compile }
-   { dg-options "-O2 -Wall -fno-ipa-modref" } */
+   { dg-options "-O2 -Wall -fno-ipa-modref" }
+   { dg-require-effective-target alloca } */
 
 void* malloc (__SIZE_TYPE__);
 
diff --git a/gcc/testsuite/gcc.dg/uninit-pr98583.c b/gcc/testsuite/gcc.dg/uninit-pr98583.c
index 638b0295809670852c4b6dfdd5357d3cf80c2f0a..6159c9512f40a06d75f965474a6a06860e2a5eb6 100644
--- a/gcc/testsuite/gcc.dg/uninit-pr98583.c
+++ b/gcc/testsuite/gcc.dg/uninit-pr98583.c
@@ -1,7 +1,8 @@
 /* PR middle-end/98583 - missing -Wuninitialized reading from a second VLA
    in its own block
    { dg-do compile }
-   { dg-options "-O2 -Wall" } */
+   { dg-options "-O2 -Wall" }
+   { dg-require-effective-target alloca } */
 
 void f (int*);
 void g (int);
diff --git a/gcc/testsuite/gcc.dg/vla-stexp-1.c b/gcc/testsuite/gcc.dg/vla-stexp-1.c
index 97d66937e9a3a85d0d009a50ea37e782fdad1a72..baaad36eb12df117ec82e076213d0daebec909af 100644
--- a/gcc/testsuite/gcc.dg/vla-stexp-1.c
+++ b/gcc/testsuite/gcc.dg/vla-stexp-1.c
@@ -1,6 +1,7 @@
 /* PR29970*/
 /* { dg-do run } */
 /* { dg-options "-Wall -O0" } */
+/* { dg-require-effective-target alloca } */
 
 int foo(void)
 {
diff --git a/gcc/testsuite/gcc.dg/vla-stexp-2.c b/gcc/testsuite/gcc.dg/vla-stexp-2.c
index 176f400ce3716fe89213c0309ba80c219ac07558..9f1512567f0fc27708705ea4ac18a5df93073c03 100644
--- a/gcc/testsuite/gcc.dg/vla-stexp-2.c
+++ b/gcc/testsuite/gcc.dg/vla-stexp-2.c
@@ -1,6 +1,7 @@
 /* PR101838 */
 /* { dg-do run } */
 /* { dg-options "-Wpedantic -O0" } */
+/* { dg-require-effective-target alloca } */
 
 
 int bar0(
diff --git a/gcc/testsuite/gcc.dg/vla-stexp-4.c b/gcc/testsuite/gcc.dg/vla-stexp-4.c
index 612b5a802fc54c2a74b15e20c379007e06c3e927..929768cd802734dcf0417c8368507103fe950395 100644
--- a/gcc/testsuite/gcc.dg/vla-stexp-4.c
+++ b/gcc/testsuite/gcc.dg/vla-stexp-4.c
@@ -1,6 +1,7 @@
 /* PR29970, PR91038 */
 /* { dg-do run } */
 /* { dg-options "-O0 -Wunused-variable" } */
+/* { dg-require-effective-target alloca } */
 
 int foo3b(void)   // should not return 0
 {
diff --git a/gcc/testsuite/gcc.dg/vla-stexp-5.c b/gcc/testsuite/gcc.dg/vla-stexp-5.c
index d6a7f2b34b82a6220f41a9b132792e2773f7235b..68614f2d6b98ce5d397f9181a579da9cdd4dd6a8 100644
--- a/gcc/testsuite/gcc.dg/vla-stexp-5.c
+++ b/gcc/testsuite/gcc.dg/vla-stexp-5.c
@@ -1,6 +1,7 @@
 /* PR29970 */
 /* { dg-do run } */
 /* { dg-options "-Wunused-variable" } */
+/* { dg-require-effective-target alloca } */