forked from OSchip/llvm-project
[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 llvm-svn: 372642
This commit is contained in:
parent
72a4621cdf
commit
869ef0a627
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue