Have tblgen produce code that tolerates operands that return an invalid match class.
authorKevin Enderby <enderby@apple.com>
Fri, 15 Jul 2011 18:30:43 +0000 (18:30 +0000)
committerKevin Enderby <enderby@apple.com>
Fri, 15 Jul 2011 18:30:43 +0000 (18:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135287 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/AsmMatcherEmitter.cpp

index d9c3b84d6c22b53f52e1d0c40cb1f789757eecd7..a6a4fecd301554b8e0227cc9bb5a8b812f5fe12e 100644 (file)
@@ -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";