diff options
author | Michael Platings <michael.platings@arm.com> | 2023-03-09 19:38:26 +0000 |
---|---|---|
committer | Michael Platings <michael.platings@arm.com> | 2023-06-14 06:46:41 +0100 |
commit | a794ab92b41f00ba29b5852c34a510173638dcc0 (patch) | |
tree | f951a50a7dd8739e33c9abde1623dd7d2dfa7f7b /clang/lib/Driver/Driver.cpp | |
parent | 4794bdab7aed92e699db29e031bfe71f4005326f (diff) | |
download | llvm-a794ab92b41f00ba29b5852c34a510173638dcc0.zip llvm-a794ab92b41f00ba29b5852c34a510173638dcc0.tar.gz llvm-a794ab92b41f00ba29b5852c34a510173638dcc0.tar.bz2 |
[Driver] Add -print-multi-flags-experimental option
This option causes the flags used for selecting multilibs to be printed.
This is an experimental feature that is documented in detail in D143587.
Differential Revision: https://reviews.llvm.org/D142933
Diffstat (limited to 'clang/lib/Driver/Driver.cpp')
-rw-r--r-- | clang/lib/Driver/Driver.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 243aebb..87c31f9 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -2217,6 +2217,17 @@ bool Driver::HandleImmediateArgs(const Compilation &C) { return false; } + if (C.getArgs().hasArg(options::OPT_print_multi_flags)) { + Multilib::flags_list ArgFlags = TC.getMultilibFlags(C.getArgs()); + llvm::StringSet<> ExpandedFlags = TC.getMultilibs().expandFlags(ArgFlags); + std::set<llvm::StringRef> SortedFlags; + for (const auto &FlagEntry : ExpandedFlags) + SortedFlags.insert(FlagEntry.getKey()); + for (auto Flag : SortedFlags) + llvm::outs() << Flag << '\n'; + return false; + } + if (C.getArgs().hasArg(options::OPT_print_multi_directory)) { const Multilib &Multilib = TC.getMultilib(); if (Multilib.gccSuffix().empty()) |