| Message ID | 677bca93.050a0220.33acbc.5415@mx.google.com |
|---|---|
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> 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 B96723858402 for <patchwork@sourceware.org>; Mon, 6 Jan 2025 12:21:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B96723858402 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=iXTo1Ix1 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) by sourceware.org (Postfix) with ESMTPS id 1CB5D3858D29 for <gcc-patches@gcc.gnu.org>; Mon, 6 Jan 2025 12:20:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1CB5D3858D29 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1CB5D3858D29 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1034 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736166037; cv=none; b=x5rZrCWAeTjGQAVUNnj0OHRyii9lL3PvPduGYguRFd1fdES3i0aBC9XzGVAyJUqeGVfzTbbCYrYOQQ0IZStn5BeqFgO4Fr+QdikNs1m6wS6aQxKSRn7JDPRbodmBE372Qb/7hk05EfwPWe/Iyql3uJ5TSDk55MqDuvPAwwR0Rfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736166037; c=relaxed/simple; bh=pjcOZgfkxATFtfK8sh56dQEA9WN8EbWo2qqJ2i+H/AA=; h=DKIM-Signature:Message-ID:Date:From:To:Subject:MIME-Version; b=l0gI2EsMAdDq+UAC5ARTM9k7EyYqpvVsfAqdvHqmD02SP6hXRFqFIjl8F2Moiprd+Y3FYl6xkO6YwSmb0EXhAkn8oeIw02Hy5ZYFFXh/oVHjhBuesjf66/sS1B4Va3Z3vq22S0w8VirKs2PjyOnVHyTVF6geuAkXp+fGbovYuak= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1CB5D3858D29 Received: by mail-pj1-x1034.google.com with SMTP id 98e67ed59e1d1-2ee534d6800so3041181a91.2 for <gcc-patches@gcc.gnu.org>; Mon, 06 Jan 2025 04:20:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736166036; x=1736770836; darn=gcc.gnu.org; h=content-disposition:mime-version:subject:cc:to:from:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=1HAqnmHcg3wz1wW67yS0Z8EdDmjqpN7asU9HitBLzog=; b=iXTo1Ix1u6mup8g9vLqK4AFZGaEsHGCgV01OMsYbJMdo6wLBA/159RF7LWH3Jm/amh zyBkmQP4eHFCTG8VXym7383uSSSCWs9iu5/QBd5PqvJCGuuOLuVHlG1+sn9ahBgj7uJ4 TTNqVuP+ttHIdDQIh13CMCQLTb7OUzjbxODCRIiraW89Uq82qx9FTYw3ODk8qcxCq2ND D8gmSWxP4VvJkRO154OQNSE8ia14nW4Czmh+rDUYtmkBxisbcutXtzd0YK9kgXVNNTKI IxDHZ34Pji+GE/bP4+niSqz3HRkzGGs6AVTN8q0fqkGYOROvkp5Q/vBW7RO24nkafbM6 znuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736166036; x=1736770836; h=content-disposition:mime-version:subject:cc:to:from:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1HAqnmHcg3wz1wW67yS0Z8EdDmjqpN7asU9HitBLzog=; b=C2rmglD9KdAdt+pzLd3dazucuYhHHRbJqfKiXhbd3ipTSNVx/Hgy5s2WeOOthvPUlY oL2fjnY57ZqW/l2GGKk/Eqbgw1R3Ap4kdCUzVul+vgkk65IK7e1SpUasKPGisoZef0Dx NQwxDbTGmHy2zfxqhCJ5IYFq2+SQy+w9CMfybVl1AZuJL2DxH+rr/XqUNI6h8x+iVZha Tx9y+HAnu10ADbMyVyosE2PtAWtV9ly5/kT3JgZ2HuihwfvYuyjVZ7QgY9BoTJnHwXDp E5S/rn+JNNDs2QXOKiLAXujWfrEhbkKOadtUitc3kSHsh+rEMFeec2ZqQlLM9AsRxL0U 0NuQ== X-Gm-Message-State: AOJu0YwVyypCVH2BoAhlOJC+hP/3ePvTK8QeLJ4iDv7omQ/uosgNVLCK Z6g1FAfwaAN5+zcfM1kRNZ5HaiwF89hb9gwVhK4wFD2g00S1LBNs+U+UzA== X-Gm-Gg: ASbGncsFTzHKaO/oVxiiYRMiiVhgLEriC9P2pfaqtGkx9WrRjdsewLUBq5F7K8dGiaE TI0awvAlK9ZJ8NrRGpCb2El24hApCaIQTgDYxo0uvvOJhzmDz09YSfRkngIQxTR9YfF6VY5YBj0 ZVDQse68J+BUNrLUKEvMxnvS6OVPqLfafzKN7hlFQPlYExm3e4fdWzBHzBTNf9PjKim89I+dbQV 56kToC/46uW7riRozHZb3XtyzJzh6wU4xbY0U8FbJtzHsrNgABmXSVvPCAgXEs9Yz0Sp2XyyzXi j21eJtGzbshYjQRcEbwQBA== X-Google-Smtp-Source: AGHT+IFjC5f4+WM6HwsLyIO0Kigs3w47XrvFH1UeXAY0p3kyL7x2viy/gptgugcyfEazT9ovEaEAHQ== X-Received: by 2002:a05:6a00:6f0b:b0:725:f462:2ebb with SMTP id d2e1a72fcca58-72abdbde733mr30451250b3a.0.1736166035825; Mon, 06 Jan 2025 04:20:35 -0800 (PST) Received: from Thaum. (163-47-68-2.ipv4.originbroadband.com.au. [163.47.68.2]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72aad830b05sm31038627b3a.52.2025.01.06.04.20.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jan 2025 04:20:35 -0800 (PST) Message-ID: <677bca93.050a0220.33acbc.5415@mx.google.com> X-Google-Original-Message-ID: <Z3vKjoVQmAgtY5RK@Thaum.> Date: Mon, 6 Jan 2025 23:20:30 +1100 From: Nathaniel Shead <nathanieloshead@gmail.com> To: gcc-patches@gcc.gnu.org Cc: Jason Merrill <jason@redhat.com> Subject: [PATCH v3 0/6] c++: Add some missing LAMBDA_EXPR_EXTRA_SCOPEs MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-5.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
c++: Add some missing LAMBDA_EXPR_EXTRA_SCOPEs
|
|
Message
Nathaniel Shead
Jan. 6, 2025, 12:20 p.m. UTC
This patch series fixes some ABI issues in lambdas, with a side effect
of fixing some issues with module streaming. This doesn't completely
fix the ABI for lambdas (in particular, namespace scope aliases are
still broken) but it at least improves the situation.
Successfully bootstrapped and regtested on x86_64-pc-linux-gnu.
Nathaniel Shead (6):
c++: Fix mangling of lambdas in static data member initializers
[PR107741]
c++: Fix mangling of otherwise unattached class-scope lambdas
[PR118245]
c++: Fix ABI for lambdas declared in alias templates [PR116568]
c++: Update mangling of lambdas in expressions
c++/modules: Add testcase for fixed ICE [PR116568]
c++/modules: Diagnose TU-local lambdas, give mangling scope to lambdas
in concepts
gcc/c-family/c-opts.cc | 2 +-
gcc/common.opt | 5 +-
gcc/cp/cp-tree.h | 9 +-
gcc/cp/decl2.cc | 77 ++++++++++++
gcc/cp/lambda.cc | 33 +++++-
gcc/cp/mangle.cc | 15 ++-
gcc/cp/module.cc | 7 +-
gcc/cp/parser.cc | 111 ++++++++++++------
gcc/cp/pt.cc | 50 +++++---
gcc/doc/invoke.texi | 3 +
gcc/testsuite/g++.dg/abi/lambda-ctx2-19.C | 10 ++
gcc/testsuite/g++.dg/abi/lambda-ctx2-19vs20.C | 8 ++
gcc/testsuite/g++.dg/abi/lambda-ctx2-20.C | 10 ++
gcc/testsuite/g++.dg/abi/lambda-ctx2.h | 27 +++++
gcc/testsuite/g++.dg/abi/lambda-ctx3.C | 21 ++++
gcc/testsuite/g++.dg/abi/lambda-ctx4.C | 29 +++++
gcc/testsuite/g++.dg/abi/macro0.C | 2 +-
gcc/testsuite/g++.dg/abi/mangle74.C | 4 +-
.../g++.dg/cpp0x/static-member-init-1.C | 5 +
.../g++.dg/cpp2a/lambda-generic-mangle1.C | 2 +-
.../g++.dg/cpp2a/lambda-generic-mangle1a.C | 2 +-
gcc/testsuite/g++.dg/cpp2a/lambda-uneval20.C | 7 ++
gcc/testsuite/g++.dg/modules/internal-4_b.C | 6 +-
gcc/testsuite/g++.dg/modules/lambda-8.h | 7 ++
gcc/testsuite/g++.dg/modules/lambda-8_a.H | 5 +
gcc/testsuite/g++.dg/modules/lambda-8_b.C | 5 +
gcc/testsuite/g++.dg/modules/lambda-9.h | 2 +
gcc/testsuite/g++.dg/modules/lambda-9_a.H | 4 +
gcc/testsuite/g++.dg/modules/lambda-9_b.C | 6 +
gcc/testsuite/g++.dg/modules/late-ret-3_a.H | 2 +-
gcc/testsuite/g++.dg/other/fold1.C | 2 +-
31 files changed, 402 insertions(+), 76 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx2-19.C
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx2-19vs20.C
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx2-20.C
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx2.h
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx3.C
create mode 100644 gcc/testsuite/g++.dg/abi/lambda-ctx4.C
create mode 100644 gcc/testsuite/g++.dg/cpp0x/static-member-init-1.C
create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-uneval20.C
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-8.h
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-8_a.H
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-8_b.C
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-9.h
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-9_a.H
create mode 100644 gcc/testsuite/g++.dg/modules/lambda-9_b.C