| // RUN: %clang_cc1 %s -fno-c++-static-destructors -emit-llvm -triple x86_64-apple-macosx10.13.0 -o - | FileCheck %s |
| // CHECK-NOT: __cxa_atexit{{.*}}_ZN10NonTrivialD1Ev |
| // CHECK-NOT: _tlv_atexit{{.*}}_ZN10NonTrivialD1Ev |
| thread_local NonTrivial nt2; |
| // CHECK: __cxa_atexit{{.*}}_ZN11NonTrivial2D1Ev |
| [[clang::always_destroy]] NonTrivial2 nt21; |
| // CHECK: _tlv_atexit{{.*}}_ZN11NonTrivial2D1Ev |
| [[clang::always_destroy]] thread_local NonTrivial2 nt22; |
| // CHECK: __cxa_atexit{{.*}}_ZN11NonTrivial2D1Ev |
| [[clang::always_destroy]] static NonTrivial2 nt21; |
| // CHECK: _tlv_atexit{{.*}}_ZN11NonTrivial2D1Ev |
| [[clang::always_destroy]] thread_local NonTrivial2 nt22; |
| // CHECK-NOT: __cxa_atexit{{.*}}_ZN10NonTrivialD1Ev |
| [[clang::no_destroy]] NonTrivial nt3; |
| // CHECK-NOT: _tlv_atexit{{.*}}_ZN10NonTrivialD1Ev |
| [[clang::no_destroy]] thread_local NonTrivial nt4; |