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" 22