From patchwork Fri Apr 29 21:23:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Merrill X-Patchwork-Id: 1624535 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=OtEfx0XJ; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) 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 bilbo.ozlabs.org (Postfix) with ESMTPS id 4Kqlpk72wmz9s75 for ; Sat, 30 Apr 2022 07:23:41 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 9190A385741A for ; Fri, 29 Apr 2022 21:23:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9190A385741A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1651267418; bh=L+H2HjvxzftT2zZCBlKXRAwjs/S7v8nWeEpbKJyUPmo=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=OtEfx0XJiS/BWYsGeKgvXIdeO5q/gzwffMVxiPFaCaJH6uY7IEr2ZRZ9nmmbkaqL+ aZkHPISQgH0kr9ks8mDm5+f1eAdQuA0jX/vFTWe2jXiRnr6hhSwQ1YrM7konYzf/b9 EoBm8T7rcJ27PKB0GUl9sPl5MVuq0D8CuyRNDWdo= 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 ESMTPS id EDFEF3858C2C for ; Fri, 29 Apr 2022 21:23:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EDFEF3858C2C Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-650-kf8hDV-xNwKXWTrsS2uJpA-1; Fri, 29 Apr 2022 17:23:16 -0400 X-MC-Unique: kf8hDV-xNwKXWTrsS2uJpA-1 Received: by mail-qt1-f199.google.com with SMTP id s10-20020a05622a018a00b002f381134e2bso6563771qtw.3 for ; Fri, 29 Apr 2022 14:23:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=L+H2HjvxzftT2zZCBlKXRAwjs/S7v8nWeEpbKJyUPmo=; b=Sok8fIess76EMxRMB+V6AipqFi0nYr9pRVOG/OMm73SIpajQSQVwUmXfReOKCR/P3g gSQqmerfGmYZ+B0QiDD2LvkSTixmYmRw1+J9RhSDDuf774WCsG44Fz598/idFN/ndOWe GQFDMsMeWcvgwSO54o2mI7VZ83qTYz1arV8X736MnK890WpJA+iSx4gxT+fcu5f600L3 idVQUg++CM8Py5MS4BM0Q07wBeasaKSFBhV1rEzZWOStZF6bDUTZvkTHcOX6JTggbZ+t MeULUFuK61/3kHHTjXG+/nIWpkg5g7/wCsox4ATtSZTkRPX4K2AqxCvw3pV977xKQg24 5GEw== X-Gm-Message-State: AOAM532GQitL9HHxOYjMrCD4j4hFvm3fYS3cU/mvhJrozj9V/TzqAoq2 4fYbFj94JxzAspL5y86cq/eNEqI+Wk7z24F8pA8CCodgL7DCBzR6ZxMP3VzOQ6BXeCFLACRjCaB GKpyZGDyNzGgkmgsk0T2zmb12IU6Oi3ftizu89Brqu7ZP0k9PNOPmJnolBd2aMxMlEw== X-Received: by 2002:a05:620a:1ec:b0:69f:9f4a:161c with SMTP id x12-20020a05620a01ec00b0069f9f4a161cmr861707qkn.54.1651267395514; Fri, 29 Apr 2022 14:23:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwa0FsAm7cMgTmdrYFzSEULQY+2n/IuURpa9kKI630a83JTfmwnoDktURZ52AItDeCttFxmzA== X-Received: by 2002:a05:620a:1ec:b0:69f:9f4a:161c with SMTP id x12-20020a05620a01ec00b0069f9f4a161cmr861694qkn.54.1651267395158; Fri, 29 Apr 2022 14:23:15 -0700 (PDT) Received: from barrymore.redhat.com (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id m184-20020a378ac1000000b0069fc13ce250sm168204qkd.129.2022.04.29.14.23.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Apr 2022 14:23:14 -0700 (PDT) To: gcc-patches@gcc.gnu.org Subject: [pushed] c++: lambda capture dependent type [PR82980] Date: Fri, 29 Apr 2022 17:23:12 -0400 Message-Id: <20220429212312.1248194-1-jason@redhat.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, 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: , X-Patchwork-Original-From: Jason Merrill via Gcc-patches From: Jason Merrill Reply-To: Jason Merrill Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" The stage 4 patch limited direct propagation of dependent type to capture field/proxy to the "current instantiation", but many more types should be suitable as well. Tested x86_64-pc-linux-gnu, applying to trunk. gcc/cp/ChangeLog: * lambda.cc (type_deducible_expression_p): Allow more types. --- gcc/cp/lambda.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) base-commit: 8189838d823ea65e560c573d38a65edc12f5c2e3 diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc index 65579edc316..10834d6b143 100644 --- a/gcc/cp/lambda.cc +++ b/gcc/cp/lambda.cc @@ -195,10 +195,9 @@ type_deducible_expression_p (tree expr) || TREE_CODE (expr) == EXPR_PACK_EXPANSION) return false; tree t = non_reference (TREE_TYPE (expr)); - if (!t) return false; - while (TREE_CODE (t) == POINTER_TYPE) - t = TREE_TYPE (t); - return currently_open_class (t); + return (t && TREE_CODE (t) != TYPE_PACK_EXPANSION + && !WILDCARD_TYPE_P (t) && !LAMBDA_TYPE_P (t) + && !type_uses_auto (t)); } /* Returns the type to use for the FIELD_DECL corresponding to the