diff options
author | Luboš Luňák <l.lunak@centrum.cz> | 2020-07-13 22:24:44 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@centrum.cz> | 2020-07-22 10:21:23 +0200 |
commit | 3895466e2c336c0797710ae35150ba1ce6bc0b96 (patch) | |
tree | 5b9391c263c615071d8ccd7b11ac92a2e2844c5c /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 706a4353e87b1127446db7daf5e3e95fcb408924 (diff) | |
download | llvm-3895466e2c336c0797710ae35150ba1ce6bc0b96.zip llvm-3895466e2c336c0797710ae35150ba1ce6bc0b96.tar.gz llvm-3895466e2c336c0797710ae35150ba1ce6bc0b96.tar.bz2 |
accept 'clang++ -c a.pch -o a.o' to create PCH's object file
This way should be the same like with a.pcm for modules.
An alternative way is 'clang++ -c empty.cpp -include-pch a.pch -o a.o
-Xclang -building-pch-with-obj', which is what clang-cl's /Yc does
internally.
Differential Revision: https://reviews.llvm.org/D83716
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index c34c2a1..0b5f335 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2022,8 +2022,9 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, // FIXME: Supporting '<lang>-header-cpp-output' would be useful. bool Preprocessed = XValue.consume_back("-cpp-output"); bool ModuleMap = XValue.consume_back("-module-map"); - IsHeaderFile = - !Preprocessed && !ModuleMap && XValue.consume_back("-header"); + IsHeaderFile = !Preprocessed && !ModuleMap && + XValue != "precompiled-header" && + XValue.consume_back("-header"); // Principal languages. DashX = llvm::StringSwitch<InputKind>(XValue) @@ -2050,7 +2051,7 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, DashX = llvm::StringSwitch<InputKind>(XValue) .Case("cpp-output", InputKind(Language::C).getPreprocessed()) .Case("assembler-with-cpp", Language::Asm) - .Cases("ast", "pcm", + .Cases("ast", "pcm", "precompiled-header", InputKind(Language::Unknown, InputKind::Precompiled)) .Case("ir", Language::LLVM_IR) .Default(Language::Unknown); |