summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Module.cpp
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2012-10-16 20:45:49 +0000
committerJason Molenda <jmolenda@apple.com>2012-10-16 20:45:49 +0000
commit981d4dfa0f4e7ed2232e48845a239683fea182a4 (patch)
tree2c5e57ef3a2a9ea51338f3ae0cb3cfb85bf701e8 /lldb/source/Core/Module.cpp
parent596d2cacc7c4636cf14661403d00fbdcf4acd854 (diff)
downloadbcm5719-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.cpp16
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);
}
}
OpenPOWER on IntegriCloud