From patchwork Fri Dec 14 00:15:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 10730131 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4B96613AF for ; Fri, 14 Dec 2018 00:15:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3D0E32CDFD for ; Fri, 14 Dec 2018 00:15:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 315CF2CEF2; Fri, 14 Dec 2018 00:15:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A3E1B2CDFD for ; Fri, 14 Dec 2018 00:15:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728203AbeLNAPv (ORCPT ); Thu, 13 Dec 2018 19:15:51 -0500 Received: from mail-ed1-f65.google.com ([209.85.208.65]:35518 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727042AbeLNAPv (ORCPT ); Thu, 13 Dec 2018 19:15:51 -0500 Received: by mail-ed1-f65.google.com with SMTP id x30so3576728edx.2 for ; Thu, 13 Dec 2018 16:15:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pmaJ525GDxMy06bkJt8AzYEy2mFJVC/6XX6qRWHpgK0=; b=BqaxHtLRNq/sAQ7XebglqRnqrlixojj1A225j0q4IeEESt4SIqqG2IqnORw+n/t2E6 SdtlGDFO476PZUqMpd2UORl9ikA+yjRY5UU1BH+2PnsqqXugixCOzAdWVsH5nmgTXHpj wz2N7qIKZK4YydJ0wAJtHUuLysNnbVwRTKZP90EzNZvAwaKZbbVknLMdH/kOXkD1kWAC BVikt4FbZvenKNPnZn8SJ4v6c/LWWRqu6m8/dqNsZGh0O7zJUjAc9dmCsfKiMHXhPng7 Pl3Dh4/kgNIxk2qjYciHH8i2lnz4kn1amxXAOHkf02ylAgMpUaMAg/cwTzubgpU+HIS5 o+BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pmaJ525GDxMy06bkJt8AzYEy2mFJVC/6XX6qRWHpgK0=; b=dIgevjPA/vMeDNvoPiMKTWXeWjgeibQn4nY38lKt/xDnwUaaXWxXmW9v+g78KwDi6k tQSc/LwoGLIy1ilnKUHJNDYdZaJPTa7u52gcPjKJi6JYdXmwW5xpO4DZd4f8GLJklZv0 V5aQlLQJl3hxLbty8zTqbQJZGXXLJsjDT+zAFHnwpRiTaOWRuX2K9t18FZUxo7tjv2yO bWpKNh3XDcSx4B1aVmC/kYHQCm4gaBWNL8NcQVgzlrtavZtUwLV6tFAhMbNGkpLc3Oop coDMtoEKynV7afwQHrLLPB+LxHvTCzOuty1n5/HrbWKUmKVEMATZTvYruZsufK0pN/TT oJGA== X-Gm-Message-State: AA+aEWYj8KX8bDZxSmGnZydjYXto7jXqA5PI4dCJNS95ZjlpAMtxDXFl Tir2dJ2SWGt9G3QP2/dvmILEvy/e X-Google-Smtp-Source: AFSGD/VMBm2Xri4Se64C2YlJOXdwDztQxu+fLDgVI2AxyX8YvtJhxahjSxVEmuR+9AufXmi84cfcug== X-Received: by 2002:a17:906:a88c:: with SMTP id ha12-v6mr838726ejb.107.1544746548592; Thu, 13 Dec 2018 16:15:48 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:4081:8a00:5930:404c:ddbe:1aaf]) by smtp.gmail.com with ESMTPSA id f20sm986489edf.19.2018.12.13.16.15.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 16:15:48 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH v3 04/19] testsuite: test predef macros on LP32/LP64/LLP64 Date: Fri, 14 Dec 2018 01:15:21 +0100 Message-Id: <20181214001536.6259-5-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214001536.6259-1-luc.vanoostenryck@gmail.com> References: <20181214001536.6259-1-luc.vanoostenryck@gmail.com> MIME-Version: 1.0 Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Now these tests should succeed and be meaningful on all archs. Signed-off-by: Luc Van Oostenryck --- validation/preprocessor/predef-char-bit.c | 16 --------- validation/preprocessor/predef-llp64.c | 10 ++++++ validation/preprocessor/predef-lp32.c | 9 +++++ validation/preprocessor/predef-lp64.c | 9 +++++ validation/preprocessor/predef-max.c | 18 ---------- validation/preprocessor/predef-sizeof.c | 25 -------------- validation/preprocessor/predef.c | 42 +++++++++++++++++++++++ 7 files changed, 70 insertions(+), 59 deletions(-) delete mode 100644 validation/preprocessor/predef-char-bit.c create mode 100644 validation/preprocessor/predef-llp64.c create mode 100644 validation/preprocessor/predef-lp32.c create mode 100644 validation/preprocessor/predef-lp64.c delete mode 100644 validation/preprocessor/predef-max.c delete mode 100644 validation/preprocessor/predef-sizeof.c create mode 100644 validation/preprocessor/predef.c diff --git a/validation/preprocessor/predef-char-bit.c b/validation/preprocessor/predef-char-bit.c deleted file mode 100644 index fed0166e4..000000000 --- a/validation/preprocessor/predef-char-bit.c +++ /dev/null @@ -1,16 +0,0 @@ -#define TEST_BIT(X, T) if (__ ## X ## _BIT__ != 8 * sizeof(T)) return 1 - -int test(void) -{ - TEST_BIT(CHAR, char); - - return 0; -} - -/* - * check-name: predefined ___BIT__ - * check-command: test-linearize -Wno-decl $file - * check-output-ignore - * - * check-output-contains: ret\\..*\\$0 - */ diff --git a/validation/preprocessor/predef-llp64.c b/validation/preprocessor/predef-llp64.c new file mode 100644 index 000000000..a34b51b3a --- /dev/null +++ b/validation/preprocessor/predef-llp64.c @@ -0,0 +1,10 @@ +#include "predef.c" + +/* + * check-name: predefined macros for LLP64 + * check-command: test-linearize -Wno-decl -msize-llp64 $file + * check-known-to-fail + * check-output-ignore + * + * check-output-contains: ret\\..*\\$0 + */ diff --git a/validation/preprocessor/predef-lp32.c b/validation/preprocessor/predef-lp32.c new file mode 100644 index 000000000..8fa2846c2 --- /dev/null +++ b/validation/preprocessor/predef-lp32.c @@ -0,0 +1,9 @@ +#include "predef.c" + +/* + * check-name: predefined macros for LP32 + * check-command: test-linearize -Wno-decl -m32 $file + * check-output-ignore + * + * check-output-contains: ret\\..*\\$0 + */ diff --git a/validation/preprocessor/predef-lp64.c b/validation/preprocessor/predef-lp64.c new file mode 100644 index 000000000..0173ca40d --- /dev/null +++ b/validation/preprocessor/predef-lp64.c @@ -0,0 +1,9 @@ +#include "predef.c" + +/* + * check-name: predefined macros for LP64 + * check-command: test-linearize -Wno-decl -m64 $file + * check-output-ignore + * + * check-output-contains: ret\\..*\\$0 + */ diff --git a/validation/preprocessor/predef-max.c b/validation/preprocessor/predef-max.c deleted file mode 100644 index ad4b7eaf1..000000000 --- a/validation/preprocessor/predef-max.c +++ /dev/null @@ -1,18 +0,0 @@ -#define TEST_MAX(X, Z) if (X != ((~ Z) >> 1)) return 1 - -int test_max(void) -{ - TEST_MAX(__INT_MAX__, 0U); - TEST_MAX(__LONG_MAX__, 0UL); - TEST_MAX(__LONG_LONG_MAX__, 0ULL); - - return 0; -} - -/* - * check-name: predefined ___MAX__ - * check-command: test-linearize -Wno-decl $file - * check-output-ignore - * - * check-output-contains: ret\\..*\\$0 - */ diff --git a/validation/preprocessor/predef-sizeof.c b/validation/preprocessor/predef-sizeof.c deleted file mode 100644 index 12be2dd1d..000000000 --- a/validation/preprocessor/predef-sizeof.c +++ /dev/null @@ -1,25 +0,0 @@ -#define TEST(X, T) if (__SIZEOF_ ## X ## __ != sizeof(T)) return 1 - -int test_sizeof(void) -{ - TEST(SHORT, short); - TEST(INT, int); - TEST(LONG, long); - TEST(LONG_LONG, long long); - TEST(INT128, __int128); - TEST(SIZE_T, __SIZE_TYPE__); - TEST(POINTER, void*); - TEST(FLOAT, float); - TEST(DOUBLE, double); - TEST(LONG_DOUBLE, long double); - - return 0; -} - -/* - * check-name: predefined __SIZEOF___ - * check-command: test-linearize -Wno-decl $file - * check-output-ignore - * - * check-output-contains: ret\\..*\\$0 - */ diff --git a/validation/preprocessor/predef.c b/validation/preprocessor/predef.c new file mode 100644 index 000000000..ccb5d3619 --- /dev/null +++ b/validation/preprocessor/predef.c @@ -0,0 +1,42 @@ +#define BITS(T) (sizeof(T) * 8) +#define SIGN_BIT(T) (1ULL << (BITS(T) - 1)) +#define SMASK(T) (SIGN_BIT(T) - 1) +#define UMASK(T) (SIGN_BIT(T) | SMASK(T)) + +int test(void); +int test(void) +{ +#define TEST_BIT(X, T) if (__ ## X ## _BIT__ != BITS(T)) return 1 + TEST_BIT(CHAR, char); + +#define TEST_MAX(X, M) if (__ ## X ## _MAX__ != M) return 1 +#define TEST_SMAX(X, T) TEST_MAX(X, SMASK(T)) +#define TEST_UMAX(X, T) TEST_MAX(X, UMASK(T)) + TEST_SMAX(SCHAR, signed char); + TEST_SMAX(SHRT, short); + TEST_SMAX(INT, int); + TEST_SMAX(LONG, long); + TEST_SMAX(LONG_LONG, long long); + +#define TEST_SIZEOF(X, T) if (__SIZEOF_ ## X ## __ != sizeof(T)) return 1 + TEST_SIZEOF(SHORT, short); + TEST_SIZEOF(INT, int); + TEST_SIZEOF(LONG, long); + TEST_SIZEOF(LONG_LONG, long long); + TEST_SIZEOF(INT128, __int128); + TEST_SIZEOF(SIZE_T, __SIZE_TYPE__); + TEST_SIZEOF(POINTER, void*); + TEST_SIZEOF(FLOAT, float); + TEST_SIZEOF(DOUBLE, double); + TEST_SIZEOF(LONG_DOUBLE, long double); + + return 0; +} + +/* + * check-name: predefined macros: __SIZEOF___, ... + * check-command: test-linearize -Wno-decl $file + * check-output-ignore + * + * check-output-contains: ret\\..*\\$0 + */