)]}'
{
  "commit": "494c6da389f2fef981c7fd54bfeec0ddc34cf9cc",
  "tree": "b054a1889414435ab27b3da99d5818bba502a421",
  "parents": [
    "bff3e9edcc1a3f04364a6b34243c4953b0eb0bcf",
    "981dacc34fe799c4c1643d662819f8fcba76fd0e"
  ],
  "author": {
    "name": "Jacob Pratt",
    "email": "jacob@jhpratt.dev",
    "time": "Mon Feb 16 04:28:56 2026 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Feb 16 04:28:56 2026 -0500"
  },
  "message": "Rollup merge of #150601 - folkertdev:c-variadic-const-eval, r\u003dRalfJung\n\nsupport c-variadic functions in `rustc_const_eval`\n\ntracking issue: https://github.com/rust-lang/rust/issues/44930\n\nThe new `GlobalAlloc::VaList` is used to create an `AllocId` that represents the variable argument list of a frame. The allocation itself does not store any data, all we need is the unique identifier.\n\nThe actual variable argument list is stored in `Memory`, and keyed by the `AllocId`. The `Frame` also stores this `AllocId`, so that when a frame is popped, it can deallocate the variable arguments.\n\nAt \"runtime\" a `VaList` value stores a pointer to the global allocation in its first bytes. The provenance on this pointer can be used to retrieve its `AllocId`, and the offset of the pointer is used to store the index of the next argument to read from the variable argument list.\n\nMiri does not yet support `va_arg`, but I think that can be done separetely?\n\nr? @RalfJung\ncc @workingjubilee\n",
  "tree_diff": []
}
