diff --git a/vm/code_heap.cpp b/vm/code_heap.cpp index b7aa9185e8..9e64ff6552 100755 --- a/vm/code_heap.cpp +++ b/vm/code_heap.cpp @@ -5,7 +5,7 @@ namespace factor code_heap::code_heap(cell size) { - if(size > (1L << (sizeof(cell) * 8 - 6))) fatal_error("Heap too large",size); + if(size > ((u64)1 << (sizeof(cell) * 8 - 6))) fatal_error("Heap too large",size); seg = new segment(align_page(size),true); if(!seg) fatal_error("Out of memory in heap allocator",size); allocator = new free_list_allocator(size,seg->start); diff --git a/vm/os-windows-nt.hpp b/vm/os-windows-nt.hpp index 5b55ce1f2b..f8407aeee5 100755 --- a/vm/os-windows-nt.hpp +++ b/vm/os-windows-nt.hpp @@ -23,8 +23,13 @@ FACTOR_STDCALL LONG exception_handler(PEXCEPTION_POINTERS pe); // SSE traps raise these exception codes, which are defined in internal NT headers // but not winbase.h +#ifndef STATUS_FLOAT_MULTIPLE_FAULTS #define STATUS_FLOAT_MULTIPLE_FAULTS 0xC00002B4 +#endif + +#ifndef STATUS_FLOAT_MULTIPLE_TRAPS #define STATUS_FLOAT_MULTIPLE_TRAPS 0xC00002B5 +#endif typedef HANDLE THREADHANDLE;