mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-01 23:25:56 +00:00
Revert r318822 "[llvm-tblgen] - Stop using std::string in RecordKeeper."
It reported to have problems with memory sanitizers and DBUILD_SHARED_LIBS=ON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318899 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
41474c8b1a
commit
9052cc8ec7
@ -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:
|
||||
|
@ -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";
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user