Skip to content

Commit 6ead943

Browse files
WalterBrightthewilsonator
authored andcommitted
add pragma(printf) to ErrorSink functions
1 parent 4631dc8 commit 6ead943

2 files changed

Lines changed: 69 additions & 1 deletion

File tree

compiler/src/dmd/errorsink.d

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ abstract class ErrorSink
4040
void vdeprecation(Loc loc, const(char)* format, va_list ap);
4141
void vdeprecationSupplemental(Loc loc, const(char)* format, va_list ap);
4242

43+
static if (__VERSION__ < 2092)
44+
{
4345
void error(Loc loc, const(char)* format, ...)
4446
{
4547
va_list ap;
@@ -95,6 +97,72 @@ abstract class ErrorSink
9597
vdeprecationSupplemental(loc, format, ap);
9698
va_end(ap);
9799
}
100+
}
101+
else
102+
{
103+
pragma(printf)
104+
void error(Loc loc, const(char)* format, ...)
105+
{
106+
va_list ap;
107+
va_start(ap, format);
108+
verror(loc, format, ap);
109+
va_end(ap);
110+
}
111+
112+
pragma(printf)
113+
void errorSupplemental(Loc loc, const(char)* format, ...)
114+
{
115+
va_list ap;
116+
va_start(ap, format);
117+
verrorSupplemental(loc, format, ap);
118+
va_end(ap);
119+
}
120+
121+
pragma(printf)
122+
void warning(Loc loc, const(char)* format, ...)
123+
{
124+
va_list ap;
125+
va_start(ap, format);
126+
vwarning(loc, format, ap);
127+
va_end(ap);
128+
}
129+
130+
pragma(printf)
131+
void warningSupplemental(Loc loc, const(char)* format, ...)
132+
{
133+
va_list ap;
134+
va_start(ap, format);
135+
vwarningSupplemental(loc, format, ap);
136+
va_end(ap);
137+
}
138+
139+
pragma(printf)
140+
void message(Loc loc, const(char)* format, ...)
141+
{
142+
va_list ap;
143+
va_start(ap, format);
144+
vmessage(loc, format, ap);
145+
va_end(ap);
146+
}
147+
148+
pragma(printf)
149+
void deprecation(Loc loc, const(char)* format, ...)
150+
{
151+
va_list ap;
152+
va_start(ap, format);
153+
vdeprecation(loc, format, ap);
154+
va_end(ap);
155+
}
156+
157+
pragma(printf)
158+
void deprecationSupplemental(Loc loc, const(char)* format, ...)
159+
{
160+
va_list ap;
161+
va_start(ap, format);
162+
vdeprecationSupplemental(loc, format, ap);
163+
va_end(ap);
164+
}
165+
}
98166

99167
/**
100168
* This will be called to indicate compilation has either

compiler/src/dmd/targetcompiler.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ mixin template HostObjectNotFound()
215215
else version (MARS)
216216
{
217217
eSink.errorSupplemental(loc, "dmd might not be correctly installed. Run 'dmd -man' for installation instructions.");
218-
eSink.errorSupplemental(loc, "config file: %.*s", configFile.length, configFile.ptr);
218+
eSink.errorSupplemental(loc, "config file: %.*s", cast(int)configFile.length, configFile.ptr);
219219
}
220220
else
221221
static assert(0, "unknown compiler being built");

0 commit comments

Comments
 (0)