From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id Vr3MGwRanWETOQAAWB0awg (envelope-from ) for ; Tue, 23 Nov 2021 16:15:48 -0500 Received: by simark.ca (Postfix, from userid 112) id 6966F1F0CE; Tue, 23 Nov 2021 16:15:48 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id D20C81EDF0 for ; Tue, 23 Nov 2021 16:15:47 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EC7B23858429 for ; Tue, 23 Nov 2021 21:15:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC7B23858429 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1637702147; bh=q4lqIWoh0HcpmO5wjRnH9uB75RWlExePbX26SBXm0ns=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=sZwxvC4sEfwoyMGd4gkO3yZQM3bIwBxeyDCEWJiuf6vSEluXwT2Vru2xHwR/Pbcw7 4HKejcMSnF5FeS3m+9ax4VdmWw0FymeICRraCKVY+OlpuMWHybmSQ3aekNW8EsjtU2 tzpV2ots48o0+SeSsXh4kwm2zgu7KIfOr7y1p7Qk= Received: from barracuda.ebox.ca (barracuda.ebox.ca [96.127.255.19]) by sourceware.org (Postfix) with ESMTPS id C1D44385840B for ; Tue, 23 Nov 2021 21:14:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C1D44385840B X-ASG-Debug-ID: 1637702078-0c856e2e4627ed40001-fS2M51 Received: from smtp.ebox.ca (smtp.ebox.ca [96.127.255.82]) by barracuda.ebox.ca with ESMTP id GoV7x8VK64sJ0wV4 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 23 Nov 2021 16:14:38 -0500 (EST) X-Barracuda-Envelope-From: simon.marchi@efficios.com X-Barracuda-RBL-Trusted-Forwarder: 96.127.255.82 Received: from epycamd.internal.efficios.com (192-222-180-24.qc.cable.ebox.net [192.222.180.24]) by smtp.ebox.ca (Postfix) with ESMTP id 864FE441B21; Tue, 23 Nov 2021 16:14:38 -0500 (EST) X-Barracuda-RBL-IP: 192.222.180.24 X-Barracuda-Effective-Source-IP: 192-222-180-24.qc.cable.ebox.net[192.222.180.24] X-Barracuda-Apparent-Source-IP: 192.222.180.24 To: gdb-patches@sourceware.org, binutils@sourceware.org Subject: [PATCH 1/2] gdb: replace pragmas with DIAGNOSTIC macros Date: Tue, 23 Nov 2021 16:14:36 -0500 X-ASG-Orig-Subj: [PATCH 1/2] gdb: replace pragmas with DIAGNOSTIC macros Message-Id: <20211123211437.3783065-1-simon.marchi@efficios.com> X-Mailer: git-send-email 2.33.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: smtp.ebox.ca[96.127.255.82] X-Barracuda-Start-Time: 1637702078 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://96.127.255.19:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at ebox.ca X-Barracuda-Scan-Msg-Size: 3320 X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=8.0 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.94162 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Simon Marchi via Gdb-patches Reply-To: Simon Marchi Cc: Simon Marchi Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" When introducing this code, I forgot that we had some macros for this. Replace some "manual" pragma diagnostic with some DIAGNOSTIC_* macros, provided by include/diagnostics.h. In diagnostics.h: - Add DIAGNOSTIC_ERROR, to enable a diagnostic at error level. - Add DIAGNOSTIC_ERROR_SWITCH, to enable -Wswitch at error level, for both gcc and clang. Change-Id: Id33ebec3de39bd449409ea0bab59831289ffe82d --- gdb/target/waitstatus.c | 6 +++--- gdb/target/waitstatus.h | 7 ++++--- include/diagnostics.h | 8 ++++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gdb/target/waitstatus.c b/gdb/target/waitstatus.c index a7209e3f2b7..0fbcec5b7c8 100644 --- a/gdb/target/waitstatus.c +++ b/gdb/target/waitstatus.c @@ -30,8 +30,8 @@ target_waitstatus::to_string () const /* Make sure the compiler warns if a new TARGET_WAITKIND enumerator is added but not handled here. */ -#pragma GCC diagnostic push -#pragma GCC diagnostic error "-Wswitch" +DIAGNOSTIC_PUSH +DIAGNOSTIC_ERROR_SWITCH switch (this->kind ()) { case TARGET_WAITKIND_EXITED: @@ -63,7 +63,7 @@ target_waitstatus::to_string () const case TARGET_WAITKIND_THREAD_CREATED: return str; } -#pragma GCC diagnostic pop +DIAGNOSTIC_POP gdb_assert_not_reached ("invalid target_waitkind value: %d", (int) this->kind ()); diff --git a/gdb/target/waitstatus.h b/gdb/target/waitstatus.h index 48405d222f4..5b537354184 100644 --- a/gdb/target/waitstatus.h +++ b/gdb/target/waitstatus.h @@ -20,6 +20,7 @@ #ifndef TARGET_WAITSTATUS_H #define TARGET_WAITSTATUS_H +#include "diagnostics.h" #include "gdbsupport/gdb_signals.h" /* Stuff for target_wait. */ @@ -108,8 +109,8 @@ target_waitkind_str (target_waitkind kind) { /* Make sure the compiler warns if a new TARGET_WAITKIND enumerator is added but not handled here. */ -#pragma GCC diagnostic push -#pragma GCC diagnostic error "-Wswitch" +DIAGNOSTIC_PUSH +DIAGNOSTIC_ERROR_SWITCH switch (kind) { case TARGET_WAITKIND_EXITED: @@ -145,7 +146,7 @@ target_waitkind_str (target_waitkind kind) case TARGET_WAITKIND_THREAD_EXITED: return "THREAD_EXITED"; }; -#pragma GCC diagnostic pop +DIAGNOSTIC_POP gdb_assert_not_reached ("invalid target_waitkind value: %d\n", (int) kind); } diff --git a/include/diagnostics.h b/include/diagnostics.h index f6fd30e26df..5ab43a85e9c 100644 --- a/include/diagnostics.h +++ b/include/diagnostics.h @@ -40,6 +40,8 @@ # define DIAGNOSTIC_IGNORE(option) \ _Pragma (DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored option)) +# define DIAGNOSTIC_ERROR(option) \ + _Pragma (DIAGNOSTIC_STRINGIFY (GCC diagnostic error option)) #else # define DIAGNOSTIC_PUSH # define DIAGNOSTIC_POP @@ -61,6 +63,9 @@ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \ DIAGNOSTIC_IGNORE ("-Wformat-nonliteral") +# define DIAGNOSTIC_ERROR_SWITCH \ + DIAGNOSTIC_ERROR ("-Wswitch") + #elif defined (__GNUC__) /* GCC */ # if __GNUC__ >= 7 @@ -74,6 +79,9 @@ # define DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL \ DIAGNOSTIC_IGNORE ("-Wformat-nonliteral") +# define DIAGNOSTIC_ERROR_SWITCH \ + DIAGNOSTIC_ERROR ("-Wswitch") + #endif #ifndef DIAGNOSTIC_IGNORE_SELF_MOVE -- 2.33.1