================
@@ -301,6 +301,70 @@ void test_StaticInlineMember() {
StaticInlineMember::x();
}
----------------
oToToT wrote:
IIUC, this still aligns to the Itanium ABI spec. The 5.1.8 rule "If the context
is the body of a function (inline and/or template), the closure type is encoded
like any other local entity", and some relevant statements in both 5.1.7 and
5.1.8.
Basically, I think this is a recursion bug in Clang’s mangling path. This fix
is to break recursive re-entry by resolving/publishing lambda context early. I
do not invent a new recursive-type encoding.
For GCC, it produces the same output of all the test files. (except the
existing differences of how we mangle lambda, e.g. `main::$_0` vs
`main::{lambda()#1}`)
https://github.com/llvm/llvm-project/pull/182667
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits