)]}'
{
  "commit": "b6e1bc7d5d2fcd5166816ca4c4d1d5e33b3ce255",
  "tree": "73ef389f014df3fdf715f24eaddeff2784289211",
  "parents": [
    "e4d608a837985d02c420182ebb2f4fff58539707"
  ],
  "author": {
    "name": "Antonio Maiorano",
    "email": "amaiorano@google.com",
    "time": "Tue Oct 18 20:17:55 2022 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Oct 18 20:17:55 2022 +0000"
  },
  "message": "tint: Fix C++ UB when shifting abstract 0 left by \u003e\u003d 64\n\nIn WGSL, we can shift left abstracts by \u003e\u003d 64, as long as the result is\nrepresentable in the data type we choose for it. When shifting 0, we can\nshift by any positive u32 value (result is always 0), but in C++, it\u0027s\nUB to shift by more than the bit width of the data type, so we need to\nhandle this. This bug was caught by ClusterFuzz.\n\nBug: chromium:1372963\nChange-Id: I638ca190b93538908ca6472f3735627ea8531c5a\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/106266\nReviewed-by: David Neto \u003cdneto@google.com\u003e\nCommit-Queue: Antonio Maiorano \u003camaiorano@google.com\u003e\nReviewed-by: Dan Sinclair \u003cdsinclair@chromium.org\u003e\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9fde25b23ac8de51601ca7aa215f69286cac6b3",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval.cc",
      "new_id": "c5cce2de8363d20a3deb3e43b2a83b4fa52f1cda",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval.cc"
    },
    {
      "type": "modify",
      "old_id": "5f43499bf553897a436bc9002a9ef4ac0d4be13b",
      "old_mode": 33188,
      "old_path": "src/tint/resolver/const_eval_binary_op_test.cc",
      "new_id": "b5a046c3a3b908935edb3c26b565fb33bea34a09",
      "new_mode": 33188,
      "new_path": "src/tint/resolver/const_eval_binary_op_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d281bc3073f0152242e5edafcb3a4219f809c862",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16a37a3a68b4edf79ea093b46ca352d17f372c0c",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.dxc.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16a37a3a68b4edf79ea093b46ca352d17f372c0c",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.fxc.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1ff53815bb5e18569b3f22ba55373a9df67cb060",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3aaae28c7380f0ba164e10d3ad7bd721a359345",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c56740733a853299bdaaa55275dd3c68fcb9eab5",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "955d6c632d69c69e4829890284b1edd6c0792643",
      "new_mode": 33188,
      "new_path": "test/tint/bug/chromium/1372963.wgsl.expected.wgsl"
    }
  ]
}
