)]}'
{
  "commit": "b19ebb2f31d5330325e63884e9a12fa4e4d9a49e",
  "tree": "f1e33cf64f3ee91a908c569d7afb0674be154352",
  "parents": [
    "7810112546b16edce48675dd564c51c804df470b"
  ],
  "author": {
    "name": "Jan Svoboda",
    "email": "jan_svoboda@apple.com",
    "time": "Wed Sep 10 15:29:26 2025 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Sep 10 15:58:53 2025 -0700"
  },
  "message": "Reland \"[clang] Delay normalization of `-fmodules-cache-path` (#150123)\"\n\nThis reverts commit 613caa909c78f707e88960723c6a98364656a926, essentially\nreapplying 4a4bddec3571d78c8073fa45b57bbabc8796d13d after moving\n`normalizeModuleCachePath` from clangFrontend to clangLex.\n\nThis PR is part of an effort to remove file system usage from the\ncommand line parsing code. The reason for that is that it\u0027s impossible\nto do file system access correctly without a configured VFS, and the VFS\ncan only be configured after the command line is parsed. I don\u0027t want to\nintertwine command line parsing and VFS configuration, so I decided to\nperform the file system access after the command line is parsed and the\nVFS is configured - ideally right before the file system entity is used\nfor the first time.\n\nThis patch delays normalization of the module cache path until\n`CompilerInstance` is asked for the cache path in the current\ncompilation context.\n\nGitOrigin-RevId: 55bef46146f05e1911fcb98715716d914efd518c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "337460a2a0a1c65bb6a7f0674c00fc3d2d10c100",
      "old_mode": 33188,
      "old_path": "include/clang/Driver/Options.td",
      "new_id": "a7c514e809aa9801e2f13513228cea81738e8485",
      "new_mode": 33188,
      "new_path": "include/clang/Driver/Options.td"
    },
    {
      "type": "modify",
      "old_id": "2e0c8bec8bd8c468a17505d75ee880f7aa7525fd",
      "old_mode": 33188,
      "old_path": "include/clang/Lex/HeaderSearch.h",
      "new_id": "850aea41c4c3bad51628742b42fac1a650d1e55d",
      "new_mode": 33188,
      "new_path": "include/clang/Lex/HeaderSearch.h"
    },
    {
      "type": "modify",
      "old_id": "8d1e9d6cdf2bb036b003ec202502891ff54d1364",
      "old_mode": 33188,
      "old_path": "lib/Frontend/CompilerInstance.cpp",
      "new_id": "31a8d75fec4bddceb9f22b748fe75cb771bbd331",
      "new_mode": 33188,
      "new_path": "lib/Frontend/CompilerInstance.cpp"
    },
    {
      "type": "modify",
      "old_id": "8411d00cc78127650d0fabefd8298aec07d8f6f3",
      "old_mode": 33188,
      "old_path": "lib/Frontend/CompilerInvocation.cpp",
      "new_id": "931766db4b0c8bbd90e93b2413761cef637bc868",
      "new_mode": 33188,
      "new_path": "lib/Frontend/CompilerInvocation.cpp"
    },
    {
      "type": "modify",
      "old_id": "ea2391f6812cfebcdb59981722208a5a6f4c40e3",
      "old_mode": 33188,
      "old_path": "lib/Lex/HeaderSearch.cpp",
      "new_id": "f28a74f5d0ae53788626fbdd16a7e3852f3b9d02",
      "new_mode": 33188,
      "new_path": "lib/Lex/HeaderSearch.cpp"
    },
    {
      "type": "modify",
      "old_id": "8e219e54bf251ff6465f1c65870257a58615663f",
      "old_mode": 33188,
      "old_path": "lib/Serialization/ASTWriter.cpp",
      "new_id": "326e5e34e1ad77715f95e579ec64bf9aabe22dee",
      "new_mode": 33188,
      "new_path": "lib/Serialization/ASTWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "f32747ddf81835196f2775056a538ab67d520a06",
      "old_mode": 33188,
      "old_path": "lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp",
      "new_id": "0855e6dec6158fd72943afdd6b19428ffdf48445",
      "new_mode": 33188,
      "new_path": "lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad71b69e5299ec50d96fcb52b9691e083b8dfe73",
      "new_mode": 33188,
      "new_path": "test/Modules/modules-cache-path-canonicalization-output.c"
    }
  ]
}
