| // RUN: %clang_cc1 %s -verify -Wconversion |
| |
| #define P(X) _Pragma(#X) |
| #define V(X) X |
| |
| #define X \ |
| P(clang diagnostic push) \ |
| P(clang diagnostic ignored "-Wconversion") \ |
| ) = 1.2; \ |
| P(clang diagnostic pop) |
| |
| void f() { |
| int a = 1.2; // expected-warning {{changes value}} |
| |
| // Note, we intentionally enter a tentatively-parsed context here to trigger |
| // regular use of lookahead. This would go wrong if _Pragma checking in macro |
| // argument pre-expansion also tries to use token lookahead. |
| int (b |
| V(X) |
| |
| int c = 1.2; // expected-warning {{changes value}} |
| } |