clang windows compatibility
diff --git a/build/ninja/clang.py b/build/ninja/clang.py
index bae4417..bd4f821 100644
--- a/build/ninja/clang.py
+++ b/build/ninja/clang.py
@@ -51,7 +51,7 @@
                    '-fomit-frame-pointer', '-fno-math-errno','-ffinite-math-only', '-funsafe-math-optimizations',
                    '-fno-trapping-math', '-ffast-math']
     self.cwarnflags = ['-W', '-Werror', '-pedantic', '-Wall', '-Weverything',
-                       '-Wno-padded', '-Wno-documentation-unknown-command',
+                       '-Wno-c++98-compat', '-Wno-padded', '-Wno-documentation-unknown-command',
                        '-Wno-implicit-fallthrough', '-Wno-static-in-inline', '-Wno-reserved-id-macro']
     self.cmoreflags = []
     self.mflags = []
@@ -99,7 +99,7 @@
     if self.target.is_macos() or self.target.is_ios():
       self.cxxflags += ['-std=c++14', '-stdlib=libc++']
     else:
-      self.cxxflags += ['-std=gnu++14']
+      self.cxxflags += ['-std=c++14']
 
     #Overrides
     self.objext = '.o'
diff --git a/rpmalloc/rpmalloc.c b/rpmalloc/rpmalloc.c
index 9eb0b1e..dbed796 100644
--- a/rpmalloc/rpmalloc.c
+++ b/rpmalloc/rpmalloc.c
@@ -89,7 +89,7 @@
 #define ENABLE_ADAPTIVE_THREAD_CACHE 0
 #endif
 
-#if defined( _WIN32 ) || defined( __WIN32__ ) || defined( _WIN64 )
+#if defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
 #  define PLATFORM_WINDOWS 1
 #  define PLATFORM_POSIX 0
 #else
@@ -98,7 +98,7 @@
 #endif
 
 /// Platform and arch specifics
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && !defined(__clang__)
 #  ifndef FORCEINLINE
 #    define FORCEINLINE inline __forceinline
 #  endif
@@ -924,7 +924,7 @@
 	//Update the heap span reserve
 	span_t* span = heap->span_reserve;
 	heap->span_reserve = (span_t*)pointer_offset(span, span_count * _memory_span_size);
-	heap->spans_reserved -= span_count;
+	heap->spans_reserved -= (uint32_t)span_count;
 
 	_rpmalloc_span_mark_as_subspan_unless_master(heap->span_reserve_master, span, span_count);
 	if (span_count <= LARGE_CLASS_COUNT)
@@ -1215,7 +1215,7 @@
 		insert_count = cache_limit - cache->count;
 
 	memcpy(cache->span + cache->count, span, sizeof(span_t*) * insert_count);
-	cache->count += insert_count;
+	cache->count += (uint32_t)insert_count;
 
 #if ENABLE_UNLIMITED_CACHE
 	while (insert_count < count) {
@@ -1243,7 +1243,7 @@
 		extract_count = cache->count;
 
 	memcpy(span, cache->span + (cache->count - extract_count), sizeof(span_t*) * extract_count);
-	cache->count -= extract_count;
+	cache->count -= (uint32_t)extract_count;
 #if ENABLE_UNLIMITED_CACHE
 	while ((extract_count < count) && cache->overflow) {
 		span_t* current_span = cache->overflow;