class Clang

Declaration

class Clang : public Tool { /* full declaration omitted */ };

Description

Clang compiler tool.

Declared at: clang/lib/Driver/ToolChains/Clang.h:28

Inherits from: Tool

Member Variables

private bool HasBackend
private std::unique_ptr<llvm::raw_fd_ostream> CompilationDatabase = nullptr

Method Overview

  • private void AddAArch64TargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddARM64TargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddARMTargetArgs(const llvm::Triple & Triple, const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs, bool KernelOrKext) const
  • private void AddClangCLArgs(const llvm::opt::ArgList & Args, types::ID InputType, llvm::opt::ArgStringList & CmdArgs, codegenoptions::DebugInfoKind * DebugInfoKind, bool * EmitCodeView) const
  • private void AddHexagonTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddLanaiTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddMIPSTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private clang::ObjCRuntime AddObjCRuntimeArgs(const llvm::opt::ArgList & args, const clang::driver::InputInfoList & inputs, llvm::opt::ArgStringList & cmdArgs, clang::driver::tools::Clang::RewriteKind rewrite) const
  • private void AddPPCTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddPreprocessingOptions(clang::driver::Compilation & C, const clang::driver::JobAction & JA, const clang::driver::Driver & D, const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs, const clang::driver::InputInfo & Output, const clang::driver::InputInfoList & Inputs) const
  • private void AddR600TargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddRISCVTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddSparcTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddSystemZTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddVETargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddWebAssemblyTargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • private void AddX86TargetArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
  • public Clang(const clang::driver::ToolChain & TC, bool HasIntegratedBackend = true)
  • public void ConstructJob(clang::driver::Compilation & C, const clang::driver::JobAction & JA, const clang::driver::InputInfo & Output, const clang::driver::InputInfoList & Inputs, const llvm::opt::ArgList & TCArgs, const char * LinkingOutput) const
  • private void DumpCompilationDatabase(clang::driver::Compilation & C, llvm::StringRef Filename, llvm::StringRef Target, const clang::driver::InputInfo & Output, const clang::driver::InputInfo & Input, const llvm::opt::ArgList & Args) const
  • private void DumpCompilationDatabaseFragmentToDir(llvm::StringRef Dir, clang::driver::Compilation & C, llvm::StringRef Target, const clang::driver::InputInfo & Output, const clang::driver::InputInfo & Input, const llvm::opt::ArgList & Args) const
  • private void RenderTargetOptions(const llvm::Triple & EffectiveTriple, const llvm::opt::ArgList & Args, bool KernelOrKext, llvm::opt::ArgStringList & CmdArgs) const
  • public bool canEmitIR() const
  • public static const char * getBaseInputName(const llvm::opt::ArgList & Args, const clang::driver::InputInfo & Input)
  • public static const char * getBaseInputStem(const llvm::opt::ArgList & Args, const clang::driver::InputInfoList & Inputs)
  • public static const char * getDependencyFileName(const llvm::opt::ArgList & Args, const clang::driver::InputInfoList & Inputs)
  • public bool hasGoodDiagnostics() const
  • public bool hasIntegratedAssembler() const
  • public bool hasIntegratedBackend() const
  • public bool hasIntegratedCPP() const
  • public ~Clang()

Inherited from Tool:

Methods

void AddAArch64TargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:52

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddARM64TargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:58

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddARMTargetArgs(
    const llvm::Triple& Triple,
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs,
    bool KernelOrKext) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:54

Parameters

const llvm::Triple& Triple
const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs
bool KernelOrKext

void AddClangCLArgs(
    const llvm::opt::ArgList& Args,
    types::ID InputType,
    llvm::opt::ArgStringList& CmdArgs,
    codegenoptions::DebugInfoKind* DebugInfoKind,
    bool* EmitCodeView) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:90

Parameters

const llvm::opt::ArgList& Args
types::ID InputType
llvm::opt::ArgStringList& CmdArgs
codegenoptions::DebugInfoKind* DebugInfoKind
bool* EmitCodeView

void AddHexagonTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:74

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddLanaiTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:76

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddMIPSTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:60

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

clang::ObjCRuntime AddObjCRuntimeArgs(
    const llvm::opt::ArgList& args,
    const clang::driver::InputInfoList& inputs,
    llvm::opt::ArgStringList& cmdArgs,
    clang::driver::tools::Clang::RewriteKind
        rewrite) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:85

