11
11
#include " clang/AST/ExternalASTSource.h"
12
12
#include " clang/AST/PrettyPrinter.h"
13
13
#include " clang/Basic/Builtins.h"
14
- #include " clang/Basic/DarwinSDKInfo.h"
15
14
#include " clang/Basic/DiagnosticIDs.h"
16
15
#include " clang/Basic/SourceLocation.h"
17
16
#include " clang/Basic/TargetInfo.h"
40
39
#include " llvm/ExecutionEngine/ExecutionEngine.h"
41
40
#include " llvm/Support/CrashRecoveryContext.h"
42
41
#include " llvm/Support/Debug.h"
43
- #include " llvm/Support/Error.h"
44
42
#include " llvm/Support/FileSystem.h"
45
43
#include " llvm/Support/TargetSelect.h"
46
44
93
91
#include " lldb/Utility/StringList.h"
94
92
95
93
#include " Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
96
- #include " Plugins/Platform/MacOSX/PlatformDarwin.h"
97
- #include " lldb/Utility/XcodeSDK.h"
98
94
99
95
#include < cctype>
100
96
#include < memory>
@@ -283,49 +279,6 @@ class ClangDiagnosticManagerAdapter : public clang::DiagnosticConsumer {
283
279
std::string m_output;
284
280
};
285
281
286
- // / Returns true if the SDK for the specified triple supports
287
- // / builtin modules in system headers. This is used to decide
288
- // / whether to pass -fbuiltin-headers-in-system-modules to
289
- // / the compiler instance when compiling the `std` module.
290
- static llvm::Expected<bool >
291
- sdkSupportsBuiltinModules (lldb_private::Target &target) {
292
- #ifndef __APPLE__
293
- return false ;
294
- #else
295
- auto arch_spec = target.GetArchitecture ();
296
- auto const &triple = arch_spec.GetTriple ();
297
- auto module_sp = target.GetExecutableModule ();
298
- if (!module_sp)
299
- return llvm::createStringError (" Executable module not found." );
300
-
301
- // Get SDK path that the target was compiled against.
302
- auto sdk_or_err = PlatformDarwin::GetSDKPathFromDebugInfo (*module_sp);
303
- if (!sdk_or_err)
304
- return sdk_or_err.takeError ();
305
-
306
- // Use the SDK path from debug-info to find a local matching SDK directory.
307
- auto sdk_path_or_err =
308
- HostInfo::GetSDKRoot (HostInfo::SDKOptions{std::move (sdk_or_err->first )});
309
- if (!sdk_path_or_err)
310
- return sdk_path_or_err.takeError ();
311
-
312
- auto VFS = FileSystem::Instance ().GetVirtualFileSystem ();
313
- if (!VFS)
314
- return llvm::createStringError (" No virtual filesystem available." );
315
-
316
- // Extract SDK version from the /path/to/some.sdk/SDKSettings.json
317
- auto parsed_or_err = clang::parseDarwinSDKInfo (*VFS, *sdk_path_or_err);
318
- if (!parsed_or_err)
319
- return parsed_or_err.takeError ();
320
-
321
- auto maybe_sdk = *parsed_or_err;
322
- if (!maybe_sdk)
323
- return llvm::createStringError (" Couldn't find Darwin SDK info." );
324
-
325
- return XcodeSDK::SDKSupportsBuiltinModules (triple, maybe_sdk->getVersion ());
326
- #endif
327
- }
328
-
329
282
static void SetupModuleHeaderPaths (CompilerInstance *compiler,
330
283
std::vector<std::string> include_directories,
331
284
lldb::TargetSP target_sp) {
@@ -608,9 +561,7 @@ static void SetupLangOpts(CompilerInstance &compiler,
608
561
lang_opts.NoBuiltin = true ;
609
562
}
610
563
611
- static void SetupImportStdModuleLangOpts (CompilerInstance &compiler,
612
- lldb_private::Target &target) {
613
- Log *log = GetLog (LLDBLog::Expressions);
564
+ static void SetupImportStdModuleLangOpts (CompilerInstance &compiler) {
614
565
LangOptions &lang_opts = compiler.getLangOpts ();
615
566
lang_opts.Modules = true ;
616
567
// We want to implicitly build modules.
@@ -627,14 +578,7 @@ static void SetupImportStdModuleLangOpts(CompilerInstance &compiler,
627
578
lang_opts.GNUMode = true ;
628
579
lang_opts.GNUKeywords = true ;
629
580
lang_opts.CPlusPlus11 = true ;
630
-
631
- auto supported_or_err = sdkSupportsBuiltinModules (target);
632
- if (supported_or_err)
633
- lang_opts.BuiltinHeadersInSystemModules = !*supported_or_err;
634
- else
635
- LLDB_LOG_ERROR (log, supported_or_err.takeError (),
636
- " Failed to determine BuiltinHeadersInSystemModules when "
637
- " setting up import-std-module: {0}" );
581
+ lang_opts.BuiltinHeadersInSystemModules = true ;
638
582
639
583
// The Darwin libc expects this macro to be set.
640
584
lang_opts.GNUCVersion = 40201 ;
@@ -715,7 +659,7 @@ ClangExpressionParser::ClangExpressionParser(
715
659
if (auto *clang_expr = dyn_cast<ClangUserExpression>(&m_expr);
716
660
clang_expr && clang_expr->DidImportCxxModules ()) {
717
661
LLDB_LOG (log, " Adding lang options for importing C++ modules" );
718
- SetupImportStdModuleLangOpts (*m_compiler, *target_sp );
662
+ SetupImportStdModuleLangOpts (*m_compiler);
719
663
SetupModuleHeaderPaths (m_compiler.get (), m_include_directories, target_sp);
720
664
}
721
665
0 commit comments