summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/TableGen/TGParser.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp
index d7336231e6e..3bf99e943bc 100644
--- a/llvm/lib/TableGen/TGParser.cpp
+++ b/llvm/lib/TableGen/TGParser.cpp
@@ -3143,8 +3143,16 @@ bool TGParser::ParseObject(MultiClass *MC) {
if (MC)
return TokError("defset is not allowed inside multiclass");
return ParseDefset();
- case tgtok::Class: return ParseClass();
- case tgtok::MultiClass: return ParseMultiClass();
+ case tgtok::Class:
+ if (MC)
+ return TokError("class is not allowed inside multiclass");
+ if (!Loops.empty())
+ return TokError("class is not allowed inside foreach loop");
+ return ParseClass();
+ case tgtok::MultiClass:
+ if (!Loops.empty())
+ return TokError("multiclass is not allowed inside foreach loop");
+ return ParseMultiClass();
}
}
OpenPOWER on IntegriCloud