]> granicus.if.org Git - clang/commit
Give external linkage and mangling to lambdas inside inline variables and variable...
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 22 Sep 2017 04:25:05 +0000 (04:25 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 22 Sep 2017 04:25:05 +0000 (04:25 +0000)
commit7c0a11256444f1d5f101f39396327d10045daebc
tree82268cb6cec992802b75cc857a3695bb1137efa1
parent32a7bc13e309d46636b3e3ec76f8b2889d81f2d1
Give external linkage and mangling to lambdas inside inline variables and variable templates.

This implements the proposed approach in https://github.com/itanium-cxx-abi/cxx-abi/issues/33

This reinstates r313827, reverted in r313856, with a fix for the 'out-of-bounds
enumeration value' ubsan error in that change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313955 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/Decl.cpp
lib/AST/ItaniumMangle.cpp
lib/AST/Linkage.h
lib/Parse/ParseDecl.cpp
lib/Sema/SemaDeclCXX.cpp
lib/Sema/SemaLambda.cpp
lib/Sema/SemaTemplateInstantiateDecl.cpp
test/CodeGenCXX/mangle-lambdas.cpp
test/SemaCXX/vartemplate-lambda.cpp
test/SemaTemplate/instantiate-static-var.cpp