mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-15 12:39:19 +00:00
[TableGen] Avoid generating switch with just default
Summary: Switch with just default causes an MSVC warning (warning C4065: switch statement contains 'default' but no 'case' labels). Change-Id: I9ddeccdef93666256b5454b164b567b73b488461 Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81021
This commit is contained in:
parent
2f7269b677
commit
9244be7b05
@ -612,18 +612,23 @@ void GIMatchTreeOpcodePartitioner::emitPartitionResults(
|
||||
|
||||
void GIMatchTreeOpcodePartitioner::generatePartitionSelectorCode(
|
||||
raw_ostream &OS, StringRef Indent) const {
|
||||
OS << Indent << "Partition = -1;\n"
|
||||
<< Indent << "switch (MIs[" << InstrID << "]->getOpcode()) {\n";
|
||||
for (const auto &EnumInstr : enumerate(PartitionToInstr)) {
|
||||
if (EnumInstr.value() == nullptr)
|
||||
OS << Indent << "default:";
|
||||
else
|
||||
OS << Indent << "case " << EnumInstr.value()->Namespace
|
||||
<< "::" << EnumInstr.value()->TheDef->getName() << ":";
|
||||
OS << " Partition = " << EnumInstr.index() << "; break;\n";
|
||||
// Make sure not to emit empty switch or switch with just default
|
||||
if (PartitionToInstr.size() == 1 && PartitionToInstr[0] == nullptr) {
|
||||
OS << Indent << "Partition = 0;\n";
|
||||
} else if (PartitionToInstr.size()) {
|
||||
OS << Indent << "Partition = -1;\n"
|
||||
<< Indent << "switch (MIs[" << InstrID << "]->getOpcode()) {\n";
|
||||
for (const auto &EnumInstr : enumerate(PartitionToInstr)) {
|
||||
if (EnumInstr.value() == nullptr)
|
||||
OS << Indent << "default:";
|
||||
else
|
||||
OS << Indent << "case " << EnumInstr.value()->Namespace
|
||||
<< "::" << EnumInstr.value()->TheDef->getName() << ":";
|
||||
OS << " Partition = " << EnumInstr.index() << "; break;\n";
|
||||
}
|
||||
OS << Indent << "}\n";
|
||||
}
|
||||
OS << Indent << "}\n"
|
||||
<< Indent
|
||||
OS << Indent
|
||||
<< "// Default case but without conflicting with potential default case "
|
||||
"in selection.\n"
|
||||
<< Indent << "if (Partition == -1) return false;\n";
|
||||
@ -775,4 +780,3 @@ void GIMatchTreeVRegDefPartitioner::generatePartitionSelectorCode(
|
||||
|
||||
OS << Indent << "if (Partition == -1) return false;\n";
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user