| // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -Wreserved-attribute-identifier -fsyntax-only -verify %s -DTEST1 |
| // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -Wreserved-attribute-identifier -fsyntax-only -verify %s -DTEST2 |
| // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -Wreserved-attribute-identifier -fsyntax-only -verify %s -DTEST3 |
| // RUN: %clang_cc1 -triple x86_64-linux-gnu -std=c++11 -Wreserved-attribute-identifier -fsyntax-only -verify %s -DTEST4 |
| |
| #ifdef TEST1 |
| |
| #define assume |
| #undef assume |
| |
| #define noreturn // expected-warning {{noreturn is a reserved attribute identifier}} |
| #undef noreturn // expected-warning {{noreturn is a reserved attribute identifier}} |
| |
| #define carries_dependency // expected-warning {{carries_dependency is a reserved attribute identifier}} |
| #undef carries_dependency // expected-warning {{carries_dependency is a reserved attribute identifier}} |
| |
| #define deprecated // expected-warning {{deprecated is a reserved attribute identifier}} |
| #undef deprecated // expected-warning {{deprecated is a reserved attribute identifier}} |
| |
| #define fallthrough // expected-warning {{fallthrough is a reserved attribute identifier}} |
| #undef fallthrough // expected-warning {{fallthrough is a reserved attribute identifier}} |
| |
| #define likely // expected-warning {{likely is a reserved attribute identifier}} |
| #undef likely // expected-warning {{likely is a reserved attribute identifier}} |
| |
| #define no_unique_address // expected-warning {{no_unique_address is a reserved attribute identifier}} |
| #undef no_unique_address // expected-warning {{no_unique_address is a reserved attribute identifier}} |
| |
| #define unlikely // expected-warning {{unlikely is a reserved attribute identifier}} |
| #undef unlikely // expected-warning {{unlikely is a reserved attribute identifier}} |
| |
| #define maybe_unused // expected-warning {{maybe_unused is a reserved attribute identifier}} |
| #undef maybe_unused // expected-warning {{maybe_unused is a reserved attribute identifier}} |
| |
| #define nodiscard // expected-warning {{nodiscard is a reserved attribute identifier}} |
| #undef nodiscard // expected-warning {{nodiscard is a reserved attribute identifier}} |
| |
| #elif TEST2 |
| |
| #define assume "test" |
| #undef assume |
| |
| #define noreturn "test" // expected-warning {{noreturn is a reserved attribute identifier}} |
| #undef noreturn // expected-warning {{noreturn is a reserved attribute identifier}} |
| |
| #define carries_dependency "test" // expected-warning {{carries_dependency is a reserved attribute identifier}} |
| #undef carries_dependency // expected-warning {{carries_dependency is a reserved attribute identifier}} |
| |
| #define deprecated "test" // expected-warning {{deprecated is a reserved attribute identifier}} |
| #undef deprecated // expected-warning {{deprecated is a reserved attribute identifier}} |
| |
| #define fallthrough "test" // expected-warning {{fallthrough is a reserved attribute identifier}} |
| #undef fallthrough // expected-warning {{fallthrough is a reserved attribute identifier}} |
| |
| #define likely "test" // expected-warning {{likely is a reserved attribute identifier}} |
| #undef likely // expected-warning {{likely is a reserved attribute identifier}} |
| |
| #define no_unique_address "test" // expected-warning {{no_unique_address is a reserved attribute identifier}} |
| #undef no_unique_address // expected-warning {{no_unique_address is a reserved attribute identifier}} |
| |
| #define unlikely "test" // expected-warning {{unlikely is a reserved attribute identifier}} |
| #undef unlikely // expected-warning {{unlikely is a reserved attribute identifier}} |
| |
| #define maybe_unused "test" // expected-warning {{maybe_unused is a reserved attribute identifier}} |
| #undef maybe_unused // expected-warning {{maybe_unused is a reserved attribute identifier}} |
| |
| #define nodiscard "test" // expected-warning {{nodiscard is a reserved attribute identifier}} |
| #undef nodiscard // expected-warning {{nodiscard is a reserved attribute identifier}} |
| |
| #elif TEST3 |
| |
| #define assume() "test" // expected-warning {{assume is a reserved attribute identifier}} |
| #define deprecated() "test" // expected-warning {{deprecated is a reserved attribute identifier}} |
| #define nodiscard() "test" // expected-warning {{nodiscard is a reserved attribute identifier}} |
| #define noreturn() "test" |
| #define carries_dependency() "test" |
| #define fallthrough() "test" |
| #define likely() "test" |
| #define no_unique_address() "test" |
| #define unlikely() "test" |
| #define maybe_unused() "test" |
| |
| #elif TEST4 |
| |
| #define assume() // expected-warning {{assume is a reserved attribute identifier}} |
| #define deprecated() // expected-warning {{deprecated is a reserved attribute identifier}} |
| #define nodiscard() // expected-warning {{nodiscard is a reserved attribute identifier}} |
| #define noreturn() |
| #define carries_dependency() |
| #define fallthrough() |
| #define likely() |
| #define no_unique_address() |
| #define unlikely() |
| #define maybe_unused() |
| |
| #else |
| |
| #error Unknown test |
| |
| #endif |