mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 09:00:33 +03:00
We need to parse mArch ourselves now
Build fix for LLVM r75890
This commit is contained in:
parent
7359448063
commit
ac5bd294ca
3 changed files with 22 additions and 12 deletions
26
gen/main.cpp
26
gen/main.cpp
|
@ -12,7 +12,7 @@
|
|||
#include "llvm/Target/SubtargetFeature.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Target/TargetOptions.h"
|
||||
#include "llvm/Target/TargetMachineRegistry.h"
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
#include "llvm/Target/TargetSelect.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -397,7 +397,7 @@ int main(int argc, char** argv)
|
|||
// check -m32/64 sanity
|
||||
if (m32bits && m64bits)
|
||||
error("cannot use both -m32 and -m64 options");
|
||||
else if ((m32bits || m64bits) && (mArch != 0 || !mTargetTriple.empty()))
|
||||
else if ((m32bits || m64bits) && (!mArch.empty() || !mTargetTriple.empty()))
|
||||
error("-m32 and -m64 switches cannot be used together with -march and -mtriple switches");
|
||||
if (global.errors)
|
||||
fatal();
|
||||
|
@ -415,7 +415,7 @@ int main(int argc, char** argv)
|
|||
// did the user override the target triple?
|
||||
if (mTargetTriple.empty())
|
||||
{
|
||||
if (mArch != 0)
|
||||
if (!mArch.empty())
|
||||
{
|
||||
error("you must specify a target triple as well with -mtriple when using the -march option");
|
||||
fatal();
|
||||
|
@ -437,9 +437,9 @@ int main(int argc, char** argv)
|
|||
LDC_TARGETS
|
||||
#undef LLVM_TARGET
|
||||
|
||||
const llvm::Target *theTarget;
|
||||
const llvm::Target *theTarget = NULL;
|
||||
// Check whether the user has explicitly specified an architecture to compile for.
|
||||
if (mArch == 0)
|
||||
if (mArch.empty())
|
||||
{
|
||||
std::string Err;
|
||||
theTarget = llvm::TargetRegistry::getClosestStaticTargetForModule(mod, Err);
|
||||
|
@ -451,7 +451,21 @@ LDC_TARGETS
|
|||
}
|
||||
else
|
||||
{
|
||||
theTarget = &mArch->TheTarget;
|
||||
for (llvm::TargetRegistry::iterator it = llvm::TargetRegistry::begin(),
|
||||
ie = llvm::TargetRegistry::end(); it != ie; ++it)
|
||||
{
|
||||
if (mArch == it->getName())
|
||||
{
|
||||
theTarget = &*it;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!theTarget)
|
||||
{
|
||||
error("invalid target '%s'", mArch.c_str());
|
||||
fatal();
|
||||
}
|
||||
}
|
||||
|
||||
// Package up features to be passed to target/subtarget
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue