diff --git a/gcc/testsuite/gcc.c-torture/compile/20000211-1.c b/gcc/testsuite/gcc.c-torture/compile/20000211-1.c
index 7a7c8c0cb20..b83d6a40520 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000211-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000211-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef __SIZE_TYPE__ size_t;
 typedef unsigned char Bufbyte;
 typedef int Bytecount;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000403-1.c b/gcc/testsuite/gcc.c-torture/compile/20000403-1.c
index 27345b56fef..cb56028fb8b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000403-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000403-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 struct utsname {
 	char	sysname[32 ];	 
 	char	version[32 ];	 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000609-1.c b/gcc/testsuite/gcc.c-torture/compile/20000609-1.c
index f03aa35a7ac..9a891a82534 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000609-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000609-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 int main ()
 {
   char temp[1024] = "tempfile";
diff --git a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
index 35464c212d2..1a8e80c5489 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
@@ -6,6 +6,7 @@
 /* { dg-skip-if "Not enough 64-bit registers" { pdp11-*-* } { "-O0" } { "" } } */
 /* { dg-xfail-if "Inconsistent constraint on asm" { csky-*-* } { "-O0" } { "" } } */
 /* { dg-xfail-if "" { h8300-*-* } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 /* Copyright (C) 2000, 2003 Free Software Foundation */
 __complex__ long long f ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
index be0bdcf7631..9f6bd0af2e5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20001226-1.c
@@ -3,6 +3,7 @@
 /* { dg-skip-if "too much code for pdp11" { "pdp11-*-*" } } */
 /* { dg-xfail-if "PR36698" { spu-*-* } { "-O0" } { "" } } */
 /* { dg-skip-if "" { m32c-*-* } } */
+/* { dg-skip-if "jumps too far for eBPF" { bpf-*-* } } */
 /* { dg-timeout-factor 4.0 } */
 
 /* This testcase exposed two branch shortening bugs on powerpc.  */
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010102-1.c b/gcc/testsuite/gcc.c-torture/compile/20010102-1.c
index a409b566098..2896f6a6b75 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010102-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20010102-1.c
@@ -4,6 +4,8 @@
 
    Copyright (C) 2001  Free Software Foundation.  */
 
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 # define PTR_INT_TYPE __PTRDIFF_TYPE__
 
 struct _obstack_chunk
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010107-1.c b/gcc/testsuite/gcc.c-torture/compile/20010107-1.c
index 222def4d9ef..1214beb0d26 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20010107-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20010107-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 unsigned long x[4];
 
 void foo(void)
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011109-1.c b/gcc/testsuite/gcc.c-torture/compile/20011109-1.c
index f1987a74bf2..96b225f2fea 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20011109-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20011109-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef struct { short x[4]; } S;
 typedef struct { unsigned int a, b, c; S *d; } T;
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011218-1.c b/gcc/testsuite/gcc.c-torture/compile/20011218-1.c
index bf63489b855..d7971655c58 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20011218-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20011218-1.c
@@ -2,6 +2,8 @@
    for the indirect call was exposed too early and reload couldn't
    allocate it for multiplication and division.  */
 
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 struct S {
   int a, b;
   void (*f) (long, int);
diff --git a/gcc/testsuite/gcc.c-torture/compile/20011229-1.c b/gcc/testsuite/gcc.c-torture/compile/20011229-1.c
index 97b2655434a..7ebd2068d22 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20011229-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20011229-1.c
@@ -1,5 +1,7 @@
 /* ICE: call insn does not satisfy its constraints, MMIX port.
    Origin: ghostscript-6.52, reduction from hp@bitrange.com.  */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 struct s0
 {
   void (*init_color)(void *, void *);
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020129-1.c b/gcc/testsuite/gcc.c-torture/compile/20020129-1.c
index 7b17ba475e4..b137912f393 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020129-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020129-1.c
@@ -1,4 +1,5 @@
 /* Test call to static variable.  */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 typedef struct
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020304-1.c b/gcc/testsuite/gcc.c-torture/compile/20020304-1.c
index 3940d5ffd2e..726ba925b7e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020304-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020304-1.c
@@ -4,6 +4,8 @@
    Original bug report is c/5830 by Manuel Serrano <Manuel.Serrano@inria.fr>.
  */
 
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef union scmobj {
   struct pair {
     union scmobj *car;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020320-1.c b/gcc/testsuite/gcc.c-torture/compile/20020320-1.c
index 385c061e193..36245fc7c17 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020320-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020320-1.c
@@ -2,6 +2,8 @@
    This testcase caused infinite loop in flow (several places),
    because flow assumes gen_jump generates simple_jump_p.  */
 
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef void (*T) (void);
 extern T x[];
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
index d2e186a7182..82eb47a1fa9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020604-1.c
@@ -1,6 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-require-effective-target ptr32plus } */
 /* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 /* PR c/6957
    This testcase ICEd at -O2 on IA-32, because
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020706-1.c b/gcc/testsuite/gcc.c-torture/compile/20020706-1.c
index c8811bc68ff..d2e0b330ef5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020706-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020706-1.c
@@ -1,5 +1,6 @@
 // Contributed by Alexandre Oliva <aoliva@redhat.com>
 // From Red Hat case 106165.
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 typedef struct s1
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20020706-2.c b/gcc/testsuite/gcc.c-torture/compile/20020706-2.c
index b84dda60fd3..14a872f6abd 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20020706-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20020706-2.c
@@ -1,5 +1,6 @@
 // Contributed by Alexandre Oliva <aoliva@redhat.com>
 // From Red Hat case 106165.
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 typedef unsigned short (FUNC_P) (void *, unsigned char *, unsigned short);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021015-1.c b/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
index 789b8a8b176..dd49659a9d4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20021015-1.c
@@ -1,4 +1,5 @@
 /* PR target/7370.  */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 int g (int *x, int *y);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20021205-1.c b/gcc/testsuite/gcc.c-torture/compile/20021205-1.c
index 73648e94951..f9959ca96f4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20021205-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20021205-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef struct x x;
 extern void *baz(char *);
 struct x { char * (*bar) (int); };
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030903-1.c b/gcc/testsuite/gcc.c-torture/compile/20030903-1.c
index fa4d30db6c0..116b0923721 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20030903-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20030903-1.c
@@ -1,6 +1,8 @@
 /* Derived from PR optimization/11700.  */
 /* The compiler used to ICE during reload for m68k targets.  */
 
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 void check_complex (__complex__ double, __complex__ double,
                     __complex__ double, __complex__ int);
 void check_float (double, double, double, int);
diff --git a/gcc/testsuite/gcc.c-torture/compile/20030921-1.c b/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
index 8199dc657f2..6b6b559e331 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20030921-1.c
@@ -2,6 +2,7 @@
    f is not being emitted. TREE_SYMBOL_REFERENCED was being set
    instead of calling mark_referenced.  */
 
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 static void f(void);
 void g(void (*x) (void)){x();}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-1.c b/gcc/testsuite/gcc.c-torture/compile/20031023-1.c
index be837762e66..960fec3667a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20031023-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20031023-1.c
@@ -1,5 +1,7 @@
 /* Declaration of the frame size doesn't work on ptx.  */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 #ifndef ASIZE
 # define ASIZE 0x10000000000UL
 #endif
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-2.c b/gcc/testsuite/gcc.c-torture/compile/20031023-2.c
index 66d66458c85..5df9162c487 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20031023-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20031023-2.c
@@ -1,4 +1,6 @@
 /* Declaration of the frame size doesn't work on ptx.  */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 #define ASIZE 0x1000000000UL
 #include "20031023-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-3.c b/gcc/testsuite/gcc.c-torture/compile/20031023-3.c
index 5859634c343..5030c9feb45 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20031023-3.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20031023-3.c
@@ -1,4 +1,6 @@
 /* Declaration of the frame size doesn't work on ptx.  */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 #define ASIZE 0x100000000UL
 #include "20031023-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031023-4.c b/gcc/testsuite/gcc.c-torture/compile/20031023-4.c
index 5c61f3743d4..db15721c5e9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20031023-4.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20031023-4.c
@@ -1,2 +1,4 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 #define ASIZE 0x80000000UL
 #include "20031023-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/compile/20031125-1.c b/gcc/testsuite/gcc.c-torture/compile/20031125-1.c
index d3e92679c8b..bec6c9372a8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20031125-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20031125-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 short *_offsetTable;
 /* This tests to make sure PRE splits the entry block ->block 0 edge
    when there are multiple block 0 predecessors.
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040101-1.c b/gcc/testsuite/gcc.c-torture/compile/20040101-1.c
index 5c2688ad830..6027cb53fb4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040101-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040101-1.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "not enough registers" { pdp11-*-* } } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 typedef unsigned short uint16_t;
 typedef unsigned int uint32_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040317-2.c b/gcc/testsuite/gcc.c-torture/compile/20040317-2.c
index 3c8ee2b8ec5..3a1fbde2969 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040317-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040317-2.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef struct _ScaleRec *ScaleWidget;
 typedef struct
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040614-1.c b/gcc/testsuite/gcc.c-torture/compile/20040614-1.c
index b692ab569f2..728a9f1d4cb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040614-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040614-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target label_values } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 void f(int r1, int *fp) 
 {     
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040726-1.c b/gcc/testsuite/gcc.c-torture/compile/20040726-1.c
index e53ccd655bb..aea43a56f34 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040726-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040726-1.c
@@ -1,4 +1,6 @@
 /* PR rtl-optimization/16643 */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 void foo (int a, int b, int c, int d, int e, int *f)
 {
   if (a == 0)
diff --git a/gcc/testsuite/gcc.c-torture/compile/20040909-1.c b/gcc/testsuite/gcc.c-torture/compile/20040909-1.c
index 8bbf90191b4..aaeeedc97cd 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20040909-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20040909-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 static __inline__ int
 one_utf8_to_utf16 () { }
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050122-1.c b/gcc/testsuite/gcc.c-torture/compile/20050122-1.c
index a70907d9051..0e66cd078e0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050122-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050122-1.c
@@ -1,4 +1,6 @@
 /* From PR 19484.  */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 extern void foo (void) __attribute__((noreturn));
 int n;
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050202-1.c b/gcc/testsuite/gcc.c-torture/compile/20050202-1.c
index b3f81764538..30838c6c702 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050202-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050202-1.c
@@ -1,4 +1,6 @@
 /* From PR 19578.  */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 extern void foo (void) __attribute__((noreturn));
 
 void
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
index 22154b30af5..3df81e43fef 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target int32plus } */
 /* { dg-require-effective-target size32plus } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 void crc()
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20050622-1.c b/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
index 829f9dd857d..d8d29adc19a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "Array too big" { "pdp11-*-*" } { "-mint32" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 #if __SCHAR_MAX__ == 127 && __INT_MAX__ >= 2147483647
 struct S { char buf[72*1024*1024]; };
diff --git a/gcc/testsuite/gcc.c-torture/compile/20051216-1.c b/gcc/testsuite/gcc.c-torture/compile/20051216-1.c
index ed6ac723069..55751ec8ab2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20051216-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20051216-1.c
@@ -1,4 +1,5 @@
 /* PR rtl-optimization/25432 */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 void *malloc (__SIZE_TYPE__);
 void *realloc (void *, __SIZE_TYPE__);
diff --git a/gcc/testsuite/gcc.c-torture/compile/20060208-1.c b/gcc/testsuite/gcc.c-torture/compile/20060208-1.c
index 3881474f722..e9d93023f03 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20060208-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20060208-1.c
@@ -1,5 +1,7 @@
 /* PR middle-end/26092 */
 /* { dg-skip-if "can't take address of malloc" { nvptx-*-* } } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef __SIZE_TYPE__ size_t;
 extern void *malloc (size_t);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20060421-1.c b/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
index 1bd4079b4c8..c6b2905497d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20060421-1.c
@@ -1,4 +1,6 @@
 /* This test used to ICE on ARM with -mcpu=iwmmxt.  */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 void
 foo (void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20071207-1.c b/gcc/testsuite/gcc.c-torture/compile/20071207-1.c
index 27b871616b1..f313bd15993 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20071207-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20071207-1.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/34371 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
 
 void centerln (int width, int ch, char *s)
diff --git a/gcc/testsuite/gcc.c-torture/compile/20080903-1.c b/gcc/testsuite/gcc.c-torture/compile/20080903-1.c
index 180b926bf3d..c7e479174da 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20080903-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20080903-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 struct bar { unsigned short length; };
 
 int
diff --git a/gcc/testsuite/gcc.c-torture/compile/20081108-1.c b/gcc/testsuite/gcc.c-torture/compile/20081108-1.c
index 3209a90c83b..0b45e2341dc 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20081108-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20081108-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 /* Test function call with function designator involving VLA
    side-effects does not lead to an ICE.  */
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/20101217-1.c b/gcc/testsuite/gcc.c-torture/compile/20101217-1.c
index c4eef0ed464..cd902afe709 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20101217-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20101217-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no usable stdio.h for eBPF" { bpf-*-* } } */
+
 /* Testcase provided by HUAWEI.  */
 #include <stdio.h>
 int main()
diff --git a/gcc/testsuite/gcc.c-torture/compile/20121027-1.c b/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
index 3d3ff31f69b..575236bbc9e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20121027-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 extern int nc;
 void f(void)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20150327.c b/gcc/testsuite/gcc.c-torture/compile/20150327.c
index 373ea6183c3..c46d9c58066 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20150327.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20150327.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 int a;
 int (*b)(), (*c)();
 int fn1(int p1) {
diff --git a/gcc/testsuite/gcc.c-torture/compile/20151204.c b/gcc/testsuite/gcc.c-torture/compile/20151204.c
index e41f6c1dca9..1701ef124d7 100644
--- a/gcc/testsuite/gcc.c-torture/compile/20151204.c
+++ b/gcc/testsuite/gcc.c-torture/compile/20151204.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target size20plus } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/900313-1.c b/gcc/testsuite/gcc.c-torture/compile/900313-1.c
index 2bac5814a7b..12252b4b229 100644
--- a/gcc/testsuite/gcc.c-torture/compile/900313-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/900313-1.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target alloca } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 main ()
 {
   char *a;
diff --git a/gcc/testsuite/gcc.c-torture/compile/920428-2.c b/gcc/testsuite/gcc.c-torture/compile/920428-2.c
index f313b32986b..72c29f29d43 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920428-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920428-2.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 double sin(double x);
 double cos(double x);
 double tan(double x);
diff --git a/gcc/testsuite/gcc.c-torture/compile/920501-12.c b/gcc/testsuite/gcc.c-torture/compile/920501-12.c
index 68892a689df..8d6d839a449 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920501-12.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920501-12.c
@@ -1,5 +1,6 @@
 /* { dg-do assemble } */
 /* { dg-skip-if "Array too big" { "pdp11-*-*" } { "-mint32" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 x(x){            return 3 + x;}
 a(x){int y[994]; return 3 + x;}
diff --git a/gcc/testsuite/gcc.c-torture/compile/920501-4.c b/gcc/testsuite/gcc.c-torture/compile/920501-4.c
index 10736ae76a4..8675e425152 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920501-4.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920501-4.c
@@ -1,6 +1,7 @@
 /* { dg-do assemble } */
 /* { dg-skip-if "ptxas times out" { nvptx-*-* } { "-O1" } { "" } } */
 /* { dg-skip-if "Array too big" { "pdp11-*-*" } { "-mint32" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 foo ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/920501-7.c b/gcc/testsuite/gcc.c-torture/compile/920501-7.c
index 2af15e3b7ec..0fac5f3495f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920501-7.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920501-7.c
@@ -1,3 +1,4 @@
 /* { dg-require-effective-target label_values } */
+/* { dg-skip-if "no support for indirect jumps" { bpf-*-* } } */
 
 x(){if(&&e-&&b<0)x();b:goto*&&b;e:;}
diff --git a/gcc/testsuite/gcc.c-torture/compile/920625-1.c b/gcc/testsuite/gcc.c-torture/compile/920625-1.c
index 720d43fd42f..759a356b5b7 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920625-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920625-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef unsigned long int unsigned_word;
 typedef signed long int signed_word;
 typedef unsigned_word word;
diff --git a/gcc/testsuite/gcc.c-torture/compile/920723-1.c b/gcc/testsuite/gcc.c-torture/compile/920723-1.c
index cd8710be7e8..d6f85817e65 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920723-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920723-1.c
@@ -1,4 +1,5 @@
 /* { dg-add-options stack_size } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 #if defined(STACK_SIZE) && STACK_SIZE < 65536
 # define GITT_SIZE 75
diff --git a/gcc/testsuite/gcc.c-torture/compile/920928-5.c b/gcc/testsuite/gcc.c-torture/compile/920928-5.c
index 8c975f0c051..70da53261df 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920928-5.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920928-5.c
@@ -1,4 +1,7 @@
 /* REPRODUCED:CC1:SIGNAL MACHINE:m68k OPTIONS:-fpcc-struct-return */
+
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 struct b{};
 f(struct b(*f)())
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/921202-1.c b/gcc/testsuite/gcc.c-torture/compile/921202-1.c
index 1287edc57b8..31f969e7c8c 100644
--- a/gcc/testsuite/gcc.c-torture/compile/921202-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/921202-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 f ()
 {
   long dx[2055];
diff --git a/gcc/testsuite/gcc.c-torture/compile/930117-1.c b/gcc/testsuite/gcc.c-torture/compile/930117-1.c
index 83317cdd07b..9321448082f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/930117-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/930117-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 f(x)
 {
   (*(void (*)())&x)();
diff --git a/gcc/testsuite/gcc.c-torture/compile/930421-1.c b/gcc/testsuite/gcc.c-torture/compile/930421-1.c
index 01b465f7fec..9e16fe17dd9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/930421-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/930421-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 double q(double);
 
 f (int **x, int *r, int *s, int a, int b, int c, int d)
diff --git a/gcc/testsuite/gcc.c-torture/compile/930607-1.c b/gcc/testsuite/gcc.c-torture/compile/930607-1.c
index 97c94b25ec3..f866dbfb3dc 100644
--- a/gcc/testsuite/gcc.c-torture/compile/930607-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/930607-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef void f ();
 typedef f *pf;
 long long i;
diff --git a/gcc/testsuite/gcc.c-torture/compile/930623-1.c b/gcc/testsuite/gcc.c-torture/compile/930623-1.c
index 022ad01804e..9dbfe1e73c5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/930623-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/930623-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 g (a, b) {}
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/931003-1.c b/gcc/testsuite/gcc.c-torture/compile/931003-1.c
index 922b14379c9..8db815fc764 100644
--- a/gcc/testsuite/gcc.c-torture/compile/931003-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/931003-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 f (n, a)
      int n;
      double a[];
diff --git a/gcc/testsuite/gcc.c-torture/compile/931004-1.c b/gcc/testsuite/gcc.c-torture/compile/931004-1.c
index 0e741fd4ac0..34766b5559a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/931004-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/931004-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 #define A "This is a long test that tests the structure initialization"
 #define B A,A
 #define C B,B,B,B
diff --git a/gcc/testsuite/gcc.c-torture/compile/950719-1.c b/gcc/testsuite/gcc.c-torture/compile/950719-1.c
index d3277fada4e..fa1b01b9a7e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/950719-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/950719-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef struct
 {
   int Header;
diff --git a/gcc/testsuite/gcc.c-torture/compile/951222-1.c b/gcc/testsuite/gcc.c-torture/compile/951222-1.c
index b8246f5fe81..8a447f3473c 100644
--- a/gcc/testsuite/gcc.c-torture/compile/951222-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/951222-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 extern long long foo ();
 
 long long
diff --git a/gcc/testsuite/gcc.c-torture/compile/961004-1.c b/gcc/testsuite/gcc.c-torture/compile/961004-1.c
index 6407b625d66..cf47f60d5ea 100644
--- a/gcc/testsuite/gcc.c-torture/compile/961004-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/961004-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 void
 f1 (o1, o2, o3, i, j, k)
      long long *o1, *o2, *o3;
diff --git a/gcc/testsuite/gcc.c-torture/compile/980504-1.c b/gcc/testsuite/gcc.c-torture/compile/980504-1.c
index 7b757ccd2e8..6e043a7af19 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980504-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/980504-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef struct _geom_elem {
   double        coeffs[6];
 } pGeomDefRec, *pGeomDefPtr;
diff --git a/gcc/testsuite/gcc.c-torture/compile/980816-1.c b/gcc/testsuite/gcc.c-torture/compile/980816-1.c
index a79100fab57..5bd83b17063 100644
--- a/gcc/testsuite/gcc.c-torture/compile/980816-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/980816-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef __SIZE_TYPE__ size_t;
 typedef void *XtPointer;
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/990517-1.c b/gcc/testsuite/gcc.c-torture/compile/990517-1.c
index c738d4be760..5a08a866002 100644
--- a/gcc/testsuite/gcc.c-torture/compile/990517-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/990517-1.c
@@ -1,4 +1,7 @@
 /* Extracted from the sdm module in perl.  */
+
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef struct {
 	char *dptr;
 	int dsize;
diff --git a/gcc/testsuite/gcc.c-torture/compile/990625-1.c b/gcc/testsuite/gcc.c-torture/compile/990625-1.c
index 97a2331c7a5..befff06579e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/990625-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/990625-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no string.h in eBPF" { bpf-*-* } } */
+
 #define __USE_STRING_INLINES
 #include <string.h>
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/991213-2.c b/gcc/testsuite/gcc.c-torture/compile/991213-2.c
index 98385d56263..aecf4e0f0cb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/991213-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/991213-2.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef long		__kernel_time_t;
 typedef __kernel_time_t		time_t;
 time2(
diff --git a/gcc/testsuite/gcc.c-torture/compile/DFcmp.c b/gcc/testsuite/gcc.c-torture/compile/DFcmp.c
index 3bb253476d7..808874de1a8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/DFcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/DFcmp.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target int32plus } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type double
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/HIcmp.c b/gcc/testsuite/gcc.c-torture/compile/HIcmp.c
index 77b47886ed1..6e68271a009 100644
--- a/gcc/testsuite/gcc.c-torture/compile/HIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/HIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type short
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/HIset.c b/gcc/testsuite/gcc.c-torture/compile/HIset.c
index 163cb7cbe32..a0d426c2c07 100644
--- a/gcc/testsuite/gcc.c-torture/compile/HIset.c
+++ b/gcc/testsuite/gcc.c-torture/compile/HIset.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define E0 ((type *)10000000)
 #define reg0 r0
 #define indreg0 (*p0)
diff --git a/gcc/testsuite/gcc.c-torture/compile/QIcmp.c b/gcc/testsuite/gcc.c-torture/compile/QIcmp.c
index c5161646f2c..a4dba2487e4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/QIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/QIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type signed char
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/QIset.c b/gcc/testsuite/gcc.c-torture/compile/QIset.c
index 212609dc864..e2fde2bda7e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/QIset.c
+++ b/gcc/testsuite/gcc.c-torture/compile/QIset.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define E0 ((type *)10000000)
 #define reg0 r0
 #define indreg0 (*p0)
diff --git a/gcc/testsuite/gcc.c-torture/compile/SFset.c b/gcc/testsuite/gcc.c-torture/compile/SFset.c
index dc7f48dd2dd..a7efecf9717 100644
--- a/gcc/testsuite/gcc.c-torture/compile/SFset.c
+++ b/gcc/testsuite/gcc.c-torture/compile/SFset.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target int32plus } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 #define E0 ((type *)10000000)
 #define reg0 r0
diff --git a/gcc/testsuite/gcc.c-torture/compile/SIcmp.c b/gcc/testsuite/gcc.c-torture/compile/SIcmp.c
index 4a9e0d57fd7..ce1281b6093 100644
--- a/gcc/testsuite/gcc.c-torture/compile/SIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/SIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type int
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/SIset.c b/gcc/testsuite/gcc.c-torture/compile/SIset.c
index 5fb93579f4b..b200a264b95 100644
--- a/gcc/testsuite/gcc.c-torture/compile/SIset.c
+++ b/gcc/testsuite/gcc.c-torture/compile/SIset.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define E0 ((type *)10000000)
 #define reg0 r0
 #define indreg0 (*p0)
diff --git a/gcc/testsuite/gcc.c-torture/compile/UHIcmp.c b/gcc/testsuite/gcc.c-torture/compile/UHIcmp.c
index 529e3a33fd3..b0029d23ea4 100644
--- a/gcc/testsuite/gcc.c-torture/compile/UHIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/UHIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type unsigned short
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/UQIcmp.c b/gcc/testsuite/gcc.c-torture/compile/UQIcmp.c
index 3e9cdebc903..e28d13b03ab 100644
--- a/gcc/testsuite/gcc.c-torture/compile/UQIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/UQIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type unsigned char
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/USIcmp.c b/gcc/testsuite/gcc.c-torture/compile/USIcmp.c
index 69788a45b2e..27e5503bd4d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/USIcmp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/USIcmp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 #define type unsigned int
 
 type glob0, glob1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/bcopy.c b/gcc/testsuite/gcc.c-torture/compile/bcopy.c
index 8108f296600..5225a2f9156 100644
--- a/gcc/testsuite/gcc.c-torture/compile/bcopy.c
+++ b/gcc/testsuite/gcc.c-torture/compile/bcopy.c
@@ -1,4 +1,5 @@
 /* { dg-add-options stack_size } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 void
 bcopy1 (s, d, c)
diff --git a/gcc/testsuite/gcc.c-torture/compile/callind.c b/gcc/testsuite/gcc.c-torture/compile/callind.c
index 5938d1b88fc..8a2004de2c0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/callind.c
+++ b/gcc/testsuite/gcc.c-torture/compile/callind.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 bar (foo, a)
      int (**foo) ();
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/calls-void.c b/gcc/testsuite/gcc.c-torture/compile/calls-void.c
index eeed4fdfdc1..e086837ac97 100644
--- a/gcc/testsuite/gcc.c-torture/compile/calls-void.c
+++ b/gcc/testsuite/gcc.c-torture/compile/calls-void.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target ptr32plus } */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 typedef void  (*T)(void);
 f1 ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/calls.c b/gcc/testsuite/gcc.c-torture/compile/calls.c
index ca07122a786..a8084de0e5a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/calls.c
+++ b/gcc/testsuite/gcc.c-torture/compile/calls.c
@@ -1,5 +1,6 @@
 /* { dg-require-effective-target ptr32plus } */
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 typedef void  *(*T)(void);
 f1 ()
diff --git a/gcc/testsuite/gcc.c-torture/compile/consec.c b/gcc/testsuite/gcc.c-torture/compile/consec.c
index 01fa25b009b..b8c376d7076 100644
--- a/gcc/testsuite/gcc.c-torture/compile/consec.c
+++ b/gcc/testsuite/gcc.c-torture/compile/consec.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 int glob;
 
 conseq (a, b, c, d)
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
index 0bd8f6af995..53204735493 100644
--- a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
@@ -1,5 +1,6 @@
 /* { dg-skip-if "too complex for avr" { avr-*-* } } */
 /* { dg-skip-if "ptxas times out" { nvptx-*-* } } */
+/* { dg-skip-if "no chance for bpf" { bpf-*-* } } */
 /* { dg-timeout-factor 4.0 } */
 #define LIM1(x) x##0, x##1, x##2, x##3, x##4, x##5, x##6, x##7, x##8, x##9,
 #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \
diff --git a/gcc/testsuite/gcc.c-torture/compile/lll.c b/gcc/testsuite/gcc.c-torture/compile/lll.c
index dee9dc37d15..ea09c871c6b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/lll.c
+++ b/gcc/testsuite/gcc.c-torture/compile/lll.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 byte_match_count2 (buf, n, xm, m1, m2, m3, m4)
      unsigned *buf;
diff --git a/gcc/testsuite/gcc.c-torture/compile/parms.c b/gcc/testsuite/gcc.c-torture/compile/parms.c
index 8205a9c1454..1bfc93d2abb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/parms.c
+++ b/gcc/testsuite/gcc.c-torture/compile/parms.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target alloca } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 #define alloca __builtin_alloca
 
 x (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, x, y)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pass.c b/gcc/testsuite/gcc.c-torture/compile/pass.c
index 4e028393feb..529a01dac85 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pass.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pass.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 int
 foo (a, b, c)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/poor.c b/gcc/testsuite/gcc.c-torture/compile/poor.c
index 66d584aff43..20287ef2354 100644
--- a/gcc/testsuite/gcc.c-torture/compile/poor.c
+++ b/gcc/testsuite/gcc.c-torture/compile/poor.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef struct
 {
 	char	c[510];
diff --git a/gcc/testsuite/gcc.c-torture/compile/pp.c b/gcc/testsuite/gcc.c-torture/compile/pp.c
index 7d38d53de0f..c1e09eab407 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pp.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pp.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 foo (a, b, c, d, e, i0, f, i1)
      double a, b, c, d, e, f;
      int i0, i1;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr21840.c b/gcc/testsuite/gcc.c-torture/compile/pr21840.c
index bec3d6bf5d7..af47fa5c0e0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr21840.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr21840.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 void fn_show_state(void);
 typedef void (*fn_handler_fn)(void);
 static fn_handler_fn fn_handler[1];
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr23929.c b/gcc/testsuite/gcc.c-torture/compile/pr23929.c
index 210bb585e06..d63eb71e7bd 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr23929.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr23929.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/23929 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 extern void bar (char *);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr25310.c b/gcc/testsuite/gcc.c-torture/compile/pr25310.c
index 54695e05b4f..674745f80ec 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr25310.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr25310.c
@@ -1,4 +1,5 @@
 /* { dg-skip-if "Array too big" { "pdp11-*-*" } { "-mint32" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 /* Prevent spurious test failures on 16-bit targets.  */
 #if __INT_MAX__ >= 2147483647L
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr25311.c b/gcc/testsuite/gcc.c-torture/compile/pr25311.c
index 26c5bc37b83..43ef3fd9523 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr25311.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr25311.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 struct w
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr32139.c b/gcc/testsuite/gcc.c-torture/compile/pr32139.c
index 7b8522f5174..8b13cb9665a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr32139.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr32139.c
@@ -1,4 +1,6 @@
 /* PR tree-optimization/32139 */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 int foo (void);
 int bar (void) __attribute__ ((const));
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr32399.c b/gcc/testsuite/gcc.c-torture/compile/pr32399.c
index cc2b1b18984..b29dbd7986a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr32399.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr32399.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 void f(unsigned char *src, unsigned char *dst, int num, unsigned char *pos, unsigned char *diffuse, int hasdiffuse, unsigned char *specular, int hasspecular) {
     int i;
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34091.c b/gcc/testsuite/gcc.c-torture/compile/pr34091.c
index 0b8549132e6..a623a383fd0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr34091.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34091.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef unsigned int GLenum;
 typedef unsigned char GLboolean;
 typedef int GLint;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34458.c b/gcc/testsuite/gcc.c-torture/compile/pr34458.c
index 096cc0c9b89..09febbea31f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr34458.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34458.c
@@ -1,4 +1,5 @@
 /* Testcase by Martin Michlmayr <tbm@cyrius.com> */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 typedef struct
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr34688.c b/gcc/testsuite/gcc.c-torture/compile/pr34688.c
index 60e0f3c9f15..ec890cb8f15 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr34688.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr34688.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef __SIZE_TYPE__ size_t;
          typedef struct {
         }
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr35607.c b/gcc/testsuite/gcc.c-torture/compile/pr35607.c
index 7f5aa7a2b7c..9dc1b5c4b90 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr35607.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr35607.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 extern void (*__fini_array_start []) (void);
 extern void (*__fini_array_end []) (void);
 void
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37258.c b/gcc/testsuite/gcc.c-torture/compile/pr37258.c
index 286f2fc4427..41801781e3a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37258.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37258.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef signed char int8_t;
 typedef short int int16_t;
 typedef int int32_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37327.c b/gcc/testsuite/gcc.c-torture/compile/pr37327.c
index 79946b7522d..5ca9d1d45b6 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37327.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37327.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef signed char int8_t;
 typedef short int int16_t;
 typedef int int32_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37381.c b/gcc/testsuite/gcc.c-torture/compile/pr37381.c
index a2fed66c4ee..d8cd47d329d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37381.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37381.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 extern unsigned int __invalid_size_argument_for_IOC;
 typedef unsigned int __u32;
 struct video_window
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37433-1.c b/gcc/testsuite/gcc.c-torture/compile/pr37433-1.c
index 322c167d682..a067c19182b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37433-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37433-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 void regex_subst(void)
 {
   const void *subst = "";
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37433.c b/gcc/testsuite/gcc.c-torture/compile/pr37433.c
index 0ba1179886c..7237f38b6f2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37433.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37433.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 int regex_subst(void)
 {
   const void *subst = "";
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37669-2.c b/gcc/testsuite/gcc.c-torture/compile/pr37669-2.c
index abeae7a2f32..2170dda67f0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37669-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37669-2.c
@@ -1,4 +1,5 @@
 /* PR middle-end/37669 */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 #define FMT10 "%d%d%d%d%d%d%d%d%d%d"
 #define FMT100 FMT10 FMT10 FMT10 FMT10 FMT10 FMT10 FMT10 FMT10 FMT10 FMT10
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37669.c b/gcc/testsuite/gcc.c-torture/compile/pr37669.c
index a2eafc75cb3..36e4c39d8ed 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37669.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37669.c
@@ -1,6 +1,7 @@
 /* This testcase used to fail because a miscompiled execute_fold_all_builtins. */
 /* { dg-options "-fgnu89-inline" } */
 /* { dg-require-effective-target int32plus } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 typedef __SIZE_TYPE__ size_t;
 extern __inline __attribute__ ((__always_inline__)) int __attribute__
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr37742-3.c b/gcc/testsuite/gcc.c-torture/compile/pr37742-3.c
index 541bd42ad5d..9e7b10fb7a3 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr37742-3.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr37742-3.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 void matmul_i4 (int * __restrict dest_y,
 		const int * __restrict abase,
 		const int * __restrict bbase_y,
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr39937.c b/gcc/testsuite/gcc.c-torture/compile/pr39937.c
index d0231053258..35a5e64b05f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr39937.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr39937.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 int foo (__const char *__restrict __s);
 static void 
 read_anisou(char line[])
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr39941.c b/gcc/testsuite/gcc.c-torture/compile/pr39941.c
index b6209086be9..8a3156f77c8 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr39941.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr39941.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef void (*entry_func) (void) __attribute__ ((noreturn));
 extern entry_func entry_addr;
 static void bsd_boot_entry (void)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr40080.c b/gcc/testsuite/gcc.c-torture/compile/pr40080.c
index e36f14273e8..d7dd1d0f47a 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr40080.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr40080.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 extern void *ff(void*,int);
 
 struct lpgl { struct lpgl *next; };
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41181.c b/gcc/testsuite/gcc.c-torture/compile/pr41181.c
index f866249b605..410309c89ee 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr41181.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr41181.c
@@ -1,5 +1,7 @@
 /* { dg-require-effective-target ptr32plus } */
 /* { dg-skip-if "The array is too big" { "avr-*-*" "pdp11-*-*" } } */ 
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 char paths[1024];
 static void x264_slicetype_path(char (*best_paths)[250], int n, int length)
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr41634.c b/gcc/testsuite/gcc.c-torture/compile/pr41634.c
index 976e463e2ba..e6f653c0395 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr41634.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr41634.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 extern int _xgetw();
 extern int foo(char*);
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43415.c b/gcc/testsuite/gcc.c-torture/compile/pr43415.c
index c00e1c41ce9..a11ac30ad84 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43415.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43415.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 int main()                                                                      
 {                                                                               
   unsigned long long table[256];                                          
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43417.c b/gcc/testsuite/gcc.c-torture/compile/pr43417.c
index 45bf053a0cb..061cc2951bf 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43417.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43417.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 int pid_count = 0;
 
 unsigned int getopt (int, const char**, const char*);
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43635.c b/gcc/testsuite/gcc.c-torture/compile/pr43635.c
index df826b6f4c0..4862e5da81e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43635.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43635.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 extern void d (void);
 
 void (*foo (void)) (float)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43791.c b/gcc/testsuite/gcc.c-torture/compile/pr43791.c
index 2b1d06ff789..68202859a52 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43791.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43791.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 int owner();
 int clear();
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43845.c b/gcc/testsuite/gcc.c-torture/compile/pr43845.c
index bdb45e7d2a8..8c7541f2a37 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr43845.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr43845.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef int __attribute__ ((const)) (*x264_pixel_cmp_t)(void);
 
 typedef struct {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44043.c b/gcc/testsuite/gcc.c-torture/compile/pr44043.c
index 943501b4091..ed8806be4f2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44043.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44043.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef unsigned char __u8;
 typedef unsigned short __u16;
 typedef unsigned int __u32;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44063.c b/gcc/testsuite/gcc.c-torture/compile/pr44063.c
index 596e1dc991f..32208f610f9 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44063.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44063.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef signed char int8_t;
 typedef short int16_t;
 typedef unsigned char uint8_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44788.c b/gcc/testsuite/gcc.c-torture/compile/pr44788.c
index 99dc7982394..6e7e153ee95 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr44788.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr44788.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 void joint_decode(float* mlt_buffer1, int t) {
     int i;
     float decode_buffer[1060];
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr48596.c b/gcc/testsuite/gcc.c-torture/compile/pr48596.c
index 382a152413e..743bd82e868 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr48596.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr48596.c
@@ -1,4 +1,6 @@
 /* PR target/48596  */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 enum { nrrdCenterUnknown, nrrdCenterNode, nrrdCenterCell, nrrdCenterLast };
 typedef struct { int size; int center; }  NrrdAxis;
 typedef struct { int dim; NrrdAxis axis[10]; } Nrrd;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr51694.c b/gcc/testsuite/gcc.c-torture/compile/pr51694.c
index f5c1a40df86..66b6acff617 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr51694.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr51694.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 void
 foo (x, fn)
   void (*fn) ();
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr51856.c b/gcc/testsuite/gcc.c-torture/compile/pr51856.c
index 6644c7fdc14..823a0bed073 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr51856.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr51856.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 struct B { int b1; long long b2, b3; int b4; };
 struct C { char c1[40], c2, c3[96]; long long c4[5], c5; char c6[596]; };
 void fn1 (long long), fn2 (char *, int), fn4 (void);
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr52750.c b/gcc/testsuite/gcc.c-torture/compile/pr52750.c
index 36391bac5d9..78d48a92547 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr52750.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr52750.c
@@ -1,4 +1,5 @@
 /* PR middle-end/52750 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 typedef signed char V __attribute__((vector_size (32)));
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54713-1.c b/gcc/testsuite/gcc.c-torture/compile/pr54713-1.c
index f042ea2fc6c..0d4172a576b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr54713-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54713-1.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/54713 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 #ifndef N
 #define N 8
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54713-2.c b/gcc/testsuite/gcc.c-torture/compile/pr54713-2.c
index c3910373111..f7d2364e197 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr54713-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54713-2.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/54713 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 #define N 16
 #define ONE 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54713-3.c b/gcc/testsuite/gcc.c-torture/compile/pr54713-3.c
index 6164a5eec0e..76a35b067c5 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr54713-3.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54713-3.c
@@ -1,4 +1,5 @@
 /* PR tree-optimization/54713 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 #define N 32
 #define ONE 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr55921.c b/gcc/testsuite/gcc.c-torture/compile/pr55921.c
index de0635d66ad..cf9084e33f0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr55921.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr55921.c
@@ -1,5 +1,6 @@
 /* PR tree-optimization/55921 */
 /* { dg-skip-if "Not enough registers" { "pdp11-*-*" } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 typedef union
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr70240.c b/gcc/testsuite/gcc.c-torture/compile/pr70240.c
index 830d4ddcc93..466d3a7c961 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr70240.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr70240.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 typedef short v16hi __attribute__ ((vector_size (32)));
 typedef int v8si __attribute__ ((vector_size (32)));
 typedef long long v4di __attribute__ ((vector_size (32)));
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr70355.c b/gcc/testsuite/gcc.c-torture/compile/pr70355.c
index 474942715f8..f7114208005 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr70355.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr70355.c
@@ -1,5 +1,7 @@
 /* { dg-require-effective-target int128 } */
 /* { dg-additional-options "-g" } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 
 typedef unsigned __int128 v2ti __attribute__ ((vector_size (32)));
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
index d088961963d..2c9a409cdae 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
@@ -1,5 +1,6 @@
 // { dg-require-effective-target alloca }
 /* PR c/77754 */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 int fn3();
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
index fb25e234fe2..4af1ffac22b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
@@ -1,5 +1,6 @@
 // { dg-require-effective-target alloca }
 /* PR c/77754 */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 int fn3();
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
index 1c5c4619a33..874c28dc0f0 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
@@ -1,5 +1,6 @@
 // { dg-require-effective-target alloca }
 /* PR c/77754 */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 int fn3();
 
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr82052.c b/gcc/testsuite/gcc.c-torture/compile/pr82052.c
index 3763161e350..09fac5edb1e 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr82052.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr82052.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
 typedef unsigned uint32_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr83487.c b/gcc/testsuite/gcc.c-torture/compile/pr83487.c
index 9effb1eef03..9de0e17939f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr83487.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr83487.c
@@ -1,4 +1,5 @@
 /* PR middle-end/83487 */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 struct __attribute__ ((aligned)) A {};
 struct A a;
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr86122.c b/gcc/testsuite/gcc.c-torture/compile/pr86122.c
index 0a4fd144ae6..1bd46733183 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr86122.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr86122.c
@@ -1,4 +1,5 @@
 /* PR middle-end/86122 */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 _Complex int
 foo (_Complex int x)
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr89280.c b/gcc/testsuite/gcc.c-torture/compile/pr89280.c
index 15b6e7051f8..64ca7028894 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr89280.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr89280.c
@@ -1,6 +1,7 @@
 // { dg-require-effective-target nonlocal_goto }
 // { dg-require-effective-target label_values }
 /* PR tree-optimization/89280 */
+/* { dg-skip-if "no support for indirect jumps" { bpf-*-* } } */
 
 int a;
 void foo (void);
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c b/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
index 052fe69f40e..94193203738 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
@@ -1,4 +1,5 @@
 /* PR middle-end/89663 */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 
 int irint (double);
 long lrint (double);
diff --git a/gcc/testsuite/gcc.c-torture/compile/pret-arg.c b/gcc/testsuite/gcc.c-torture/compile/pret-arg.c
index a7fa8562830..d86d135dc4b 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pret-arg.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pret-arg.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 foo (a, b, c, d, e, f, g, h, i, j, xx)
      double xx;
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/pta-1.c b/gcc/testsuite/gcc.c-torture/compile/pta-1.c
index 515e5ff13f4..38c60cdda2d 100644
--- a/gcc/testsuite/gcc.c-torture/compile/pta-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/pta-1.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
+
 typedef struct JSObject JSObject;
 typedef struct JSObjectMap *(*JSNewObjectMapOp) (JSObject *obj);
 typedef JSObject *(*JSGetMethodOp) (JSObject *obj);
diff --git a/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c b/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
index f5f01116eda..77518866d3f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
+++ b/gcc/testsuite/gcc.c-torture/compile/regs-arg-size.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
+
 int foo;
 typedef long unsigned int size_t;
 typedef short unsigned int wchar_t;
diff --git a/gcc/testsuite/gcc.c-torture/compile/sound.c b/gcc/testsuite/gcc.c-torture/compile/sound.c
index be727e3febb..781ad4a3087 100644
--- a/gcc/testsuite/gcc.c-torture/compile/sound.c
+++ b/gcc/testsuite/gcc.c-torture/compile/sound.c
@@ -1,3 +1,4 @@
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 main ()
 {
diff --git a/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c b/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c
index 2a03f7c29ae..6bb079e7fd2 100644
--- a/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c
@@ -1,4 +1,5 @@
 /* { dg-require-effective-target untyped_assembly } */
 /* { dg-require-stack-check "" } */
 /* { dg-additional-options "-fstack-check" } */
+/* { dg-skip-if "no support for indirect calls" { bpf-*-* } } */
 #include "20031023-1.c"
diff --git a/gcc/testsuite/gcc.c-torture/compile/structret.c b/gcc/testsuite/gcc.c-torture/compile/structret.c
index 9c705d4c0a2..d99eaa630bb 100644
--- a/gcc/testsuite/gcc.c-torture/compile/structret.c
+++ b/gcc/testsuite/gcc.c-torture/compile/structret.c
@@ -1,3 +1,5 @@
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 struct foo
 {
   int a, b, c, d;
diff --git a/gcc/testsuite/gcc.c-torture/compile/uuarg.c b/gcc/testsuite/gcc.c-torture/compile/uuarg.c
index 930dd8ab5f6..875c7c3b50f 100644
--- a/gcc/testsuite/gcc.c-torture/compile/uuarg.c
+++ b/gcc/testsuite/gcc.c-torture/compile/uuarg.c
@@ -1,4 +1,6 @@
 /* { dg-require-effective-target untyped_assembly } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
+
 foo (a, b, c, d, e, f, g, h, i)
 {
   return foo () + i;
diff --git a/gcc/testsuite/gcc.dg/20001009-1.c b/gcc/testsuite/gcc.dg/20001009-1.c
index 1a5567779b5..580e4b4d307 100644
--- a/gcc/testsuite/gcc.dg/20001009-1.c
+++ b/gcc/testsuite/gcc.dg/20001009-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -fpic" } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 extern void foo (void *a, double x, double y);
 void
diff --git a/gcc/testsuite/gcc.dg/20020418-1.c b/gcc/testsuite/gcc.dg/20020418-1.c
index 7314ec000ef..456967fdd36 100644
--- a/gcc/testsuite/gcc.dg/20020418-1.c
+++ b/gcc/testsuite/gcc.dg/20020418-1.c
@@ -2,6 +2,7 @@
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -msse -ffast-math" { target i?86-*-* x86_64-*-* } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 void bar (float *a, float *b);
 
diff --git a/gcc/testsuite/gcc.dg/20020426-2.c b/gcc/testsuite/gcc.dg/20020426-2.c
index 9ad7a54f601..96517f7b840 100644
--- a/gcc/testsuite/gcc.dg/20020426-2.c
+++ b/gcc/testsuite/gcc.dg/20020426-2.c
@@ -3,6 +3,7 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
 /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target { { i?86-*-* x86_64-*-* } && { ia32 && fpic } } } } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 extern void exit (int);
 
diff --git a/gcc/testsuite/gcc.dg/20020430-1.c b/gcc/testsuite/gcc.dg/20020430-1.c
index 63915a24b17..f48bb672aaf 100644
--- a/gcc/testsuite/gcc.dg/20020430-1.c
+++ b/gcc/testsuite/gcc.dg/20020430-1.c
@@ -6,6 +6,7 @@
 
 /* { dg-do compile { target fpic } } */
 /* { dg-options "-O2 -frename-registers -fpic" } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 typedef unsigned long XID;
 typedef XID Window;
diff --git a/gcc/testsuite/gcc.dg/20040306-1.c b/gcc/testsuite/gcc.dg/20040306-1.c
index 903d20ac256..8cac8697d99 100644
--- a/gcc/testsuite/gcc.dg/20040306-1.c
+++ b/gcc/testsuite/gcc.dg/20040306-1.c
@@ -2,7 +2,7 @@
 
 /* { dg-do compile } */
 /* { dg-options "-O2" } */
-
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 typedef struct test
 {
diff --git a/gcc/testsuite/gcc.dg/20040622-2.c b/gcc/testsuite/gcc.dg/20040622-2.c
index 0be320fa4e2..e62ec36d43a 100644
--- a/gcc/testsuite/gcc.dg/20040622-2.c
+++ b/gcc/testsuite/gcc.dg/20040622-2.c
@@ -1,5 +1,6 @@
 /* { dg-do link } */
 /* { dg-require-effective-target ptr32plus } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 /* This validates codegen for [r1+32760] on Darwin. */
 void f(char x[32688], double *y, double *z) __attribute__((noinline));
 void f(char x[32688], double *y, double *z) {}
diff --git a/gcc/testsuite/gcc.dg/20050603-2.c b/gcc/testsuite/gcc.dg/20050603-2.c
index 8c8e58e1b4d..a135e3ea1a0 100644
--- a/gcc/testsuite/gcc.dg/20050603-2.c
+++ b/gcc/testsuite/gcc.dg/20050603-2.c
@@ -1,5 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-O2" } */
+/* { dg-skip-if "no stdlib.h in eBPF" { bpf-*-* } } */
 #include <stdlib.h>
 struct s {
   unsigned short f: 16;
diff --git a/gcc/testsuite/gcc.dg/20050629-1.c b/gcc/testsuite/gcc.dg/20050629-1.c
index 0dd47f7024b..99d9ce823b0 100644
--- a/gcc/testsuite/gcc.dg/20050629-1.c
+++ b/gcc/testsuite/gcc.dg/20050629-1.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -w" } */
+/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 /* This file was automatically reduced from tree-ssa-operands.c.  It
    contains many warnings, but it exposes a copy propagation bug that
diff --git a/gcc/testsuite/gcc.dg/20061026.c b/gcc/testsuite/gcc.dg/20061026.c
index 741ea2eb3b8..fa8069ce4cf 100644
--- a/gcc/testsuite/gcc.dg/20061026.c
+++ b/gcc/testsuite/gcc.dg/20061026.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O1" } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 /* This testcase failed on s390.  The frame size for function f will be
    exactly 32768 bytes.  The back end has to recognize that this is to
diff --git a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c
index b4aa167f655..838a4935b0b 100644
--- a/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c
+++ b/gcc/testsuite/gcc.dg/Walloc-size-larger-than-18.c
@@ -4,6 +4,7 @@
    with zero or excessive size trigger either -Walloc-zero or
    -Walloc-size-larger-than warnings.
    { dg-do compile }
+   { dg-skip-if "no support for indirect calls" { bpf-*-* } }
    { dg-options "-O2 -Wall -Walloc-zero -ftrack-macro-expansion=0" } */
 
 #define ATTR(...) __attribute__ ((__VA_ARGS__))
diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-3.c b/gcc/testsuite/gcc.dg/Warray-bounds-3.c
index 773f4633dc7..f119502f025 100644
--- a/gcc/testsuite/gcc.dg/Warray-bounds-3.c
+++ b/gcc/testsuite/gcc.dg/Warray-bounds-3.c
@@ -1,5 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -Warray-bounds" } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 /* based on PR 31227 */
 
 typedef __SIZE_TYPE__ size_t;
diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-30.c b/gcc/testsuite/gcc.dg/Warray-bounds-30.c
index ac7e9a6e8fb..b9965682101 100644
--- a/gcc/testsuite/gcc.dg/Warray-bounds-30.c
+++ b/gcc/testsuite/gcc.dg/Warray-bounds-30.c
@@ -1,7 +1,8 @@
 /* PR tree-optimization/84047 - missing -Warray-bounds on an out-of-bounds
    index into an array
    { dg-do compile }
-   { dg-options "-O2 -Warray-bounds=2 -ftrack-macro-expansion=0" } */
+   { dg-options "-O2 -Warray-bounds=2 -ftrack-macro-expansion=0" }
+   { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 #include "range.h"
 
diff --git a/gcc/testsuite/gcc.dg/Wframe-larger-than-2.c b/gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
index 1a5402f8120..d7068d04aef 100644
--- a/gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
+++ b/gcc/testsuite/gcc.dg/Wframe-larger-than-2.c
@@ -1,6 +1,7 @@
 /* Exercise -Wframe-larger-than= with a byte-size suffix.
    { dg-do compile }
-   { dg-options "-O -Wframe-larger-than=1KB" } */
+   { dg-options "-O -Wframe-larger-than=1KB" }
+   { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 extern void f (void*, ...);
 
diff --git a/gcc/testsuite/gcc.dg/Wframe-larger-than.c b/gcc/testsuite/gcc.dg/Wframe-larger-than.c
index fab0adf37ee..8a40cf36df8 100644
--- a/gcc/testsuite/gcc.dg/Wframe-larger-than.c
+++ b/gcc/testsuite/gcc.dg/Wframe-larger-than.c
@@ -4,6 +4,7 @@
 
 /* { dg-do compile } */
 /* { dg-options "-Wframe-larger-than=2048" } */
+/* { dg-skip-if "exceeds eBPF stack limit" { bpf-*-* } } */
 
 extern void func(char *);
 
diff --git a/gcc/testsuite/gcc.dg/Wrestrict-11.c b/gcc/testsuite/gcc.dg/Wrestrict-11.c
index 7b4b5aa2527..07b9cddad4b 100644
--- a/gcc/testsuite/gcc.dg/Wrestrict-11.c
+++ b/gcc/testsuite/gcc.dg/Wrestrict-11.c
@@ -3,7 +3,8 @@
    that calls to strncpy involving multidimensional arrays of structs don't
    trigger false positive -Wrestrict warnings.
    { dg-do compile }
-   { dg-options "-O2 -Wrestrict -ftrack-macro-expansion=0" } */
+   { dg-options "-O2 -Wrestrict -ftrack-macro-expansion=0" }
+   { dg-skip-if "too many arguments in function call" { bpf-*-* } } */
 
 typedef __SIZE_TYPE__ size_t;
 
diff --git a/gcc/testsuite/gcc.dg/builtins-config.h b/gcc/testsuite/gcc.dg/builtins-config.h
index f00e91a750f..5e27c1deb33 100644
--- a/gcc/testsuite/gcc.dg/builtins-config.h
+++ b/gcc/testsuite/gcc.dg/builtins-config.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005, 2006, 2009, 2011, 2012
+/* Copyright (C) 2003, 2004, 2005, 2006, 2009, 2011, 2012, 2019
    Free Software Foundation.
 
    Define macros useful in tests for bulitin functions.  */
@@ -20,6 +20,8 @@
 /* FreeBSD up to version 8 lacks support for cexp and friends.  */
 #elif defined(__vxworks)
 /* VxWorks doesn't have a full C99 time.  (cabs is missing, for example.)  */
+#elif defined (__BPF__)
+/* No chance for eBPF to support C99 functions.  */
 #elif defined(_WIN32) && !defined(__CYGWIN__)
 /* Windows doesn't have the entire C99 runtime.  */
 #elif (defined(__APPLE__) && defined(__ppc__) \
