diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2017-12-20 20:09:30 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2017-12-20 20:09:30 +0000 |
commit | cec1521c07c95076519a31e42b23640de9f53a31 (patch) | |
tree | 6664cb3e21cb375841bf81b76131fe6ebe610a89 /utils | |
parent | fe6f85f7dda79409f1a32930be3ce9ee1ff140ca (diff) |
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
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/GlobalISelEmitter.cpp | 11 |
1 files 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"; } |