]> granicus.if.org Git - llvm/commitdiff
Do not generate an empty switch statement as it causes MSVC to issue diagnostics...
authorAaron Ballman <aaron@aaronballman.com>
Wed, 20 Dec 2017 20:09:30 +0000 (20:09 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Wed, 20 Dec 2017 20:09:30 +0000 (20:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321217 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/GlobalISelEmitter.cpp

index f4e99622747a2d57795fe2edfc2d2885ca3fd04b..c7d662db5a2fe887130a86df5e6b9bf7ba7f235a 100644 (file)
@@ -3551,8 +3551,10 @@ void GlobalISelEmitter::emitImmPredicates(
   }
 
   OS << "bool " << Target.getName() << "InstructionSelector::testImmPredicate_"
-     << TypeIdentifier << "(unsigned PredicateID, " << Type << " Imm) const {\n"
-     << "  switch (PredicateID) {\n";
+     << TypeIdentifier << "(unsigned PredicateID, " << Type
+     << " Imm) const {\n";
+  if (!MatchedRecords.empty())
+    OS << "  switch (PredicateID) {\n";
   for (const auto *Record : MatchedRecords) {
     OS << "  case GIPFP_" << TypeIdentifier << "_Predicate_"
        << Record->getName() << ": {\n"
@@ -3561,8 +3563,9 @@ void GlobalISelEmitter::emitImmPredicates(
        << "    return false;\n"
        << "  }\n";
   }
-  OS << "  }\n"
-     << "  llvm_unreachable(\"Unknown predicate\");\n"
+  if (!MatchedRecords.empty())
+    OS << "  }\n";
+  OS << "  llvm_unreachable(\"Unknown predicate\");\n"
      << "  return false;\n"
      << "}\n";
 }