diff options
Diffstat (limited to 'test/CodeGenCXX/microsoft-abi-structors-alias.cpp')
| -rw-r--r-- | test/CodeGenCXX/microsoft-abi-structors-alias.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/test/CodeGenCXX/microsoft-abi-structors-alias.cpp b/test/CodeGenCXX/microsoft-abi-structors-alias.cpp index f977556aa5650..08df374f2fc95 100644 --- a/test/CodeGenCXX/microsoft-abi-structors-alias.cpp +++ b/test/CodeGenCXX/microsoft-abi-structors-alias.cpp @@ -22,5 +22,21 @@ B::~B() {} void foo() { B b; } -// CHECK-DAG: @"\01??1B@test2@@UAE@XZ" = alias bitcast (void (%"struct.test2::A"*)* @"\01??1A@test2@@UAE@XZ" to void (%"struct.test2::B"*)*) +// CHECK-DAG: @"\01??1B@test2@@UAE@XZ" = alias void (%"struct.test2::B"*), bitcast (void (%"struct.test2::A"*)* @"\01??1A@test2@@UAE@XZ" to void (%"struct.test2::B"*)*) } + +namespace test3 { +struct A { virtual ~A(); }; +A::~A() {} +} +// CHECK-DAG: define x86_thiscallcc void @"\01??1A@test3@@UAE@XZ"( +namespace test3 { +template <typename T> +struct B : A { + virtual ~B() { } +}; +template struct B<int>; +} +// This has to be weak, and emitting weak aliases is fragile, so we don't do the +// aliasing. +// CHECK-DAG: define weak_odr x86_thiscallcc void @"\01??1?$B@H@test3@@UAE@XZ"( |
