Lines Matching refs:PP
65 Preprocessor &PP);
89 bool ValueLive, Preprocessor &PP) { in EvaluateDefined() argument
94 PP.LexUnexpandedNonComment(PeekTok); in EvaluateDefined()
101 PP.LexUnexpandedNonComment(PeekTok); in EvaluateDefined()
105 if (PP.getCodeCompletionHandler()) in EvaluateDefined()
106 PP.getCodeCompletionHandler()->CodeCompleteMacroName(false); in EvaluateDefined()
107 PP.setCodeCompletionReached(); in EvaluateDefined()
108 PP.LexUnexpandedNonComment(PeekTok); in EvaluateDefined()
112 if (PP.CheckMacroName(PeekTok, MU_Other)) in EvaluateDefined()
117 MacroDefinition Macro = PP.getMacroDefinition(II); in EvaluateDefined()
123 PP.markMacroAsUsed(Macro.getMacroInfo()); in EvaluateDefined()
132 PP.LexUnexpandedNonComment(PeekTok); in EvaluateDefined()
135 PP.Diag(PeekTok.getLocation(), diag::err_pp_expected_after) in EvaluateDefined()
137 PP.Diag(LParenLoc, diag::note_matching) << tok::l_paren; in EvaluateDefined()
142 PP.LexNonComment(PeekTok); in EvaluateDefined()
146 PP.LexNonComment(PeekTok); in EvaluateDefined()
169 PP.getSourceManager() in EvaluateDefined()
170 .getSLocEntry(PP.getSourceManager().getFileID(beginLoc)) in EvaluateDefined()
189 PP.Diag(beginLoc, diag::warn_defined_in_function_type_macro); in EvaluateDefined()
191 PP.Diag(beginLoc, diag::warn_defined_in_object_type_macro); in EvaluateDefined()
195 if (PPCallbacks *Callbacks = PP.getPPCallbacks()) { in EvaluateDefined()
215 bool ValueLive, Preprocessor &PP) { in EvaluateValue() argument
221 if (PP.getCodeCompletionHandler()) in EvaluateValue()
222 PP.getCodeCompletionHandler()->CodeCompletePreprocessorExpression(); in EvaluateValue()
223 PP.setCodeCompletionReached(); in EvaluateValue()
224 PP.LexNonComment(PeekTok); in EvaluateValue()
233 return EvaluateDefined(Result, PeekTok, DT, ValueLive, PP); in EvaluateValue()
242 PP.Diag(PeekTok, diag::warn_pp_undef_identifier) << II; in EvaluateValue()
247 PP.LexNonComment(PeekTok); in EvaluateValue()
253 PP.Diag(PeekTok, diag::err_pp_expr_bad_token_start_expr); in EvaluateValue()
258 PP.Diag(PeekTok, diag::err_pp_expected_value_in_expr); in EvaluateValue()
263 StringRef Spelling = PP.getSpelling(PeekTok, IntegerBuffer, in EvaluateValue()
268 NumericLiteralParser Literal(Spelling, PeekTok.getLocation(), PP); in EvaluateValue()
273 PP.Diag(PeekTok, diag::err_pp_illegal_floating_literal); in EvaluateValue()
280 PP.Diag(PeekTok, diag::err_pp_invalid_udl) << /*integer*/1; in EvaluateValue()
283 if (!PP.getLangOpts().C99 && Literal.isLongLong) { in EvaluateValue()
284 if (PP.getLangOpts().CPlusPlus) in EvaluateValue()
285 PP.Diag(PeekTok, in EvaluateValue()
286 PP.getLangOpts().CPlusPlus11 ? in EvaluateValue()
289 PP.Diag(PeekTok, diag::ext_c99_longlong); in EvaluateValue()
296 PP.Diag(PeekTok, diag::err_integer_literal_too_large) in EvaluateValue()
312 PP.Diag(PeekTok, diag::ext_integer_literal_too_large_for_signed); in EvaluateValue()
319 PP.LexNonComment(PeekTok); in EvaluateValue()
329 PP.Diag(PeekTok, diag::err_pp_invalid_udl) << /*character*/0; in EvaluateValue()
333 StringRef ThisTok = PP.getSpelling(PeekTok, CharBuffer, &CharInvalid); in EvaluateValue()
338 PeekTok.getLocation(), PP, PeekTok.getKind()); in EvaluateValue()
343 const TargetInfo &TI = PP.getTargetInfo(); in EvaluateValue()
364 Val.setIsUnsigned(!PP.getLangOpts().CharIsSigned); in EvaluateValue()
376 PP.LexNonComment(PeekTok); in EvaluateValue()
381 PP.LexNonComment(PeekTok); // Eat the (. in EvaluateValue()
384 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
392 if (EvaluateDirectiveSubExpr(Result, 1, PeekTok, ValueLive, PP)) in EvaluateValue()
396 PP.Diag(PeekTok.getLocation(), diag::err_pp_expected_rparen) in EvaluateValue()
398 PP.Diag(Start, diag::note_matching) << tok::l_paren; in EvaluateValue()
405 PP.LexNonComment(PeekTok); // Eat the ). in EvaluateValue()
411 PP.LexNonComment(PeekTok); in EvaluateValue()
412 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
419 PP.LexNonComment(PeekTok); in EvaluateValue()
420 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
432 PP.Diag(Loc, diag::warn_pp_expr_overflow) << Result.getRange(); in EvaluateValue()
440 PP.LexNonComment(PeekTok); in EvaluateValue()
441 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
453 PP.LexNonComment(PeekTok); in EvaluateValue()
454 if (EvaluateValue(Result, PeekTok, DT, ValueLive, PP)) return true; in EvaluateValue()
508 static void diagnoseUnexpectedOperator(Preprocessor &PP, PPValue &LHS, in diagnoseUnexpectedOperator() argument
511 PP.Diag(LHS.getRange().getBegin(), diag::err_pp_expr_bad_token_lparen) in diagnoseUnexpectedOperator()
514 PP.Diag(Tok.getLocation(), diag::err_pp_expr_bad_token_binop) in diagnoseUnexpectedOperator()
526 Preprocessor &PP) { in EvaluateDirectiveSubExpr() argument
530 diagnoseUnexpectedOperator(PP, LHS, PeekTok); in EvaluateDirectiveSubExpr()
559 PP.LexNonComment(PeekTok); in EvaluateDirectiveSubExpr()
564 if (EvaluateValue(RHS, PeekTok, DT, RHSIsLive, PP)) return true; in EvaluateDirectiveSubExpr()
573 diagnoseUnexpectedOperator(PP, RHS, PeekTok); in EvaluateDirectiveSubExpr()
595 if (EvaluateDirectiveSubExpr(RHS, RHSPrec, PeekTok, RHSIsLive, PP)) in EvaluateDirectiveSubExpr()
618 PP.Diag(OpLoc, diag::warn_pp_convert_to_positive) << 0 in EvaluateDirectiveSubExpr()
623 PP.Diag(OpLoc, diag::warn_pp_convert_to_positive) << 1 in EvaluateDirectiveSubExpr()
639 PP.Diag(OpLoc, diag::err_pp_remainder_by_zero) in EvaluateDirectiveSubExpr()
651 PP.Diag(OpLoc, diag::err_pp_division_by_zero) in EvaluateDirectiveSubExpr()
737 if (!PP.getLangOpts().C99 || ValueLive) in EvaluateDirectiveSubExpr()
738 PP.Diag(OpLoc, diag::ext_pp_comma_expr) in EvaluateDirectiveSubExpr()
745 PP.Diag(PeekTok.getLocation(), diag::err_expected) in EvaluateDirectiveSubExpr()
747 PP.Diag(OpLoc, diag::note_matching) << tok::question; in EvaluateDirectiveSubExpr()
751 PP.LexNonComment(PeekTok); in EvaluateDirectiveSubExpr()
757 if (EvaluateValue(AfterColonVal, PeekTok, DT, AfterColonLive, PP)) in EvaluateDirectiveSubExpr()
763 PeekTok, AfterColonLive, PP)) in EvaluateDirectiveSubExpr()
780 PP.Diag(OpLoc, diag::err_pp_colon_without_question) in EvaluateDirectiveSubExpr()
787 PP.Diag(OpLoc, diag::warn_pp_expr_overflow) in EvaluateDirectiveSubExpr()