diff --git a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp index e79fcd34c3f337..2f9245a7c66c0d 100644 --- a/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp +++ b/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp @@ -102,8 +102,8 @@ bool WebAssemblyAsmTypeCheck::popType(SMLoc ErrorLoc, bool WebAssemblyAsmTypeCheck::getLocal(SMLoc ErrorLoc, const MCInst &Inst, wasm::ValType &Type) { - auto Local = Inst.getOperand(0).getImm(); - if (static_cast(Local) > LocalTypes.size()) + auto Local = static_cast(Inst.getOperand(0).getImm()); + if (Local >= LocalTypes.size()) return typeError(ErrorLoc, StringRef("no local type specified for index ") + std::to_string(Local)); Type = LocalTypes[Local];