summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-lambdas.cpp
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-10-10 01:14:22 +0000
committerReid Kleckner <rnk@google.com>2019-10-10 01:14:22 +0000
commitda2bde9e34df02a1c706425ec0bc85d4d49eebd5 (patch)
treef671bdfb4eed447c69b00403a42b568d45ced981 /clang/test/CodeGenCXX/mangle-lambdas.cpp
parentc34385d07c7d59447bf836b740f032235391d121 (diff)
downloadbcm5719-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.cpp10
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() {
OpenPOWER on IntegriCloud