clang 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::driver::tools::Clang Class Reference

Clang compiler tool. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Driver/ToolChains/Clang.h"

Inheritance diagram for clang::driver::tools::Clang:
Inheritance graph
[legend]

Public Member Functions

 Clang (const ToolChain &TC, bool HasIntegratedBackend=true)
 
 ~Clang () override
 
bool hasGoodDiagnostics () const override
 Does this tool have "good" standardized diagnostics, or should the driver add an additional "command failed" diagnostic on failures.
 
bool hasIntegratedAssembler () const override
 
bool hasIntegratedBackend () const override
 
bool hasIntegratedCPP () const override
 
bool canEmitIR () const override
 
void ConstructJob (Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const override
 ConstructJob - Construct jobs to perform the action JA, writing to Output and with Inputs, and add the jobs to C.
 
- Public Member Functions inherited from clang::driver::Tool
 Tool (const char *Name, const char *ShortName, const ToolChain &TC)
 
virtual ~Tool ()
 
const char * getName () const
 
const char * getShortName () const
 
const ToolChaingetToolChain () const
 
virtual bool hasIntegratedAssembler () const
 
virtual bool hasIntegratedBackend () const
 
virtual bool canEmitIR () const
 
virtual bool hasIntegratedCPP () const =0
 
virtual bool isLinkJob () const
 
virtual bool isDsymutilJob () const
 
virtual bool hasGoodDiagnostics () const
 Does this tool have "good" standardized diagnostics, or should the driver add an additional "command failed" diagnostic on failures.
 
virtual void ConstructJob (Compilation &C, const JobAction &JA, const InputInfo &Output, const InputInfoList &Inputs, const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const =0
 ConstructJob - Construct jobs to perform the action JA, writing to Output and with Inputs, and add the jobs to C.
 
virtual void ConstructJobMultipleOutputs (Compilation &C, const JobAction &JA, const InputInfoList &Outputs, const InputInfoList &Inputs, const llvm::opt::ArgList &TCArgs, const char *LinkingOutput) const
 Construct jobs to perform the action JA, writing to the Outputs and with Inputs, and add the jobs to C.
 

Static Public Member Functions

static const char * getBaseInputName (const llvm::opt::ArgList &Args, const InputInfo &Input)
 
static const char * getBaseInputStem (const llvm::opt::ArgList &Args, const InputInfoList &Inputs)
 
static const char * getDependencyFileName (const llvm::opt::ArgList &Args, const InputInfoList &Inputs)
 

Detailed Description

Clang compiler tool.

Definition at line 28 of file Clang.h.

Constructor & Destructor Documentation

◆ Clang()

Clang::Clang ( const ToolChain TC,
bool  HasIntegratedBackend = true 
)

Definition at line 8074 of file Clang.cpp.

◆ ~Clang()

Clang::~Clang ( )
override

Definition at line 8080 of file Clang.cpp.

Member Function Documentation

◆ canEmitIR()

bool clang::driver::tools::Clang::canEmitIR ( ) const
inlineoverridevirtual

Reimplemented from clang::driver::Tool.

Definition at line 113 of file Clang.h.

◆ ConstructJob()

void Clang::ConstructJob ( Compilation C,
const JobAction JA,
const InputInfo Output,
const InputInfoList Inputs,
const llvm::opt::ArgList &  TCArgs,
const char *  LinkingOutput 
) const
overridevirtual

ConstructJob - Construct jobs to perform the action JA, writing to Output and with Inputs, and add the jobs to C.

Parameters
TCArgs- The argument list for this toolchain, with any tool chain specific translations applied.
LinkingOutput- If this output will eventually feed the linker, then this is the final output name of the linked image.

Implements clang::driver::Tool.

Definition at line 4941 of file Clang.cpp.

References clang::driver::XRayArgs::addArgs(), clang::driver::ToolChain::addClangTargetOptions(), clang::driver::ToolChain::addClangWarningOptions(), addDashXForInput(), addExceptionArgs(), clang::driver::tools::addMachineOutlinerArgs(), clang::driver::tools::addMCModel(), clang::driver::tools::addOpenMPHostOffloadingArgs(), clang::driver::tools::addOutlineAtomicsArgs(), addPGOAndCoverageFlags(), clang::driver::tools::PScpu::addProfileRTArgs(), clang::driver::tools::PScpu::addSanitizerArgs(), clang::CodeGenOptions::All, clang::Asm, clang::driver::ToolChain::Asynchronous, clang::driver::ResponseFileSupport::AtFileUTF8(), bytes(), clang::C, clang::driver::ToolChain::canSplitThinLTOUnit(), CheckCodeGenerationOptions(), checkRemarksOptions(), clang::driver::tools::claimNoWarnArgs(), CollectArgsForIntegratedAssembler(), clang::driver::ToolChain::computeMSVCVersion(), clang::CUDA_90, clang::CudaVersionToString(), D, clang::driver::Driver::Diag(), clang::diagGroupFromCLWarningID(), EscapeSpacesAndBackslashes(), Filename, clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getAuxTriple(), getBaseInputName(), getBaseInputStem(), clang::driver::tools::getCPUName(), clang::driver::ToolChain::getDefaultUnwindTableLevel(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getEffectiveTriple(), clang::driver::ToolChain::GetExceptionModel(), clang::driver::InputInfo::getFilename(), getFramePointerKind(), clang::driver::InputInfo::getInputArg(), clang::driver::ToolChain::getInputFilename(), clang::driver::Action::getInputs(), clang::driver::Action::getKind(), clang::driver::tools::getLastProfileSampleUseArg(), clang::driver::Action::getOffloadingDeviceKind(), clang::driver::types::getPreprocessedType(), clang::driver::ToolChain::getRTTIMode(), clang::driver::ToolChain::getSanitizerArgs(), clang::driver::tools::getStatsFileName(), clang::driver::tools::getTargetFeatures(), clang::driver::ToolChain::getThreadModel(), clang::driver::Tool::getToolChain(), clang::driver::ToolChain::getTriple(), clang::driver::ToolChain::getTripleString(), clang::driver::Action::getType(), clang::driver::InputInfo::getType(), clang::driver::types::getTypeName(), clang::DiagnosticIDs::getWarningOptionForGroup(), clang::driver::ToolChain::getXRayArgs(), handleAMDGPUCodeObjectVersionOptions(), clang::driver::ToolChain::hasBlocksRuntime(), clang::headerIncludeFilteringKindToString(), clang::headerIncludeFormatKindToString(), clang::driver::Action::InputClass, clang::Invalid, clang::driver::ToolChain::IsBlocksDefault(), clang::driver::types::isCXX(), clang::driver::Action::isDeviceOffloading(), clang::driver::ToolChain::IsEncodeExtendedBlockSignatureDefault(), clang::driver::InputInfo::isFilename(), clang::driver::Distro::IsGentoo(), clang::driver::Action::isHostOffloading(), clang::driver::ToolChain::IsIntegratedAssemblerDefault(), clang::driver::types::isLLVMIR(), clang::ObjCRuntime::isNeXTFamily(), clang::driver::InputInfo::isNothing(), clang::driver::types::isObjC(), clang::driver::Action::isOffloading(), clang::driver::types::isOpenCL(), clang::driver::isOptimizationLevelFast(), clang::driver::ToolChain::isThreadModelSupported(), clang::driver::tools::isTLSDESCEnabled(), clang::driver::tools::isUseSeparateSections(), clang::driver::LTOK_Full, clang::driver::LTOK_None, clang::driver::LTOK_Thin, clang::CodeGenOptions::None, clang::driver::tools::None, clang::CodeGenOptions::NonLeaf, clang::driver::Action::OFK_Cuda, clang::driver::Action::OFK_HIP, clang::driver::Action::OFK_Host, clang::driver::Action::OFK_None, clang::driver::Action::OFK_OpenMP, clang::driver::Driver::OMPRT_IOMP5, clang::driver::Driver::OMPRT_OMP, clang::driver::tools::ParseFunctionAlignment(), clang::driver::ToolChain::parseInlineAsmUsingAsmParser(), ParseMPreferVectorWidth(), clang::driver::tools::ParsePICArgs(), ProcessVSRuntimeLibrary(), clang::driver::tools::RelocationModelName(), RenderAnalyzerOptions(), RenderARCMigrateToolOptions(), RenderBuiltinOptions(), RenderCharacterOptions(), renderDebugOptions(), RenderDiagnosticsOptions(), RenderFloatingPointOptions(), RenderHLSLOptions(), RenderModulesOptions(), RenderObjCOptions(), RenderOpenACCOptions(), RenderOpenCLOptions(), renderRemarksOptions(), RenderSCPOptions(), RenderSSPOptions(), RenderTrivialAutoVarInitOptions(), clang::CodeGenOptions::Reserved, clang::driver::ToolChain::RLT_CompilerRT, clang::driver::ToolChain::RM_Disabled, ShouldEnableAutolink(), shouldEnableVectorizerAtOLevel(), clang::driver::tools::Split, clang::driver::tools::SplitDebugName(), Std, clang::driver::ToolChain::SupportsProfiling(), clang::driver::ToolChain::Synchronous, clang::driver::types::TY_INVALID, clang::UNKNOWN, clang::driver::ToolChain::UseDwarfDebugFlags(), clang::driver::ToolChain::useIntegratedAs(), V, and clang::driver::willEmitRemarks().

◆ getBaseInputName()

const char * Clang::getBaseInputName ( const llvm::opt::ArgList &  Args,
const InputInfo Input 
)
static

◆ getBaseInputStem()

const char * Clang::getBaseInputStem ( const llvm::opt::ArgList &  Args,
const InputInfoList Inputs 
)
static

Definition at line 8478 of file Clang.cpp.

References getBaseInputName().

Referenced by ConstructJob(), and getDependencyFileName().

◆ getDependencyFileName()

const char * Clang::getDependencyFileName ( const llvm::opt::ArgList &  Args,
const InputInfoList Inputs 
)
static

Definition at line 8488 of file Clang.cpp.

References getBaseInputStem().

◆ hasGoodDiagnostics()

bool clang::driver::tools::Clang::hasGoodDiagnostics ( ) const
inlineoverridevirtual

Does this tool have "good" standardized diagnostics, or should the driver add an additional "command failed" diagnostic on failures.

Reimplemented from clang::driver::Tool.

Definition at line 109 of file Clang.h.

◆ hasIntegratedAssembler()

bool clang::driver::tools::Clang::hasIntegratedAssembler ( ) const
inlineoverridevirtual

Reimplemented from clang::driver::Tool.

Definition at line 110 of file Clang.h.

◆ hasIntegratedBackend()

bool clang::driver::tools::Clang::hasIntegratedBackend ( ) const
inlineoverridevirtual

Reimplemented from clang::driver::Tool.

Definition at line 111 of file Clang.h.

◆ hasIntegratedCPP()

bool clang::driver::tools::Clang::hasIntegratedCPP ( ) const
inlineoverridevirtual

Implements clang::driver::Tool.

Definition at line 112 of file Clang.h.


The documentation for this class was generated from the following files: