From patchwork Wed Mar 22 11:32:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Coplan X-Patchwork-Id: 66740 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 504D13857B98 for ; Wed, 22 Mar 2023 11:33:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 504D13857B98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1679484802; bh=IsAGirOxwXONyuVYuWR+8+1yg7150goXYHHJkGDHqrw=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=l7JdJBF7EF3zB7gYg84XlHUR2FRiaSGYhIn5ra40mAI8/V1kPxiBwDr0DUcZxeDfE PpJ95mFn0mrPzyxnESG8sI2XpbDiyobDkGvfsRdAXuyVTu8kYiVx03ZtG2ZYUjwFPP Z8pySU64j4ZR3W1flkQRKAskCmIywF075el7ui8I= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2053.outbound.protection.outlook.com [40.107.241.53]) by sourceware.org (Postfix) with ESMTPS id 68F0B3858C1F for ; Wed, 22 Mar 2023 11:32:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 68F0B3858C1F Received: from DUZPR01CA0269.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::18) by AS2PR08MB9075.eurprd08.prod.outlook.com (2603:10a6:20b:5ff::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 11:32:48 +0000 Received: from DBAEUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:4b9:cafe::48) by DUZPR01CA0269.outlook.office365.com (2603:10a6:10:4b9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37 via Frontend Transport; Wed, 22 Mar 2023 11:32:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT007.mail.protection.outlook.com (100.127.142.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.17 via Frontend Transport; Wed, 22 Mar 2023 11:32:48 +0000 Received: ("Tessian outbound 55ffa3012b8f:v135"); Wed, 22 Mar 2023 11:32:48 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7a5a3a4879db7e13 X-CR-MTA-TID: 64aa7808 Received: from 435575cf5db4.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 05AC0330-E85A-44DD-AACB-E97BDE5AEF76.1; Wed, 22 Mar 2023 11:32:41 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 435575cf5db4.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 22 Mar 2023 11:32:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JwThMq4dLSaMIkHamQFYygBZju747cllONZHHQdbKVStm4yp+7of7YPCqzbyX/DfTCjkZ0+TJi35rDyG1TGlUbs0CldOyfpcXDDkGdWVMVeEFc/zhg8W8cgC9OEF2PxqVkleUuschE1iDDhcUk7BUziecnv07vhtFS3gEdq19WhKcj4aZydItgQ/oocgbDdDwbuV4P5RZ9Sto3wXj146sf67zzEzsIywnx0kpbpYgIrRI/wyxamcOdm+SCeX3jDenQrzLVmzvsyH00NsKcCoU/uhQ0qF2hWZI7pCmg+TNJ/P1jmmJl0u/2XmIiU5UYAtjn2idDS27s8S/CJuFMP/pA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IsAGirOxwXONyuVYuWR+8+1yg7150goXYHHJkGDHqrw=; b=hVWuFBpPZf9HgT/g0BcHSdQ0TV4s8NcUyCCLAHYTNO9VkfaMH8l8h5cXdXyM8+1iLg9vTS1v1YyvbJ0LLXbv6E4iYmHOAg2M0KcnpNjWeyDQ5QiAL0/yS4vLlLVZLwLCruyz4I1IpkwZCWy6KdAs8pZ6lBlNgoddUVsu3qqXJUbMCrg1M5u8sWwkfqtNEOaxsPChd4SCNHIQxHluWHUX7NYpPxMmI97rhYu27dNlW0EXxRrrPjJvwgW4RIKkcuaj4DCjzxk/GnibCrhbMiCSxy6eMNwdc4NB9nRP3Bi2aIOi5bJt+PLs6JTyV8bAbr6Bn7s4FUT+uvXL7NBbPwNdBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from PAXPR08MB7201.eurprd08.prod.outlook.com (2603:10a6:102:20b::17) by PR3PR08MB5820.eurprd08.prod.outlook.com (2603:10a6:102:90::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 11:32:38 +0000 Received: from PAXPR08MB7201.eurprd08.prod.outlook.com ([fe80::559d:9c18:dab5:98a8]) by PAXPR08MB7201.eurprd08.prod.outlook.com ([fe80::559d:9c18:dab5:98a8%8]) with mapi id 15.20.6178.037; Wed, 22 Mar 2023 11:32:38 +0000 Date: Wed, 22 Mar 2023 11:32:30 +0000 To: gcc-patches@gcc.gnu.org Cc: Jason Merrill , Nathan Sidwell Subject: [PATCH] c++: Avoid duplicate diagnostic calling unavailable function [PR109177] Message-ID: Content-Disposition: inline X-ClientProxiedBy: SN7PR04CA0219.namprd04.prod.outlook.com (2603:10b6:806:127::14) To PAXPR08MB7201.eurprd08.prod.outlook.com (2603:10a6:102:20b::17) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: PAXPR08MB7201:EE_|PR3PR08MB5820:EE_|DBAEUR03FT007:EE_|AS2PR08MB9075:EE_ X-MS-Office365-Filtering-Correlation-Id: f3b497b0-977b-4145-92ec-08db2ac92a37 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Jmfw+KpMyeBShJ9Pyvv7vKeiF/eZyPHLbDmyyOZmmgPO85Bm3J25mp/zXXqIlIxgZjPu0gGvzX4V8qoJ9jhR82M/enswkt+tNvbkYI28bQpv3Zi4qEZMVWK6c791eXS/lutLa018TS+z+iUI5yeQCvSJ1eQNbUYN7DypsDGrSuCnLPZH3ND+dRPFa+TUk1gQx5Byg54xX8aNP7CLbIuFp/Ib/j24lX3jB9L45AEG2FAMJcj9vBVgayiAKdBOB4OOTIOqlBbXPyJHh3rvLGuP1EeJSkFuAJWVLPfLRogGnHNw2f6/zXG54ESpGBfxNUjJIkwm2qsTgIqqVEcLKiD45s7PqlTrk7iK/xOyqgXzjBajGPWl92zS5NQEx2p+mPcireOE0TKA3GkH4uH3pcGuECSVSx8iapn4bLFthuUJqnH7BLv8ruNxK+eV8+urmDwWZeqd05pOY5+YjatxQWxUe8VMBLmbHPZZISPvnHkZ9OPINIjro75g42D1tA8NnCTwPgs4Yv9EhTyW3nPi0M7X307TqDMHuHUzzJL+Vu39ol0lrHKLxJvJmBymretWw6qvURWYM7ZGWz1k9pz9B+cOf489wyXtrDobPPfW+nRkQwA2fn+Nm+XRUbahAjHidCmRXmWzTME0+tw7wpvTV8pdA7+fJD4qYuMXVpVkaWNJ4bLwQ4nF3Vcg75UFq4lN6ISZbhcmZyDMpJn9XE+g7UVbGA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB7201.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(136003)(39860400002)(396003)(376002)(366004)(346002)(451199018)(6486002)(41300700001)(66556008)(54906003)(66476007)(6916009)(478600001)(66946007)(5660300002)(235185007)(8936002)(8676002)(44832011)(316002)(4326008)(36756003)(86362001)(33964004)(21480400003)(6506007)(6512007)(44144004)(26005)(6666004)(2616005)(186003)(2906002)(38100700002)(83380400001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5820 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 504607f8-7e14-4af8-0b95-08db2ac92401 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h0cTKS2zj/w1uP2UXnsrXBp7TuBf5oO1ljvQvW+vdXacMEY9UqzJvr6t5lYKKUzjaP9gpZ74vBBgAeRAD/67elWSpQlWNUmFHT7n0d1laSnu93GmKa+CcGywrbS8Qd1N/PQrNx4MsJn2ziU/eVSiqKX64ZGaV2WDdvR+ufc/5aa0BHQFLw4DqvqQEGjBuJMCH7dc32V+EdCLePRiuu1VxUAJEmptuB/tmuGgS3F1JPn/HPUZstOn24c3jhezXdseXSc4gHtCZWbIqXRhlgYiLs4biUcBZnwNA0kFktFjjDOPlIFvYKsmmM2+kxB+KjJT9eMXSjzaH2n/Y4Q6iw6eMxBhH17Aofy2qkWUVl4Cp8bI2zbZnLMkckwnfUBZOJssDfHGhJeWoxSy+gVDsH5tXqN6cDIb160mAtP8TT0HIsIfA80RYDmxCxzUt8zdNUIG2e9BS6WJwW+H0i00X9wY+vVRBCi49ql6kKOjmHiRgz0SLea5OjUGyoapeXVqVqf7/oBp3DoQ8ElbR6vkZOn+L7pkWKHG6QH5GvkTBRXxS9HTvheK5HujyW4MtOytSJFkFhY3cVVdrzNeRZ2b+bFXCrJ4dRkfenXmBjJH9srK9gH3A/s4CjW2Od7sowQwCEyIXyTL3B8EJigLF+t8YqgKf3nW9lfmPwbxiGJeH7OEH84DMvBkAEhNzhPXAtCnw/BsAtZ6eUYnq0cTmto4w4WxR7E4A/JkUQsAnVxGC1VcLnM= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230025)(4636009)(39860400002)(136003)(396003)(346002)(376002)(451199018)(36840700001)(46966006)(40470700004)(6512007)(2616005)(21480400003)(54906003)(47076005)(82310400005)(44144004)(26005)(316002)(6506007)(478600001)(33964004)(6486002)(5660300002)(235185007)(6666004)(186003)(83380400001)(356005)(36860700001)(336012)(86362001)(40460700003)(82740400003)(70206006)(81166007)(70586007)(6916009)(41300700001)(40480700001)(44832011)(8676002)(8936002)(2906002)(4326008)(36756003)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2023 11:32:48.8135 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f3b497b0-977b-4145-92ec-08db2ac92a37 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9075 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY 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: 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: , X-Patchwork-Original-From: Alex Coplan via Gcc-patches From: Alex Coplan Reply-To: Alex Coplan Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi, As the PR shows, we currently emit duplicate diagnostics for calls to functions marked with __attribute__((unavailable)). This patch fixes that. I'm not sure whether it's considered acceptable to add the include of decl.h to call.cc (in order to get at deprecated_state). It would be useful to get some feedback on that. Bootstrapped/regtested on aarch64-linux-gnu, OK for trunk? Thanks, Alex gcc/cp/ChangeLog: PR c++/109177 * call.cc (build_over_call): Use make_temp_override to suppress both unavailable and deprecated warnings when calling build_addr_func. gcc/testsuite/ChangeLog: PR c++/109177 * g++.dg/ext/pr109177.C: New test. diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc index c52a09b9be2..d5e8ccc07d3 100644 --- a/gcc/cp/call.cc +++ b/gcc/cp/call.cc @@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see #include "internal-fn.h" #include "stringpool.h" #include "attribs.h" +#include "decl.h" #include "gcc-rich-location.h" /* The various kinds of conversion. */ @@ -10413,10 +10414,11 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) } else { - /* If FN is marked deprecated, then we've already issued a deprecated-use - warning from mark_used above, so avoid redundantly issuing another one - from build_addr_func. */ - warning_sentinel w (warn_deprecated_decl); + /* If FN is marked deprecated or unavailable, then we've already + issued a diagnostic from mark_used above, so avoid redundantly + issuing another one from build_addr_func. */ + auto w = make_temp_override (deprecated_state, + UNAVAILABLE_DEPRECATED_SUPPRESS); fn = build_addr_func (fn, complain); if (fn == error_mark_node) diff --git a/gcc/testsuite/g++.dg/ext/pr109177.C b/gcc/testsuite/g++.dg/ext/pr109177.C new file mode 100644 index 00000000000..cc322f650af --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/pr109177.C @@ -0,0 +1,6 @@ +// { dg-do compile } +void foo() __attribute__((unavailable)); +void bar () { + foo (); // { dg-bogus "is unavailable.*is unavailable" } + // { dg-error "is unavailable" "" { target *-*-* } .-1 } +}