[Lldb-commits] [lldb] r372642 - [ABISysV] Fix regression for Simulator and MacABI
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Mon Sep 23 12:06:00 PDT 2019
Author: jdevlieghere
Date: Mon Sep 23 12:06:00 2019
New Revision: 372642
URL: http://llvm.org/viewvc/llvm-project?rev=372642&view=rev
Log:
[ABISysV] Fix regression for Simulator and MacABI
The ABISysV ABI was refactored in r364216 to support the Windows ABI for
x86_64. In particular it changed ABISysV_x86_64::CreateInstance to
switch on the OS type. This breaks debugging MacABI apps as well as apps
in the simulator. This adds back the necessary cases.
We have a test on Github that exercises this code path and which I'd
like to upstream once the remaining MacABI parts become available in
clang.
Differential revision: https://reviews.llvm.org/D67869
Modified:
lldb/trunk/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
Modified: lldb/trunk/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp?rev=372642&r1=372641&r2=372642&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp (original)
+++ lldb/trunk/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp Mon Sep 23 12:06:00 2019
@@ -222,17 +222,33 @@ ABISP
ABISysV_x86_64::CreateInstance(lldb::ProcessSP process_sp, const ArchSpec &arch) {
const llvm::Triple::ArchType arch_type = arch.GetTriple().getArch();
const llvm::Triple::OSType os_type = arch.GetTriple().getOS();
+ const llvm::Triple::EnvironmentType os_env =
+ arch.GetTriple().getEnvironment();
if (arch_type == llvm::Triple::x86_64) {
switch(os_type) {
- case llvm::Triple::OSType::MacOSX:
- case llvm::Triple::OSType::Linux:
- case llvm::Triple::OSType::FreeBSD:
- case llvm::Triple::OSType::NetBSD:
- case llvm::Triple::OSType::Solaris:
- case llvm::Triple::OSType::UnknownOS:
+ case llvm::Triple::OSType::IOS:
+ case llvm::Triple::OSType::TvOS:
+ case llvm::Triple::OSType::WatchOS:
+ switch (os_env) {
+ case llvm::Triple::EnvironmentType::MacABI:
+ case llvm::Triple::EnvironmentType::Simulator:
+ case llvm::Triple::EnvironmentType::UnknownEnvironment:
+ // UnknownEnvironment is needed for older compilers that don't
+ // support the simulator environment.
return ABISP(new ABISysV_x86_64(process_sp));
- default:
+ default:
return ABISP();
+ }
+ case llvm::Triple::OSType::Darwin:
+ case llvm::Triple::OSType::FreeBSD:
+ case llvm::Triple::OSType::Linux:
+ case llvm::Triple::OSType::MacOSX:
+ case llvm::Triple::OSType::NetBSD:
+ case llvm::Triple::OSType::Solaris:
+ case llvm::Triple::OSType::UnknownOS:
+ return ABISP(new ABISysV_x86_64(process_sp));
+ default:
+ return ABISP();
}
}
return ABISP();
More information about the lldb-commits
mailing list