From cec1521c07c95076519a31e42b23640de9f53a31 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Wed, 20 Dec 2017 20:09:30 +0000 Subject: [PATCH] Do not generate an empty switch statement as it causes MSVC to issue diagnostics about switch statements without case or default labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321217 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/GlobalISelEmitter.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/utils/TableGen/GlobalISelEmitter.cpp b/utils/TableGen/GlobalISelEmitter.cpp index f4e99622747..c7d662db5a2 100644 --- a/utils/TableGen/GlobalISelEmitter.cpp +++ b/utils/TableGen/GlobalISelEmitter.cpp @@ -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"; } -- 2.49.0