mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 19:06:02 +03:00
Further changes to compile using MSVC.
This commit is contained in:
parent
bb2ca5b4f5
commit
48f8ffeb0b
6 changed files with 26 additions and 9 deletions
19
dmd2/mars.c
19
dmd2/mars.c
|
@ -37,13 +37,14 @@
|
||||||
#if !IN_LLVM
|
#if !IN_LLVM
|
||||||
#include "lib.h"
|
#include "lib.h"
|
||||||
#include "json.h"
|
#include "json.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#if WINDOWS_SEH
|
#if WINDOWS_SEH
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
long __cdecl __ehfilter(LPEXCEPTION_POINTERS ep);
|
long __cdecl __ehfilter(LPEXCEPTION_POINTERS ep);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !IN_LLVM
|
||||||
int response_expand(int *pargc, char ***pargv);
|
int response_expand(int *pargc, char ***pargv);
|
||||||
void browse(const char *url);
|
void browse(const char *url);
|
||||||
void getenv_setargv(const char *envvar, int *pargc, char** *pargv);
|
void getenv_setargv(const char *envvar, int *pargc, char** *pargv);
|
||||||
|
@ -1617,3 +1618,19 @@ Ldone:
|
||||||
*pargc = argc;
|
*pargc = argc;
|
||||||
*pargv = argv->tdata();
|
*pargv = argv->tdata();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if WINDOWS_SEH
|
||||||
|
|
||||||
|
long __cdecl __ehfilter(LPEXCEPTION_POINTERS ep)
|
||||||
|
{
|
||||||
|
//printf("%x\n", ep->ExceptionRecord->ExceptionCode);
|
||||||
|
if (ep->ExceptionRecord->ExceptionCode == STATUS_STACK_OVERFLOW)
|
||||||
|
{
|
||||||
|
#if 1 //ndef DEBUG
|
||||||
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return EXCEPTION_CONTINUE_SEARCH;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -412,11 +412,11 @@ DValue* ComplexExp::toElem(IRState* p)
|
||||||
if (c->isNullValue()) {
|
if (c->isNullValue()) {
|
||||||
Type* t = type->toBasetype();
|
Type* t = type->toBasetype();
|
||||||
if (t->ty == Tcomplex32)
|
if (t->ty == Tcomplex32)
|
||||||
c = DtoConstFP(Type::tfloat32, 0);
|
c = DtoConstFP(Type::tfloat32, ldouble(0));
|
||||||
else if (t->ty == Tcomplex64)
|
else if (t->ty == Tcomplex64)
|
||||||
c = DtoConstFP(Type::tfloat64, 0);
|
c = DtoConstFP(Type::tfloat64, ldouble(0));
|
||||||
else if (t->ty == Tcomplex80)
|
else if (t->ty == Tcomplex80)
|
||||||
c = DtoConstFP(Type::tfloat80, 0);
|
c = DtoConstFP(Type::tfloat80, ldouble(0));
|
||||||
else
|
else
|
||||||
assert(0);
|
assert(0);
|
||||||
res = DtoAggrPair(DtoType(type), c, c);
|
res = DtoAggrPair(DtoType(type), c, c);
|
||||||
|
@ -1879,7 +1879,7 @@ DValue* PostExp::toElem(IRState* p)
|
||||||
else if (e1type->isfloating())
|
else if (e1type->isfloating())
|
||||||
{
|
{
|
||||||
assert(e2type->isfloating());
|
assert(e2type->isfloating());
|
||||||
LLValue* one = DtoConstFP(e1type, 1.0);
|
LLValue* one = DtoConstFP(e1type, ldouble(1.0));
|
||||||
if (op == TOKplusplus) {
|
if (op == TOKplusplus) {
|
||||||
post = llvm::BinaryOperator::CreateFAdd(val,one,"tmp",p->scopebb());
|
post = llvm::BinaryOperator::CreateFAdd(val,one,"tmp",p->scopebb());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue