From patchwork Wed Apr 5 21:09:22 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 9665763 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E4BEA602B5 for ; Wed, 5 Apr 2017 21:09:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D553E28113 for ; Wed, 5 Apr 2017 21:09:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C9F6728178; Wed, 5 Apr 2017 21:09:47 +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=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID 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 6A85128159 for ; Wed, 5 Apr 2017 21:09:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934250AbdDEVJq (ORCPT ); Wed, 5 Apr 2017 17:09:46 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:35502 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934251AbdDEVJn (ORCPT ); Wed, 5 Apr 2017 17:09:43 -0400 Received: by mail-wr0-f196.google.com with SMTP id t20so6062500wra.2 for ; Wed, 05 Apr 2017 14:09:42 -0700 (PDT) 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; bh=bOM/gffaYIXA5VzUwRi4y+48GJ7b4BoJsXpX2QG3d9g=; b=HyAtQzBFBsS6qbdcxCJ+3h4FIPPu9Pvfb9oQaz39wMOtFM2wrm/dH/+BQb86mH17tk vuLEWsdLURHSZweWQezjLeqC9QUVCq6908r2Ax/QsVwuaV5D6gwqeasbwgQ+J3/04BLK KrABRxlgXnCIGADKLhXOJOx9RznF7o3OSCR82cMjtNeh7H5VLm4dRentu9lzi/6r3uOW b9oFZvxlJOfUFVsp/tIGfyA/Lm4vhFPGUQ4hOZwyUIJ/GwnoYPPxWLTv4SY/xSFwbnHH pMWtYu7U2+tn008F+ZxD/Azdjifqbo3+wlHW5oBllclcDDLLSfjSJx27lXoQMBO79Xl+ EMfg== 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; bh=bOM/gffaYIXA5VzUwRi4y+48GJ7b4BoJsXpX2QG3d9g=; b=fdqy31ZM8HGii5Q18HA8LmX7On4ZkV2I5zgJAE16+czItomIgEJ4z95fuWdeS78vkp gnbHJKcDS731vXYeERBGxv+W4fFNROK/XnOj0EMTA/nCH5ozfGEhyZmIZmTdw0nGyzNU ofUKL4/ScEE80GsyUFmrBNSmEGR7WqW/hpDDOTXImSu1ERVIzSd6kjxBZYJGT3AUiar1 kdr3KAIaT6KmexUD+05VN31Pk3HVmN5FjWepcmX35ePqYLh5rTUqD9aliJnt8CIcTP8F tXto4Z1x9HjJ9PU4mJ8gNNd1coscpesB0oNdZvjdZHKfggltxFTv79mhWS0xVCGXLxmf 37ag== X-Gm-Message-State: AFeK/H2d5WWqkrQoUf4g/tcN/VR5G+6PcgGKBqvEKzpH10TaP+RuQjgiEEVjapf8lTLewA== X-Received: by 10.223.160.213 with SMTP id n21mr22115011wrn.51.1491426582081; Wed, 05 Apr 2017 14:09:42 -0700 (PDT) Received: from localhost.localdomain ([2a02:a03f:88d:1900:fc6c:1650:1726:93b6]) by smtp.gmail.com with ESMTPSA id v29sm27592168wrv.66.2017.04.05.14.09.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Apr 2017 14:09:41 -0700 (PDT) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Christopher Li , Luc Van Oostenryck Subject: [PATCH 4/9] MOD_ACCESSED is not a type modifier ... Date: Wed, 5 Apr 2017 23:09:22 +0200 Message-Id: <20170405210927.27948-5-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20170405210927.27948-1-luc.vanoostenryck@gmail.com> References: <20170405210927.27948-1-luc.vanoostenryck@gmail.com> 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 but is used to track which inline functions are effectively used. So better remove it from the MOD_... and implement the same functionality via a flag in struct symbol. Signed-off-by: Luc Van Oostenryck --- gdbhelpers | 3 --- parse.c | 2 +- show-parse.c | 1 - symbol.c | 4 ++-- symbol.h | 4 ++-- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/gdbhelpers b/gdbhelpers index 87ab5b8e9..3d1148a87 100644 --- a/gdbhelpers +++ b/gdbhelpers @@ -140,9 +140,6 @@ define gdb_show_ctype if ($arg0->modifiers & MOD_NODEREF) printf "MOD_NODEREF " end - if ($arg0->modifiers & MOD_ACCESSED) - printf "MOD_ACCESSED " - end if ($arg0->modifiers & MOD_TOPLEVEL) printf "MOD_TOPLEVEL " end diff --git a/parse.c b/parse.c index 80f0337cc..4c3ebbaac 100644 --- a/parse.c +++ b/parse.c @@ -2144,7 +2144,7 @@ static struct statement *start_function(struct symbol *sym) start_function_scope(); ret = alloc_symbol(sym->pos, SYM_NODE); ret->ctype = sym->ctype.base_type->ctype; - ret->ctype.modifiers &= ~(MOD_STORAGE | MOD_CONST | MOD_VOLATILE | MOD_TLS | MOD_INLINE | MOD_ADDRESSABLE | MOD_NOCAST | MOD_NODEREF | MOD_ACCESSED | MOD_TOPLEVEL); + ret->ctype.modifiers &= ~(MOD_STORAGE | MOD_CONST | MOD_VOLATILE | MOD_TLS | MOD_INLINE | MOD_ADDRESSABLE | MOD_NOCAST | MOD_NODEREF | MOD_TOPLEVEL); ret->ctype.modifiers |= (MOD_AUTO | MOD_REGISTER); bind_symbol(ret, &return_ident, NS_ITERATOR); stmt->ret = ret; diff --git a/show-parse.c b/show-parse.c index 2adeae961..3364aec5e 100644 --- a/show-parse.c +++ b/show-parse.c @@ -137,7 +137,6 @@ const char *modifier_string(unsigned long mod) {MOD_ADDRESSABLE, "[addressable]"}, {MOD_NOCAST, "[nocast]"}, {MOD_NODEREF, "[noderef]"}, - {MOD_ACCESSED, "[accessed]"}, {MOD_TOPLEVEL, "[toplevel]"}, {MOD_ASSIGNED, "[assigned]"}, {MOD_TYPE, "[type]"}, diff --git a/symbol.c b/symbol.c index 08c85f40e..2e7fcf16e 100644 --- a/symbol.c +++ b/symbol.c @@ -48,9 +48,9 @@ struct symbol_list *translation_unit_used_list = NULL; void access_symbol(struct symbol *sym) { if (sym->ctype.modifiers & MOD_INLINE) { - if (!(sym->ctype.modifiers & MOD_ACCESSED)) { + if (!sym->accessed) { add_symbol(&translation_unit_used_list, sym); - sym->ctype.modifiers |= MOD_ACCESSED; + sym->accessed = 1; } } } diff --git a/symbol.h b/symbol.h index b8b81fdeb..5192cacd9 100644 --- a/symbol.h +++ b/symbol.h @@ -173,6 +173,7 @@ struct symbol { string:1, designated_init:1, forced_arg:1, + accessed:1, transparent_union:1; struct expression *array_size; struct ctype ctype; @@ -222,7 +223,6 @@ struct symbol { #define MOD_NOCAST 0x100000 #define MOD_NODEREF 0x200000 -#define MOD_ACCESSED 0x400000 #define MOD_TOPLEVEL 0x800000 // scoping.. #define MOD_ASSIGNED 0x2000000 @@ -242,7 +242,7 @@ struct symbol { #define MOD_SPECIFIER (MOD_CHAR | MOD_SHORT | MOD_LONG_ALL | MOD_SIGNEDNESS) #define MOD_SIZE (MOD_CHAR | MOD_SHORT | MOD_LONG_ALL) #define MOD_IGNORE (MOD_TOPLEVEL | MOD_STORAGE | MOD_ADDRESSABLE | \ - MOD_ASSIGNED | MOD_USERTYPE | MOD_ACCESSED | MOD_EXPLICITLY_SIGNED) + MOD_ASSIGNED | MOD_USERTYPE | MOD_EXPLICITLY_SIGNED) #define MOD_PTRINHERIT (MOD_VOLATILE | MOD_CONST | MOD_NODEREF | MOD_NORETURN | MOD_NOCAST) /* modifiers preserved by typeof() operator */ #define MOD_TYPEOF (MOD_VOLATILE | MOD_CONST | MOD_NOCAST | MOD_SPECIFIER)