Parameters

const llvm::opt::ArgList& args
const clang::driver::InputInfoList& inputs
llvm::opt::ArgStringList& cmdArgs
clang::driver::tools::Clang::RewriteKind rewrite

void AddPPCTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:62

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddPreprocessingOptions(
    clang::driver::Compilation& C,
    const clang::driver::JobAction& JA,
    const clang::driver::Driver& D,
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs,
    const clang::driver::InputInfo& Output,
    const clang::driver::InputInfoList& Inputs)
    const

Declared at: clang/lib/Driver/ToolChains/Clang.h:42

Parameters

clang::driver::Compilation& C
const clang::driver::JobAction& JA
const clang::driver::Driver& D
const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs
const clang::driver::InputInfo& Output
const clang::driver::InputInfoList& Inputs

void AddR600TargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:64

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddRISCVTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:66

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddSparcTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:68

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddSystemZTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:70

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddVETargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:80

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddWebAssemblyTargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:78

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

void AddX86TargetArgs(
    const llvm::opt::ArgList& Args,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:72

Parameters

const llvm::opt::ArgList& Args
llvm::opt::ArgStringList& CmdArgs

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:106

Parameters

const clang::driver::ToolChain& TC
bool HasIntegratedBackend = true

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

Description

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:115

Parameters

clang::driver::Compilation& C
const clang::driver::JobAction& JA
const clang::driver::InputInfo& Output
const clang::driver::InputInfoList& Inputs
const llvm::opt::ArgList& TCArgs
- The argument list for this toolchain, with any tool chain specific translations applied.
const char* LinkingOutput
- If this output will eventually feed the linker, then this is the final output name of the linked image.

void DumpCompilationDatabase(
    clang::driver::Compilation& C,
    llvm::StringRef Filename,
    llvm::StringRef Target,
    const clang::driver::InputInfo& Output,
    const clang::driver::InputInfo& Input,
    const llvm::opt::ArgList& Args) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:96

Parameters

clang::driver::Compilation& C
llvm::StringRef Filename
llvm::StringRef Target
const clang::driver::InputInfo& Output
const clang::driver::InputInfo& Input
const llvm::opt::ArgList& Args

void DumpCompilationDatabaseFragmentToDir(
    llvm::StringRef Dir,
    clang::driver::Compilation& C,
    llvm::StringRef Target,
    const clang::driver::InputInfo& Output,
    const clang::driver::InputInfo& Input,
    const llvm::opt::ArgList& Args) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:101

Parameters

llvm::StringRef Dir
clang::driver::Compilation& C
llvm::StringRef Target
const clang::driver::InputInfo& Output
const clang::driver::InputInfo& Input
const llvm::opt::ArgList& Args

void RenderTargetOptions(
    const llvm::Triple& EffectiveTriple,
    const llvm::opt::ArgList& Args,
    bool KernelOrKext,
    llvm::opt::ArgStringList& CmdArgs) const

Declared at: clang/lib/Driver/ToolChains/Clang.h:48

Parameters

const llvm::Triple& EffectiveTriple
const llvm::opt::ArgList& Args
bool KernelOrKext
llvm::opt::ArgStringList& CmdArgs

bool canEmitIR() const

Declared at: clang/lib/Driver/ToolChains/Clang.h:113

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:34

Parameters

const llvm::opt::ArgList& Args
const clang::driver::InputInfo& Input

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:36

Parameters

const llvm::opt::ArgList& Args
const clang::driver::InputInfoList& Inputs

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:38

Parameters

const llvm::opt::ArgList& Args
const clang::driver::InputInfoList& Inputs

bool hasGoodDiagnostics() const

Description

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

Declared at: clang/lib/Driver/ToolChains/Clang.h:109

bool hasIntegratedAssembler() const

Declared at: clang/lib/Driver/ToolChains/Clang.h:110

bool hasIntegratedBackend() const

Declared at: clang/lib/Driver/ToolChains/Clang.h:111

bool hasIntegratedCPP() const

Declared at: clang/lib/Driver/ToolChains/Clang.h:112

~Clang()

Declared at: clang/lib/Driver/ToolChains/Clang.h:107