| Index: src/compiler/verifier.cc
|
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
|
| index e040cd296cccaba8b665d2119ae5f55522577424..1cc8c9f32e7011c67b4d2f452c6fe0e6f1c3f640 100644
|
| --- a/src/compiler/verifier.cc
|
| +++ b/src/compiler/verifier.cc
|
| @@ -228,6 +228,27 @@ void Verifier::Visitor::Check(Node* node) {
|
| // Type is empty.
|
| CheckNotTyped(node);
|
| break;
|
| + case IrOpcode::kSwitch: {
|
| + // Switch uses are Case.
|
| + std::vector<bool> uses;
|
| + uses.resize(node->UseCount());
|
| + for (auto use : node->uses()) {
|
| + CHECK_EQ(IrOpcode::kCase, use->opcode());
|
| + size_t const index = CaseIndexOf(use->op());
|
| + CHECK_LT(index, uses.size());
|
| + CHECK(!uses[index]);
|
| + uses[index] = true;
|
| + }
|
| + // Type is empty.
|
| + CheckNotTyped(node);
|
| + break;
|
| + }
|
| + case IrOpcode::kCase:
|
| + CHECK_EQ(IrOpcode::kSwitch,
|
| + NodeProperties::GetControlInput(node)->opcode());
|
| + // Type is empty.
|
| + CheckNotTyped(node);
|
| + break;
|
| case IrOpcode::kLoop:
|
| case IrOpcode::kMerge:
|
| CHECK_EQ(control_count, input_count);
|
|
|