Fix a subtle multiclass bug: when using class inheritance on
a toplevel 'defm', make sure to properly resolve references.

llvm-svn: 106570
diff --git a/llvm/utils/TableGen/TGParser.cpp b/llvm/utils/TableGen/TGParser.cpp
index 3770848..f81aabe 100644
--- a/llvm/utils/TableGen/TGParser.cpp
+++ b/llvm/utils/TableGen/TGParser.cpp
@@ -2020,7 +2020,6 @@
         }
       } else {
         Records.addDef(CurRec);
-        CurRec->resolveReferences();
       }
 
       NewRecDefs.push_back(CurRec);
@@ -2064,9 +2063,6 @@
             if (SetValue(CurRec, LetStack[i][j].Loc, LetStack[i][j].Name,
                          LetStack[i][j].Bits, LetStack[i][j].Value))
               return true;
-
-        if (!CurMultiClass)
-          CurRec->resolveReferences();
       }
 
       if (Lex.getCode() != tgtok::comma) break;
@@ -2075,6 +2071,10 @@
     }
   }
 
+  if (!CurMultiClass)
+    for (unsigned i = 0, e = NewRecDefs.size(); i != e; ++i)
+      NewRecDefs[i]->resolveReferences();
+
   if (Lex.getCode() != tgtok::semi)
     return TokError("expected ';' at end of defm");
   Lex.Lex();