Mercurial > projects > ldc
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[].