From 4a74ee7203d119232d9c6df33946c01611e433f8 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 1 Nov 2010 02:09:21 +0000 Subject: [PATCH] all predicates on an MnemonicAlias must be AssemblerPredicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117890 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/AsmMatcherEmitter.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index 04c9472c708..c047a5d9936 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/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) -- 2.34.1