aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathaniel Shead <nathanieloshead@gmail.com>2024-11-08 23:20:47 +1100
committerNathaniel Shead <nathanieloshead@gmail.com>2025-01-23 17:39:00 +1100
commit2119c254606c58d247d3d0b92bf192780d375ddb (patch)
tree88a3f90acaaa0a283420506bdfba12ccde404234
parent685c458fb4775cbd1a3b3d3585d1e5615d7eaee9 (diff)
downloadgcc-2119c254606c58d247d3d0b92bf192780d375ddb.zip
gcc-2119c254606c58d247d3d0b92bf192780d375ddb.tar.gz
gcc-2119c254606c58d247d3d0b92bf192780d375ddb.tar.bz2
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 <nathanieloshead@gmail.com>
-rw-r--r--gcc/cp/mangle.cc2
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1.C2
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/lambda-generic-mangle1a.C2
3 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index 114e4a0..df61f2d 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 0051307..306959a 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 dc7b012..b7bd4ec 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" } }