diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2016-10-01 16:38:28 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-10-01 16:38:28 +0000 |
commit | 99d1b295031ea4e74630914c14f94d919aa8e8dc (patch) | |
tree | c7e01596b00004583d6c1df4d7097e7f5fb205b2 | |
parent | 8b021c382d3e4afdf310ab8bbddd8012c7c9dc93 (diff) | |
download | llvm-99d1b295031ea4e74630914c14f94d919aa8e8dc.zip llvm-99d1b295031ea4e74630914c14f94d919aa8e8dc.tar.gz llvm-99d1b295031ea4e74630914c14f94d919aa8e8dc.tar.bz2 |
Use StringRef for MemoryBuffer identifier API (NFC)
llvm-svn: 283043
-rw-r--r-- | clang/include/clang/Basic/SourceManager.h | 2 | ||||
-rw-r--r-- | clang/include/clang/Lex/DirectoryLookup.h | 2 | ||||
-rw-r--r-- | clang/include/clang/Lex/HeaderMap.h | 2 | ||||
-rw-r--r-- | clang/include/clang/Rewrite/Core/HTMLRewrite.h | 4 | ||||
-rw-r--r-- | clang/lib/Basic/SourceManager.cpp | 24 | ||||
-rw-r--r-- | clang/lib/CodeGen/CoverageMappingGen.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Frontend/InitHeaderSearch.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Frontend/Rewrite/HTMLPrint.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Frontend/Rewrite/InclusionRewriter.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Lex/HeaderMap.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Lex/HeaderSearch.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Lex/PPDirectives.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Rewrite/HTMLRewrite.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Serialization/ASTWriter.cpp | 7 | ||||
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h | 2 | ||||
-rw-r--r-- | llvm/include/llvm/Support/MemoryBuffer.h | 4 | ||||
-rw-r--r-- | llvm/lib/Support/MemoryBuffer.cpp | 10 | ||||
-rw-r--r-- | llvm/lib/Support/SourceMgr.cpp | 2 | ||||
-rw-r--r-- | llvm/utils/TableGen/CTagsEmitter.cpp | 2 |
19 files changed, 42 insertions, 45 deletions
diff --git a/clang/include/clang/Basic/SourceManager.h b/clang/include/clang/Basic/SourceManager.h index 6610c56..45187e5 100644 --- a/clang/include/clang/Basic/SourceManager.h +++ b/clang/include/clang/Basic/SourceManager.h @@ -1291,7 +1291,7 @@ public: /// /// Note that this name does not respect \#line directives. Use /// getPresumedLoc for normal clients. - const char *getBufferName(SourceLocation Loc, bool *Invalid = nullptr) const; + StringRef getBufferName(SourceLocation Loc, bool *Invalid = nullptr) const; /// \brief Return the file characteristic of the specified source /// location, indicating whether this is a normal file, a system diff --git a/clang/include/clang/Lex/DirectoryLookup.h b/clang/include/clang/Lex/DirectoryLookup.h index ee0af29..dcd58f4 100644 --- a/clang/include/clang/Lex/DirectoryLookup.h +++ b/clang/include/clang/Lex/DirectoryLookup.h @@ -88,7 +88,7 @@ public: /// getName - Return the directory or filename corresponding to this lookup /// object. - const char *getName() const; + StringRef getName() const; /// getDir - Return the directory that this entry refers to. /// diff --git a/clang/include/clang/Lex/HeaderMap.h b/clang/include/clang/Lex/HeaderMap.h index 8466f1a..58bf795 100644 --- a/clang/include/clang/Lex/HeaderMap.h +++ b/clang/include/clang/Lex/HeaderMap.h @@ -45,7 +45,7 @@ public: SmallVectorImpl<char> &DestPath) const; /// Return the filename of the headermap. - const char *getFileName() const; + StringRef getFileName() const; /// Print the contents of this headermap to stderr. void dump() const; diff --git a/clang/include/clang/Rewrite/Core/HTMLRewrite.h b/clang/include/clang/Rewrite/Core/HTMLRewrite.h index dafdf51..1fd7c7a 100644 --- a/clang/include/clang/Rewrite/Core/HTMLRewrite.h +++ b/clang/include/clang/Rewrite/Core/HTMLRewrite.h @@ -62,8 +62,8 @@ namespace html { void AddLineNumbers(Rewriter& R, FileID FID); - void AddHeaderFooterInternalBuiltinCSS(Rewriter& R, FileID FID, - const char *title = nullptr); + void AddHeaderFooterInternalBuiltinCSS(Rewriter &R, FileID FID, + StringRef title); /// SyntaxHighlight - Relex the specified FileID and annotate the HTML with /// information about keywords, comments, etc. diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 605f990..5dcb881 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -1437,8 +1437,8 @@ SourceManager::getFileCharacteristic(SourceLocation Loc) const { /// Return the filename or buffer identifier of the buffer the location is in. /// Note that this name does not respect \#line directives. Use getPresumedLoc /// for normal clients. -const char *SourceManager::getBufferName(SourceLocation Loc, - bool *Invalid) const { +StringRef SourceManager::getBufferName(SourceLocation Loc, + bool *Invalid) const { if (isInvalid(Loc, Invalid)) return "<invalid loc>"; return getBuffer(getFileID(Loc), Invalid)->getBufferIdentifier(); @@ -1470,7 +1470,7 @@ PresumedLoc SourceManager::getPresumedLoc(SourceLocation Loc, // To get the source name, first consult the FileEntry (if one exists) // before the MemBuffer as this will avoid unnecessarily paging in the // MemBuffer. - const char *Filename; + StringRef Filename; if (C->OrigEntry) Filename = C->OrigEntry->getName(); else @@ -1513,7 +1513,7 @@ PresumedLoc SourceManager::getPresumedLoc(SourceLocation Loc, } } - return PresumedLoc(Filename, LineNo, ColNo, IncludeLoc); + return PresumedLoc(Filename.data(), LineNo, ColNo, IncludeLoc); } /// \brief Returns whether the PresumedLoc for a given SourceLocation is @@ -2095,10 +2095,10 @@ bool SourceManager::isBeforeInTranslationUnit(SourceLocation LHS, // Clear the lookup cache, it depends on a common location. IsBeforeInTUCache.clear(); - const char *LB = getBuffer(LOffs.first)->getBufferIdentifier(); - const char *RB = getBuffer(ROffs.first)->getBufferIdentifier(); - bool LIsBuiltins = strcmp("<built-in>", LB) == 0; - bool RIsBuiltins = strcmp("<built-in>", RB) == 0; + StringRef LB = getBuffer(LOffs.first)->getBufferIdentifier(); + StringRef RB = getBuffer(ROffs.first)->getBufferIdentifier(); + bool LIsBuiltins = LB == "<built-in>"; + bool RIsBuiltins = RB == "<built-in>"; // Sort built-in before non-built-in. if (LIsBuiltins || RIsBuiltins) { if (LIsBuiltins != RIsBuiltins) @@ -2107,8 +2107,8 @@ bool SourceManager::isBeforeInTranslationUnit(SourceLocation LHS, // lower IDs come first. return LOffs.first < ROffs.first; } - bool LIsAsm = strcmp("<inline asm>", LB) == 0; - bool RIsAsm = strcmp("<inline asm>", RB) == 0; + bool LIsAsm = LB == "<inline asm>"; + bool RIsAsm = RB == "<inline asm>"; // Sort assembler after built-ins, but before the rest. if (LIsAsm || RIsAsm) { if (LIsAsm != RIsAsm) @@ -2116,8 +2116,8 @@ bool SourceManager::isBeforeInTranslationUnit(SourceLocation LHS, assert(LOffs.first == ROffs.first); return false; } - bool LIsScratch = strcmp("<scratch space>", LB) == 0; - bool RIsScratch = strcmp("<scratch space>", RB) == 0; + bool LIsScratch = LB == "<scratch space>"; + bool RIsScratch = RB == "<scratch space>"; // Sort scratch after inline asm, but before the rest. if (LIsScratch || RIsScratch) { if (LIsScratch != RIsScratch) diff --git a/clang/lib/CodeGen/CoverageMappingGen.cpp b/clang/lib/CodeGen/CoverageMappingGen.cpp index 0e51658..35d1b1d 100644 --- a/clang/lib/CodeGen/CoverageMappingGen.cpp +++ b/clang/lib/CodeGen/CoverageMappingGen.cpp @@ -136,7 +136,7 @@ public: /// \brief Return true if \c Loc is a location in a built-in macro. bool isInBuiltin(SourceLocation Loc) { - return strcmp(SM.getBufferName(SM.getSpellingLoc(Loc)), "<built-in>") == 0; + return SM.getBufferName(SM.getSpellingLoc(Loc)) == "<built-in>"; } /// \brief Check whether \c Loc is included or expanded from \c Parent. diff --git a/clang/lib/Frontend/InitHeaderSearch.cpp b/clang/lib/Frontend/InitHeaderSearch.cpp index 24edb96..c76ccea 100644 --- a/clang/lib/Frontend/InitHeaderSearch.cpp +++ b/clang/lib/Frontend/InitHeaderSearch.cpp @@ -625,7 +625,7 @@ void InitHeaderSearch::Realize(const LangOptions &Lang) { for (unsigned i = 0, e = SearchList.size(); i != e; ++i) { if (i == NumQuoted) llvm::errs() << "#include <...> search starts here:\n"; - const char *Name = SearchList[i].getName(); + StringRef Name = SearchList[i].getName(); const char *Suffix; if (SearchList[i].isNormalDir()) Suffix = ""; diff --git a/clang/lib/Frontend/Rewrite/HTMLPrint.cpp b/clang/lib/Frontend/Rewrite/HTMLPrint.cpp index 15af644..11e431d 100644 --- a/clang/lib/Frontend/Rewrite/HTMLPrint.cpp +++ b/clang/lib/Frontend/Rewrite/HTMLPrint.cpp @@ -64,7 +64,7 @@ void HTMLPrinter::HandleTranslationUnit(ASTContext &Ctx) { // Format the file. FileID FID = R.getSourceMgr().getMainFileID(); const FileEntry* Entry = R.getSourceMgr().getFileEntryForID(FID); - const char* Name; + StringRef Name; // In some cases, in particular the case where the input is from stdin, // there is no entry. Fall back to the memory buffer for a name in those // cases. diff --git a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp index b761c34..d953da2 100644 --- a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp +++ b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp @@ -68,7 +68,7 @@ private: CharSourceRange FilenameRange, const FileEntry *File, StringRef SearchPath, StringRef RelativePath, const Module *Imported) override; - void WriteLineInfo(const char *Filename, int Line, + void WriteLineInfo(StringRef Filename, int Line, SrcMgr::CharacteristicKind FileType, StringRef Extra = StringRef()); void WriteImplicitModuleImport(const Module *Mod); @@ -102,7 +102,7 @@ InclusionRewriter::InclusionRewriter(Preprocessor &PP, raw_ostream &OS, /// markers depending on what mode we're in, including the \p Filename and /// \p Line we are located at, using the specified \p EOL line separator, and /// any \p Extra context specifiers in GNU line directives. -void InclusionRewriter::WriteLineInfo(const char *Filename, int Line, +void InclusionRewriter::WriteLineInfo(StringRef Filename, int Line, SrcMgr::CharacteristicKind FileType, StringRef Extra) { if (!ShowLineMarkers) @@ -406,7 +406,7 @@ bool InclusionRewriter::Process(FileID FileId, bool Invalid; const MemoryBuffer &FromFile = *SM.getBuffer(FileId, &Invalid); assert(!Invalid && "Attempting to process invalid inclusion"); - const char *FileName = FromFile.getBufferIdentifier(); + StringRef FileName = FromFile.getBufferIdentifier(); Lexer RawLex(FileId, &FromFile, PP.getSourceManager(), PP.getLangOpts()); RawLex.SetCommentRetentionState(false); diff --git a/clang/lib/Lex/HeaderMap.cpp b/clang/lib/Lex/HeaderMap.cpp index 4cace5b..24a14b6 100644 --- a/clang/lib/Lex/HeaderMap.cpp +++ b/clang/lib/Lex/HeaderMap.cpp @@ -106,7 +106,7 @@ bool HeaderMapImpl::checkHeader(const llvm::MemoryBuffer &File, /// getFileName - Return the filename of the headermap. -const char *HeaderMapImpl::getFileName() const { +StringRef HeaderMapImpl::getFileName() const { return FileBuffer->getBufferIdentifier(); } diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index bf266b3..c2c909e3 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -257,7 +257,7 @@ Module *HeaderSearch::lookupModule(StringRef ModuleName, bool AllowSearch) { /// getName - Return the directory or filename corresponding to this lookup /// object. -const char *DirectoryLookup::getName() const { +StringRef DirectoryLookup::getName() const { if (isNormalDir()) return getDir()->getName(); if (isFramework()) diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp index 73036ac..42e7de2 100644 --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -284,7 +284,7 @@ bool Preprocessor::CheckMacroName(Token &MacroNameTok, MacroUse isDefineUndef, if (ShadowFlag) *ShadowFlag = false; if (!SourceMgr.isInSystemHeader(MacroNameLoc) && - (strcmp(SourceMgr.getBufferName(MacroNameLoc), "<built-in>") != 0)) { + (SourceMgr.getBufferName(MacroNameLoc) != "<built-in>")) { MacroDiag D = MD_NoWarn; if (isDefineUndef == MU_Define) { D = shouldWarnOnMacroDef(*this, II); @@ -2114,7 +2114,7 @@ void Preprocessor::HandleIncludeMacrosDirective(SourceLocation HashLoc, // This directive should only occur in the predefines buffer. If not, emit an // error and reject it. SourceLocation Loc = IncludeMacrosTok.getLocation(); - if (strcmp(SourceMgr.getBufferName(Loc), "<built-in>") != 0) { + if (SourceMgr.getBufferName(Loc) != "<built-in>") { Diag(IncludeMacrosTok.getLocation(), diag::pp_include_macros_out_of_predefines); DiscardUntilEndOfDirective(); diff --git a/clang/lib/Rewrite/HTMLRewrite.cpp b/clang/lib/Rewrite/HTMLRewrite.cpp index 553f695..78aad39 100644 --- a/clang/lib/Rewrite/HTMLRewrite.cpp +++ b/clang/lib/Rewrite/HTMLRewrite.cpp @@ -267,8 +267,8 @@ void html::AddLineNumbers(Rewriter& R, FileID FID) { RB.InsertTextAfter(FileEnd - FileBeg, "</table>"); } -void html::AddHeaderFooterInternalBuiltinCSS(Rewriter& R, FileID FID, - const char *title) { +void html::AddHeaderFooterInternalBuiltinCSS(Rewriter &R, FileID FID, + StringRef title) { const llvm::MemoryBuffer *Buf = R.getSourceMgr().getBuffer(FID); const char* FileStart = Buf->getBufferStart(); @@ -282,7 +282,7 @@ void html::AddHeaderFooterInternalBuiltinCSS(Rewriter& R, FileID FID, os << "<!doctype html>\n" // Use HTML 5 doctype "<html>\n<head>\n"; - if (title) + if (!title.empty()) os << "<title>" << html::EscapeText(title) << "</title>\n"; os << "<style type=\"text/css\">\n" diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 253fab2..fff824e 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -2074,14 +2074,13 @@ void ASTWriter::WriteSourceManagerBlock(SourceManager &SourceMgr, // the reader side). const llvm::MemoryBuffer *Buffer = Content->getBuffer(PP.getDiagnostics(), PP.getSourceManager()); - const char *Name = Buffer->getBufferIdentifier(); + StringRef Name = Buffer->getBufferIdentifier(); Stream.EmitRecordWithBlob(SLocBufferAbbrv, Record, - StringRef(Name, strlen(Name) + 1)); + StringRef(Name.data(), Name.size() + 1)); EmitBlob = true; - if (strcmp(Name, "<built-in>") == 0) { + if (Name == "<built-in>") PreloadSLocs.push_back(SLocEntryOffsets.size()); - } } if (EmitBlob) { diff --git a/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h b/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h index b075611..0f00ad0 100644 --- a/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h +++ b/llvm/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h @@ -49,7 +49,7 @@ public: init(this->SV.begin(), this->SV.end(), false); } - const char* getBufferIdentifier() const override { return BufferName.c_str(); } + StringRef getBufferIdentifier() const override { return BufferName; } BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; } diff --git a/llvm/include/llvm/Support/MemoryBuffer.h b/llvm/include/llvm/Support/MemoryBuffer.h index 73d6435..70d91bd 100644 --- a/llvm/include/llvm/Support/MemoryBuffer.h +++ b/llvm/include/llvm/Support/MemoryBuffer.h @@ -56,9 +56,7 @@ public: /// Return an identifier for this buffer, typically the filename it was read /// from. - virtual const char *getBufferIdentifier() const { - return "Unknown buffer"; - } + virtual StringRef getBufferIdentifier() const { return "Unknown buffer"; } /// Open the specified file as a MemoryBuffer, returning a new MemoryBuffer /// if successful, otherwise returning null. If FileSize is specified, this diff --git a/llvm/lib/Support/MemoryBuffer.cpp b/llvm/lib/Support/MemoryBuffer.cpp index b935cbf..6893432 100644 --- a/llvm/lib/Support/MemoryBuffer.cpp +++ b/llvm/lib/Support/MemoryBuffer.cpp @@ -90,9 +90,9 @@ public: /// tail-allocated data. void operator delete(void *p) { ::operator delete(p); } - const char *getBufferIdentifier() const override { - // The name is stored after the class itself. - return reinterpret_cast<const char*>(this + 1); + StringRef getBufferIdentifier() const override { + // The name is stored after the class itself. + return StringRef(reinterpret_cast<const char *>(this + 1)); } BufferKind getBufferKind() const override { @@ -221,9 +221,9 @@ public: /// tail-allocated data. void operator delete(void *p) { ::operator delete(p); } - const char *getBufferIdentifier() const override { + StringRef getBufferIdentifier() const override { // The name is stored after the class itself. - return reinterpret_cast<const char *>(this + 1); + return StringRef(reinterpret_cast<const char *>(this + 1)); } BufferKind getBufferKind() const override { diff --git a/llvm/lib/Support/SourceMgr.cpp b/llvm/lib/Support/SourceMgr.cpp index b2f87d6..4cb9b2f 100644 --- a/llvm/lib/Support/SourceMgr.cpp +++ b/llvm/lib/Support/SourceMgr.cpp @@ -142,7 +142,7 @@ SMDiagnostic SourceMgr::GetMessage(SMLoc Loc, SourceMgr::DiagKind Kind, // location to pull out the source line. SmallVector<std::pair<unsigned, unsigned>, 4> ColRanges; std::pair<unsigned, unsigned> LineAndCol; - const char *BufferID = "<unknown>"; + StringRef BufferID = "<unknown>"; std::string LineStr; if (Loc.isValid()) { diff --git a/llvm/utils/TableGen/CTagsEmitter.cpp b/llvm/utils/TableGen/CTagsEmitter.cpp index 35f4ad6..5213cd9 100644 --- a/llvm/utils/TableGen/CTagsEmitter.cpp +++ b/llvm/utils/TableGen/CTagsEmitter.cpp @@ -37,7 +37,7 @@ public: void emit(raw_ostream &OS) const { const MemoryBuffer *CurMB = SrcMgr.getMemoryBuffer(SrcMgr.FindBufferContainingLoc(Loc)); - const char *BufferName = CurMB->getBufferIdentifier(); + auto BufferName = CurMB->getBufferIdentifier(); std::pair<unsigned, unsigned> LineAndColumn = SrcMgr.getLineAndColumn(Loc); OS << *Id << "\t" << BufferName << "\t" << LineAndColumn.first << "\n"; } |