)]}'
{
  "commit": "d3029d2b975488acdf9253eb2994a3fc55bd3549",
  "tree": "f16ec443dc956a9fbd17be2c9d0ecce3089d4a6a",
  "parents": [
    "b5b9ebd748027515445ac7f98ffb69ad7204be75"
  ],
  "author": {
    "name": "Heejin Ahn",
    "email": "aheejin@gmail.com",
    "time": "Fri May 15 22:34:18 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 15 22:34:18 2026"
  },
  "message": "[wasm-split] Fix table naming conflicts (#8708)\n\nAfter #8688, we split module elements, including tables, earlier than\n`indirectCallsToSecondaryFunctions`, which calls `getSlot`, which calls\n`makeTable`. But when making a table, we only try to get a valid name\nwithin the primary module:\n\nhttps://github.com/WebAssembly/binaryen/blob/2f1f55aef6d9adfa6fdc2c25e46d202232dbf6e2/src/ir/module-splitting.cpp#L235-L238\n\nIf an existing table\u0027s name was `0` and it was moved to a secondary\nmodule in `shareImportable` already, this will happily create an active\ntable with the name `0` again. And in `setupTablePatching`, because the\nsecondary module already has `0`, the active table will not be exported\n/ imported there:\n\nhttps://github.com/WebAssembly/binaryen/blob/2f1f55aef6d9adfa6fdc2c25e46d202232dbf6e2/src/ir/module-splitting.cpp#L1103-L1117\n\nBut this existing table is NOT the active table, and this table\u0027s type\nmay not even be `funcref`.\n\nThis fixes `makeTable` so that it makes a table name that does not\ncollide with any table names not only in the primary module but all\nsecondary modules.\n\nThis also disables `Split` fuzzer for now; I\u0027m finding more bugs, so\nI\u0027ll reenable it after it is more stabilized.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b089ec7f1f6d1acf9a0fd0c409e74f04c0cc6062",
      "old_mode": 33261,
      "old_path": "scripts/fuzz_opt.py",
      "new_id": "4173058abf8ab1287cf058d451f6e11e4eeeb824",
      "new_mode": 33261,
      "new_path": "scripts/fuzz_opt.py"
    },
    {
      "type": "modify",
      "old_id": "3385bc7602ad864004d59b6cf21c509e92b94593",
      "old_mode": 33188,
      "old_path": "src/ir/module-splitting.cpp",
      "new_id": "9659121d6fe7c2c3f12b253198077ac57288b068",
      "new_mode": 33188,
      "new_path": "src/ir/module-splitting.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "983234b885428409892192938e89a88f02bc3a61",
      "new_mode": 33188,
      "new_path": "test/lit/wasm-split/table-name-conflict.wast"
    }
  ]
}
