1// RUN: %clang_cc1 -E %s -o - | FileCheck --check-prefix=CHECK-PED-NONE %s 2// RUN: %clang_cc1 -pedantic-errors -E %s -o - | FileCheck --check-prefix=CHECK-PED-ERR %s 3 4// CHECK-PED-NONE: no_dummy_extension 5#if !__has_extension(dummy_extension) 6int no_dummy_extension(); 7#endif 8 9// Arbitrary feature to test that has_extension is a superset of has_feature 10// CHECK-PED-NONE: attribute_overloadable 11#if __has_extension(attribute_overloadable) 12int attribute_overloadable(); 13#endif 14 15// CHECK-PED-NONE: has_c_static_assert 16// CHECK-PED-ERR: no_c_static_assert 17#if __has_extension(c_static_assert) 18int has_c_static_assert(); 19#else 20int no_c_static_assert(); 21#endif 22 23// CHECK-PED-NONE: has_c_generic_selections 24// CHECK-PED-ERR: no_c_generic_selections 25#if __has_extension(c_generic_selections) 26int has_c_generic_selections(); 27#else 28int no_c_generic_selections(); 29#endif 30 31// CHECK-PED-NONE: has_c_alignas 32// CHECK-PED-ERR: no_c_alignas 33#if __has_extension(c_alignas) 34int has_c_alignas(); 35#else 36int no_c_alignas(); 37#endif 38 39// Arbitrary feature to test that the extension name can be surrounded with 40// double underscores. 41// CHECK-PED-NONE: has_double_underscores 42#if __has_extension(__c_alignas__) 43int has_double_underscores(); 44#endif 45