Clang still has support for running gcc for performing various stages
of a build. Right now it looks like this is used for
* Supporting Fortran in the clang driver
* Running an assembler or linker in systems we don't yet know how to
run them directly.
It looks like the gcc::Precompile is a vestige from the days when we
supported using clang for C and running gcc for c++. This patch removes it
(yes, we have no tests for it).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195586
91177308-0d34-0410-b5e6-
96231b3b80d8
if (!Preprocess)
Preprocess.reset(new tools::gcc::Preprocess(*this));
return Preprocess.get();
- case Action::PrecompileJobClass:
- if (!Precompile)
- Precompile.reset(new tools::gcc::Precompile(*this));
- return Precompile.get();
case Action::CompileJobClass:
if (!Compile)
Compile.reset(new tools::gcc::Compile(*this));
private:
mutable OwningPtr<tools::gcc::Preprocess> Preprocess;
- mutable OwningPtr<tools::gcc::Precompile> Precompile;
mutable OwningPtr<tools::gcc::Compile> Compile;
};
CmdArgs.push_back("-E");
}
-void gcc::Precompile::RenderExtraToolArgs(const JobAction &JA,
- ArgStringList &CmdArgs) const {
- // The type is good enough.
-}
-
void gcc::Compile::RenderExtraToolArgs(const JobAction &JA,
ArgStringList &CmdArgs) const {
const Driver &D = getToolChain().getDriver();
llvm::opt::ArgStringList &CmdArgs) const;
};
- class LLVM_LIBRARY_VISIBILITY Precompile : public Common {
- public:
- Precompile(const ToolChain &TC) : Common("gcc::Precompile",
- "gcc precompile", TC) {}
-
- virtual bool hasGoodDiagnostics() const { return true; }
- virtual bool hasIntegratedCPP() const { return true; }
-
- virtual void RenderExtraToolArgs(const JobAction &JA,
- llvm::opt::ArgStringList &CmdArgs) const;
- };
-
class LLVM_LIBRARY_VISIBILITY Compile : public Common {
public:
Compile(const ToolChain &TC) : Common("gcc::Compile",