diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/spectest-interp.cc | 7 | ||||
-rw-r--r-- | src/type-checker.cc | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc index 97044010..45775268 100644 --- a/src/tools/spectest-interp.cc +++ b/src/tools/spectest-interp.cc @@ -1274,7 +1274,7 @@ wabt::Result CommandRunner::Run(const Script& script) { for (const CommandPtr& command : script.commands) { switch (command->type) { case CommandType::Module: - OnModuleCommand(cast<ModuleCommand>(command.get())); + TallyCommand(OnModuleCommand(cast<ModuleCommand>(command.get()))); break; case CommandType::Action: @@ -1282,7 +1282,10 @@ wabt::Result CommandRunner::Run(const Script& script) { break; case CommandType::Register: - OnRegisterCommand(cast<RegisterCommand>(command.get())); + if (Failed(OnRegisterCommand(cast<RegisterCommand>(command.get())))) { + PrintError(command->line, "invalid register command"); + return wabt::Result::Error; + } break; case CommandType::AssertMalformed: diff --git a/src/type-checker.cc b/src/type-checker.cc index eb23446f..7282c5b2 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -491,7 +491,7 @@ Result TypeChecker::OnBrTableTarget(Index depth) { if (br_table_sig_ == nullptr) { br_table_sig_ = &label_sig; } else { - if (*br_table_sig_ != label_sig) { + if (br_table_sig_->size() != label_sig.size()) { result |= Result::Error; PrintError("br_table labels have inconsistent types: expected %s, got %s", TypesToString(*br_table_sig_).c_str(), |