Anders noticed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62472
91177308-0d34-0410-b5e6-
96231b3b80d8
// into a simple 0, unless it is the C++ keyword "true", in which case it
// turns into "1".
if (II->getPPKeywordID() != tok::pp_defined) {
- PP.Diag(PeekTok, diag::warn_pp_undef_identifier) << II;
+ if (ValueLive)
+ 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.
Result.setRange(PeekTok.getLocation());
-/* RUN: clang -E %s -DNO_ERRORS &&
+/* RUN: clang -E %s -DNO_ERRORS -Werror -Wundef &&
RUN: not clang -E %s
*/
#endif
+
+// rdar://6505352
+// -Wundef should not warn about use of undefined identifier if not live.
+#if (!defined(XXX) || XXX > 42)
+#endif
+