summaryrefslogtreecommitdiff
path: root/utils/TableGen/TGParser.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-03-13 16:09:24 +0000
committerChris Lattner <sabre@nondot.org>2009-03-13 16:09:24 +0000
commit7b9ffe4a6db2e59c18510aac4ba30902653e13eb (patch)
treef626b383d32e32f761d3134f2f6a2c1cab7e58c1 /utils/TableGen/TGParser.cpp
parent1c8ae59dfdc85d917db0333ae0b93e2be4ca6c36 (diff)
downloadllvm-7b9ffe4a6db2e59c18510aac4ba30902653e13eb.tar.gz
llvm-7b9ffe4a6db2e59c18510aac4ba30902653e13eb.tar.bz2
llvm-7b9ffe4a6db2e59c18510aac4ba30902653e13eb.tar.xz
give each Record a location.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66897 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/TGParser.cpp')
-rw-r--r--utils/TableGen/TGParser.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/utils/TableGen/TGParser.cpp b/utils/TableGen/TGParser.cpp
index d3eaa929a0..1fa8272727 100644
--- a/utils/TableGen/TGParser.cpp
+++ b/utils/TableGen/TGParser.cpp
@@ -27,7 +27,7 @@ struct MultiClass {
Record Rec; // Placeholder for template args and Name.
std::vector<Record*> DefPrototypes;
- MultiClass(const std::string &Name) : Rec(Name) {}
+ MultiClass(const std::string &Name, TGLoc Loc) : Rec(Name, Loc) {}
};
struct SubClassReference {
@@ -570,7 +570,7 @@ Init *TGParser::ParseSimpleValue(Record *CurRec) {
// Create the new record, set it as CurRec temporarily.
static unsigned AnonCounter = 0;
- Record *NewRec = new Record("anonymous.val."+utostr(AnonCounter++));
+ Record *NewRec = new Record("anonymous.val."+utostr(AnonCounter++),NameLoc);
SubClassReference SCRef;
SCRef.RefLoc = NameLoc;
SCRef.Rec = Class;
@@ -1039,7 +1039,7 @@ llvm::Record *TGParser::ParseDef(MultiClass *CurMultiClass) {
Lex.Lex(); // Eat the 'def' token.
// Parse ObjectName and make a record for it.
- Record *CurRec = new Record(ParseObjectName());
+ Record *CurRec = new Record(ParseObjectName(), DefLoc);
if (!CurMultiClass) {
// Top-level def definition.
@@ -1093,7 +1093,7 @@ bool TGParser::ParseClass() {
return TokError("Class '" + CurRec->getName() + "' already defined");
} else {
// If this is the first reference to this class, create and add it.
- CurRec = new Record(Lex.getCurStrVal());
+ CurRec = new Record(Lex.getCurStrVal(), Lex.getLoc());
Records.addClass(CurRec);
}
Lex.Lex(); // eat the name.
@@ -1232,7 +1232,7 @@ bool TGParser::ParseMultiClass() {
if (MultiClasses.count(Name))
return TokError("multiclass '" + Name + "' already defined");
- CurMultiClass = MultiClasses[Name] = new MultiClass(Name);
+ CurMultiClass = MultiClasses[Name] = new MultiClass(Name, Lex.getLoc());
Lex.Lex(); // Eat the identifier.
// If there are template args, parse them.
@@ -1299,7 +1299,7 @@ bool TGParser::ParseDefm() {
Record *DefProto = MC->DefPrototypes[i];
// Add the suffix to the defm name to get the new name.
- Record *CurRec = new Record(DefmPrefix + DefProto->getName());
+ Record *CurRec = new Record(DefmPrefix + DefProto->getName(),DefmPrefixLoc);
SubClassReference Ref;
Ref.RefLoc = DefmPrefixLoc;