Lines Matching refs:MI

171   MacroInfo *MI = nullptr;
178 MI = DMD->getInfo();
194 if (MI && NewMI != MI &&
195 !MI->isIdenticalTo(*NewMI, *this, /*Syntactically=*/true))
199 MI = NewMI;
261 if (auto *MI = MM->getMacroInfo()) {
263 MI->dump();
276 MacroInfo *MI = PP.AllocateMacroInfo(SourceLocation());
277 MI->setIsBuiltinMacro();
278 PP.appendDefMacroDirective(Id, MI);
340 /// isTrivialSingleTokenExpansion - Return true if MI, which has a single token
342 static bool isTrivialSingleTokenExpansion(const MacroInfo *MI,
345 IdentifierInfo *II = MI->getReplacementToken(0).getIdentifierInfo();
365 if (MI->isObjectLike()) return true;
369 return std::find(MI->arg_begin(), MI->arg_end(), II) == MI->arg_end();
421 MacroInfo *MI = M.getMacroInfo();
429 if (MI->isBuiltinMacro()) {
447 if (MI->isFunctionLike()) {
452 Args = ReadFunctionLikeMacroArgs(Identifier, MI, ExpansionEnd);
466 markMacroAsUsed(MI);
498 Diag(MI->getDefinitionLoc(), diag::note_pp_ambiguous_macro_chosen)
501 if (OtherMI != MI)
511 if (MI->getNumTokens() == 0) {
521 } else if (MI->getNumTokens() == 1 &&
522 isTrivialSingleTokenExpansion(MI, Identifier.getIdentifierInfo(),
537 Identifier = MI->getReplacementToken(0);
554 if (!NewMI->isEnabled() || NewMI == MI) {
558 if (NewMI != MI || MI->isFunctionLike())
570 EnterMacro(Identifier, ExpansionEnd, MI, Args);
707 MacroInfo *MI,
710 unsigned NumFixedArgsLeft = MI->getNumArgs();
711 bool isVariadic = MI->isVariadic();
752 Diag(MI->getDefinitionLoc(), diag::note_macro_here)
795 if (MacroInfo *MI = getMacroInfo(Tok.getIdentifierInfo()))
796 if (!MI->isEnabled())
802 MI, NumActuals);
846 unsigned MinArgsExpected = MI->getNumArgs();
855 Diag(MI->getDefinitionLoc(), diag::note_macro_here)
911 isVarargsElided = MI->isVariadic();
912 } else if (MI->isVariadic() &&
921 if (!MI->hasCommaPasting()) {
923 Diag(MI->getDefinitionLoc(), diag::note_macro_here)
937 Diag(MI->getDefinitionLoc(), diag::note_macro_here)
954 } else if (NumActuals > MinArgsExpected && !MI->isVariadic() &&
959 Diag(MI->getDefinitionLoc(), diag::note_macro_here)
964 return MacroArgs::create(MI, ArgTokens, isVarargsElided, *this);
1790 void Preprocessor::markMacroAsUsed(MacroInfo *MI) {
1793 if (MI->isWarnIfUnused() && !MI->isUsed())
1794 WarnUnusedMacroLocs.erase(MI->getDefinitionLoc());
1795 MI->setIsUsed(true);