Erich Keane | 8a410bc | 2019-10-07 17:28:03 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple i686-windows-pc -emit-llvm -o - -mconstructor-aliases -O1 -disable-llvm-passes %s | FileCheck %s |
| 2 | |
| 3 | struct Base { virtual ~Base(); }; |
| 4 | struct Derived : Base { |
| 5 | virtual ~Derived(); |
| 6 | static Derived inst; |
| 7 | }; |
| 8 | |
| 9 | Base::~Base(){} |
| 10 | Derived::~Derived(){} |
| 11 | Derived Derived::inst; |
| 12 | |
| 13 | // CHECK: @"??1Derived@@UAE@XZ" = dso_local unnamed_addr alias void (%struct.Derived*), bitcast (void (%struct.Base*)* @"??1Base@@UAE@XZ" to void (%struct.Derived*)*) |
| 14 | |
| 15 | // CHECK: define dso_local x86_thiscallcc void @"??1Base@@UAE@XZ" |
| 16 | // CHECK: define internal void @"??__E?inst@Derived@@2U1@A@@YAXXZ" |
| 17 | // CHECK: call i32 @atexit(void ()* @"??__F?inst@Derived@@2U1@A@@YAXXZ" |
| 18 | // |
| 19 | // CHECK: define internal void @"??__F?inst@Derived@@2U1@A@@YAXXZ" |
| 20 | // CHECK-NEXT: entry: |
| 21 | // CHECK-NEXT: call x86_thiscallcc void @"??1Derived@@UAE@XZ" |