[clang] 82f424f - Revert "[clang][modules] Print library module manifest path. (#76451)"
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 23 04:06:38 PST 2024
Author: Aaron Ballman
Date: 2024-01-23T07:06:07-05:00
New Revision: 82f424f766be00b037a706a835d0a0663a2680f1
URL: https://github.com/llvm/llvm-project/commit/82f424f766be00b037a706a835d0a0663a2680f1
DIFF: https://github.com/llvm/llvm-project/commit/82f424f766be00b037a706a835d0a0663a2680f1.diff
LOG: Revert "[clang][modules] Print library module manifest path. (#76451)"
This reverts commit a301fb11014f9cfdf4ee8cada173c46a7677d9d3.
The changes caused failures like:
https://lab.llvm.org/buildbot/#/builders/91/builds/22189
Added:
Modified:
clang/include/clang/Driver/Driver.h
clang/include/clang/Driver/Options.td
clang/lib/Driver/Driver.cpp
Removed:
clang/test/Driver/modules-print-library-module-manifest-path.cpp
################################################################################
diff --git a/clang/include/clang/Driver/Driver.h b/clang/include/clang/Driver/Driver.h
index 595f104e406d37..3ee1bcf2a69c9b 100644
--- a/clang/include/clang/Driver/Driver.h
+++ b/clang/include/clang/Driver/Driver.h
@@ -602,16 +602,6 @@ class Driver {
// FIXME: This should be in CompilationInfo.
std::string GetProgramPath(StringRef Name, const ToolChain &TC) const;
- /// Lookup the path to the Standard library module manifest.
- ///
- /// \param C - The compilation.
- /// \param TC - The tool chain for additional information on
- /// directories to search.
- //
- // FIXME: This should be in CompilationInfo.
- std::string GetStdModuleManifestPath(const Compilation &C,
- const ToolChain &TC) const;
-
/// HandleAutocompletions - Handle --autocomplete by searching and printing
/// possible flags, descriptions, and its arguments.
void HandleAutocompletions(StringRef PassedFlags) const;
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index f203a0fe7ede13..7f4fa33748faca 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -5310,9 +5310,6 @@ def print_resource_dir : Flag<["-", "--"], "print-resource-dir">,
def print_search_dirs : Flag<["-", "--"], "print-search-dirs">,
HelpText<"Print the paths used for finding libraries and programs">,
Visibility<[ClangOption, CLOption]>;
-def print_std_module_manifest_path : Flag<["-", "--"], "print-library-module-manifest-path">,
- HelpText<"Print the path for the C++ Standard library module manifest">,
- Visibility<[ClangOption, CLOption]>;
def print_targets : Flag<["-", "--"], "print-targets">,
HelpText<"Print the registered targets">,
Visibility<[ClangOption, CLOption]>;
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 5c170915d58d53..7109faa1072de5 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -2194,12 +2194,6 @@ bool Driver::HandleImmediateArgs(const Compilation &C) {
return false;
}
- if (C.getArgs().hasArg(options::OPT_print_std_module_manifest_path)) {
- llvm::outs() << GetStdModuleManifestPath(C, C.getDefaultToolChain())
- << '\n';
- return false;
- }
-
if (C.getArgs().hasArg(options::OPT_print_runtime_dir)) {
if (std::optional<std::string> RuntimePath = TC.getRuntimePath())
llvm::outs() << *RuntimePath << '\n';
@@ -6172,44 +6166,6 @@ std::string Driver::GetProgramPath(StringRef Name, const ToolChain &TC) const {
return std::string(Name);
}
-std::string Driver::GetStdModuleManifestPath(const Compilation &C,
- const ToolChain &TC) const {
- std::string error = "<NOT PRESENT>";
-
- switch (TC.GetCXXStdlibType(C.getArgs())) {
- case ToolChain::CST_Libcxx: {
- std::string lib = GetFilePath("libc++.so", TC);
-
- // Note when there are multiple flavours of libc++ the module json needs to
- // look at the command-line arguments for the proper json.
- // These flavours do not exist at the moment, but there are plans to
- // provide a variant that is built with sanitizer instrumentation enabled.
-
- // For example
- // StringRef modules = [&] {
- // const SanitizerArgs &Sanitize = TC.getSanitizerArgs(C.getArgs());
- // if (Sanitize.needsAsanRt())
- // return "modules-asan.json";
- // return "modules.json";
- // }();
-
- SmallString<128> path(lib.begin(), lib.end());
- llvm::sys::path::remove_filename(path);
- llvm::sys::path::append(path, "modules.json");
- if (TC.getVFS().exists(path))
- return static_cast<std::string>(path);
-
- return error;
- }
-
- case ToolChain::CST_Libstdcxx:
- // libstdc++ does not provide Standard library modules yet.
- return error;
- }
-
- return error;
-}
-
std::string Driver::GetTemporaryPath(StringRef Prefix, StringRef Suffix) const {
SmallString<128> Path;
std::error_code EC = llvm::sys::fs::createTemporaryFile(Prefix, Suffix, Path);
diff --git a/clang/test/Driver/modules-print-library-module-manifest-path.cpp b/clang/test/Driver/modules-print-library-module-manifest-path.cpp
deleted file mode 100644
index 693a992876019e..00000000000000
--- a/clang/test/Driver/modules-print-library-module-manifest-path.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Test that -print-library-module-manifest-path finds the correct file.
-
-// RUN: rm -rf %t && split-file %s %t && cd %t
-// RUN: mkdir -p %t/Inputs/usr/lib/x86_64-linux-gnu
-// RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/libc++.so
-
-// RUN: %clang -print-library-module-manifest-path \
-// RUN: -stdlib=libc++ \
-// RUN: --sysroot=%t/Inputs \
-// RUN: --target=x86_64-linux-gnu 2>&1 \
-// RUN: | FileCheck libcxx-no-module-json.cpp
-
-// RUN: touch %t/Inputs/usr/lib/x86_64-linux-gnu/modules.json
-// RUN: %clang -print-library-module-manifest-path \
-// RUN: -stdlib=libc++ \
-// RUN: --sysroot=%t/Inputs \
-// RUN: --target=x86_64-linux-gnu 2>&1 \
-// RUN: | FileCheck libcxx.cpp
-
-// RUN: %clang -print-library-module-manifest-path \
-// RUN: -stdlib=libstdc++ \
-// RUN: --sysroot=%t/Inputs \
-// RUN: --target=x86_64-linux-gnu 2>&1 \
-// RUN: | FileCheck libstdcxx.cpp
-
-//--- libcxx-no-module-json.cpp
-
-// CHECK: <NOT PRESENT>
-
-//--- libcxx.cpp
-
-// CHECK: {{.*}}/Inputs/usr/lib/x86_64-linux-gnu{{/|\\}}modules.json
-
-//--- libstdcxx.cpp
-
-// CHECK: <NOT PRESENT>
More information about the cfe-commits
mailing list