resolve a fixme by having the .td file parser reject thigns like
(set GPR, somecomplexpattern)
if somecomplexpattern doesn't declare what it can match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97513 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelMatcherGen.cpp b/utils/TableGen/DAGISelMatcherGen.cpp
index cc3c4f1..0c7456e 100644
--- a/utils/TableGen/DAGISelMatcherGen.cpp
+++ b/utils/TableGen/DAGISelMatcherGen.cpp
@@ -505,16 +505,11 @@
// check.
if (const ComplexPattern *CP =
Pattern.getSrcPattern()->getComplexPatternInfo(CGP)) {
-
const std::vector<Record*> &OpNodes = CP->getRootNodes();
- if (OpNodes.empty()) {
- // FIXME: Empty OpNodes runs on everything, is this even valid?
- if (Variant != 0) return true;
- } else {
- if (Variant >= OpNodes.size()) return true;
-
- AddMatcher(new CheckOpcodeMatcher(CGP.getSDNodeInfo(OpNodes[Variant])));
- }
+ assert(!OpNodes.empty() &&"Complex Pattern must specify what it can match");
+ if (Variant >= OpNodes.size()) return true;
+
+ AddMatcher(new CheckOpcodeMatcher(CGP.getSDNodeInfo(OpNodes[Variant])));
} else {
if (Variant != 0) return true;
}