From patchwork Tue Aug 3 13:11:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 1512918 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GfFdm2ZVFz9svs for ; Tue, 3 Aug 2021 23:12:11 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2CE273951455 for ; Tue, 3 Aug 2021 13:12:08 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id E0C6A3853834 for ; Tue, 3 Aug 2021 13:11:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E0C6A3853834 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com IronPort-SDR: gu0r+noJZv81WCne8vsmj1ImAQqsRGwYwwzSA4J9o7ER165YS4EvMv8SfDf1qF29NxmaiFbjlq DK1VSY/nr/GCWHMacD2Eg9n1RiapO488RYxvN/lSxIrmdyLXKXhnfcE0rmXSPHDmgLfr1XNcrJ J+ck0WTd8kyhe+GAb7V5wLMr1T1ao9yBAbp45IrxJmUKIRwEfPXwo5DRY3l6m3WhlGyXQ+0zwH qFYGe9acay1IncH8I9dm4k5bsn2coqoJ5Mc5o8GL/6I8K1YuAbDH/gnHl7x+fhictY1IL2xAxq v9AcHGFOJAaR9g74cLJgX/Pv X-IronPort-AV: E=Sophos;i="5.84,291,1620720000"; d="scan'208,223";a="64229980" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 03 Aug 2021 05:11:54 -0800 IronPort-SDR: R86J26w/k+t7WZYh3QqBCGmj/OoMKQGqo07lQ2cn8BCwh84oxzsktC+93Qa6IexyonU7AsU3Te 22LWA8q+T09ZNdnwFXmMC4ANGU+9kogFa5SEfEi2oyMQAJDCXMOf4L+0r3NCDNlaub1UWYfxhQ yIsiRGB8O15ZaVW75//JT6jsrZDeGbfZUVuSBZBXmg6vy4m1c/SJQtHFZhRy5/Nq2k1N1kfha7 i0OPKiwJo19UQHbuqGClFh18Drog1Q+0TqJJeO+rlqta+Jl98Y1JblhkDwO1TDYuansog9cifD Gww= From: Thomas Schwinge To: , Joseph Myers Subject: Sanity check that 'Init' doesn't appear without 'Var' in '*.opt' files User-Agent: Notmuch/0.29.1+93~g67ed7df (https://notmuchmail.org) Emacs/26.3 (x86_64-pc-linux-gnu) Date: Tue, 3 Aug 2021 15:11:49 +0200 Message-ID: <87tuk6k6zu.fsf@dem-tschwing-1.ger.mentorg.com> MIME-Version: 1.0 X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-09.mgc.mentorg.com (139.181.222.9) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hi! Is the attached OK to push? No violations found per: $ find -type f -name \*.opt | xargs grep -F 'Init(' | grep -v -F 'Var(' ..., and manually verified the error condition. Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 From 67b88991c4a37e63bfecd9a0a17d9d7561b23dce Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 3 Aug 2021 14:59:56 +0200 Subject: [PATCH] Sanity check that 'Init' doesn't appear without 'Var' in '*.opt' files ... as that doesn't make sense. @item Init(@var{value}) The variable specified by the @code{Var} property should be statically initialized to @var{value}. [...] gcc/ * optc-gen.awk: Sanity check that 'Init' doesn't appear without 'Var'. --- gcc/optc-gen.awk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk index 880ac776d8a..77e598efd60 100644 --- a/gcc/optc-gen.awk +++ b/gcc/optc-gen.awk @@ -195,10 +195,14 @@ for (i = 0; i < n_extra_vars; i++) { } for (i = 0; i < n_opts; i++) { name = var_name(flags[i]); - if (name == "") + init = opt_args("Init", flags[i]) + + if (name == "") { + if (init != "") + print "#error " opts[i] " must specify Var to use Init" continue; + } - init = opt_args("Init", flags[i]) if (init != "") { if (name in var_init && var_init[name] != init) print "#error multiple initializers for " name -- 2.25.1