Sign in Join
Wiki copytemporary

$warn: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-``` pascal
2-{$warn}
3-```
4-
5-is a [[local compiler directives|local compiler directive]] controlling emission of certain messages during compile-time. Messages do not necessarily have to be warnings, but can be messages of any kind. The directive may also promote specific messages to errors.
6-
7-The (local) compiler directives
8-
9-``` pascal
10-{$warnings on}
11-```
12-
13-and
14-
15-``` pascal
16-{$warnings off}
17-```
1+`{$warn}` is a [[local compiler directives|local compiler directive]] controlling emission of certain messages during compile-time. Messages do not necessarily have to be warnings, but can be messages of any kind. The directive may also promote specific messages to errors.
182
19-may turn on or off emission of all *warnings* all together.
3+The (local) compiler directives `{$warnings on}` and `{$warnings off}` may turn on or off emission of all *warnings* all together.
204
215## usage
226
23-``` pascal
24-{$warn}
25-```
26-
27-requires a message label and a treatment option as arguments, like this:
7+`{$warn}` requires a message label and a treatment option as arguments, like this:
288
299``` pascal
3010{$warn 3250 off}
3111```
3212
33-The numeric message label can be retrieved during compilation with the
34-
35-``` bash
36--vq
37-```
38-
39-option supplied on the command-line (verbosity: show message numbers). Some messages and groups of messages have an alias, too, which can be seen in the table below.
40-
41-Beside
42-
43-``` pascal
44-{$warn 3019 on}
45-```
46-
47-or
48-
49-``` pascal
50-{$warn 3019 off}
51-```
52-
53-and the shorthand notation
54-
55-``` pascal
56-{$warn 3019 +}
57-```
58-
59-and
60-
61-``` pascal
62-{$warn 3019 -}
63-```
64-
65-respectively,
66-
67-``` pascal
68-{$warn}
69-```
70-
71-may be used to promote messages to errors.
72-
73-``` pascal
74-{$warn symbol_experimental error}
75-```
76-
77-will make all, if any, \[\[Hint Directives\|hints concerning
78-
79-```delphi
80-experimental
81-```
82-
83-symbols\]\] become (non-fatal) errors. Depending on the selected error treatment, the compiler may stop compiling or continue, unless a threshold of errors has been reached.
84-
85-Note, demoting messages to errors is not possible. A
13+The numeric message label can be retrieved during compilation with the `-vq` option supplied on the command-line (verbosity: show message numbers). Some messages and groups of messages have an alias, too, which can be seen in the table below.
8614
87-``` pascal
88-{$fatal}
89-```
15+Beside `{$warn 3019 on}` or `{$warn 3019 off}` and the shorthand notation `{$warn 3019 +}` and `{$warn 3019 -}` respectively, `{$warn}` may be used to promote messages to errors. `{$warn symbol_experimental error}` will make all, if any, [[Hint Directives|hints concerning experimental symbols]] become (non-fatal) errors. Depending on the selected error treatment, the compiler may stop compiling or continue, unless a threshold of errors has been reached.
9016
91-error will always be fatal.
17+Note, demoting messages to errors is not possible. A `{$fatal}` error will always be fatal.
9218
9319## message labels
9420
9521<table>
9622<caption>[[FPC]] messages (excerpt)</caption>
9723<thead>
9824<tr>
9925<th><p>index</p></th>
10026<th><p>alias</p></th>
10127<th><p>situations triggering the message</p></th>
10228</tr>
10329</thead>
10430<tbody>
10531<tr>
106-<td><div class="sourceCode" id="cb1"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="dv">02024</span></span></code></pre></div></td>
32+<td><p><code>02024</code></p></td>
10733<td></td>
10834<td><ul>
109-<li>there is a custom defined
110-<div class="sourceCode" id="cb2"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$warning}</span></span></code></pre></div></li>
35+<li>there is a custom defined <code>{$warning}</code></li>
11136</ul></td>
11237</tr>
11338<tr>
114-<td><div class="sourceCode" id="cb3"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="dv">02077</span></span></code></pre></div></td>
39+<td><p><code>02077</code></p></td>
11540<td></td>
11641<td><ul>
117-<li>the directive
118-<div class="sourceCode" id="cb4"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$minStackSize}</span></span></code></pre></div>
119-<p>is used, but not supported on the current OS</p></li>
42+<li>the directive <code>{$minStackSize}</code> is used, but not supported on the current OS</li>
12043</ul></td>
12144</tr>
12245<tr>
123-<td><div class="sourceCode" id="cb5"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="dv">02078</span></span></code></pre></div></td>
46+<td><p><code>02078</code></p></td>
12447<td></td>
12548<td><ul>
126-<li>the directive
127-<div class="sourceCode" id="cb6"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="ot">{$maxStackSize}</span></span></code></pre></div>
128-<p>is used, but not supported on the current OS</p></li>
49+<li>the directive <code>{$maxStackSize}</code> is used, but not supported on the current OS</li>
12950</ul></td>
13051</tr>
13152<tr>
132-<td><div class="sourceCode" id="cb7"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="dv">03018</span></span></code></pre></div></td>
53+<td><p><code>03018</code></p></td>
13354<td></td>
13455<td><ul>
135-<li>a
136-<pre class="delphi"><code>constructor</code></pre>
137-<p>is not defined at</p>
138-<pre class="delphi"><code>public</code></pre>
139-<p>visibility level</p></li>
56+<li>a <code>constructor</code> is not defined at <code>public</code> visibility level</li>
14057</ul></td>
14158</tr>
14259<tr>
143-<td><div class="sourceCode" id="cb10"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="dv">03019</span></span></code></pre></div></td>
60+<td><p><code>03019</code></p></td>
14461<td></td>
14562<td><ul>
146-<li>a
147-<pre class="delphi"><code>destructor</code></pre>
148-<p>is not defined at</p>
149-<pre class="delphi"><code>public</code></pre>
150-<p>visibility level</p></li>
63+<li>a <code>destructor</code> is not defined at <code>public</code> visibility level</li>
15164</ul></td>
15265</tr>
15366<tr>
154-<td><div class="sourceCode" id="cb13"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="dv">03177</span></span></code></pre></div></td>
67+<td><p><code>03177</code></p></td>
15568<td></td>
15669<td><ul>
157-<li>a
158-<div class="sourceCode" id="cb14"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="kw">record</span></span></code></pre></div>
159-<p>initialization does not define values for all fields</p></li>
70+<li>a <code>record</code> initialization does not define values for all fields</li>
16071</ul></td>
16172</tr>
16273<tr>
163-<td><div class="sourceCode" id="cb15"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="dv">03211</span></span></code></pre></div></td>
164-<td><div class="sourceCode" id="cb16"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a>implicit_variants</span></code></pre></div></td>
74+<td><p><code>03211</code></p></td>
75+<td><p><code>implicit_variants</code></p></td>
16576<td><ul>
166-<li>the
167-<div class="sourceCode" id="cb17"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a>variants</span></code></pre></div>
168-<p>unit is required, but has not yet been loaded</p></li>
77+<li>the <code>variants</code> unit is required, but has not yet been loaded</li>
16978</ul></td>
17079</tr>
17180<tr>
172-<td><div class="sourceCode" id="cb18"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="dv">03250</span></span></code></pre></div></td>
81+<td><p><code>03250</code></p></td>
17382<td></td>
17483<td><ul>
17584<li>a virtual method is overridden with lower visibility</li>
17685</ul></td>
17786</tr>
17887<tr>
179-<td><div class="sourceCode" id="cb19"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb19-1"><a href="#cb19-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04044</span></span></code></pre></div></td>
88+<td><p><code>04044</code></p></td>
18089<td></td>
18190<td><ul>
182-<li>a comparison might be always
183-<div class="sourceCode" id="cb20"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a><span class="kw">false</span></span></code></pre></div>
184-<p>(disjunct ranges)</p></li>
91+<li>a comparison might be always <code>false</code> (disjunct ranges)</li>
18592</ul></td>
18693</tr>
18794<tr>
188-<td><div class="sourceCode" id="cb21"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04045</span></span></code></pre></div></td>
95+<td><p><code>04045</code></p></td>
18996<td></td>
19097<td><ul>
191-<li>a comparison might be always
192-<div class="sourceCode" id="cb22"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb22-1"><a href="#cb22-1" aria-hidden="true" tabindex="-1"></a><span class="kw">true</span></span></code></pre></div>
193-<p>(disjunct ranges)</p></li>
98+<li>a comparison might be always <code>true</code> (disjunct ranges)</li>
19499</ul></td>
195100</tr>
196101<tr>
197-<td><div class="sourceCode" id="cb23"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04046</span></span></code></pre></div></td>
198-<td><div class="sourceCode" id="cb24"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a>constructing_abstract</span></code></pre></div></td>
102+<td><p><code>04046</code></p></td>
103+<td><p><code>constructing_abstract</code></p></td>
199104<td><ul>
200105<li>constructing an instance of a class with abstract methods</li>
201106</ul></td>
202107</tr>
203108<tr>
204-<td><div class="sourceCode" id="cb25"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb25-1"><a href="#cb25-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04056</span></span></code></pre></div></td>
109+<td><p><code>04056</code></p></td>
205110<td></td>
206111<td><ul>
207112<li>a pointer to ordinal conversion is not portable</li>
208113</ul></td>
209114</tr>
210115<tr>
211-<td><div class="sourceCode" id="cb26"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04090</span></span></code></pre></div></td>
212-<td><div class="sourceCode" id="cb27"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a>zero_nil_compat</span></code></pre></div></td>
116+<td><p><code>04090</code></p></td>
117+<td><p><code>zero_nil_compat</code></p></td>
213118<td><ul>
214-<li>converting
215-<div class="sourceCode" id="cb28"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a><span class="dv">0</span></span></code></pre></div>
216-<p>to [[Nil|</p>
217-<div class="sourceCode" id="cb29"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb29-1"><a href="#cb29-1" aria-hidden="true" tabindex="-1"></a><span class="kw">nil</span></span></code></pre></div>
218-<p>]] (integer to pointer)</p></li>
119+<li>converting <code>0</code> to [[Nil|nil]] (integer to pointer)</li>
219120</ul></td>
220121</tr>
221122<tr>
222-<td><div class="sourceCode" id="cb30"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04104</span></span></code></pre></div></td>
223-<td><div class="sourceCode" id="cb31"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb31-1"><a href="#cb31-1" aria-hidden="true" tabindex="-1"></a>implicit_string_cast</span></code></pre></div></td>
123+<td><p><code>04104</code></p></td>
124+<td><p><code>implicit_string_cast</code></p></td>
224125<td><ul>
225126<li>implicit string type conversion</li>
226127</ul></td>
227128</tr>
228129<tr>
229-<td><div class="sourceCode" id="cb32"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04105</span></span></code></pre></div></td>
230-<td><div class="sourceCode" id="cb33"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a>implicit_string_cast_loss</span></code></pre></div></td>
130+<td><p><code>04105</code></p></td>
131+<td><p><code>implicit_string_cast_loss</code></p></td>
231132<td><ul>
232133<li>implicit string type conversion with potential data loss</li>
233134</ul></td>
234135</tr>
235136<tr>
236-<td><div class="sourceCode" id="cb34"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb34-1"><a href="#cb34-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04106</span></span></code></pre></div></td>
237-<td><div class="sourceCode" id="cb35"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a>explicit_string_cast</span></code></pre></div></td>
137+<td><p><code>04106</code></p></td>
138+<td><p><code>explicit_string_cast</code></p></td>
238139<td><ul>
239140<li>explicit string type conversion</li>
240141</ul></td>
241142</tr>
242143<tr>
243-<td><div class="sourceCode" id="cb36"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04107</span></span></code></pre></div></td>
244-<td><div class="sourceCode" id="cb37"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb37-1"><a href="#cb37-1" aria-hidden="true" tabindex="-1"></a>explicit_string_cast_loss</span></code></pre></div></td>
144+<td><p><code>04107</code></p></td>
145+<td><p><code>explicit_string_cast_loss</code></p></td>
245146<td><ul>
246147<li>explicit string type conversion with potential data loss</li>
247148</ul></td>
248149</tr>
249150<tr>
250-<td><div class="sourceCode" id="cb38"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb38-1"><a href="#cb38-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04108</span></span></code></pre></div></td>
251-<td><div class="sourceCode" id="cb39"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb39-1"><a href="#cb39-1" aria-hidden="true" tabindex="-1"></a>cvt_narrowing_string_lost</span></code></pre></div></td>
151+<td><p><code>04108</code></p></td>
152+<td><p><code>cvt_narrowing_string_lost</code></p></td>
252153<td><ul>
253154<li>Unicode constant cast with potential data loss</li>
254155</ul></td>
255156</tr>
256157<tr>
257-<td><div class="sourceCode" id="cb40"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb40-1"><a href="#cb40-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04116</span></span></code></pre></div></td>
258-<td><div class="sourceCode" id="cb41"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a>intf_raise_visibility</span></code></pre></div></td>
158+<td><p><code>04116</code></p></td>
159+<td><p><code>intf_raise_visibility</code></p></td>
259160<td><ul>
260161<li>the interface defines a broader visibility for a method</li>
261162</ul></td>
262163</tr>
263164<tr>
264-<td><div class="sourceCode" id="cb42"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="dv">04122</span></span></code></pre></div></td>
265-<td><div class="sourceCode" id="cb43"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb43-1"><a href="#cb43-1" aria-hidden="true" tabindex="-1"></a>constructing_abstract</span></code></pre></div></td>
165+<td><p><code>04122</code></p></td>
166+<td><p><code>constructing_abstract</code></p></td>
266167<td><ul>
267168<li>constructing an instance of an abstract class</li>
268169</ul></td>
269170</tr>
270171<tr>
271-<td><div class="sourceCode" id="cb44"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05023</span></span></code></pre></div></td>
172+<td><p><code>05023</code></p></td>
272173<td></td>
273174<td><ul>
274-<li>a
275-<div class="sourceCode" id="cb45"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="kw">unit</span></span></code></pre></div>
276-<p>is imported, but not used (except units containing</p>
277-<div class="sourceCode" id="cb46"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a><span class="kw">initialization</span></span></code></pre></div>
278-<p>/</p>
279-<div class="sourceCode" id="cb47"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="kw">finalization</span></span></code></pre></div>
280-<p>code)</p></li>
175+<li>a <code>unit</code> is imported, but not used (except units containing <code>initialization</code>/<code>finalization</code> code)</li>
281176</ul></td>
282177</tr>
283178<tr>
284-<td><div class="sourceCode" id="cb48"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05024</span></span></code></pre></div></td>
179+<td><p><code>05024</code></p></td>
285180<td></td>
286181<td><ul>
287182<li>a routine parameter remains unused</li>
288183</ul></td>
289184</tr>
290185<tr>
291-<td><div class="sourceCode" id="cb49"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05033</span></span></code></pre></div></td>
292-<td><div class="sourceCode" id="cb50"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb50-1"><a href="#cb50-1" aria-hidden="true" tabindex="-1"></a>no_retval</span></code></pre></div></td>
186+<td><p><code>05033</code></p></td>
187+<td><p><code>no_retval</code></p></td>
293188<td><ul>
294189<li>no (for the compiler obvious) assignment to a function’s return value</li>
295190</ul></td>
296191</tr>
297192<tr>
298-<td><div class="sourceCode" id="cb51"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05036</span></span></code></pre></div></td>
193+<td><p><code>05036</code></p></td>
299194<td></td>
300195<td><ul>
301196<li>a variable which might not yet have been initialized is used</li>
302197</ul></td>
303198</tr>
304199<tr>
305-<td><div class="sourceCode" id="cb52"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb52-1"><a href="#cb52-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05043</span></span></code></pre></div></td>
306-<td><div class="sourceCode" id="cb53"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb53-1"><a href="#cb53-1" aria-hidden="true" tabindex="-1"></a>symbol_deprecated</span></code></pre></div></td>
200+<td><p><code>05043</code></p></td>
201+<td><p><code>symbol_deprecated</code></p></td>
307202<td><ul>
308-<li>a symbol with the
309-<pre class="delphi"><code>deprecated</code></pre>
310-<p>hint (no deprecation message defined) is used</p></li>
203+<li>a symbol with the <code>deprecated</code> hint (no deprecation message defined) is used</li>
311204</ul></td>
312205</tr>
313206<tr>
314-<td><div class="sourceCode" id="cb55"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb55-1"><a href="#cb55-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05044</span></span></code></pre></div></td>
315-<td><div class="sourceCode" id="cb56"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb56-1"><a href="#cb56-1" aria-hidden="true" tabindex="-1"></a>symbol_platform</span></code></pre></div></td>
207+<td><p><code>05044</code></p></td>
208+<td><p><code>symbol_platform</code></p></td>
316209<td><ul>
317-<li>a symbol with the
318-<pre class="delphi"><code>platform</code></pre>
319-<p>hint is used</p></li>
210+<li>a symbol with the <code>platform</code> hint is used</li>
320211</ul></td>
321212</tr>
322213<tr>
323-<td><div class="sourceCode" id="cb58"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05055</span></span></code></pre></div></td>
324-<td><div class="sourceCode" id="cb59"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb59-1"><a href="#cb59-1" aria-hidden="true" tabindex="-1"></a>symbol_unimplemented</span></code></pre></div></td>
214+<td><p><code>05055</code></p></td>
215+<td><p><code>symbol_unimplemented</code></p></td>
325216<td><ul>
326-<li>a symbol with the
327-<pre class="delphi"><code>unimplemented</code></pre>
328-<p>hint is used</p></li>
217+<li>a symbol with the <code>unimplemented</code> hint is used</li>
329218</ul></td>
330219</tr>
331220<tr>
332-<td><div class="sourceCode" id="cb61"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb61-1"><a href="#cb61-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05059</span></span></code></pre></div></td>
221+<td><p><code>05059</code></p></td>
333222<td></td>
334223<td><ul>
335224<li>inside a function definition its result variable’s value is used, before it has been initialized</li>
336225</ul></td>
337226</tr>
338227<tr>
339-<td><div class="sourceCode" id="cb62"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb62-1"><a href="#cb62-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05063</span></span></code></pre></div></td>
340-<td><div class="sourceCode" id="cb63"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb63-1"><a href="#cb63-1" aria-hidden="true" tabindex="-1"></a>symbol_experimental</span></code></pre></div></td>
228+<td><p><code>05063</code></p></td>
229+<td><p><code>symbol_experimental</code></p></td>
341230<td><ul>
342-<li>a symbol with the
343-<pre class="delphi"><code>experimental</code></pre>
344-<p>hint is used</p></li>
231+<li>a symbol with the <code>experimental</code> hint is used</li>
345232</ul></td>
346233</tr>
347234<tr>
348-<td><div class="sourceCode" id="cb65"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb65-1"><a href="#cb65-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05065</span></span></code></pre></div></td>
349-<td><div class="sourceCode" id="cb66"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb66-1"><a href="#cb66-1" aria-hidden="true" tabindex="-1"></a>symbol_library</span></code></pre></div></td>
235+<td><p><code>05065</code></p></td>
236+<td><p><code>symbol_library</code></p></td>
350237<td><ul>
351238<li>a library symbol is used</li>
352239</ul></td>
353240</tr>
354241<tr>
355-<td><div class="sourceCode" id="cb67"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb67-1"><a href="#cb67-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05066</span></span></code></pre></div></td>
356-<td><div class="sourceCode" id="cb68"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb68-1"><a href="#cb68-1" aria-hidden="true" tabindex="-1"></a>symbol_deprecated</span></code></pre></div></td>
242+<td><p><code>05066</code></p></td>
243+<td><p><code>symbol_deprecated</code></p></td>
357244<td><ul>
358-<li>a symbol with the
359-<pre class="delphi"><code>deprecated</code></pre>
360-<p>hint is used and a custom deprecation notice has been defined</p></li>
245+<li>a symbol with the <code>deprecated</code> hint is used and a custom deprecation notice has been defined</li>
361246</ul></td>
362247</tr>
363248<tr>
364-<td><div class="sourceCode" id="cb70"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb70-1"><a href="#cb70-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05073</span></span></code></pre></div></td>
249+<td><p><code>05073</code></p></td>
365250<td></td>
366251<td><ul>
367-<li>a
368-<pre class="delphi"><code>private property</code></pre>
369-<p>remains unused</p></li>
252+<li>a <code>private property</code> remains unused</li>
370253</ul></td>
371254</tr>
372255<tr>
373-<td><div class="sourceCode" id="cb72"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb72-1"><a href="#cb72-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05074</span></span></code></pre></div></td>
374-<td><div class="sourceCode" id="cb73"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb73-1"><a href="#cb73-1" aria-hidden="true" tabindex="-1"></a>unit_deprecated</span></code></pre></div></td>
256+<td><p><code>05074</code></p></td>
257+<td><p><code>unit_deprecated</code></p></td>
375258<td><ul>
376-<li>a unit with the
377-<pre class="delphi"><code>deprecated</code></pre>
378-<p>hint (without a custom deprecation message supplied) is used</p></li>
259+<li>a unit with the <code>deprecated</code> hint (without a custom deprecation message supplied) is used</li>
379260</ul></td>
380261</tr>
381262<tr>
382-<td><div class="sourceCode" id="cb75"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb75-1"><a href="#cb75-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05075</span></span></code></pre></div></td>
383-<td><div class="sourceCode" id="cb76"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb76-1"><a href="#cb76-1" aria-hidden="true" tabindex="-1"></a>unit_deprecated</span></code></pre></div></td>
263+<td><p><code>05075</code></p></td>
264+<td><p><code>unit_deprecated</code></p></td>
384265<td><ul>
385-<li>a unit with the
386-<pre class="delphi"><code>deprecated</code></pre>
387-<p>hint is used and a custom deprecation notice has been defined</p></li>
266+<li>a unit with the <code>deprecated</code> hint is used and a custom deprecation notice has been defined</li>
388267</ul></td>
389268</tr>
390269<tr>
391-<td><div class="sourceCode" id="cb78"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb78-1"><a href="#cb78-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05076</span></span></code></pre></div></td>
392-<td><div class="sourceCode" id="cb79"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb79-1"><a href="#cb79-1" aria-hidden="true" tabindex="-1"></a>unit_platform</span></code></pre></div></td>
270+<td><p><code>05076</code></p></td>
271+<td><p><code>unit_platform</code></p></td>
393272<td><ul>
394-<li>a unit with the
395-<pre class="delphi"><code>platform</code></pre>
396-<p>hint is used</p></li>
273+<li>a unit with the <code>platform</code> hint is used</li>
397274</ul></td>
398275</tr>
399276<tr>
400-<td><div class="sourceCode" id="cb81"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb81-1"><a href="#cb81-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05077</span></span></code></pre></div></td>
401-<td><div class="sourceCode" id="cb82"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb82-1"><a href="#cb82-1" aria-hidden="true" tabindex="-1"></a>unit_library</span></code></pre></div></td>
277+<td><p><code>05077</code></p></td>
278+<td><p><code>unit_library</code></p></td>
402279<td><ul>
403280<li>[to be explained]</li>
404281</ul></td>
405282</tr>
406283<tr>
407-<td><div class="sourceCode" id="cb83"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb83-1"><a href="#cb83-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05078</span></span></code></pre></div></td>
408-<td><div class="sourceCode" id="cb84"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb84-1"><a href="#cb84-1" aria-hidden="true" tabindex="-1"></a>unit_unimplemented</span></code></pre></div></td>
284+<td><p><code>05078</code></p></td>
285+<td><p><code>unit_unimplemented</code></p></td>
409286<td><ul>
410-<li>a unit with the
411-<pre class="delphi"><code>unimplemented</code></pre>
412-<p>hint is used</p></li>
287+<li>a unit with the <code>unimplemented</code> hint is used</li>
413288</ul></td>
414289</tr>
415290<tr>
416-<td><div class="sourceCode" id="cb86"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb86-1"><a href="#cb86-1" aria-hidden="true" tabindex="-1"></a><span class="dv">05079</span></span></code></pre></div></td>
417-<td><div class="sourceCode" id="cb87"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb87-1"><a href="#cb87-1" aria-hidden="true" tabindex="-1"></a>unit_experimental</span></code></pre></div></td>
291+<td><p><code>05079</code></p></td>
292+<td><p><code>unit_experimental</code></p></td>
418293<td><ul>
419-<li>a unit with the
420-<pre class="delphi"><code>experimental</code></pre>
421-<p>hint is used</p></li>
294+<li>a unit with the <code>experimental</code> hint is used</li>
422295</ul></td>
423296</tr>
424297<tr>
425-<td><div class="sourceCode" id="cb89"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb89-1"><a href="#cb89-1" aria-hidden="true" tabindex="-1"></a><span class="dv">06018</span></span></code></pre></div></td>
298+<td><p><code>06018</code></p></td>
426299<td></td>
427300<td><ul>
428301<li>the compiler has determined there is, or might be, unreachable code</li>
429302</ul></td>
430303</tr>
431304<tr>
432-<td><div class="sourceCode" id="cb90"><pre class="sourceCode pascal"><code class="sourceCode pascal"><span id="cb90-1"><a href="#cb90-1" aria-hidden="true" tabindex="-1"></a><span class="dv">07104</span></span></code></pre></div></td>
305+<td><p><code>07104</code></p></td>
433306<td></td>
434307<td><ul>
435-<li>register indirect addressing with
436-<div class="sourceCode" id="cb91"><pre class="sourceCode asm"><code class="sourceCode fasm"><span id="cb91-1"><a href="#cb91-1" aria-hidden="true" tabindex="-1"></a>ebp</span></code></pre></div>
437-<p>is used in conjunction with a negative offset</p></li>
308+<li>register indirect addressing with <code>ebp</code> is used in conjunction with a negative offset</li>
438309</ul></td>
439310</tr>
440311</tbody>
441312</table>
442313
443314Note, some aliases identify *multiple* messages.
444315
445316## see also
446317
447-- \[<https://www.freepascal.org/docs-html/prog/progsu80.html> § “
448- ```text
449- $WARN
450- ```
451-
452-
453- Control emission of warnings” in the *Free Pascal programmer’s guide*\]
454-- \[\[\$message\|
455- ``` pascal
456- {$message}
457- ```
458-
459- \]\]
318+- [§ “`$WARN`: Control emission of warnings” in the *Free Pascal programmer’s guide*](https://www.freepascal.org/docs-html/prog/progsu80.html)
319+- [[$message|{$message}]]
460320- [[Turn warnings and hints on or off]]
461321
462322---
463323*From the Free Pascal wiki, page "$warn", as it stood on 2022-09-07 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
464324Category: FPC
465325Category: Local compiler directives

Back to history