From patchwork Wed Aug 28 21:47:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 1154892 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-507883-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="P8siKTLV"; dkim=pass (2048-bit key; unprotected) header.d=oracle.com header.i=@oracle.com header.b="r1rgGcc3"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46JfWt4dLCz9sNC for ; Thu, 29 Aug 2019 07:48:58 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:in-reply-to:references; q=dns; s= default; b=jpxcxgcnevFjhl8US7tsA/SGD5zQQF1fOvn7QBA02J9Ye9R00DToY j+9yv4ZxRQeXAagFuoJZWyLd0jTZQJbdumxWgScFb8d9jgU63GFVIua3V2XqCbzC 0IR3HTJuoto1hWy8jBdPkhPBfi505mCZlLLJjEip3kLkm+5UOuY0IU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:date:message-id:in-reply-to:references; s=default; bh=j3ESWHw3erxMjffIg4iNtvg3Uiw=; b=P8siKTLVG9B24RA0Xq11fFqMbDCi BideE+lrFT01J1oJK7ISLl1IQtN3hovLCt/CiTN4vZfBJXBcV3N6HGfC/HFlBcb4 TN60+wzNtP0sI+z30WloF57SbAF/ABSNzslPR6YRuL9FlvuiMbabwzZmPbrrALfC uFjIt1Z6Fl25BSo= Received: (qmail 130718 invoked by alias); 28 Aug 2019 21:48:36 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 129340 invoked by uid 89); 28 Aug 2019 21:48:21 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-21.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_HELO_PASS, SPF_PASS, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 spammy= X-HELO: userp2120.oracle.com Received: from userp2120.oracle.com (HELO userp2120.oracle.com) (156.151.31.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 28 Aug 2019 21:48:15 +0000 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x7SLiOnU094833 for ; Wed, 28 Aug 2019 21:48:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : in-reply-to : references; s=corp-2019-08-05; bh=BVztyQyRqp1HJ4EjpXlwMkHJqr1WhArueilj3JvQIoc=; b=r1rgGcc3hvq6mbBFxr3C2akYjvKRxmMOctMZTPpyZfDNMmd4HiAIb55EySNdnAH2meCj UgiB4XdGuwMAI5a4rB8l9Xiwl6wDhow+77LMzy3QoNUfvpkjulmiuW96ippdz7eofHac v0SZLFVmz+6sOsCIH+lXkaoqMYHNGHWVB2qpo3p4+CiqaPiHmavJLq8DqFgDJ6gzwgaZ upvcPw/4bWCW0pWlsI22eaWPT7ySzfRkSh46lnV4GesgL5NcSgsuGkdpHT5a5cXvNvLX UwJfP+InY2SGDsxx1fzHgb1eP1OEBUwzFGpBQydrGwzHC7T1naPbH2hEUhkiZkhcBsIg xg== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by userp2120.oracle.com with ESMTP id 2up1ncg1gn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 28 Aug 2019 21:48:12 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x7SLlxac008442 for ; Wed, 28 Aug 2019 21:48:11 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 2unduqeeuu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 28 Aug 2019 21:48:11 +0000 Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x7SLmA7X003309 for ; Wed, 28 Aug 2019 21:48:10 GMT Received: from termi.localdomain (/10.175.48.59) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 28 Aug 2019 21:48:09 +0000 From: "Jose E. Marchesi" To: gcc-patches@gcc.gnu.org Subject: [PATCH V5 09/11] bpf: adjust GCC testsuite to eBPF limitations Date: Wed, 28 Aug 2019 23:47:53 +0200 Message-Id: <20190828214755.20951-10-jose.marchesi@oracle.com> In-Reply-To: <20190828214755.20951-1-jose.marchesi@oracle.com> References: <20190828214755.20951-1-jose.marchesi@oracle.com> X-IsSubscribed: yes This patch makes many tests in gcc.dg and gcc.c-torture to be skipped in bpf-*-* targets. This is due to the many limitations imposed by eBPF to what would be perfectly valid C code: no support for more than 5 arguments to function calls, no support for indirect jumps, a very limited range for direct jumps, etc. Hopefully some of these restrictions will be relaxed in the future. Also, as semantics associated with object linking get developed in eBPF, it may be possible at some point to provide a set of standard run-time libraries for eBPF programs. gcc/testsuite/ChangeLog: * gcc.dg/builtins-config.h: eBPF doesn't support C99 standard functions. * gcc.c-torture/compile/20101217-1.c: Add a function prototype for printf. * gcc.c-torture/compile/20000211-1.c: Skip if target bpf-*-*. * gcc.c-torture/compile/poor.c: Likewise. * gcc.c-torture/compile/pr25311.c: Likewise. * gcc.c-torture/compile/pr39928-1.c: Likewise. * gcc.c-torture/compile/pr70061.c: Likewise. * gcc.c-torture/compile/920501-7.c: Likewise. * gcc.c-torture/compile/20000403-1.c: Likewise. * gcc.c-torture/compile/20001226-1.c: Likewise. * gcc.c-torture/compile/20030903-1.c: Likewise. * gcc.c-torture/compile/20031125-1.c: Likewise. * gcc.c-torture/compile/20040101-1.c: Likewise. * gcc.c-torture/compile/20040317-2.c: Likewise. * gcc.c-torture/compile/20040726-1.c: Likewise. * gcc.c-torture/compile/20051216-1.c: Likewise. * gcc.c-torture/compile/900313-1.c: Likewise. * gcc.c-torture/compile/920625-1.c: Likewise. * gcc.c-torture/compile/930421-1.c: Likewise. * gcc.c-torture/compile/930623-1.c: Likewise. * gcc.c-torture/compile/961004-1.c: Likewise. * gcc.c-torture/compile/980504-1.c: Likewise. * gcc.c-torture/compile/980816-1.c: Likewise. * gcc.c-torture/compile/990625-1.c: Likewise. * gcc.c-torture/compile/DFcmp.c: Likewise. * gcc.c-torture/compile/HIcmp.c: Likewise. * gcc.c-torture/compile/HIset.c: Likewise. * gcc.c-torture/compile/QIcmp.c: Likewise. * gcc.c-torture/compile/QIset.c: Likewise. * gcc.c-torture/compile/SFset.c: Likewise. * gcc.c-torture/compile/SIcmp.c: Likewise. * gcc.c-torture/compile/SIset.c: Likewise. * gcc.c-torture/compile/UHIcmp.c: Likewise. * gcc.c-torture/compile/UQIcmp.c: Likewise. * gcc.c-torture/compile/USIcmp.c: Likewise. * gcc.c-torture/compile/consec.c: Likewise. * gcc.c-torture/compile/limits-fndefn.c: Likewise. * gcc.c-torture/compile/lll.c: Likewise. * gcc.c-torture/compile/parms.c: Likewise. * gcc.c-torture/compile/pass.c: Likewise. * gcc.c-torture/compile/pp.c: Likewise. * gcc.c-torture/compile/pr32399.c: Likewise. * gcc.c-torture/compile/pr34091.c: Likewise. * gcc.c-torture/compile/pr34688.c: Likewise. * gcc.c-torture/compile/pr37258.c: Likewise. * gcc.c-torture/compile/pr37327.c: Likewise. * gcc.c-torture/compile/pr37381.c: Likewise. * gcc.c-torture/compile/pr37669-2.c: Likewise. * gcc.c-torture/compile/pr37669.c: Likewise. * gcc.c-torture/compile/pr37742-3.c: Likewise. * gcc.c-torture/compile/pr44063.c: Likewise. * gcc.c-torture/compile/pr48596.c: Likewise. * gcc.c-torture/compile/pr51856.c: Likewise. * gcc.c-torture/compile/pr54428.c: Likewise. * gcc.c-torture/compile/pr54713-1.c: Likewise. * gcc.c-torture/compile/pr54713-2.c: Likewise. * gcc.c-torture/compile/pr54713-3.c: Likewise. * gcc.c-torture/compile/pr55921.c: Likewise. * gcc.c-torture/compile/pr70240.c: Likewise. * gcc.c-torture/compile/pr70355.c: Likewise. * gcc.c-torture/compile/pr82052.c: Likewise. * gcc.c-torture/compile/pr83487.c: Likewise. * gcc.c-torture/compile/pr86122.c: Likewise. * gcc.c-torture/compile/pret-arg.c: Likewise. * gcc.c-torture/compile/regs-arg-size.c: Likewise. * gcc.c-torture/compile/structret.c: Likewise. * gcc.c-torture/compile/uuarg.c: Likewise. * gcc.dg/20001009-1.c: Likewise. * gcc.dg/20020418-1.c: Likewise. * gcc.dg/20020426-2.c: Likewise. * gcc.dg/20020430-1.c: Likewise. * gcc.dg/20040306-1.c: Likewise. * gcc.dg/20040622-2.c: Likewise. * gcc.dg/20050603-2.c: Likewise. * gcc.dg/20050629-1.c: Likewise. * gcc.dg/20061026.c: Likewise. * gcc.dg/Warray-bounds-3.c: Likewise. * gcc.dg/Warray-bounds-30.c: Likewise. * gcc.dg/Wframe-larger-than-2.c: Likewise. * gcc.dg/Wframe-larger-than.c: Likewise. * gcc.dg/Wrestrict-11.c: Likewise. * gcc.c-torture/compile/20000804-1.c: Likewise. --- gcc/testsuite/ChangeLog | 87 ++++++++++++++++++++++ gcc/testsuite/gcc.c-torture/compile/20000211-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/20000403-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/20000804-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/20001226-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/20030903-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/20031125-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/20040101-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/20040317-2.c | 2 + gcc/testsuite/gcc.c-torture/compile/20040726-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/20051216-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/20101217-1.c | 4 +- gcc/testsuite/gcc.c-torture/compile/900313-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/920501-7.c | 1 + gcc/testsuite/gcc.c-torture/compile/920625-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/930421-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/930623-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/961004-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/980504-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/980816-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/990625-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/DFcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/HIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/HIset.c | 2 + gcc/testsuite/gcc.c-torture/compile/QIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/QIset.c | 2 + gcc/testsuite/gcc.c-torture/compile/SFset.c | 1 + gcc/testsuite/gcc.c-torture/compile/SIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/SIset.c | 2 + gcc/testsuite/gcc.c-torture/compile/UHIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/UQIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/USIcmp.c | 2 + gcc/testsuite/gcc.c-torture/compile/consec.c | 2 + .../gcc.c-torture/compile/limits-fndefn.c | 1 + gcc/testsuite/gcc.c-torture/compile/lll.c | 1 + gcc/testsuite/gcc.c-torture/compile/parms.c | 1 + gcc/testsuite/gcc.c-torture/compile/pass.c | 2 + gcc/testsuite/gcc.c-torture/compile/poor.c | 2 + gcc/testsuite/gcc.c-torture/compile/pp.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr25311.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr32399.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr34091.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr34688.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr37258.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr37327.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr37381.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr37669-2.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr37669.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr37742-3.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr39928-1.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr44063.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr48596.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr51856.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr54428.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr54713-1.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr54713-2.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr54713-3.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr55921.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr70061.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr70240.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr70355.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr82052.c | 2 + gcc/testsuite/gcc.c-torture/compile/pr83487.c | 1 + gcc/testsuite/gcc.c-torture/compile/pr86122.c | 1 + gcc/testsuite/gcc.c-torture/compile/pret-arg.c | 2 + .../gcc.c-torture/compile/regs-arg-size.c | 2 + gcc/testsuite/gcc.c-torture/compile/structret.c | 2 + gcc/testsuite/gcc.c-torture/compile/uuarg.c | 2 + gcc/testsuite/gcc.dg/20001009-1.c | 1 + gcc/testsuite/gcc.dg/20020418-1.c | 1 + gcc/testsuite/gcc.dg/20020426-2.c | 1 + gcc/testsuite/gcc.dg/20020430-1.c | 1 + gcc/testsuite/gcc.dg/20040306-1.c | 2 +- gcc/testsuite/gcc.dg/20040622-2.c | 1 + gcc/testsuite/gcc.dg/20050603-2.c | 1 + gcc/testsuite/gcc.dg/20050629-1.c | 1 + gcc/testsuite/gcc.dg/20061026.c | 1 + gcc/testsuite/gcc.dg/Warray-bounds-3.c | 1 + gcc/testsuite/gcc.dg/Warray-bounds-30.c | 3 +- gcc/testsuite/gcc.dg/Wframe-larger-than-2.c | 3 +- gcc/testsuite/gcc.dg/Wframe-larger-than.c | 1 + gcc/testsuite/gcc.dg/Wrestrict-11.c | 3 +- gcc/testsuite/gcc.dg/builtins-config.h | 4 +- 83 files changed, 222 insertions(+), 6 deletions(-) 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/20000804-1.c b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c index 550669b53a3..95bb0fafd70 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20000804-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20000804-1.c @@ -5,6 +5,7 @@ /* { dg-skip-if "No 64-bit registers" { m32c-*-* } } */ /* { dg-skip-if "Not enough 64-bit registers" { pdp11-*-* } { "-O0" } { "" } } */ /* { dg-xfail-if "Inconsistent constraint on asm" { csky-*-* } { "-O0" } { "" } } */ +/* { dg-xfail-if "Inconsistent constraint on asm" { bpf-*-* } { "-O0" } { "" } } */ /* { dg-xfail-if "" { h8300-*-* } } */ /* { dg-require-stack-size "99*4+16" } */ 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/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/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/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/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/20101217-1.c b/gcc/testsuite/gcc.c-torture/compile/20101217-1.c index c4eef0ed464..46bdcf5e347 100644 --- a/gcc/testsuite/gcc.c-torture/compile/20101217-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/20101217-1.c @@ -1,5 +1,7 @@ /* Testcase provided by HUAWEI. */ -#include + +extern int printf (const char * __format, ...); + int main() { int cur_k; 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/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/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/930623-1.c b/gcc/testsuite/gcc.c-torture/compile/930623-1.c index 022ad01804e..dd45bbccc38 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 "no __builtin_apply in eBPF" { bpf-*-* } } */ g (a, b) {} 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/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 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/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/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/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/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/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/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/pr39928-1.c b/gcc/testsuite/gcc.c-torture/compile/pr39928-1.c index 1abb5ccb505..ae6a63b24b8 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr39928-1.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr39928-1.c @@ -1,4 +1,6 @@ /* { dg-options "-msse" { target { i?86-*-* x86_64-*-* } } } */ +/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */ + typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); extern __m128 _mm_sub_ps (__m128 __A, __m128 __B); extern __m128 _mm_mul_ps (__m128 __A, __m128 __B); 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/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/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/pr54428.c b/gcc/testsuite/gcc.c-torture/compile/pr54428.c index 84a5dbd82bd..d783337cfdb 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr54428.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr54428.c @@ -1,4 +1,5 @@ /* PR c/54428 */ +/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */ typedef double _Complex C; 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/pr70061.c b/gcc/testsuite/gcc.c-torture/compile/pr70061.c index a7ebcfc99f8..aabfddad43f 100644 --- a/gcc/testsuite/gcc.c-torture/compile/pr70061.c +++ b/gcc/testsuite/gcc.c-torture/compile/pr70061.c @@ -1,3 +1,5 @@ +/* { dg-skip-if "too many arguments in function call" { bpf-*-* } } */ + typedef int v8si __attribute__ ((vector_size (32))); int 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/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/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/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/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 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/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__) \