diff options
author | Jason Molenda <jmolenda@apple.com> | 2012-10-16 20:45:49 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2012-10-16 20:45:49 +0000 |
commit | 981d4dfa0f4e7ed2232e48845a239683fea182a4 (patch) | |
tree | 2c5e57ef3a2a9ea51338f3ae0cb3cfb85bf701e8 /lldb/source/Core/Module.cpp | |
parent | 596d2cacc7c4636cf14661403d00fbdcf4acd854 (diff) | |
download | bcm5719-llvm-981d4dfa0f4e7ed2232e48845a239683fea182a4.tar.gz bcm5719-llvm-981d4dfa0f4e7ed2232e48845a239683fea182a4.zip |
llvm needs the OS to be set to either iOS or Mac OS X
to work properly; when doing bare-boards rom debugging
force the OS to be one of those when initializing llvm.
<rdar://problem/12504138>
llvm-svn: 166057
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r-- | lldb/source/Core/Module.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 0c82b6686ab..14d2e42ac50 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -314,6 +314,22 @@ Module::GetClangASTContext () if (objfile && objfile->GetArchitecture(object_arch)) { m_did_init_ast = true; + + // LLVM wants this to be set to iOS or MacOSX; if we're working on + // a bare-boards type image, change the triple for llvm's benefit. + if (object_arch.GetTriple().getVendor() == llvm::Triple::Apple + && object_arch.GetTriple().getOS() == llvm::Triple::UnknownOS) + { + if (object_arch.GetTriple().getArch() == llvm::Triple::arm || + object_arch.GetTriple().getArch() == llvm::Triple::thumb) + { + object_arch.GetTriple().setOS(llvm::Triple::IOS); + } + else + { + object_arch.GetTriple().setOS(llvm::Triple::MacOSX); + } + } m_ast.SetArchitecture (object_arch); } } |