Home | History | Annotate | Download | only in ToolChains

Lines Matching refs:Clang

1 //===-- Clang.cpp - Clang+LLVM ToolChain Implementations --------*- C++ -*-===//
9 #include "Clang.h"
26 #include "clang/Basic/CharInfo.h"
27 #include "clang/Basic/CodeGenOptions.h"
28 #include "clang/Basic/LangOptions.h"
29 #include "clang/Basic/ObjCRuntime.h"
30 #include "clang/Basic/Version.h"
31 #include "clang/Driver/Distro.h"
32 #include "clang/Driver/DriverDiagnostic.h"
33 #include "clang/Driver/Options.h"
34 #include "clang/Driver/SanitizerArgs.h"
35 #include "clang/Driver/XRayArgs.h"
49 using namespace clang::driver;
50 using namespace clang::driver::tools;
51 using namespace clang;
56 Args.getLastArg(clang::driver::options::OPT_C, options::OPT_CC)) {
59 D.Diag(clang::diag::err_drv_argument_only_allowed_with)
809 // The default is to use Clang Instrumentation.
810 CmdArgs.push_back("-fprofile-instrument=clang");
874 D.Diag(clang::diag::err_drv_argument_only_allowed_with)
896 D.Diag(clang::diag::err_drv_argument_only_allowed_with)
908 D.Diag(clang::diag::err_drv_argument_only_allowed_with)
1128 // getAMDGPUCodeObjectVersion. This lets clang emit IR for amdgpu without
1140 void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
1601 void Clang::AddARMTargetArgs(const llvm::Triple &Triple, const ArgList &Args,
1644 void Clang::RenderTargetOptions(const llvm::Triple &EffectiveTriple,
1742 void Clang::AddAArch64TargetArgs(const ArgList &Args,
1834 void Clang::AddMIPSTargetArgs(const ArgList &Args,
1977 void Clang::AddPPCTargetArgs(const ArgList &Args,
2067 void Clang::AddRISCVTargetArgs(const ArgList &Args,
2079 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
2092 void Clang::AddSparcTargetArgs(const ArgList &Args,
2110 void Clang::AddSystemZTargetArgs(const ArgList &Args,
2136 void Clang::AddX86TargetArgs(const ArgList &Args,
2189 if (!Args.hasArg(clang::driver::options::OPT_march_EQ) &&
2194 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) {
2211 void Clang::AddHexagonTargetArgs(const ArgList &Args,
2232 void Clang::AddLanaiTargetArgs(const ArgList &Args,
2255 void Clang::AddWebAssemblyTargetArgs(const ArgList &Args,
2265 void Clang::AddVETargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const {
2271 void Clang::DumpCompilationDatabase(Compilation &C, StringRef Filename,
2286 D.Diag(clang::diag::err_drv_compilationdatabase) << Filename
2334 void Clang::DumpCompilationDatabaseFragmentToDir(
2669 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2680 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2729 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2740 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2803 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2895 D.Diag(clang::diag::warn_drv_overriding_flag_option)
2978 D.Diag(clang::diag::warn_drv_overriding_flag_option)
3385 // -fno-math-builtin: clang should not convert math builtins to intrinsics
3393 llvm::sys::path::append(Result, "clang");
3424 // this is enabled if we are using Clang's flavor of precompiled modules.
3499 // -fbuiltin-module-map can be used to load the clang
3896 // Normally -gsplit-dwarf is only useful with -gN. For IR input, Clang does
4012 // CodeView. Clang doesn't track end columns, just starting columns, which,
4177 void Clang::ConstructJob(Compilation &C, const JobAction &JA,
4354 // it claims when not running an assembler. Otherwise, clang would emit
4417 "Invalid action for clang tool.");
4632 // We normally speed up the clang process a bit by skipping destructors at
4653 [](const clang::driver::InputInfo &II) {
4762 // Otherwise use Clang's traditional behavior: like
5144 // compiler. This way, Clang can be used to compile code with scalable vectors
5155 // Add clang-cl arguments.
5344 // Don't warn about "clang -c -DPIC -fPIC test.i" because libtool.m4 assumes
5346 // When building with ccache, it will pass -D options to clang even on
5350 // Manually translate -O4 to -O3; let clang reject others.
5360 // Warn about ignored options to clang.
5417 // FIXME: Clang doesn't correctly handle -std= when the input language
5420 // splitting it between the driver and clang -cc1.
5677 // Clang can generate useful OpenMP code for these two runtime libraries.
5720 // By default, if Clang doesn't know how to generate useful OpenMP code
5745 D.Diag(clang::diag::err_drv_no_such_file) << Filename;
6073 D.Diag(clang::diag::warn_drv_unused_argument)
6088 D.Diag(clang::diag::warn_drv_unused_argument)
6299 // -fsigned-bitfields is default, and clang doesn't yet support
6306 // -fsigned-bitfields is default, and clang doesn't support -fno-for-scope.
6772 if (Output.getType() == clang::driver::types::TY_IFS_CPP ||
6773 Output.getType() == clang::driver::types::TY_IFS) {
6825 // Claim some arguments which clang supports automatically.
6831 // Claim some arguments which clang doesn't support, but we don't
6836 // Disable warnings for clang -E -emit-llvm foo.c
6840 Clang::Clang(const ToolChain &TC)
6841 // CAUTION! The first constructor argument ("clang") is not arbitrary,
6843 // whether that tool is Clang based on the Tool's Name as a string.
6844 : Tool("clang", "clang frontend", TC) {}
6846 Clang::~Clang() {}
6851 ObjCRuntime Clang::AddObjCRuntimeArgs(const ArgList &args,
7029 D.Diag(clang::diag::err_drv_invalid_value) << "/EH" << EHVal;
7045 void Clang::AddClangCLArgs(const ArgList &Args, types::ID InputType,
7099 // implemented in clang.
7175 D.Diag(clang::diag::err_drv_argument_not_allowed_with)
7186 D.Diag(clang::diag::err_drv_argument_not_allowed_with)
7263 const char *Clang::getBaseInputName(const ArgList &Args,
7268 const char *Clang::getBaseInputStem(const ArgList &Args,
7278 const char *Clang::getDependencyFileName(const ArgList &Args,
7343 // Don't warn about "clang -w -c foo.s"
7345 // and "clang -emit-llvm -c foo.s"
7367 CmdArgs.push_back(Clang::getBaseInputName(Args, Input));
7422 // Set the AT_producer to the clang version when using the integrated
7571 // clang-offload-bundler -type=bc
7654 // clang-offload-bundler -type=bc