mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
Fix a bug where ::warning() was called with a va_list argument instead of an
actual vararg list. Also cleaned up the format for warnings. (Previously some would start with "warning - warning - Warning:" which was a bit redundant)
This commit is contained in:
@@ -963,10 +963,9 @@ void Expression::warning(const char *format, ...)
|
||||
{
|
||||
if (global.params.warnings && !global.gag)
|
||||
{
|
||||
fprintf(stdmsg, "warning - ");
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
::warning(loc, format, ap);
|
||||
::vwarning(loc, format, ap);
|
||||
va_end( ap );
|
||||
}
|
||||
}
|
||||
|
||||
28
dmd/mars.c
28
dmd/mars.c
@@ -109,13 +109,10 @@ void warning(Loc loc, const char *format, ...)
|
||||
{
|
||||
if (global.params.warnings && !global.gag)
|
||||
{
|
||||
fprintf(stdmsg, "warning - ");
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
char* p = loc.toChars();
|
||||
fprintf(stdmsg, "Warning: %s:", p?p:"");
|
||||
vfprintf(stdmsg, format, ap);
|
||||
va_end( ap );
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
vwarning(loc, format, ap);
|
||||
va_end( ap );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,6 +134,23 @@ void verror(Loc loc, const char *format, va_list ap)
|
||||
global.errors++;
|
||||
}
|
||||
|
||||
void vwarning(Loc loc, const char *format, va_list ap)
|
||||
{
|
||||
if (global.params.warnings && !global.gag)
|
||||
{
|
||||
char *p = loc.toChars();
|
||||
|
||||
if (*p)
|
||||
fprintf(stdmsg, "%s: ", p);
|
||||
mem.free(p);
|
||||
|
||||
fprintf(stdmsg, "Warning: ");
|
||||
vfprintf(stdmsg, format, ap);
|
||||
fprintf(stdmsg, "\n");
|
||||
fflush(stdmsg);
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************
|
||||
* Call this after printing out fatal error messages to clean up and exit
|
||||
* the compiler.
|
||||
|
||||
@@ -388,6 +388,7 @@ enum MATCH
|
||||
};
|
||||
|
||||
void warning(Loc loc, const char *format, ...);
|
||||
void vwarning(Loc loc, const char *format, va_list);
|
||||
void error(Loc loc, const char *format, ...);
|
||||
void verror(Loc loc, const char *format, va_list);
|
||||
void fatal();
|
||||
|
||||
@@ -714,10 +714,9 @@ void Type::warning(Loc loc, const char *format, ...)
|
||||
{
|
||||
if (global.params.warnings && !global.gag)
|
||||
{
|
||||
fprintf(stdmsg, "warning - ");
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
::verror(loc, format, ap);
|
||||
::vwarning(loc, format, ap);
|
||||
va_end( ap );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,10 +100,9 @@ void Statement::warning(const char *format, ...)
|
||||
{
|
||||
if (global.params.warnings && !global.gag)
|
||||
{
|
||||
fprintf(stdmsg, "warning - ");
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
::verror(loc, format, ap);
|
||||
::vwarning(loc, format, ap);
|
||||
va_end( ap );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,13 +71,11 @@ namespace Logger
|
||||
{
|
||||
return _enabled;
|
||||
}
|
||||
void attention(const Loc& loc, const char* fmt,...)
|
||||
void attention(Loc loc, const char* fmt,...)
|
||||
{
|
||||
printf("Warning: %s: ", loc.toChars());
|
||||
va_list va;
|
||||
va_start(va,fmt);
|
||||
vprintf(fmt,va);
|
||||
vwarning(loc,fmt,va);
|
||||
va_end(va);
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace Logger
|
||||
void disable();
|
||||
bool enabled();
|
||||
|
||||
void attention(const Loc& loc, const char* fmt, ...);
|
||||
void attention(Loc loc, const char* fmt, ...);
|
||||
|
||||
struct LoggerScope
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user