From patchwork Sun Sep 15 15:49:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 1985900 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=WfLYLPTg; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) 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 (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4X6CD240j2z1y1T for ; Mon, 16 Sep 2024 01:49:54 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C6D8A385C6CA for ; Sun, 15 Sep 2024 15:49:52 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 5A35D385842C for ; Sun, 15 Sep 2024 15:49:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5A35D385842C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5A35D385842C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1726415371; cv=none; b=azBmGP3AU1uAZpk12C1vHSKP3yceCJFICwNTErB1+2Z3w5J4XCW/6haDfLyDSYw156QyfvyqDNJn9+p1Zgs+LkwsIa2rp0HRQbndAuo54sJebopZqGEaUxdFoPcKYntUIDxERYazH1ztiCjMwWDqHLtvtX4m8h/4NOyBsV3hDO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1726415371; c=relaxed/simple; bh=bza/S53UsL7S/SctIYNNayc8k2qQrUHM68E50zEoYkk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=ndWcVl99+gPx6GmAsIOhKGy3f6RuI7SJK8Cz1ZnsvyuMUEKSorCkupBwry3K+zzmy9oQEwXpru9TY4QG7k+jcElheNZdFUq/vCqj3LknvDbjj1VS0nEEnd/3vDnTmcPwqWRERcuzla+Z5XFiQ3Y6zTifpz3DxEEFI2riz+soHCg= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1726415370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wpz1EU6NY5fldi2t/8sS8yVyK6tOyiSnufUPEn+mAds=; b=WfLYLPTg3UeEZhHu7Ny313yrSBJ9i6137qPlK03cs36rF6OyjAw3O1hvqbDqBa0aJ+lzHX L8d23+0k0d9LI69IuSFKTwRF7Ioo2yfvahbIUavOOCXFaiM2XXCTBl8v5k3jBat7ikLaIy UshkwgivhVKPfcwh6OF973UyWbWpcNU= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-520--maF9KKAMQ2HFpcp0Nj1Ig-1; Sun, 15 Sep 2024 11:49:28 -0400 X-MC-Unique: -maF9KKAMQ2HFpcp0Nj1Ig-1 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-42cb33e6299so22203105e9.2 for ; Sun, 15 Sep 2024 08:49:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726415367; x=1727020167; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wpz1EU6NY5fldi2t/8sS8yVyK6tOyiSnufUPEn+mAds=; b=iou68fpxRFd16iDeWkO3hRHTQAm39DZsmF9WNCqY78z+c2GZumyUB2H6/kyPxchcKS F12t1jrf6yMGDBVPIovttKNkbodueGkFqvvWttEFSt7bXwxk8ghNpfgHOw8Pfq5ia0mP 6vcB/xLt6yasCdg7gLrdggpzmYBEKhJvF6NiIsSFDiSYJDDfgA8jI1Nc9+/sOxZ2ZY/G FiXB5rTxI5OznzAsC1Da5eUiFlkSXPeMvbaar2msG/kWB9sv3eFITtPn2RYxLNKnqGIi UiTYoXWJgcptIVmLSjVpZGLpWB60Qrrt2mOMzzxivMkzDLBTr+gIDtv0bqImFsLGc0YA t4iA== X-Gm-Message-State: AOJu0YxtbPz/qnIZxZKq1bYhPNhpsANf8imeoQz6cEZqEArZlOU8Jzu/ DC8WHfJyG5KsJL+orHGpYIU7s6HnfgphQlqd4JKR8NxJQrIBaoairI4JfRU+BolE87Cq1z30F79 3CT22cjkhIM5sPdK/DR4ikKkRNvq1H4pnngxj1gFeNSPoWPq+4wL5SmnZY41s2PtkbOMHrinOXb SzEtrXM0Z5SwUCqnH98ltCtAyjgLHrwKadmLuUpg== X-Received: by 2002:a05:600c:46c5:b0:42c:b843:792b with SMTP id 5b1f17b1804b1-42cdb531b96mr92784825e9.2.1726415366843; Sun, 15 Sep 2024 08:49:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGz97ofSmdZA4cb5X+nI39/eaozNtI9lg8JOB3jeOvZJ5zG/BNVk6yXJm3HStyAntt8k/1Fg== X-Received: by 2002:a05:600c:46c5:b0:42c:b843:792b with SMTP id 5b1f17b1804b1-42cdb531b96mr92784675e9.2.1726415366166; Sun, 15 Sep 2024 08:49:26 -0700 (PDT) Received: from jason-thinkpadp1gen4i.rmtusma.csb (90-183-52-11.rcq.o2.cz. [90.183.52.11]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42d9b189a12sm85296935e9.32.2024.09.15.08.49.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 15 Sep 2024 08:49:25 -0700 (PDT) From: Jason Merrill To: gcc-patches@gcc.gnu.org Subject: [pushed] c++: __extension__ and -Wconditionally-supported Date: Sun, 15 Sep 2024 17:49:13 +0200 Message-ID: <20240915154923.463363-1-jason@redhat.com> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 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 Tested x86_64-pc-linux-gnu, applying to trunk. -- 8< -- When we're explicitly choosing GCC extensions, we similarly shouldn't complain about optional features that GCC provides. This particular pattern of cast between function and object pointer is used by gthr-posix.h on some targets, including linux-gnu before glibc 2.34. gcc/cp/ChangeLog: * parser.cc (cp_parser_unary_expression) [RID_EXTENSION]: Also suppress -Wconditionally-supported. gcc/testsuite/ChangeLog: * g++.dg/warn/Wconditionally-supported-1.C: Add __extension__ cases. --- gcc/cp/parser.cc | 6 ++++++ gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C | 6 ++++++ 2 files changed, 12 insertions(+) base-commit: 5ef73ba1cc17b8893ad9a4e95f9cd191dbc0bfa3 diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 3c8c75575b0..4dd9474cf60 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -9150,9 +9150,15 @@ cp_parser_unary_expression (cp_parser *parser, cp_id_kind * pidk, /* Save away the PEDANTIC flag. */ cp_parser_extension_opt (parser, &saved_pedantic); + /* Also suppress -Wconditionally-supported. */ + diagnostic_push_diagnostics (global_dc, input_location); + diagnostic_classify_diagnostic + (global_dc, OPT_Wconditionally_supported, + DK_IGNORED, input_location); /* Parse the cast-expression. */ expr = cp_parser_simple_cast_expression (parser); /* Restore the PEDANTIC flag. */ + diagnostic_pop_diagnostics (global_dc, input_location); pedantic = saved_pedantic; return expr; diff --git a/gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C b/gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C index 3c32edba8ce..192d709fd79 100644 --- a/gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C +++ b/gcc/testsuite/g++.dg/warn/Wconditionally-supported-1.C @@ -22,4 +22,10 @@ void foo () pf = reinterpret_cast (po); // { dg-warning "8:casting between pointer-to-function and pointer-to-object is conditionally-supported" } po = reinterpret_cast (pf); // { dg-warning "8:casting between pointer-to-function and pointer-to-object is conditionally-supported" } + + pf = __extension__ reinterpret_cast (pv); + pv = __extension__ reinterpret_cast (pf); + + pf = __extension__ reinterpret_cast (po); + po = __extension__ reinterpret_cast (pf); }