Permalink
Browse files

Further changes to compile using MSVC.

  • Loading branch information...
1 parent bb2ca5b commit 48f8ffeb0bbedd1475807e33e5d63bc0402f7b4d @redstar redstar committed May 23, 2012
Showing with 26 additions and 9 deletions.
  1. +18 −1 dmd2/mars.c
  2. +1 −1 gen/complex.cpp
  3. +1 −1 gen/complex.h
  4. +4 −4 gen/toir.cpp
  5. +1 −1 gen/tollvm.cpp
  6. +1 −1 gen/tollvm.h
View
@@ -37,13 +37,14 @@
#if !IN_LLVM
#include "lib.h"
#include "json.h"
+#endif
#if WINDOWS_SEH
#include <windows.h>
long __cdecl __ehfilter(LPEXCEPTION_POINTERS ep);
#endif
-
+#if !IN_LLVM
int response_expand(int *pargc, char ***pargv);
void browse(const char *url);
void getenv_setargv(const char *envvar, int *pargc, char** *pargv);
@@ -1617,3 +1618,19 @@ void getenv_setargv(const char *envvar, int *pargc, char** *pargv)
*pargc = argc;
*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
View
@@ -44,7 +44,7 @@ LLType* DtoComplexBaseType(Type* t)
//////////////////////////////////////////////////////////////////////////////////////////
-LLConstant* DtoConstComplex(Type* _ty, long double re, long double im)
+LLConstant* DtoConstComplex(Type* _ty, longdouble re, longdouble im)
{
TY ty = _ty->toBasetype()->ty;
View
@@ -4,7 +4,7 @@
llvm::StructType* DtoComplexType(Type* t);
LLType* DtoComplexBaseType(Type* t);
-LLConstant* DtoConstComplex(Type* t, long double re, long double im);
+LLConstant* DtoConstComplex(Type* t, longdouble re, longdouble im);
LLConstant* DtoComplexShuffleMask(unsigned a, unsigned b);
View
@@ -412,11 +412,11 @@ DValue* ComplexExp::toElem(IRState* p)
if (c->isNullValue()) {
Type* t = type->toBasetype();
if (t->ty == Tcomplex32)
- c = DtoConstFP(Type::tfloat32, 0);
+ c = DtoConstFP(Type::tfloat32, ldouble(0));
else if (t->ty == Tcomplex64)
- c = DtoConstFP(Type::tfloat64, 0);
+ c = DtoConstFP(Type::tfloat64, ldouble(0));
else if (t->ty == Tcomplex80)
- c = DtoConstFP(Type::tfloat80, 0);
+ c = DtoConstFP(Type::tfloat80, ldouble(0));
else
assert(0);
res = DtoAggrPair(DtoType(type), c, c);
@@ -1879,7 +1879,7 @@ DValue* PostExp::toElem(IRState* p)
else if (e1type->isfloating())
{
assert(e2type->isfloating());
- LLValue* one = DtoConstFP(e1type, 1.0);
+ LLValue* one = DtoConstFP(e1type, ldouble(1.0));
if (op == TOKplusplus) {
post = llvm::BinaryOperator::CreateFAdd(val,one,"tmp",p->scopebb());
}
View
@@ -578,7 +578,7 @@ llvm::ConstantInt* DtoConstUbyte(unsigned char i)
return LLConstantInt::get(LLType::getInt8Ty(gIR->context()), i, false);
}
-LLConstant* DtoConstFP(Type* t, long double value)
+LLConstant* DtoConstFP(Type* t, longdouble value)
{
LLType* llty = DtoType(t);
assert(llty->isFloatingPointTy());
View
@@ -55,7 +55,7 @@ LLConstantInt* DtoConstSize_t(uint64_t);
LLConstantInt* DtoConstUint(unsigned i);
LLConstantInt* DtoConstInt(int i);
LLConstantInt* DtoConstUbyte(unsigned char i);
-LLConstant* DtoConstFP(Type* t, long double value);
+LLConstant* DtoConstFP(Type* t, longdouble value);
LLConstant* DtoConstString(const char*);
LLConstant* DtoConstStringPtr(const char* str, const char* section = 0);

0 comments on commit 48f8ffe

Please sign in to comment.