teak-llvm/clang/lib/Tooling/DependencyScanning
Michael Spencer 356a4b433b [clang][clang-scan-deps] Aggregate the full dependency information.
Differential Revision: https://reviews.llvm.org/D70268

This is a recommit of f978ea4983 with a fix for the PowerPC failure.

The issue was that:
* `CompilerInstance::ExecuteAction` calls
  `getTarget().adjust(getLangOpts());`.
* `PPCTargetInfo::adjust` changes `LangOptions::HasAltivec`.
* This happens after the first few calls to `getModuleHash`.

There’s even a FIXME saying:
```
  // FIXME: We shouldn't need to do this, the target should be immutable once
  // created. This complexity should be lifted elsewhere.
```

This only showed up on PowerPC because it's one of the few targets that
almost always changes a hashed langopt.

I looked into addressing the fixme, but that would be a much larger
change, and it's not the only thing that happens in `ExecuteAction` that
can change the module context hash. Instead I changed the code to not
call `getModuleHash` until after it has been modified in `ExecuteAction`.
2020-01-23 16:58:50 -08:00
..
CMakeLists.txt [clang][clang-scan-deps] Add support for extracting full module dependencies. 2019-10-30 15:27:27 -07:00
DependencyScanningFilesystem.cpp [clang-scan-deps] Add basic support for modules. 2019-10-24 16:19:11 -07:00
DependencyScanningService.cpp [clang][clang-scan-deps] Add support for extracting full module dependencies. 2019-10-30 15:27:27 -07:00
DependencyScanningTool.cpp [clang][clang-scan-deps] Aggregate the full dependency information. 2020-01-23 16:58:50 -08:00
DependencyScanningWorker.cpp [clang][clang-scan-deps] Aggregate the full dependency information. 2020-01-23 16:58:50 -08:00
ModuleDepCollector.cpp [clang][clang-scan-deps] Aggregate the full dependency information. 2020-01-23 16:58:50 -08:00