From: Oliver Schmidt 
Date: Sun, 7 Apr 2013 20:19:23 +0000 (+0200)
Subject: Allow for warning-free build of common with MS VC on warning level 3.
X-Git-Tag: V2.14~73
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ffb8595440a35ab769f17a6c3af00df5063a5239;p=cc65
Allow for warning-free build of common with MS VC on warning level 3.
---
diff --git a/src/common/fp.c b/src/common/fp.c
index c9300c52d..d2c5f5218 100644
--- a/src/common/fp.c
+++ b/src/common/fp.c
@@ -99,7 +99,7 @@ Float FP_F_FromInt (long Val)
 /* Convert an integer into a floating point variable */
 {
     Float D;
-    D.V = Val;
+    D.V = (float) Val;
     return D;
 }
 
@@ -164,7 +164,7 @@ size_t FP_D_Size (void)
 unsigned char* FP_D_Data (Double Val)
 /* Return the raw data of a double in a malloc'ed buffer. Free after use. */
 {
-    float F = Val.V;
+    float F = (float) Val.V;
     return memcpy (xmalloc (F_SIZE), &F, F_SIZE);
 }
 
diff --git a/src/common/inttypes.h b/src/common/inttypes.h
index ca7f90106..3c87eb7be 100644
--- a/src/common/inttypes.h
+++ b/src/common/inttypes.h
@@ -39,11 +39,11 @@
 
 
 /* If we have stdint.h, include it, otherwise try some quesswork on types.
- * gcc doesn't define __STDC_VERSION__ without special flags, so check for 
- * gcc explicitly. Undefined symbols are replaced by zero, so a check for
- * defined(__GNUC__) is not necessary.
+ * gcc and msvc don't define __STDC_VERSION__ without special flags, so check
+ * for them explicitly. Undefined symbols are replaced by zero, so a check for
+ * defined(__GNUC__) or defined(_MSC_VER) is not necessary.
  */
-#if (__STDC_VERSION__ >= 199901) || (__GNUC__ >= 3)
+#if (__STDC_VERSION__ >= 199901) || (__GNUC__ >= 3) || (_MSC_VER >= 1600)
 #include 
 #else
 
diff --git a/src/common/searchpath.c b/src/common/searchpath.c
index 217502299..78d2cce4c 100644
--- a/src/common/searchpath.c
+++ b/src/common/searchpath.c
@@ -38,6 +38,7 @@
 #if defined(_MSC_VER)
 /* Microsoft compiler */
 #  include 
+#  pragma warning(disable : 4996)
 #else
 /* Anyone else */
 #  include 
diff --git a/src/common/va_copy.h b/src/common/va_copy.h
index cb896b477..30f275461 100644
--- a/src/common/va_copy.h
+++ b/src/common/va_copy.h
@@ -57,6 +57,11 @@
 #define va_copy(dest,src)       __va_copy(dest, src)
 #endif
 
+/* MS VC allows for assignment */
+#if defined(_MSC_VER)
+#define va_copy(dest,src)       ((dest) = (src))
+#endif
+
 /* If va_copy is not defined now, we have a problem */
 #if !defined(va_copy)
 #error "Need a working va_copy!"