summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/tools/spectest-interp.cc7
-rw-r--r--src/type-checker.cc2
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(),