brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · aa0e817 Raw
159 lines · cpp
1// RUN: %clang_cc1 -triple i686-windows-msvc -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-MS -check-prefix CHECK-MS-DYNAMIC2// RUN: %clang_cc1 -triple i686-windows-msvc -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-MS -check-prefix CHECK-MS-STATIC3 4// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-DYNAMIC-IA -check-prefix CHECK-DYNAMIC-NODECL-IA5// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA -check-prefix CHECK-STATIC-NODECL-IA6// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -DIMPORT_DECLARATIONS -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-DYNAMIC-IA -check-prefix CHECK-DYNAMIC-IMPORT-IA7// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -DIMPORT_DECLARATIONS -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA -check-prefix CHECK-STATIC-IMPORT-IA8// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -DEXPORT_DECLARATIONS -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-DYNAMIC-IA9// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -DEXPORT_DECLARATIONS -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA10// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -DDECL -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-DYNAMIC-IA -check-prefix CHECK-DYNAMIC-DECL-IA11// RUN: %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -DDECL -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA -check-prefix CHECK-STATIC-DECL-IA12// %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -fno-use-cxa-atexit -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-IA -check-prefix CHECK-DYNAMIC-IA -check-prefix CHECK-DYNAMIC-IA-ATEXIT13// %clang_cc1 -triple i686-windows-itanium -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -fno-use-cxa-atexit -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA -check-prefix CHECK-STATIC-IA-ATEXIT14 15// RUN: %clang_cc1 -triple i686-windows-gnu -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA16// RUN: %clang_cc1 -triple i686-windows-gnu -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA17// RUN: %clang_cc1 -triple i686-windows-cygnus -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA18// RUN: %clang_cc1 -triple i686-windows-cygnus -std=c++11 -fdeclspec -fms-compatibility -fexceptions -fcxx-exceptions -flto-visibility-public-std -emit-llvm -o - %s | FileCheck -allow-deprecated-dag-overlap %s -check-prefix CHECK-IA -check-prefix CHECK-STATIC-IA19 20#if defined(IMPORT_DECLARATIONS)21namespace __cxxabiv1 {22extern "C" {23__declspec(dllimport) void __cxa_guard_acquire(unsigned long long *);24__declspec(dllimport) unsigned char *__cxa_allocate_exception(unsigned long);25}26extern "C" __declspec(dllimport) void __cxa_guard_release(unsigned long long *);27}28namespace std {29__declspec(dllimport) __declspec(noreturn) void terminate();30}31#elif defined(EXPORT_DECLARATIONS)32namespace __cxxabiv1 {33extern "C" {34__declspec(dllexport) void __cxa_guard_acquire(unsigned long long *);35__declspec(dllexport) unsigned char *__cxa_allocate_exception(unsigned long);36}37extern "C" void __declspec(dllexport) __cxa_guard_release(unsigned long long *);38}39namespace std {40__declspec(dllexport) __declspec(noreturn) void terminate();41}42#elif defined(DECL)43namespace __cxxabiv1 {44extern "C" unsigned char *__cxa_allocate_exception(unsigned long);45}46namespace std {47__declspec(noreturn) void terminate();48}49#else50namespace std {51__declspec(noreturn) void terminate();52}53#endif54 55struct s {56  s() = default;57  s(unsigned char) { throw 0; }58  int m() const;59};60 61struct t {62  ~t();63  int m() const;64};65 66struct u {67  ~u();68};69 70s o;71thread_local t t;72u v;73__declspec(thread) s q;74 75void __declspec(noinline) f() {76  throw 0;77}78 79void g();80void __declspec(noinline) h() {81  try {82    g();83  } catch (const int &) {84    return;85  } catch (...) {86    throw;87  }88}89 90void i() {91  s r(static_cast<unsigned char>('\t'));92}93 94int j() {95  static thread_local struct t v;96  static struct t *w = new struct t;97  return w->m() ? v.m() : w->m();98}99 100void k() noexcept {101  g();102}103 104void l() {105  std::terminate();106}107 108// CHECK-MS-DAG: @_Init_thread_epoch = external thread_local global i32109// CHECK-MS-DAG: declare dso_local i32 @__tlregdtor(ptr)110// CHECK-MS-DAG: declare dso_local i32 @atexit(ptr)111// CHECK-MS-DYNAMIC-DAG: declare {{.*}} void @_CxxThrowException112// CHECK-MS-STATIC-DAG: declare {{.*}} void @_CxxThrowException113// CHECK-MS-DAG: declare dso_local noundef nonnull ptr @"??2@YAPAXI@Z"114// CHECK-MS-DAG: declare dso_local void @_Init_thread_header(ptr)115// CHECK-MS-DAG: declare dso_local void @_Init_thread_footer(ptr)116 117// CHECK-IA-DAG: @_ZTH1t = dso_local alias void (), ptr @__tls_init118// CHECK-IA-DAG: declare dso_local i32 @__gxx_personality_v0(...)119// CHECK-IA-DAG: define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0)120 121// CHECK-DYNAMIC-IA-DAG: declare dllimport i32 @__cxa_thread_atexit(ptr, ptr, ptr)122// CHECK-DYNAMIC-IA-DAG: declare dllimport i32 @__cxa_atexit(ptr, ptr, ptr)123// CHECK-DYNAMIC-IA-DECL-DAG: declare ptr @__cxa_allocate_exception(i32 noundef)124// CHECK-DYNAMIC-IA-NODECL-DAG: declare dllimport ptr @__cxa_allocate_exception(i32 noundef)125// CHECK-DYNAMIC-IA-IMPORT-DAG: declare dllimport ptr @__cxa_allocate_exception(i32 noundef)126// CHECK-DYNAMIC-IA-EXPORT-DAG: declare dllimport ptr @__cxa_allocate_exception(i32 noundef)127// CHECK-DYNAMIC-IA-DAG: declare dllimport void @__cxa_throw(ptr, ptr, ptr)128// CHECK-DYNAMIC-DECL-IA-DAG: declare dllimport i32 @__cxa_guard_acquire(ptr)129// CHECK-DYNAMIC-NODECL-IA-DAG: declare dllimport i32 @__cxa_guard_acquire(ptr)130// CHECK-DYNAMIC-IMPORT-IA-DAG: declare dllimport i32 @__cxa_guard_acquire(ptr)131// CHECK-DYNAMIC-EXPORT-IA-DAG: declare dllexport i32 @__cxa_guard_acquire(ptr)132// CHECK-IA-DAG: declare dso_local noundef nonnull ptr @_Znwj(i32 noundef)133// CHECK-DYNAMIC-DECL-IA-DAG: declare dllimport void @__cxa_guard_release(ptr)134// CHECK-DYNAMIC-NODECL-IA-DAG: declare dllimport void @__cxa_guard_release(ptr)135// CHECK-DYNAMIC-IMPORT-IA-DAG: declare dllimport void @__cxa_guard_release(ptr)136// CHECK-DYNAMIC-EXPORT-IA-DAG: declare dllimport void @__cxa_guard_release(ptr)137// CHECK-DYANMIC-IA-DAG: declare dllimport void @_ZSt9terminatev()138// CHECK-DYNAMIC-NODECL-IA-DAG: declare dso_local void @_ZSt9terminatev()139// CHECK-DYNAMIC-IMPORT-IA-DAG: declare dllimport void @_ZSt9terminatev()140// CHECK-DYNAMIC-EXPORT-IA-DAG: declare dso_local dllexport void @_ZSt9terminatev()141 142// CHECK-STATIC-IA-DAG: declare dso_local i32 @__cxa_thread_atexit(ptr, ptr, ptr)143// CHECK-STATIC-IA-DAG: declare dso_local i32 @__cxa_atexit(ptr, ptr, ptr)144// CHECK-STATIC-IA-DAG: declare dso_local ptr @__cxa_allocate_exception(i32)145// CHECK-STATIC-IA-DAG: declare dso_local void @__cxa_throw(ptr, ptr, ptr)146// CHECK-STATIC-DECL-IA-DAG: declare dso_local i32 @__cxa_guard_acquire(ptr)147// CHECK-STATIC-NODECL-IA-DAG: declare dso_local i32 @__cxa_guard_acquire(ptr)148// CHECK-STATIC-IMPORT-IA-DAG: declare dso_local i32 @__cxa_guard_acquire(ptr)149// CHECK-STATIC-EXPORT-IA-DAG: declare dso_local i32 @__cxa_guard_acquire(ptr)150// CHECK-IA-DAG: declare dso_local noundef nonnull ptr @_Znwj(i32 noundef)151// CHECK-STATIC-DECL-IA-DAG: declare dso_local void @__cxa_guard_release(ptr)152// CHECK-STATIC-NODECL-IA-DAG: declare dso_local void @__cxa_guard_release(ptr)153// CHECK-STATIC-IMPORT-IA-DAG: declare dso_local void @__cxa_guard_release(ptr)154// CHECK-STATIC-EXPORT-IA-DAG: declare dso_local void @__cxa_guard_release(ptr)155// CHECK-STATIC-IA-DAG: declare dso_local void @_ZSt9terminatev()156// CHECK-STATIC-NODECL-IA-DAG: declare dso_local void @_ZSt9terminatev()157// CHECK-STATIC-IMPORT-IA-DAG: declare dso_local void @_ZSt9terminatev()158// CHECK-STATIC-EXPORT-IA-DAG: declare dso_local dllexport void @_ZSt9terminatev()159