From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id ALgyOGMeBGaNRRgAWB0awg (envelope-from ) for ; Wed, 27 Mar 2024 09:25:55 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=D1OWUwwo; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id DF57A1E0C0; Wed, 27 Mar 2024 09:25:55 -0400 (EDT) Received: from server2.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 ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id C4F7A1E030 for ; Wed, 27 Mar 2024 09:25:53 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 61D3A385E44B for ; Wed, 27 Mar 2024 13:25:53 +0000 (GMT) Received: from mail-io1-xd2b.google.com (mail-io1-xd2b.google.com [IPv6:2607:f8b0:4864:20::d2b]) by sourceware.org (Postfix) with ESMTPS id 4EA883858C98 for ; Wed, 27 Mar 2024 13:25:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4EA883858C98 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4EA883858C98 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711545936; cv=none; b=IW1D5cDeWYj+4b7TGG8jTJT9VLCv2Q8jxi+qZlB+WcvE9RssAB3Cq3wPEBR/72rFe9ptihEAorew+GDID7tGPKanKRuYzv+TuO0VFH1E1SXyu0X4YvPJyV/f8GEgLVV6WG8b6ivJKWrROapvia56esv0TegLUdbks91dqk4Y8ik= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711545936; c=relaxed/simple; bh=78KCqb8ZuppJ8Pt4/uBxzazn9qCkXHeE9HkRZRmq9HA=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=SWDbrWGBQGydcNHkhx+IrLnSQKbQYVixQ608PWqrBkGH4Sxfo5FUpQT4kscTMYZBiapMGyKEcW7D5351A4VMvzZtcWe09bTfKjRaWnAdfjAouc/u6gjICj1t0hM0Qqs+v0m1LS1qfcEaPsy2dplfjUfB7MyvvKsJAZaMYDK6EoY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2b.google.com with SMTP id ca18e2360f4ac-7d03a66e895so24061039f.1 for ; Wed, 27 Mar 2024 06:25:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1711545933; x=1712150733; darn=sourceware.org; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=BHLeRTsZHl97Oqb41uQYvLI4853P3dvvO2OrNyRsUjI=; b=D1OWUwwoz+Gla9vsryI6yjYX7ARQp9bhPNat6aAMa9EbDPMUb+FDoStQH/mcakHqof 1dDLnaEd+JDVtKAjEc0pVSLYIUEUJSxJISDgAQXZVDs5fLFTKLhOpldA5wfSpKGdGto+ I5geUrWx7IJNALYWaxzWrp4pxTy7PCUxcEOSaj0g7iAgJ5RyJzAmzFWh5GQIftAZc2q2 7AJTUO9HwsHYYXUAoPmwdRQixwQ2kPzhlarKMOiCRd8gLLxH1e0jS1AbkZ9Z2Jb6AZBO WBqe8pP85cQr6TLkzBh9sGyJuZxIdkkoId3ITbTa4NRK1u+wmUlOffP6XroKVPMAk/F+ lNEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711545933; x=1712150733; h=mime-version:user-agent:message-id:in-reply-to:date:references :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=BHLeRTsZHl97Oqb41uQYvLI4853P3dvvO2OrNyRsUjI=; b=hLXHkMJAa8mVnT/Nf3vOBv8JGbu2VQTUdPOAjTyHFiL2FdTUlZMSlNTYZL+a6v+qFv VREK3JHkdvy6Icq5bLfcAyxU2iEFFXYpQ2NawVBWXqAt8TiTQ3n4orQS2yWP+qYxgwGR K3OERRDOSui0jBK9Ik+LO/aj0IrfwcO18k70v5Uz207qvIlKD1nIhyUBHOGOObcjS490 VSSL7x6aNK22O1k8ad4pNaBTMBiDKzk4w3iF8FCt+m1uTaQRd6EXkAN5bVGdXIvJJWO0 OxYHXcsvZ74NoHireJSPPu8V2BEAtMOQ2YMxKp5XyNLj3QDrcieIziq+0xaAHmOn83rC N+eA== X-Forwarded-Encrypted: i=1; AJvYcCVrwAvL3zzH+qDtpw+4uICalhRg2wXgMjUj+nE1nklE6wB/4JzskdhMMJs9TtVr91a//Ar5lfVY0di/Ieje7Tv4BrsNKLsj9Um/MA== X-Gm-Message-State: AOJu0YxNTaOpnwQSdZ5UnqCA6cmhvkC1rOXri3j41xT8L/4UULfH1oeo H0Py9jsil51+8F83qQ7RRMq8gVqI8UPRuTCbDbiP/Mv7WDHPNFq8BvgbDy2/1Vj2enhDdrn8C18 = X-Google-Smtp-Source: AGHT+IEzsDdZCW+OJgzAbme2XLHgD5uTUy9Uaecj/HQO9WIzbuLn1Fg2vliZGeag+qsYQWfKvpmowQ== X-Received: by 2002:a6b:e307:0:b0:7d0:8317:e231 with SMTP id u7-20020a6be307000000b007d08317e231mr525720ioc.5.1711545933387; Wed, 27 Mar 2024 06:25:33 -0700 (PDT) Received: from murgatroyd (97-122-82-115.hlrn.qwest.net. [97.122.82.115]) by smtp.gmail.com with ESMTPSA id a13-20020a5d958d000000b007d0767fbb25sm532511ioo.0.2024.03.27.06.25.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Mar 2024 06:25:33 -0700 (PDT) From: Tom Tromey To: Simon Marchi Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH v2] Capture warnings when writing to the index cache References: <20240312144033.77496-1-tromey@adacore.com> <87zfulat8g.fsf@tromey.com> <7fd73e54-4e87-4f2f-ab70-a3fb8194e32a@simark.ca> X-Attribution: Tom Date: Wed, 27 Mar 2024 07:25:32 -0600 In-Reply-To: <7fd73e54-4e87-4f2f-ab70-a3fb8194e32a@simark.ca> (Simon Marchi's message of "Tue, 26 Mar 2024 23:08:01 -0400") Message-ID: <87o7azbycz.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org >>>>> "Simon" == Simon Marchi writes: Simon> My interpretation of this is that we bind a function marked with Simon> `ATTRIBUTE_PRINTF (2,0)` (deferred_warnings::operator()) to a function Simon> view that doesn't convey the attribute. So I guess the compiler is Simon> telling us that whenever the function view is invoked, there won't be a Simon> format string check, and that's dangerous. Simon> I didn't find a good fix that :(. Please try the appended. thanks, Tom commit 8be8061ea5d0ec37289070f16717d3d0aa0c93af Author: Tom Tromey Date: Wed Mar 27 07:21:56 2024 -0600 patch diff --git a/gdb/utils.h b/gdb/utils.h index d7db1d84e2f..875a2583179 100644 --- a/gdb/utils.h +++ b/gdb/utils.h @@ -444,10 +444,18 @@ struct deferred_warnings hook; see scoped_restore_warning_hook. Note that no locking is done, so users have to be careful to only install this into a single thread at a time. */ - void operator() (const char *format, va_list args) ATTRIBUTE_PRINTF (2, 0) + void operator() (const char *format, va_list args) { string_file msg (m_can_style); + /* Clang warns if we add ATTRIBUTE_PRINTF to this method (because + the function-view wrapper doesn't also have the attribute), but + then warns again if we remove it, because this vprintf call + does not use a literal format string. So, suppress the + warnings here. */ + DIAGNOSTIC_PUSH + DIAGNOSTIC_IGNORE_FORMAT_NONLITERAL msg.vprintf (format, args); + DIAGNOSTIC_POP m_warnings.emplace_back (std::move (msg)); }