diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp')
| -rw-r--r-- | contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp b/contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp index 45ef96e12b3b..a2dd63f9eb77 100644 --- a/contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp +++ b/contrib/llvm-project/clang/lib/Driver/XRayArgs.cpp @@ -52,7 +52,7 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { } else if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isOSNetBSD() || - Triple.getOS() == llvm::Triple::Darwin) { + Triple.isMacOSX()) { if (Triple.getArch() != llvm::Triple::x86_64) { D.Diag(diag::err_drv_clang_unsupported) << (std::string(XRayInstrumentOption) + " on " + Triple.str()); @@ -70,6 +70,13 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { D.Diag(diag::err_drv_clang_unsupported) << (std::string(XRayInstrumentOption) + " on " + Triple.str()); } + + // Both XRay and -fpatchable-function-entry use + // TargetOpcode::PATCHABLE_FUNCTION_ENTER. + if (Arg *A = Args.getLastArg(options::OPT_fpatchable_function_entry_EQ)) + D.Diag(diag::err_drv_argument_not_allowed_with) + << "-fxray-instrument" << A->getSpelling(); + XRayInstrument = true; if (const Arg *A = Args.getLastArg(options::OPT_fxray_instruction_threshold_, @@ -129,7 +136,7 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { // are treated as actual dependencies. for (const auto &Filename : Args.getAllArgValues(options::OPT_fxray_always_instrument)) { - if (llvm::sys::fs::exists(Filename)) { + if (D.getVFS().exists(Filename)) { AlwaysInstrumentFiles.push_back(Filename); ExtraDeps.push_back(Filename); } else @@ -138,7 +145,7 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { for (const auto &Filename : Args.getAllArgValues(options::OPT_fxray_never_instrument)) { - if (llvm::sys::fs::exists(Filename)) { + if (D.getVFS().exists(Filename)) { NeverInstrumentFiles.push_back(Filename); ExtraDeps.push_back(Filename); } else @@ -147,7 +154,7 @@ XRayArgs::XRayArgs(const ToolChain &TC, const ArgList &Args) { for (const auto &Filename : Args.getAllArgValues(options::OPT_fxray_attr_list)) { - if (llvm::sys::fs::exists(Filename)) { + if (D.getVFS().exists(Filename)) { AttrListFiles.push_back(Filename); ExtraDeps.push_back(Filename); } else |
