mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-27 17:13:20 +01:00
Set global.params.isOS variables so we do not have to modify dmd frontend to use targetTriple
This commit is contained in:
@@ -588,11 +588,7 @@ void ClassDeclaration::semantic(Scope *sc)
|
||||
|
||||
if (isCOMclass())
|
||||
{
|
||||
#if IN_LLVM
|
||||
if (global.params.targetTriple.isOSWindows())
|
||||
#else
|
||||
if (global.params.isWindows)
|
||||
#endif
|
||||
sc->linkage = LINKwindows;
|
||||
else
|
||||
/* This enables us to use COM objects under Linux and
|
||||
|
||||
@@ -160,11 +160,7 @@ char *cpp_mangle(Dsymbol *s)
|
||||
cms.components.setDim(0);
|
||||
|
||||
OutBuffer buf;
|
||||
#if IN_LLVM
|
||||
buf.writestring("__Z" + !(global.params.targetTriple.isMacOSX())); // "_Z" for OSX
|
||||
#else
|
||||
buf.writestring("__Z" + !global.params.isOSX); // "_Z" for OSX
|
||||
#endif
|
||||
|
||||
cpp_mangle_name(&buf, &cms, s);
|
||||
|
||||
|
||||
10
dmd2/func.c
10
dmd2/func.c
@@ -1888,16 +1888,8 @@ void FuncDeclaration::semantic3(Scope *sc)
|
||||
if (cd)
|
||||
{
|
||||
if (!global.params.is64bit &&
|
||||
#if IN_LLVM
|
||||
global.params.targetTriple.isOSWindows() &&
|
||||
#else
|
||||
global.params.isWindows &&
|
||||
#endif
|
||||
!isStatic() && !fbody->usesEH()
|
||||
#if !IN_LLVM
|
||||
&& !global.params.trace
|
||||
#endif
|
||||
)
|
||||
!isStatic() && !fbody->usesEH() && !global.params.trace)
|
||||
{
|
||||
/* The back end uses the "jmonitor" hack for syncing;
|
||||
* no need to do the sync at this level.
|
||||
|
||||
@@ -162,7 +162,14 @@ struct Param
|
||||
bool vtls; // identify thread local variables
|
||||
bool vfield; // identify non-mutable field variables
|
||||
ubyte symdebug; // insert debug symbolic information
|
||||
bool trace; // insert profiling hooks
|
||||
bool is64bit; // generate 64 bit code
|
||||
bool isLinux; // generate code for linux
|
||||
bool isOSX; // generate code for Mac OSX
|
||||
bool isWindows; // generate code for Windows
|
||||
bool isFreeBSD; // generate code for FreeBSD
|
||||
bool isOpenBSD; // generate code for OpenBSD
|
||||
bool isSolaris; // generate code for Solaris
|
||||
#else
|
||||
char dll; // generate shared dynamic library
|
||||
char lib; // write library file instead of object file(s)
|
||||
|
||||
@@ -993,7 +993,7 @@ enum LINK Parser::parseLinkage()
|
||||
else if (id == Id::System)
|
||||
{
|
||||
#if IN_LLVM
|
||||
if (global.params.targetTriple.isOSWindows())
|
||||
if (global.params.isWindows)
|
||||
link = LINKwindows;
|
||||
else
|
||||
link = LINKc;
|
||||
|
||||
@@ -475,7 +475,15 @@ int main(int argc, char** argv)
|
||||
|
||||
gTargetMachine = createTargetMachine(mTargetTriple, mArch, mCPU, mAttrs, bitness,
|
||||
mRelocModel, mCodeModel, codeGenOptLevel(), global.params.symdebug);
|
||||
global.params.targetTriple = llvm::Triple(gTargetMachine->getTargetTriple());
|
||||
llvm::Triple targetTriple = llvm::Triple(gTargetMachine->getTargetTriple());
|
||||
global.params.targetTriple = targetTriple;
|
||||
global.params.trace = false;
|
||||
global.params.isLinux = targetTriple.getOS() == llvm::Triple::Linux;
|
||||
global.params.isOSX = targetTriple.isMacOSX();
|
||||
global.params.isWindows = targetTriple.isOSWindows();
|
||||
global.params.isFreeBSD = targetTriple.getOS() == llvm::Triple::FreeBSD;
|
||||
global.params.isOpenBSD = targetTriple.getOS() == llvm::Triple::OpenBSD;
|
||||
global.params.isSolaris = targetTriple.getOS() == llvm::Triple::Solaris;
|
||||
|
||||
#if LDC_LLVM_VER >= 302
|
||||
gDataLayout = gTargetMachine->getDataLayout();
|
||||
|
||||
Reference in New Issue
Block a user