Do not remove an active template argument even if the superclass had one of the
same name
llvm-svn: 11950
diff --git a/llvm/utils/TableGen/FileParser.y b/llvm/utils/TableGen/FileParser.y
index d0f88c3..4731674 100644
--- a/llvm/utils/TableGen/FileParser.y
+++ b/llvm/utils/TableGen/FileParser.y
@@ -467,7 +467,8 @@
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...