)]}'
{
  "commit": "954d2ad829f0ad152798591faa5960fe8ee31202",
  "tree": "f5f47d6fbe8a2e05c6f8b52510ce647a5f1cf04f",
  "parents": [
    "049ff7a828f3e11b2877034dd452481cd7c04f96"
  ],
  "author": {
    "name": "Thomas Lively",
    "email": "tlively@google.com",
    "time": "Wed May 01 03:11:27 2024"
  },
  "committer": {
    "name": "Thomas Lively",
    "email": "tlively@google.com",
    "time": "Wed May 01 03:11:27 2024"
  },
  "message": "[WIP] ReFinalize GlobalGet in initializers after GlobalRefining\n\nWhen GlobalRefining refines the type of a global, it updates the type of\ncorresponding GlobalGet expressions, then runs ReFinalize to propagate the\nrefined types. However, it only performed these updates in function bodies,\nleaving stale types on GlobalGet expressions in constant initializers. This bug\nwas not easily caught because the validator did not check that `GlobalGet` types\nactually match the types of the corresponding globals.\n\nFix the validator to check the types of `GlobalGet` expressions and fix\nGlobalRefining to properly update constant initializers.\n\nFixes #6565.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d44c75c8f0197890b61cf276e0333c80f3431174",
      "old_mode": 33188,
      "old_path": "src/wasm/wasm-validator.cpp",
      "new_id": "8d6fdfcaed6eff380479e65b9fd9def025ec3f6f",
      "new_mode": 33188,
      "new_path": "src/wasm/wasm-validator.cpp"
    },
    {
      "type": "modify",
      "old_id": "8f0b3c247a06594d35055dfb771fc6c6221cb536",
      "old_mode": 33188,
      "old_path": "test/lit/passes/global-refining.wast",
      "new_id": "ada0b50520fa46c028b4ea7f03169dc0f779fff8",
      "new_mode": 33188,
      "new_path": "test/lit/passes/global-refining.wast"
    }
  ]
}
