[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CodeGenCXX / call-conv-thru-alias.cpp
blobcaa222e4ee8f589769ef8226abd11da8dd7bf702
1 // RUN: %clang_cc1 -no-opaque-pointers -triple i686-windows-pc -emit-llvm -o - -mconstructor-aliases -O1 -disable-llvm-passes %s | FileCheck %s
3 struct Base { virtual ~Base(); };
4 struct Derived : Base {
5 virtual ~Derived();
6 static Derived inst;
7 };
9 Base::~Base(){}
10 Derived::~Derived(){}
11 Derived Derived::inst;
13 // CHECK: @"??1Derived@@UAE@XZ" = dso_local unnamed_addr alias void (%struct.Derived*), bitcast (void (%struct.Base*)* @"??1Base@@UAE@XZ" to void (%struct.Derived*)*)
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"
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"