[all-commits] [llvm/llvm-project] ad7aaa: Frontend: Fix layering between create{, Default}Out...
Duncan P. N. Exon Smith via All-commits
all-commits at lists.llvm.org
Tue Jan 26 16:02:05 PST 2021
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: ad7aaa475e5e632242b07380ec47d2f35d077209
https://github.com/llvm/llvm-project/commit/ad7aaa475e5e632242b07380ec47d2f35d077209
Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
Date: 2021-01-26 (Tue, 26 Jan 2021)
Changed paths:
M clang/include/clang/Frontend/CompilerInstance.h
M clang/lib/Frontend/CompilerInstance.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/tools/driver/cc1_main.cpp
Log Message:
-----------
Frontend: Fix layering between create{,Default}OutputFile, NFC
Fix layering between `CompilerInstance::createDefaultOutputFile` and the
two versions of `createOutputFile`.
- Add missing configuration flags to `createDefaultOutputFile` so that
GeneratePCHAction and GenerateModuleFromModuleMapAction can use it.
They previously promised that temporary files were turned on; now
`createDefaultOutputFile` handles that logic.
- Lift the logic handling `InFile` and `Extension` to
`createDefaultOutputFile`, since it's only the callers of that
function that are using it.
- Rename the deeper of the two `createOutputFile`s to
`createOutputFileImpl` and make it private to `CompilerInstance` (to
prove that no one else is using it).
- Sink the logic for adding to `CompilerInstance::OutputFiles` down to
`createOutputFileImpl`, allowing two "optional" (but always used)
`std::string*` out parameters to be removed.
- Instead of passing a `std::error_code` out parameter into
`createOutputFileImpl`, have it return `Expected<>`.
- As a drive-by, inline `CompilerInstance::addOutputFile` into its only
caller, `createOutputFileImpl`.
Clean layering makes it easier for a future commit to extract
`createOutputFileImpl` out of `CompilerInstance`.
Differential Revision: https://reviews.llvm.org/D93248
More information about the All-commits
mailing list