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
This commit is contained in:
Jason Molenda 2012-10-16 20:45:49 +00:00
parent 596d2cacc7
commit 981d4dfa0f
1 changed files with 16 additions and 0 deletions

View File

@ -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);
}
}