)]}'
{
  "commit": "94923f231ca027ff2323b2a2cfcb272959339896",
  "tree": "36b477974afd8fcedd76bbe34097378e604f1be7",
  "parents": [
    "0381e24e370d70362a9258a10a68255a58917b20",
    "54e9a6a994986ba1e6ef779dbe0bc67222d75f1b"
  ],
  "author": {
    "name": "Jonathan Brouwer",
    "email": "jonathantbrouwer@gmail.com",
    "time": "Sat Feb 28 12:52:54 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Feb 28 12:52:54 2026 +0100"
  },
  "message": "Rollup merge of #152615 - RalfJung:null-not-valid-for-read-write, r\u003dMark-Simulacrum\n\nrefactor \u0027valid for read/write\u0027 definition: exclude null\n\nThis is an attempt to resolve https://github.com/rust-lang/rust/issues/138351.\n\nThe underlying problem is that when we decided to allow reads/writes/copies of size 0 even for null pointers, we documented that by changing the definition of \"valid for read/write\" in the standard library to say that null pointers are valid for 0-sized reads/writes. Unfortunately, that definition is also used in other places that assume that a valid-for-read/write pointer can be converted into a reference, and of course that\u0027s UB if the pointer is null, even if the pointee is a ZST.\n\nThe proposal for fixing this is to make \"valid for reads/writes\" slightly [weaker](https://faultlore.com/blah/tower-of-weakenings/) than it has to be, and require the pointer to be non-null, and then to add exceptions to the most basic functions (read/write/copy) to explicitly allow arbitrary pointers when the size is 0. This isn\u0027t pretty but it\u0027s the best solution that has been suggested so far I think.\n\nCc @rust-lang/opsem @rust-lang/libs-api\n",
  "tree_diff": []
}
