)]}'
{
  "commit": "f93b9215d74627b4e8ae8bf94e804438c6fff2d9",
  "tree": "6f5b051421ca90fbae6823f88bd79d722ae28dbb",
  "parents": [
    "fb047130174be8ffad5718182ac83c2f5dcb45be"
  ],
  "author": {
    "name": "aizu-m",
    "email": "aizumusheer2@gmail.com",
    "time": "Thu Jul 09 17:24:21 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jul 09 17:24:21 2026"
  },
  "message": "Fix operand arity of v128.storeN_lane in GetExprArity (#2764)\n\nFound this fuzzing wasm-decompile under a debug build: a valid module\nwhose only instruction is v128.store8_lane aborts on the value-stack\nassert in decompiler-ast.h Construct.\n\n1. GetExprArity groups SimdLoadLane and SimdStoreLane together and\nreports both as {2, 1}.\n2. store_lane pops the address and the vector and pushes nothing, so its\nreal effect is {2, 0}; the spare result throws value_stack_depth out by\none.\n\nThe decompiler has since been removed, but GetExprArity still drives the\nfolded wat writer, where the phantom result is equally observable:\nwasm2wat --fold-exprs folds the store into the next value consumer and\nstrands the value beneath it. Split the case so SimdStoreLane returns\n{2, 0} and SimdLoadLane keeps {2, 1}. A reduced repro is added under\ntest/roundtrip.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f7ce0c2bbd26a88f9d77fb2b986506bf7fad2428",
      "old_mode": 33188,
      "old_path": "src/ir-util.cc",
      "new_id": "74fe45e872220dacd5e19490de7ad57e42552c1d",
      "new_mode": 33188,
      "new_path": "src/ir-util.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "37e8e39ef19ea86794bf407a2065b44d90b8bff3",
      "new_mode": 33188,
      "new_path": "test/roundtrip/fold-simd-store-lane.txt"
    }
  ]
}
