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 | 82e17f58f0255fbf5430c280ff89d1c76c8152c1 (patch) | |
tree | f98ef087d5f42fb6fbd946acff6755867232955a /llvm/utils/TableGen | |
parent | 920d7d80e285e274be29ad2383d22615e6c96389 (diff) | |
download | bcm5719-llvm-82e17f58f0255fbf5430c280ff89d1c76c8152c1.tar.gz bcm5719-llvm-82e17f58f0255fbf5430c280ff89d1c76c8152c1.zip |
Do not generate an empty switch statement as it causes MSVC to issue diagnostics about switch statements without case or default labels.
llvm-svn: 321217
Diffstat (limited to 'llvm/utils/TableGen')
-rw-r--r-- | llvm/utils/TableGen/GlobalISelEmitter.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp index f4e99622747..c7d662db5a2 100644 --- a/llvm/utils/TableGen/GlobalISelEmitter.cpp +++ b/llvm/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"; } |