diff dmd/mars.c @ 1640:9bf06e02070b

Merge DMD 1.057.
author Christian Kamm <kamm incasoftware de>
date Mon, 08 Mar 2010 21:39:20 +0100
parents 44b145be2ef5
children
line wrap: on
line diff
--- a/dmd/mars.c	Mon Mar 08 20:09:18 2010 +0100
+++ b/dmd/mars.c	Mon Mar 08 21:39:20 2010 +0100
@@ -61,9 +61,9 @@
     obj_ext_alt = "obj";
 #endif
 
-    copyright = "Copyright (c) 1999-2009 by Digital Mars and Tomas Lindquist Olsen";
+    copyright = "Copyright (c) 1999-2010 by Digital Mars and Tomas Lindquist Olsen";
     written = "written by Walter Bright and Tomas Lindquist Olsen";
-    version = "v1.056";
+    version = "v1.057";
     ldc_version = LDC_REV;
     llvm_version = LLVM_REV_STR;
     global.structalign = 8;
@@ -116,13 +116,10 @@
 
 void warning(Loc loc, const char *format, ...)
 {
-    if (global.params.warnings && !global.gag)
-    {
-        va_list ap;
-        va_start(ap, format);
-        vwarning(loc, format, ap);
-        va_end( ap );
-    }
+    va_list ap;
+    va_start(ap, format);
+    vwarning(loc, format, ap);
+    va_end( ap );
 }
 
 void verror(Loc loc, const char *format, va_list ap)
@@ -147,16 +144,26 @@
 {
     if (global.params.warnings && !global.gag)
     {
-        char *p = loc.toChars();
+	char *p = loc.toChars();
+
+	if (*p)
+	    fprintf(stdmsg, "%s: ", p);
+	mem.free(p);
 
-        if (*p)
-            fprintf(stdmsg, "%s: ", p);
-        mem.free(p);
-
-        fprintf(stdmsg, "Warning: ");
-        vfprintf(stdmsg, format, ap);
-        fprintf(stdmsg, "\n");
-        fflush(stdmsg);
+	fprintf(stdmsg, "Warning: ");
+#if _MSC_VER
+	// MS doesn't recognize %zu format
+	OutBuffer tmp;
+	tmp.vprintf(format, ap);
+	fprintf(stdmsg, "%s", tmp.toChars());
+#else
+	vfprintf(stdmsg, format, ap);
+#endif
+	fprintf(stdmsg, "\n");
+	fflush(stdmsg);
+//halt();
+	if (global.params.warnings == 1)
+	    global.warnings++;	// warnings don't count if gagged
     }
 }
 
@@ -184,6 +191,7 @@
 #endif
 }
 
+
 /***********************************
  * Parse and append contents of environment variable envvar
  * to argc and argv[].