[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