summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/TableGen/Record.h2
-rw-r--r--utils/TableGen/CTagsEmitter.cpp9
2 files changed, 6 insertions, 5 deletions
diff --git a/include/llvm/TableGen/Record.h b/include/llvm/TableGen/Record.h
index d0e6ddbb878..55b4dfe2fa2 100644
--- a/include/llvm/TableGen/Record.h
+++ b/include/llvm/TableGen/Record.h
@@ -1525,7 +1525,7 @@ struct MultiClass {
};
class RecordKeeper {
- using RecordMap = std::map<StringRef, std::unique_ptr<Record>>;
+ using RecordMap = std::map<std::string, std::unique_ptr<Record>>;
RecordMap Classes, Defs;
public:
diff --git a/utils/TableGen/CTagsEmitter.cpp b/utils/TableGen/CTagsEmitter.cpp
index e72430078ba..5213cd90446 100644
--- a/utils/TableGen/CTagsEmitter.cpp
+++ b/utils/TableGen/CTagsEmitter.cpp
@@ -28,17 +28,18 @@ namespace {
class Tag {
private:
- StringRef Id;
+ const std::string *Id;
SMLoc Loc;
public:
- Tag(StringRef Name, const SMLoc Location) : Id(Name), Loc(Location) {}
- int operator<(const Tag &B) const { return Id < B.Id; }
+ Tag(const std::string &Name, const SMLoc Location)
+ : Id(&Name), Loc(Location) {}
+ int operator<(const Tag &B) const { return *Id < *B.Id; }
void emit(raw_ostream &OS) const {
const MemoryBuffer *CurMB =
SrcMgr.getMemoryBuffer(SrcMgr.FindBufferContainingLoc(Loc));
auto BufferName = CurMB->getBufferIdentifier();
std::pair<unsigned, unsigned> LineAndColumn = SrcMgr.getLineAndColumn(Loc);
- OS << Id << "\t" << BufferName << "\t" << LineAndColumn.first << "\n";
+ OS << *Id << "\t" << BufferName << "\t" << LineAndColumn.first << "\n";
}
};