)]}'
{
  "commit": "ff9c02369006867da978df11e38ef8fa993bf9ad",
  "tree": "2b080f077bef898c3ef8443ee2c1df0c0536675f",
  "parents": [
    "f876b28ceac9b9068b8521e996ab3dfb58daf8d3"
  ],
  "author": {
    "name": "Luke Zarko",
    "email": "zarko@google.com",
    "time": "Tue Nov 10 22:46:04 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Nov 10 22:46:44 2026 -0800"
  },
  "message": "cc_common: expose `per_file_copts` to `create_compile_action` callers.\n\n`cc_common.compile` adds the matching `--per_file_copt`s to the\n`user_compile_flags` of the actions it creates (`get_copts`), but callers of\n`cc_common.create_compile_action` build their compile variables themselves and\nhave no way to get them: `ctx.fragments.cpp` doesn\u0027t expose per-file copts, and\n`cc_internal.per_file_copts` is gated to the rules_cc allowlist. So their\nactions get different flags than the compiles of the same sources (b/582351896:\nwith header modules, Clang then rejects the `.pcm`s of the deps).\n\nAdd `cc_common.per_file_copts(cc_toolchain, source_file, label)`, gated by the\n`create_compile_action` allowlist, so that those callers can add the flags to\ntheir `user_compile_flags` like `compile` does.\n\nThis is one of the two placements proposed in b/582351896; the other was to\napply the flags inside `create_compile_action`.\n\nStartblock:\n  * // Put other blockers before this line to avoid churning.\n  * has lgtm\n  * is approved\n  * and then\n  * all comments are resolved\n  * and then\n  *[] allows unknown commit\nPiperOrigin-RevId: 1018871920\nChange-Id: I356b85441d772d5696ff360a094283b26d99b3da\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aa06fdd1c01b7f0aacb3c41f246505ad28c6a312",
      "old_mode": 33188,
      "old_path": "cc/private/cc_common.bzl",
      "new_id": "7618ebdc315d7cbb5efdee1a7e2e88760a12130b",
      "new_mode": 33188,
      "new_path": "cc/private/cc_common.bzl"
    }
  ]
}
