WebAssembly / WebAssembly/binaryen

wasm2js/I64ToI32Lowering fails on 64-bit atomic stores (I think) test_atomic_wait64_notify

Open
#5,991 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
WebAssembly
Stars
8.6k
Forks
885
Avg merge
1d 19h
Merged PRs (30d)
69

Description

I'm currently landing a new test test_atomic_wait64_notify which is failing under wasm2js:

test_atomic_wait64_notify (test_core.wasm2js1.test_atomic_wait64_notify) ... Clearing existing test directory
wasm2js: /usr/local/google/home/sbc/dev/wasm/binaryen/src/passes/I64ToI32Lowering.cpp:423: void wasm::I64ToI32Lowering::visitStore(wasm::Store *): Assertion `!curr->isAtomic && "atomic store not implemented"' failed.
emcc: error: '/usr/local/google/home/sbc/dev/wasm/binaryen-out/bin/wasm2js --emscripten -O test_atomic_wait64_notify.wasm --mvp-features --enable-threads --enable-bulk-memory --enable-mutable-globals --enable-sign-ext' failed (received SIGABRT (-6))
None
None
FAIL

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/passes/I64ToI32Lowering.cpp at the visitStore assertion that reports atomic stores as unimplemented. Reproduce the failure with test_atomic_wait64_notify under wasm2js and inspect the related test output. Done means the test no longer aborts in wasm2js and passes successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, wasm
Domain
compilers, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.