diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-01 02:09:21 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-01 02:09:21 +0000 |
commit | 517dc95d474ab4d355a2a52484e4b1ddb55e08dd (patch) | |
tree | 07a13f16fd476fb1d35f792e623b9b6b9490e9c7 /llvm | |
parent | f7a01e9f46d02b1b3178e2810429e729a4318d7b (diff) | |
download | bcm5719-llvm-517dc95d474ab4d355a2a52484e4b1ddb55e08dd.tar.gz bcm5719-llvm-517dc95d474ab4d355a2a52484e4b1ddb55e08dd.zip |
all predicates on an MnemonicAlias must be AssemblerPredicates.
llvm-svn: 117890
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/utils/TableGen/AsmMatcherEmitter.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp index 04c9472c708..c047a5d9936 100644 --- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp +++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp @@ -1466,13 +1466,17 @@ static std::string GetAliasRequiredFeatures(Record *R, std::string Result; unsigned NumFeatures = 0; for (unsigned i = 0, e = ReqFeatures.size(); i != e; ++i) { - if (SubtargetFeatureInfo *F = Info.getSubtargetFeature(ReqFeatures[i])) { - if (NumFeatures) - Result += '|'; + SubtargetFeatureInfo *F = Info.getSubtargetFeature(ReqFeatures[i]); - Result += F->getEnumName(); - ++NumFeatures; - } + if (F == 0) + throw TGError(R->getLoc(), "Predicate '" + ReqFeatures[i]->getName() + + "' is not marked as an AssemblerPredicate!"); + + if (NumFeatures) + Result += '|'; + + Result += F->getEnumName(); + ++NumFeatures; } if (NumFeatures > 1) |