]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++: Update mangling of lambdas in expressions
authorNathaniel Shead <nathanieloshead@gmail.com>
Fri, 8 Nov 2024 12:20:47 +0000 (23:20 +1100)
committerNathaniel Shead <nathanieloshead@gmail.com>
Thu, 23 Jan 2025 06:39:00 +0000 (17:39 +1100)
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 <nathanieloshead@gmail.com>
gcc/cp/mangle.cc
gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C
gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C

index 114e4a0d7c5930014677b24b546d5dfd15c2f8e1..df61f2d573e778849b902e7da8769463c12a01d1 100644 (file)
@@ -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');
     }
index 0051307f53de4e10eed8d4a0cc9500fb1a324e1c..306959a4f9f91799eae24c045d010e0f5e9d44f6 100644 (file)
@@ -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" } }
index dc7b0125631cce94935d9d11a337a2348008eac4..b7bd4ecdd46d696b52e7216daabefaa452156ba0 100644 (file)
@@ -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" } }