Do not remove an active template argument even if the superclass had one of the
[oota-llvm.git] / utils / TableGen / FileParser.y
index d0f88c30c046c0ac0a21cfe6e0471c5918cfbac4..4731674e5217376635992fbe07dd99dba3fdf38e 100644 (file)
@@ -467,7 +467,8 @@ ObjectBody : OptID {
   for (unsigned i = 0, e = $4->size(); i != e; ++i) {
     Record *SuperClass = (*$4)[i].first;
     for (unsigned i = 0, e = SuperClass->getTemplateArgs().size(); i != e; ++i)
-    CurRec->removeValue(SuperClass->getTemplateArgs()[i]);
+      if (!CurRec->isTemplateArg(SuperClass->getTemplateArgs()[i]))
+        CurRec->removeValue(SuperClass->getTemplateArgs()[i]);
   }
   delete $4;   // Delete the class list...