give each Record a location.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66897 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/TGParser.cpp b/utils/TableGen/TGParser.cpp
index d3eaa92..1fa8272 100644
--- a/utils/TableGen/TGParser.cpp
+++ b/utils/TableGen/TGParser.cpp
@@ -27,7 +27,7 @@
   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 @@
     
     // 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 @@
   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 @@
       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 @@
   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 @@
     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;