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> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits