// preprocessor keywords and it wasn't macro expanded, it turns
// into a simple 0, unless it is the C++ keyword "true", in which case it
// turns into "1".
- if (ValueLive)
+ if (ValueLive &&
+ II->getTokenID() != tok::kw_true &&
+ II->getTokenID() != tok::kw_false)
PP.Diag(PeekTok, diag::warn_pp_undef_identifier) << II;
Result.Val = II->getTokenID() == tok::kw_true;
Result.Val.setIsUnsigned(false); // "0" is signed intmax_t 0.
/* RUN: %clang_cc1 -E %s -x c++ | grep block_1
RUN: %clang_cc1 -E %s -x c++ | not grep block_2
RUN: %clang_cc1 -E %s -x c | not grep block
+ RUN: %clang_cc1 -E %s -x c++ -verify -Wundef
*/
#if true