Lines Matching defs:SM
54 const SourceManager &SM,
65 if (SM.isInSystemHeader(Range.getBegin()) ||
66 SM.isInSystemHeader(Range.getEnd()))
71 std::pair<FileID, unsigned> BeginInfo = SM.getDecomposedLoc(Range.getBegin());
72 std::pair<FileID, unsigned> EndInfo = SM.getDecomposedLoc(Range.getEnd());
85 const SourceManager &SM) {
86 return validateRange(Range, SM, /*AllowSystemHeaders=*/false);
90 const SourceManager &SM) {
92 const auto &Expansion = SM.getSLocEntry(SM.getFileID(Loc)).getExpansion();
108 getExpansionForSplitToken(SourceLocation Loc, const SourceManager &SM,
112 auto &SLoc = SM.getSLocEntry(SM.getFileID(Loc), &Invalid);
129 const SourceManager &SM,
132 auto BeginToken = getExpansionForSplitToken(Range.getBegin(), SM, LangOpts);
133 auto EndToken = getExpansionForSplitToken(Range.getEnd(), SM, LangOpts);
153 const SourceManager &SM,
158 Range = Lexer::makeFileCharRange(EditRange, SM, LangOpts);
160 auto AdjustedRange = getRangeForSplitTokens(EditRange, SM, LangOpts);
161 if (spelledInMacroDefinition(AdjustedRange.getBegin(), SM) ||
162 spelledInMacroDefinition(AdjustedRange.getEnd(), SM))
165 auto B = SM.getSpellingLoc(AdjustedRange.getBegin());
166 auto E = SM.getSpellingLoc(AdjustedRange.getEnd());
168 E = Lexer::getLocForEndOfToken(E, 0, SM, LangOpts);
175 const CharSourceRange &EditRange, const SourceManager &SM,
178 getRange(EditRange, SM, LangOpts, IncludeMacroExpansion);
179 bool IsInvalid = llvm::errorToBool(validateEditRange(Range, SM));
186 const CharSourceRange &EditRange, const SourceManager &SM,
189 getRange(EditRange, SM, LangOpts, IncludeMacroExpansion);
191 llvm::errorToBool(validateRange(Range, SM, /*AllowSystemHeaders=*/true));
197 static bool startsWithNewline(const SourceManager &SM, const Token &Tok) {
198 return isVerticalWhitespace(SM.getCharacterData(Tok.getLocation())[0]);
215 getEntityEndLoc(const SourceManager &SM, SourceLocation EntityLast,
225 CharSourceRange ExpansionRange = SM.getExpansionRange(EntityLast);
230 auto FileOffset = SM.getDecomposedLoc(ExpansionRange.getEnd());
231 llvm::StringRef File = SM.getBufferData(FileOffset.first, &Invalid);
234 SM.getLocForStartOfFile(FileOffset.first), LangOpts, File.begin(),
295 if (startsWithNewline(SM, Tok))
313 if (startsWithNewline(SM, Tok))
360 static SourceLocation skipWhitespaceAndNewline(const SourceManager &SM,
363 const char *LocChars = SM.getCharacterData(Loc);
376 static bool atOrBeforeSeparation(const SourceManager &SM, SourceLocation Loc,
384 SM.getCharacterData(Loc.getLocWithOffset(-1), &Invalid);
395 bool Failed = Lexer::getRawToken(Loc, Tok, SM, LangOpts,
414 const SourceManager &SM = Context.getSourceManager();
421 if (SM.isBeforeInTranslationUnit(T->getBeginLoc(), Range.getBegin()))
425 if (SM.isBeforeInTranslationUnit(T->getBeginLoc(), Range.getBegin()))
432 getEntityEndLoc(SM, Decl.getEndLoc(), getTerminators(Decl), LangOpts));
446 if (SM.isBeforeInTranslationUnit(Comment->getBeginLoc(),
449 SM, skipWhitespaceAndNewline(SM, Comment->getEndLoc(), LangOpts),
451 atOrBeforeSeparation(SM, Range.getEnd(), LangOpts)) {
452 const StringRef CommentText = Comment->getRawText(SM);
460 !SM.isBeforeInTranslationUnit(Attr->getLocation(), Range.getBegin()))
468 SM.getBufferData(SM.getFileID(Range.getBegin()), &Invalid);
472 Source.substr(0, SM.getFileOffset(Range.getBegin()));
493 return Lexer::makeFileCharRange(Range, SM, LangOpts);