1*59da7b8aSSerge Pavlov // RUN: %clang_cc1 -fsyntax-only %s -verify 2*59da7b8aSSerge Pavlov 3*59da7b8aSSerge Pavlov #define for 0 // expected-warning {{keyword is hidden by macro definition}} 4*59da7b8aSSerge Pavlov #define final 1 // expected-warning {{keyword is hidden by macro definition}} 5*59da7b8aSSerge Pavlov #define __HAVE_X 0 6*59da7b8aSSerge Pavlov #define _HAVE_X 0 7*59da7b8aSSerge Pavlov #define X__Y 8*59da7b8aSSerge Pavlov 9*59da7b8aSSerge Pavlov #undef __cplusplus 10*59da7b8aSSerge Pavlov #undef _HAVE_X 11*59da7b8aSSerge Pavlov #undef X__Y 12*59da7b8aSSerge Pavlov 13*59da7b8aSSerge Pavlov #pragma clang diagnostic warning "-Wreserved-id-macro" 14*59da7b8aSSerge Pavlov 15*59da7b8aSSerge Pavlov #define switch if // expected-warning {{keyword is hidden by macro definition}} 16*59da7b8aSSerge Pavlov #define final 1 // expected-warning {{keyword is hidden by macro definition}} 17*59da7b8aSSerge Pavlov #define __HAVE_X 0 // expected-warning {{macro name is a reserved identifier}} 18*59da7b8aSSerge Pavlov #define _HAVE_X 0 // expected-warning {{macro name is a reserved identifier}} 19*59da7b8aSSerge Pavlov #define X__Y // expected-warning {{macro name is a reserved identifier}} 20*59da7b8aSSerge Pavlov 21*59da7b8aSSerge Pavlov #undef __cplusplus // expected-warning {{macro name is a reserved identifier}} 22*59da7b8aSSerge Pavlov #undef _HAVE_X // expected-warning {{macro name is a reserved identifier}} 23*59da7b8aSSerge Pavlov #undef X__Y // expected-warning {{macro name is a reserved identifier}} 24*59da7b8aSSerge Pavlov 25*59da7b8aSSerge Pavlov int x; 26