summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2011-07-15 18:30:43 +0000
committerKevin Enderby <enderby@apple.com>2011-07-15 18:30:43 +0000
commit1b87c806787cdecd096e2a1604c1e237cd38d453 (patch)
treeda07010d7c1fa4336010ba562777fd1ac9626d56 /llvm
parenta7ff54351a782dd8a83a24e03db828cd6f4010b4 (diff)
downloadbcm5719-llvm-1b87c806787cdecd096e2a1604c1e237cd38d453.tar.gz
bcm5719-llvm-1b87c806787cdecd096e2a1604c1e237cd38d453.zip
Have tblgen produce code that tolerates operands that return an invalid match class.
llvm-svn: 135287
Diffstat (limited to 'llvm')
-rw-r--r--llvm/utils/TableGen/AsmMatcherEmitter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
index d9c3b84d6c2..a6a4fecd301 100644
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
@@ -1656,6 +1656,10 @@ static void EmitValidateOperandClass(AsmMatcherInfo &Info,
OS << " " << Info.Target.getName() << "Operand &Operand = *("
<< Info.Target.getName() << "Operand*)GOp;\n";
+ // The InvalidMatchClass is not to match any operand.
+ OS << " if (Kind == InvalidMatchClass)\n";
+ OS << " return false;\n\n";
+
// Check for Token operands first.
OS << " if (Operand.isToken())\n";
OS << " return MatchTokenString(Operand.getToken()) == Kind;\n\n";
OpenPOWER on IntegriCloud