159da7b8aSSerge Pavlov // RUN: %clang_cc1 -fsyntax-only %s -verify
259da7b8aSSerge Pavlov 
3*92c14bb2SNico Weber #pragma clang diagnostic warning "-Wkeyword-macro"
4*92c14bb2SNico Weber 
559da7b8aSSerge Pavlov #define for 0    // expected-warning {{keyword is hidden by macro definition}}
659da7b8aSSerge Pavlov #define final 1  // expected-warning {{keyword is hidden by macro definition}}
759da7b8aSSerge Pavlov #define __HAVE_X 0
859da7b8aSSerge Pavlov #define _HAVE_X 0
959da7b8aSSerge Pavlov #define X__Y
1059da7b8aSSerge Pavlov 
1159da7b8aSSerge Pavlov #undef __cplusplus
1259da7b8aSSerge Pavlov #undef _HAVE_X
1359da7b8aSSerge Pavlov #undef X__Y
1459da7b8aSSerge Pavlov 
1559da7b8aSSerge Pavlov #define switch if  // expected-warning {{keyword is hidden by macro definition}}
1659da7b8aSSerge Pavlov #define final 1    // expected-warning {{keyword is hidden by macro definition}}
17*92c14bb2SNico Weber #define __HAVE_X 0
18*92c14bb2SNico Weber #define _HAVE_X 0
19*92c14bb2SNico Weber #define X__Y
2059da7b8aSSerge Pavlov 
21*92c14bb2SNico Weber #undef __cplusplus
22*92c14bb2SNico Weber #undef _HAVE_X
23*92c14bb2SNico Weber #undef X__Y
2459da7b8aSSerge Pavlov 
2559da7b8aSSerge Pavlov int x;
26