https://gcc.gnu.org/g:2119c254606c58d247d3d0b92bf192780d375ddb

commit r15-7148-g2119c254606c58d247d3d0b92bf192780d375ddb
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Fri Nov 8 23:20:47 2024 +1100

    c++: Update mangling of lambdas in expressions
    
    https://github.com/itanium-cxx-abi/cxx-abi/pull/85 clarifies that
    mangling a lambda expression should use 'L' rather than "tl".
    
    gcc/cp/ChangeLog:
    
            * mangle.cc (write_expression): Update mangling for lambdas.
    
    gcc/testsuite/ChangeLog:
    
            * g++.dg/cpp2a/lambda-generic-mangle1.C: Update mangling.
            * g++.dg/cpp2a/lambda-generic-mangle1a.C: Likewise.
    
    Signed-off-by: Nathaniel Shead <nathanielosh...@gmail.com>

Diff:
---
 gcc/cp/mangle.cc                                     | 2 +-
 gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C  | 2 +-
 gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index 114e4a0d7c59..df61f2d573e7 100644
--- a/gcc/cp/mangle.cc
+++ b/gcc/cp/mangle.cc
@@ -3799,7 +3799,7 @@ write_expression (tree expr)
         equivalent.
 
         So just use the closure type mangling.  */
-      write_string ("tl");
+      write_char ('L');
       write_type (LAMBDA_EXPR_CLOSURE (expr));
       write_char ('E');
     }
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C 
b/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
index 0051307f53de..306959a4f9f9 100644
--- a/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
@@ -6,4 +6,4 @@ struct C {
   void f(decltype([](T, auto) { return 0; })) {}
 };
 void g() { C().f<int>({}); }
-// { dg-final { scan-assembler "_ZN1C1fIiEEvDTtlNS_UlT_TL0__E_EEE" } }
+// { dg-final { scan-assembler "_ZN1C1fIiEEvDTLNS_UlT_TL0__E_EEE" } }
diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C 
b/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
index dc7b0125631c..b7bd4ecdd46d 100644
--- a/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
+++ b/gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C
@@ -7,4 +7,4 @@ struct C {
   void f(decltype([](T, auto) { return 0; })) {}
 };
 void g() { C().f<int>({}); }
-// { dg-final { scan-assembler "_ZN1C1fIiEEvDTtlNS_UlT_T_E_EEE" } }
+// { dg-final { scan-assembler "_ZN1C1fIiEEvDTLNS_UlT_T_E_EEE" } }

Reply via email to