aboutsummaryrefslogtreecommitdiff
path: root/clang/tools
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/clang-check/CMakeLists.txt1
-rw-r--r--clang/tools/clang-check/ClangCheck.cpp4
-rw-r--r--clang/tools/clang-installapi/CMakeLists.txt1
-rw-r--r--clang/tools/clang-installapi/ClangInstallAPI.cpp4
-rw-r--r--clang/tools/clang-installapi/Options.cpp55
-rw-r--r--clang/tools/driver/CMakeLists.txt1
-rw-r--r--clang/tools/driver/cc1_main.cpp2
-rw-r--r--clang/tools/driver/cc1as_main.cpp8
-rw-r--r--clang/tools/driver/driver.cpp2
-rw-r--r--clang/tools/offload-arch/AMDGPUArchByHIP.cpp14
10 files changed, 49 insertions, 43 deletions
diff --git a/clang/tools/clang-check/CMakeLists.txt b/clang/tools/clang-check/CMakeLists.txt
index 5493aa4..1efcc91 100644
--- a/clang/tools/clang-check/CMakeLists.txt
+++ b/clang/tools/clang-check/CMakeLists.txt
@@ -14,6 +14,7 @@ clang_target_link_libraries(clang-check
clangBasic
clangDriver
clangFrontend
+ clangOptions
clangRewriteFrontend
clangSerialization
clangStaticAnalyzerFrontend
diff --git a/clang/tools/clang-check/ClangCheck.cpp b/clang/tools/clang-check/ClangCheck.cpp
index fa6dd06..80255c6 100644
--- a/clang/tools/clang-check/ClangCheck.cpp
+++ b/clang/tools/clang-check/ClangCheck.cpp
@@ -16,9 +16,9 @@
//===----------------------------------------------------------------------===//
#include "clang/AST/ASTConsumer.h"
-#include "clang/Driver/Options.h"
#include "clang/Frontend/ASTConsumers.h"
#include "clang/Frontend/CompilerInstance.h"
+#include "clang/Options/Options.h"
#include "clang/Rewrite/Frontend/FixItRewriter.h"
#include "clang/Rewrite/Frontend/FrontendActions.h"
#include "clang/StaticAnalyzer/Frontend/FrontendActions.h"
@@ -34,8 +34,8 @@
#include "llvm/Support/Signals.h"
#include "llvm/Support/TargetSelect.h"
-using namespace clang::driver;
using namespace clang::tooling;
+using namespace clang;
using namespace llvm;
static cl::extrahelp CommonHelp(CommonOptionsParser::HelpMessage);
diff --git a/clang/tools/clang-installapi/CMakeLists.txt b/clang/tools/clang-installapi/CMakeLists.txt
index 9c0d9df..54bc804 100644
--- a/clang/tools/clang-installapi/CMakeLists.txt
+++ b/clang/tools/clang-installapi/CMakeLists.txt
@@ -25,6 +25,7 @@ clang_target_link_libraries(clang-installapi
clangAST
clangInstallAPI
clangBasic
+ clangOptions
clangDriver
clangFrontend
clangTooling
diff --git a/clang/tools/clang-installapi/ClangInstallAPI.cpp b/clang/tools/clang-installapi/ClangInstallAPI.cpp
index 4e66485..8bef969 100644
--- a/clang/tools/clang-installapi/ClangInstallAPI.cpp
+++ b/clang/tools/clang-installapi/ClangInstallAPI.cpp
@@ -35,7 +35,7 @@
using namespace clang;
using namespace clang::installapi;
-using namespace clang::driver::options;
+using namespace clang::options;
using namespace llvm::opt;
using namespace llvm::MachO;
@@ -71,7 +71,7 @@ static bool runFrontend(StringRef ProgName, Twine Label, bool Verbose,
static bool run(ArrayRef<const char *> Args, const char *ProgName) {
// Setup Diagnostics engine.
DiagnosticOptions DiagOpts;
- const llvm::opt::OptTable &ClangOpts = clang::driver::getDriverOptTable();
+ const llvm::opt::OptTable &ClangOpts = getDriverOptTable();
unsigned MissingArgIndex, MissingArgCount;
llvm::opt::InputArgList ParsedArgs = ClangOpts.ParseArgs(
ArrayRef(Args).slice(1), MissingArgIndex, MissingArgCount);
diff --git a/clang/tools/clang-installapi/Options.cpp b/clang/tools/clang-installapi/Options.cpp
index 64324a3..f484d6f 100644
--- a/clang/tools/clang-installapi/Options.cpp
+++ b/clang/tools/clang-installapi/Options.cpp
@@ -26,8 +26,6 @@ using namespace llvm;
using namespace llvm::opt;
using namespace llvm::MachO;
-namespace drv = clang::driver::options;
-
namespace clang {
namespace installapi {
@@ -109,7 +107,7 @@ getArgListFromJSON(const StringRef Input, llvm::opt::OptTable *Table,
bool Options::processDriverOptions(InputArgList &Args) {
// Handle inputs.
- for (const StringRef Path : Args.getAllArgValues(drv::OPT_INPUT)) {
+ for (const StringRef Path : Args.getAllArgValues(options::OPT_INPUT)) {
// Assume any input that is not a directory is a filelist.
// InstallAPI does not accept multiple directories, so retain the last one.
if (FM->getOptionalDirectoryRef(Path))
@@ -120,7 +118,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Handle output.
SmallString<PATH_MAX> OutputPath;
- if (auto *Arg = Args.getLastArg(drv::OPT_o)) {
+ if (auto *Arg = Args.getLastArg(options::OPT_o)) {
OutputPath = Arg->getValue();
if (OutputPath != "-")
FM->makeAbsolutePath(OutputPath);
@@ -132,10 +130,10 @@ bool Options::processDriverOptions(InputArgList &Args) {
}
// Do basic error checking first for mixing -target and -arch options.
- auto *ArgArch = Args.getLastArgNoClaim(drv::OPT_arch);
- auto *ArgTarget = Args.getLastArgNoClaim(drv::OPT_target);
+ auto *ArgArch = Args.getLastArgNoClaim(options::OPT_arch);
+ auto *ArgTarget = Args.getLastArgNoClaim(options::OPT_target);
auto *ArgTargetVariant =
- Args.getLastArgNoClaim(drv::OPT_darwin_target_variant);
+ Args.getLastArgNoClaim(options::OPT_darwin_target_variant);
if (ArgArch && (ArgTarget || ArgTargetVariant)) {
Diags->Report(clang::diag::err_drv_argument_not_allowed_with)
<< ArgArch->getAsString(Args)
@@ -143,7 +141,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
return false;
}
- auto *ArgMinTargetOS = Args.getLastArgNoClaim(drv::OPT_mtargetos_EQ);
+ auto *ArgMinTargetOS = Args.getLastArgNoClaim(options::OPT_mtargetos_EQ);
if ((ArgTarget || ArgTargetVariant) && ArgMinTargetOS) {
Diags->Report(clang::diag::err_drv_cannot_mix_options)
<< ArgTarget->getAsString(Args) << ArgMinTargetOS->getAsString(Args);
@@ -152,7 +150,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Capture target triples first.
if (ArgTarget) {
- for (const Arg *A : Args.filtered(drv::OPT_target)) {
+ for (const Arg *A : Args.filtered(options::OPT_target)) {
A->claim();
llvm::Triple TargetTriple(A->getValue());
Target TAPITarget = Target(TargetTriple);
@@ -168,7 +166,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
// Capture target variants.
DriverOpts.Zippered = ArgTargetVariant != nullptr;
- for (Arg *A : Args.filtered(drv::OPT_darwin_target_variant)) {
+ for (Arg *A : Args.filtered(options::OPT_darwin_target_variant)) {
A->claim();
Triple Variant(A->getValue());
if (Variant.getVendor() != Triple::Apple) {
@@ -213,7 +211,7 @@ bool Options::processDriverOptions(InputArgList &Args) {
DriverOpts.Targets[TAPIVariant] = Variant;
}
- DriverOpts.Verbose = Args.hasArgNoClaim(drv::OPT_v);
+ DriverOpts.Verbose = Args.hasArgNoClaim(options::OPT_v);
return true;
}
@@ -407,7 +405,7 @@ bool Options::processOptionList(InputArgList &Args,
bool Options::processLinkerOptions(InputArgList &Args) {
// Handle required arguments.
- if (const Arg *A = Args.getLastArg(drv::OPT_install__name))
+ if (const Arg *A = Args.getLastArg(options::OPT_install__name))
LinkerOpts.InstallName = A->getValue();
if (LinkerOpts.InstallName.empty()) {
Diags->Report(diag::err_no_install_name);
@@ -415,28 +413,29 @@ bool Options::processLinkerOptions(InputArgList &Args) {
}
// Defaulted or optional arguments.
- if (auto *Arg = Args.getLastArg(drv::OPT_current__version))
+ if (auto *Arg = Args.getLastArg(options::OPT_current__version))
LinkerOpts.CurrentVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(drv::OPT_compatibility__version))
+ if (auto *Arg = Args.getLastArg(options::OPT_compatibility__version))
LinkerOpts.CompatVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(drv::OPT_compatibility__version))
+ if (auto *Arg = Args.getLastArg(options::OPT_compatibility__version))
LinkerOpts.CompatVersion.parse64(Arg->getValue());
- if (auto *Arg = Args.getLastArg(drv::OPT_umbrella))
+ if (auto *Arg = Args.getLastArg(options::OPT_umbrella))
LinkerOpts.ParentUmbrella = Arg->getValue();
- LinkerOpts.IsDylib = Args.hasArg(drv::OPT_dynamiclib);
+ LinkerOpts.IsDylib = Args.hasArg(options::OPT_dynamiclib);
- for (auto *Arg : Args.filtered(drv::OPT_alias_list)) {
+ for (auto *Arg : Args.filtered(options::OPT_alias_list)) {
LinkerOpts.AliasLists.emplace_back(Arg->getValue());
Arg->claim();
}
- LinkerOpts.AppExtensionSafe = Args.hasFlag(
- drv::OPT_fapplication_extension, drv::OPT_fno_application_extension,
- /*Default=*/LinkerOpts.AppExtensionSafe);
+ LinkerOpts.AppExtensionSafe =
+ Args.hasFlag(options::OPT_fapplication_extension,
+ options::OPT_fno_application_extension,
+ /*Default=*/LinkerOpts.AppExtensionSafe);
if (::getenv("LD_NO_ENCRYPT") != nullptr)
LinkerOpts.AppExtensionSafe = true;
@@ -446,7 +445,7 @@ bool Options::processLinkerOptions(InputArgList &Args) {
// Capture library paths.
PathSeq LibraryPaths;
- for (const Arg *A : Args.filtered(drv::OPT_L)) {
+ for (const Arg *A : Args.filtered(options::OPT_L)) {
LibraryPaths.emplace_back(A->getValue());
A->claim();
}
@@ -461,7 +460,7 @@ bool Options::processLinkerOptions(InputArgList &Args) {
// invocations.
bool Options::processFrontendOptions(InputArgList &Args) {
// Capture language mode.
- if (auto *A = Args.getLastArgNoClaim(drv::OPT_x)) {
+ if (auto *A = Args.getLastArgNoClaim(options::OPT_x)) {
FEOpts.LangMode = llvm::StringSwitch<clang::Language>(A->getValue())
.Case("c", clang::Language::C)
.Case("c++", clang::Language::CXX)
@@ -475,15 +474,15 @@ bool Options::processFrontendOptions(InputArgList &Args) {
return false;
}
}
- for (auto *A : Args.filtered(drv::OPT_ObjC, drv::OPT_ObjCXX)) {
- if (A->getOption().matches(drv::OPT_ObjC))
+ for (auto *A : Args.filtered(options::OPT_ObjC, options::OPT_ObjCXX)) {
+ if (A->getOption().matches(options::OPT_ObjC))
FEOpts.LangMode = clang::Language::ObjC;
else
FEOpts.LangMode = clang::Language::ObjCXX;
}
// Capture Sysroot.
- if (const Arg *A = Args.getLastArgNoClaim(drv::OPT_isysroot)) {
+ if (const Arg *A = Args.getLastArgNoClaim(options::OPT_isysroot)) {
SmallString<PATH_MAX> Path(A->getValue());
FM->makeAbsolutePath(Path);
if (!FM->getOptionalDirectoryRef(Path)) {
@@ -502,13 +501,13 @@ bool Options::processFrontendOptions(InputArgList &Args) {
}
// Capture system frameworks for all platforms.
- for (const Arg *A : Args.filtered(drv::OPT_iframework))
+ for (const Arg *A : Args.filtered(options::OPT_iframework))
FEOpts.SystemFwkPaths.emplace_back(A->getValue(),
std::optional<PlatformType>{});
// Capture framework paths.
PathSeq FrameworkPaths;
- for (const Arg *A : Args.filtered(drv::OPT_F))
+ for (const Arg *A : Args.filtered(options::OPT_F))
FrameworkPaths.emplace_back(A->getValue());
if (!FrameworkPaths.empty())
diff --git a/clang/tools/driver/CMakeLists.txt b/clang/tools/driver/CMakeLists.txt
index d9d36f7..002aaef 100644
--- a/clang/tools/driver/CMakeLists.txt
+++ b/clang/tools/driver/CMakeLists.txt
@@ -63,6 +63,7 @@ clang_target_link_libraries(clang
clangDriver
clangFrontend
clangFrontendTool
+ clangOptions
clangSerialization
)
diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp
index 52cffa4..2aef755 100644
--- a/clang/tools/driver/cc1_main.cpp
+++ b/clang/tools/driver/cc1_main.cpp
@@ -17,7 +17,6 @@
#include "clang/CodeGen/ObjectFilePCHContainerWriter.h"
#include "clang/Config/config.h"
#include "clang/Driver/DriverDiagnostic.h"
-#include "clang/Driver/Options.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/FrontendDiagnostic.h"
@@ -25,6 +24,7 @@
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
#include "clang/FrontendTool/Utils.h"
+#include "clang/Options/Options.h"
#include "clang/Serialization/ObjectFilePCHContainerReader.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringExtras.h"
diff --git a/clang/tools/driver/cc1as_main.cpp b/clang/tools/driver/cc1as_main.cpp
index 50da2f8..f13812f 100644
--- a/clang/tools/driver/cc1as_main.cpp
+++ b/clang/tools/driver/cc1as_main.cpp
@@ -14,10 +14,10 @@
#include "clang/Basic/Diagnostic.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Driver/DriverDiagnostic.h"
-#include "clang/Driver/Options.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
+#include "clang/Options/Options.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
@@ -59,8 +59,7 @@
#include <optional>
#include <system_error>
using namespace clang;
-using namespace clang::driver;
-using namespace clang::driver::options;
+using namespace clang::options;
using namespace llvm;
using namespace llvm::opt;
@@ -688,8 +687,7 @@ int cc1as_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) {
getDriverOptTable().printHelp(
llvm::outs(), "clang -cc1as [options] file...",
"Clang Integrated Assembler", /*ShowHidden=*/false,
- /*ShowAllAliases=*/false,
- llvm::opt::Visibility(driver::options::CC1AsOption));
+ /*ShowAllAliases=*/false, llvm::opt::Visibility(options::CC1AsOption));
return 0;
}
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 7390d7d..1e2c988 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -18,13 +18,13 @@
#include "clang/Config/config.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/DriverDiagnostic.h"
-#include "clang/Driver/Options.h"
#include "clang/Driver/ToolChain.h"
#include "clang/Frontend/ChainedDiagnosticConsumer.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/SerializedDiagnosticPrinter.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/Frontend/Utils.h"
+#include "clang/Options/Options.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
diff --git a/clang/tools/offload-arch/AMDGPUArchByHIP.cpp b/clang/tools/offload-arch/AMDGPUArchByHIP.cpp
index 11cff4f..ff39a85 100644
--- a/clang/tools/offload-arch/AMDGPUArchByHIP.cpp
+++ b/clang/tools/offload-arch/AMDGPUArchByHIP.cpp
@@ -98,8 +98,16 @@ static std::vector<std::string> getSearchPaths() {
// Custom comparison function for dll name
static bool compareVersions(StringRef A, StringRef B) {
auto ParseVersion = [](StringRef S) -> VersionTuple {
- size_t Pos = S.find_last_of('_');
- StringRef VerStr = (Pos == StringRef::npos) ? S : S.substr(Pos + 1);
+ StringRef Filename = sys::path::filename(S);
+ size_t Pos = Filename.find_last_of('_');
+ if (Pos == StringRef::npos)
+ return VersionTuple();
+
+ StringRef VerStr = Filename.substr(Pos + 1);
+ size_t DotPos = VerStr.find('.');
+ if (DotPos != StringRef::npos)
+ VerStr = VerStr.substr(0, DotPos);
+
VersionTuple Vt;
(void)Vt.tryParse(VerStr);
return Vt;
@@ -135,8 +143,6 @@ static std::pair<std::string, bool> findNewestHIPDLL() {
Filename.ends_with(HipDLLSuffix))
DLLNames.push_back(sys::path::convert_to_slash(DirIt->path()));
}
- if (!DLLNames.empty())
- break;
}
if (DLLNames.empty())