• Andreas Haas's avatar
    Reland "[wasm] Do memory.init bounds check in C++ code" · e08e9d89
    Andreas Haas authored
    The return value of {memory_init_wrapper} was defined as {bool} in
    the original CL. When compiled with clang, the full return register is
    written when {true} or {false} is returned. With msvc, however, the
    return value is written as a single byte, without zero-extension. In
    generated code, the full return register is used and therefore stale
    bytes in the return register caused problems.
    
    With this CL the return value is changed to {uint32_t}. This enforces
    zero-extension of the return value and thereby fixes the issue.
    
    R=clemensb@chromium.org
    
    Bug: v8:10281
    Change-Id: I1446e51d88a35def56bd39a8336baa81543497bf
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2096627
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66670}
    e08e9d89
wasm-external-refs.cc 15.8 KB