From patchwork Sun Dec 9 23:43:10 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: 10720425 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 32052112E for ; Sun, 9 Dec 2018 23:43:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2233629DC1 for ; Sun, 9 Dec 2018 23:43:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 16BB529DD2; Sun, 9 Dec 2018 23:43:32 +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 86A3A29DC1 for ; Sun, 9 Dec 2018 23:43:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726392AbeLIXnb (ORCPT ); Sun, 9 Dec 2018 18:43:31 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:45346 "EHLO mail-ed1-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXnb (ORCPT ); Sun, 9 Dec 2018 18:43:31 -0500 Received: by mail-ed1-f47.google.com with SMTP id d39so7982879edb.12 for ; Sun, 09 Dec 2018 15:43:28 -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=yLm8PqEoe2YHGM6jM5A5WHvFmzJdQnX/ncWnLGTQpMU=; b=a6+gq1+A92Yvpe4CHcxNL3o+GrHYOHDmEyWhmqeX5eRXzWTaP4cM04NScPW0muRd17 L5stR542nByd/uVwaub3eByLod3enFrWAhmfncc59RXCWyg0xEbBSEF9u0720YNmUcZZ suHjtp/u5cc0RkI4IVYmskDz/xE7PaldvnsbnAy72fEoTq5KtrE7bVhY7716SGauoIFT KS8y731gCCCRucDMf7MM8B9F9bEp8wuO8pnzccyE6SupRpM4yPEuqNvmvr7ZS/+CE8T1 0IFrOXL9nURPVtEf3Qaar+UXyW6UNNWRF8u+JLGe6eLeiZpRaiDK5Tm7g7uyA5N/f2GQ u9kA== 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=yLm8PqEoe2YHGM6jM5A5WHvFmzJdQnX/ncWnLGTQpMU=; b=mIntiPT9/LaLSVOPRSggTDWcUknWPOHWjBnxASd/9EUHlzn2kCBG0qqohhHlC/3EnX JhJgjaE3cYpjtyGnrllnbwnLeR9tkXoLlkndJDoRmUJZUpLj9Tnb57Sx0N2CKKBMmm1O NycTRao6MTo2Q0fV2rzw5u/v1dVT9BjGUMLBShabaDDWNzDgol/sTvbtLWJZzNY9zOk4 iF4NpX9cbMahGy8+9iTuW9teELXC/e7Jl6kLky1cY596ShW1vf5BpDDCSIFQfYJO0JkV yV3EeR4wuu5WNkKwMxeyz/ZXjqnkf2JdBS4JgsBE0Hs/w9RUc/8Z1ocaxUuJ2GKtMXl2 J4xA== X-Gm-Message-State: AA+aEWY6SJn+v+LXv1u8VfUWgeanr4gTGrxZy+xXbpbA8Tc5dpzT4SPN wNNdbriDLF/FPQ2zhMvmUmU030BC X-Google-Smtp-Source: AFSGD/XHxjMiadifn4IPfCt+LCPr9k4FRsiB9oK6zZCtXC+zeCBBvmqiRxcb5zfXBvrZHthBbecsLg== X-Received: by 2002:a50:91f1:: with SMTP id h46mr9719993eda.212.1544399007653; Sun, 09 Dec 2018 15:43:27 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:27 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 01/11] testsuite: test predef macros on LP32/LP64/LLP64 Date: Mon, 10 Dec 2018 00:43:10 +0100 Message-Id: <20181209234320.65274-2-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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. --- 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 | 38 +++++++++++++++++++++++ 7 files changed, 66 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..0453ce43f --- /dev/null +++ b/validation/preprocessor/predef.c @@ -0,0 +1,38 @@ +#define BITS(T) (sizeof(T) * 8) +#define SIGN_BIT(T) (1ULL << (BITS(T) - 1)) + +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, T) if (__ ## X ## _MAX__ != (SIGN_BIT(T) - 1)) return 1 + TEST_MAX(SCHAR, signed char); + TEST_MAX(SHRT, short); + TEST_MAX(INT, int); + TEST_MAX(LONG, long); + TEST_MAX(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 + */ From patchwork Sun Dec 9 23:43:11 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: 10720423 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 520EA18A7 for ; Sun, 9 Dec 2018 23:43:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4273729DC1 for ; Sun, 9 Dec 2018 23:43:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 367F229DD2; Sun, 9 Dec 2018 23:43:31 +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 D2D3929DC7 for ; Sun, 9 Dec 2018 23:43:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726455AbeLIXna (ORCPT ); Sun, 9 Dec 2018 18:43:30 -0500 Received: from mail-ed1-f67.google.com ([209.85.208.67]:41369 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726392AbeLIXna (ORCPT ); Sun, 9 Dec 2018 18:43:30 -0500 Received: by mail-ed1-f67.google.com with SMTP id z28so7999311edi.8 for ; Sun, 09 Dec 2018 15:43:29 -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=kSJhp1Qq3KkSfszOTBc0gp+l654BpapAb0QqbL7d2iM=; b=XZGkeVDHsqNuuLV3VXfktPPJzcQSGVvlP6Y/ltKtjeNMJGsVOQAmSuZ8Pc8sD6UYdL JFt4gAPk3YO1vcTEouHvUXZQ+UGEWLDDyWj2HeRlZEGVBU1Ab9tPRjH3VrColOrLnSii FoWLolBRtppiSe260zjbgG2WJpdNCHrNI8LZsihAs8KkC8uzLC2C/LVsfnGgenSaJZRe JPqhsFBiaWFQn5o1QnTin50MTzYivzPfzE9o6XV3qxMxdVzExm6bGgKs3FVJ3xKtqUKR JU4KmZNWaxacLWCalLuQuj87p37XJJZy4Zdxf/i+73th6LpP1zbUxD4eKn2p0zfQf/yH 8nIA== 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=kSJhp1Qq3KkSfszOTBc0gp+l654BpapAb0QqbL7d2iM=; b=DSol0sd1poZLJZxnyKOGfot1pVMb8w0CWt2cXYveqZuwyWGgOnzebq3TK1v6DeyyUr WRF6fQ2fg1YFLz4XDhLehDf6Pe56qMub3hEJnBE65DKQp6tH7yc64+h4APUMSl1V9+bO FNcPPdePVkcrCsEfSbuPmsGRdoBp7YRtCTYNj2GXb0YQK0iwS1I/khsio9Jt2y8UQB3F aeWm7STvN8iaog3rPLemnnYjBj4OyHVg3hiB4HGQiiTqQCgcBTA5a5ljy+YB3D1KwDZY 7VB50bJcGwsojLDFRrfe6zRaJg5chQiZc0eOaam38BxNbMGsXNxo2kmNzsoKz+NUKvcd Aikg== X-Gm-Message-State: AA+aEWbUPpKJ4Dlw2MvgIQ90peVABOvpbc2bACW/85YFLtls9ftbBT07 QEZHcQc/VO6F87iCfgB4x3LPWsyB X-Google-Smtp-Source: AFSGD/U4PFVsy3HRlqvgmPHU1J+V/CnQlMPTSu4nN3l7oeBvPBvAN7qetdFW0wJFjy+xPH9npOEKtQ== X-Received: by 2002:a50:95b4:: with SMTP id w49mr9426272eda.186.1544399008707; Sun, 09 Dec 2018 15:43:28 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:28 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 02/11] fix '__SIZE_TYPE__' for LLP64 Date: Mon, 10 Dec 2018 00:43:11 +0100 Message-Id: <20181209234320.65274-3-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 size_t_ctype is set to uint, ulong or ullong, depending on the architecture (ullong is only used for LLP64). However, when emitting '__SIZE_TYPE__', it's only compared to ulong or uint. Fix this by using an small helper directly using the right struct symbol * and using builtin_typename() to output the right type. This way we're guaranteed that '__SIZE_TYPE__' is kept coherent with the internal type: size_t_ctype. --- lib.c | 17 +++++++---------- validation/preprocessor/predef-llp64.c | 1 - 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/lib.c b/lib.c index 5c2059f23..8136b3368 100644 --- a/lib.c +++ b/lib.c @@ -1176,6 +1176,12 @@ static void predefined_type_size(const char *name, const char *suffix, unsigned predefined_width(name, bits); } +static void predefined_type(const char *name, struct symbol *type) +{ + const char *typename = builtin_typename(type); + add_pre_buffer("#weak_define __%s_TYPE__ %s\n", name, typename); +} + static void predefined_macros(void) { predefine("__CHECKER__", 0, "1"); @@ -1269,16 +1275,7 @@ static void create_builtin_stream(void) // Temporary hack add_pre_buffer("#define _Pragma(x)\n"); - // gcc defines __SIZE_TYPE__ to be size_t. For linux/i86 and - // solaris/sparc that is really "unsigned int" and for linux/x86_64 - // it is "long unsigned int". In either case we can probably - // get away with this. We need the #weak_define as cgcc will define - // the right __SIZE_TYPE__. - if (size_t_ctype == &ulong_ctype) - add_pre_buffer("#weak_define __SIZE_TYPE__ long unsigned int\n"); - else - add_pre_buffer("#weak_define __SIZE_TYPE__ unsigned int\n"); - + predefined_type("SIZE", size_t_ctype); /* add the multiarch include directories, if any */ if (multiarch_dir && *multiarch_dir) { diff --git a/validation/preprocessor/predef-llp64.c b/validation/preprocessor/predef-llp64.c index a34b51b3a..0a758690c 100644 --- a/validation/preprocessor/predef-llp64.c +++ b/validation/preprocessor/predef-llp64.c @@ -3,7 +3,6 @@ /* * 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 From patchwork Sun Dec 9 23:43:12 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: 10720427 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 CDAC018A7 for ; Sun, 9 Dec 2018 23:43:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE75229DC1 for ; Sun, 9 Dec 2018 23:43:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B30D329DD2; Sun, 9 Dec 2018 23:43:32 +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 5951B29DC1 for ; Sun, 9 Dec 2018 23:43:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726469AbeLIXnc (ORCPT ); Sun, 9 Dec 2018 18:43:32 -0500 Received: from mail-ed1-f45.google.com ([209.85.208.45]:40498 "EHLO mail-ed1-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726454AbeLIXnb (ORCPT ); Sun, 9 Dec 2018 18:43:31 -0500 Received: by mail-ed1-f45.google.com with SMTP id d3so8001317edx.7 for ; Sun, 09 Dec 2018 15:43:30 -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=9Lv/tmwo4BWgqxeSP1zjBrrl49itzXmw0j3kKpZYN9w=; b=ipvEFAZJwvJQw1PZ8FkAkvKU0/Y45QYXE9wktXYxKSd4qaN8ERBLWZDapjmIwi9v/8 RzA+/6+cVXsPEU2Js8F32payOt2KnL2APvLc0IiUYsg4pLfENVQAg3Wijq6kMMZ6VUT8 yT4FL02scoGcYC0WsOjB7w2GDHmc7gO1zDs8DY3wsNZyaSpRQ8W5mLHUNVFbOW1vZUnT ewyPgm+oQLHgkKJaXif4bzsoOtAwHIN0UkE3nCeM+YcGLRtdaibG2aKdMXUqHftZJBQ2 /jNG/VQHVZzb29TwyHrikkTIrsP+7HX3haYkB0ZIGbjr9GkOjh2fWQJTzTk5DK10IoTp RZHg== 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=9Lv/tmwo4BWgqxeSP1zjBrrl49itzXmw0j3kKpZYN9w=; b=ZMCnnCy8DMYeMctWy7J+wA/k/t5xxW2VMifZTfYieIlnvKVHNrVz6er5a/4nA7GQIx RliD57and8e3iXC0YTVbeu801LxSA5uYgnkUTl2mapa86XqHMfMZy45BMgnCYeqaZokE 8sOw/zKNAMW4+RObpjutit3XzwHsmX8I8Jx8sSaxC5YHEddKpgmqKxTiCcp7dTTkDoyI nCuMuRXHnMY2GcrOqjH9yoGDdXhpBshUgOdEra631oWPID9Bz599WgxKMGTr/5sjbxhP xZql8JumkGUsebkilSISIJKwkI42J4bX7pAF3emTiBfTQ3j6f7Jskn8qrtxLR/x7z8Qn Qr3A== X-Gm-Message-State: AA+aEWbiHT1CL75f9gRb9VDNzVzWo7zPYbJMyK62MR5QGcDkjTd9Km6y Qm5AgMbbadG9shhXeDK3XWI1WMGL X-Google-Smtp-Source: AFSGD/VhUmKyLzEPdPVIDY8eK0GOM+MIfjwG09QjrkN0A/d4kp+0SJoagZWV9EihFOJAA9BA+eD3xg== X-Received: by 2002:a50:8a03:: with SMTP id i3mr9689413edi.164.1544399009493; Sun, 09 Dec 2018 15:43:29 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:29 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 03/11] allow optional "_T" suffix to __SIZEOF_XXX__ Date: Mon, 10 Dec 2018 00:43:12 +0100 Message-Id: <20181209234320.65274-4-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 This allows to be more generic. --- lib.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib.c b/lib.c index 8136b3368..db33e58b2 100644 --- a/lib.c +++ b/lib.c @@ -1144,11 +1144,11 @@ static char **handle_switch(char *arg, char **next) return next; } -static void predefined_sizeof(const char *name, unsigned bits) +static void predefined_sizeof(const char *name, const char *suffix, unsigned bits) { char buf[32]; - snprintf(buf, sizeof(buf), "__SIZEOF_%s__", name); + snprintf(buf, sizeof(buf), "__SIZEOF_%s%s__", name, suffix); predefine(buf, 1, "%d", bits/8); } @@ -1172,7 +1172,7 @@ static void predefined_max(const char *name, const char *suffix, unsigned bits) static void predefined_type_size(const char *name, const char *suffix, unsigned bits) { predefined_max(name, suffix, bits); - predefined_sizeof(name, bits); + predefined_sizeof(name, "", bits); predefined_width(name, bits); } @@ -1223,12 +1223,12 @@ static void predefined_macros(void) break; } - predefined_sizeof("SHORT", bits_in_short); + predefined_sizeof("SHORT", "", bits_in_short); predefined_max("SHRT", "", bits_in_short); predefined_width("SHRT", bits_in_short); predefined_max("SCHAR", "", bits_in_char); predefined_width("SCHAR", bits_in_char); - predefined_sizeof("WCHAR_T",bits_in_wchar); + predefined_sizeof("WCHAR", "_T", bits_in_wchar); predefined_max("WCHAR", "", bits_in_wchar); predefined_width("WCHAR", bits_in_wchar); predefine("__CHAR_BIT__", 1, "%d", bits_in_char); @@ -1237,17 +1237,17 @@ static void predefined_macros(void) predefined_type_size("LONG", "L", bits_in_long); predefined_type_size("LONG_LONG", "LL", bits_in_longlong); - predefined_sizeof("INT128", 128); + predefined_sizeof("INT128", "", 128); - predefined_sizeof("SIZE_T", bits_in_pointer); + predefined_sizeof("SIZE", "_T", bits_in_pointer); predefined_width( "SIZE", bits_in_pointer); - predefined_sizeof("PTRDIFF_T", bits_in_pointer); + predefined_sizeof("PTRDIFF", "_T", bits_in_pointer); predefined_width( "PTRDIFF", bits_in_pointer); - predefined_sizeof("POINTER", bits_in_pointer); + predefined_sizeof("POINTER", "", bits_in_pointer); - predefined_sizeof("FLOAT", bits_in_float); - predefined_sizeof("DOUBLE", bits_in_double); - predefined_sizeof("LONG_DOUBLE", bits_in_longdouble); + predefined_sizeof("FLOAT", "", bits_in_float); + predefined_sizeof("DOUBLE", "", bits_in_double); + predefined_sizeof("LONG_DOUBLE", "", bits_in_longdouble); predefine("__ORDER_LITTLE_ENDIAN__", 1, "1234"); predefine("__ORDER_BIG_ENDIAN__", 1, "4321"); From patchwork Sun Dec 9 23:43:13 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: 10720429 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 B736614E2 for ; Sun, 9 Dec 2018 23:43:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A682929DC1 for ; Sun, 9 Dec 2018 23:43:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B17029DD2; Sun, 9 Dec 2018 23:43:33 +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 35BC229DC1 for ; Sun, 9 Dec 2018 23:43:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726454AbeLIXnd (ORCPT ); Sun, 9 Dec 2018 18:43:33 -0500 Received: from mail-ed1-f42.google.com ([209.85.208.42]:43144 "EHLO mail-ed1-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXnc (ORCPT ); Sun, 9 Dec 2018 18:43:32 -0500 Received: by mail-ed1-f42.google.com with SMTP id f9so7995032eds.10 for ; Sun, 09 Dec 2018 15:43:31 -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=Qjo9FBfLr+HQjOFf1DfP75Pz3Ld2B6HH0PV2ehon4AM=; b=FcJSYsJ2CKdo5tMVtFx3EqkEqHolA7ziJlxAQgV+EDP0ay2N7oKW3AT65o2H6R5HtK l8hiLOnaECMpnzEa+ARvhBT6oU+a3rZnyJXkKqaTHbKg6IegA+zLtJ4y6DouRJu4Kc75 m0vBSWDhweGCbcIZyi39QD6f7rz6r95WyeCyEgsYJSlElE6arqZsnY8YgSjTKWOLsH+v sUtdvjBcTsnr/aOOv93WvSR0rz7/5g65s7K/JweSF+6DvOPSpf1DE5kUsNvDhsm1w6DP k+DmYPWBg8J/dwu8n5T3ny+Fb4jUerGgRu8YOHPLynYMbG9f77v+tX2AdMla4KbqRgA5 hncA== 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=Qjo9FBfLr+HQjOFf1DfP75Pz3Ld2B6HH0PV2ehon4AM=; b=KOhlERChrHSdoXL91wqspe5VUtOP8PFCFTHD33o3fQpGl1bsU9VqQAdgkUkF+02aDa CZD5WAD5H5TkMIiyfFyaaEWEIkR9EalMT10/uqJUlx/vIfYmGXhftlLv1Oz+/3stLDWL /5n5UonuOcf/woL4k1qqXVaNQhdTSJQv5PBj8YO221MpjZnH/Pku3iFEBE0nI8KZEipL 7IwXVKbwEoC9JkvXELBhlgUltGtZ/rsIt/l/LU6c3M+EayPvcgEzEvntI0/gSiefwc/V CgT3hDnB7JoGOwOXxYEyemQZjaYCpb44TabtwxzcnHBII0nui/ErH53IYu/AKrkNgCPh CNqQ== X-Gm-Message-State: AA+aEWZid36x6JXWzZ39cJ/pgVbbERh1gio+TXJ89sy1DdtZAn0lZwIr e78U/OCdAR7sVWaQDMdJwHoBOjty X-Google-Smtp-Source: AFSGD/UOyL9Xqq8+j3HSCXpvhOhEdGAYJecGzejITD6e3gTEUxaUGwTWifTc1rjFVGvi2J8x9IgQrg== X-Received: by 2002:a17:906:2555:: with SMTP id j21-v6mr8129008ejb.103.1544399010340; Sun, 09 Dec 2018 15:43:30 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:29 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 04/11] add builtin_type_suffix() Date: Mon, 10 Dec 2018 00:43:13 +0100 Message-Id: <20181209234320.65274-5-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 With this helper, we can easily output constants with the correct type, like '0x123' for ints, '0x123UL' for unsigned longs, .... --- show-parse.c | 73 ++++++++++++++++++++++++++++++---------------------- symbol.h | 1 + 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/show-parse.c b/show-parse.c index 6328439c9..2705d162c 100644 --- a/show-parse.c +++ b/show-parse.c @@ -218,38 +218,39 @@ static void FORMAT_ATTR(2) append(struct type_name *name, const char *fmt, ...) static struct ctype_name { struct symbol *sym; const char *name; + const char *suffix; } typenames[] = { - { & char_ctype, "char" }, - { &schar_ctype, "signed char" }, - { &uchar_ctype, "unsigned char" }, - { & short_ctype, "short" }, - { &sshort_ctype, "signed short" }, - { &ushort_ctype, "unsigned short" }, - { & int_ctype, "int" }, - { &sint_ctype, "signed int" }, - { &uint_ctype, "unsigned int" }, - { &slong_ctype, "signed long" }, - { & long_ctype, "long" }, - { &ulong_ctype, "unsigned long" }, - { & llong_ctype, "long long" }, - { &sllong_ctype, "signed long long" }, - { &ullong_ctype, "unsigned long long" }, - { & lllong_ctype, "long long long" }, - { &slllong_ctype, "signed long long long" }, - { &ulllong_ctype, "unsigned long long long" }, - - { &void_ctype, "void" }, - { &bool_ctype, "bool" }, - { &string_ctype, "string" }, - - { &float_ctype, "float" }, - { &double_ctype, "double" }, - { &ldouble_ctype,"long double" }, - { &incomplete_ctype, "incomplete type" }, - { &int_type, "abstract int" }, - { &fp_type, "abstract fp" }, - { &label_ctype, "label type" }, - { &bad_ctype, "bad type" }, + { & char_ctype, "char", "" }, + { &schar_ctype, "signed char", "" }, + { &uchar_ctype, "unsigned char", "" }, + { & short_ctype, "short", "" }, + { &sshort_ctype, "signed short", "" }, + { &ushort_ctype, "unsigned short", "" }, + { & int_ctype, "int", "" }, + { &sint_ctype, "signed int", "" }, + { &uint_ctype, "unsigned int", "U" }, + { &slong_ctype, "signed long", "L" }, + { & long_ctype, "long", "L" }, + { &ulong_ctype, "unsigned long", "UL" }, + { & llong_ctype, "long long", "LL" }, + { &sllong_ctype, "signed long long", "LL" }, + { &ullong_ctype, "unsigned long long", "ULL" }, + { & lllong_ctype, "long long long", "LLL" }, + { &slllong_ctype, "signed long long long", "LLL" }, + { &ulllong_ctype, "unsigned long long long", "ULLL" }, + + { &void_ctype, "void", "" }, + { &bool_ctype, "bool", "" }, + { &string_ctype, "string", "" }, + + { &float_ctype, "float", "F" }, + { &double_ctype, "double", "" }, + { &ldouble_ctype,"long double", "L" }, + { &incomplete_ctype, "incomplete type", "" }, + { &int_type, "abstract int", "" }, + { &fp_type, "abstract fp", "" }, + { &label_ctype, "label type", "" }, + { &bad_ctype, "bad type", "" }, }; const char *builtin_typename(struct symbol *sym) @@ -262,6 +263,16 @@ const char *builtin_typename(struct symbol *sym) return NULL; } +const char *builtin_type_suffix(struct symbol *sym) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(typenames); i++) + if (typenames[i].sym == sym) + return typenames[i].suffix; + return NULL; +} + const char *builtin_ctypename(struct ctype *ctype) { int i; diff --git a/symbol.h b/symbol.h index 5a3d7cef5..f9fb4bc5a 100644 --- a/symbol.h +++ b/symbol.h @@ -317,6 +317,7 @@ extern struct symbol *examine_symbol_type(struct symbol *); extern struct symbol *examine_pointer_target(struct symbol *); extern const char *show_typename(struct symbol *sym); extern const char *builtin_typename(struct symbol *sym); +extern const char *builtin_type_suffix(struct symbol *sym); extern const char *builtin_ctypename(struct ctype *ctype); extern const char* get_type_name(enum type type); From patchwork Sun Dec 9 23:43:14 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: 10720431 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 9663714E2 for ; Sun, 9 Dec 2018 23:43:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8708129DC1 for ; Sun, 9 Dec 2018 23:43:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7B58D29DD2; Sun, 9 Dec 2018 23:43:34 +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 1285129DC1 for ; Sun, 9 Dec 2018 23:43:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726489AbeLIXnd (ORCPT ); Sun, 9 Dec 2018 18:43:33 -0500 Received: from mail-ed1-f68.google.com ([209.85.208.68]:36940 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726472AbeLIXnd (ORCPT ); Sun, 9 Dec 2018 18:43:33 -0500 Received: by mail-ed1-f68.google.com with SMTP id h15so8013785edb.4 for ; Sun, 09 Dec 2018 15:43:32 -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=ZdBhVgCk0wMPuq3JCqCRKmBtFxX/0fJ61DRNqjbtG9c=; b=XKBKfOQ6pdsWjHMgQ8oxgs9z/WE6ieu8TEJGSICAB1SU+7pAT3fo2A+UURSQnTr6gz BF7fLDAnQ5bEcWfS1AE3ApjsWcadXMH3XaNK50S6wgIo/TxOE57kyWtpobTJetJp1ntG LX377BaAEPMzdIepqBSC+PIwkc/QXUWldFccL+pAyb7u2jr9GEKl6PM/I/SfEDfFtghY 7fyfIVm8ip8i5eiVGtCEWaApzhXGZow0yHXVvbCGx87AxHTfjV9ZPxvBwCb8Ch0znIdE WQBVfwxgy5gTkXQ02t5kpR4TQarfur4Ip6zK4277Mhhhdl+tPQ0BWGhP8UfVk6F3EDzF 9XyQ== 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=ZdBhVgCk0wMPuq3JCqCRKmBtFxX/0fJ61DRNqjbtG9c=; b=YQAqxXv609W+UJYfR0uxJ7YahR5lB4yuwKR/QmcilApmliVlvnjAbkI8LwbOWAZVzA x3VCx6DZMyAfhz1O62S48NUUKN4mxzWA+NqS63whozxfQdyOZL2QWf+mmjqBIaiz5Ibm njzu21KBCDWtAJyC/QAywR0C5SOiX5ekI8SDtOcUwKskhssN+QhUScEHKtrYfTfqyi2A dqOOcIknWzJLmj+A+mhBa88Jqhb4/Y42hZwEgXwrGn6RLX5WGT3/tqlQu4NbmmmyYRQC VDGUWKoEDMK1P6bABHSiKI4KJq/tlkmgKGWcyaRjsI9DO8N8GaIDLwTHvXatXZlsJ8Sm 9Pqg== X-Gm-Message-State: AA+aEWZ45I/Ov7Z2iAh/drAi4oRPfSGlfIrtRariZu8IOwdFJ8Yq7sTo hXhm1zYd8Sd1gqfvE6+c9HILlCa0 X-Google-Smtp-Source: AFSGD/UkDeE2TvK6onRZ2FpcLPUHPt0XllEhUdXSQJZvmO6avMw7TgdMbDmwCsRJhWhu7Sbgyqkz8w== X-Received: by 2002:a50:9b1d:: with SMTP id o29mr9033982edi.246.1544399011447; Sun, 09 Dec 2018 15:43:31 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:30 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 05/11] make predefined_type_size() more generic Date: Mon, 10 Dec 2018 00:43:14 +0100 Message-Id: <20181209234320.65274-6-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 This allows to have a single function to output the size, the type, the maximal value, ... --- lib.c | 57 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/lib.c b/lib.c index db33e58b2..1156f6f6c 100644 --- a/lib.c +++ b/lib.c @@ -1144,6 +1144,15 @@ static char **handle_switch(char *arg, char **next) return next; } +#define PTYPE_SIZEOF (1U << 0) +#define PTYPE_T (1U << 1) +#define PTYPE_SIZEOF_T (PTYPE_SIZEOF|PTYPE_T) +#define PTYPE_MAX (1U << 2) +#define PTYPE_MIN (1U << 3) +#define PTYPE_TYPE (1U << 4) +#define PTYPE_WIDTH (1U << 4) +#define PTYPE_ALL (PTYPE_MAX|PTYPE_SIZEOF|PTYPE_WIDTH) + static void predefined_sizeof(const char *name, const char *suffix, unsigned bits) { char buf[32]; @@ -1169,19 +1178,30 @@ static void predefined_max(const char *name, const char *suffix, unsigned bits) predefine(buf, 1, "%#llx%s", max, suffix); } -static void predefined_type_size(const char *name, const char *suffix, unsigned bits) -{ - predefined_max(name, suffix, bits); - predefined_sizeof(name, "", bits); - predefined_width(name, bits); -} - static void predefined_type(const char *name, struct symbol *type) { const char *typename = builtin_typename(type); add_pre_buffer("#weak_define __%s_TYPE__ %s\n", name, typename); } +static void predefined_ctype(const char *name, struct symbol *type, int flags) +{ + unsigned bits = type->bit_size; + + if (flags & PTYPE_SIZEOF) { + const char *suffix = (flags & PTYPE_T) ? "_T" : ""; + predefined_sizeof(name, suffix, bits); + } + if (flags & PTYPE_MAX) { + const char *suffix = builtin_type_suffix(type); + predefined_max(name, suffix, bits); + } + if (flags & PTYPE_TYPE) + predefined_type(name, type); + if (flags & PTYPE_WIDTH) + predefined_width(name, bits); +} + static void predefined_macros(void) { predefine("__CHECKER__", 0, "1"); @@ -1223,26 +1243,23 @@ static void predefined_macros(void) break; } - predefined_sizeof("SHORT", "", bits_in_short); - predefined_max("SHRT", "", bits_in_short); - predefined_width("SHRT", bits_in_short); - predefined_max("SCHAR", "", bits_in_char); - predefined_width("SCHAR", bits_in_char); + predefined_ctype("SHORT", &short_ctype, PTYPE_SIZEOF); + predefined_ctype("SHRT", &short_ctype, PTYPE_MAX|PTYPE_WIDTH); + predefined_ctype("SCHAR", &char_ctype, PTYPE_MAX|PTYPE_WIDTH); predefined_sizeof("WCHAR", "_T", bits_in_wchar); predefined_max("WCHAR", "", bits_in_wchar); predefined_width("WCHAR", bits_in_wchar); + predefine("__CHAR_BIT__", 1, "%d", bits_in_char); - predefined_type_size("INT", "", bits_in_int); - predefined_type_size("LONG", "L", bits_in_long); - predefined_type_size("LONG_LONG", "LL", bits_in_longlong); + predefined_ctype("INT", &int_ctype, PTYPE_ALL); + predefined_ctype("LONG", &long_ctype, PTYPE_ALL); + predefined_ctype("LONG_LONG", &llong_ctype, PTYPE_ALL); predefined_sizeof("INT128", "", 128); - predefined_sizeof("SIZE", "_T", bits_in_pointer); - predefined_width( "SIZE", bits_in_pointer); - predefined_sizeof("PTRDIFF", "_T", bits_in_pointer); - predefined_width( "PTRDIFF", bits_in_pointer); + predefined_ctype("SIZE", size_t_ctype, PTYPE_ALL|PTYPE_T|PTYPE_TYPE); + predefined_ctype("PTRDIFF", &ptr_ctype, PTYPE_ALL|PTYPE_T); predefined_sizeof("POINTER", "", bits_in_pointer); predefined_sizeof("FLOAT", "", bits_in_float); @@ -1275,8 +1292,6 @@ static void create_builtin_stream(void) // Temporary hack add_pre_buffer("#define _Pragma(x)\n"); - predefined_type("SIZE", size_t_ctype); - /* add the multiarch include directories, if any */ if (multiarch_dir && *multiarch_dir) { add_pre_buffer("#add_system \"/usr/include/%s\"\n", multiarch_dir); From patchwork Sun Dec 9 23:43:15 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: 10720433 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 859BA112E for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7767229DC1 for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6BF5929DD2; Sun, 9 Dec 2018 23:43:35 +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 136A229DC1 for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726490AbeLIXne (ORCPT ); Sun, 9 Dec 2018 18:43:34 -0500 Received: from mail-ed1-f43.google.com ([209.85.208.43]:45346 "EHLO mail-ed1-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXne (ORCPT ); Sun, 9 Dec 2018 18:43:34 -0500 Received: by mail-ed1-f43.google.com with SMTP id d39so7982951edb.12 for ; Sun, 09 Dec 2018 15:43:33 -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=ORXUfM2s7JR9HEi/FTfNqjxWM9ySMFKvasqR8js5VSE=; b=H8aaIsQ8xeLvke+P6aSrekjoXLQmkMOogDi0McKR3P9ZD7NZ1EZG7bBJ36iUdmNtnN XIt65u1SkPCmzUFwfA4YEqacCK0eNO03LOokVNE4AnONw5xb8OvPYbRC503g+02OX5Uj oUKPbtI2MgcE93i74GTZRBtmw8+95EPJWRu2fInIxgYzI986h//PwO5YHgSWwL0EfVgj E/vd0oVvRjzYOJ9ku7aJxAJwQlXeUu19F3wQZGeJTkfq5CTdweBeOKPifa0wOHiGA7/I ebO++KsihHLu2FdqXKeQGFKlT0nNI2ycTLbcwl8R54v/rqC7X6f3H6h58mi3mlICtmlm 6YEw== 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=ORXUfM2s7JR9HEi/FTfNqjxWM9ySMFKvasqR8js5VSE=; b=EVoXqb1ATZtUYoD7jVS9DjURUglFuxs2NUawhkOYuB86D70HbadRTR/whsCZ0Ykvso luDQckEpgIi/q2OOj1wsAtSqqUAwXoYiUEggueBQ1WtZiONlgxdppT/LQIECLNIkLYpE 0Ti16ypxLP2P97fIdaKLxXUzJIK6t4d+nCR7kOV2dSVlHkzGZIbtpbUTT7Ti00+wsKum wIDkZG2ig33O0/nOritAQndRrKDk7IwbvRaNEIg6v5SCv3j097YnY5J3lXZvoF6fJpyM 2U7hjfVfTblvhSWba/k06e0Fnn/HVMHqaBaNYbZJtQSvlEa+M00srGWOxX6TDVdSOV11 iylA== X-Gm-Message-State: AA+aEWZom3pzneYM/3vv08OOxtTuFRzHAMfYXSnUSLMLDhOeU+oIxpFh aFWSEn2SRzW29GAECdXHi+9ygE/4 X-Google-Smtp-Source: AFSGD/X69UfoOd9RDgbLoeis9aajeUFlSIjqzBrIEiQT+O7CCmOl2YHFSrixBQyytV2+woZDfCOmeA== X-Received: by 2002:a17:906:8052:: with SMTP id x18-v6mr8216451ejw.131.1544399012349; Sun, 09 Dec 2018 15:43:32 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:31 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 06/11] give a type to wchar Date: Mon, 10 Dec 2018 00:43:15 +0100 Message-Id: <20181209234320.65274-7-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 This allows to use predefined_ctype() on wchar_t. Note: currently __WCHAR_TYPE__ is defined to 'int' but thsi is incorrect on: i386, m68k, ppc32, ... --- char.c | 4 ++-- lib.c | 4 +--- target.c | 3 +-- target.h | 3 +-- 4 files changed, 5 insertions(+), 9 deletions(-) diff --git a/char.c b/char.c index c52521bc8..f26b2a806 100644 --- a/char.c +++ b/char.c @@ -84,7 +84,7 @@ void get_char_constant(struct token *token, unsigned long long *val) end = p + type - TOKEN_WIDE_CHAR; } p = parse_escape(p, &v, end, - type < TOKEN_WIDE_CHAR ? bits_in_char : bits_in_wchar, token->pos); + type < TOKEN_WIDE_CHAR ? bits_in_char : wchar_ctype->bit_size, token->pos); if (p != end) warning(token->pos, "multi-character character constant"); @@ -113,7 +113,7 @@ struct token *get_string_constant(struct token *token, struct expression *expr) done = next; } } - bits = is_wide ? bits_in_wchar : bits_in_char; + bits = is_wide ? wchar_ctype->bit_size: bits_in_char; while (token != done) { unsigned v; const char *p = token->string->data; diff --git a/lib.c b/lib.c index 1156f6f6c..6523cf419 100644 --- a/lib.c +++ b/lib.c @@ -1246,9 +1246,7 @@ static void predefined_macros(void) predefined_ctype("SHORT", &short_ctype, PTYPE_SIZEOF); predefined_ctype("SHRT", &short_ctype, PTYPE_MAX|PTYPE_WIDTH); predefined_ctype("SCHAR", &char_ctype, PTYPE_MAX|PTYPE_WIDTH); - predefined_sizeof("WCHAR", "_T", bits_in_wchar); - predefined_max("WCHAR", "", bits_in_wchar); - predefined_width("WCHAR", bits_in_wchar); + predefined_ctype("WCHAR", wchar_ctype, PTYPE_ALL|PTYPE_T); predefine("__CHAR_BIT__", 1, "%d", bits_in_char); diff --git a/target.c b/target.c index 86a9e2e63..e09eff865 100644 --- a/target.c +++ b/target.c @@ -5,6 +5,7 @@ struct symbol *size_t_ctype = &uint_ctype; struct symbol *ssize_t_ctype = &int_ctype; +struct symbol *wchar_ctype = &int_ctype; /* * For "__attribute__((aligned))" @@ -22,8 +23,6 @@ int bits_in_long = 32; int bits_in_longlong = 64; int bits_in_longlonglong = 128; -int bits_in_wchar = 32; - int max_int_alignment = 4; /* diff --git a/target.h b/target.h index 8326fa21a..74f51ffeb 100644 --- a/target.h +++ b/target.h @@ -3,6 +3,7 @@ extern struct symbol *size_t_ctype; extern struct symbol *ssize_t_ctype; +extern struct symbol *wchar_ctype; /* * For "__attribute__((aligned))" @@ -20,8 +21,6 @@ extern int bits_in_long; extern int bits_in_longlong; extern int bits_in_longlonglong; -extern int bits_in_wchar; - extern int max_int_alignment; /* From patchwork Sun Dec 9 23:43:16 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: 10720435 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 EE62A18A7 for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DEA9229DC1 for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D36FF29DC7; Sun, 9 Dec 2018 23:43:35 +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 82B7C29DD5 for ; Sun, 9 Dec 2018 23:43:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726525AbeLIXnf (ORCPT ); Sun, 9 Dec 2018 18:43:35 -0500 Received: from mail-ed1-f49.google.com ([209.85.208.49]:41589 "EHLO mail-ed1-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726472AbeLIXne (ORCPT ); Sun, 9 Dec 2018 18:43:34 -0500 Received: by mail-ed1-f49.google.com with SMTP id z28so7999382edi.8 for ; Sun, 09 Dec 2018 15:43:34 -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=h4mwthKlNK4QJOCFOuWhdojy+uHxepWSi1kV2cpCQZs=; b=SH+4iVaw4DgUlw+NimtPLbkRTS24c/JSAhXVnaoqiStTmbeM3JokcdIj2R1YhXnvh7 NlKqyKjYPqmiKf7D2y6N55jRxoHqvVJfexvAKiOo1JsQUifdLMMtbwvkZYHy2xccjB2u U/uOQAxQEZZGqnBUZae1EW7koGQ6Vn/tUlzFtKFuJEkRNI/MeVs94idS34xonv4lYrAX r7NR0jRauSNxD/OT5/PBuiCFVGyL0TrupTd7on45BTL7U+Q7CFRvjGau2xKGhAFNAKK2 /0F/IaoUTI6p0P/tk4xVzvkEtHmq/Vt1XlEa5GlWqFaF1mUd2lzhn/9wdsBB9BfeF3IB BnKA== 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=h4mwthKlNK4QJOCFOuWhdojy+uHxepWSi1kV2cpCQZs=; b=NStGksNF+jRsGWcD7my+isdVzDBe+EqtyIDanPMFEogyBg7X7H8fBkMipsiBZKM6RW BBxLX4ubab3I4xJ3DS9AvzPvlhDlI0Tq7+Xj34oTIrkkZAooAHZFryQCQbw9h6v0sPyb ybda4N4Dwoctyb8Hf74a746Q2Izn1C4719oiVJJpNq0C5K6OwKSDnLamV2nDgsz9pXzi GNqPX+r18tA1ijD+SKumJwGxuWnLWhlOCVuvunyXQBoM1mELHnzVVFlSZR57/6eJWS5w yyOUITvUg/3K3zTA2SwJ4UafRIWLinLy9/V2g4Z6+ttfMQ0vYipZMovmajsrRVKR3ukF aUiQ== X-Gm-Message-State: AA+aEWb75oWA7gi+bW5R0GWNpSSd+OSJpZWpgwXI7qJg7ZVZbNGsz3EI XFpmmEjwR00iM348jU2pxmm1gtBg X-Google-Smtp-Source: AFSGD/X4JDkzZAXSVIkHDgH7LtR5pulCHF57xpujsWC4nXqHMkAGUNpT6IscTsv7WSBCk6H2cfGDPg== X-Received: by 2002:a50:fd0e:: with SMTP id i14mr9376305eds.98.1544399013169; Sun, 09 Dec 2018 15:43:33 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:32 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 07/11] add predefined macros for [u]intptr & ptrdiff Date: Mon, 10 Dec 2018 00:43:16 +0100 Message-Id: <20181209234320.65274-8-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 Luckily, it seems all archs use for them the same types as size_t & ssize_t. --- lib.c | 4 +++- validation/preprocessor/predef.c | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib.c b/lib.c index 6523cf419..6a6133499 100644 --- a/lib.c +++ b/lib.c @@ -1257,7 +1257,9 @@ static void predefined_macros(void) predefined_sizeof("INT128", "", 128); predefined_ctype("SIZE", size_t_ctype, PTYPE_ALL|PTYPE_T|PTYPE_TYPE); - predefined_ctype("PTRDIFF", &ptr_ctype, PTYPE_ALL|PTYPE_T); + predefined_ctype("UINTPTR", size_t_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("INTPTR", ssize_t_ctype, PTYPE_TYPE|PTYPE_MAX|PTYPE_WIDTH); + predefined_ctype("PTRDIFF", ssize_t_ctype, PTYPE_ALL|PTYPE_T); predefined_sizeof("POINTER", "", bits_in_pointer); predefined_sizeof("FLOAT", "", bits_in_float); diff --git a/validation/preprocessor/predef.c b/validation/preprocessor/predef.c index 0453ce43f..e14c04d7b 100644 --- a/validation/preprocessor/predef.c +++ b/validation/preprocessor/predef.c @@ -13,6 +13,10 @@ int test(void) TEST_MAX(INT, int); TEST_MAX(LONG, long); TEST_MAX(LONG_LONG, long long); + TEST_MAX(SIZE, __SIZE_TYPE__); + TEST_MAX(PTRDIFF, __PTRDIFF_TYPE__); + TEST_MAX(INTPTR, __INTPTR_TYPE__); + TEST_MAX(UINTPTR, __UINTPTR_TYPE__); #define TEST_SIZEOF(X, T) if (__SIZEOF_ ## X ## __ != sizeof(T)) return 1 TEST_SIZEOF(SHORT, short); @@ -21,6 +25,7 @@ int test(void) TEST_SIZEOF(LONG_LONG, long long); TEST_SIZEOF(INT128, __int128); TEST_SIZEOF(SIZE_T, __SIZE_TYPE__); + TEST_SIZEOF(PTRDIFF_T, __PTRDIFF_TYPE__); TEST_SIZEOF(POINTER, void*); TEST_SIZEOF(FLOAT, float); TEST_SIZEOF(DOUBLE, double); From patchwork Sun Dec 9 23:43:17 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: 10720437 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 5EA29112E for ; Sun, 9 Dec 2018 23:43:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3E9891FF2D for ; Sun, 9 Dec 2018 23:43:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3170029DD5; Sun, 9 Dec 2018 23:43:37 +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 B892B29DC1 for ; Sun, 9 Dec 2018 23:43:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726472AbeLIXng (ORCPT ); Sun, 9 Dec 2018 18:43:36 -0500 Received: from mail-ed1-f65.google.com ([209.85.208.65]:39206 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXng (ORCPT ); Sun, 9 Dec 2018 18:43:36 -0500 Received: by mail-ed1-f65.google.com with SMTP id b14so8003088edt.6 for ; Sun, 09 Dec 2018 15:43:35 -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=i2ExOEh5Fg1/FbrsIyxv6eLMJGU1Y9kQoMFZZPIwnnY=; b=Zx+Zl/pvKHXbJ+zBPnOS3FR90alhTtSdFlZ3G43UFNbT3iN7PnDu3u6/jYaJVtEMD5 RSlST83b1RhRbOOcHO5n6XJjMoGdlWwkb37zaXagaOAdgDid+d8nFNo0ZNkZ1gWU9CQi 4mD1PIC0KZ2BAgz6TeZM1Wil6uJPnVGz883Xg4jenHFXci1NxL++Hx52zfsdcz6VM4La 33M23nd6ig7K1eD0azPgawwO+SgYtjAmp1n/lwA1xb31HIM71Xot9YoTXYJGn5YgF4uW oYZ50P7mDNK5jh9Maq73HEneJy0qzH2n6dY9P8FnLW3jG/kdROaOVukCQjvVkEmSs7/O MYjg== 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=i2ExOEh5Fg1/FbrsIyxv6eLMJGU1Y9kQoMFZZPIwnnY=; b=Tl1VGPTTkbws+fUo/o+wTa4vx6s7IIXbZHSKPgfzwZgkgwGG9jtjKWwAB4uLaEWRpZ nxLlWQTDVZLqXXmLY6Y69dFsR6YH3Cvbr9q4g/5JkDV8AU1eqIto+iQCFTu3hCFr4ZNY 4zYnW6Jb9cVK7e1kWnvfS34aZvPUJRKlj4nd892+hjs/a0qvsJFslX4VwPlowbang171 ItAsFAE5WC6kXN8r9boNL3BrIu5u5+NbtMFdjJ0Udvg/cmNjeJ2o0nmf0Kz5L46rVorj NMfuC2Zxm+fuPnmkqyh5TDy/fT9E1a9lm8Ric4KZqsTcGSxyK3E5eZIDoNBAUM5cFpVT pm9g== X-Gm-Message-State: AA+aEWZr4JnI+GmP45ovOOs3+Ws774vZN+zA/IFRpbCsw9o+OthNN13H EQZSOd7nHvvqpZpwrQlcYqSnMLEW X-Google-Smtp-Source: AFSGD/Uf38mBmH0GY2JZZ/8FZ1PypefRhuJ55lTuu2GJb+qxBN3h63296PonHyKyr87isDxW0WgW1A== X-Received: by 2002:a17:906:69cd:: with SMTP id g13-v6mr8191499ejs.141.1544399014092; Sun, 09 Dec 2018 15:43:34 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:33 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 08/11] add predefined macros for [u]int_max Date: Mon, 10 Dec 2018 00:43:17 +0100 Message-Id: <20181209234320.65274-9-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 Seems to use [u]long for all LP64 archs and [u]llong and all LP32 ones (but OpenBSD but it seems to not defines the corresponding macros). --- lib.c | 6 ++++++ target.c | 2 ++ target.h | 2 ++ validation/preprocessor/predef.c | 2 ++ 4 files changed, 12 insertions(+) diff --git a/lib.c b/lib.c index 6a6133499..4cf769b1d 100644 --- a/lib.c +++ b/lib.c @@ -492,12 +492,16 @@ static void handle_arch_m64_finalize(void) goto case_x86_64; case ARCH_LP32: /* default values */ + intmax_ctype = &llong_ctype; + uintmax_ctype = &ullong_ctype; return; case ARCH_LP64: bits_in_long = 64; max_int_alignment = 8; size_t_ctype = &ulong_ctype; ssize_t_ctype = &long_ctype; + intmax_ctype = &long_ctype; + uintmax_ctype = &ulong_ctype; predefine("__LP64__", 1, "1"); predefine("_LP64", 1, "1"); goto case_64bit_common; @@ -1260,6 +1264,8 @@ static void predefined_macros(void) predefined_ctype("UINTPTR", size_t_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("INTPTR", ssize_t_ctype, PTYPE_TYPE|PTYPE_MAX|PTYPE_WIDTH); predefined_ctype("PTRDIFF", ssize_t_ctype, PTYPE_ALL|PTYPE_T); + predefined_ctype("INTMAX", intmax_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("UINTMAX", uintmax_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_sizeof("POINTER", "", bits_in_pointer); predefined_sizeof("FLOAT", "", bits_in_float); diff --git a/target.c b/target.c index e09eff865..0b95e484f 100644 --- a/target.c +++ b/target.c @@ -5,6 +5,8 @@ struct symbol *size_t_ctype = &uint_ctype; struct symbol *ssize_t_ctype = &int_ctype; +struct symbol *intmax_ctype = &llong_ctype; +struct symbol *uintmax_ctype = &ullong_ctype; struct symbol *wchar_ctype = &int_ctype; /* diff --git a/target.h b/target.h index 74f51ffeb..684b8420a 100644 --- a/target.h +++ b/target.h @@ -3,6 +3,8 @@ extern struct symbol *size_t_ctype; extern struct symbol *ssize_t_ctype; +extern struct symbol *intmax_ctype; +extern struct symbol *uintmax_ctype; extern struct symbol *wchar_ctype; /* diff --git a/validation/preprocessor/predef.c b/validation/preprocessor/predef.c index e14c04d7b..301d1ed0f 100644 --- a/validation/preprocessor/predef.c +++ b/validation/preprocessor/predef.c @@ -17,6 +17,8 @@ int test(void) TEST_MAX(PTRDIFF, __PTRDIFF_TYPE__); TEST_MAX(INTPTR, __INTPTR_TYPE__); TEST_MAX(UINTPTR, __UINTPTR_TYPE__); + TEST_MAX(INTMAX, __INTMAX_TYPE__); + TEST_MAX(UINTMAX, __UINTMAX_TYPE__); #define TEST_SIZEOF(X, T) if (__SIZEOF_ ## X ## __ != sizeof(T)) return 1 TEST_SIZEOF(SHORT, short); From patchwork Sun Dec 9 23:43:18 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: 10720439 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 A33BF112E for ; Sun, 9 Dec 2018 23:43:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9378D29697 for ; Sun, 9 Dec 2018 23:43:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 85D2229E12; Sun, 9 Dec 2018 23:43:38 +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 3AC0229697 for ; Sun, 9 Dec 2018 23:43:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726555AbeLIXni (ORCPT ); Sun, 9 Dec 2018 18:43:38 -0500 Received: from mail-ed1-f42.google.com ([209.85.208.42]:32834 "EHLO mail-ed1-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXnh (ORCPT ); Sun, 9 Dec 2018 18:43:37 -0500 Received: by mail-ed1-f42.google.com with SMTP id p6so8033637eds.0 for ; Sun, 09 Dec 2018 15:43:35 -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=y62FiSIbSISoDmj5q7yfAjiIyU8gWPE1IrgAeqff/xs=; b=DgMxbCtXDSuBk7Kcy7edt12SuQH2CL8EgRgRyuaaBrGNqXwwDZYuJpYSgz0TIao7Rs R9nH5C4ofpyTBydKQpc9aQKJyNhXuYCUXchozUQ1F200SgzZj+lyR3Qsk7fZDw8m4rpx B601vz/xwyB9xfCio3NHHiBB0Hbb14jWMsDEah6vKoEhACYM2aNDYCGeRNpVlAe3ox0t QknH0d3Pz3/E3xDabWJk4Pbi5Sc3MjtNWnSZ3zT4V4f8VMYg8PCiGuW3hFQ3QiYWBVbz Dw3OzubPHpamtCGxGWQx2JVN2aHqIrxsKQqluTh1GZOtnEnCq9o9IIzAth2y6Sui66Ot x0EQ== 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=y62FiSIbSISoDmj5q7yfAjiIyU8gWPE1IrgAeqff/xs=; b=dbLpb5kgMVo94JECFKj+0cZW9KEusYNOVSk+33rI/y8SBJb9B39LUm/FLSsi7Xel8J 2bm3t/UqGONbfaOnFkUnXCILAWyznYZaBjexsULYIFZlyN2iRtAbL1oCNvuX2KtG8qgt ZnrAg6i6KQKyqOsHzmSb/DXHDiGWsR+zK8kwNyZJ3GUdvBoToeD/1M0JmaW/Vymfcp5b HtThclAYr7lz2/LJsWzRuhgEyD8rqS/OtzcHY0ijYVRLNoHrDqBj0R8tZgn0fYmBbQYp XAExy7QmshsqzzzlQEfwqgTeSVISWAHWCIHOKsz7ZGSD0GXXbLRWDN8LKskUPlP9aaAA RB3Q== X-Gm-Message-State: AA+aEWZVc6ilintdtFNKIyyHqxmnI4PN3FOB/EgY9x53G9GKZG2JwFmG UsruWwuAe0ZtVnLOyCuf78QjhPHu X-Google-Smtp-Source: AFSGD/UYZFr7mucWc6fngMk7nkp4lBQ4Imog3vstkxD8bsyPD9c75EcsRCBB4zMGrqWmTK+SEDvfqw== X-Received: by 2002:a50:983a:: with SMTP id g55mr9725164edb.143.1544399014954; Sun, 09 Dec 2018 15:43:34 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:34 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 09/11] add predefined macros for [u]int{8,16}_t Date: Mon, 10 Dec 2018 00:43:18 +0100 Message-Id: <20181209234320.65274-10-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 All LP64 & LP32 use [u]char and [u]short for these ones. --- lib.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib.c b/lib.c index 4cf769b1d..27c90aeca 100644 --- a/lib.c +++ b/lib.c @@ -1258,6 +1258,11 @@ static void predefined_macros(void) predefined_ctype("LONG", &long_ctype, PTYPE_ALL); predefined_ctype("LONG_LONG", &llong_ctype, PTYPE_ALL); + predefined_ctype("INT8", &uchar_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("UINT8", &schar_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("INT16", &short_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("UINT16", &ushort_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_sizeof("INT128", "", 128); predefined_ctype("SIZE", size_t_ctype, PTYPE_ALL|PTYPE_T|PTYPE_TYPE); From patchwork Sun Dec 9 23:43:19 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: 10720441 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 12424112E for ; Sun, 9 Dec 2018 23:43:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 02B2829E0A for ; Sun, 9 Dec 2018 23:43:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EB65329E2B; Sun, 9 Dec 2018 23:43:39 +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 945B629E0A for ; Sun, 9 Dec 2018 23:43:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726572AbeLIXnj (ORCPT ); Sun, 9 Dec 2018 18:43:39 -0500 Received: from mail-ed1-f50.google.com ([209.85.208.50]:34270 "EHLO mail-ed1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726526AbeLIXni (ORCPT ); Sun, 9 Dec 2018 18:43:38 -0500 Received: by mail-ed1-f50.google.com with SMTP id b3so8025771ede.1 for ; Sun, 09 Dec 2018 15:43:37 -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=jGxgBViD8bMkj3ONGDN1e1uKl2ZD1Qvx5wKJC5c2D1Y=; b=bqeEOUVMpzxeaDDBMWVKf7n2Ip28nhzWiMXLnHzZGZnvIF4SjqHAXEE80OlRin7aSM ELBlzYeqMd17g4KBd0X94ACDPsLv6WdyVJoSjUQ2CTeWMp0ILs6UdH/A+hLRhbBMHUan qdZj8juTF3LRdRXiPNZPfYy8mRA+VHT3s1zJJPskiclhMuyHULsp/hWnQInG+xana2nY NEijri/FKyD/Mwe0f2NJg9lmuzsjEoRyrkugVpf4YrpYOzaGE8NYw/c3o3JaY1Ai0d05 PERrxdqtrWafYe5oVNVCBP6X2llm4AIdWzcsvWCRqfHuzu83YBymfk6LTnpWABR58rM9 3NLA== 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=jGxgBViD8bMkj3ONGDN1e1uKl2ZD1Qvx5wKJC5c2D1Y=; b=PwpaO/wcsLMJS4um2fLrcN1R7XR09VxmTwf7/yPs+NUMnPYAmGoCb13W6gT4tCSsKg BhqOKlY2oqhrhhzurc8TiAICGw3+eBrqwl+/wRvGN798jNpvlNZXVfE0iOj/FAjCLNeg d8/61DyW7uR2klNwCHm7GaL/p1+hb/Bpo+Pk5/sAvDXiQyU1PuDZ10rOF4zkq+XAwqDd nrtU+E611++2awl8OAZFe3wrzlRETDsQQ0GCVOQSPH9UgTX8iKV7ELqIiBt/n1Ziv9en pL4/g5T3eZQBADtwragnFQecEMp5mv0tX0VXlnraz5nHGXOWJrqQ76OlF0ljirX+fmwP dWvw== X-Gm-Message-State: AA+aEWbXvtvIqLyhWkvpR0kWAY+6oPw+AO0t+itaabEj5JMyiaeUtL4B yRPOw7DkUop/t1iUdP88Ehb6IMNs X-Google-Smtp-Source: AFSGD/Ub+UFSMBHf2nEsnx38w2sJ6iiURYh4BdKJKT0mpCKWJvSZHxpHKR7P/El578V3se+scdWvRQ== X-Received: by 2002:a17:906:258f:: with SMTP id m15-v6mr7967189ejb.191.1544399016152; Sun, 09 Dec 2018 15:43:36 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:35 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 10/11] add predefined macros for [u]int64_t Date: Mon, 10 Dec 2018 00:43:19 +0100 Message-Id: <20181209234320.65274-11-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 All LP32 archs use [u]llong and all LP64 use [u]long for these but Darwing which seems to always use [u]llong. --- lib.c | 8 ++++++++ target.c | 2 ++ target.h | 2 ++ 3 files changed, 12 insertions(+) diff --git a/lib.c b/lib.c index 27c90aeca..062f24c16 100644 --- a/lib.c +++ b/lib.c @@ -492,6 +492,8 @@ static void handle_arch_m64_finalize(void) goto case_x86_64; case ARCH_LP32: /* default values */ + int64_ctype = &llong_ctype; + uint64_ctype = &ullong_ctype; intmax_ctype = &llong_ctype; uintmax_ctype = &ullong_ctype; return; @@ -500,6 +502,10 @@ static void handle_arch_m64_finalize(void) max_int_alignment = 8; size_t_ctype = &ulong_ctype; ssize_t_ctype = &long_ctype; +#if defined(__APPLE__) + int64_ctype = &llong_ctype; + uint64_ctype = &ullong_ctype; +#endif intmax_ctype = &long_ctype; uintmax_ctype = &ulong_ctype; predefine("__LP64__", 1, "1"); @@ -1262,6 +1268,8 @@ static void predefined_macros(void) predefined_ctype("UINT8", &schar_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("INT16", &short_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("UINT16", &ushort_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("INT64", int64_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("UINT64", uint64_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_sizeof("INT128", "", 128); diff --git a/target.c b/target.c index 0b95e484f..6e948dfeb 100644 --- a/target.c +++ b/target.c @@ -7,6 +7,8 @@ struct symbol *size_t_ctype = &uint_ctype; struct symbol *ssize_t_ctype = &int_ctype; struct symbol *intmax_ctype = &llong_ctype; struct symbol *uintmax_ctype = &ullong_ctype; +struct symbol *int64_ctype = &long_ctype; +struct symbol *uint64_ctype = &ulong_ctype; struct symbol *wchar_ctype = &int_ctype; /* diff --git a/target.h b/target.h index 684b8420a..4ecbb9a6b 100644 --- a/target.h +++ b/target.h @@ -5,6 +5,8 @@ extern struct symbol *size_t_ctype; extern struct symbol *ssize_t_ctype; extern struct symbol *intmax_ctype; extern struct symbol *uintmax_ctype; +extern struct symbol *int64_ctype; +extern struct symbol *uint64_ctype; extern struct symbol *wchar_ctype; /* From patchwork Sun Dec 9 23:43:20 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: 10720443 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 0834314E2 for ; Sun, 9 Dec 2018 23:43:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E966229E0A for ; Sun, 9 Dec 2018 23:43:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DD86B29E1D; Sun, 9 Dec 2018 23:43:40 +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 84B7029E12 for ; Sun, 9 Dec 2018 23:43:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726526AbeLIXnk (ORCPT ); Sun, 9 Dec 2018 18:43:40 -0500 Received: from mail-ed1-f47.google.com ([209.85.208.47]:43153 "EHLO mail-ed1-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726375AbeLIXnk (ORCPT ); Sun, 9 Dec 2018 18:43:40 -0500 Received: by mail-ed1-f47.google.com with SMTP id f9so7995130eds.10 for ; Sun, 09 Dec 2018 15:43:38 -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=zHfhnRFFsPKHl+w5zVAY/1WsTtH2rJ4I4+ttXWlGkV0=; b=o5NabqnboMBEHV57vzwa5wonVvl4OPec4TH/CvpXo7SxUNngP+xwG3ssIqyVvHfkRY EL47qGYc3KoOoiqZtXjuzAeyeptdtl9pfMobUipRgV3PVkak6nVqWkgYPlOZXoy3mzRH TLFH/Dj7tROZBWz2CZu/JCECMGjy/PwaGWLYcBYjDo27gjaezPxYXuQYmSezweC3LfYI bMdOtgpnPrLqT7qqqKXqRs1VIZubnrZWwmwsqv9NSbjawTqdroR08wN6GcjltyWFPCpv z8rtZFNnKMheyBPsrnsd5ezqAGcrLl7ekrG12YbyMDYxD/BOjItbIx9EmD9w2TDWouME rVLA== 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=zHfhnRFFsPKHl+w5zVAY/1WsTtH2rJ4I4+ttXWlGkV0=; b=DlMFDV5LAAMMqEapAcdyzkjseqFuzKoAdBJIHn7IfE2R3IOiIH9faabbFWsVOX0MIO K1E6zQKn0iXUWcjCbqMZyAT1IdrRtMQ9EHiJ3Vgt8OofAa9ZZztp22K7W/QH9tyZVlb7 GKvLmdSNbdOYcaM1g6AKkbBt07LxjRqryHywnhdG8ztle9zsmxocq5QW1/0p72S0r7et +Ict1JVq71+98ZgHSP58o35+X0xSGKQEf/W2nfaG0pxkLmhIDUDAVLxFfDG98AUQUBrc SkrSqt46S8QHcLUVUmWeJ65ea9cji3ptA4g04D9Ot8karOzI0EX1o7HDG93zkqLreq7k uShg== X-Gm-Message-State: AA+aEWbDMVkbzLdB27ddcUfo0PF8dhwVF/hFF1htu1v0NdSTd6qSBFdT GP0jBCOJreSW/hywdnkkLSatQtrM X-Google-Smtp-Source: AFSGD/VcxIAa+hLisxxRsBdHsVFRbmEWjtUO8Ip8BOrz0JAhBcnsEY5J9Fibs3K1pGleU+EWYl+lKg== X-Received: by 2002:a17:906:77c1:: with SMTP id m1-v6mr8193334ejn.233.1544399017254; Sun, 09 Dec 2018 15:43:37 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:40bc:4d00:e8b1:47b5:cae1:da95]) by smtp.gmail.com with ESMTPSA id z9sm2888225edr.61.2018.12.09.15.43.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Dec 2018 15:43:36 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH 11/11] add predefined macros for [u]int32_t Date: Mon, 10 Dec 2018 00:43:20 +0100 Message-Id: <20181209234320.65274-12-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181209234320.65274-1-luc.vanoostenryck@gmail.com> References: <20181209234320.65274-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 These are a pain. All LP64 archs use [u]int. Good. But some LP32 archs use [u]int and some others use [u]long. Some even use [u]int for some ABI and [u]loing for some others (bare metal). This really need to be target-specific to be correct. --- lib.c | 10 ++++++++++ target.c | 2 ++ target.h | 2 ++ 3 files changed, 14 insertions(+) diff --git a/lib.c b/lib.c index 062f24c16..942a3d5d8 100644 --- a/lib.c +++ b/lib.c @@ -492,6 +492,14 @@ static void handle_arch_m64_finalize(void) goto case_x86_64; case ARCH_LP32: /* default values */ +#if defined(__m68k__) \ + || ((defined(__sparc__) || defined(__sparc)) && !defined(__sparc_v9__)) \ + || defined(__mips__) || defined(__mips) \ + || defined(__powerpc__) || defined(__PPC__) || defined(PPC) \ + || defined(__riscv__) || defined(__riscv) + int32_ctype = &long_ctype; + uint32_ctype = &ulong_ctype; +#endif int64_ctype = &llong_ctype; uint64_ctype = &ullong_ctype; intmax_ctype = &llong_ctype; @@ -1268,6 +1276,8 @@ static void predefined_macros(void) predefined_ctype("UINT8", &schar_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("INT16", &short_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("UINT16", &ushort_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("INT32", int32_ctype, PTYPE_TYPE|PTYPE_MAX); + predefined_ctype("UINT32", uint32_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("INT64", int64_ctype, PTYPE_TYPE|PTYPE_MAX); predefined_ctype("UINT64", uint64_ctype, PTYPE_TYPE|PTYPE_MAX); diff --git a/target.c b/target.c index 6e948dfeb..e626424ff 100644 --- a/target.c +++ b/target.c @@ -9,6 +9,8 @@ struct symbol *intmax_ctype = &llong_ctype; struct symbol *uintmax_ctype = &ullong_ctype; struct symbol *int64_ctype = &long_ctype; struct symbol *uint64_ctype = &ulong_ctype; +struct symbol *int32_ctype = &int_ctype; +struct symbol *uint32_ctype = &uint_ctype; struct symbol *wchar_ctype = &int_ctype; /* diff --git a/target.h b/target.h index 4ecbb9a6b..f11e8675d 100644 --- a/target.h +++ b/target.h @@ -7,6 +7,8 @@ extern struct symbol *intmax_ctype; extern struct symbol *uintmax_ctype; extern struct symbol *int64_ctype; extern struct symbol *uint64_ctype; +extern struct symbol *int32_ctype; +extern struct symbol *uint32_ctype; extern struct symbol *wchar_ctype; /*