| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // RUN: %clang_cc1 -triple i386-unknown-unknown -fms-compatibility -std=c++11 -E %s -o - | FileCheck %s
- // CHECK: has_cxx11_carries_dep
- #if __has_cpp_attribute(carries_dependency)
- int has_cxx11_carries_dep();
- #endif
- // CHECK: has_clang_fallthrough_1
- #if __has_cpp_attribute(clang::fallthrough)
- int has_clang_fallthrough_1();
- #endif
- // CHECK: does_not_have_selectany
- #if !__has_cpp_attribute(selectany)
- int does_not_have_selectany();
- #endif
- // The attribute name can be bracketed with double underscores.
- // CHECK: has_clang_fallthrough_2
- #if __has_cpp_attribute(clang::__fallthrough__)
- int has_clang_fallthrough_2();
- #endif
- // The scope cannot be bracketed with double underscores.
- // CHECK: does_not_have___clang___fallthrough
- #if !__has_cpp_attribute(__clang__::fallthrough)
- int does_not_have___clang___fallthrough();
- #endif
- // Test that C++11, target-specific attributes behave properly.
- // CHECK: does_not_have_mips16
- #if !__has_cpp_attribute(gnu::mips16)
- int does_not_have_mips16();
- #endif
- // Test that the version numbers of attributes listed in SD-6 are supported
- // correctly.
- // CHECK: has_cxx11_carries_dep_vers
- #if __has_cpp_attribute(carries_dependency) == 200809
- int has_cxx11_carries_dep_vers();
- #endif
- // CHECK: has_cxx11_noreturn_vers
- #if __has_cpp_attribute(noreturn) == 200809
- int has_cxx11_noreturn_vers();
- #endif
- // CHECK: has_cxx14_deprecated_vers
- #if __has_cpp_attribute(deprecated) == 201309
- int has_cxx14_deprecated_vers();
- #endif
- // CHECK: has_declspec_uuid
- #if __has_declspec_attribute(uuid)
- int has_declspec_uuid();
- #endif
- // CHECK: has_declspec_uuid2
- #if __has_declspec_attribute(__uuid__)
- int has_declspec_uuid2();
- #endif
- // CHECK: does_not_have_declspec_fallthrough
- #if !__has_declspec_attribute(fallthrough)
- int does_not_have_declspec_fallthrough();
- #endif
|