brintos

brintos / llvm-project-archived public Read only

0
0
Text · 809 B · b5ac781 Raw
27 lines · cpp
1// Make sure we emit the MS ABI default ctor closure with PCH.2//3// Test this without pch.4// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -include %s -emit-llvm -o - %s | FileCheck %s5 6// Test with pch.7// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -emit-pch -o %t %s8// RUN: %clang_cc1 -fms-extensions -triple x86_64-windows-msvc -std=c++11 -include-pch %t -emit-llvm -o - %s | FileCheck %s9 10#ifndef HEADER11#define HEADER12 13struct __declspec(dllexport) Foo {14  enum E { E0 } e;15  Foo(E e = E0) : e(e) {}16};17 18// Demangles as:19// void Foo::`default constructor closure'(void)20// CHECK: define weak_odr dso_local dllexport void @"??_FFoo@@QEAAXXZ"(ptr{{.*}})21// CHECK:   call noundef ptr @"??0Foo@@QEAA@W4E@0@@Z"(ptr {{.*}}, i32 noundef 0)22 23#else24 25 26#endif27