diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-11 19:35:06 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-11 19:35:06 +0000 |
| commit | b15683e6357b1786ac26779cf377ea6cdebb8497 (patch) | |
| tree | 5ab58e17e20f68fd0fee6e68d8bfc33612a64a99 /clang/test/CodeGenCXX/ctor-dtor-alias.cpp | |
| parent | 124e93de93f14baed40411113623f1e3b652100d (diff) | |
| download | bcm5719-llvm-b15683e6357b1786ac26779cf377ea6cdebb8497.tar.gz bcm5719-llvm-b15683e6357b1786ac26779cf377ea6cdebb8497.zip | |
Fix pr17875.
The assert this patch deletes was valid only when aliasing D2 to D1, not when
looking at a base class. Since the assert was in the path where we had already
decided to not produce an alias, just drop it.
llvm-svn: 194411
Diffstat (limited to 'clang/test/CodeGenCXX/ctor-dtor-alias.cpp')
| -rw-r--r-- | clang/test/CodeGenCXX/ctor-dtor-alias.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/ctor-dtor-alias.cpp b/clang/test/CodeGenCXX/ctor-dtor-alias.cpp index 745495ac68f..1ab66a04d0d 100644 --- a/clang/test/CodeGenCXX/ctor-dtor-alias.cpp +++ b/clang/test/CodeGenCXX/ctor-dtor-alias.cpp @@ -88,3 +88,18 @@ namespace test6 { B X; // CHECK-DAG: call i32 @__cxa_atexit({{.*}}@_ZN5test61AD2Ev } + +namespace test7 { + // Test that we don't produce an alias from ~B to ~A<int> (or crash figuring + // out if we should). + // pr17875. + // CHECK-DAG: define void @_ZN5test71BD2Ev + template <typename> struct A { + ~A() {} + }; + class B : A<int> { + ~B(); + }; + template class A<int>; + B::~B() {} +} |

