)]}'
{
  "commit": "a5305e78fbb9fbf226b6b32857281e4783a68352",
  "tree": "99b6c8f692b17de821159142ea4c85b963062333",
  "parents": [
    "f4f4d67333206ff216453db43e64c92d836a9991"
  ],
  "author": {
    "name": "Tejas Anil Nagmote",
    "email": "tejasnagmote520@gmail.com",
    "time": "Mon Sep 14 18:24:46 2026 +0530"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Sep 14 13:54:46 2026 +0100"
  },
  "message": "Replace the offsetof cache-line check with a runtime check (#1877) (#2264)\n\nState is not a standard-layout type, so offsetof(State, skipped_) is only\nconditionally-supported. Compilers diagnose it, and the static_assert was\nkept quiet by a stack of vendor pragmas for GCC, clang, ICC, NVCC and NVHPC.\nThat stack does not cover every compiler: #1877 is clang-18/19 on Windows\nreporting it anyway.\n\nMeasure the offset on the object being constructed instead. That is well\ndefined, needs no pragmas, and expresses the same invariant.\n\nThe check uses a new BM_CHECK_ALWAYS, which is BM_CHECK without the NDEBUG\nopt-out, so it still holds in a release build. A State is constructed once\nper benchmark instance and thread, never inside the iteration loop.\n\nVerified: with the bound lowered to 8 bytes, a release build fails at run\ntime with\n\n  src/benchmark.cc:231: State: Check `... \u003c\u003d 8 - ...\u0027 failed.\n  the commonly accessed members of State must fit in the first cache line\n\nand src/benchmark.cc compiles clean under -Winvalid-offsetof -Wall -Wextra\n-Werror with both gcc 15 and clang 20.\n\nCo-authored-by: dominic \u003c510002+dmah42@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "22a395d2a3f088bb8a95f482efd13685ab71436e",
      "old_mode": 33188,
      "old_path": "src/benchmark.cc",
      "new_id": "9388e342eba7dc586f69f00496e710f1a48963f2",
      "new_mode": 33188,
      "new_path": "src/benchmark.cc"
    },
    {
      "type": "modify",
      "old_id": "aa8c78c92fe3b4035bf169a535b5d1fee662d9d4",
      "old_mode": 33188,
      "old_path": "src/check.h",
      "new_id": "b6fc22ff0b92b91ded92b0ecf7fe6372e26eb8ab",
      "new_mode": 33188,
      "new_path": "src/check.h"
    }
  ]
}
