diff options
author | Reid Kleckner <rnk@google.com> | 2019-10-10 01:14:22 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-10-10 01:14:22 +0000 |
commit | da2bde9e34df02a1c706425ec0bc85d4d49eebd5 (patch) | |
tree | f671bdfb4eed447c69b00403a42b568d45ced981 /clang/test/CodeGenCXX/mangle-lambdas.cpp | |
parent | c34385d07c7d59447bf836b740f032235391d121 (diff) | |
download | bcm5719-llvm-da2bde9e34df02a1c706425ec0bc85d4d49eebd5.tar.gz bcm5719-llvm-da2bde9e34df02a1c706425ec0bc85d4d49eebd5.zip |
Re-land [mangle] Fix mangling where an extra mangle context is required.
This reverts r374268 (git commit c34385d07c7d59447bf836b740f032235391d121)
I think I reverted this by mistake, so I'm relanding it. While my bisect
found this revision, I think the crashes I'm seeing locally must be
environmental. Maybe the version of clang I'm using miscompiles tot
clang.
llvm-svn: 374269
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-lambdas.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-lambdas.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/test/CodeGenCXX/mangle-lambdas.cpp b/clang/test/CodeGenCXX/mangle-lambdas.cpp index d49ed4b2a5e..fcca878e387 100644 --- a/clang/test/CodeGenCXX/mangle-lambdas.cpp +++ b/clang/test/CodeGenCXX/mangle-lambdas.cpp @@ -178,18 +178,24 @@ void use_func_template() { } namespace std { - struct type_info; + struct type_info { + bool before(const type_info &) const noexcept; + }; } namespace PR12123 { struct A { virtual ~A(); } g; + struct C { virtual ~C(); } k; struct B { void f(const std::type_info& x = typeid([]()->A& { return g; }())); void h(); + void j(bool cond = typeid([]() -> A & { return g; }()).before(typeid([]() -> C & { return k; }()))); }; - void B::h() { f(); } + void B::h() { f(); j(); } } // CHECK-LABEL: define linkonce_odr dereferenceable({{[0-9]+}}) %"struct.PR12123::A"* @_ZZN7PR121231B1fERKSt9type_infoEd_NKUlvE_clEv +// CHECK-LABEL: define linkonce_odr dereferenceable({{[0-9]+}}) %"struct.PR12123::A"* @_ZZN7PR121231B1jEbEd_NKUlvE_clEv +// CHECK-LABEL: define linkonce_odr dereferenceable({{[0-9]+}}) %"struct.PR12123::C"* @_ZZN7PR121231B1jEbEd_NKUlvE0_clEv // CHECK-LABEL: define {{.*}} @_Z{{[0-9]*}}testVarargsLambdaNumberingv( inline int testVarargsLambdaNumbering() { |