)]}'
{
  "commit": "deb5f74feeaf3a43f6d4008a1e01fc4d23c1efdf",
  "tree": "4a6d964be87b223d9c75acf7ac457ca88b390146",
  "parents": [
    "eae644638908427b11f8d791f718851e25bece01"
  ],
  "author": {
    "name": "Jakub Jelinek",
    "email": "jakub@redhat.com",
    "time": "Tue Jul 14 10:41:08 2026 +0200"
  },
  "committer": {
    "name": "Jakub Jelinek",
    "email": "jakub@gcc.gnu.org",
    "time": "Tue Jul 14 10:43:39 2026 +0200"
  },
  "message": "c-family: Use CAS loop instead of RMW atomics on small _BitInt with padding on targets which need to extend [PR124948]\n\nSome atomic/sync builtins don\u0027t sign or zero extend _BitInt values\nwith padding in it.\nIMNSHO this is solely about some of the type-generic atomic/sync builtins\n(those documented to take TYPE * arguments) and needs to be handled in the\nFE, likely in gcc/c-family/c-common.cc (resolve_overloaded_builtin).\nThere already is code to transform various type-generic builtins into a CAS\nloop for say unsigned _BitInt(253), so I think it should be used also for\nthe case where the type is BITINT_TYPE with any padding bits in the\nextend other than bitint_ext_undef mode.\n\n2026-07-14  Jakub Jelinek  \u003cjakub@redhat.com\u003e\n\n\tPR target/124948\n\t* c-common.cc (sync_resolve_size): Return -1 for fetch ops\n\ton _BitInt types with padding bits where the target requires\n\textension into the padding bits.\n\t(atomic_bitint_fetch_using_cas_loop): Handle also __sync_*\n\tfetch builtins.\n\n\t* gcc.dg/torture/bitint-100.c: New test.\n\nReviewed-by: Richard Biener \u003crguenth@suse.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a0debcc49762913e15a41773df86ce94396995ae",
      "old_mode": 33188,
      "old_path": "gcc/c-family/c-common.cc",
      "new_id": "6380bec4515d5cb6f65ab9f2ac037b2819e5ced7",
      "new_mode": 33188,
      "new_path": "gcc/c-family/c-common.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c6e781777c729444dded146c93487d89d6745e2",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.dg/torture/bitint-100.c"
    }
  ]
}
