clang 24.0.0git
clang::driver::ClangCLArgs Class Reference

Translate clang-cl options before and after offload argument filtering. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/Driver/ClangCLArgs.h"

Public Member Functions

 ClangCLArgs (const llvm::opt::ArgList &Args, const llvm::Triple &HostTriple)
 The argument values must outlive this translator.
bool translateArg (llvm::opt::Arg *A, llvm::opt::DerivedArgList &DAL, const llvm::opt::DerivedArgList *Owner=nullptr) const
 Append the canonical translation of A to DAL.

Static Public Member Functions

static llvm::opt::DerivedArgList * translateArgs (const llvm::opt::DerivedArgList &Args, const llvm::Triple &HostTriple, const llvm::opt::DerivedArgList &Owner)
 Translate a filtered list that may contain new clang-cl options, replacing earlier /O expansions.
static const char * translateMacroDefinition (const char *Value, const llvm::opt::ArgList &Args)
 Normalize MSVC's '#' macro separator, also used by Clang targeting MSVC and by arguments parsed after host/device filtering.

Detailed Description

Translate clang-cl options before and after offload argument filtering.

Definition at line 26 of file ClangCLArgs.h.

Constructor & Destructor Documentation

◆ ClangCLArgs()

ClangCLArgs::ClangCLArgs ( const llvm::opt::ArgList & Args,
const llvm::Triple & HostTriple )

The argument values must outlive this translator.

Definition at line 25 of file ClangCLArgs.cpp.

Referenced by translateArgs().

Member Function Documentation

◆ translateArg()

bool ClangCLArgs::translateArg ( llvm::opt::Arg * A,
llvm::opt::DerivedArgList & DAL,
const llvm::opt::DerivedArgList * Owner = nullptr ) const

Append the canonical translation of A to DAL.

Return false without modifying DAL if A is not handled. If supplied, Owner owns synthesized arguments instead of DAL and must outlive its consumers.

Definition at line 44 of file ClangCLArgs.cpp.

References clang::getDriverOptTable().

Referenced by translateArgs().

◆ translateArgs()

DerivedArgList * ClangCLArgs::translateArgs ( const llvm::opt::DerivedArgList & Args,
const llvm::Triple & HostTriple,
const llvm::opt::DerivedArgList & Owner )
static

Translate a filtered list that may contain new clang-cl options, replacing earlier /O expansions.

The caller owns the returned list; Owner owns its synthesized arguments and must outlive its consumers.

Definition at line 175 of file ClangCLArgs.cpp.

References ClangCLArgs(), and translateArg().

Referenced by clang::driver::Compilation::getArgsForToolChain(), and clang::driver::ToolChain::TranslateOpenMPTargetArgs().

◆ translateMacroDefinition()

const char * ClangCLArgs::translateMacroDefinition ( const char * Value,
const llvm::opt::ArgList & Args )
static

Normalize MSVC's '#' macro separator, also used by Clang targeting MSVC and by arguments parsed after host/device filtering.

Any replacement string has the lifetime of Args; otherwise return Value unchanged.

Definition at line 190 of file ClangCLArgs.cpp.

Referenced by clang::driver::ToolChain::TranslateOpenMPTargetArgs(), and clang::driver::ToolChain::TranslateXarchArgs().


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