blob: 5bd5c7dbc5cafd1c472b2ba48af92ef2bd20feb7 [file] [log] [blame]
Erich Keane8a410bc2019-10-07 17:28:03 +00001// RUN: %clang_cc1 -triple i686-windows-pc -emit-llvm -o - -mconstructor-aliases -O1 -disable-llvm-passes %s | FileCheck %s
2
3struct Base { virtual ~Base(); };
4struct Derived : Base {
5 virtual ~Derived();
6 static Derived inst;
7};
8
9Base::~Base(){}
10Derived::~Derived(){}
11Derived 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"