003 File Manager
Current Path:
/usr/src/contrib/llvm-project/clang/lib/Tooling
usr
/
src
/
contrib
/
llvm-project
/
clang
/
lib
/
Tooling
/
📁
..
📁
ASTDiff
📄
AllTUsExecution.cpp
(6.2 KB)
📄
ArgumentsAdjusters.cpp
(5.64 KB)
📄
CommonOptionsParser.cpp
(7.12 KB)
📄
CompilationDatabase.cpp
(15.17 KB)
📁
Core
📁
DependencyScanning
📄
Execution.cpp
(3.9 KB)
📄
ExpandResponseFilesCompilationDatabase.cpp
(3.05 KB)
📄
FileMatchTrie.cpp
(6.96 KB)
📄
FixIt.cpp
(1 KB)
📄
GuessTargetAndModeCompilationDatabase.cpp
(1.67 KB)
📁
Inclusions
📄
InterpolatingCompilationDatabase.cpp
(21.22 KB)
📄
JSONCompilationDatabase.cpp
(14.9 KB)
📁
Refactoring
📄
Refactoring.cpp
(3.56 KB)
📄
RefactoringCallbacks.cpp
(8.84 KB)
📄
StandaloneExecution.cpp
(3.4 KB)
📁
Syntax
📄
Tooling.cpp
(25.65 KB)
📁
Transformer
Editing: GuessTargetAndModeCompilationDatabase.cpp
//===- GuessTargetAndModeCompilationDatabase.cpp --------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "clang/Tooling/CompilationDatabase.h" #include "clang/Tooling/Tooling.h" #include <memory> namespace clang { namespace tooling { namespace { class TargetAndModeAdderDatabase : public CompilationDatabase { public: TargetAndModeAdderDatabase(std::unique_ptr<CompilationDatabase> Base) : Base(std::move(Base)) { assert(this->Base != nullptr); } std::vector<std::string> getAllFiles() const override { return Base->getAllFiles(); } std::vector<CompileCommand> getAllCompileCommands() const override { return addTargetAndMode(Base->getAllCompileCommands()); } std::vector<CompileCommand> getCompileCommands(StringRef FilePath) const override { return addTargetAndMode(Base->getCompileCommands(FilePath)); } private: std::vector<CompileCommand> addTargetAndMode(std::vector<CompileCommand> Cmds) const { for (auto &Cmd : Cmds) { if (Cmd.CommandLine.empty()) continue; addTargetAndModeForProgramName(Cmd.CommandLine, Cmd.CommandLine.front()); } return Cmds; } std::unique_ptr<CompilationDatabase> Base; }; } // namespace std::unique_ptr<CompilationDatabase> inferTargetAndDriverMode(std::unique_ptr<CompilationDatabase> Base) { return std::make_unique<TargetAndModeAdderDatabase>(std::move(Base)); } } // namespace tooling } // namespace clang
Upload File
Create Folder