unsubscribe
On Friday, April 30, 2021, Xun Li via llvm-dev <llvm-...@lists.llvm.org> wrote: > Hi, > > I noticed that when compiling lambda functions, the generated function > names use different conventions than GCC. > Example: https://godbolt.org/z/5qvqKqEe6 > The lambda in Clang is named "_Z3barIZ3foovE3$_0EvT_", while the one > in GCC is named "_Z3barIZ3foovEUlvE_EvT_". Their demangled names are > also different ("void bar<foo()::$_0>(foo()::$_0)" vs "void > bar<foo()::{lambda()#1}>(foo()::{lambda()#1})"). > Lambdas are not covered by the ABI so this is OK. > However there are use-cases where I find it very inconvenient when > they generate different names. For example, if we are to compare the > performance difference of the same software compiled under Clang and > GCC, the perf stack traces will look very different because of the > naming differences, making it hard to compare. > Is there any particular reason that Clang uses a different naming > convention for lambdas, and would there be push-backs if we were to > make it consistent with GCC? > Thanks. > > -- > Xun > _______________________________________________ > LLVM Developers mailing list > llvm-...@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >