diff options
author | Sam McCall <sam.mccall@gmail.com> | 2024-01-19 14:02:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 14:02:04 +0100 |
commit | 1ab418beb3cc9c31ebb2d5779069426d761ceb8f (patch) | |
tree | c1ab3ce7eb67b72b701927c3a0ede08ea4d81ce2 /clang/lib/Tooling/CompilationDatabase.cpp | |
parent | 689da340edaa9f61dfae90e94ac69bfe189ee78f (diff) | |
download | llvm-1ab418beb3cc9c31ebb2d5779069426d761ceb8f.zip llvm-1ab418beb3cc9c31ebb2d5779069426d761ceb8f.tar.gz llvm-1ab418beb3cc9c31ebb2d5779069426d761ceb8f.tar.bz2 |
[Tooling] Fix FixedCompilationDatabase with header compile flags (#73913)
Summary:
The logic to strip positional args feels very fragile, but it's terribly
useful
when you want to use a tool on a file and have the exact argv.
Today doesn't work with header-parsing actions because these are
"precompile"
rather than "compile", from tooling's perspective it's all the same.
Reviewers:
kadircet
Subscribers:
Diffstat (limited to 'clang/lib/Tooling/CompilationDatabase.cpp')
-rw-r--r-- | clang/lib/Tooling/CompilationDatabase.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Tooling/CompilationDatabase.cpp b/clang/lib/Tooling/CompilationDatabase.cpp index 87ad8f2..9d8f0d0 100644 --- a/clang/lib/Tooling/CompilationDatabase.cpp +++ b/clang/lib/Tooling/CompilationDatabase.cpp @@ -156,6 +156,7 @@ private: bool CollectChildren = Collect; switch (A->getKind()) { case driver::Action::CompileJobClass: + case driver::Action::PrecompileJobClass: CollectChildren = true; break; @@ -293,7 +294,8 @@ static bool stripPositionalArgs(std::vector<const char *> Args, // -flto* flags make the BackendJobClass, which still needs analyzer. if (Cmd.getSource().getKind() == driver::Action::AssembleJobClass || Cmd.getSource().getKind() == driver::Action::BackendJobClass || - Cmd.getSource().getKind() == driver::Action::CompileJobClass) { + Cmd.getSource().getKind() == driver::Action::CompileJobClass || + Cmd.getSource().getKind() == driver::Action::PrecompileJobClass) { CompileAnalyzer.run(&Cmd.getSource()); } } |