1 | .. |
2 | ------------------------------------------------------------------- |
3 | NOTE: This file is automatically generated by running clang-tblgen |
4 | -gen-diag-docs. Do not edit this file by hand!! |
5 | ------------------------------------------------------------------- |
6 | |
7 | .. Add custom CSS to output. FIXME: This should be put into <head> rather |
8 | than the start of <body>. |
9 | .. raw:: html |
10 | |
11 | <style> |
12 | table.docutils { |
13 | width: 1px; |
14 | } |
15 | table.docutils td { |
16 | border: none; |
17 | padding: 0 0 0 0.2em; |
18 | vertical-align: middle; |
19 | white-space: nowrap; |
20 | width: 1px; |
21 | font-family: monospace; |
22 | } |
23 | table.docutils tr + tr { |
24 | border-top: 0.2em solid #aaa; |
25 | } |
26 | .error { |
27 | font-family: monospace; |
28 | font-weight: bold; |
29 | color: #c00; |
30 | } |
31 | .warning { |
32 | font-family: monospace; |
33 | font-weight: bold; |
34 | color: #80a; |
35 | } |
36 | .remark { |
37 | font-family: monospace; |
38 | font-weight: bold; |
39 | color: #00c; |
40 | } |
41 | .diagtext { |
42 | font-family: monospace; |
43 | font-weight: bold; |
44 | } |
45 | </style> |
46 | |
47 | .. FIXME: rST doesn't support formatting this, so we format all <td> elements |
48 | as monospace font face instead. |
49 | .. |nbsp| unicode:: 0xA0 |
50 | :trim: |
51 | |
52 | .. Roles generated by clang-tblgen. |
53 | .. role:: error |
54 | .. role:: warning |
55 | .. role:: remark |
56 | .. role:: diagtext |
57 | .. role:: placeholder(emphasis) |
58 | |
59 | ========================= |
60 | Diagnostic flags in Clang |
61 | ========================= |
62 | .. contents:: |
63 | :local: |
64 | |
65 | Introduction |
66 | ============ |
67 | |
68 | This page lists the diagnostic flags currently supported by Clang. |
69 | |
70 | Diagnostic flags |
71 | ================ |
72 | |
73 | -W |
74 | -- |
75 | Synonym for `-Wextra`_. |
76 | |
77 | |
78 | -W#pragma-messages |
79 | ------------------ |
80 | This diagnostic is enabled by default. |
81 | |
82 | **Diagnostic text:** |
83 | |
84 | The text of this diagnostic is not controlled by Clang. |
85 | |
86 | |
87 | -W#warnings |
88 | ----------- |
89 | This diagnostic is enabled by default. |
90 | |
91 | **Diagnostic text:** |
92 | |
93 | The text of this diagnostic is not controlled by Clang. |
94 | |
95 | |
96 | -WCFString-literal |
97 | ------------------ |
98 | This diagnostic is enabled by default. |
99 | |
100 | **Diagnostic text:** |
101 | |
102 | +------------------------------------------------------------------------------------------------------------------------------------+ |
103 | |:warning:`warning:` |nbsp| :diagtext:`input conversion stopped due to an input byte that does not belong to the input codeset UTF-8`| |
104 | +------------------------------------------------------------------------------------------------------------------------------------+ |
105 | |
106 | |
107 | -WCL4 |
108 | ----- |
109 | Some of the diagnostics controlled by this flag are enabled by default. |
110 | |
111 | Controls `-Wall`_, `-Wextra`_. |
112 | |
113 | |
114 | -WIndependentClass-attribute |
115 | ---------------------------- |
116 | This diagnostic is enabled by default. |
117 | |
118 | **Diagnostic text:** |
119 | |
120 | +------------------------------------------------------------------------------------------------------------------------------+ |
121 | |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on a typedef only; attribute is ignored`| |
122 | +------------------------------------------------------------------------------------------------------------------------------+ |
123 | |
124 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
125 | |:warning:`warning:` |nbsp| :diagtext:`'objc\_independent\_class' attribute may be put on Objective-C object pointer type only; attribute is ignored`| |
126 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
127 | |
128 | |
129 | -WNSObject-attribute |
130 | -------------------- |
131 | This diagnostic is enabled by default. |
132 | |
133 | **Diagnostic text:** |
134 | |
135 | +--------------------------------------------------------------------------------------------------------------+ |
136 | |:warning:`warning:` |nbsp| :diagtext:`'NSObject' attribute may be put on a typedef only; attribute is ignored`| |
137 | +--------------------------------------------------------------------------------------------------------------+ |
138 | |
139 | |
140 | -Wabi |
141 | ----- |
142 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
143 | |
144 | -Wabsolute-value |
145 | ---------------- |
146 | This diagnostic is enabled by default. |
147 | |
148 | **Diagnostic text:** |
149 | |
150 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
151 | |:warning:`warning:` |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`given an argument of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`but has parameter of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`which may cause truncation of value`| |
152 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
153 | |
154 | +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ |
155 | |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of` |nbsp| |+--------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is suspicious`| |
156 | | ||:diagtext:`pointer` || | |
157 | | |+--------------------+| | |
158 | | ||:diagtext:`function`|| | |
159 | | |+--------------------+| | |
160 | | ||:diagtext:`array` || | |
161 | | |+--------------------+| | |
162 | +---------------------------------------------------------------------------+----------------------+---------------------------------------------------------------------------------+ |
163 | |
164 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
165 | |:warning:`warning:` |nbsp| :diagtext:`taking the absolute value of unsigned type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no effect`| |
166 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
167 | |
168 | +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ |
169 | |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| |+--------------------------+| |nbsp| :diagtext:`absolute value function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when argument is of` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type`| |
170 | | ||:diagtext:`integer` || ||:diagtext:`integer` || | |
171 | | |+--------------------------+| |+--------------------------+| | |
172 | | ||:diagtext:`floating point`|| ||:diagtext:`floating point`|| | |
173 | | |+--------------------------+| |+--------------------------+| | |
174 | | ||:diagtext:`complex` || ||:diagtext:`complex` || | |
175 | | |+--------------------------+| |+--------------------------+| | |
176 | +----------------------------------------------------+----------------------------+------------------------------------------------------------------------------------------------------------------+----------------------------+------------------------+ |
177 | |
178 | |
179 | -Wabstract-final-class |
180 | ---------------------- |
181 | This diagnostic is enabled by default. |
182 | |
183 | **Diagnostic text:** |
184 | |
185 | +-----------------------------------------------------------------+--------------------+-------------+ |
186 | |:warning:`warning:` |nbsp| :diagtext:`abstract class is marked '`|+------------------+|:diagtext:`'`| |
187 | | ||:diagtext:`final` || | |
188 | | |+------------------+| | |
189 | | ||:diagtext:`sealed`|| | |
190 | | |+------------------+| | |
191 | +-----------------------------------------------------------------+--------------------+-------------+ |
192 | |
193 | |
194 | -Wabstract-vbase-init |
195 | --------------------- |
196 | **Diagnostic text:** |
197 | |
198 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
199 | |:warning:`warning:` |nbsp| :diagtext:`initializer for virtual base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of abstract class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will never be used`| |
200 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
201 | |
202 | |
203 | -Waddress |
204 | --------- |
205 | This diagnostic is enabled by default. |
206 | |
207 | Controls `-Wpointer-bool-conversion`_, `-Wstring-compare`_, `-Wtautological-pointer-compare`_. |
208 | |
209 | |
210 | -Waddress-of-array-temporary |
211 | ---------------------------- |
212 | This diagnostic is enabled by default. |
213 | |
214 | **Diagnostic text:** |
215 | |
216 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
217 | |:warning:`warning:` |nbsp| :diagtext:`pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression`| |
218 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
219 | |
220 | |
221 | -Waddress-of-packed-member |
222 | -------------------------- |
223 | This diagnostic is enabled by default. |
224 | |
225 | **Diagnostic text:** |
226 | |
227 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
228 | |:warning:`warning:` |nbsp| :diagtext:`taking address of packed member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of class or structure` |nbsp| :placeholder:`B` |nbsp| :diagtext:`may result in an unaligned pointer value`| |
229 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
230 | |
231 | |
232 | -Waddress-of-temporary |
233 | ---------------------- |
234 | This diagnostic is an error by default, but the flag ``-Wno-address-of-temporary`` can be used to disable the error. |
235 | |
236 | **Diagnostic text:** |
237 | |
238 | +-----------------------------------------------------------------------------------------------------------+ |
239 | |:error:`error:` |nbsp| :diagtext:`taking the address of a temporary object of type` |nbsp| :placeholder:`A`| |
240 | +-----------------------------------------------------------------------------------------------------------+ |
241 | |
242 | |
243 | -Waggregate-return |
244 | ------------------ |
245 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
246 | |
247 | -Waligned-allocation-unavailable |
248 | -------------------------------- |
249 | This diagnostic is an error by default, but the flag ``-Wno-aligned-allocation-unavailable`` can be used to disable the error. |
250 | |
251 | **Diagnostic text:** |
252 | |
253 | +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
254 | |:error:`error:` |nbsp| :diagtext:`aligned` |nbsp| |+------------------------+| |nbsp| :diagtext:`function of type '`:placeholder:`B`:diagtext:`' is only available on` |nbsp| :placeholder:`C` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or newer`| |
255 | | ||:diagtext:`allocation` || | |
256 | | |+------------------------+| | |
257 | | ||:diagtext:`deallocation`|| | |
258 | | |+------------------------+| | |
259 | +--------------------------------------------------+--------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
260 | |
261 | |
262 | -Wall |
263 | ----- |
264 | Some of the diagnostics controlled by this flag are enabled by default. |
265 | |
266 | Controls `-Wmost`_, `-Wparentheses`_, `-Wswitch`_, `-Wswitch-bool`_. |
267 | |
268 | |
269 | -Walloca-with-align-alignof |
270 | --------------------------- |
271 | This diagnostic is enabled by default. |
272 | |
273 | **Diagnostic text:** |
274 | |
275 | +--------------------------------------------------------------------------------------------------------------------+ |
276 | |:warning:`warning:` |nbsp| :diagtext:`second argument to \_\_builtin\_alloca\_with\_align is supposed to be in bits`| |
277 | +--------------------------------------------------------------------------------------------------------------------+ |
278 | |
279 | |
280 | -Wambiguous-delete |
281 | ------------------ |
282 | This diagnostic is enabled by default. |
283 | |
284 | **Diagnostic text:** |
285 | |
286 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
287 | |:warning:`warning:` |nbsp| :diagtext:`multiple suitable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`functions for` |nbsp| :placeholder:`B`:diagtext:`; no 'operator delete' function will be invoked if initialization throws an exception`| |
288 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
289 | |
290 | |
291 | -Wambiguous-ellipsis |
292 | -------------------- |
293 | This diagnostic is enabled by default. |
294 | |
295 | **Diagnostic text:** |
296 | |
297 | +------------------------------------------------------------------------------------------------+---------------------------------------------+ |
298 | |:warning:`warning:` |nbsp| :diagtext:`'...' in this location creates a C-style varargs function`|+-------------------------------------------+| |
299 | | ||:diagtext:`, not a function parameter pack`|| |
300 | | |+-------------------------------------------+| |
301 | | || || |
302 | | |+-------------------------------------------+| |
303 | +------------------------------------------------------------------------------------------------+---------------------------------------------+ |
304 | |
305 | |
306 | -Wambiguous-macro |
307 | ----------------- |
308 | This diagnostic is enabled by default. |
309 | |
310 | **Diagnostic text:** |
311 | |
312 | +-------------------------------------------------------------------------------------------+ |
313 | |:warning:`warning:` |nbsp| :diagtext:`ambiguous expansion of macro` |nbsp| :placeholder:`A`| |
314 | +-------------------------------------------------------------------------------------------+ |
315 | |
316 | |
317 | -Wambiguous-member-template |
318 | --------------------------- |
319 | This diagnostic is enabled by default. |
320 | |
321 | **Diagnostic text:** |
322 | |
323 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
324 | |:warning:`warning:` |nbsp| :diagtext:`lookup of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in member access expression is ambiguous; using member of` |nbsp| :placeholder:`B`| |
325 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
326 | |
327 | |
328 | -Wanalyzer-incompatible-plugin |
329 | ------------------------------ |
330 | This diagnostic is enabled by default. |
331 | |
332 | **Diagnostic text:** |
333 | |
334 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
335 | |:warning:`warning:` |nbsp| :diagtext:`checker plugin '`:placeholder:`A`:diagtext:`' is not compatible with this version of the analyzer`| |
336 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
337 | |
338 | |
339 | -Wanonymous-pack-parens |
340 | ----------------------- |
341 | This diagnostic is enabled by default. |
342 | |
343 | **Diagnostic text:** |
344 | |
345 | +---------------------------------------------------------------------------------------------------------+ |
346 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 requires a parenthesized pack declaration to have a name`| |
347 | +---------------------------------------------------------------------------------------------------------+ |
348 | |
349 | |
350 | -Warc |
351 | ----- |
352 | This diagnostic is enabled by default. |
353 | |
354 | Controls `-Warc-non-pod-memaccess`_, `-Warc-retain-cycles`_, `-Warc-unsafe-retained-assign`_. |
355 | |
356 | |
357 | -Warc-bridge-casts-disallowed-in-nonarc |
358 | --------------------------------------- |
359 | This diagnostic is enabled by default. |
360 | |
361 | **Diagnostic text:** |
362 | |
363 | +-------------------------------------------------------------------------------------------------------------+ |
364 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' casts have no effect when not using ARC`| |
365 | +-------------------------------------------------------------------------------------------------------------+ |
366 | |
367 | |
368 | -Warc-maybe-repeated-use-of-weak |
369 | -------------------------------- |
370 | **Diagnostic text:** |
371 | |
372 | +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ |
373 | |:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`may be accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`and may be unpredictably set to nil; assign to a strong variable to keep the object alive`| |
374 | | ||:diagtext:`variable` || ||:diagtext:`function`|| | |
375 | | |+-----------------------------+| |+--------------------+| | |
376 | | ||:diagtext:`property` || ||:diagtext:`method` || | |
377 | | |+-----------------------------+| |+--------------------+| | |
378 | | ||:diagtext:`implicit property`|| ||:diagtext:`block` || | |
379 | | |+-----------------------------+| |+--------------------+| | |
380 | | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | |
381 | | |+-----------------------------+| |+--------------------+| | |
382 | +---------------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ |
383 | |
384 | |
385 | -Warc-non-pod-memaccess |
386 | ----------------------- |
387 | This diagnostic is enabled by default. |
388 | |
389 | **Diagnostic text:** |
390 | |
391 | +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ |
392 | |:warning:`warning:` |nbsp| |+---------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to ownership-qualified type` |nbsp| :placeholder:`C`| |
393 | | ||:diagtext:`destination for`|| | |
394 | | |+---------------------------+| | |
395 | | ||:diagtext:`source of` || | |
396 | | |+---------------------------+| | |
397 | +---------------------------+-----------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ |
398 | |
399 | |
400 | -Warc-performSelector-leaks |
401 | --------------------------- |
402 | This diagnostic is enabled by default. |
403 | |
404 | **Diagnostic text:** |
405 | |
406 | +-------------------------------------------------------------------------------------------------------+ |
407 | |:warning:`warning:` |nbsp| :diagtext:`performSelector may cause a leak because its selector is unknown`| |
408 | +-------------------------------------------------------------------------------------------------------+ |
409 | |
410 | |
411 | -Warc-repeated-use-of-weak |
412 | -------------------------- |
413 | Also controls `-Warc-maybe-repeated-use-of-weak`_. |
414 | |
415 | **Diagnostic text:** |
416 | |
417 | +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ |
418 | |:warning:`warning:` |nbsp| :diagtext:`weak` |nbsp| |+-----------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is accessed multiple times in this` |nbsp| |+--------------------+| |nbsp| :diagtext:`but may be unpredictably set to nil; assign to a strong variable to keep the object alive`| |
419 | | ||:diagtext:`variable` || ||:diagtext:`function`|| | |
420 | | |+-----------------------------+| |+--------------------+| | |
421 | | ||:diagtext:`property` || ||:diagtext:`method` || | |
422 | | |+-----------------------------+| |+--------------------+| | |
423 | | ||:diagtext:`implicit property`|| ||:diagtext:`block` || | |
424 | | |+-----------------------------+| |+--------------------+| | |
425 | | ||:diagtext:`instance variable`|| ||:diagtext:`lambda` || | |
426 | | |+-----------------------------+| |+--------------------+| | |
427 | +---------------------------------------------------+-------------------------------+--------------------------------------------------------------------------------------+----------------------+-------------------------------------------------------------------------------------------------------------+ |
428 | |
429 | |
430 | -Warc-retain-cycles |
431 | ------------------- |
432 | This diagnostic is enabled by default. |
433 | |
434 | **Diagnostic text:** |
435 | |
436 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
437 | |:warning:`warning:` |nbsp| :diagtext:`capturing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`strongly in this block is likely to lead to a retain cycle`| |
438 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
439 | |
440 | |
441 | -Warc-unsafe-retained-assign |
442 | ---------------------------- |
443 | This diagnostic is enabled by default. |
444 | |
445 | **Diagnostic text:** |
446 | |
447 | +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ |
448 | |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`to a weak` |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| |
449 | | ||:diagtext:`array literal` || ||:diagtext:`property`|| | |
450 | | |+-------------------------------+| |+--------------------+| | |
451 | | ||:diagtext:`dictionary literal` || ||:diagtext:`variable`|| | |
452 | | |+-------------------------------+| |+--------------------+| | |
453 | | ||:diagtext:`numeric literal` || | | | |
454 | | |+-------------------------------+| | | | |
455 | | ||:diagtext:`boxed expression` || | | | |
456 | | |+-------------------------------+| | | | |
457 | | ||:diagtext:`<should not happen>`|| | | | |
458 | | |+-------------------------------+| | | | |
459 | | ||:diagtext:`block literal` || | | | |
460 | | |+-------------------------------+| | | | |
461 | +--------------------------------------------------------+---------------------------------+-------------------------------------+----------------------+------------------------------------------------------+ |
462 | |
463 | +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ |
464 | |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to` |nbsp| |+------------------------------+| |nbsp| |+--------------------+|:diagtext:`; object will be released after assignment`| |
465 | | ||:diagtext:`weak` || ||:diagtext:`property`|| | |
466 | | |+------------------------------+| |+--------------------+| | |
467 | | ||:diagtext:`unsafe\_unretained`|| ||:diagtext:`variable`|| | |
468 | | |+------------------------------+| |+--------------------+| | |
469 | +---------------------------------------------------------------------------+--------------------------------+--------+----------------------+------------------------------------------------------+ |
470 | |
471 | +-----------------------------------------------------------------------------------------------------------------------------+ |
472 | |:warning:`warning:` |nbsp| :diagtext:`assigning retained object to unsafe property; object will be released after assignment`| |
473 | +-----------------------------------------------------------------------------------------------------------------------------+ |
474 | |
475 | |
476 | -Warray-bounds |
477 | -------------- |
478 | This diagnostic is enabled by default. |
479 | |
480 | **Diagnostic text:** |
481 | |
482 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ |
483 | |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is past the end of the array (which contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| |
484 | | || || | |
485 | | |+-------------+| | |
486 | | ||:diagtext:`s`|| | |
487 | | |+-------------+| | |
488 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ |
489 | |
490 | +----------------------------------------------------------------------------------------------------------------------------------+ |
491 | |:warning:`warning:` |nbsp| :diagtext:`array index` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is before the beginning of the array`| |
492 | +----------------------------------------------------------------------------------------------------------------------------------+ |
493 | |
494 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
495 | |:warning:`warning:` |nbsp| :diagtext:`array argument is too small; contains` |nbsp| :placeholder:`A` |nbsp| :diagtext:`elements, callee requires at least` |nbsp| :placeholder:`B`| |
496 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
497 | |
498 | +-----------------------------------------------------------------------------------+ |
499 | |:warning:`warning:` |nbsp| :diagtext:`'static' has no effect on zero-length arrays`| |
500 | +-----------------------------------------------------------------------------------+ |
501 | |
502 | |
503 | -Warray-bounds-pointer-arithmetic |
504 | --------------------------------- |
505 | **Diagnostic text:** |
506 | |
507 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ |
508 | |:warning:`warning:` |nbsp| :diagtext:`the pointer incremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers past the end of the array (that contains` |nbsp| :placeholder:`B` |nbsp| :diagtext:`element`|+-------------+|:diagtext:`)`| |
509 | | || || | |
510 | | |+-------------+| | |
511 | | ||:diagtext:`s`|| | |
512 | | |+-------------+| | |
513 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+-------------+ |
514 | |
515 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
516 | |:warning:`warning:` |nbsp| :diagtext:`the pointer decremented by` |nbsp| :placeholder:`A` |nbsp| :diagtext:`refers before the beginning of the array`| |
517 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
518 | |
519 | |
520 | -Wasm |
521 | ----- |
522 | This diagnostic is enabled by default. |
523 | |
524 | Controls `-Wasm-ignored-qualifier`_, `-Wasm-operand-widths`_. |
525 | |
526 | |
527 | -Wasm-ignored-qualifier |
528 | ----------------------- |
529 | This diagnostic is enabled by default. |
530 | |
531 | **Diagnostic text:** |
532 | |
533 | +----------------------------------------------------------------------------------------------------------+ |
534 | |:warning:`warning:` |nbsp| :diagtext:`ignored` |nbsp| :placeholder:`A` |nbsp| :diagtext:`qualifier on asm`| |
535 | +----------------------------------------------------------------------------------------------------------+ |
536 | |
537 | +-------------------------------------------------------------------------------------+ |
538 | |:warning:`warning:` |nbsp| :diagtext:`meaningless 'volatile' on asm outside function`| |
539 | +-------------------------------------------------------------------------------------+ |
540 | |
541 | |
542 | -Wasm-operand-widths |
543 | -------------------- |
544 | This diagnostic is enabled by default. |
545 | |
546 | **Diagnostic text:** |
547 | |
548 | +-----------------------------------------------------------------------------------------------------------------------+ |
549 | |:warning:`warning:` |nbsp| :diagtext:`value size does not match register size specified by the constraint and modifier`| |
550 | +-----------------------------------------------------------------------------------------------------------------------+ |
551 | |
552 | |
553 | -Wassign-enum |
554 | ------------- |
555 | **Diagnostic text:** |
556 | |
557 | +---------------------------------------------------------------------------------------------------------------+ |
558 | |:warning:`warning:` |nbsp| :diagtext:`integer constant not in range of enumerated type` |nbsp| :placeholder:`A`| |
559 | +---------------------------------------------------------------------------------------------------------------+ |
560 | |
561 | |
562 | -Wassume |
563 | -------- |
564 | This diagnostic is enabled by default. |
565 | |
566 | **Diagnostic text:** |
567 | |
568 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
569 | |:warning:`warning:` |nbsp| :diagtext:`the argument to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has side effects that will be discarded`| |
570 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
571 | |
572 | |
573 | -Wat-protocol |
574 | ------------- |
575 | This diagnostic is enabled by default. |
576 | |
577 | **Diagnostic text:** |
578 | |
579 | +-------------------------------------------------------------------------------------------------------------------+ |
580 | |:warning:`warning:` |nbsp| :diagtext:`@protocol is using a forward protocol declaration of` |nbsp| :placeholder:`A`| |
581 | +-------------------------------------------------------------------------------------------------------------------+ |
582 | |
583 | |
584 | -Watomic-memory-ordering |
585 | ------------------------ |
586 | This diagnostic is enabled by default. |
587 | |
588 | **Diagnostic text:** |
589 | |
590 | +-------------------------------------------------------------------------------------------+ |
591 | |:warning:`warning:` |nbsp| :diagtext:`memory order argument to atomic operation is invalid`| |
592 | +-------------------------------------------------------------------------------------------+ |
593 | |
594 | |
595 | -Watomic-properties |
596 | ------------------- |
597 | Controls `-Wcustom-atomic-properties`_, `-Wimplicit-atomic-properties`_. |
598 | |
599 | |
600 | -Watomic-property-with-user-defined-accessor |
601 | -------------------------------------------- |
602 | This diagnostic is enabled by default. |
603 | |
604 | **Diagnostic text:** |
605 | |
606 | +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ |
607 | |:warning:`warning:` |nbsp| :diagtext:`writable atomic property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot pair a synthesized` |nbsp| |+------------------+| |nbsp| :diagtext:`with a user defined` |nbsp| |+------------------+| |
608 | | ||:diagtext:`getter`|| ||:diagtext:`getter`|| |
609 | | |+------------------+| |+------------------+| |
610 | | ||:diagtext:`setter`|| ||:diagtext:`setter`|| |
611 | | |+------------------+| |+------------------+| |
612 | +--------------------------------------------------------------------------------------------------------------------------------------------+--------------------+-----------------------------------------------+--------------------+ |
613 | |
614 | |
615 | -Wattribute-packed-for-bitfield |
616 | ------------------------------- |
617 | This diagnostic is enabled by default. |
618 | |
619 | **Diagnostic text:** |
620 | |
621 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
622 | |:warning:`warning:` |nbsp| :diagtext:`'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang`| |
623 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
624 | |
625 | |
626 | -Wattributes |
627 | ------------ |
628 | This diagnostic is enabled by default. |
629 | |
630 | Controls `-Wignored-attributes`_, `-Wunknown-attributes`_. |
631 | |
632 | |
633 | -Wauto-disable-vptr-sanitizer |
634 | ----------------------------- |
635 | This diagnostic is enabled by default. |
636 | |
637 | **Diagnostic text:** |
638 | |
639 | +------------------------------------------------------------------------------------------------------+ |
640 | |:warning:`warning:` |nbsp| :diagtext:`implicitly disabling vptr sanitizer because rtti wasn't enabled`| |
641 | +------------------------------------------------------------------------------------------------------+ |
642 | |
643 | |
644 | -Wauto-import |
645 | ------------- |
646 | **Diagnostic text:** |
647 | |
648 | +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ |
649 | |:warning:`warning:` |nbsp| :diagtext:`treating #`|+-------------------------------+| |nbsp| :diagtext:`as an import of module '`:placeholder:`B`:diagtext:`'`| |
650 | | ||:diagtext:`include` || | |
651 | | |+-------------------------------+| | |
652 | | ||:diagtext:`import` || | |
653 | | |+-------------------------------+| | |
654 | | ||:diagtext:`include\_next` || | |
655 | | |+-------------------------------+| | |
656 | | ||:diagtext:`\_\_include\_macros`|| | |
657 | | |+-------------------------------+| | |
658 | +-------------------------------------------------+---------------------------------+-------------------------------------------------------------------------+ |
659 | |
660 | |
661 | -Wauto-storage-class |
662 | -------------------- |
663 | This diagnostic is enabled by default. |
664 | |
665 | **Diagnostic text:** |
666 | |
667 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
668 | |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases`| |
669 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
670 | |
671 | |
672 | -Wauto-var-id |
673 | ------------- |
674 | This diagnostic is enabled by default. |
675 | |
676 | **Diagnostic text:** |
677 | |
678 | +-------------------------------------------------------------------------------------------------------+ |
679 | |:warning:`warning:` |nbsp| :diagtext:`'auto' deduced as 'id' in declaration of` |nbsp| :placeholder:`A`| |
680 | +-------------------------------------------------------------------------------------------------------+ |
681 | |
682 | |
683 | -Wavailability |
684 | -------------- |
685 | This diagnostic is enabled by default. |
686 | |
687 | **Diagnostic text:** |
688 | |
689 | +--------------------------------------------------------------------------------------------------------------+ |
690 | |:warning:`warning:` |nbsp| :diagtext:`'unavailable' availability overrides all other availability information`| |
691 | +--------------------------------------------------------------------------------------------------------------+ |
692 | |
693 | +------------------------------------------------------------------------------------------------------------------------+ |
694 | |:warning:`warning:` |nbsp| :diagtext:`unknown platform` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in availability macro`| |
695 | +------------------------------------------------------------------------------------------------------------------------+ |
696 | |
697 | +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ |
698 | |:warning:`warning:` |nbsp| :diagtext:`feature cannot be` |nbsp| |+----------------------+| |nbsp| :diagtext:`in` |nbsp| :placeholder:`B` |nbsp| :diagtext:`version` |nbsp| :placeholder:`C` |nbsp| :diagtext:`before it was` |nbsp| |+----------------------+| |nbsp| :diagtext:`in version` |nbsp| :placeholder:`E`:diagtext:`; attribute ignored`| |
699 | | ||:diagtext:`introduced`|| ||:diagtext:`introduced`|| | |
700 | | |+----------------------+| |+----------------------+| | |
701 | | ||:diagtext:`deprecated`|| ||:diagtext:`deprecated`|| | |
702 | | |+----------------------+| |+----------------------+| | |
703 | | ||:diagtext:`obsoleted` || ||:diagtext:`obsoleted` || | |
704 | | |+----------------------+| |+----------------------+| | |
705 | +----------------------------------------------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------------------------+------------------------+-------------------------------------------------------------------------------------+ |
706 | |
707 | +---------------------------------------------------------------------------------------------------------------------------+ |
708 | |:warning:`warning:` |nbsp| :diagtext:`use same version number separators '\_' or '.'; as in 'major\[.minor\[.subminor\]\]'`| |
709 | +---------------------------------------------------------------------------------------------------------------------------+ |
710 | |
711 | +---------------------------------------------------------------------------------------+ |
712 | |:warning:`warning:` |nbsp| :diagtext:`availability does not match previous declaration`| |
713 | +---------------------------------------------------------------------------------------+ |
714 | |
715 | +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ |
716 | |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method` |nbsp| |+-----------------------------+| |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`vs.` |nbsp| :placeholder:`D`:diagtext:`)`| |
717 | | || || ||:diagtext:`introduced after` || ||:diagtext:`the protocol method it implements`|| | |
718 | | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | |
719 | | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`deprecated before`|| ||:diagtext:`overridden method` || | |
720 | | |+------------------------------+| |+-----------------------------+| |+---------------------------------------------+| | |
721 | | | | ||:diagtext:`obsoleted before` || | | | |
722 | | | | |+-----------------------------+| | | | |
723 | +---------------------------+--------------------------------+--------------------------+-------------------------------+--------+-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+ |
724 | |
725 | +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ |
726 | |:warning:`warning:` |nbsp| |+------------------------------+|:diagtext:`method cannot be unavailable on` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when` |nbsp| |+---------------------------------------------+| |nbsp| :diagtext:`is available`| |
727 | | || || ||:diagtext:`the protocol method it implements`|| | |
728 | | |+------------------------------+| |+---------------------------------------------+| | |
729 | | ||:diagtext:`overriding` |nbsp| || ||:diagtext:`its overridden method` || | |
730 | | |+------------------------------+| |+---------------------------------------------+| | |
731 | +---------------------------+--------------------------------+---------------------------------------------------------------------------------------------------+-----------------------------------------------+--------------------------------+ |
732 | |
733 | |
734 | -Wbackend-plugin |
735 | ---------------- |
736 | This diagnostic is enabled by default. |
737 | |
738 | **Diagnostic text:** |
739 | |
740 | The text of this diagnostic is not controlled by Clang. |
741 | |
742 | |
743 | -Wbackslash-newline-escape |
744 | -------------------------- |
745 | This diagnostic is enabled by default. |
746 | |
747 | **Diagnostic text:** |
748 | |
749 | +-------------------------------------------------------------------------------+ |
750 | |:warning:`warning:` |nbsp| :diagtext:`backslash and newline separated by space`| |
751 | +-------------------------------------------------------------------------------+ |
752 | |
753 | |
754 | -Wbad-function-cast |
755 | ------------------- |
756 | **Diagnostic text:** |
757 | |
758 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
759 | |:warning:`warning:` |nbsp| :diagtext:`cast from function call of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-matching type` |nbsp| :placeholder:`B`| |
760 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
761 | |
762 | |
763 | -Wbinary-literal |
764 | ---------------- |
765 | Controls `-Wc++14-binary-literal`_, `-Wc++98-c++11-compat-binary-literal`_, `-Wgnu-binary-literal`_. |
766 | |
767 | |
768 | -Wbind-to-temporary-copy |
769 | ------------------------ |
770 | Also controls `-Wc++98-compat-bind-to-temporary-copy`_. |
771 | |
772 | **Diagnostic text:** |
773 | |
774 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ |
775 | |:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| |
776 | | ||:diagtext:`private` || |
777 | | |+---------------------+| |
778 | | ||:diagtext:`protected`|| |
779 | | |+---------------------+| |
780 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ |
781 | |
782 | +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ |
783 | |:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| |
784 | | ||:diagtext:`copying variable` || | |
785 | | |+---------------------------------------+| | |
786 | | ||:diagtext:`copying parameter` || | |
787 | | |+---------------------------------------+| | |
788 | | ||:diagtext:`returning object` || | |
789 | | |+---------------------------------------+| | |
790 | | ||:diagtext:`throwing object` || | |
791 | | |+---------------------------------------+| | |
792 | | ||:diagtext:`copying member subobject` || | |
793 | | |+---------------------------------------+| | |
794 | | ||:diagtext:`copying array element` || | |
795 | | |+---------------------------------------+| | |
796 | | ||:diagtext:`allocating object` || | |
797 | | |+---------------------------------------+| | |
798 | | ||:diagtext:`copying temporary` || | |
799 | | |+---------------------------------------+| | |
800 | | ||:diagtext:`initializing base subobject`|| | |
801 | | |+---------------------------------------+| | |
802 | | ||:diagtext:`initializing vector element`|| | |
803 | | |+---------------------------------------+| | |
804 | | ||:diagtext:`capturing value` || | |
805 | | |+---------------------------------------+| | |
806 | +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ |
807 | |
808 | |
809 | -Wbitfield-constant-conversion |
810 | ------------------------------ |
811 | This diagnostic is enabled by default. |
812 | |
813 | **Diagnostic text:** |
814 | |
815 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
816 | |:warning:`warning:` |nbsp| :diagtext:`implicit truncation from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to bit-field changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
817 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
818 | |
819 | |
820 | -Wbitfield-enum-conversion |
821 | -------------------------- |
822 | **Diagnostic text:** |
823 | |
824 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
825 | |:warning:`warning:` |nbsp| :diagtext:`bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not wide enough to store all enumerators of` |nbsp| :placeholder:`B`| |
826 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
827 | |
828 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
829 | |:warning:`warning:` |nbsp| :diagtext:`signed bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`needs an extra bit to represent the largest positive enumerators of` |nbsp| :placeholder:`B`| |
830 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
831 | |
832 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
833 | |:warning:`warning:` |nbsp| :diagtext:`assigning value of signed enum type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to unsigned bit-field` |nbsp| :placeholder:`A`:diagtext:`; negative enumerators of enum` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be converted to positive values`| |
834 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
835 | |
836 | |
837 | -Wbitfield-width |
838 | ---------------- |
839 | This diagnostic is enabled by default. |
840 | |
841 | **Diagnostic text:** |
842 | |
843 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ |
844 | |:warning:`warning:` |nbsp| :diagtext:`width of anonymous bit-field (`:placeholder:`A` |nbsp| :diagtext:`bits) exceeds width of its type; value will be truncated to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bit`|+-------------+| |
845 | | || || |
846 | | |+-------------+| |
847 | | ||:diagtext:`s`|| |
848 | | |+-------------+| |
849 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ |
850 | |
851 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ |
852 | |:warning:`warning:` |nbsp| :diagtext:`width of bit-field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`bits) exceeds the width of its type; value will be truncated to` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bit`|+-------------+| |
853 | | || || |
854 | | |+-------------+| |
855 | | ||:diagtext:`s`|| |
856 | | |+-------------+| |
857 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------+ |
858 | |
859 | |
860 | -Wbitwise-op-parentheses |
861 | ------------------------ |
862 | This diagnostic is enabled by default. |
863 | |
864 | **Diagnostic text:** |
865 | |
866 | +-----------------------------------------------------------------------------------------------------------+ |
867 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' within '`:placeholder:`B`:diagtext:`'`| |
868 | +-----------------------------------------------------------------------------------------------------------+ |
869 | |
870 | |
871 | -Wblock-capture-autoreleasing |
872 | ----------------------------- |
873 | This diagnostic is enabled by default. |
874 | |
875 | **Diagnostic text:** |
876 | |
877 | +-----------------------------------------------------------------------------------------------------------------------------+ |
878 | |:warning:`warning:` |nbsp| :diagtext:`block captures an autoreleasing out-parameter, which may result in use-after-free bugs`| |
879 | +-----------------------------------------------------------------------------------------------------------------------------+ |
880 | |
881 | |
882 | -Wbool-conversion |
883 | ----------------- |
884 | This diagnostic is enabled by default. |
885 | |
886 | Also controls `-Wpointer-bool-conversion`_, `-Wundefined-bool-conversion`_. |
887 | |
888 | **Diagnostic text:** |
889 | |
890 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
891 | |:warning:`warning:` |nbsp| :diagtext:`initialization of pointer of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to null from a constant boolean expression`| |
892 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
893 | |
894 | |
895 | -Wbool-conversions |
896 | ------------------ |
897 | Synonym for `-Wbool-conversion`_. |
898 | |
899 | |
900 | -Wbraced-scalar-init |
901 | -------------------- |
902 | This diagnostic is enabled by default. |
903 | |
904 | **Diagnostic text:** |
905 | |
906 | +-----------------------------------------------------------------------+ |
907 | |:warning:`warning:` |nbsp| :diagtext:`braces around scalar initializer`| |
908 | +-----------------------------------------------------------------------+ |
909 | |
910 | |
911 | -Wbridge-cast |
912 | ------------- |
913 | This diagnostic is enabled by default. |
914 | |
915 | **Diagnostic text:** |
916 | |
917 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
918 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bridges to` |nbsp| :placeholder:`B`:diagtext:`, not` |nbsp| :placeholder:`C`| |
919 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
920 | |
921 | +-------------------------------------------------------------------------------------------------------+ |
922 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot bridge to` |nbsp| :placeholder:`B`| |
923 | +-------------------------------------------------------------------------------------------------------+ |
924 | |
925 | |
926 | -Wbuiltin-macro-redefined |
927 | ------------------------- |
928 | This diagnostic is enabled by default. |
929 | |
930 | **Diagnostic text:** |
931 | |
932 | +---------------------------------------------------------------+ |
933 | |:warning:`warning:` |nbsp| :diagtext:`redefining builtin macro`| |
934 | +---------------------------------------------------------------+ |
935 | |
936 | +---------------------------------------------------------------+ |
937 | |:warning:`warning:` |nbsp| :diagtext:`undefining builtin macro`| |
938 | +---------------------------------------------------------------+ |
939 | |
940 | |
941 | -Wbuiltin-memcpy-chk-size |
942 | ------------------------- |
943 | This diagnostic is enabled by default. |
944 | |
945 | **Diagnostic text:** |
946 | |
947 | +------------------------------------------------------------------------------------------------------+ |
948 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will always overflow destination buffer`| |
949 | +------------------------------------------------------------------------------------------------------+ |
950 | |
951 | |
952 | -Wbuiltin-requires-header |
953 | ------------------------- |
954 | This diagnostic is enabled by default. |
955 | |
956 | **Diagnostic text:** |
957 | |
958 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
959 | |:warning:`warning:` |nbsp| :diagtext:`declaration of built-in function '`:placeholder:`B`:diagtext:`' requires inclusion of the header <`:placeholder:`A`:diagtext:`>`| |
960 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
961 | |
962 | |
963 | -Wc++-compat |
964 | ------------ |
965 | **Diagnostic text:** |
966 | |
967 | +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ |
968 | |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| |
969 | | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | |
970 | | |+-------------------------+|+------------------+| |+-------------------------+| | |
971 | | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | |
972 | | |+-------------------------+|+------------------+| |+-------------------------+| | |
973 | +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ |
974 | |
975 | |
976 | -Wc++0x-compat |
977 | -------------- |
978 | Synonym for `-Wc++11-compat`_. |
979 | |
980 | |
981 | -Wc++0x-extensions |
982 | ------------------ |
983 | Synonym for `-Wc++11-extensions`_. |
984 | |
985 | |
986 | -Wc++0x-narrowing |
987 | ----------------- |
988 | Synonym for `-Wc++11-narrowing`_. |
989 | |
990 | |
991 | -Wc++11-compat |
992 | -------------- |
993 | Some of the diagnostics controlled by this flag are enabled by default. |
994 | |
995 | Also controls `-Wc++11-compat-deprecated-writable-strings`_, `-Wc++11-compat-reserved-user-defined-literal`_, `-Wc++11-narrowing`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_. |
996 | |
997 | **Diagnostic text:** |
998 | |
999 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ |
1000 | |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long' and is subject to undefined behavior under C++98, interpreting as 'unsigned long'; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| |
1001 | | ||:diagtext:`have type 'long long'`|| | |
1002 | | |+---------------------------------+| | |
1003 | | ||:diagtext:`be ill-formed` || | |
1004 | | |+---------------------------------+| | |
1005 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ |
1006 | |
1007 | +--------------------------------------------------------------------------------------------------------------+ |
1008 | |:warning:`warning:` |nbsp| :diagtext:`'auto' storage class specifier is redundant and incompatible with C++11`| |
1009 | +--------------------------------------------------------------------------------------------------------------+ |
1010 | |
1011 | +-------------------------------------------------------------------------------------------------------------------------+ |
1012 | |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a user-defined literal suffix in C++11`| |
1013 | +-------------------------------------------------------------------------------------------------------------------------+ |
1014 | |
1015 | +-------------------------------------------------------------------------------------------+ |
1016 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++11`| |
1017 | +-------------------------------------------------------------------------------------------+ |
1018 | |
1019 | +--------------------------------------------------------------------------------------------------------------------------------+ |
1020 | |:warning:`warning:` |nbsp| :diagtext:`use of right-shift operator ('>>') in template argument will require parentheses in C++11`| |
1021 | +--------------------------------------------------------------------------------------------------------------------------------+ |
1022 | |
1023 | +--------------------------------------------------------------------------------+ |
1024 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation cannot be 'inline'`| |
1025 | +--------------------------------------------------------------------------------+ |
1026 | |
1027 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
1028 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur at global scope`| |
1029 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
1030 | |
1031 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1032 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not in a namespace enclosing` |nbsp| :placeholder:`B`| |
1033 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1034 | |
1035 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1036 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`must occur in namespace` |nbsp| :placeholder:`B`| |
1037 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1038 | |
1039 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ |
1040 | |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C++11 onwards`| |
1041 | | ||:diagtext:`have type 'long long'`|| | |
1042 | | |+---------------------------------+| | |
1043 | | ||:diagtext:`be ill-formed` || | |
1044 | | |+---------------------------------+| | |
1045 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------------+ |
1046 | |
1047 | |
1048 | -Wc++11-compat-deprecated-writable-strings |
1049 | ------------------------------------------ |
1050 | This diagnostic is enabled by default. |
1051 | |
1052 | **Diagnostic text:** |
1053 | |
1054 | +---------------------------------------------------------------------------------------------------------------------------------+ |
1055 | |:warning:`warning:` |nbsp| :diagtext:`conversion from string literal to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| |
1056 | +---------------------------------------------------------------------------------------------------------------------------------+ |
1057 | |
1058 | |
1059 | -Wc++11-compat-pedantic |
1060 | ----------------------- |
1061 | Some of the diagnostics controlled by this flag are enabled by default. |
1062 | |
1063 | Controls `-Wc++11-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_. |
1064 | |
1065 | |
1066 | -Wc++11-compat-reserved-user-defined-literal |
1067 | -------------------------------------------- |
1068 | **Diagnostic text:** |
1069 | |
1070 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1071 | |:warning:`warning:` |nbsp| :diagtext:`identifier after literal will be treated as a reserved user-defined literal suffix in C++11`| |
1072 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1073 | |
1074 | |
1075 | -Wc++11-extensions |
1076 | ------------------ |
1077 | Some of the diagnostics controlled by this flag are enabled by default. |
1078 | |
1079 | Also controls `-Wc++11-extra-semi`_, `-Wc++11-inline-namespace`_, `-Wc++11-long-long`_. |
1080 | |
1081 | **Diagnostic text:** |
1082 | |
1083 | +-------------------------------------------------------------------------------+ |
1084 | |:warning:`warning:` |nbsp| :diagtext:`alias declarations are a C++11 extension`| |
1085 | +-------------------------------------------------------------------------------+ |
1086 | |
1087 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ |
1088 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| |
1089 | | ||:diagtext:`integral` || | |
1090 | | |+-----------------------+| | |
1091 | | ||:diagtext:`enumeration`|| | |
1092 | | |+-----------------------+| | |
1093 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ |
1094 | |
1095 | +---------------------------------------------------------------------------------+ |
1096 | |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is a C++11 extension`| |
1097 | +---------------------------------------------------------------------------------+ |
1098 | |
1099 | +-----------------------------------------------------------------------------------------------------------+ |
1100 | |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| |
1101 | +-----------------------------------------------------------------------------------------------------------+ |
1102 | |
1103 | +---------------------------+-----------------------+--------------------------------------------------------------+ |
1104 | |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are a C++11 extension`| |
1105 | | ||:diagtext:`defaulted`|| | |
1106 | | |+---------------------+| | |
1107 | | ||:diagtext:`deleted` || | |
1108 | | |+---------------------+| | |
1109 | +---------------------------+-----------------------+--------------------------------------------------------------+ |
1110 | |
1111 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1112 | |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| |
1113 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1114 | |
1115 | +--------------------------------------------------------------------------------------------------+ |
1116 | |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| |
1117 | +--------------------------------------------------------------------------------------------------+ |
1118 | |
1119 | +------------------------------------------------------------------------------------------+ |
1120 | |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are a C++11 extension`| |
1121 | +------------------------------------------------------------------------------------------+ |
1122 | |
1123 | +-----------------------------------------------------------------------------+ |
1124 | |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| |
1125 | +-----------------------------------------------------------------------------+ |
1126 | |
1127 | +--------------------------------------------------------------------------------+ |
1128 | |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is a C++11 extension`| |
1129 | +--------------------------------------------------------------------------------+ |
1130 | |
1131 | +------------------------------------------------------------------------------------------+ |
1132 | |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are a C++11 extension`| |
1133 | +------------------------------------------------------------------------------------------+ |
1134 | |
1135 | +---------------------------------------------------------------------------------------------------------+ |
1136 | |:warning:`warning:` |nbsp| :diagtext:`use of enumeration in a nested name specifier is a C++11 extension`| |
1137 | +---------------------------------------------------------------------------------------------------------+ |
1138 | |
1139 | +----------------------------------------------------------------------------------------------------------------------------+ |
1140 | |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C++11 extension`| |
1141 | +----------------------------------------------------------------------------------------------------------------------------+ |
1142 | |
1143 | +-------------------------------------------------------------------------------------------------------------+ |
1144 | |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data member is a C++11 extension`| |
1145 | +-------------------------------------------------------------------------------------------------------------+ |
1146 | |
1147 | +--------------------------------------------------------------------------------------------------+ |
1148 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is a C++11 extension`| |
1149 | +--------------------------------------------------------------------------------------------------+ |
1150 | |
1151 | +----------------------------------------------------------------------------------------------+ |
1152 | |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are a C++11 extension`| |
1153 | +----------------------------------------------------------------------------------------------+ |
1154 | |
1155 | +------------------------------------------------------------------------------+ |
1156 | |:warning:`warning:` |nbsp| :diagtext:`rvalue references are a C++11 extension`| |
1157 | +------------------------------------------------------------------------------+ |
1158 | |
1159 | +--------------------------------------------------------------------------------+ |
1160 | |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are a C++11 extension`| |
1161 | +--------------------------------------------------------------------------------+ |
1162 | |
1163 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1164 | |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is a C++11 extension`| |
1165 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1166 | |
1167 | +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ |
1168 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is a C++11 extension`| |
1169 | | ||:diagtext:`function`|| | |
1170 | | |+--------------------+| | |
1171 | | ||:diagtext:`object` || | |
1172 | | |+--------------------+| | |
1173 | +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------+ |
1174 | |
1175 | +-------------------------------------------------------------------------------+ |
1176 | |:warning:`warning:` |nbsp| :diagtext:`'template' keyword outside of a template`| |
1177 | +-------------------------------------------------------------------------------+ |
1178 | |
1179 | +---------------------------------------------------------------------------------------------------------------+ |
1180 | |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are a C++11 extension`| |
1181 | +---------------------------------------------------------------------------------------------------------------+ |
1182 | |
1183 | +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1184 | |:warning:`warning:` |nbsp| :diagtext:`first declaration of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| |
1185 | | ||:diagtext:`class template` || | |
1186 | | |+-------------------------------------+| | |
1187 | | ||:diagtext:`class template partial` || | |
1188 | | |+-------------------------------------+| | |
1189 | | ||:diagtext:`variable template` || | |
1190 | | |+-------------------------------------+| | |
1191 | | ||:diagtext:`variable template partial`|| | |
1192 | | |+-------------------------------------+| | |
1193 | | ||:diagtext:`function template` || | |
1194 | | |+-------------------------------------+| | |
1195 | | ||:diagtext:`member function` || | |
1196 | | |+-------------------------------------+| | |
1197 | | ||:diagtext:`static data member` || | |
1198 | | |+-------------------------------------+| | |
1199 | | ||:diagtext:`member class` || | |
1200 | | |+-------------------------------------+| | |
1201 | | ||:diagtext:`member enumeration` || | |
1202 | | |+-------------------------------------+| | |
1203 | +-------------------------------------------------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1204 | |
1205 | +------------------------------------------------------------------------------+ |
1206 | |:warning:`warning:` |nbsp| :diagtext:`'typename' occurs outside of a template`| |
1207 | +------------------------------------------------------------------------------+ |
1208 | |
1209 | +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ |
1210 | |:warning:`warning:` |nbsp| :diagtext:`unelaborated friend declaration is a C++11 extension; specify '`|+---------------------+|:diagtext:`' to befriend` |nbsp| :placeholder:`B`| |
1211 | | ||:diagtext:`struct` || | |
1212 | | |+---------------------+| | |
1213 | | ||:diagtext:`interface`|| | |
1214 | | |+---------------------+| | |
1215 | | ||:diagtext:`union` || | |
1216 | | |+---------------------+| | |
1217 | | ||:diagtext:`class` || | |
1218 | | |+---------------------+| | |
1219 | | ||:diagtext:`enum` || | |
1220 | | |+---------------------+| | |
1221 | +------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------+ |
1222 | |
1223 | +-------------------------------------------------------------------------------+ |
1224 | |:warning:`warning:` |nbsp| :diagtext:`variadic templates are a C++11 extension`| |
1225 | +-------------------------------------------------------------------------------+ |
1226 | |
1227 | |
1228 | -Wc++11-extra-semi |
1229 | ------------------ |
1230 | **Diagnostic text:** |
1231 | |
1232 | +-------------------------------------------------------------------------------------------+ |
1233 | |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is a C++11 extension`| |
1234 | +-------------------------------------------------------------------------------------------+ |
1235 | |
1236 | |
1237 | -Wc++11-inline-namespace |
1238 | ------------------------ |
1239 | This diagnostic is enabled by default. |
1240 | |
1241 | **Diagnostic text:** |
1242 | |
1243 | +----------------------------------------------------------------------------+ |
1244 | |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are a C++11 feature`| |
1245 | +----------------------------------------------------------------------------+ |
1246 | |
1247 | |
1248 | -Wc++11-long-long |
1249 | ----------------- |
1250 | **Diagnostic text:** |
1251 | |
1252 | +-----------------------------------------------------------------------+ |
1253 | |:warning:`warning:` |nbsp| :diagtext:`'long long' is a C++11 extension`| |
1254 | +-----------------------------------------------------------------------+ |
1255 | |
1256 | |
1257 | -Wc++11-narrowing |
1258 | ----------------- |
1259 | Some of the diagnostics controlled by this flag are enabled by default. |
1260 | |
1261 | **Diagnostic text:** |
1262 | |
1263 | +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ |
1264 | |:error:`error:` |nbsp| |+--------------------------------------+| |nbsp| |+------------------------------------------------------------------------------------------------------------------------+| |
1265 | | ||:diagtext:`case value` || ||+--------------------------------------------------------------------------------------------------------------+ || |
1266 | | |+--------------------------------------+| |||:diagtext:`cannot be narrowed from type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| || |
1267 | | ||:diagtext:`enumerator value` || ||+--------------------------------------------------------------------------------------------------------------+ || |
1268 | | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| |
1269 | | ||:diagtext:`non-type template argument`|| ||+----------------------------------------------------------------------------------------------------------------------+|| |
1270 | | |+--------------------------------------+| |||:diagtext:`evaluates to` |nbsp| :placeholder:`C`:diagtext:`, which cannot be narrowed to type` |nbsp| :placeholder:`D`||| |
1271 | | ||:diagtext:`array size` || ||+----------------------------------------------------------------------------------------------------------------------+|| |
1272 | | |+--------------------------------------+| |+------------------------------------------------------------------------------------------------------------------------+| |
1273 | | ||:diagtext:`constexpr if condition` || | | |
1274 | | |+--------------------------------------+| | | |
1275 | +-----------------------+----------------------------------------+--------+--------------------------------------------------------------------------------------------------------------------------+ |
1276 | |
1277 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1278 | |:error:`error:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B`| |
1279 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1280 | |
1281 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1282 | |:error:`error:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| |
1283 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1284 | |
1285 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1286 | |:error:`error:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list`| |
1287 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1288 | |
1289 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1290 | |:warning:`warning:` |nbsp| :diagtext:`constant expression evaluates to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which cannot be narrowed to type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in C++11`| |
1291 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1292 | |
1293 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1294 | |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be narrowed to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| |
1295 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1296 | |
1297 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1298 | |:warning:`warning:` |nbsp| :diagtext:`non-constant-expression cannot be narrowed from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`in initializer list in C++11`| |
1299 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1300 | |
1301 | |
1302 | -Wc++14-binary-literal |
1303 | ---------------------- |
1304 | **Diagnostic text:** |
1305 | |
1306 | +------------------------------------------------------------------------------------+ |
1307 | |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a C++14 extension`| |
1308 | +------------------------------------------------------------------------------------+ |
1309 | |
1310 | |
1311 | -Wc++14-compat |
1312 | -------------- |
1313 | Controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_. |
1314 | |
1315 | |
1316 | -Wc++14-compat-pedantic |
1317 | ----------------------- |
1318 | Controls `-Wc++14-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_. |
1319 | |
1320 | |
1321 | -Wc++14-extensions |
1322 | ------------------ |
1323 | Some of the diagnostics controlled by this flag are enabled by default. |
1324 | |
1325 | Also controls `-Wc++14-binary-literal`_. |
1326 | |
1327 | **Diagnostic text:** |
1328 | |
1329 | +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1330 | |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| |
1331 | | ||:diagtext:`function` || | |
1332 | | |+-----------------------+| | |
1333 | | ||:diagtext:`constructor`|| | |
1334 | | |+-----------------------+| | |
1335 | +-----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1336 | |
1337 | +------------------------------------------------------------------------------------------------------------+ |
1338 | |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is a C++14 extension`| |
1339 | +------------------------------------------------------------------------------------------------------------+ |
1340 | |
1341 | +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1342 | |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| |
1343 | | ||:diagtext:`function` || | |
1344 | | |+-----------------------+| | |
1345 | | ||:diagtext:`constructor`|| | |
1346 | | |+-----------------------+| | |
1347 | +----------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1348 | |
1349 | +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1350 | |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is a C++14 extension`| |
1351 | | ||:diagtext:`function` || | |
1352 | | |+-----------------------+| | |
1353 | | ||:diagtext:`constructor`|| | |
1354 | | |+-----------------------+| | |
1355 | +-----------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
1356 | |
1357 | +---------------------------------------------------------------------------------------------------------------------------+ |
1358 | |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| |
1359 | +---------------------------------------------------------------------------------------------------------------------------+ |
1360 | |
1361 | +-------------------------------------------------------------------------------------------+ |
1362 | |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is a C++14 extension`| |
1363 | +-------------------------------------------------------------------------------------------+ |
1364 | |
1365 | +----------------------------------------------------------------------------------------+ |
1366 | |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are a C++14 extension`| |
1367 | +----------------------------------------------------------------------------------------+ |
1368 | |
1369 | +-------------------------------------------------------------------------------+ |
1370 | |:warning:`warning:` |nbsp| :diagtext:`variable templates are a C++14 extension`| |
1371 | +-------------------------------------------------------------------------------+ |
1372 | |
1373 | |
1374 | -Wc++17-compat |
1375 | -------------- |
1376 | Some of the diagnostics controlled by this flag are enabled by default. |
1377 | |
1378 | Controls `-Wc++17-compat-mangling`_, `-Wc++98-c++11-c++14-c++17-compat`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_. |
1379 | |
1380 | |
1381 | -Wc++17-compat-mangling |
1382 | ----------------------- |
1383 | This diagnostic is enabled by default. |
1384 | |
1385 | **Diagnostic text:** |
1386 | |
1387 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1388 | |:warning:`warning:` |nbsp| :diagtext:`mangled name of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will change in C++17 due to non-throwing exception specification in function signature`| |
1389 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1390 | |
1391 | |
1392 | -Wc++17-compat-pedantic |
1393 | ----------------------- |
1394 | Some of the diagnostics controlled by this flag are enabled by default. |
1395 | |
1396 | Controls `-Wc++17-compat`_, `-Wc++98-c++11-c++14-c++17-compat-pedantic`_. |
1397 | |
1398 | |
1399 | -Wc++17-extensions |
1400 | ------------------ |
1401 | Some of the diagnostics controlled by this flag are enabled by default. |
1402 | |
1403 | **Diagnostic text:** |
1404 | |
1405 | +------------------------------------------------------------------------+ |
1406 | |:warning:`warning:` |nbsp| :diagtext:`constexpr if is a C++17 extension`| |
1407 | +------------------------------------------------------------------------+ |
1408 | |
1409 | +---------------------------------------------------------------------------------------------+ |
1410 | |:warning:`warning:` |nbsp| :diagtext:`'constexpr' on lambda expressions is a C++17 extension`| |
1411 | +---------------------------------------------------------------------------------------------+ |
1412 | |
1413 | +---------------------------------------------------------------------------------------------------------------------------+ |
1414 | |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| |
1415 | +---------------------------------------------------------------------------------------------------------------------------+ |
1416 | |
1417 | +---------------------------------------------------------------------------------------+ |
1418 | |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are a C++17 extension`| |
1419 | +---------------------------------------------------------------------------------------+ |
1420 | |
1421 | +--------------------------------------------------------------------------------+ |
1422 | |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is a C++17 extension`| |
1423 | +--------------------------------------------------------------------------------+ |
1424 | |
1425 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1426 | |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is a C++17 extension`| |
1427 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1428 | |
1429 | +----------------------------------------------------------------------------------------+ |
1430 | |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| |
1431 | +----------------------------------------------------------------------------------------+ |
1432 | |
1433 | +----------------------------------------+--------------------+-------------------------------------------------------------+ |
1434 | |:warning:`warning:` |nbsp| :diagtext:`'`|+------------------+|:diagtext:`' initialization statements are a C++17 extension`| |
1435 | | ||:diagtext:`if` || | |
1436 | | |+------------------+| | |
1437 | | ||:diagtext:`switch`|| | |
1438 | | |+------------------+| | |
1439 | +----------------------------------------+--------------------+-------------------------------------------------------------+ |
1440 | |
1441 | +-----------------------------------------------------------------------------+ |
1442 | |:warning:`warning:` |nbsp| :diagtext:`inline variables are a C++17 extension`| |
1443 | +-----------------------------------------------------------------------------+ |
1444 | |
1445 | +---------------------------------------------------------------------------------------------------------------------+ |
1446 | |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is a C++17 extension`| |
1447 | +---------------------------------------------------------------------------------------------------------------------+ |
1448 | |
1449 | +-------------------------------------------------------------------------------------------------------------------------+ |
1450 | |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is a C++17 extension; define each namespace separately`| |
1451 | +-------------------------------------------------------------------------------------------------------------------------+ |
1452 | |
1453 | +------------------------------------------------------------+---------------------------+-----------------------------------------------------+ |
1454 | |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| |
1455 | | ||:diagtext:`a namespace` || | |
1456 | | |+-------------------------+| | |
1457 | | ||:diagtext:`an enumerator`|| | |
1458 | | |+-------------------------+| | |
1459 | +------------------------------------------------------------+---------------------------+-----------------------------------------------------+ |
1460 | |
1461 | +---------------------------------------------------------------------------------------+ |
1462 | |:warning:`warning:` |nbsp| :diagtext:`capture of '\*this' by copy is a C++17 extension`| |
1463 | +---------------------------------------------------------------------------------------+ |
1464 | |
1465 | +------------------------------------------------------------------------------------------+ |
1466 | |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is a C++17 extension`| |
1467 | +------------------------------------------------------------------------------------------+ |
1468 | |
1469 | +--------------------------------------------------------------------------------------------------------+ |
1470 | |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is a C++17 extension`| |
1471 | +--------------------------------------------------------------------------------------------------------+ |
1472 | |
1473 | +--------------------------------------------------------------------------------------------------+ |
1474 | |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is a C++17 extension`| |
1475 | +--------------------------------------------------------------------------------------------------+ |
1476 | |
1477 | +-----------------------------------------------------------------------------------------------+ |
1478 | |:warning:`warning:` |nbsp| :diagtext:`pack expansion of using declaration is a C++17 extension`| |
1479 | +-----------------------------------------------------------------------------------------------+ |
1480 | |
1481 | |
1482 | -Wc++1y-extensions |
1483 | ------------------ |
1484 | Synonym for `-Wc++14-extensions`_. |
1485 | |
1486 | |
1487 | -Wc++1z-compat |
1488 | -------------- |
1489 | Synonym for `-Wc++17-compat`_. |
1490 | |
1491 | |
1492 | -Wc++1z-compat-mangling |
1493 | ----------------------- |
1494 | Synonym for `-Wc++17-compat-mangling`_. |
1495 | |
1496 | |
1497 | -Wc++1z-extensions |
1498 | ------------------ |
1499 | Synonym for `-Wc++17-extensions`_. |
1500 | |
1501 | |
1502 | -Wc++2a-compat |
1503 | -------------- |
1504 | **Diagnostic text:** |
1505 | |
1506 | +-------------------------------------------------------------------------------------------+ |
1507 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is a keyword in C++2a`| |
1508 | +-------------------------------------------------------------------------------------------+ |
1509 | |
1510 | |
1511 | -Wc++2a-compat-pedantic |
1512 | ----------------------- |
1513 | Synonym for `-Wc++2a-compat`_. |
1514 | |
1515 | |
1516 | -Wc++2a-extensions |
1517 | ------------------ |
1518 | Some of the diagnostics controlled by this flag are enabled by default. |
1519 | |
1520 | **Diagnostic text:** |
1521 | |
1522 | +----------------------------------------------------------------------------------------------------+ |
1523 | |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is a C++2a extension`| |
1524 | +----------------------------------------------------------------------------------------------------+ |
1525 | |
1526 | +--------------------------------------------------------------------------------------------------------------------+ |
1527 | |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is a C++2a extension`| |
1528 | +--------------------------------------------------------------------------------------------------------------------+ |
1529 | |
1530 | +--------------------------------------------------------------------------------------------------------------------------+ |
1531 | |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| |
1532 | +--------------------------------------------------------------------------------------------------------------------------+ |
1533 | |
1534 | |
1535 | -Wc++98-c++11-c++14-c++17-compat |
1536 | -------------------------------- |
1537 | **Diagnostic text:** |
1538 | |
1539 | +-------------------------------------------------------------------------------------------------------------------------------+ |
1540 | |:warning:`warning:` |nbsp| :diagtext:`default member initializer for bit-field is incompatible with C++ standards before C++2a`| |
1541 | +-------------------------------------------------------------------------------------------------------------------------------+ |
1542 | |
1543 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
1544 | |:warning:`warning:` |nbsp| :diagtext:`explicit capture of 'this' with a capture default of '=' is incompatible with C++ standards before C++2a`| |
1545 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
1546 | |
1547 | |
1548 | -Wc++98-c++11-c++14-c++17-compat-pedantic |
1549 | ----------------------------------------- |
1550 | Also controls `-Wc++98-c++11-c++14-c++17-compat`_. |
1551 | |
1552 | **Diagnostic text:** |
1553 | |
1554 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
1555 | |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is incompatible with C++ standards before C++2a`| |
1556 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
1557 | |
1558 | |
1559 | -Wc++98-c++11-c++14-compat |
1560 | -------------------------- |
1561 | **Diagnostic text:** |
1562 | |
1563 | +---------------------------------------------------------------------------------------------------+ |
1564 | |:warning:`warning:` |nbsp| :diagtext:`constexpr if is incompatible with C++ standards before C++17`| |
1565 | +---------------------------------------------------------------------------------------------------+ |
1566 | |
1567 | +----------------------------------------------------------------------------------------------------------------------+ |
1568 | |:warning:`warning:` |nbsp| :diagtext:`constexpr on lambda expressions is incompatible with C++ standards before C++17`| |
1569 | +----------------------------------------------------------------------------------------------------------------------+ |
1570 | |
1571 | +------------------------------------------------------------------------------------------------------------------+ |
1572 | |:warning:`warning:` |nbsp| :diagtext:`decomposition declarations are incompatible with C++ standards before C++17`| |
1573 | +------------------------------------------------------------------------------------------------------------------+ |
1574 | |
1575 | +-----------------------------------------------------------------------------------------------------------+ |
1576 | |:warning:`warning:` |nbsp| :diagtext:`pack fold expression is incompatible with C++ standards before C++17`| |
1577 | +-----------------------------------------------------------------------------------------------------------+ |
1578 | |
1579 | +---------------------------+--------------------+----------------------------------------------------------------------------------------------+ |
1580 | |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`initialization statements are incompatible with C++ standards before C++17`| |
1581 | | ||:diagtext:`if` || | |
1582 | | |+------------------+| | |
1583 | | ||:diagtext:`switch`|| | |
1584 | | |+------------------+| | |
1585 | +---------------------------+--------------------+----------------------------------------------------------------------------------------------+ |
1586 | |
1587 | +--------------------------------------------------------------------------------------------------------+ |
1588 | |:warning:`warning:` |nbsp| :diagtext:`inline variables are incompatible with C++ standards before C++17`| |
1589 | +--------------------------------------------------------------------------------------------------------+ |
1590 | |
1591 | +------------------------------------------------------------------------------------------------------------------+ |
1592 | |:warning:`warning:` |nbsp| :diagtext:`nested namespace definition is incompatible with C++ standards before C++17`| |
1593 | +------------------------------------------------------------------------------------------------------------------+ |
1594 | |
1595 | +-------------------------------------------------------------------------------------------------------------------+ |
1596 | |:warning:`warning:` |nbsp| :diagtext:`by value capture of '\*this' is incompatible with C++ standards before C++17`| |
1597 | +-------------------------------------------------------------------------------------------------------------------+ |
1598 | |
1599 | +---------------------------------------------------------------------------------------------------------------------+ |
1600 | |:warning:`warning:` |nbsp| :diagtext:`static\_assert with no message is incompatible with C++ standards before C++17`| |
1601 | +---------------------------------------------------------------------------------------------------------------------+ |
1602 | |
1603 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1604 | |:warning:`warning:` |nbsp| :diagtext:`non-type template parameters declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`are incompatible with C++ standards before C++17`| |
1605 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1606 | |
1607 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1608 | |:warning:`warning:` |nbsp| :diagtext:`template template parameter using 'typename' is incompatible with C++ standards before C++17`| |
1609 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1610 | |
1611 | +--------------------------------------------------------------------------------------------------------+ |
1612 | |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++ standards before C++17`| |
1613 | +--------------------------------------------------------------------------------------------------------+ |
1614 | |
1615 | +-----------------------------------------------------------------------------------------------------------------------------+ |
1616 | |:warning:`warning:` |nbsp| :diagtext:`default scope specifier for attributes is incompatible with C++ standards before C++17`| |
1617 | +-----------------------------------------------------------------------------------------------------------------------------+ |
1618 | |
1619 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
1620 | |:warning:`warning:` |nbsp| :diagtext:`use of multiple declarators in a single using declaration is incompatible with C++ standards before C++17`| |
1621 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
1622 | |
1623 | +-----------------------------------------------------------------------------------------------------------------------+ |
1624 | |:warning:`warning:` |nbsp| :diagtext:`pack expansion using declaration is incompatible with C++ standards before C++17`| |
1625 | +-----------------------------------------------------------------------------------------------------------------------+ |
1626 | |
1627 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1628 | |:warning:`warning:` |nbsp| :diagtext:`'begin' and 'end' returning different types (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is incompatible with C++ standards before C++17`| |
1629 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1630 | |
1631 | |
1632 | -Wc++98-c++11-c++14-compat-pedantic |
1633 | ----------------------------------- |
1634 | Also controls `-Wc++98-c++11-c++14-compat`_. |
1635 | |
1636 | **Diagnostic text:** |
1637 | |
1638 | +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ |
1639 | |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are incompatible with C++ standards before C++17`| |
1640 | | ||:diagtext:`a namespace` || | |
1641 | | |+-------------------------+| | |
1642 | | ||:diagtext:`an enumerator`|| | |
1643 | | |+-------------------------+| | |
1644 | +------------------------------------------------------------+---------------------------+--------------------------------------------------------------------------------+ |
1645 | |
1646 | +---------------------------------------------------------------------------------------------------------------------+ |
1647 | |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are incompatible with C++ standards before C++17`| |
1648 | +---------------------------------------------------------------------------------------------------------------------+ |
1649 | |
1650 | |
1651 | -Wc++98-c++11-compat |
1652 | -------------------- |
1653 | **Diagnostic text:** |
1654 | |
1655 | +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1656 | |:warning:`warning:` |nbsp| :diagtext:`use of this statement in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| |
1657 | | ||:diagtext:`function` || | |
1658 | | |+-----------------------+| | |
1659 | | ||:diagtext:`constructor`|| | |
1660 | | |+-----------------------+| | |
1661 | +-----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1662 | |
1663 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1664 | |:warning:`warning:` |nbsp| :diagtext:`multiple return statements in constexpr function is incompatible with C++ standards before C++14`| |
1665 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1666 | |
1667 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1668 | |:warning:`warning:` |nbsp| :diagtext:`constexpr function with no return statements is incompatible with C++ standards before C++14`| |
1669 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
1670 | |
1671 | +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1672 | |:warning:`warning:` |nbsp| :diagtext:`variable declaration in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| |
1673 | | ||:diagtext:`function` || | |
1674 | | |+-----------------------+| | |
1675 | | ||:diagtext:`constructor`|| | |
1676 | | |+-----------------------+| | |
1677 | +----------------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1678 | |
1679 | +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1680 | |:warning:`warning:` |nbsp| :diagtext:`type definition in a constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++ standards before C++14`| |
1681 | | ||:diagtext:`function` || | |
1682 | | |+-----------------------+| | |
1683 | | ||:diagtext:`constructor`|| | |
1684 | | |+-----------------------+| | |
1685 | +-----------------------------------------------------------------------------+-------------------------+-------------------------------------------------------------------+ |
1686 | |
1687 | +----------------------------------------------------------------------------------------------------------------------+ |
1688 | |:warning:`warning:` |nbsp| :diagtext:`'decltype(auto)' type specifier is incompatible with C++ standards before C++14`| |
1689 | +----------------------------------------------------------------------------------------------------------------------+ |
1690 | |
1691 | +--------------------------------------------------------------------------------------------------------+ |
1692 | |:warning:`warning:` |nbsp| :diagtext:`digit separators are incompatible with C++ standards before C++14`| |
1693 | +--------------------------------------------------------------------------------------------------------+ |
1694 | |
1695 | +-------------------------------------------------------------------------------------------------------------------+ |
1696 | |:warning:`warning:` |nbsp| :diagtext:`initialized lambda captures are incompatible with C++ standards before C++14`| |
1697 | +-------------------------------------------------------------------------------------------------------------------+ |
1698 | |
1699 | +----------------------------------------------------------------------------------------------------------+ |
1700 | |:warning:`warning:` |nbsp| :diagtext:`variable templates are incompatible with C++ standards before C++14`| |
1701 | +----------------------------------------------------------------------------------------------------------+ |
1702 | |
1703 | |
1704 | -Wc++98-c++11-compat-binary-literal |
1705 | ----------------------------------- |
1706 | **Diagnostic text:** |
1707 | |
1708 | +---------------------------------------------------------------------------------------------------------------+ |
1709 | |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are incompatible with C++ standards before C++14`| |
1710 | +---------------------------------------------------------------------------------------------------------------+ |
1711 | |
1712 | |
1713 | -Wc++98-c++11-compat-pedantic |
1714 | ----------------------------- |
1715 | Controls `-Wc++98-c++11-compat`_, `-Wc++98-c++11-compat-binary-literal`_. |
1716 | |
1717 | |
1718 | -Wc++98-compat |
1719 | -------------- |
1720 | Also controls `-Wc++98-c++11-c++14-c++17-compat`_, `-Wc++98-c++11-c++14-compat`_, `-Wc++98-c++11-compat`_, `-Wc++98-compat-local-type-template-args`_, `-Wc++98-compat-unnamed-type-template-args`_. |
1721 | |
1722 | **Diagnostic text:** |
1723 | |
1724 | +-------------------------------------------------------------------------------------+ |
1725 | |:warning:`warning:` |nbsp| :diagtext:`alias declarations are incompatible with C++98`| |
1726 | +-------------------------------------------------------------------------------------+ |
1727 | |
1728 | +---------------------------------------------------------------------------+ |
1729 | |:warning:`warning:` |nbsp| :diagtext:`'alignas' is incompatible with C++98`| |
1730 | +---------------------------------------------------------------------------+ |
1731 | |
1732 | +--------------------------------------------------------------------------------------+ |
1733 | |:warning:`warning:` |nbsp| :diagtext:`alignof expressions are incompatible with C++98`| |
1734 | +--------------------------------------------------------------------------------------+ |
1735 | |
1736 | +----------------------------------------------------------------------------------------+ |
1737 | |:warning:`warning:` |nbsp| :diagtext:`C++11 attribute syntax is incompatible with C++98`| |
1738 | +----------------------------------------------------------------------------------------+ |
1739 | |
1740 | +---------------------------------------------------------------------------------------+ |
1741 | |:warning:`warning:` |nbsp| :diagtext:`'auto' type specifier is incompatible with C++98`| |
1742 | +---------------------------------------------------------------------------------------+ |
1743 | |
1744 | +---------------------------------------------------------------------------------------+ |
1745 | |:warning:`warning:` |nbsp| :diagtext:`'constexpr' specifier is incompatible with C++98`| |
1746 | +---------------------------------------------------------------------------------------+ |
1747 | |
1748 | +--------------------------------------------------------------------------------------------------------+ |
1749 | |:warning:`warning:` |nbsp| :diagtext:`constructor call from initializer list is incompatible with C++98`| |
1750 | +--------------------------------------------------------------------------------------------------------+ |
1751 | |
1752 | +-------------------------------------------------------------------------------------------+ |
1753 | |:warning:`warning:` |nbsp| :diagtext:`'decltype' type specifier is incompatible with C++98`| |
1754 | +-------------------------------------------------------------------------------------------+ |
1755 | |
1756 | +---------------------------+-----------------------+--------------------------------------------------------------------+ |
1757 | |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`function definitions are incompatible with C++98`| |
1758 | | ||:diagtext:`defaulted`|| | |
1759 | | |+---------------------+| | |
1760 | | ||:diagtext:`deleted` || | |
1761 | | |+---------------------+| | |
1762 | +---------------------------+-----------------------+--------------------------------------------------------------------+ |
1763 | |
1764 | +------------------------------------------------------------------------------------------+ |
1765 | |:warning:`warning:` |nbsp| :diagtext:`delegating constructors are incompatible with C++98`| |
1766 | +------------------------------------------------------------------------------------------+ |
1767 | |
1768 | +----------------------------------------------------------------------------------------------------------------+ |
1769 | |:warning:`warning:` |nbsp| :diagtext:`scalar initialized from empty initializer list is incompatible with C++98`| |
1770 | +----------------------------------------------------------------------------------------------------------------+ |
1771 | |
1772 | +-----------------------------------------------------------------------------------------------------------------+ |
1773 | |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are incompatible with C++98`| |
1774 | +-----------------------------------------------------------------------------------------------------------------+ |
1775 | |
1776 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
1777 | |:warning:`warning:` |nbsp| :diagtext:`befriending enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| |
1778 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
1779 | |
1780 | +-----------------------------------------------------------------------------------------------------------+ |
1781 | |:warning:`warning:` |nbsp| :diagtext:`enumeration type in nested name specifier is incompatible with C++98`| |
1782 | +-----------------------------------------------------------------------------------------------------------+ |
1783 | |
1784 | +------------------------------------------------------------------------------------------------+ |
1785 | |:warning:`warning:` |nbsp| :diagtext:`explicit conversion functions are incompatible with C++98`| |
1786 | +------------------------------------------------------------------------------------------------+ |
1787 | |
1788 | +--------------------------------------------------------------------------------------+ |
1789 | |:warning:`warning:` |nbsp| :diagtext:`range-based for loop is incompatible with C++98`| |
1790 | +--------------------------------------------------------------------------------------+ |
1791 | |
1792 | +---------------------------------------------------------------------------------------------------------------------------+ |
1793 | |:warning:`warning:` |nbsp| :diagtext:`friend declaration naming a member of the declaring class is incompatible with C++98`| |
1794 | +---------------------------------------------------------------------------------------------------------------------------+ |
1795 | |
1796 | +------------------------------------------------------------------------------------------------+ |
1797 | |:warning:`warning:` |nbsp| :diagtext:`generalized initializer lists are incompatible with C++98`| |
1798 | +------------------------------------------------------------------------------------------------+ |
1799 | |
1800 | +------------------------------------------------------------------------------------------------------------+ |
1801 | |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is incompatible with C++98`| |
1802 | +------------------------------------------------------------------------------------------------------------+ |
1803 | |
1804 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1805 | |:warning:`warning:` |nbsp| :diagtext:`jump from this indirect goto statement to one of its possible targets is incompatible with C++98`| |
1806 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1807 | |
1808 | +------------------------------------------------------------------------------------------------------------+ |
1809 | |:warning:`warning:` |nbsp| :diagtext:`initialization of initializer\_list object is incompatible with C++98`| |
1810 | +------------------------------------------------------------------------------------------------------------+ |
1811 | |
1812 | +------------------------------------------------------------------------------------+ |
1813 | |:warning:`warning:` |nbsp| :diagtext:`inline namespaces are incompatible with C++98`| |
1814 | +------------------------------------------------------------------------------------+ |
1815 | |
1816 | +-------------------------------------------------------------------------------------+ |
1817 | |:warning:`warning:` |nbsp| :diagtext:`lambda expressions are incompatible with C++98`| |
1818 | +-------------------------------------------------------------------------------------+ |
1819 | |
1820 | +-----------------------------------------------------------------------------------------------------------+ |
1821 | |:warning:`warning:` |nbsp| :diagtext:`'<::' is treated as digraph '<:' (aka '\[') followed by ':' in C++98`| |
1822 | +-----------------------------------------------------------------------------------------------------------+ |
1823 | |
1824 | +------------------------------------------------------------------------------------+ |
1825 | |:warning:`warning:` |nbsp| :diagtext:`literal operators are incompatible with C++98`| |
1826 | +------------------------------------------------------------------------------------+ |
1827 | |
1828 | +---------------------------------------------------------------------------------------------------------------------------+ |
1829 | |:warning:`warning:` |nbsp| :diagtext:`universal character name referring to a control character is incompatible with C++98`| |
1830 | +---------------------------------------------------------------------------------------------------------------------------+ |
1831 | |
1832 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
1833 | |:warning:`warning:` |nbsp| :diagtext:`specifying character '`:placeholder:`A`:diagtext:`' with a universal character name is incompatible with C++98`| |
1834 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
1835 | |
1836 | +------------------------------------------------------------------------------------------+ |
1837 | |:warning:`warning:` |nbsp| :diagtext:`noexcept specifications are incompatible with C++98`| |
1838 | +------------------------------------------------------------------------------------------+ |
1839 | |
1840 | +---------------------------------------------------------------------------------------+ |
1841 | |:warning:`warning:` |nbsp| :diagtext:`noexcept expressions are incompatible with C++98`| |
1842 | +---------------------------------------------------------------------------------------+ |
1843 | |
1844 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1845 | |:warning:`warning:` |nbsp| :diagtext:`use of non-static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in an unevaluated context is incompatible with C++98`| |
1846 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1847 | |
1848 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1849 | |:warning:`warning:` |nbsp| :diagtext:`non-class friend type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with C++98`| |
1850 | +----------------------------------------------------------------------------------------------------------------------------------+ |
1851 | |
1852 | +--------------------------------------------------------------------------------------------------------------------+ |
1853 | |:warning:`warning:` |nbsp| :diagtext:`in-class initialization of non-static data members is incompatible with C++98`| |
1854 | +--------------------------------------------------------------------------------------------------------------------+ |
1855 | |
1856 | +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ |
1857 | |:warning:`warning:` |nbsp| |+----------------------------+| |nbsp| :diagtext:`member` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with a non-trivial` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is incompatible with C++98`| |
1858 | | ||:diagtext:`anonymous struct`|| ||:diagtext:`constructor` || | |
1859 | | |+----------------------------+| |+------------------------------------+| | |
1860 | | ||:diagtext:`union` || ||:diagtext:`copy constructor` || | |
1861 | | |+----------------------------+| |+------------------------------------+| | |
1862 | | | | ||:diagtext:`move constructor` || | |
1863 | | | | |+------------------------------------+| | |
1864 | | | | ||:diagtext:`copy assignment operator`|| | |
1865 | | | | |+------------------------------------+| | |
1866 | | | | ||:diagtext:`move assignment operator`|| | |
1867 | | | | |+------------------------------------+| | |
1868 | | | | ||:diagtext:`destructor` || | |
1869 | | | | |+------------------------------------+| | |
1870 | +---------------------------+------------------------------+------------------------------------------------------------------------------------------------+--------------------------------------+----------------------------------------------+ |
1871 | |
1872 | +---------------------------------------------------------------------------+ |
1873 | |:warning:`warning:` |nbsp| :diagtext:`'nullptr' is incompatible with C++98`| |
1874 | +---------------------------------------------------------------------------+ |
1875 | |
1876 | +--------------------------------------------------------------------------------------------------------+ |
1877 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' keyword is incompatible with C++98`| |
1878 | +--------------------------------------------------------------------------------------------------------+ |
1879 | |
1880 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ |
1881 | |:warning:`warning:` |nbsp| :diagtext:`passing object of trivial but non-POD type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is incompatible with C++98`| |
1882 | | ||:diagtext:`function` || | |
1883 | | |+-----------------------+| | |
1884 | | ||:diagtext:`block` || | |
1885 | | |+-----------------------+| | |
1886 | | ||:diagtext:`method` || | |
1887 | | |+-----------------------+| | |
1888 | | ||:diagtext:`constructor`|| | |
1889 | | |+-----------------------+| | |
1890 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------+ |
1891 | |
1892 | +--------------------------------------------------------------------------------------+ |
1893 | |:warning:`warning:` |nbsp| :diagtext:`raw string literals are incompatible with C++98`| |
1894 | +--------------------------------------------------------------------------------------+ |
1895 | |
1896 | +----------------------------------------------------------------------------------------------------+ |
1897 | |:warning:`warning:` |nbsp| :diagtext:`reference qualifiers on functions are incompatible with C++98`| |
1898 | +----------------------------------------------------------------------------------------------------+ |
1899 | |
1900 | +-------------------------------------------------------------------------------------------------------------+ |
1901 | |:warning:`warning:` |nbsp| :diagtext:`reference initialized from initializer list is incompatible with C++98`| |
1902 | +-------------------------------------------------------------------------------------------------------------+ |
1903 | |
1904 | +------------------------------------------------------------------------------------+ |
1905 | |:warning:`warning:` |nbsp| :diagtext:`rvalue references are incompatible with C++98`| |
1906 | +------------------------------------------------------------------------------------+ |
1907 | |
1908 | +--------------------------------------------------------------------------------------+ |
1909 | |:warning:`warning:` |nbsp| :diagtext:`scoped enumerations are incompatible with C++98`| |
1910 | +--------------------------------------------------------------------------------------+ |
1911 | |
1912 | +------------------------------------------------------------------------------------------------------------+ |
1913 | |:warning:`warning:` |nbsp| :diagtext:`substitution failure due to access control is incompatible with C++98`| |
1914 | +------------------------------------------------------------------------------------------------------------+ |
1915 | |
1916 | +----------------------------------------------------------------------------------------------+ |
1917 | |:warning:`warning:` |nbsp| :diagtext:`static\_assert declarations are incompatible with C++98`| |
1918 | +----------------------------------------------------------------------------------------------+ |
1919 | |
1920 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
1921 | |:warning:`warning:` |nbsp| :diagtext:`static data member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in union is incompatible with C++98`| |
1922 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
1923 | |
1924 | +---------------------------------------------------------------------------------------------------------------+ |
1925 | |:warning:`warning:` |nbsp| :diagtext:`jump from switch statement to this case label is incompatible with C++98`| |
1926 | +---------------------------------------------------------------------------------------------------------------+ |
1927 | |
1928 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1929 | |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding address non-type template argument are incompatible with C++98`| |
1930 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
1931 | |
1932 | +-------------------------------------------------------------------------------------------------------------------+ |
1933 | |:warning:`warning:` |nbsp| :diagtext:`use of null pointer as non-type template argument is incompatible with C++98`| |
1934 | +-------------------------------------------------------------------------------------------------------------------+ |
1935 | |
1936 | +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ |
1937 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument referring to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with internal linkage is incompatible with C++98`| |
1938 | | ||:diagtext:`function`|| | |
1939 | | |+--------------------+| | |
1940 | | ||:diagtext:`object` || | |
1941 | | |+--------------------+| | |
1942 | +--------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+ |
1943 | |
1944 | +-----------------------------------------------------------------------------------------------------------------+ |
1945 | |:warning:`warning:` |nbsp| :diagtext:`use of 'template' keyword outside of a template is incompatible with C++98`| |
1946 | +-----------------------------------------------------------------------------------------------------------------+ |
1947 | |
1948 | +---------------------------------------------------------------------------------------------------------------------+ |
1949 | |:warning:`warning:` |nbsp| :diagtext:`default template arguments for a function template are incompatible with C++98`| |
1950 | +---------------------------------------------------------------------------------------------------------------------+ |
1951 | |
1952 | +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1953 | |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| |
1954 | | ||:diagtext:`class template` || | |
1955 | | |+-------------------------------------+| | |
1956 | | ||:diagtext:`class template partial` || | |
1957 | | |+-------------------------------------+| | |
1958 | | ||:diagtext:`variable template` || | |
1959 | | |+-------------------------------------+| | |
1960 | | ||:diagtext:`variable template partial`|| | |
1961 | | |+-------------------------------------+| | |
1962 | | ||:diagtext:`function template` || | |
1963 | | |+-------------------------------------+| | |
1964 | | ||:diagtext:`member function` || | |
1965 | | |+-------------------------------------+| | |
1966 | | ||:diagtext:`static data member` || | |
1967 | | |+-------------------------------------+| | |
1968 | | ||:diagtext:`member class` || | |
1969 | | |+-------------------------------------+| | |
1970 | | ||:diagtext:`member enumeration` || | |
1971 | | |+-------------------------------------+| | |
1972 | +---------------------------+---------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
1973 | |
1974 | +----------------------------------------------------------------------------------------+ |
1975 | |:warning:`warning:` |nbsp| :diagtext:`trailing return types are incompatible with C++98`| |
1976 | +----------------------------------------------------------------------------------------+ |
1977 | |
1978 | +---------------------------------------------------------------------------------------------------------------+ |
1979 | |:warning:`warning:` |nbsp| :diagtext:`consecutive right angle brackets are incompatible with C++98 (use '> >')`| |
1980 | +---------------------------------------------------------------------------------------------------------------+ |
1981 | |
1982 | +---------------------------------------------------------------------------------------------------------+ |
1983 | |:warning:`warning:` |nbsp| :diagtext:`use of 'typename' outside of a template is incompatible with C++98`| |
1984 | +---------------------------------------------------------------------------------------------------------+ |
1985 | |
1986 | +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ |
1987 | |:warning:`warning:` |nbsp| :diagtext:`befriending` |nbsp| :placeholder:`B` |nbsp| :diagtext:`without '`|+---------------------+|:diagtext:`' keyword is incompatible with C++98`| |
1988 | | ||:diagtext:`struct` || | |
1989 | | |+---------------------+| | |
1990 | | ||:diagtext:`interface`|| | |
1991 | | |+---------------------+| | |
1992 | | ||:diagtext:`union` || | |
1993 | | |+---------------------+| | |
1994 | | ||:diagtext:`class` || | |
1995 | | |+---------------------+| | |
1996 | | ||:diagtext:`enum` || | |
1997 | | |+---------------------+| | |
1998 | +-------------------------------------------------------------------------------------------------------+-----------------------+------------------------------------------------+ |
1999 | |
2000 | +-------------------------------------------------------------------------------------------------------+ |
2001 | |:warning:`warning:` |nbsp| :diagtext:`using this character in an identifier is incompatible with C++98`| |
2002 | +-------------------------------------------------------------------------------------------------------+ |
2003 | |
2004 | +-----------------------------------------------------------------------------------+ |
2005 | |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C++98`| |
2006 | +-----------------------------------------------------------------------------------+ |
2007 | |
2008 | +---------------------------------------------------------------------------------------------------------------+ |
2009 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type specifier is incompatible with C++98`| |
2010 | +---------------------------------------------------------------------------------------------------------------+ |
2011 | |
2012 | +------------------------------------------------------------------------------------------+ |
2013 | |:warning:`warning:` |nbsp| :diagtext:`inheriting constructors are incompatible with C++98`| |
2014 | +------------------------------------------------------------------------------------------+ |
2015 | |
2016 | +-------------------------------------------------------------------------------------+ |
2017 | |:warning:`warning:` |nbsp| :diagtext:`variadic templates are incompatible with C++98`| |
2018 | +-------------------------------------------------------------------------------------+ |
2019 | |
2020 | |
2021 | -Wc++98-compat-bind-to-temporary-copy |
2022 | ------------------------------------- |
2023 | **Diagnostic text:** |
2024 | |
2025 | +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ |
2026 | |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary would` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`in C++98`| |
2027 | | ||:diagtext:`copying variable` || ||:diagtext:`invoke an inaccessible constructor`|| | |
2028 | | |+---------------------------------------+| |+----------------------------------------------+| | |
2029 | | ||:diagtext:`copying parameter` || ||:diagtext:`find no viable constructor` || | |
2030 | | |+---------------------------------------+| |+----------------------------------------------+| | |
2031 | | ||:diagtext:`returning object` || ||:diagtext:`find ambiguous constructors` || | |
2032 | | |+---------------------------------------+| |+----------------------------------------------+| | |
2033 | | ||:diagtext:`throwing object` || ||:diagtext:`invoke a deleted constructor` || | |
2034 | | |+---------------------------------------+| |+----------------------------------------------+| | |
2035 | | ||:diagtext:`copying member subobject` || | | | |
2036 | | |+---------------------------------------+| | | | |
2037 | | ||:diagtext:`copying array element` || | | | |
2038 | | |+---------------------------------------+| | | | |
2039 | | ||:diagtext:`allocating object` || | | | |
2040 | | |+---------------------------------------+| | | | |
2041 | | ||:diagtext:`copying temporary` || | | | |
2042 | | |+---------------------------------------+| | | | |
2043 | | ||:diagtext:`initializing base subobject`|| | | | |
2044 | | |+---------------------------------------+| | | | |
2045 | | ||:diagtext:`initializing vector element`|| | | | |
2046 | | |+---------------------------------------+| | | | |
2047 | +---------------------------+-----------------------------------------+----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------+----------------------------+ |
2048 | |
2049 | |
2050 | -Wc++98-compat-local-type-template-args |
2051 | --------------------------------------- |
2052 | **Diagnostic text:** |
2053 | |
2054 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
2055 | |:warning:`warning:` |nbsp| :diagtext:`local type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as template argument is incompatible with C++98`| |
2056 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
2057 | |
2058 | |
2059 | -Wc++98-compat-pedantic |
2060 | ----------------------- |
2061 | Also controls `-Wc++98-c++11-c++14-c++17-compat-pedantic`_, `-Wc++98-c++11-c++14-compat-pedantic`_, `-Wc++98-c++11-compat-pedantic`_, `-Wc++98-compat`_, `-Wc++98-compat-bind-to-temporary-copy`_. |
2062 | |
2063 | **Diagnostic text:** |
2064 | |
2065 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ |
2066 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is incompatible with C++98`| |
2067 | | ||:diagtext:`integral` || | |
2068 | | |+-----------------------+| | |
2069 | | ||:diagtext:`enumeration`|| | |
2070 | | |+-----------------------+| | |
2071 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------------+ |
2072 | |
2073 | +------------------------------------------------------------------------------------------------------------------------+ |
2074 | |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is incompatible with C++98`| |
2075 | +------------------------------------------------------------------------------------------------------------------------+ |
2076 | |
2077 | +----------------------------------------------------------------------------------------+ |
2078 | |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are incompatible with C++98`| |
2079 | +----------------------------------------------------------------------------------------+ |
2080 | |
2081 | +--------------------------------------------------------------------------------------------------------+ |
2082 | |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are incompatible with C++98`| |
2083 | +--------------------------------------------------------------------------------------------------------+ |
2084 | |
2085 | +-----------------------------------------------------------------------------------+ |
2086 | |:warning:`warning:` |nbsp| :diagtext:`extern templates are incompatible with C++98`| |
2087 | +-----------------------------------------------------------------------------------+ |
2088 | |
2089 | +-----------------------------------------------------------------------------+ |
2090 | |:warning:`warning:` |nbsp| :diagtext:`'long long' is incompatible with C++98`| |
2091 | +-----------------------------------------------------------------------------+ |
2092 | |
2093 | +----------------------------------------------------------------------------+ |
2094 | |:warning:`warning:` |nbsp| :diagtext:`C++98 requires newline at end of file`| |
2095 | +----------------------------------------------------------------------------+ |
2096 | |
2097 | +-------------------------------------------------------------------------------------------------+ |
2098 | |:warning:`warning:` |nbsp| :diagtext:`#line number greater than 32767 is incompatible with C++98`| |
2099 | +-------------------------------------------------------------------------------------------------+ |
2100 | |
2101 | +-------------------------------------------------------------------------------------------------+ |
2102 | |:warning:`warning:` |nbsp| :diagtext:`extra ';' outside of a function is incompatible with C++98`| |
2103 | +-------------------------------------------------------------------------------------------------+ |
2104 | |
2105 | +----------------------------------------------------------------------------------+ |
2106 | |:warning:`warning:` |nbsp| :diagtext:`variadic macros are incompatible with C++98`| |
2107 | +----------------------------------------------------------------------------------+ |
2108 | |
2109 | |
2110 | -Wc++98-compat-unnamed-type-template-args |
2111 | ----------------------------------------- |
2112 | **Diagnostic text:** |
2113 | |
2114 | +---------------------------------------------------------------------------------------------------+ |
2115 | |:warning:`warning:` |nbsp| :diagtext:`unnamed type as template argument is incompatible with C++98`| |
2116 | +---------------------------------------------------------------------------------------------------+ |
2117 | |
2118 | |
2119 | -Wc11-extensions |
2120 | ---------------- |
2121 | **Diagnostic text:** |
2122 | |
2123 | +---------------------------------------------------------------------------+ |
2124 | |:warning:`warning:` |nbsp| :diagtext:`anonymous unions are a C11 extension`| |
2125 | +---------------------------------------------------------------------------+ |
2126 | |
2127 | +----------------------------------------------------------------------------------------+ |
2128 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11-specific feature`| |
2129 | +----------------------------------------------------------------------------------------+ |
2130 | |
2131 | +----------------------------------------------------------------------------+ |
2132 | |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a C11 extension`| |
2133 | +----------------------------------------------------------------------------+ |
2134 | |
2135 | +------------------------------------------------------------------------------------+ |
2136 | |:warning:`warning:` |nbsp| :diagtext:`generic selections are a C11-specific feature`| |
2137 | +------------------------------------------------------------------------------------+ |
2138 | |
2139 | +--------------------------------------------------------------------------------------+ |
2140 | |:warning:`warning:` |nbsp| :diagtext:`\_Noreturn functions are a C11-specific feature`| |
2141 | +--------------------------------------------------------------------------------------+ |
2142 | |
2143 | +---------------------------------------------------------------------------------+ |
2144 | |:warning:`warning:` |nbsp| :diagtext:`\_Static\_assert is a C11-specific feature`| |
2145 | +---------------------------------------------------------------------------------+ |
2146 | |
2147 | |
2148 | -Wc99-compat |
2149 | ------------ |
2150 | Some of the diagnostics controlled by this flag are enabled by default. |
2151 | |
2152 | **Diagnostic text:** |
2153 | |
2154 | +---------------------------+--------------------------------------------------------+--------------------------------------------+ |
2155 | |:warning:`warning:` |nbsp| |+------------------------------------------------------+| |nbsp| :diagtext:`is incompatible with C99`| |
2156 | | ||:diagtext:`using this character in an identifier` || | |
2157 | | |+------------------------------------------------------+| | |
2158 | | ||:diagtext:`starting an identifier with this character`|| | |
2159 | | |+------------------------------------------------------+| | |
2160 | +---------------------------+--------------------------------------------------------+--------------------------------------------+ |
2161 | |
2162 | +---------------------------------------------------------------------------------+ |
2163 | |:warning:`warning:` |nbsp| :diagtext:`unicode literals are incompatible with C99`| |
2164 | +---------------------------------------------------------------------------------+ |
2165 | |
2166 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ |
2167 | |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`in C99 onwards`| |
2168 | | ||:diagtext:`have type 'long long'`|| | |
2169 | | |+---------------------------------+| | |
2170 | | ||:diagtext:`be ill-formed` || | |
2171 | | |+---------------------------------+| | |
2172 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+----------------------------------+ |
2173 | |
2174 | |
2175 | -Wc99-extensions |
2176 | ---------------- |
2177 | Some of the diagnostics controlled by this flag are enabled by default. |
2178 | |
2179 | **Diagnostic text:** |
2180 | |
2181 | +-----------------------------------------------------------------------------------------------+ |
2182 | |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| |
2183 | +-----------------------------------------------------------------------------------------------+ |
2184 | |
2185 | +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ |
2186 | |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| |
2187 | | ||:diagtext:`qualifier in` |nbsp| || || || | |
2188 | | |+--------------------------------+| |+---------------------+| | |
2189 | | ||:diagtext:`static` |nbsp| || || || | |
2190 | | |+--------------------------------+| |+---------------------+| | |
2191 | | || || ||:diagtext:`'\[\*\] '`|| | |
2192 | | |+--------------------------------+| |+---------------------+| | |
2193 | +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ |
2194 | |
2195 | +-----------------------------------------------------------------------------------+ |
2196 | |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| |
2197 | +-----------------------------------------------------------------------------------+ |
2198 | |
2199 | +-------------------------------------------------------------------------------+ |
2200 | |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| |
2201 | +-------------------------------------------------------------------------------+ |
2202 | |
2203 | +-------------------------------------------------------------------------------------------------+ |
2204 | |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| |
2205 | +-------------------------------------------------------------------------------------------------+ |
2206 | |
2207 | +---------------------------------------------------------------------------------------+ |
2208 | |:warning:`warning:` |nbsp| :diagtext:`ISO C99 requires whitespace after the macro name`| |
2209 | +---------------------------------------------------------------------------------------+ |
2210 | |
2211 | +--------------------------------------------------------------------------------+ |
2212 | |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| |
2213 | +--------------------------------------------------------------------------------+ |
2214 | |
2215 | +------------------------------------------------------------------------------+ |
2216 | |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| |
2217 | +------------------------------------------------------------------------------+ |
2218 | |
2219 | +-------------------------------------------------------------------------------------------------------+ |
2220 | |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| |
2221 | +-------------------------------------------------------------------------------------------------------+ |
2222 | |
2223 | +---------------------------------------------------------------------------------------+ |
2224 | |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| |
2225 | +---------------------------------------------------------------------------------------+ |
2226 | |
2227 | |
2228 | -Wcast-align |
2229 | ------------ |
2230 | **Diagnostic text:** |
2231 | |
2232 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2233 | |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`increases required alignment from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| |
2234 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2235 | |
2236 | |
2237 | -Wcast-calling-convention |
2238 | ------------------------- |
2239 | This diagnostic is enabled by default. |
2240 | |
2241 | **Diagnostic text:** |
2242 | |
2243 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2244 | |:warning:`warning:` |nbsp| :diagtext:`cast between incompatible calling conventions '`:placeholder:`A`:diagtext:`' and '`:placeholder:`B`:diagtext:`'; calls through this pointer may abort at runtime`| |
2245 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2246 | |
2247 | |
2248 | -Wcast-of-sel-type |
2249 | ------------------ |
2250 | This diagnostic is enabled by default. |
2251 | |
2252 | **Diagnostic text:** |
2253 | |
2254 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2255 | |:warning:`warning:` |nbsp| :diagtext:`cast of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is deprecated; use sel\_getName instead`| |
2256 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2257 | |
2258 | |
2259 | -Wcast-qual |
2260 | ----------- |
2261 | **Diagnostic text:** |
2262 | |
2263 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ |
2264 | |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`drops` |nbsp| |+-----------------------------------------+| |
2265 | | ||:diagtext:`const and volatile qualifiers`|| |
2266 | | |+-----------------------------------------+| |
2267 | | ||:diagtext:`const qualifier` || |
2268 | | |+-----------------------------------------+| |
2269 | | ||:diagtext:`volatile qualifier` || |
2270 | | |+-----------------------------------------+| |
2271 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------+ |
2272 | |
2273 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2274 | |:warning:`warning:` |nbsp| :diagtext:`cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`must have all intermediate pointers const qualified to be safe`| |
2275 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2276 | |
2277 | |
2278 | -Wchar-align |
2279 | ------------ |
2280 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
2281 | |
2282 | -Wchar-subscripts |
2283 | ----------------- |
2284 | **Diagnostic text:** |
2285 | |
2286 | +------------------------------------------------------------+-------------------------+-------------------------------------+ |
2287 | |:warning:`warning:` |nbsp| :diagtext:`array section` |nbsp| |+-----------------------+| |nbsp| :diagtext:`is of type 'char'`| |
2288 | | ||:diagtext:`lower bound`|| | |
2289 | | |+-----------------------+| | |
2290 | | ||:diagtext:`length` || | |
2291 | | |+-----------------------+| | |
2292 | +------------------------------------------------------------+-------------------------+-------------------------------------+ |
2293 | |
2294 | +------------------------------------------------------------------------+ |
2295 | |:warning:`warning:` |nbsp| :diagtext:`array subscript is of type 'char'`| |
2296 | +------------------------------------------------------------------------+ |
2297 | |
2298 | |
2299 | -Wclang-cl-pch |
2300 | -------------- |
2301 | This diagnostic is enabled by default. |
2302 | |
2303 | **Diagnostic text:** |
2304 | |
2305 | +-------------------------------------------------------------------------------------------------------------------------+ |
2306 | |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' with more than one source file not implemented yet; flag ignored`| |
2307 | +-------------------------------------------------------------------------------------------------------------------------+ |
2308 | |
2309 | +------------------------------------------------------------------------------------------------------------------------------+ |
2310 | |:warning:`warning:` |nbsp| :diagtext:`support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored`| |
2311 | +------------------------------------------------------------------------------------------------------------------------------+ |
2312 | |
2313 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
2314 | |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a filename not implemented yet; flag ignored`| |
2315 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
2316 | |
2317 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
2318 | |:warning:`warning:` |nbsp| :diagtext:`support for '`:placeholder:`A`:diagtext:`' without a corresponding /FI flag not implemented yet; flag ignored`| |
2319 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
2320 | |
2321 | |
2322 | -Wclass-varargs |
2323 | --------------- |
2324 | Some of the diagnostics controlled by this flag are enabled by default. |
2325 | |
2326 | Also controls `-Wnon-pod-varargs`_. |
2327 | |
2328 | **Diagnostic text:** |
2329 | |
2330 | +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ |
2331 | |:warning:`warning:` |nbsp| :diagtext:`passing object of class type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|+--------------------------------------------------------------------+| |
2332 | | ||:diagtext:`function` ||| || |
2333 | | |+-----------------------+|+--------------------------------------------------------------------+| |
2334 | | ||:diagtext:`block` |||+------------------------------------------------------------------+|| |
2335 | | |+-----------------------+|||:diagtext:`; did you mean to call '`:placeholder:`D`:diagtext:`'?`||| |
2336 | | ||:diagtext:`method` |||+------------------------------------------------------------------+|| |
2337 | | |+-----------------------+|+--------------------------------------------------------------------+| |
2338 | | ||:diagtext:`constructor`|| | |
2339 | | |+-----------------------+| | |
2340 | +---------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------+ |
2341 | |
2342 | |
2343 | -Wcomma |
2344 | ------- |
2345 | **Diagnostic text:** |
2346 | |
2347 | +-----------------------------------------------------------------------------+ |
2348 | |:warning:`warning:` |nbsp| :diagtext:`possible misuse of comma operator here`| |
2349 | +-----------------------------------------------------------------------------+ |
2350 | |
2351 | |
2352 | -Wcomment |
2353 | --------- |
2354 | Some of the diagnostics controlled by this flag are enabled by default. |
2355 | |
2356 | **Diagnostic text:** |
2357 | |
2358 | +--------------------------------------------------------------------------------------------------+ |
2359 | |:warning:`warning:` |nbsp| :diagtext:`escaped newline between \*/ characters at block comment end`| |
2360 | +--------------------------------------------------------------------------------------------------+ |
2361 | |
2362 | +-----------------------------------------------------------------------------------+ |
2363 | |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| |
2364 | +-----------------------------------------------------------------------------------+ |
2365 | |
2366 | +------------------------------------------------------------+ |
2367 | |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| |
2368 | +------------------------------------------------------------+ |
2369 | |
2370 | +-----------------------------------------------------------------+ |
2371 | |:warning:`warning:` |nbsp| :diagtext:`'/\*' within block comment`| |
2372 | +-----------------------------------------------------------------+ |
2373 | |
2374 | |
2375 | -Wcomments |
2376 | ---------- |
2377 | Synonym for `-Wcomment`_. |
2378 | |
2379 | |
2380 | -Wcompare-distinct-pointer-types |
2381 | -------------------------------- |
2382 | This diagnostic is enabled by default. |
2383 | |
2384 | **Diagnostic text:** |
2385 | |
2386 | +---------------------------------------------------------------------------+ |
2387 | |:warning:`warning:` |nbsp| :diagtext:`comparison of distinct pointer types`| |
2388 | +---------------------------------------------------------------------------+ |
2389 | |
2390 | |
2391 | -Wcomplex-component-init |
2392 | ------------------------ |
2393 | **Diagnostic text:** |
2394 | |
2395 | +----------------------------------------------------------------------------------------------------------------------+ |
2396 | |:warning:`warning:` |nbsp| :diagtext:`complex initialization specifying real and imaginary components is an extension`| |
2397 | +----------------------------------------------------------------------------------------------------------------------+ |
2398 | |
2399 | |
2400 | -Wconditional-type-mismatch |
2401 | --------------------------- |
2402 | This diagnostic is enabled by default. |
2403 | |
2404 | **Diagnostic text:** |
2405 | |
2406 | +----------------------------------------------------------------------------------------------+ |
2407 | |:warning:`warning:` |nbsp| :diagtext:`pointer/integer type mismatch in conditional expression`| |
2408 | +----------------------------------------------------------------------------------------------+ |
2409 | |
2410 | |
2411 | -Wconditional-uninitialized |
2412 | --------------------------- |
2413 | **Diagnostic text:** |
2414 | |
2415 | +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ |
2416 | |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be uninitialized when` |nbsp| |+-----------------------------+| |
2417 | | ||:diagtext:`used here` || |
2418 | | |+-----------------------------+| |
2419 | | ||:diagtext:`captured by block`|| |
2420 | | |+-----------------------------+| |
2421 | +----------------------------------------------------------------------------------------------------------------------------+-------------------------------+ |
2422 | |
2423 | |
2424 | -Wconfig-macros |
2425 | --------------- |
2426 | This diagnostic is enabled by default. |
2427 | |
2428 | **Diagnostic text:** |
2429 | |
2430 | +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ |
2431 | |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`of configuration macro '`:placeholder:`B`:diagtext:`' has no effect on the import of '`:placeholder:`C`:diagtext:`'; pass '`|+------------------------------------------------+|:diagtext:`' on the command line to configure the module`| |
2432 | | ||:diagtext:`definition`|| ||+----------------------------------------------+|| | |
2433 | | |+----------------------+| |||:diagtext:`-D`:placeholder:`B`:diagtext:`=...`||| | |
2434 | | ||:diagtext:`#undef` || ||+----------------------------------------------+|| | |
2435 | | |+----------------------+| |+------------------------------------------------+| | |
2436 | | | | ||+------------------------------+ || | |
2437 | | | | |||:diagtext:`-U`:placeholder:`B`| || | |
2438 | | | | ||+------------------------------+ || | |
2439 | | | | |+------------------------------------------------+| | |
2440 | +---------------------------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------+---------------------------------------------------------+ |
2441 | |
2442 | |
2443 | -Wconstant-conversion |
2444 | --------------------- |
2445 | This diagnostic is enabled by default. |
2446 | |
2447 | Also controls `-Wbitfield-constant-conversion`_. |
2448 | |
2449 | **Diagnostic text:** |
2450 | |
2451 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2452 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
2453 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2454 | |
2455 | |
2456 | -Wconstant-logical-operand |
2457 | -------------------------- |
2458 | This diagnostic is enabled by default. |
2459 | |
2460 | **Diagnostic text:** |
2461 | |
2462 | +----------------------------------------------------------------------------------------------------------+ |
2463 | |:warning:`warning:` |nbsp| :diagtext:`use of logical '`:placeholder:`A`:diagtext:`' with constant operand`| |
2464 | +----------------------------------------------------------------------------------------------------------+ |
2465 | |
2466 | |
2467 | -Wconstexpr-not-const |
2468 | --------------------- |
2469 | This diagnostic is enabled by default. |
2470 | |
2471 | **Diagnostic text:** |
2472 | |
2473 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2474 | |:warning:`warning:` |nbsp| :diagtext:`'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior`| |
2475 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2476 | |
2477 | |
2478 | -Wconsumed |
2479 | ---------- |
2480 | **Diagnostic text:** |
2481 | |
2482 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2483 | |:warning:`warning:` |nbsp| :diagtext:`consumed analysis attribute is attached to member of class '`:placeholder:`A`:diagtext:`' which isn't marked as consumable`| |
2484 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2485 | |
2486 | +--------------------------------------------------------------------------------------------------------------------------------+ |
2487 | |:warning:`warning:` |nbsp| :diagtext:`state of variable '`:placeholder:`A`:diagtext:`' must match at the entry and exit of loop`| |
2488 | +--------------------------------------------------------------------------------------------------------------------------------+ |
2489 | |
2490 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2491 | |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not in expected state when the function returns: expected '`:placeholder:`B`:diagtext:`', observed '`:placeholder:`C`:diagtext:`'`| |
2492 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2493 | |
2494 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2495 | |:warning:`warning:` |nbsp| :diagtext:`argument not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| |
2496 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2497 | |
2498 | +---------------------------------------------------------------------------------------------------------------+ |
2499 | |:warning:`warning:` |nbsp| :diagtext:`return state set for an unconsumable type '`:placeholder:`A`:diagtext:`'`| |
2500 | +---------------------------------------------------------------------------------------------------------------+ |
2501 | |
2502 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2503 | |:warning:`warning:` |nbsp| :diagtext:`return value not in expected state; expected '`:placeholder:`A`:diagtext:`', observed '`:placeholder:`B`:diagtext:`'`| |
2504 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2505 | |
2506 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2507 | |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on object '`:placeholder:`B`:diagtext:`' while it is in the '`:placeholder:`C`:diagtext:`' state`| |
2508 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2509 | |
2510 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2511 | |:warning:`warning:` |nbsp| :diagtext:`invalid invocation of method '`:placeholder:`A`:diagtext:`' on a temporary object while it is in the '`:placeholder:`B`:diagtext:`' state`| |
2512 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2513 | |
2514 | |
2515 | -Wconversion |
2516 | ------------ |
2517 | Some of the diagnostics controlled by this flag are enabled by default. |
2518 | |
2519 | Also controls `-Wbitfield-enum-conversion`_, `-Wbool-conversion`_, `-Wconstant-conversion`_, `-Wenum-conversion`_, `-Wfloat-conversion`_, `-Wint-conversion`_, `-Wliteral-conversion`_, `-Wnon-literal-null-conversion`_, `-Wnull-conversion`_, `-Wobjc-literal-conversion`_, `-Wshorten-64-to-32`_, `-Wsign-conversion`_, `-Wstring-conversion`_. |
2520 | |
2521 | **Diagnostic text:** |
2522 | |
2523 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2524 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion discards imaginary component:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
2525 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2526 | |
2527 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2528 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
2529 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2530 | |
2531 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2532 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
2533 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2534 | |
2535 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2536 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns vector to scalar:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
2537 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2538 | |
2539 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2540 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument with value '`:placeholder:`A`:diagtext:`' converted to '`:placeholder:`B`:diagtext:`' for unsigned template parameter of type` |nbsp| :placeholder:`C`| |
2541 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2542 | |
2543 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2544 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument value '`:placeholder:`A`:diagtext:`' truncated to '`:placeholder:`B`:diagtext:`' for template parameter of type` |nbsp| :placeholder:`C`| |
2545 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2546 | |
2547 | |
2548 | -Wconversion-null |
2549 | ----------------- |
2550 | Synonym for `-Wnull-conversion`_. |
2551 | |
2552 | |
2553 | -Wcoroutine |
2554 | ----------- |
2555 | Synonym for `-Wcoroutine-missing-unhandled-exception`_. |
2556 | |
2557 | |
2558 | -Wcoroutine-missing-unhandled-exception |
2559 | --------------------------------------- |
2560 | This diagnostic is enabled by default. |
2561 | |
2562 | **Diagnostic text:** |
2563 | |
2564 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
2565 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is required to declare the member 'unhandled\_exception()' when exceptions are enabled`| |
2566 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
2567 | |
2568 | |
2569 | -Wcovered-switch-default |
2570 | ------------------------ |
2571 | **Diagnostic text:** |
2572 | |
2573 | +--------------------------------------------------------------------------------------------------+ |
2574 | |:warning:`warning:` |nbsp| :diagtext:`default label in switch which covers all enumeration values`| |
2575 | +--------------------------------------------------------------------------------------------------+ |
2576 | |
2577 | |
2578 | -Wcpp |
2579 | ----- |
2580 | Synonym for `-W#warnings`_. |
2581 | |
2582 | |
2583 | -Wcstring-format-directive |
2584 | -------------------------- |
2585 | **Diagnostic text:** |
2586 | |
2587 | +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ |
2588 | |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directive in` |nbsp| |+--------------------+| |nbsp| :diagtext:`which is being passed as a formatting argument to the formatting` |nbsp| |+----------------------+| |
2589 | | ||:diagtext:`NSString`|| ||:diagtext:`method` || |
2590 | | |+--------------------+| |+----------------------+| |
2591 | | ||:diagtext:`CFString`|| ||:diagtext:`CFfunction`|| |
2592 | | |+--------------------+| |+----------------------+| |
2593 | +------------------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------------------------------------------------+------------------------+ |
2594 | |
2595 | |
2596 | -Wctor-dtor-privacy |
2597 | ------------------- |
2598 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
2599 | |
2600 | -Wcuda-compat |
2601 | ------------- |
2602 | Some of the diagnostics controlled by this flag are enabled by default. |
2603 | |
2604 | **Diagnostic text:** |
2605 | |
2606 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2607 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute parameter` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is negative and will be ignored`| |
2608 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2609 | |
2610 | +---------------------------------------------------------------------------------------------------------------------------------+ |
2611 | |:warning:`warning:` |nbsp| :diagtext:`nvcc does not allow '\_\_`:placeholder:`A`:diagtext:`\_\_' to appear after '()' in lambdas`| |
2612 | +---------------------------------------------------------------------------------------------------------------------------------+ |
2613 | |
2614 | +------------------------------------------------------------------------------------------------------------+ |
2615 | |:warning:`warning:` |nbsp| :diagtext:`ignored 'inline' attribute on kernel function` |nbsp| :placeholder:`A`| |
2616 | +------------------------------------------------------------------------------------------------------------+ |
2617 | |
2618 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2619 | |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| |
2620 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2621 | |
2622 | +--------------------------------------------------------------------------------------------------------------+ |
2623 | |:warning:`warning:` |nbsp| :diagtext:`argument to '#pragma unroll' should not be in parentheses in CUDA C/C++`| |
2624 | +--------------------------------------------------------------------------------------------------------------+ |
2625 | |
2626 | |
2627 | -Wcustom-atomic-properties |
2628 | -------------------------- |
2629 | **Diagnostic text:** |
2630 | |
2631 | +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ |
2632 | |:warning:`warning:` |nbsp| :diagtext:`atomic by default property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a user defined` |nbsp| |+------------------+| |nbsp| :diagtext:`(property should be marked 'atomic' if this is intended)`| |
2633 | | ||:diagtext:`getter`|| | |
2634 | | |+------------------+| | |
2635 | | ||:diagtext:`setter`|| | |
2636 | | |+------------------+| | |
2637 | +---------------------------------------------------------------------------------------------------------------------------------------+--------------------+----------------------------------------------------------------------------+ |
2638 | |
2639 | |
2640 | -Wdangling-else |
2641 | --------------- |
2642 | This diagnostic is enabled by default. |
2643 | |
2644 | **Diagnostic text:** |
2645 | |
2646 | +---------------------------------------------------------------------------------+ |
2647 | |:warning:`warning:` |nbsp| :diagtext:`add explicit braces to avoid dangling else`| |
2648 | +---------------------------------------------------------------------------------+ |
2649 | |
2650 | |
2651 | -Wdangling-field |
2652 | ---------------- |
2653 | This diagnostic is enabled by default. |
2654 | |
2655 | **Diagnostic text:** |
2656 | |
2657 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2658 | |:warning:`warning:` |nbsp| :diagtext:`binding reference member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to stack allocated parameter` |nbsp| :placeholder:`B`| |
2659 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2660 | |
2661 | +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+ |
2662 | |:warning:`warning:` |nbsp| :diagtext:`binding reference` |nbsp| |+--------------------------------+|:diagtext:`member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a temporary value`| |
2663 | | || || | |
2664 | | |+--------------------------------+| | |
2665 | | ||:diagtext:`subobject of` |nbsp| || | |
2666 | | |+--------------------------------+| | |
2667 | +----------------------------------------------------------------+----------------------------------+----------------------------------------------------------------------------------+ |
2668 | |
2669 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2670 | |:warning:`warning:` |nbsp| :diagtext:`initializing pointer member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with the stack address of parameter` |nbsp| :placeholder:`B`| |
2671 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2672 | |
2673 | |
2674 | -Wdangling-initializer-list |
2675 | --------------------------- |
2676 | This diagnostic is enabled by default. |
2677 | |
2678 | **Diagnostic text:** |
2679 | |
2680 | +-----------------------------------------------------------------------------------------------------------------+---------------------------------+ |
2681 | |:warning:`warning:` |nbsp| :diagtext:`array backing the initializer list will be destroyed at the end of` |nbsp| |+-------------------------------+| |
2682 | | ||:diagtext:`the full-expression`|| |
2683 | | |+-------------------------------+| |
2684 | | ||:diagtext:`the constructor` || |
2685 | | |+-------------------------------+| |
2686 | +-----------------------------------------------------------------------------------------------------------------+---------------------------------+ |
2687 | |
2688 | |
2689 | -Wdate-time |
2690 | ----------- |
2691 | **Diagnostic text:** |
2692 | |
2693 | +------------------------------------------------------------------------------------------+ |
2694 | |:warning:`warning:` |nbsp| :diagtext:`expansion of date or time macro is not reproducible`| |
2695 | +------------------------------------------------------------------------------------------+ |
2696 | |
2697 | |
2698 | -Wdealloc-in-category |
2699 | --------------------- |
2700 | This diagnostic is enabled by default. |
2701 | |
2702 | **Diagnostic text:** |
2703 | |
2704 | +---------------------------------------------------------------------------------+ |
2705 | |:warning:`warning:` |nbsp| :diagtext:`-dealloc is being overridden in a category`| |
2706 | +---------------------------------------------------------------------------------+ |
2707 | |
2708 | |
2709 | -Wdebug-compression-unavailable |
2710 | ------------------------------- |
2711 | This diagnostic is enabled by default. |
2712 | |
2713 | **Diagnostic text:** |
2714 | |
2715 | +------------------------------------------------------------------------------------------+ |
2716 | |:warning:`warning:` |nbsp| :diagtext:`cannot compress debug sections (zlib not installed)`| |
2717 | +------------------------------------------------------------------------------------------+ |
2718 | |
2719 | |
2720 | -Wdeclaration-after-statement |
2721 | ----------------------------- |
2722 | **Diagnostic text:** |
2723 | |
2724 | +-----------------------------------------------------------------------------------+ |
2725 | |:warning:`warning:` |nbsp| :diagtext:`ISO C90 forbids mixing declarations and code`| |
2726 | +-----------------------------------------------------------------------------------+ |
2727 | |
2728 | |
2729 | -Wdelegating-ctor-cycles |
2730 | ------------------------ |
2731 | This diagnostic is an error by default, but the flag ``-Wno-delegating-ctor-cycles`` can be used to disable the error. |
2732 | |
2733 | **Diagnostic text:** |
2734 | |
2735 | +------------------------------------------------------------------------------------------------------------------------+ |
2736 | |:error:`error:` |nbsp| :diagtext:`constructor for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`creates a delegation cycle`| |
2737 | +------------------------------------------------------------------------------------------------------------------------+ |
2738 | |
2739 | |
2740 | -Wdelete-incomplete |
2741 | ------------------- |
2742 | This diagnostic is enabled by default. |
2743 | |
2744 | **Diagnostic text:** |
2745 | |
2746 | +-------------------------------------------------------------------------------------------------------------------+ |
2747 | |:warning:`warning:` |nbsp| :diagtext:`cannot delete expression with pointer-to-'void' type` |nbsp| :placeholder:`A`| |
2748 | +-------------------------------------------------------------------------------------------------------------------+ |
2749 | |
2750 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
2751 | |:warning:`warning:` |nbsp| :diagtext:`deleting pointer to incomplete type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may cause undefined behavior`| |
2752 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
2753 | |
2754 | |
2755 | -Wdelete-non-virtual-dtor |
2756 | ------------------------- |
2757 | Some of the diagnostics controlled by this flag are enabled by default. |
2758 | |
2759 | **Diagnostic text:** |
2760 | |
2761 | +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ |
2762 | |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that is abstract but has non-virtual destructor`| |
2763 | | ||:diagtext:`delete` || | |
2764 | | |+----------------------+| | |
2765 | | ||:diagtext:`destructor`|| | |
2766 | | |+----------------------+| | |
2767 | +---------------------------+------------------------+------------------------------------------------------------------------------------------------------------------------+ |
2768 | |
2769 | +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ |
2770 | |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :diagtext:`called on non-final` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that has virtual functions but non-virtual destructor`| |
2771 | | ||:diagtext:`delete` || | |
2772 | | |+----------------------+| | |
2773 | | ||:diagtext:`destructor`|| | |
2774 | | |+----------------------+| | |
2775 | +---------------------------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ |
2776 | |
2777 | |
2778 | -Wdeprecated |
2779 | ------------ |
2780 | Some of the diagnostics controlled by this flag are enabled by default. |
2781 | |
2782 | Also controls `-Wdeprecated-attributes`_, `-Wdeprecated-declarations`_, `-Wdeprecated-dynamic-exception-spec`_, `-Wdeprecated-increment-bool`_, `-Wdeprecated-register`_, `-Wdeprecated-writable-strings`_. |
2783 | |
2784 | **Diagnostic text:** |
2785 | |
2786 | +---------------------------------------------------------------+ |
2787 | |:warning:`warning:` |nbsp| :diagtext:`-O4 is equivalent to -O3`| |
2788 | +---------------------------------------------------------------+ |
2789 | |
2790 | +---------------------------------------------------------------------------------------------------------+ |
2791 | |:warning:`warning:` |nbsp| :diagtext:`access declarations are deprecated; use using declarations instead`| |
2792 | +---------------------------------------------------------------------------------------------------------+ |
2793 | |
2794 | +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ |
2795 | |:warning:`warning:` |nbsp| :diagtext:`definition of implicit copy` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated because it has a user-declared` |nbsp| |+------------------------------------------------------------+| |
2796 | | ||:diagtext:`constructor` || ||+------------------------+---------------------------------+|| |
2797 | | |+-------------------------------+| |||:diagtext:`copy` |nbsp| |+-------------------------------+||| |
2798 | | ||:diagtext:`assignment operator`|| ||| ||:diagtext:`assignment operator`|||| |
2799 | | |+-------------------------------+| ||| |+-------------------------------+||| |
2800 | | | | ||| ||:diagtext:`constructor` |||| |
2801 | | | | ||| |+-------------------------------+||| |
2802 | | | | ||+------------------------+---------------------------------+|| |
2803 | | | | |+------------------------------------------------------------+| |
2804 | | | | ||:diagtext:`destructor` || |
2805 | | | | |+------------------------------------------------------------+| |
2806 | +--------------------------------------------------------------------------+---------------------------------+-----------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ |
2807 | |
2808 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
2809 | |:warning:`warning:` |nbsp| :diagtext:`out-of-line definition of constexpr static data member is redundant in C++17 and is deprecated`| |
2810 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
2811 | |
2812 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
2813 | |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' is deprecated, use '`:placeholder:`B`:diagtext:`' instead`| |
2814 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
2815 | |
2816 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2817 | |:warning:`warning:` |nbsp| :diagtext:`treating '`:placeholder:`A`:diagtext:`' input as '`:placeholder:`B`:diagtext:`' when in C++ mode, this behavior is deprecated`| |
2818 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2819 | |
2820 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2821 | |:warning:`warning:` |nbsp| :diagtext:`OpenCL version` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not support the option '`:placeholder:`B`:diagtext:`'`| |
2822 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
2823 | |
2824 | +------------------------------------------------------------------------------------+ |
2825 | |:warning:`warning:` |nbsp| :diagtext:`Use of 'long' with '\_\_vector' is deprecated`| |
2826 | +------------------------------------------------------------------------------------+ |
2827 | |
2828 | |
2829 | -Wdeprecated-attributes |
2830 | ----------------------- |
2831 | This diagnostic is enabled by default. |
2832 | |
2833 | **Diagnostic text:** |
2834 | |
2835 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
2836 | |:warning:`warning:` |nbsp| :diagtext:`specifying vector types with the 'mode' attribute is deprecated; use the 'vector\_size' attribute instead`| |
2837 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
2838 | |
2839 | |
2840 | -Wdeprecated-declarations |
2841 | ------------------------- |
2842 | This diagnostic is enabled by default. |
2843 | |
2844 | **Diagnostic text:** |
2845 | |
2846 | +--------------------------------------------------------------------------------------------------------------------+ |
2847 | |:warning:`warning:` |nbsp| :diagtext:`specifying 'uuid' as an ATL attribute is deprecated; use \_\_declspec instead`| |
2848 | +--------------------------------------------------------------------------------------------------------------------+ |
2849 | |
2850 | +-----------------------------------------------------------------------------------------------------------------+ |
2851 | |:warning:`warning:` |nbsp| :diagtext:`use of C-style parameters in Objective-C method declarations is deprecated`| |
2852 | +-----------------------------------------------------------------------------------------------------------------+ |
2853 | |
2854 | +----------------------------------------------------------------------------+ |
2855 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated`| |
2856 | +----------------------------------------------------------------------------+ |
2857 | |
2858 | +---------------------------------------------------------------------------------------------------------------------+ |
2859 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be deprecated because the receiver type is unknown`| |
2860 | +---------------------------------------------------------------------------------------------------------------------+ |
2861 | |
2862 | +-----------------------------------------------------------------------------------------------------+ |
2863 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is deprecated:` |nbsp| :placeholder:`B`| |
2864 | +-----------------------------------------------------------------------------------------------------+ |
2865 | |
2866 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
2867 | |:warning:`warning:` |nbsp| :diagtext:`property access is using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`method which is deprecated`| |
2868 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
2869 | |
2870 | |
2871 | -Wdeprecated-dynamic-exception-spec |
2872 | ----------------------------------- |
2873 | **Diagnostic text:** |
2874 | |
2875 | +--------------------------------------------------------------------------------------+ |
2876 | |:warning:`warning:` |nbsp| :diagtext:`dynamic exception specifications are deprecated`| |
2877 | +--------------------------------------------------------------------------------------+ |
2878 | |
2879 | |
2880 | -Wdeprecated-implementations |
2881 | ---------------------------- |
2882 | **Diagnostic text:** |
2883 | |
2884 | +----------------------------------------------------------------------+----------------------+ |
2885 | |:warning:`warning:` |nbsp| :diagtext:`implementing deprecated` |nbsp| |+--------------------+| |
2886 | | ||:diagtext:`method` || |
2887 | | |+--------------------+| |
2888 | | ||:diagtext:`class` || |
2889 | | |+--------------------+| |
2890 | | ||:diagtext:`category`|| |
2891 | | |+--------------------+| |
2892 | +----------------------------------------------------------------------+----------------------+ |
2893 | |
2894 | +----------------------------------------------------------------------+ |
2895 | |:warning:`warning:` |nbsp| :diagtext:`implementing unavailable method`| |
2896 | +----------------------------------------------------------------------+ |
2897 | |
2898 | |
2899 | -Wdeprecated-increment-bool |
2900 | --------------------------- |
2901 | This diagnostic is enabled by default. |
2902 | |
2903 | **Diagnostic text:** |
2904 | |
2905 | +---------------------------------------------------------------------------------------------------------------------+ |
2906 | |:warning:`warning:` |nbsp| :diagtext:`incrementing expression of type bool is deprecated and incompatible with C++17`| |
2907 | +---------------------------------------------------------------------------------------------------------------------+ |
2908 | |
2909 | |
2910 | -Wdeprecated-objc-isa-usage |
2911 | --------------------------- |
2912 | This diagnostic is enabled by default. |
2913 | |
2914 | **Diagnostic text:** |
2915 | |
2916 | +-------------------------------------------------------------------------------------------------------------------+ |
2917 | |:warning:`warning:` |nbsp| :diagtext:`assignment to Objective-C's isa is deprecated in favor of object\_setClass()`| |
2918 | +-------------------------------------------------------------------------------------------------------------------+ |
2919 | |
2920 | +----------------------------------------------------------------------------------------------------------------------+ |
2921 | |:warning:`warning:` |nbsp| :diagtext:`direct access to Objective-C's isa is deprecated in favor of object\_getClass()`| |
2922 | +----------------------------------------------------------------------------------------------------------------------+ |
2923 | |
2924 | |
2925 | -Wdeprecated-objc-pointer-introspection |
2926 | --------------------------------------- |
2927 | This diagnostic is enabled by default. |
2928 | |
2929 | Also controls `-Wdeprecated-objc-pointer-introspection-performSelector`_. |
2930 | |
2931 | **Diagnostic text:** |
2932 | |
2933 | +--------------------------------------------------------------------------------------------------------------------------+ |
2934 | |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| |
2935 | +--------------------------------------------------------------------------------------------------------------------------+ |
2936 | |
2937 | |
2938 | -Wdeprecated-objc-pointer-introspection-performSelector |
2939 | ------------------------------------------------------- |
2940 | This diagnostic is enabled by default. |
2941 | |
2942 | **Diagnostic text:** |
2943 | |
2944 | +--------------------------------------------------------------------------------------------------------------------------+ |
2945 | |:warning:`warning:` |nbsp| :diagtext:`bitmasking for introspection of Objective-C object pointers is strongly discouraged`| |
2946 | +--------------------------------------------------------------------------------------------------------------------------+ |
2947 | |
2948 | |
2949 | -Wdeprecated-register |
2950 | --------------------- |
2951 | This diagnostic is enabled by default. |
2952 | |
2953 | **Diagnostic text:** |
2954 | |
2955 | +-------------------------------------------------------------------------------------------------------------------+ |
2956 | |:warning:`warning:` |nbsp| :diagtext:`'register' storage class specifier is deprecated and incompatible with C++17`| |
2957 | +-------------------------------------------------------------------------------------------------------------------+ |
2958 | |
2959 | |
2960 | -Wdeprecated-writable-strings |
2961 | ----------------------------- |
2962 | Synonym for `-Wc++11-compat-deprecated-writable-strings`_. |
2963 | |
2964 | |
2965 | -Wdirect-ivar-access |
2966 | -------------------- |
2967 | **Diagnostic text:** |
2968 | |
2969 | +------------------------------------------------------------------------------------------------------------------------------+ |
2970 | |:warning:`warning:` |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being directly accessed`| |
2971 | +------------------------------------------------------------------------------------------------------------------------------+ |
2972 | |
2973 | |
2974 | -Wdisabled-macro-expansion |
2975 | -------------------------- |
2976 | **Diagnostic text:** |
2977 | |
2978 | +----------------------------------------------------------------------------+ |
2979 | |:warning:`warning:` |nbsp| :diagtext:`disabled expansion of recursive macro`| |
2980 | +----------------------------------------------------------------------------+ |
2981 | |
2982 | |
2983 | -Wdisabled-optimization |
2984 | ----------------------- |
2985 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
2986 | |
2987 | -Wdiscard-qual |
2988 | -------------- |
2989 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
2990 | |
2991 | -Wdistributed-object-modifiers |
2992 | ------------------------------ |
2993 | This diagnostic is enabled by default. |
2994 | |
2995 | **Diagnostic text:** |
2996 | |
2997 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
2998 | |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in implementation of` |nbsp| :placeholder:`A`| |
2999 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
3000 | |
3001 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
3002 | |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in implementation of` |nbsp| :placeholder:`A`| |
3003 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
3004 | |
3005 | |
3006 | -Wdiv-by-zero |
3007 | ------------- |
3008 | Synonym for `-Wdivision-by-zero`_. |
3009 | |
3010 | |
3011 | -Wdivision-by-zero |
3012 | ------------------ |
3013 | This diagnostic is enabled by default. |
3014 | |
3015 | **Diagnostic text:** |
3016 | |
3017 | +---------------------------+-----------------------+----------------------------------------+ |
3018 | |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`by zero is undefined`| |
3019 | | ||:diagtext:`remainder`|| | |
3020 | | |+---------------------+| | |
3021 | | ||:diagtext:`division` || | |
3022 | | |+---------------------+| | |
3023 | +---------------------------+-----------------------+----------------------------------------+ |
3024 | |
3025 | |
3026 | -Wdll-attribute-on-redeclaration |
3027 | -------------------------------- |
3028 | This diagnostic is enabled by default. |
3029 | |
3030 | **Diagnostic text:** |
3031 | |
3032 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3033 | |:warning:`warning:` |nbsp| :diagtext:`redeclaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not add` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute`| |
3034 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3035 | |
3036 | |
3037 | -Wdllexport-explicit-instantiation-decl |
3038 | --------------------------------------- |
3039 | This diagnostic is enabled by default. |
3040 | |
3041 | **Diagnostic text:** |
3042 | |
3043 | +---------------------------------------------------------------------------------------------------+ |
3044 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation declaration should not be 'dllexport'`| |
3045 | +---------------------------------------------------------------------------------------------------+ |
3046 | |
3047 | |
3048 | -Wdllimport-static-field-def |
3049 | ---------------------------- |
3050 | This diagnostic is enabled by default. |
3051 | |
3052 | **Diagnostic text:** |
3053 | |
3054 | +---------------------------------------------------------------------------+ |
3055 | |:warning:`warning:` |nbsp| :diagtext:`definition of dllimport static field`| |
3056 | +---------------------------------------------------------------------------+ |
3057 | |
3058 | |
3059 | -Wdocumentation |
3060 | --------------- |
3061 | Also controls `-Wdocumentation-deprecated-sync`_, `-Wdocumentation-html`_. |
3062 | |
3063 | **Diagnostic text:** |
3064 | |
3065 | +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ |
3066 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+---------------------+|:diagtext:`' command should not be used in a comment attached to a non-`|+---------------------+| |nbsp| :diagtext:`declaration`| |
3067 | | ||:diagtext:`\\`|||:diagtext:`class` || ||:diagtext:`class` || | |
3068 | | |+--------------+|+---------------------+| |+---------------------+| | |
3069 | | ||:diagtext:`@` |||:diagtext:`interface`|| ||:diagtext:`interface`|| | |
3070 | | |+--------------+|+---------------------+| |+---------------------+| | |
3071 | | | ||:diagtext:`protocol` || ||:diagtext:`protocol` || | |
3072 | | | |+---------------------+| |+---------------------+| | |
3073 | | | ||:diagtext:`struct` || ||:diagtext:`struct` || | |
3074 | | | |+---------------------+| |+---------------------+| | |
3075 | | | ||:diagtext:`union` || ||:diagtext:`union` || | |
3076 | | | |+---------------------+| |+---------------------+| | |
3077 | +----------------------------------------+----------------+-----------------------+------------------------------------------------------------------------+-----------------------+-------------------------------+ |
3078 | |
3079 | +-----------------------------------------------------------+----------------+-----------------------------+ |
3080 | |:warning:`warning:` |nbsp| :diagtext:`duplicated command '`|+--------------+|:placeholder:`B`:diagtext:`'`| |
3081 | | ||:diagtext:`\\`|| | |
3082 | | |+--------------+| | |
3083 | | ||:diagtext:`@` || | |
3084 | | |+--------------+| | |
3085 | +-----------------------------------------------------------+----------------+-----------------------------+ |
3086 | |
3087 | +------------------------------------------------------------------+----------------+-------------------------------------+ |
3088 | |:warning:`warning:` |nbsp| :diagtext:`empty paragraph passed to '`|+--------------+|:placeholder:`B`:diagtext:`' command`| |
3089 | | ||:diagtext:`\\`|| | |
3090 | | |+--------------+| | |
3091 | | ||:diagtext:`@` || | |
3092 | | |+--------------+| | |
3093 | +------------------------------------------------------------------+----------------+-------------------------------------+ |
3094 | |
3095 | +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ |
3096 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+------------------------+|:diagtext:`' command should not be used in a comment attached to a non-container declaration`| |
3097 | | ||:diagtext:`\\`|||:diagtext:`classdesign` || | |
3098 | | |+--------------+|+------------------------+| | |
3099 | | ||:diagtext:`@` |||:diagtext:`coclass` || | |
3100 | | |+--------------+|+------------------------+| | |
3101 | | | ||:diagtext:`dependency` || | |
3102 | | | |+------------------------+| | |
3103 | | | ||:diagtext:`helper` || | |
3104 | | | |+------------------------+| | |
3105 | | | ||:diagtext:`helperclass` || | |
3106 | | | |+------------------------+| | |
3107 | | | ||:diagtext:`helps` || | |
3108 | | | |+------------------------+| | |
3109 | | | ||:diagtext:`instancesize`|| | |
3110 | | | |+------------------------+| | |
3111 | | | ||:diagtext:`ownership` || | |
3112 | | | |+------------------------+| | |
3113 | | | ||:diagtext:`performance` || | |
3114 | | | |+------------------------+| | |
3115 | | | ||:diagtext:`security` || | |
3116 | | | |+------------------------+| | |
3117 | | | ||:diagtext:`superclass` || | |
3118 | | | |+------------------------+| | |
3119 | +----------------------------------------+----------------+--------------------------+---------------------------------------------------------------------------------------------+ |
3120 | |
3121 | +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ |
3122 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|+-------------------------+|:diagtext:`' command should be used in a comment attached to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`declaration`| |
3123 | | ||:diagtext:`\\`|||:diagtext:`function` || ||:diagtext:`a function` || | |
3124 | | |+--------------+|+-------------------------+| |+---------------------------------+| | |
3125 | | ||:diagtext:`@` |||:diagtext:`functiongroup`|| ||:diagtext:`a function` || | |
3126 | | |+--------------+|+-------------------------+| |+---------------------------------+| | |
3127 | | | ||:diagtext:`method` || ||:diagtext:`an Objective-C method`|| | |
3128 | | | |+-------------------------+| |+---------------------------------+| | |
3129 | | | ||:diagtext:`methodgroup` || ||:diagtext:`an Objective-C method`|| | |
3130 | | | |+-------------------------+| |+---------------------------------+| | |
3131 | | | ||:diagtext:`callback` || ||:diagtext:`a pointer to function`|| | |
3132 | | | |+-------------------------+| |+---------------------------------+| | |
3133 | +----------------------------------------+----------------+---------------------------+---------------------------------------------------------------------+-----------------------------------+-------------------------------+ |
3134 | |
3135 | +-------------------------------------------------------------------------------------------------------+ |
3136 | |:warning:`warning:` |nbsp| :diagtext:`HTML start tag prematurely ended, expected attribute name or '>'`| |
3137 | +-------------------------------------------------------------------------------------------------------+ |
3138 | |
3139 | +-------------------------------------------------------------------------------+ |
3140 | |:warning:`warning:` |nbsp| :diagtext:`expected quoted string after equals sign`| |
3141 | +-------------------------------------------------------------------------------+ |
3142 | |
3143 | +-----------------------------------------------------------------------------------------------------+ |
3144 | |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' is already documented`| |
3145 | +-----------------------------------------------------------------------------------------------------+ |
3146 | |
3147 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
3148 | |:warning:`warning:` |nbsp| :diagtext:`unrecognized parameter passing direction, valid directions are '\[in\]', '\[out\]' and '\[in,out\]'`| |
3149 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
3150 | |
3151 | +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ |
3152 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`param' command used in a comment that is not attached to a function declaration`| |
3153 | | ||:diagtext:`\\`|| | |
3154 | | |+--------------+| | |
3155 | | ||:diagtext:`@` || | |
3156 | | |+--------------+| | |
3157 | +----------------------------------------+----------------+-------------------------------------------------------------------------------------------+ |
3158 | |
3159 | +---------------------------------------------------------------------------------------------------------------------+ |
3160 | |:warning:`warning:` |nbsp| :diagtext:`parameter '`:placeholder:`A`:diagtext:`' not found in the function declaration`| |
3161 | +---------------------------------------------------------------------------------------------------------------------+ |
3162 | |
3163 | +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ |
3164 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is attached to a` |nbsp| |+-----------------------------------+| |
3165 | | ||:diagtext:`\\`|| ||:diagtext:`function returning void`|| |
3166 | | |+--------------+| |+-----------------------------------+| |
3167 | | ||:diagtext:`@` || ||:diagtext:`constructor` || |
3168 | | |+--------------+| |+-----------------------------------+| |
3169 | | | | ||:diagtext:`destructor` || |
3170 | | | | |+-----------------------------------+| |
3171 | | | | ||:diagtext:`method returning void` || |
3172 | | | | |+-----------------------------------+| |
3173 | +----------------------------------------+----------------+-------------------------------------------------------------------------------------+-------------------------------------+ |
3174 | |
3175 | +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ |
3176 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command used in a comment that is not attached to a function or method declaration`| |
3177 | | ||:diagtext:`\\`|| | |
3178 | | |+--------------+| | |
3179 | | ||:diagtext:`@` || | |
3180 | | |+--------------+| | |
3181 | +----------------------------------------+----------------+----------------------------------------------------------------------------------------------------------------+ |
3182 | |
3183 | +--------------------------------------------------------------------------------------------------------------+ |
3184 | |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' is already documented`| |
3185 | +--------------------------------------------------------------------------------------------------------------+ |
3186 | |
3187 | +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ |
3188 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:diagtext:`tparam' command used in a comment that is not attached to a template declaration`| |
3189 | | ||:diagtext:`\\`|| | |
3190 | | |+--------------+| | |
3191 | | ||:diagtext:`@` || | |
3192 | | |+--------------+| | |
3193 | +----------------------------------------+----------------+--------------------------------------------------------------------------------------------+ |
3194 | |
3195 | +------------------------------------------------------------------------------------------------------------------------------+ |
3196 | |:warning:`warning:` |nbsp| :diagtext:`template parameter '`:placeholder:`A`:diagtext:`' not found in the template declaration`| |
3197 | +------------------------------------------------------------------------------------------------------------------------------+ |
3198 | |
3199 | +---------------------------------------------------------------------+ |
3200 | |:warning:`warning:` |nbsp| :diagtext:`not a Doxygen trailing comment`| |
3201 | +---------------------------------------------------------------------+ |
3202 | |
3203 | +----------------------------------------+----------------+------------------------------------------------------------------------------+ |
3204 | |:warning:`warning:` |nbsp| :diagtext:`'`|+--------------+|:placeholder:`B`:diagtext:`' command does not terminate a verbatim text block`| |
3205 | | ||:diagtext:`\\`|| | |
3206 | | |+--------------+| | |
3207 | | ||:diagtext:`@` || | |
3208 | | |+--------------+| | |
3209 | +----------------------------------------+----------------+------------------------------------------------------------------------------+ |
3210 | |
3211 | |
3212 | -Wdocumentation-deprecated-sync |
3213 | ------------------------------- |
3214 | **Diagnostic text:** |
3215 | |
3216 | +----------------------------------------------------------------------------------------------------------------------------------+ |
3217 | |:warning:`warning:` |nbsp| :diagtext:`declaration is marked with '\\deprecated' command but does not have a deprecation attribute`| |
3218 | +----------------------------------------------------------------------------------------------------------------------------------+ |
3219 | |
3220 | |
3221 | -Wdocumentation-html |
3222 | -------------------- |
3223 | **Diagnostic text:** |
3224 | |
3225 | +-----------------------------------------------------------------------------------------------+ |
3226 | |:warning:`warning:` |nbsp| :diagtext:`HTML end tag '`:placeholder:`A`:diagtext:`' is forbidden`| |
3227 | +-----------------------------------------------------------------------------------------------+ |
3228 | |
3229 | +--------------------------------------------------------------------------------+ |
3230 | |:warning:`warning:` |nbsp| :diagtext:`HTML end tag does not match any start tag`| |
3231 | +--------------------------------------------------------------------------------+ |
3232 | |
3233 | +--------------------------------------------------------------------------------------------------+ |
3234 | |:warning:`warning:` |nbsp| :diagtext:`HTML tag '`:placeholder:`A`:diagtext:`' requires an end tag`| |
3235 | +--------------------------------------------------------------------------------------------------+ |
3236 | |
3237 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3238 | |:warning:`warning:` |nbsp| :diagtext:`HTML start tag '`:placeholder:`A`:diagtext:`' closed by '`:placeholder:`B`:diagtext:`'`| |
3239 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3240 | |
3241 | |
3242 | -Wdocumentation-pedantic |
3243 | ------------------------ |
3244 | Also controls `-Wdocumentation-unknown-command`_. |
3245 | |
3246 | **Diagnostic text:** |
3247 | |
3248 | +-----------------------------------------------------------------------------------------------+ |
3249 | |:warning:`warning:` |nbsp| :diagtext:`whitespace is not allowed in parameter passing direction`| |
3250 | +-----------------------------------------------------------------------------------------------+ |
3251 | |
3252 | |
3253 | -Wdocumentation-unknown-command |
3254 | ------------------------------- |
3255 | **Diagnostic text:** |
3256 | |
3257 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
3258 | |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name '`:placeholder:`A`:diagtext:`'; did you mean '`:placeholder:`B`:diagtext:`'?`| |
3259 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
3260 | |
3261 | +---------------------------------------------------------------+ |
3262 | |:warning:`warning:` |nbsp| :diagtext:`unknown command tag name`| |
3263 | +---------------------------------------------------------------+ |
3264 | |
3265 | |
3266 | -Wdollar-in-identifier-extension |
3267 | -------------------------------- |
3268 | **Diagnostic text:** |
3269 | |
3270 | +--------------------------------------------------------+ |
3271 | |:warning:`warning:` |nbsp| :diagtext:`'$' in identifier`| |
3272 | +--------------------------------------------------------+ |
3273 | |
3274 | |
3275 | -Wdouble-promotion |
3276 | ------------------ |
3277 | **Diagnostic text:** |
3278 | |
3279 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3280 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion increases floating-point precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
3281 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3282 | |
3283 | |
3284 | -Wduplicate-decl-specifier |
3285 | -------------------------- |
3286 | This diagnostic is enabled by default. |
3287 | |
3288 | **Diagnostic text:** |
3289 | |
3290 | +-----------------------------------------------------------------------------------------------------+ |
3291 | |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| |
3292 | +-----------------------------------------------------------------------------------------------------+ |
3293 | |
3294 | +-----------------------------------------------------------------------------------------------------+ |
3295 | |:warning:`warning:` |nbsp| :diagtext:`duplicate '`:placeholder:`A`:diagtext:`' declaration specifier`| |
3296 | +-----------------------------------------------------------------------------------------------------+ |
3297 | |
3298 | |
3299 | -Wduplicate-enum |
3300 | ---------------- |
3301 | **Diagnostic text:** |
3302 | |
3303 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3304 | |:warning:`warning:` |nbsp| :diagtext:`element` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has been implicitly assigned` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which another element has been assigned`| |
3305 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3306 | |
3307 | |
3308 | -Wduplicate-method-arg |
3309 | ---------------------- |
3310 | **Diagnostic text:** |
3311 | |
3312 | +------------------------------------------------------------------------------------------------+ |
3313 | |:warning:`warning:` |nbsp| :diagtext:`redeclaration of method parameter` |nbsp| :placeholder:`A`| |
3314 | +------------------------------------------------------------------------------------------------+ |
3315 | |
3316 | |
3317 | -Wduplicate-method-match |
3318 | ------------------------ |
3319 | **Diagnostic text:** |
3320 | |
3321 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
3322 | |:warning:`warning:` |nbsp| :diagtext:`multiple declarations of method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found and ignored`| |
3323 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
3324 | |
3325 | |
3326 | -Wduplicate-protocol |
3327 | -------------------- |
3328 | This diagnostic is enabled by default. |
3329 | |
3330 | **Diagnostic text:** |
3331 | |
3332 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3333 | |:warning:`warning:` |nbsp| :diagtext:`duplicate protocol definition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored`| |
3334 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3335 | |
3336 | |
3337 | -Wdynamic-class-memaccess |
3338 | ------------------------- |
3339 | This diagnostic is enabled by default. |
3340 | |
3341 | **Diagnostic text:** |
3342 | |
3343 | +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ |
3344 | |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`this` |nbsp| :placeholder:`B` |nbsp| :diagtext:`call is a pointer to` |nbsp| |+--------------------------------------+|:diagtext:`dynamic class` |nbsp| :placeholder:`D`:diagtext:`; vtable pointer will be` |nbsp| |+-----------------------+| |
3345 | | ||:diagtext:`destination for` || || || ||:diagtext:`overwritten`|| |
3346 | | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| |
3347 | | ||:diagtext:`source of` || ||:diagtext:`class containing a` |nbsp| || ||:diagtext:`copied` || |
3348 | | |+-----------------------------+| |+--------------------------------------+| |+-----------------------+| |
3349 | | ||:diagtext:`first operand of` || | | ||:diagtext:`moved` || |
3350 | | |+-----------------------------+| | | |+-----------------------+| |
3351 | | ||:diagtext:`second operand of`|| | | ||:diagtext:`compared` || |
3352 | | |+-----------------------------+| | | |+-----------------------+| |
3353 | +---------------------------+-------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------+---------------------------------------------------------------------------------------------+-------------------------+ |
3354 | |
3355 | |
3356 | -Wdynamic-exception-spec |
3357 | ------------------------ |
3358 | Some of the diagnostics controlled by this flag are enabled by default. |
3359 | |
3360 | Also controls `-Wdeprecated-dynamic-exception-spec`_. |
3361 | |
3362 | **Diagnostic text:** |
3363 | |
3364 | +--------------------------------------------------------------------------------------------+ |
3365 | |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow dynamic exception specifications`| |
3366 | +--------------------------------------------------------------------------------------------+ |
3367 | |
3368 | |
3369 | -Weffc++ |
3370 | -------- |
3371 | Synonym for `-Wnon-virtual-dtor`_. |
3372 | |
3373 | |
3374 | -Wembedded-directive |
3375 | -------------------- |
3376 | **Diagnostic text:** |
3377 | |
3378 | +----------------------------------------------------------------------------------------------------------+ |
3379 | |:warning:`warning:` |nbsp| :diagtext:`embedding a directive within macro arguments has undefined behavior`| |
3380 | +----------------------------------------------------------------------------------------------------------+ |
3381 | |
3382 | |
3383 | -Wempty-body |
3384 | ------------ |
3385 | This diagnostic is enabled by default. |
3386 | |
3387 | **Diagnostic text:** |
3388 | |
3389 | +--------------------------------------------------------------+ |
3390 | |:warning:`warning:` |nbsp| :diagtext:`for loop has empty body`| |
3391 | +--------------------------------------------------------------+ |
3392 | |
3393 | +------------------------------------------------------------------+ |
3394 | |:warning:`warning:` |nbsp| :diagtext:`if statement has empty body`| |
3395 | +------------------------------------------------------------------+ |
3396 | |
3397 | +--------------------------------------------------------------------------+ |
3398 | |:warning:`warning:` |nbsp| :diagtext:`range-based for loop has empty body`| |
3399 | +--------------------------------------------------------------------------+ |
3400 | |
3401 | +----------------------------------------------------------------------+ |
3402 | |:warning:`warning:` |nbsp| :diagtext:`switch statement has empty body`| |
3403 | +----------------------------------------------------------------------+ |
3404 | |
3405 | +----------------------------------------------------------------+ |
3406 | |:warning:`warning:` |nbsp| :diagtext:`while loop has empty body`| |
3407 | +----------------------------------------------------------------+ |
3408 | |
3409 | |
3410 | -Wempty-decomposition |
3411 | --------------------- |
3412 | This diagnostic is enabled by default. |
3413 | |
3414 | **Diagnostic text:** |
3415 | |
3416 | +-------------------------------------------------------------------------------------------------+ |
3417 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++17 does not allow a decomposition group to be empty`| |
3418 | +-------------------------------------------------------------------------------------------------+ |
3419 | |
3420 | |
3421 | -Wempty-translation-unit |
3422 | ------------------------ |
3423 | **Diagnostic text:** |
3424 | |
3425 | +------------------------------------------------------------------------------------------------------------+ |
3426 | |:warning:`warning:` |nbsp| :diagtext:`ISO C requires a translation unit to contain at least one declaration`| |
3427 | +------------------------------------------------------------------------------------------------------------+ |
3428 | |
3429 | |
3430 | -Wencode-type |
3431 | ------------- |
3432 | This diagnostic is enabled by default. |
3433 | |
3434 | **Diagnostic text:** |
3435 | |
3436 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3437 | |:warning:`warning:` |nbsp| :diagtext:`encoding of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type is incomplete because` |nbsp| :placeholder:`B` |nbsp| :diagtext:`component has unknown encoding`| |
3438 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3439 | |
3440 | |
3441 | -Wendif-labels |
3442 | -------------- |
3443 | Synonym for `-Wextra-tokens`_. |
3444 | |
3445 | |
3446 | -Wenum-compare |
3447 | -------------- |
3448 | This diagnostic is enabled by default. |
3449 | |
3450 | Also controls `-Wenum-compare-switch`_. |
3451 | |
3452 | **Diagnostic text:** |
3453 | |
3454 | +------------------------------------------------------------------------------------------------+ |
3455 | |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types`| |
3456 | +------------------------------------------------------------------------------------------------+ |
3457 | |
3458 | |
3459 | -Wenum-compare-switch |
3460 | --------------------- |
3461 | This diagnostic is enabled by default. |
3462 | |
3463 | **Diagnostic text:** |
3464 | |
3465 | +--------------------------------------------------------------------------------------------------------------------+ |
3466 | |:warning:`warning:` |nbsp| :diagtext:`comparison of two values with different enumeration types in switch statement`| |
3467 | +--------------------------------------------------------------------------------------------------------------------+ |
3468 | |
3469 | |
3470 | -Wenum-conversion |
3471 | ----------------- |
3472 | This diagnostic is enabled by default. |
3473 | |
3474 | **Diagnostic text:** |
3475 | |
3476 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3477 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from enumeration type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to different enumeration type` |nbsp| :placeholder:`B`| |
3478 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3479 | |
3480 | |
3481 | -Wenum-too-large |
3482 | ---------------- |
3483 | This diagnostic is enabled by default. |
3484 | |
3485 | **Diagnostic text:** |
3486 | |
3487 | +-----------------------------------------------------------------------------------------+ |
3488 | |:warning:`warning:` |nbsp| :diagtext:`enumeration values exceed range of largest integer`| |
3489 | +-----------------------------------------------------------------------------------------+ |
3490 | |
3491 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3492 | |:warning:`warning:` |nbsp| :diagtext:`incremented enumerator value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not representable in the largest integer type`| |
3493 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3494 | |
3495 | |
3496 | -Wexceptions |
3497 | ------------ |
3498 | This diagnostic is enabled by default. |
3499 | |
3500 | **Diagnostic text:** |
3501 | |
3502 | +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ |
3503 | |:warning:`warning:` |nbsp| :diagtext:`cannot refer to a non-static member from the handler of a` |nbsp| |+-----------------------+| |nbsp| :diagtext:`function try block`| |
3504 | | ||:diagtext:`constructor`|| | |
3505 | | |+-----------------------+| | |
3506 | | ||:diagtext:`destructor` || | |
3507 | | |+-----------------------+| | |
3508 | +--------------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------+ |
3509 | |
3510 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
3511 | |:warning:`warning:` |nbsp| :diagtext:`exception of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will be caught by earlier handler`| |
3512 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
3513 | |
3514 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3515 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has a non-throwing exception specification but can still throw`| |
3516 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3517 | |
3518 | |
3519 | -Wexit-time-destructors |
3520 | ----------------------- |
3521 | **Diagnostic text:** |
3522 | |
3523 | +-----------------------------------------------------------------------------------+ |
3524 | |:warning:`warning:` |nbsp| :diagtext:`declaration requires an exit-time destructor`| |
3525 | +-----------------------------------------------------------------------------------+ |
3526 | |
3527 | |
3528 | -Wexpansion-to-defined |
3529 | ---------------------- |
3530 | Some of the diagnostics controlled by this flag are enabled by default. |
3531 | |
3532 | **Diagnostic text:** |
3533 | |
3534 | +-------------------------------------------------------------------------------------------------+ |
3535 | |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| |
3536 | +-------------------------------------------------------------------------------------------------+ |
3537 | |
3538 | +-------------------------------------------------------------------------------------------------+ |
3539 | |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| |
3540 | +-------------------------------------------------------------------------------------------------+ |
3541 | |
3542 | |
3543 | -Wexplicit-initialize-call |
3544 | -------------------------- |
3545 | This diagnostic is enabled by default. |
3546 | |
3547 | **Diagnostic text:** |
3548 | |
3549 | +------------------------------------------------------------------------------------------------------------+ |
3550 | |:warning:`warning:` |nbsp| :diagtext:`explicit call to +initialize results in duplicate call to +initialize`| |
3551 | +------------------------------------------------------------------------------------------------------------+ |
3552 | |
3553 | +----------------------------------------------------------------------------------------------------------------------------+ |
3554 | |:warning:`warning:` |nbsp| :diagtext:`explicit call to \[super initialize\] should only be in implementation of +initialize`| |
3555 | +----------------------------------------------------------------------------------------------------------------------------+ |
3556 | |
3557 | |
3558 | -Wexplicit-ownership-type |
3559 | ------------------------- |
3560 | **Diagnostic text:** |
3561 | |
3562 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
3563 | |:warning:`warning:` |nbsp| :diagtext:`method parameter of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with no explicit ownership`| |
3564 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
3565 | |
3566 | |
3567 | -Wextended-offsetof |
3568 | ------------------- |
3569 | **Diagnostic text:** |
3570 | |
3571 | +--------------------------------------------------------------------------------------+ |
3572 | |:warning:`warning:` |nbsp| :diagtext:`using extended field designator is an extension`| |
3573 | +--------------------------------------------------------------------------------------+ |
3574 | |
3575 | |
3576 | -Wextern-c-compat |
3577 | ----------------- |
3578 | This diagnostic is enabled by default. |
3579 | |
3580 | **Diagnostic text:** |
3581 | |
3582 | +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ |
3583 | |:warning:`warning:` |nbsp| |+-------------------------+|+------------------+| |nbsp| :diagtext:`has size 0 in C,` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in C++`| |
3584 | | || |||:diagtext:`struct`|| ||:diagtext:`size 1` || | |
3585 | | |+-------------------------+|+------------------+| |+-------------------------+| | |
3586 | | ||:diagtext:`empty` |nbsp| |||:diagtext:`union` || ||:diagtext:`non-zero size`|| | |
3587 | | |+-------------------------+|+------------------+| |+-------------------------+| | |
3588 | +---------------------------+---------------------------+--------------------+--------------------------------------------+---------------------------+--------------------------+ |
3589 | |
3590 | |
3591 | -Wextern-initializer |
3592 | -------------------- |
3593 | This diagnostic is enabled by default. |
3594 | |
3595 | **Diagnostic text:** |
3596 | |
3597 | +---------------------------------------------------------------------------+ |
3598 | |:warning:`warning:` |nbsp| :diagtext:`'extern' variable has an initializer`| |
3599 | +---------------------------------------------------------------------------+ |
3600 | |
3601 | |
3602 | -Wextra |
3603 | ------- |
3604 | Some of the diagnostics controlled by this flag are enabled by default. |
3605 | |
3606 | Also controls `-Wignored-qualifiers`_, `-Winitializer-overrides`_, `-Wmissing-field-initializers`_, `-Wmissing-method-return-type`_, `-Wnull-pointer-arithmetic`_, `-Wsemicolon-before-method-body`_, `-Wsign-compare`_, `-Wunused-parameter`_. |
3607 | |
3608 | **Diagnostic text:** |
3609 | |
3610 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3611 | |:warning:`warning:` |nbsp| :diagtext:`call to function without interrupt attribute could clobber interruptee's VFP registers`| |
3612 | +-----------------------------------------------------------------------------------------------------------------------------+ |
3613 | |
3614 | |
3615 | -Wextra-qualification |
3616 | --------------------- |
3617 | This diagnostic is enabled by default. |
3618 | |
3619 | **Diagnostic text:** |
3620 | |
3621 | +--------------------------------------------------------------------------------------------+ |
3622 | |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| |
3623 | +--------------------------------------------------------------------------------------------+ |
3624 | |
3625 | |
3626 | -Wextra-semi |
3627 | ------------ |
3628 | Also controls `-Wc++11-extra-semi`_. |
3629 | |
3630 | **Diagnostic text:** |
3631 | |
3632 | +--------------------------------------------------------+------------------------------------------------+ |
3633 | |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| |
3634 | | ||:diagtext:`outside of a function` || |
3635 | | |+----------------------------------------------+| |
3636 | | ||+--------------------------------------------+|| |
3637 | | |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| |
3638 | | ||+--------------------------------------------+|| |
3639 | | |+----------------------------------------------+| |
3640 | | ||:diagtext:`inside instance variable list` || |
3641 | | |+----------------------------------------------+| |
3642 | | ||:diagtext:`after member function definition` || |
3643 | | |+----------------------------------------------+| |
3644 | +--------------------------------------------------------+------------------------------------------------+ |
3645 | |
3646 | +---------------------------------------------------------------------------------+ |
3647 | |:warning:`warning:` |nbsp| :diagtext:`extra ';' after member function definition`| |
3648 | +---------------------------------------------------------------------------------+ |
3649 | |
3650 | |
3651 | -Wextra-tokens |
3652 | -------------- |
3653 | This diagnostic is enabled by default. |
3654 | |
3655 | **Diagnostic text:** |
3656 | |
3657 | +------------------------------------------------------------------------------------------------------------+ |
3658 | |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of #`:placeholder:`A` |nbsp| :diagtext:`directive`| |
3659 | +------------------------------------------------------------------------------------------------------------+ |
3660 | |
3661 | +-------------------------------------------------------------------------------------------------------------------------------+ |
3662 | |:warning:`warning:` |nbsp| :diagtext:`extra tokens at the end of '#pragma omp` |nbsp| :placeholder:`A`:diagtext:`' are ignored`| |
3663 | +-------------------------------------------------------------------------------------------------------------------------------+ |
3664 | |
3665 | |
3666 | -Wfallback |
3667 | ---------- |
3668 | This diagnostic is enabled by default. |
3669 | |
3670 | **Diagnostic text:** |
3671 | |
3672 | +------------------------------------------------------------------------------+ |
3673 | |:warning:`warning:` |nbsp| :diagtext:`falling back to` |nbsp| :placeholder:`A`| |
3674 | +------------------------------------------------------------------------------+ |
3675 | |
3676 | |
3677 | -Wflag-enum |
3678 | ----------- |
3679 | This diagnostic is enabled by default. |
3680 | |
3681 | **Diagnostic text:** |
3682 | |
3683 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3684 | |:warning:`warning:` |nbsp| :diagtext:`enumeration value` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is out of range of flags in enumeration type` |nbsp| :placeholder:`B`| |
3685 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3686 | |
3687 | |
3688 | -Wflexible-array-extensions |
3689 | --------------------------- |
3690 | **Diagnostic text:** |
3691 | |
3692 | +-------------------------------------------------------------------------------------------------------------------------------+ |
3693 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be used as an array element due to flexible array member`| |
3694 | +-------------------------------------------------------------------------------------------------------------------------------+ |
3695 | |
3696 | +-------------------------------------------------------------------------------------------------------------------------+ |
3697 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may not be nested in a struct due to flexible array member`| |
3698 | +-------------------------------------------------------------------------------------------------------------------------+ |
3699 | |
3700 | |
3701 | -Wfloat-conversion |
3702 | ------------------ |
3703 | Also controls `-Wfloat-overflow-conversion`_, `-Wfloat-zero-conversion`_. |
3704 | |
3705 | **Diagnostic text:** |
3706 | |
3707 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3708 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into integer:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
3709 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3710 | |
3711 | |
3712 | -Wfloat-equal |
3713 | ------------- |
3714 | **Diagnostic text:** |
3715 | |
3716 | +---------------------------------------------------------------------------------------+ |
3717 | |:warning:`warning:` |nbsp| :diagtext:`comparing floating point with == or != is unsafe`| |
3718 | +---------------------------------------------------------------------------------------+ |
3719 | |
3720 | |
3721 | -Wfloat-overflow-conversion |
3722 | --------------------------- |
3723 | **Diagnostic text:** |
3724 | |
3725 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3726 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of out of range value from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| |
3727 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3728 | |
3729 | |
3730 | -Wfloat-zero-conversion |
3731 | ----------------------- |
3732 | **Diagnostic text:** |
3733 | |
3734 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3735 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes non-zero value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| |
3736 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3737 | |
3738 | |
3739 | -Wfor-loop-analysis |
3740 | ------------------- |
3741 | **Diagnostic text:** |
3742 | |
3743 | +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ |
3744 | |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+-----------------------+| |nbsp| :diagtext:`both in the loop header and in the loop body`| |
3745 | | ||:diagtext:`decremented`|| | |
3746 | | |+-----------------------+| | |
3747 | | ||:diagtext:`incremented`|| | |
3748 | | |+-----------------------+| | |
3749 | +-----------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------+ |
3750 | |
3751 | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ |
3752 | |:warning:`warning:` |nbsp| :diagtext:`variable`|+----------------------------------------------------------------------------------------------------------------------------------------------------------+| |nbsp| :diagtext:`used in loop condition not modified in loop body`| |
3753 | | ||:diagtext:`s` || | |
3754 | | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | |
3755 | | ||+------------------------+ || | |
3756 | | ||| |nbsp| :placeholder:`B`| || | |
3757 | | ||+------------------------+ || | |
3758 | | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | |
3759 | | ||+------------------------------------------------------------------------------------+ || | |
3760 | | |||:diagtext:`s` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C`| || | |
3761 | | ||+------------------------------------------------------------------------------------+ || | |
3762 | | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | |
3763 | | ||+-------------------------------------------------------------------------------------------------------------------+ || | |
3764 | | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D`| || | |
3765 | | ||+-------------------------------------------------------------------------------------------------------------------+ || | |
3766 | | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | |
3767 | | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | |
3768 | | |||:diagtext:`s` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`, and` |nbsp| :placeholder:`E`||| | |
3769 | | ||+--------------------------------------------------------------------------------------------------------------------------------------------------------+|| | |
3770 | | |+----------------------------------------------------------------------------------------------------------------------------------------------------------+| | |
3771 | +-----------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ |
3772 | |
3773 | |
3774 | -Wformat |
3775 | -------- |
3776 | This diagnostic is enabled by default. |
3777 | |
3778 | Also controls `-Wformat-extra-args`_, `-Wformat-invalid-specifier`_, `-Wformat-security`_, `-Wformat-y2k`_, `-Wformat-zero-length`_, `-Wnonnull`_. |
3779 | |
3780 | **Diagnostic text:** |
3781 | |
3782 | +-------------------------------------------------------------------------------------+ |
3783 | |:warning:`warning:` |nbsp| :diagtext:`using '%%P' format specifier without precision`| |
3784 | +-------------------------------------------------------------------------------------+ |
3785 | |
3786 | +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3787 | |:warning:`warning:` |nbsp| |+--------------------------------------------+| |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' should not be used as format arguments; add an explicit cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`instead`| |
3788 | | ||:diagtext:`values of type` || | |
3789 | | |+--------------------------------------------+| | |
3790 | | ||:diagtext:`enum values with underlying type`|| | |
3791 | | |+--------------------------------------------+| | |
3792 | +---------------------------+----------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3793 | |
3794 | +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ |
3795 | |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| |
3796 | | ||:diagtext:`type` || | |
3797 | | |+---------------------------+| | |
3798 | | ||:diagtext:`underlying type`|| | |
3799 | | |+---------------------------+| | |
3800 | +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ |
3801 | |
3802 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
3803 | |:warning:`warning:` |nbsp| :diagtext:`using '`:placeholder:`A`:diagtext:`' format specifier annotation outside of os\_log()/os\_trace()`| |
3804 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
3805 | |
3806 | +-----------------------------------------------------------------------------+-----------------------------+ |
3807 | |:warning:`warning:` |nbsp| :diagtext:`invalid position specified for` |nbsp| |+---------------------------+| |
3808 | | ||:diagtext:`field width` || |
3809 | | |+---------------------------+| |
3810 | | ||:diagtext:`field precision`|| |
3811 | | |+---------------------------+| |
3812 | +-----------------------------------------------------------------------------+-----------------------------+ |
3813 | |
3814 | +----------------------------------------------------------------------------------------------------------+ |
3815 | |:warning:`warning:` |nbsp| :diagtext:`cannot mix positional and non-positional arguments in format string`| |
3816 | +----------------------------------------------------------------------------------------------------------+ |
3817 | |
3818 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3819 | |:warning:`warning:` |nbsp| :diagtext:`length modifier '`:placeholder:`A`:diagtext:`' results in undefined behavior or no effect with '`:placeholder:`B`:diagtext:`' conversion specifier`| |
3820 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3821 | |
3822 | +--------------------------------------------------------------------------------+ |
3823 | |:warning:`warning:` |nbsp| :diagtext:`format string should not be a wide string`| |
3824 | +--------------------------------------------------------------------------------+ |
3825 | |
3826 | +-------------------------------------------------------------------------------------------------------+ |
3827 | |:warning:`warning:` |nbsp| :diagtext:`position arguments in format strings start counting at 1 (not 0)`| |
3828 | +-------------------------------------------------------------------------------------------------------+ |
3829 | |
3830 | +------------------------------------------------------------+ |
3831 | |:warning:`warning:` |nbsp| :diagtext:`format string missing`| |
3832 | +------------------------------------------------------------+ |
3833 | |
3834 | +----------------------------------------------------------------------------------------------------------------------------------+ |
3835 | |:warning:`warning:` |nbsp| :diagtext:`object format flags cannot be used with '`:placeholder:`A`:diagtext:`' conversion specifier`| |
3836 | +----------------------------------------------------------------------------------------------------------------------------------+ |
3837 | |
3838 | +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ |
3839 | |:warning:`warning:` |nbsp| :diagtext:`'`|+---------------+|:diagtext:`' specified field` |nbsp| |+---------------------+| |nbsp| :diagtext:`is missing a matching 'int' argument`| |
3840 | | ||:diagtext:`\*` || ||:diagtext:`width` || | |
3841 | | |+---------------+| |+---------------------+| | |
3842 | | ||:diagtext:`.\*`|| ||:diagtext:`precision`|| | |
3843 | | |+---------------+| |+---------------------+| | |
3844 | +----------------------------------------+-----------------+-------------------------------------+-----------------------+--------------------------------------------------------+ |
3845 | |
3846 | +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ |
3847 | |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| |+---------------------+| |nbsp| :diagtext:`should have type` |nbsp| :placeholder:`B`:diagtext:`, but argument has type` |nbsp| :placeholder:`C`| |
3848 | | ||:diagtext:`width` || | |
3849 | | |+---------------------+| | |
3850 | | ||:diagtext:`precision`|| | |
3851 | | |+---------------------+| | |
3852 | +----------------------------------------------------+-----------------------+-----------------------------------------------------------------------------------------------------------------------+ |
3853 | |
3854 | +-----------------------------------------------------------------+ |
3855 | |:warning:`warning:` |nbsp| :diagtext:`missing object format flag`| |
3856 | +-----------------------------------------------------------------+ |
3857 | |
3858 | +------------------------------------------------------------------------------------------+ |
3859 | |:warning:`warning:` |nbsp| :diagtext:`format string contains '\\0' within the string body`| |
3860 | +------------------------------------------------------------------------------------------+ |
3861 | |
3862 | +---------------------------------------------------------------------------+ |
3863 | |:warning:`warning:` |nbsp| :diagtext:`format string is not null-terminated`| |
3864 | +---------------------------------------------------------------------------+ |
3865 | |
3866 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
3867 | |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' is ignored when flag '`:placeholder:`B`:diagtext:`' is present`| |
3868 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
3869 | |
3870 | +------------------------------------------------------------------+ |
3871 | |:warning:`warning:` |nbsp| :diagtext:`incomplete format specifier`| |
3872 | +------------------------------------------------------------------+ |
3873 | |
3874 | +--------------------------------------------------------------------------------+ |
3875 | |:warning:`warning:` |nbsp| :diagtext:`more '%%' conversions than data arguments`| |
3876 | +--------------------------------------------------------------------------------+ |
3877 | |
3878 | +-------------------------------------------------------------------------------------------------------+ |
3879 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not a valid object format flag`| |
3880 | +-------------------------------------------------------------------------------------------------------+ |
3881 | |
3882 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3883 | |:warning:`warning:` |nbsp| :diagtext:`flag '`:placeholder:`A`:diagtext:`' results in undefined behavior with '`:placeholder:`B`:diagtext:`' conversion specifier`| |
3884 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3885 | |
3886 | +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ |
3887 | |:warning:`warning:` |nbsp| |+-----------------------+| |nbsp| :diagtext:`used with '`:placeholder:`B`:diagtext:`' conversion specifier, resulting in undefined behavior`| |
3888 | | ||:diagtext:`field width`|| | |
3889 | | |+-----------------------+| | |
3890 | | ||:diagtext:`precision` || | |
3891 | | |+-----------------------+| | |
3892 | +---------------------------+-------------------------+------------------------------------------------------------------------------------------------------------------+ |
3893 | |
3894 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3895 | |:warning:`warning:` |nbsp| :diagtext:`data argument position '`:placeholder:`A`:diagtext:`' exceeds the number of data arguments (`:placeholder:`B`:diagtext:`)`| |
3896 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3897 | |
3898 | +----------------------------------------------------------------------------------------+ |
3899 | |:warning:`warning:` |nbsp| :diagtext:`zero field width in scanf format string is unused`| |
3900 | +----------------------------------------------------------------------------------------+ |
3901 | |
3902 | +----------------------------------------------------------------------------------------+ |
3903 | |:warning:`warning:` |nbsp| :diagtext:`no closing '\]' for '%%\[' in scanf format string`| |
3904 | +----------------------------------------------------------------------------------------+ |
3905 | |
3906 | |
3907 | -Wformat-extra-args |
3908 | ------------------- |
3909 | This diagnostic is enabled by default. |
3910 | |
3911 | **Diagnostic text:** |
3912 | |
3913 | +------------------------------------------------------------------------------+ |
3914 | |:warning:`warning:` |nbsp| :diagtext:`data argument not used by format string`| |
3915 | +------------------------------------------------------------------------------+ |
3916 | |
3917 | |
3918 | -Wformat-invalid-specifier |
3919 | -------------------------- |
3920 | This diagnostic is enabled by default. |
3921 | |
3922 | **Diagnostic text:** |
3923 | |
3924 | +--------------------------------------------------------------------------------------------------+ |
3925 | |:warning:`warning:` |nbsp| :diagtext:`invalid conversion specifier '`:placeholder:`A`:diagtext:`'`| |
3926 | +--------------------------------------------------------------------------------------------------+ |
3927 | |
3928 | |
3929 | -Wformat-non-iso |
3930 | ---------------- |
3931 | **Diagnostic text:** |
3932 | |
3933 | +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ |
3934 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`'` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`is not supported by ISO C`| |
3935 | | ||:diagtext:`length modifier` || | |
3936 | | |+--------------------------------+| | |
3937 | | ||:diagtext:`conversion specifier`|| | |
3938 | | |+--------------------------------+| | |
3939 | +-----------------------------------------------------------------------------+----------------------------------+---------------------------------------------+ |
3940 | |
3941 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3942 | |:warning:`warning:` |nbsp| :diagtext:`using length modifier '`:placeholder:`A`:diagtext:`' with conversion specifier '`:placeholder:`B`:diagtext:`' is not supported by ISO C`| |
3943 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
3944 | |
3945 | +--------------------------------------------------------------------------------------+ |
3946 | |:warning:`warning:` |nbsp| :diagtext:`positional arguments are not supported by ISO C`| |
3947 | +--------------------------------------------------------------------------------------+ |
3948 | |
3949 | |
3950 | -Wformat-nonliteral |
3951 | ------------------- |
3952 | **Diagnostic text:** |
3953 | |
3954 | +----------------------------------------------------------------------------+ |
3955 | |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal`| |
3956 | +----------------------------------------------------------------------------+ |
3957 | |
3958 | |
3959 | -Wformat-pedantic |
3960 | ----------------- |
3961 | **Diagnostic text:** |
3962 | |
3963 | +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ |
3964 | |:warning:`warning:` |nbsp| :diagtext:`format specifies type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`but the argument has` |nbsp| |+---------------------------+| |nbsp| :placeholder:`B`| |
3965 | | ||:diagtext:`type` || | |
3966 | | |+---------------------------+| | |
3967 | | ||:diagtext:`underlying type`|| | |
3968 | | |+---------------------------+| | |
3969 | +------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+------------------------+ |
3970 | |
3971 | |
3972 | -Wformat-security |
3973 | ----------------- |
3974 | This diagnostic is enabled by default. |
3975 | |
3976 | **Diagnostic text:** |
3977 | |
3978 | +---------------------------------------------------------------------------------------------------+ |
3979 | |:warning:`warning:` |nbsp| :diagtext:`format string is not a string literal (potentially insecure)`| |
3980 | +---------------------------------------------------------------------------------------------------+ |
3981 | |
3982 | |
3983 | -Wformat-y2k |
3984 | ------------ |
3985 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
3986 | |
3987 | -Wformat-zero-length |
3988 | -------------------- |
3989 | This diagnostic is enabled by default. |
3990 | |
3991 | **Diagnostic text:** |
3992 | |
3993 | +-------------------------------------------------------------+ |
3994 | |:warning:`warning:` |nbsp| :diagtext:`format string is empty`| |
3995 | +-------------------------------------------------------------+ |
3996 | |
3997 | |
3998 | -Wformat=2 |
3999 | ---------- |
4000 | Some of the diagnostics controlled by this flag are enabled by default. |
4001 | |
4002 | Controls `-Wformat-nonliteral`_, `-Wformat-security`_, `-Wformat-y2k`_. |
4003 | |
4004 | |
4005 | -Wfour-char-constants |
4006 | --------------------- |
4007 | **Diagnostic text:** |
4008 | |
4009 | +-------------------------------------------------------------------------+ |
4010 | |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| |
4011 | +-------------------------------------------------------------------------+ |
4012 | |
4013 | |
4014 | -Wframe-larger-than= |
4015 | -------------------- |
4016 | This diagnostic is enabled by default. |
4017 | |
4018 | **Diagnostic text:** |
4019 | |
4020 | The text of this diagnostic is not controlled by Clang. |
4021 | |
4022 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
4023 | |:warning:`warning:` |nbsp| :diagtext:`stack frame size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bytes in` |nbsp| :placeholder:`B`| |
4024 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
4025 | |
4026 | |
4027 | -Wfunction-def-in-objc-container |
4028 | -------------------------------- |
4029 | This diagnostic is enabled by default. |
4030 | |
4031 | **Diagnostic text:** |
4032 | |
4033 | +--------------------------------------------------------------------------------------------------------+ |
4034 | |:warning:`warning:` |nbsp| :diagtext:`function definition inside an Objective-C container is deprecated`| |
4035 | +--------------------------------------------------------------------------------------------------------+ |
4036 | |
4037 | |
4038 | -Wfuture-compat |
4039 | --------------- |
4040 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
4041 | |
4042 | -Wgcc-compat |
4043 | ------------ |
4044 | Some of the diagnostics controlled by this flag are enabled by default. |
4045 | |
4046 | **Diagnostic text:** |
4047 | |
4048 | +--------------------------------------------------------------------------+ |
4049 | |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| |
4050 | +--------------------------------------------------------------------------+ |
4051 | |
4052 | +------------------------------------------------------------------------+ |
4053 | |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| |
4054 | +------------------------------------------------------------------------+ |
4055 | |
4056 | +-----------------------------------------------------------------------------------------------+ |
4057 | |:warning:`warning:` |nbsp| :diagtext:`\_\_final is a GNU extension, consider using C++11 final`| |
4058 | +-----------------------------------------------------------------------------------------------+ |
4059 | |
4060 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4061 | |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute in this position on a function definition`| |
4062 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4063 | |
4064 | +---------------------------------------------------------------------------------------+ |
4065 | |:warning:`warning:` |nbsp| :diagtext:`'break' is bound to loop, GCC binds it to switch`| |
4066 | +---------------------------------------------------------------------------------------+ |
4067 | |
4068 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
4069 | |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier`| |
4070 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
4071 | |
4072 | +-----------------------------------------------------------------------------------------------------------------+ |
4073 | |:warning:`warning:` |nbsp| :diagtext:`GCC does not allow an attribute in this position on a function declaration`| |
4074 | +-----------------------------------------------------------------------------------------------------------------+ |
4075 | |
4076 | +----------------------------------------------------------------------------------------------------------------------------------+ |
4077 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is bound to current loop, GCC binds it to the enclosing loop`| |
4078 | +----------------------------------------------------------------------------------------------------------------------------------+ |
4079 | |
4080 | |
4081 | -Wglobal-constructors |
4082 | --------------------- |
4083 | **Diagnostic text:** |
4084 | |
4085 | +--------------------------------------------------------------------------------+ |
4086 | |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global constructor`| |
4087 | +--------------------------------------------------------------------------------+ |
4088 | |
4089 | +-------------------------------------------------------------------------------+ |
4090 | |:warning:`warning:` |nbsp| :diagtext:`declaration requires a global destructor`| |
4091 | +-------------------------------------------------------------------------------+ |
4092 | |
4093 | |
4094 | -Wgnu |
4095 | ----- |
4096 | Some of the diagnostics controlled by this flag are enabled by default. |
4097 | |
4098 | Controls `-Wgnu-alignof-expression`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-designator`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-static-float-init`_, `-Wgnu-string-literal-operator-template`_, `-Wgnu-union-cast`_, `-Wgnu-variable-sized-type-not-at-end`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wredeclared-class-member`_, `-Wvla-extension`_, `-Wzero-length-array`_. |
4099 | |
4100 | |
4101 | -Wgnu-alignof-expression |
4102 | ------------------------ |
4103 | This diagnostic is enabled by default. |
4104 | |
4105 | **Diagnostic text:** |
4106 | |
4107 | +----------------------------------------------------------------------------------------------------------+ |
4108 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`applied to an expression is a GNU extension`| |
4109 | +----------------------------------------------------------------------------------------------------------+ |
4110 | |
4111 | |
4112 | -Wgnu-anonymous-struct |
4113 | ---------------------- |
4114 | **Diagnostic text:** |
4115 | |
4116 | +----------------------------------------------------------------------------+ |
4117 | |:warning:`warning:` |nbsp| :diagtext:`anonymous structs are a GNU extension`| |
4118 | +----------------------------------------------------------------------------+ |
4119 | |
4120 | |
4121 | -Wgnu-array-member-paren-init |
4122 | ----------------------------- |
4123 | This diagnostic is an error by default, but the flag ``-Wno-gnu-array-member-paren-init`` can be used to disable the error. |
4124 | |
4125 | **Diagnostic text:** |
4126 | |
4127 | +----------------------------------------------------------------------------------------------------+ |
4128 | |:error:`error:` |nbsp| :diagtext:`parenthesized initialization of a member array is a GNU extension`| |
4129 | +----------------------------------------------------------------------------------------------------+ |
4130 | |
4131 | |
4132 | -Wgnu-auto-type |
4133 | --------------- |
4134 | **Diagnostic text:** |
4135 | |
4136 | +--------------------------------------------------------------------------+ |
4137 | |:warning:`warning:` |nbsp| :diagtext:`'\_\_auto\_type' is a GNU extension`| |
4138 | +--------------------------------------------------------------------------+ |
4139 | |
4140 | |
4141 | -Wgnu-binary-literal |
4142 | -------------------- |
4143 | **Diagnostic text:** |
4144 | |
4145 | +----------------------------------------------------------------------------------+ |
4146 | |:warning:`warning:` |nbsp| :diagtext:`binary integer literals are a GNU extension`| |
4147 | +----------------------------------------------------------------------------------+ |
4148 | |
4149 | |
4150 | -Wgnu-case-range |
4151 | ---------------- |
4152 | **Diagnostic text:** |
4153 | |
4154 | +----------------------------------------------------------------------+ |
4155 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU case range extension`| |
4156 | +----------------------------------------------------------------------+ |
4157 | |
4158 | |
4159 | -Wgnu-complex-integer |
4160 | --------------------- |
4161 | **Diagnostic text:** |
4162 | |
4163 | +--------------------------------------------------------------------------------+ |
4164 | |:warning:`warning:` |nbsp| :diagtext:`complex integer types are a GNU extension`| |
4165 | +--------------------------------------------------------------------------------+ |
4166 | |
4167 | |
4168 | -Wgnu-compound-literal-initializer |
4169 | ---------------------------------- |
4170 | **Diagnostic text:** |
4171 | |
4172 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
4173 | |:warning:`warning:` |nbsp| :diagtext:`initialization of an array` |nbsp| :diagtext:`from a compound literal` |nbsp| :diagtext:`is a GNU extension`| |
4174 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
4175 | |
4176 | |
4177 | -Wgnu-conditional-omitted-operand |
4178 | --------------------------------- |
4179 | **Diagnostic text:** |
4180 | |
4181 | +--------------------------------------------------------------------------------------------------------------+ |
4182 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU ?: conditional expression extension, omitting middle operand`| |
4183 | +--------------------------------------------------------------------------------------------------------------+ |
4184 | |
4185 | |
4186 | -Wgnu-designator |
4187 | ---------------- |
4188 | Some of the diagnostics controlled by this flag are enabled by default. |
4189 | |
4190 | **Diagnostic text:** |
4191 | |
4192 | +-----------------------------------------------------------------------+ |
4193 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| |
4194 | +-----------------------------------------------------------------------+ |
4195 | |
4196 | +-------------------------------------------------------------------------------------+ |
4197 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU 'missing =' extension in designator`| |
4198 | +-------------------------------------------------------------------------------------+ |
4199 | |
4200 | +--------------------------------------------------------------------------------------+ |
4201 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU old-style field designator extension`| |
4202 | +--------------------------------------------------------------------------------------+ |
4203 | |
4204 | |
4205 | -Wgnu-empty-initializer |
4206 | ----------------------- |
4207 | **Diagnostic text:** |
4208 | |
4209 | +-----------------------------------------------------------------------------+ |
4210 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU empty initializer extension`| |
4211 | +-----------------------------------------------------------------------------+ |
4212 | |
4213 | |
4214 | -Wgnu-empty-struct |
4215 | ------------------ |
4216 | **Diagnostic text:** |
4217 | |
4218 | +----------------------------------------------------+--------------------+--------------------------------------+ |
4219 | |:warning:`warning:` |nbsp| :diagtext:`empty` |nbsp| |+------------------+| |nbsp| :diagtext:`is a GNU extension`| |
4220 | | ||:diagtext:`struct`|| | |
4221 | | |+------------------+| | |
4222 | | ||:diagtext:`union` || | |
4223 | | |+------------------+| | |
4224 | +----------------------------------------------------+--------------------+--------------------------------------+ |
4225 | |
4226 | +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ |
4227 | |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a GNU extension`| |
4228 | | ||:diagtext:`struct` || | |
4229 | | |+---------------------+| | |
4230 | | ||:diagtext:`interface`|| | |
4231 | | |+---------------------+| | |
4232 | | ||:diagtext:`union` || | |
4233 | | |+---------------------+| | |
4234 | | ||:diagtext:`class` || | |
4235 | | |+---------------------+| | |
4236 | | ||:diagtext:`enum` || | |
4237 | | |+---------------------+| | |
4238 | +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------+ |
4239 | |
4240 | +---------------------------+--------------------+------------------------------------------------------------+ |
4241 | |:warning:`warning:` |nbsp| |+------------------+| |nbsp| :diagtext:`without named members is a GNU extension`| |
4242 | | ||:diagtext:`struct`|| | |
4243 | | |+------------------+| | |
4244 | | ||:diagtext:`union` || | |
4245 | | |+------------------+| | |
4246 | +---------------------------+--------------------+------------------------------------------------------------+ |
4247 | |
4248 | |
4249 | -Wgnu-flexible-array-initializer |
4250 | -------------------------------- |
4251 | **Diagnostic text:** |
4252 | |
4253 | +---------------------------------------------------------------------------------------+ |
4254 | |:warning:`warning:` |nbsp| :diagtext:`flexible array initialization is a GNU extension`| |
4255 | +---------------------------------------------------------------------------------------+ |
4256 | |
4257 | |
4258 | -Wgnu-flexible-array-union-member |
4259 | --------------------------------- |
4260 | **Diagnostic text:** |
4261 | |
4262 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
4263 | |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a GNU extension`| |
4264 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
4265 | |
4266 | |
4267 | -Wgnu-folding-constant |
4268 | ---------------------- |
4269 | **Diagnostic text:** |
4270 | |
4271 | +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ |
4272 | |:warning:`warning:` |nbsp| :diagtext:`expression is not an` |nbsp| |+--------------------+| |nbsp| :diagtext:`constant expression; folding it to a constant is a GNU extension`| |
4273 | | ||:diagtext:`integer` || | |
4274 | | |+--------------------+| | |
4275 | | ||:diagtext:`integral`|| | |
4276 | | |+--------------------+| | |
4277 | +-------------------------------------------------------------------+----------------------+------------------------------------------------------------------------------------+ |
4278 | |
4279 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4280 | |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension`| |
4281 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4282 | |
4283 | +-----------------------------------------------------------------------------------------------------+ |
4284 | |:warning:`warning:` |nbsp| :diagtext:`variable length array folded to constant array as an extension`| |
4285 | +-----------------------------------------------------------------------------------------------------+ |
4286 | |
4287 | |
4288 | -Wgnu-imaginary-constant |
4289 | ------------------------ |
4290 | **Diagnostic text:** |
4291 | |
4292 | +------------------------------------------------------------------------------+ |
4293 | |:warning:`warning:` |nbsp| :diagtext:`imaginary constants are a GNU extension`| |
4294 | +------------------------------------------------------------------------------+ |
4295 | |
4296 | |
4297 | -Wgnu-include-next |
4298 | ------------------ |
4299 | **Diagnostic text:** |
4300 | |
4301 | +-----------------------------------------------------------------------------+ |
4302 | |:warning:`warning:` |nbsp| :diagtext:`#include\_next is a language extension`| |
4303 | +-----------------------------------------------------------------------------+ |
4304 | |
4305 | |
4306 | -Wgnu-label-as-value |
4307 | -------------------- |
4308 | **Diagnostic text:** |
4309 | |
4310 | +----------------------------------------------------------------------------+ |
4311 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU address-of-label extension`| |
4312 | +----------------------------------------------------------------------------+ |
4313 | |
4314 | +-------------------------------------------------------------------------+ |
4315 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU indirect-goto extension`| |
4316 | +-------------------------------------------------------------------------+ |
4317 | |
4318 | |
4319 | -Wgnu-redeclared-enum |
4320 | --------------------- |
4321 | **Diagnostic text:** |
4322 | |
4323 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
4324 | |:warning:`warning:` |nbsp| :diagtext:`redeclaration of already-defined enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| |
4325 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
4326 | |
4327 | |
4328 | -Wgnu-statement-expression |
4329 | -------------------------- |
4330 | **Diagnostic text:** |
4331 | |
4332 | +--------------------------------------------------------------------------------+ |
4333 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU statement expression extension`| |
4334 | +--------------------------------------------------------------------------------+ |
4335 | |
4336 | |
4337 | -Wgnu-static-float-init |
4338 | ----------------------- |
4339 | This diagnostic is enabled by default. |
4340 | |
4341 | **Diagnostic text:** |
4342 | |
4343 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4344 | |:warning:`warning:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a GNU extension`| |
4345 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4346 | |
4347 | |
4348 | -Wgnu-string-literal-operator-template |
4349 | -------------------------------------- |
4350 | This diagnostic is enabled by default. |
4351 | |
4352 | **Diagnostic text:** |
4353 | |
4354 | +--------------------------------------------------------------------------------------------+ |
4355 | |:warning:`warning:` |nbsp| :diagtext:`string literal operator templates are a GNU extension`| |
4356 | +--------------------------------------------------------------------------------------------+ |
4357 | |
4358 | |
4359 | -Wgnu-union-cast |
4360 | ---------------- |
4361 | **Diagnostic text:** |
4362 | |
4363 | +----------------------------------------------------------------------------+ |
4364 | |:warning:`warning:` |nbsp| :diagtext:`cast to union type is a GNU extension`| |
4365 | +----------------------------------------------------------------------------+ |
4366 | |
4367 | |
4368 | -Wgnu-variable-sized-type-not-at-end |
4369 | ------------------------------------ |
4370 | This diagnostic is enabled by default. |
4371 | |
4372 | **Diagnostic text:** |
4373 | |
4374 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4375 | |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not at the end of a struct or class is a GNU extension`| |
4376 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4377 | |
4378 | |
4379 | -Wgnu-zero-line-directive |
4380 | ------------------------- |
4381 | **Diagnostic text:** |
4382 | |
4383 | +--------------------------------------------------------------------------------------------+ |
4384 | |:warning:`warning:` |nbsp| :diagtext:`#line directive with zero argument is a GNU extension`| |
4385 | +--------------------------------------------------------------------------------------------+ |
4386 | |
4387 | |
4388 | -Wgnu-zero-variadic-macro-arguments |
4389 | ----------------------------------- |
4390 | **Diagnostic text:** |
4391 | |
4392 | +---------------------------------------------------------------------------------------------------------------+ |
4393 | |:warning:`warning:` |nbsp| :diagtext:`must specify at least one argument for '...' parameter of variadic macro`| |
4394 | +---------------------------------------------------------------------------------------------------------------+ |
4395 | |
4396 | +---------------------------------------------------------------------------------------------------+ |
4397 | |:warning:`warning:` |nbsp| :diagtext:`token pasting of ',' and \_\_VA\_ARGS\_\_ is a GNU extension`| |
4398 | +---------------------------------------------------------------------------------------------------+ |
4399 | |
4400 | |
4401 | -Wheader-guard |
4402 | -------------- |
4403 | This diagnostic is enabled by default. |
4404 | |
4405 | **Diagnostic text:** |
4406 | |
4407 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
4408 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is used as a header guard here, followed by #define of a different macro`| |
4409 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
4410 | |
4411 | |
4412 | -Wheader-hygiene |
4413 | ---------------- |
4414 | **Diagnostic text:** |
4415 | |
4416 | +--------------------------------------------------------------------------------------------+ |
4417 | |:warning:`warning:` |nbsp| :diagtext:`using namespace directive in global context in header`| |
4418 | +--------------------------------------------------------------------------------------------+ |
4419 | |
4420 | |
4421 | -Widiomatic-parentheses |
4422 | ----------------------- |
4423 | **Diagnostic text:** |
4424 | |
4425 | +-----------------------------------------------------------------------------------------------------------+ |
4426 | |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| |
4427 | +-----------------------------------------------------------------------------------------------------------+ |
4428 | |
4429 | |
4430 | -Wignored-attributes |
4431 | -------------------- |
4432 | This diagnostic is enabled by default. |
4433 | |
4434 | **Diagnostic text:** |
4435 | |
4436 | +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4437 | |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will always resolve to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`even if weak definition of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is overridden`| |
4438 | | ||:diagtext:`alias`|| | |
4439 | | |+-----------------+| | |
4440 | | ||:diagtext:`ifunc`|| | |
4441 | | |+-----------------+| | |
4442 | +---------------------------+-------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4443 | |
4444 | +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ |
4445 | |:warning:`warning:` |nbsp| |+-----------------+| |nbsp| :diagtext:`will not be in section '`:placeholder:`A`:diagtext:`' but in the same section as the` |nbsp| |+--------------------+| |
4446 | | ||:diagtext:`alias`|| ||:diagtext:`aliasee` || |
4447 | | |+-----------------+| |+--------------------+| |
4448 | | ||:diagtext:`ifunc`|| ||:diagtext:`resolver`|| |
4449 | | |+-----------------+| |+--------------------+| |
4450 | +---------------------------+-------------------+----------------------------------------------------------------------------------------------------------------+----------------------+ |
4451 | |
4452 | +----------------------------------------------------------------------+------------------------+-------------------------------------+ |
4453 | |:warning:`warning:` |nbsp| :diagtext:`'abi\_tag' attribute on` |nbsp| |+----------------------+| |nbsp| :diagtext:`namespace ignored`| |
4454 | | ||:diagtext:`non-inline`|| | |
4455 | | |+----------------------+| | |
4456 | | ||:diagtext:`anonymous` || | |
4457 | | |+----------------------+| | |
4458 | +----------------------------------------------------------------------+------------------------+-------------------------------------+ |
4459 | |
4460 | +-----------------------------------------------------------------------------------------------------------------------+ |
4461 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`after definition is ignored`| |
4462 | +-----------------------------------------------------------------------------------------------------------------------+ |
4463 | |
4464 | +--------------------------------------------------------------------------------------------------------------------------------+ |
4465 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied to instance variables or properties`| |
4466 | +--------------------------------------------------------------------------------------------------------------------------------+ |
4467 | |
4468 | +--------------------------------------------------------------------------------+ |
4469 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored`| |
4470 | +--------------------------------------------------------------------------------+ |
4471 | |
4472 | +--------------------------------------------------------------------------------------------------------------------------+ |
4473 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored for field of type` |nbsp| :placeholder:`B`| |
4474 | +--------------------------------------------------------------------------------------------------------------------------+ |
4475 | |
4476 | +---------------------------------------------------------------------------------------------------+ |
4477 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored on inline function`| |
4478 | +---------------------------------------------------------------------------------------------------+ |
4479 | |
4480 | +-------------------------------------------------------------------------------------------------------------------+ |
4481 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' attribute cannot be specified on a definition`| |
4482 | +-------------------------------------------------------------------------------------------------------------------+ |
4483 | |
4484 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4485 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it is not attached to a declaration`| |
4486 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4487 | |
4488 | +--------------------------------------------------------------------------------------------------------+ |
4489 | |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute applied to function with no pointer arguments`| |
4490 | +--------------------------------------------------------------------------------------------------------+ |
4491 | |
4492 | +-----------------------------------------------------------------------------------------------------+ |
4493 | |:warning:`warning:` |nbsp| :diagtext:`'nonnull' attribute when used on parameters takes no arguments`| |
4494 | +-----------------------------------------------------------------------------------------------------+ |
4495 | |
4496 | +--------------------------------------------------------------------------------------------------+ |
4497 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute ignored when parsing type`| |
4498 | +--------------------------------------------------------------------------------------------------+ |
4499 | |
4500 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4501 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to a pointer or reference (`:placeholder:`B` |nbsp| :diagtext:`is invalid)`| |
4502 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4503 | |
4504 | +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ |
4505 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to`|+----------------------------+| |nbsp| :diagtext:`pointer arguments`| |
4506 | | || || | |
4507 | | |+----------------------------+| | |
4508 | | || |nbsp| :diagtext:`constant`|| | |
4509 | | |+----------------------------+| | |
4510 | +----------------------------------------------------------------------------------------+------------------------------+-------------------------------------+ |
4511 | |
4512 | +------------------------------------------------------------------------------------+ |
4513 | |:warning:`warning:` |nbsp| :diagtext:`attribute declaration must precede definition`| |
4514 | +------------------------------------------------------------------------------------+ |
4515 | |
4516 | +------------------------------------------------------------------------------------------------------------------------+ |
4517 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers`| |
4518 | +------------------------------------------------------------------------------------------------------------------------+ |
4519 | |
4520 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
4521 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to return values that are pointers or references`| |
4522 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
4523 | |
4524 | +------------------------------------------------------------------------------------+ |
4525 | |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute requires named arguments`| |
4526 | +------------------------------------------------------------------------------------+ |
4527 | |
4528 | +-----------------------------------------------------------------------------------------------+-----------------------+ |
4529 | |:warning:`warning:` |nbsp| :diagtext:`'sentinel' attribute only supported for variadic` |nbsp| |+---------------------+| |
4530 | | ||:diagtext:`functions`|| |
4531 | | |+---------------------+| |
4532 | | ||:diagtext:`blocks` || |
4533 | | |+---------------------+| |
4534 | +-----------------------------------------------------------------------------------------------+-----------------------+ |
4535 | |
4536 | +------------------------------------------------------------------------------------------------------------------------+ |
4537 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute argument not supported:` |nbsp| :placeholder:`B`| |
4538 | +------------------------------------------------------------------------------------------------------------------------+ |
4539 | |
4540 | +---------------------------------------------------------------------------------+ |
4541 | |:warning:`warning:` |nbsp| :diagtext:`unknown visibility` |nbsp| :placeholder:`A`| |
4542 | +---------------------------------------------------------------------------------+ |
4543 | |
4544 | +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ |
4545 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to` |nbsp| |+------------------------------+| |nbsp| :diagtext:`without return value`| |
4546 | | ||:diagtext:`functions` || | |
4547 | | |+------------------------------+| | |
4548 | | ||:diagtext:`Objective-C method`|| | |
4549 | | |+------------------------------+| | |
4550 | +------------------------------------------------------------------------------------------------------------------------+--------------------------------+----------------------------------------+ |
4551 | |
4552 | +----------------------------------------------------------------------------------------------------+ |
4553 | |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on a field declaration`| |
4554 | +----------------------------------------------------------------------------------------------------+ |
4555 | |
4556 | +------------------------------------------------------------------------------------------------------------------------------+ |
4557 | |:warning:`warning:` |nbsp| :diagtext:`\_\_weak attribute cannot be specified on an automatic variable when ARC is not enabled`| |
4558 | +------------------------------------------------------------------------------------------------------------------------------+ |
4559 | |
4560 | +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+ |
4561 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------------------------------------------------------------------------------------------------+| |
4562 | | ||:diagtext:`functions` || |
4563 | | |+----------------------------------------------------------------------------------------------------------------+| |
4564 | | ||:diagtext:`unions` || |
4565 | | |+----------------------------------------------------------------------------------------------------------------+| |
4566 | | ||:diagtext:`variables and functions` || |
4567 | | |+----------------------------------------------------------------------------------------------------------------+| |
4568 | | ||:diagtext:`functions and global variables` || |
4569 | | |+----------------------------------------------------------------------------------------------------------------+| |
4570 | | ||:diagtext:`functions, variables, and Objective-C interfaces` || |
4571 | | |+----------------------------------------------------------------------------------------------------------------+| |
4572 | | ||:diagtext:`functions and methods` || |
4573 | | |+----------------------------------------------------------------------------------------------------------------+| |
4574 | | ||:diagtext:`parameters` || |
4575 | | |+----------------------------------------------------------------------------------------------------------------+| |
4576 | | ||:diagtext:`functions, methods and blocks` || |
4577 | | |+----------------------------------------------------------------------------------------------------------------+| |
4578 | | ||:diagtext:`functions, methods, and classes` || |
4579 | | |+----------------------------------------------------------------------------------------------------------------+| |
4580 | | ||:diagtext:`functions, methods, and parameters` || |
4581 | | |+----------------------------------------------------------------------------------------------------------------+| |
4582 | | ||:diagtext:`functions, methods, and global variables` || |
4583 | | |+----------------------------------------------------------------------------------------------------------------+| |
4584 | | ||:diagtext:`classes` || |
4585 | | |+----------------------------------------------------------------------------------------------------------------+| |
4586 | | ||:diagtext:`enums` || |
4587 | | |+----------------------------------------------------------------------------------------------------------------+| |
4588 | | ||:diagtext:`variables` || |
4589 | | |+----------------------------------------------------------------------------------------------------------------+| |
4590 | | ||:diagtext:`methods` || |
4591 | | |+----------------------------------------------------------------------------------------------------------------+| |
4592 | | ||:diagtext:`fields and global variables` || |
4593 | | |+----------------------------------------------------------------------------------------------------------------+| |
4594 | | ||:diagtext:`structs` || |
4595 | | |+----------------------------------------------------------------------------------------------------------------+| |
4596 | | ||:diagtext:`parameters and typedefs` || |
4597 | | |+----------------------------------------------------------------------------------------------------------------+| |
4598 | | ||:diagtext:`variables and typedefs` || |
4599 | | |+----------------------------------------------------------------------------------------------------------------+| |
4600 | | ||:diagtext:`thread-local variables` || |
4601 | | |+----------------------------------------------------------------------------------------------------------------+| |
4602 | | ||:diagtext:`variables and fields` || |
4603 | | |+----------------------------------------------------------------------------------------------------------------+| |
4604 | | ||:diagtext:`variables, data members and tag types` || |
4605 | | |+----------------------------------------------------------------------------------------------------------------+| |
4606 | | ||:diagtext:`types and namespaces` || |
4607 | | |+----------------------------------------------------------------------------------------------------------------+| |
4608 | | ||:diagtext:`Objective-C interfaces` || |
4609 | | |+----------------------------------------------------------------------------------------------------------------+| |
4610 | | ||:diagtext:`methods and properties` || |
4611 | | |+----------------------------------------------------------------------------------------------------------------+| |
4612 | | ||:diagtext:`functions, methods, and properties` || |
4613 | | |+----------------------------------------------------------------------------------------------------------------+| |
4614 | | ||:diagtext:`struct or union` || |
4615 | | |+----------------------------------------------------------------------------------------------------------------+| |
4616 | | ||:diagtext:`struct, union or class` || |
4617 | | |+----------------------------------------------------------------------------------------------------------------+| |
4618 | | ||:diagtext:`types` || |
4619 | | |+----------------------------------------------------------------------------------------------------------------+| |
4620 | | ||:diagtext:`Objective-C instance methods` || |
4621 | | |+----------------------------------------------------------------------------------------------------------------+| |
4622 | | ||:diagtext:`init methods of interface or class extension declarations` || |
4623 | | |+----------------------------------------------------------------------------------------------------------------+| |
4624 | | ||:diagtext:`variables, functions and classes` || |
4625 | | |+----------------------------------------------------------------------------------------------------------------+| |
4626 | | ||:diagtext:`functions, variables, classes, and Objective-C interfaces` || |
4627 | | |+----------------------------------------------------------------------------------------------------------------+| |
4628 | | ||:diagtext:`Objective-C protocols` || |
4629 | | |+----------------------------------------------------------------------------------------------------------------+| |
4630 | | ||:diagtext:`variables with static or thread storage duration` || |
4631 | | |+----------------------------------------------------------------------------------------------------------------+| |
4632 | | ||:diagtext:`functions, methods, properties, and global variables` || |
4633 | | |+----------------------------------------------------------------------------------------------------------------+| |
4634 | | ||:diagtext:`structs, unions, and typedefs` || |
4635 | | |+----------------------------------------------------------------------------------------------------------------+| |
4636 | | ||:diagtext:`structs and typedefs` || |
4637 | | |+----------------------------------------------------------------------------------------------------------------+| |
4638 | | ||:diagtext:`interface or protocol declarations` || |
4639 | | |+----------------------------------------------------------------------------------------------------------------+| |
4640 | | ||:diagtext:`kernel functions` || |
4641 | | |+----------------------------------------------------------------------------------------------------------------+| |
4642 | | ||:diagtext:`non-K&R-style functions` || |
4643 | | |+----------------------------------------------------------------------------------------------------------------+| |
4644 | | ||:diagtext:`variables, enums, fields and typedefs` || |
4645 | | |+----------------------------------------------------------------------------------------------------------------+| |
4646 | | ||:diagtext:`functions, methods, enums, and classes` || |
4647 | | |+----------------------------------------------------------------------------------------------------------------+| |
4648 | | ||:diagtext:`structs, classes, variables, functions, and inline namespaces` || |
4649 | | |+----------------------------------------------------------------------------------------------------------------+| |
4650 | | ||:diagtext:`variables, functions, methods, types, enumerations, enumerators, labels, and non-static data members`|| |
4651 | | |+----------------------------------------------------------------------------------------------------------------+| |
4652 | | ||:diagtext:`classes and enumerations` || |
4653 | | |+----------------------------------------------------------------------------------------------------------------+| |
4654 | | ||:diagtext:`named declarations` || |
4655 | | |+----------------------------------------------------------------------------------------------------------------+| |
4656 | +------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------+ |
4657 | |
4658 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4659 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to omitted return type`| |
4660 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4661 | |
4662 | +----------------------------------------------------------------------------------------------------------------------------+ |
4663 | |:warning:`warning:` |nbsp| :diagtext:`calling convention` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored for this target`| |
4664 | +----------------------------------------------------------------------------------------------------------------------------+ |
4665 | |
4666 | +-------------------------------------------------------------------------------------------------------------------+ |
4667 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on constructor/destructor`| |
4668 | +-------------------------------------------------------------------------------------------------------------------+ |
4669 | |
4670 | +--------------------------------------------------------------------------------------------------------------+ |
4671 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention ignored on variadic function`| |
4672 | +--------------------------------------------------------------------------------------------------------------+ |
4673 | |
4674 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
4675 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored, because it cannot be applied to a type`| |
4676 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
4677 | |
4678 | +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ |
4679 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is ignored, place it after "`|+---------------------+|:diagtext:`" to apply attribute to type declaration`| |
4680 | | ||:diagtext:`class` || | |
4681 | | |+---------------------+| | |
4682 | | ||:diagtext:`struct` || | |
4683 | | |+---------------------+| | |
4684 | | ||:diagtext:`interface`|| | |
4685 | | |+---------------------+| | |
4686 | | ||:diagtext:`union` || | |
4687 | | |+---------------------+| | |
4688 | | ||:diagtext:`enum` || | |
4689 | | |+---------------------+| | |
4690 | +------------------------------------------------------------------------------------------------------------------------+-----------------------+----------------------------------------------------+ |
4691 | |
4692 | +--------------------------------------------------------------------------------------------+ |
4693 | |:warning:`warning:` |nbsp| :diagtext:`'deprecated' attribute on anonymous namespace ignored`| |
4694 | +--------------------------------------------------------------------------------------------+ |
4695 | |
4696 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
4697 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared inline;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute ignored`| |
4698 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
4699 | |
4700 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
4701 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied with different parameters`| |
4702 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
4703 | |
4704 | +--------------------------------------------------------------------------------------------------------------+ |
4705 | |:warning:`warning:` |nbsp| :diagtext:`attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is already applied`| |
4706 | +--------------------------------------------------------------------------------------------------------------+ |
4707 | |
4708 | +------------------------------------------------------------------------------------------------+ |
4709 | |:warning:`warning:` |nbsp| :diagtext:`Objective-C GC does not allow weak variables on the stack`| |
4710 | +------------------------------------------------------------------------------------------------+ |
4711 | |
4712 | +-------------------------------------------------------------------------------------------------------------------------+ |
4713 | |:warning:`warning:` |nbsp| :diagtext:`'gnu\_inline' attribute requires function to be marked 'inline', attribute ignored`| |
4714 | +-------------------------------------------------------------------------------------------------------------------------+ |
4715 | |
4716 | +---------------------------------------------------------------------------+------------------------------------+ |
4717 | |:warning:`warning:` |nbsp| :diagtext:`inheritance model ignored on` |nbsp| |+----------------------------------+| |
4718 | | ||:diagtext:`primary template` || |
4719 | | |+----------------------------------+| |
4720 | | ||:diagtext:`partial specialization`|| |
4721 | | |+----------------------------------+| |
4722 | +---------------------------------------------------------------------------+------------------------------------+ |
4723 | |
4724 | +--------------------------------------------------------------------------------------------------------------+ |
4725 | |:warning:`warning:` |nbsp| :diagtext:`'internal\_linkage' attribute on a non-static local variable is ignored`| |
4726 | +--------------------------------------------------------------------------------------------------------------+ |
4727 | |
4728 | +--------------------------------------------------------------------------------------------+ |
4729 | |:warning:`warning:` |nbsp| :diagtext:`qualifiers after comma in declarator list are ignored`| |
4730 | +--------------------------------------------------------------------------------------------+ |
4731 | |
4732 | +-------------------------------------------------------------------------------------------------------------+----------------------------------+ |
4733 | |:warning:`warning:` |nbsp| :diagtext:`MIPS 'interrupt' attribute only applies to functions that have` |nbsp| |+--------------------------------+| |
4734 | | ||:diagtext:`no parameters` || |
4735 | | |+--------------------------------+| |
4736 | | ||:diagtext:`a 'void' return type`|| |
4737 | | |+--------------------------------+| |
4738 | +-------------------------------------------------------------------------------------------------------------+----------------------------------+ |
4739 | |
4740 | +---------------------------------------------------------------------------------------+ |
4741 | |:warning:`warning:` |nbsp| :diagtext:`unknown attribute '`:placeholder:`A`:diagtext:`'`| |
4742 | +---------------------------------------------------------------------------------------+ |
4743 | |
4744 | +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+ |
4745 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+---------------------------------+| |nbsp| :diagtext:`parameters`| |
4746 | | ||:diagtext:`Objective-C object` || | |
4747 | | |+---------------------------------+| | |
4748 | | ||:diagtext:`pointer` || | |
4749 | | |+---------------------------------+| | |
4750 | | ||:diagtext:`pointer-to-CF-pointer`|| | |
4751 | | |+---------------------------------+| | |
4752 | +------------------------------------------------------------------------------------------------+-----------------------------------+------------------------------+ |
4753 | |
4754 | +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ |
4755 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute only applies to` |nbsp| |+----------------------+| |nbsp| :diagtext:`that return` |nbsp| |+------------------------------------+| |
4756 | | ||:diagtext:`functions` || ||:diagtext:`an Objective-C object` || |
4757 | | |+----------------------+| |+------------------------------------+| |
4758 | | ||:diagtext:`methods` || ||:diagtext:`a pointer` || |
4759 | | |+----------------------+| |+------------------------------------+| |
4760 | | ||:diagtext:`properties`|| ||:diagtext:`a non-retainable pointer`|| |
4761 | | |+----------------------+| |+------------------------------------+| |
4762 | +------------------------------------------------------------------------------------------------+------------------------+---------------------------------------+--------------------------------------+ |
4763 | |
4764 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
4765 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is deprecated and ignored in OpenCL version` |nbsp| :placeholder:`B`| |
4766 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
4767 | |
4768 | +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ |
4769 | |:warning:`warning:` |nbsp| |+---------------------+| |nbsp| :diagtext:`of field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`(`:placeholder:`C` |nbsp| :diagtext:`bits) does not match the` |nbsp| |+---------------------+| |nbsp| :diagtext:`of the first field in transparent union; transparent\_union attribute ignored`| |
4770 | | ||:diagtext:`alignment`|| ||:diagtext:`alignment`|| | |
4771 | | |+---------------------+| |+---------------------+| | |
4772 | | ||:diagtext:`size` || ||:diagtext:`size` || | |
4773 | | |+---------------------+| |+---------------------+| | |
4774 | +---------------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+-------------------------------------------------------------------------------------------------+ |
4775 | |
4776 | +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ |
4777 | |:warning:`warning:` |nbsp| :diagtext:`first field of a transparent union cannot have` |nbsp| |+--------------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B`:diagtext:`; transparent\_union attribute ignored`| |
4778 | | ||:diagtext:`floating point`|| | |
4779 | | |+--------------------------+| | |
4780 | | ||:diagtext:`vector` || | |
4781 | | |+--------------------------+| | |
4782 | +---------------------------------------------------------------------------------------------+----------------------------+--------------------------------------------------------------------------------------------------+ |
4783 | |
4784 | +--------------------------------------------------------------------------------------------------------------------------------+ |
4785 | |:warning:`warning:` |nbsp| :diagtext:`transparent\_union attribute can only be applied to a union definition; attribute ignored`| |
4786 | +--------------------------------------------------------------------------------------------------------------------------------+ |
4787 | |
4788 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
4789 | |:warning:`warning:` |nbsp| :diagtext:`transparent union definition must contain at least one field; transparent\_union attribute ignored`| |
4790 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
4791 | |
4792 | +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ |
4793 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' only applies to` |nbsp| |+-----------------------------------------------+| |nbsp| :diagtext:`types; type here is` |nbsp| :placeholder:`C`| |
4794 | | ||:diagtext:`function` || | |
4795 | | |+-----------------------------------------------+| | |
4796 | | ||:diagtext:`pointer` || | |
4797 | | |+-----------------------------------------------+| | |
4798 | | ||:diagtext:`Objective-C object or block pointer`|| | |
4799 | | |+-----------------------------------------------+| | |
4800 | +---------------------------------------------------------------------------------------------+-------------------------------------------------+---------------------------------------------------------------+ |
4801 | |
4802 | +-------------------------------------------------------------------------------------------------------------------------+ |
4803 | |:warning:`warning:` |nbsp| :diagtext:`\_\_declspec attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not supported`| |
4804 | +-------------------------------------------------------------------------------------------------------------------------+ |
4805 | |
4806 | +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+ |
4807 | |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| |+-----------------------+|+--------------------------------+| |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' in the target attribute string`| |
4808 | | ||:diagtext:`unsupported`||| || | |
4809 | | |+-----------------------+|+--------------------------------+| | |
4810 | | ||:diagtext:`duplicate` ||| |nbsp| :diagtext:`architecture`|| | |
4811 | | |+-----------------------+|+--------------------------------+| | |
4812 | +-------------------------------------------------------+-------------------------+----------------------------------+---------------------------------------------------------------------------------+ |
4813 | |
4814 | |
4815 | -Wignored-optimization-argument |
4816 | ------------------------------- |
4817 | This diagnostic is enabled by default. |
4818 | |
4819 | **Diagnostic text:** |
4820 | |
4821 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
4822 | |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported for target '`:placeholder:`B`:diagtext:`'`| |
4823 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
4824 | |
4825 | +--------------------------------------------------------------------------------------------------------+ |
4826 | |:warning:`warning:` |nbsp| :diagtext:`optimization flag '`:placeholder:`A`:diagtext:`' is not supported`| |
4827 | +--------------------------------------------------------------------------------------------------------+ |
4828 | |
4829 | |
4830 | -Wignored-pragma-intrinsic |
4831 | -------------------------- |
4832 | This diagnostic is enabled by default. |
4833 | |
4834 | **Diagnostic text:** |
4835 | |
4836 | +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ |
4837 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not a recognized builtin`|+----------------------------------------------------------------------------+| |
4838 | | || || |
4839 | | |+----------------------------------------------------------------------------+| |
4840 | | ||:diagtext:`; consider including <intrin.h> to access non-builtin intrinsics`|| |
4841 | | |+----------------------------------------------------------------------------+| |
4842 | +------------------------------------------------------------------------------------------+------------------------------------------------------------------------------+ |
4843 | |
4844 | |
4845 | -Wignored-pragmas |
4846 | ----------------- |
4847 | This diagnostic is enabled by default. |
4848 | |
4849 | Also controls `-Wignored-pragma-intrinsic`_. |
4850 | |
4851 | **Diagnostic text:** |
4852 | |
4853 | +------------------------------------------------------------------------------+---------------------------+-----------------------+ |
4854 | |:warning:`warning:` |nbsp| :diagtext:`expected '=' following '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| |
4855 | | ||:diagtext:`align` || | |
4856 | | |+-------------------------+| | |
4857 | | ||:diagtext:`options align`|| | |
4858 | | |+-------------------------+| | |
4859 | +------------------------------------------------------------------------------+---------------------------+-----------------------+ |
4860 | |
4861 | +-----------------------------------------------------------------------------------+---------------------------+-----------------------+ |
4862 | |:warning:`warning:` |nbsp| :diagtext:`invalid alignment option in '#pragma` |nbsp| |+-------------------------+|:diagtext:`' - ignored`| |
4863 | | ||:diagtext:`align` || | |
4864 | | |+-------------------------+| | |
4865 | | ||:diagtext:`options align`|| | |
4866 | | |+-------------------------+| | |
4867 | +-----------------------------------------------------------------------------------+---------------------------+-----------------------+ |
4868 | |
4869 | +-----------------------------------------------------------------------------------------------------------+ |
4870 | |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension end directive mismatches begin directive - ignoring`| |
4871 | +-----------------------------------------------------------------------------------------------------------+ |
4872 | |
4873 | +----------------------------------------------------------------------------------------------------+ |
4874 | |:warning:`warning:` |nbsp| :diagtext:`'#pragma comment` |nbsp| :placeholder:`A`:diagtext:`' ignored`| |
4875 | +----------------------------------------------------------------------------------------------------+ |
4876 | |
4877 | +-------------------------------------------------------------------------------------------------------+ |
4878 | |:warning:`warning:` |nbsp| :diagtext:`missing argument to debug command '`:placeholder:`A`:diagtext:`'`| |
4879 | +-------------------------------------------------------------------------------------------------------+ |
4880 | |
4881 | +----------------------------------------------------------------------------------------------+ |
4882 | |:warning:`warning:` |nbsp| :diagtext:`unexpected debug command '`:placeholder:`A`:diagtext:`'`| |
4883 | +----------------------------------------------------------------------------------------------+ |
4884 | |
4885 | +------------------------------------------------------------------------------------------------------------------------+ |
4886 | |:warning:`warning:` |nbsp| :diagtext:`expected action or ')' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4887 | +------------------------------------------------------------------------------------------------------------------------+ |
4888 | |
4889 | +--------------------------------------------------------------------------------------------------------------+ |
4890 | |:warning:`warning:` |nbsp| :diagtext:`missing ':' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| |
4891 | +--------------------------------------------------------------------------------------------------------------+ |
4892 | |
4893 | +---------------------------------------------------------------------------------------------------------------------+ |
4894 | |:warning:`warning:` |nbsp| :diagtext:`missing ':' or ')' after` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| |
4895 | +---------------------------------------------------------------------------------------------------------------------+ |
4896 | |
4897 | +---------------------------------------------------------------------------------------------------------------------+ |
4898 | |:warning:`warning:` |nbsp| :diagtext:`expected identifier in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4899 | +---------------------------------------------------------------------------------------------------------------------+ |
4900 | |
4901 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4902 | |:warning:`warning:` |nbsp| :diagtext:`expected 'compiler', 'lib', 'user', or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4903 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4904 | |
4905 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4906 | |:warning:`warning:` |nbsp| :diagtext:`expected integer between` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inclusive in '#pragma` |nbsp| :placeholder:`C`:diagtext:`' - ignored`| |
4907 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4908 | |
4909 | +-----------------------------------------------------------------------------------------------------------------+ |
4910 | |:warning:`warning:` |nbsp| :diagtext:`missing '(' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| |
4911 | +-----------------------------------------------------------------------------------------------------------------+ |
4912 | |
4913 | +------------------------------------------------------------------------------------------------------------------------+ |
4914 | |:warning:`warning:` |nbsp| :diagtext:`expected non-wide string literal in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| |
4915 | +------------------------------------------------------------------------------------------------------------------------+ |
4916 | |
4917 | +-------------------------------------------------------+---------------------------------------------------+------------------------------+ |
4918 | |:warning:`warning:` |nbsp| :diagtext:`expected` |nbsp| |+-------------------------------------------------+| |nbsp| :diagtext:`- ignoring`| |
4919 | | ||:diagtext:`'enable', 'disable', 'begin' or 'end'`|| | |
4920 | | |+-------------------------------------------------+| | |
4921 | | ||:diagtext:`'disable'` || | |
4922 | | |+-------------------------------------------------+| | |
4923 | +-------------------------------------------------------+---------------------------------------------------+------------------------------+ |
4924 | |
4925 | +-----------------------------------------------------------------------------------------------------------+ |
4926 | |:warning:`warning:` |nbsp| :diagtext:`expected ')' or ',' in '#pragma` |nbsp| :placeholder:`A`:diagtext:`'`| |
4927 | +-----------------------------------------------------------------------------------------------------------+ |
4928 | |
4929 | +-----------------------------------------------------------------------------------------------------------------+ |
4930 | |:warning:`warning:` |nbsp| :diagtext:`missing ')' after '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignoring`| |
4931 | +-----------------------------------------------------------------------------------------------------------------+ |
4932 | |
4933 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4934 | |:warning:`warning:` |nbsp| :diagtext:`expected a stack label or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4935 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4936 | |
4937 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4938 | |:warning:`warning:` |nbsp| :diagtext:`expected a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4939 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4940 | |
4941 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4942 | |:warning:`warning:` |nbsp| :diagtext:`expected push, pop or a string literal for the section name in '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4943 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4944 | |
4945 | +---------------------------------------------------------------------------------------------------------------------+ |
4946 | |:warning:`warning:` |nbsp| :diagtext:`extra tokens at end of '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4947 | +---------------------------------------------------------------------------------------------------------------------+ |
4948 | |
4949 | +----------------------------------------------------------------------------------------------------------+ |
4950 | |:warning:`warning:` |nbsp| :diagtext:`incorrect use of #pragma clang force\_cuda\_host\_device begin\|end`| |
4951 | +----------------------------------------------------------------------------------------------------------+ |
4952 | |
4953 | +-------------------------------------------------------------------------------------------------------------------+ |
4954 | |:warning:`warning:` |nbsp| :diagtext:`'#pragma init\_seg' is only supported when targeting a Microsoft environment`| |
4955 | +-------------------------------------------------------------------------------------------------------------------+ |
4956 | |
4957 | +-----------------------------------------------------------------------------------------------------------------+ |
4958 | |:warning:`warning:` |nbsp| :diagtext:`unknown action for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4959 | +-----------------------------------------------------------------------------------------------------------------+ |
4960 | |
4961 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4962 | |:warning:`warning:` |nbsp| :diagtext:`unknown action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4963 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
4964 | |
4965 | +----------------------------------------------------------------------------------------------+ |
4966 | |:warning:`warning:` |nbsp| :diagtext:`incorrect use of '#pragma ms\_struct on\|off' - ignored`| |
4967 | +----------------------------------------------------------------------------------------------+ |
4968 | |
4969 | +--------------------------------------------------------------------------------------------------+ |
4970 | |:warning:`warning:` |nbsp| :diagtext:`#pragma options align=reset failed:` |nbsp| :placeholder:`A`| |
4971 | +--------------------------------------------------------------------------------------------------+ |
4972 | |
4973 | +---------------------------------------------------------------------------------------------+ |
4974 | |:warning:`warning:` |nbsp| :diagtext:`expected 'align' following '#pragma options' - ignored`| |
4975 | +---------------------------------------------------------------------------------------------+ |
4976 | |
4977 | +--------------------------------------------------------------------------------------------------------+ |
4978 | |:warning:`warning:` |nbsp| :diagtext:`expected #pragma pack parameter to be '1', '2', '4', '8', or '16'`| |
4979 | +--------------------------------------------------------------------------------------------------------+ |
4980 | |
4981 | +-------------------------------------------------------------------------------------------------+ |
4982 | |:warning:`warning:` |nbsp| :diagtext:`expected integer or identifier in '#pragma pack' - ignored`| |
4983 | +-------------------------------------------------------------------------------------------------+ |
4984 | |
4985 | +----------------------------------------------------------------------------------------------------------------------------+ |
4986 | |:warning:`warning:` |nbsp| :diagtext:`#pragma` |nbsp| :placeholder:`A`:diagtext:`(pop, ...) failed:` |nbsp| :placeholder:`B`| |
4987 | +----------------------------------------------------------------------------------------------------------------------------+ |
4988 | |
4989 | +------------------------------------------------------------------------------------------------------------------------------+ |
4990 | |:warning:`warning:` |nbsp| :diagtext:`pragma pop\_macro could not pop '`:placeholder:`A`:diagtext:`', no matching push\_macro`| |
4991 | +------------------------------------------------------------------------------------------------------------------------------+ |
4992 | |
4993 | +---------------------------------------------------------------------------------------------------------------------+ |
4994 | |:warning:`warning:` |nbsp| :diagtext:`unknown OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| |
4995 | +---------------------------------------------------------------------------------------------------------------------+ |
4996 | |
4997 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
4998 | |:warning:`warning:` |nbsp| :diagtext:`known but unsupported action '`:placeholder:`B`:diagtext:`' for '#pragma` |nbsp| :placeholder:`A`:diagtext:`' - ignored`| |
4999 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5000 | |
5001 | +-------------------------------------------------------------------------------------------------------------------------+ |
5002 | |:warning:`warning:` |nbsp| :diagtext:`unsupported OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`- ignoring`| |
5003 | +-------------------------------------------------------------------------------------------------------------------------+ |
5004 | |
5005 | +-----------------------------------------------------------------------------------------------+ |
5006 | |:warning:`warning:` |nbsp| :diagtext:`expected '#pragma unused' argument to be a variable name`| |
5007 | +-----------------------------------------------------------------------------------------------+ |
5008 | |
5009 | +------------------------------------------------------------------------------------------+ |
5010 | |:warning:`warning:` |nbsp| :diagtext:`only variables can be arguments to '#pragma unused'`| |
5011 | +------------------------------------------------------------------------------------------+ |
5012 | |
5013 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
5014 | |:warning:`warning:` |nbsp| :diagtext:`undeclared variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as an argument for '#pragma unused'`| |
5015 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
5016 | |
5017 | |
5018 | -Wignored-qualifiers |
5019 | -------------------- |
5020 | Some of the diagnostics controlled by this flag are enabled by default. |
5021 | |
5022 | **Diagnostic text:** |
5023 | |
5024 | +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ |
5025 | |:warning:`warning:` |nbsp| :diagtext:`ARC` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`lifetime qualifier on return type is ignored`| |
5026 | | ||:diagtext:`unused` || | |
5027 | | |+----------------------------------+| | |
5028 | | ||:diagtext:`\_\_unsafe\_unretained`|| | |
5029 | | |+----------------------------------+| | |
5030 | | ||:diagtext:`\_\_strong` || | |
5031 | | |+----------------------------------+| | |
5032 | | ||:diagtext:`\_\_weak` || | |
5033 | | |+----------------------------------+| | |
5034 | | ||:diagtext:`\_\_autoreleasing` || | |
5035 | | |+----------------------------------+| | |
5036 | +--------------------------------------------------+------------------------------------+----------------------------------------------------------------+ |
5037 | |
5038 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5039 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on omitted return type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| |
5040 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5041 | |
5042 | +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+ |
5043 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' type qualifier`|+-------------+| |nbsp| :diagtext:`on return type` |nbsp| |+-----------------+| |nbsp| :diagtext:`no effect`| |
5044 | | || || ||:diagtext:`:has` || | |
5045 | | |+-------------+| |+-----------------+| | |
5046 | | ||:diagtext:`s`|| ||:diagtext:`:have`|| | |
5047 | | |+-------------+| |+-----------------+| | |
5048 | +------------------------------------------------------------------------------------+---------------+------------------------------------------+-------------------+-----------------------------+ |
5049 | |
5050 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5051 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on function type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| |
5052 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5053 | |
5054 | +----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5055 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' qualifier on reference type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has no effect`| |
5056 | +----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5057 | |
5058 | |
5059 | -Wimplicit |
5060 | ---------- |
5061 | Some of the diagnostics controlled by this flag are enabled by default. |
5062 | |
5063 | Controls `-Wimplicit-function-declaration`_, `-Wimplicit-int`_. |
5064 | |
5065 | |
5066 | -Wimplicit-atomic-properties |
5067 | ---------------------------- |
5068 | **Diagnostic text:** |
5069 | |
5070 | +-----------------------------------------------------------------------------------------------------+ |
5071 | |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic when auto-synthesizing the property`| |
5072 | +-----------------------------------------------------------------------------------------------------+ |
5073 | |
5074 | +----------------------------------------------------------------------------+ |
5075 | |:warning:`warning:` |nbsp| :diagtext:`property is assumed atomic by default`| |
5076 | +----------------------------------------------------------------------------+ |
5077 | |
5078 | |
5079 | -Wimplicit-conversion-floating-point-to-bool |
5080 | -------------------------------------------- |
5081 | This diagnostic is enabled by default. |
5082 | |
5083 | **Diagnostic text:** |
5084 | |
5085 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5086 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns floating-point number into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
5087 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5088 | |
5089 | |
5090 | -Wimplicit-exception-spec-mismatch |
5091 | ---------------------------------- |
5092 | This diagnostic is enabled by default. |
5093 | |
5094 | **Diagnostic text:** |
5095 | |
5096 | +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ |
5097 | |:warning:`warning:` |nbsp| :diagtext:`function previously declared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification redeclared with an` |nbsp| |+--------------------+| |nbsp| :diagtext:`exception specification`| |
5098 | | ||:diagtext:`explicit`|| ||:diagtext:`implicit`|| | |
5099 | | |+--------------------+| |+--------------------+| | |
5100 | | ||:diagtext:`implicit`|| ||:diagtext:`explicit`|| | |
5101 | | |+--------------------+| |+--------------------+| | |
5102 | +-----------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------+----------------------+-------------------------------------------+ |
5103 | |
5104 | |
5105 | -Wimplicit-fallthrough |
5106 | ---------------------- |
5107 | Also controls `-Wimplicit-fallthrough-per-function`_. |
5108 | |
5109 | **Diagnostic text:** |
5110 | |
5111 | +---------------------------------------------------------------------------------+ |
5112 | |:warning:`warning:` |nbsp| :diagtext:`fallthrough annotation in unreachable code`| |
5113 | +---------------------------------------------------------------------------------+ |
5114 | |
5115 | +-------------------------------------------------------------------------------------+ |
5116 | |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels`| |
5117 | +-------------------------------------------------------------------------------------+ |
5118 | |
5119 | |
5120 | -Wimplicit-fallthrough-per-function |
5121 | ----------------------------------- |
5122 | **Diagnostic text:** |
5123 | |
5124 | +------------------------------------------------------------------------------------------------------------------+ |
5125 | |:warning:`warning:` |nbsp| :diagtext:`unannotated fall-through between switch labels in partly-annotated function`| |
5126 | +------------------------------------------------------------------------------------------------------------------+ |
5127 | |
5128 | |
5129 | -Wimplicit-function-declaration |
5130 | ------------------------------- |
5131 | Some of the diagnostics controlled by this flag are enabled by default. |
5132 | |
5133 | **Diagnostic text:** |
5134 | |
5135 | +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+ |
5136 | |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is invalid in` |nbsp| |+------------------+| |
5137 | | ||:diagtext:`C99` || |
5138 | | |+------------------+| |
5139 | | ||:diagtext:`OpenCL`|| |
5140 | | |+------------------+| |
5141 | +----------------------------------------------------------------------------------------------------------------------------------------+--------------------+ |
5142 | |
5143 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
5144 | |:warning:`warning:` |nbsp| :diagtext:`implicitly declaring library function '`:placeholder:`A`:diagtext:`' with type` |nbsp| :placeholder:`B`| |
5145 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
5146 | |
5147 | +---------------------------------------------------------------------------------+ |
5148 | |:error:`error:` |nbsp| :diagtext:`use of unknown builtin` |nbsp| :placeholder:`A`| |
5149 | +---------------------------------------------------------------------------------+ |
5150 | |
5151 | +-----------------------------------------------------------------------------------------------+ |
5152 | |:warning:`warning:` |nbsp| :diagtext:`implicit declaration of function` |nbsp| :placeholder:`A`| |
5153 | +-----------------------------------------------------------------------------------------------+ |
5154 | |
5155 | |
5156 | -Wimplicit-int |
5157 | -------------- |
5158 | This diagnostic is enabled by default. |
5159 | |
5160 | **Diagnostic text:** |
5161 | |
5162 | +--------------------------------------------------------------------------------+ |
5163 | |:warning:`warning:` |nbsp| :diagtext:`type specifier missing, defaults to 'int'`| |
5164 | +--------------------------------------------------------------------------------+ |
5165 | |
5166 | |
5167 | -Wimplicit-retain-self |
5168 | ---------------------- |
5169 | **Diagnostic text:** |
5170 | |
5171 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
5172 | |:warning:`warning:` |nbsp| :diagtext:`block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior`| |
5173 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
5174 | |
5175 | |
5176 | -Wimplicitly-unsigned-literal |
5177 | ----------------------------- |
5178 | This diagnostic is enabled by default. |
5179 | |
5180 | **Diagnostic text:** |
5181 | |
5182 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
5183 | |:warning:`warning:` |nbsp| :diagtext:`integer literal is too large to be represented in a signed integer type, interpreting as unsigned`| |
5184 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
5185 | |
5186 | |
5187 | -Wimport |
5188 | -------- |
5189 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
5190 | |
5191 | -Wimport-preprocessor-directive-pedantic |
5192 | ---------------------------------------- |
5193 | **Diagnostic text:** |
5194 | |
5195 | +----------------------------------------------------------------------+ |
5196 | |:warning:`warning:` |nbsp| :diagtext:`#import is a language extension`| |
5197 | +----------------------------------------------------------------------+ |
5198 | |
5199 | |
5200 | -Winaccessible-base |
5201 | ------------------- |
5202 | This diagnostic is enabled by default. |
5203 | |
5204 | **Diagnostic text:** |
5205 | |
5206 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
5207 | |:warning:`warning:` |nbsp| :diagtext:`direct base` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is inaccessible due to ambiguity:`:placeholder:`B`| |
5208 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
5209 | |
5210 | |
5211 | -Winclude-next-absolute-path |
5212 | ---------------------------- |
5213 | This diagnostic is enabled by default. |
5214 | |
5215 | **Diagnostic text:** |
5216 | |
5217 | +------------------------------------------------------------------------+ |
5218 | |:warning:`warning:` |nbsp| :diagtext:`#include\_next with absolute path`| |
5219 | +------------------------------------------------------------------------+ |
5220 | |
5221 | |
5222 | -Winclude-next-outside-header |
5223 | ----------------------------- |
5224 | This diagnostic is enabled by default. |
5225 | |
5226 | **Diagnostic text:** |
5227 | |
5228 | +----------------------------------------------------------------------------+ |
5229 | |:warning:`warning:` |nbsp| :diagtext:`#include\_next in primary source file`| |
5230 | +----------------------------------------------------------------------------+ |
5231 | |
5232 | |
5233 | -Wincompatible-exception-spec |
5234 | ----------------------------- |
5235 | This diagnostic is enabled by default. |
5236 | |
5237 | **Diagnostic text:** |
5238 | |
5239 | +--------------------------------------------------------------------------+----------------------+--------------------------------+ |
5240 | |:warning:`warning:` |nbsp| :diagtext:`exception specifications of` |nbsp| |+--------------------+| |nbsp| :diagtext:`types differ`| |
5241 | | ||:diagtext:`return` || | |
5242 | | |+--------------------+| | |
5243 | | ||:diagtext:`argument`|| | |
5244 | | |+--------------------+| | |
5245 | +--------------------------------------------------------------------------+----------------------+--------------------------------+ |
5246 | |
5247 | +-----------------------------------------------------------------------------------------------+ |
5248 | |:warning:`warning:` |nbsp| :diagtext:`target exception specification is not superset of source`| |
5249 | +-----------------------------------------------------------------------------------------------+ |
5250 | |
5251 | |
5252 | -Wincompatible-function-pointer-types |
5253 | ------------------------------------- |
5254 | This diagnostic is enabled by default. |
5255 | |
5256 | **Diagnostic text:** |
5257 | |
5258 | +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5259 | |:warning:`warning:` |nbsp| :diagtext:`incompatible function pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| |
5260 | | ||:diagtext:`assigning to different types` ||| || |
5261 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5262 | | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || |
5263 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5264 | | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| |
5265 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5266 | | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || |
5267 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5268 | | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || |
5269 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5270 | | ||:diagtext:`sending to parameter of different type` || | |
5271 | | |+--------------------------------------------------------------+| | |
5272 | | ||:diagtext:`casting between types` || | |
5273 | | |+--------------------------------------------------------------+| | |
5274 | +----------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5275 | |
5276 | |
5277 | -Wincompatible-library-redeclaration |
5278 | ------------------------------------ |
5279 | This diagnostic is enabled by default. |
5280 | |
5281 | **Diagnostic text:** |
5282 | |
5283 | +-------------------------------------------------------------------------------------------------------------+ |
5284 | |:warning:`warning:` |nbsp| :diagtext:`incompatible redeclaration of library function` |nbsp| :placeholder:`A`| |
5285 | +-------------------------------------------------------------------------------------------------------------+ |
5286 | |
5287 | |
5288 | -Wincompatible-ms-struct |
5289 | ------------------------ |
5290 | This diagnostic is an error by default, but the flag ``-Wno-incompatible-ms-struct`` can be used to disable the error. |
5291 | |
5292 | **Diagnostic text:** |
5293 | |
5294 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
5295 | |:error:`error:` |nbsp| :diagtext:`ms\_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions`| |
5296 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
5297 | |
5298 | |
5299 | -Wincompatible-pointer-types |
5300 | ---------------------------- |
5301 | This diagnostic is enabled by default. |
5302 | |
5303 | Also controls `-Wincompatible-function-pointer-types`_, `-Wincompatible-pointer-types-discards-qualifiers`_. |
5304 | |
5305 | **Diagnostic text:** |
5306 | |
5307 | +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5308 | |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer types` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| |
5309 | | ||:diagtext:`assigning to different types` ||| || |
5310 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5311 | | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || |
5312 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5313 | | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| |
5314 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5315 | | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || |
5316 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5317 | | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || |
5318 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5319 | | ||:diagtext:`sending to parameter of different type` || | |
5320 | | |+--------------------------------------------------------------+| | |
5321 | | ||:diagtext:`casting between types` || | |
5322 | | |+--------------------------------------------------------------+| | |
5323 | +-------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5324 | |
5325 | |
5326 | -Wincompatible-pointer-types-discards-qualifiers |
5327 | ------------------------------------------------ |
5328 | This diagnostic is enabled by default. |
5329 | |
5330 | **Diagnostic text:** |
5331 | |
5332 | +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ |
5333 | |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers in nested pointer types`| |
5334 | | ||:diagtext:`assigning to different types` || | |
5335 | | |+--------------------------------------------------------------+| | |
5336 | | ||:diagtext:`passing to parameter of different type` || | |
5337 | | |+--------------------------------------------------------------+| | |
5338 | | ||:diagtext:`returning from function with different return type`|| | |
5339 | | |+--------------------------------------------------------------+| | |
5340 | | ||:diagtext:`converting between types` || | |
5341 | | |+--------------------------------------------------------------+| | |
5342 | | ||:diagtext:`initializing with expression of different type` || | |
5343 | | |+--------------------------------------------------------------+| | |
5344 | | ||:diagtext:`sending to parameter of different type` || | |
5345 | | |+--------------------------------------------------------------+| | |
5346 | | ||:diagtext:`casting between types` || | |
5347 | | |+--------------------------------------------------------------+| | |
5348 | +---------------------------+----------------------------------------------------------------+---------------------------------------------------------------+ |
5349 | |
5350 | +---------------------------+----------------------------------------------------------------+---------------------------------------+ |
5351 | |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`discards qualifiers`| |
5352 | | ||:diagtext:`assigning to different types` || | |
5353 | | |+--------------------------------------------------------------+| | |
5354 | | ||:diagtext:`passing to parameter of different type` || | |
5355 | | |+--------------------------------------------------------------+| | |
5356 | | ||:diagtext:`returning from function with different return type`|| | |
5357 | | |+--------------------------------------------------------------+| | |
5358 | | ||:diagtext:`converting between types` || | |
5359 | | |+--------------------------------------------------------------+| | |
5360 | | ||:diagtext:`initializing with expression of different type` || | |
5361 | | |+--------------------------------------------------------------+| | |
5362 | | ||:diagtext:`sending to parameter of different type` || | |
5363 | | |+--------------------------------------------------------------+| | |
5364 | | ||:diagtext:`casting between types` || | |
5365 | | |+--------------------------------------------------------------+| | |
5366 | +---------------------------+----------------------------------------------------------------+---------------------------------------+ |
5367 | |
5368 | |
5369 | -Wincompatible-property-type |
5370 | ---------------------------- |
5371 | This diagnostic is enabled by default. |
5372 | |
5373 | **Diagnostic text:** |
5374 | |
5375 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5376 | |:warning:`warning:` |nbsp| :diagtext:`property type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`inherited from` |nbsp| :placeholder:`C`| |
5377 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5378 | |
5379 | |
5380 | -Wincompatible-sysroot |
5381 | ---------------------- |
5382 | This diagnostic is enabled by default. |
5383 | |
5384 | **Diagnostic text:** |
5385 | |
5386 | +------------------------------------------------------------------------------------------------------------------------------------+ |
5387 | |:warning:`warning:` |nbsp| :diagtext:`using sysroot for '`:placeholder:`A`:diagtext:`' but targeting '`:placeholder:`B`:diagtext:`'`| |
5388 | +------------------------------------------------------------------------------------------------------------------------------------+ |
5389 | |
5390 | |
5391 | -Wincomplete-implementation |
5392 | --------------------------- |
5393 | This diagnostic is enabled by default. |
5394 | |
5395 | **Diagnostic text:** |
5396 | |
5397 | +-----------------------------------------------------------------------------------------------------------------+ |
5398 | |:warning:`warning:` |nbsp| :diagtext:`method definition for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| |
5399 | +-----------------------------------------------------------------------------------------------------------------+ |
5400 | |
5401 | |
5402 | -Wincomplete-module |
5403 | ------------------- |
5404 | Some of the diagnostics controlled by this flag are enabled by default. |
5405 | |
5406 | Controls `-Wincomplete-umbrella`_, `-Wnon-modular-include-in-module`_. |
5407 | |
5408 | |
5409 | -Wincomplete-umbrella |
5410 | --------------------- |
5411 | This diagnostic is enabled by default. |
5412 | |
5413 | **Diagnostic text:** |
5414 | |
5415 | +---------------------------------------------------------------------------------------+ |
5416 | |:warning:`warning:` |nbsp| :diagtext:`missing submodule '`:placeholder:`A`:diagtext:`'`| |
5417 | +---------------------------------------------------------------------------------------+ |
5418 | |
5419 | +--------------------------------------------------------------------------------------------------+ |
5420 | |:warning:`warning:` |nbsp| :diagtext:`umbrella directory '`:placeholder:`A`:diagtext:`' not found`| |
5421 | +--------------------------------------------------------------------------------------------------+ |
5422 | |
5423 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5424 | |:warning:`warning:` |nbsp| :diagtext:`umbrella header for module '`:placeholder:`A`:diagtext:`' does not include header '`:placeholder:`B`:diagtext:`'`| |
5425 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5426 | |
5427 | |
5428 | -Winconsistent-dllimport |
5429 | ------------------------ |
5430 | This diagnostic is enabled by default. |
5431 | |
5432 | **Diagnostic text:** |
5433 | |
5434 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5435 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without` |nbsp| :placeholder:`B` |nbsp| :diagtext:`attribute: previous` |nbsp| :placeholder:`B` |nbsp| :diagtext:`ignored`| |
5436 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5437 | |
5438 | +------------------------------------------------------------------------------------------------------------------------------------+ |
5439 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`redeclared without 'dllimport' attribute: 'dllexport' attribute added`| |
5440 | +------------------------------------------------------------------------------------------------------------------------------------+ |
5441 | |
5442 | |
5443 | -Winconsistent-missing-destructor-override |
5444 | ------------------------------------------ |
5445 | **Diagnostic text:** |
5446 | |
5447 | +------------------------------------------------------------------------------------------------------------------+ |
5448 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a destructor but is not marked 'override'`| |
5449 | +------------------------------------------------------------------------------------------------------------------+ |
5450 | |
5451 | |
5452 | -Winconsistent-missing-override |
5453 | ------------------------------- |
5454 | This diagnostic is enabled by default. |
5455 | |
5456 | **Diagnostic text:** |
5457 | |
5458 | +-----------------------------------------------------------------------------------------------------------------------+ |
5459 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`overrides a member function but is not marked 'override'`| |
5460 | +-----------------------------------------------------------------------------------------------------------------------+ |
5461 | |
5462 | |
5463 | -Wincrement-bool |
5464 | ---------------- |
5465 | This diagnostic is enabled by default. |
5466 | |
5467 | Also controls `-Wdeprecated-increment-bool`_. |
5468 | |
5469 | **Diagnostic text:** |
5470 | |
5471 | +------------------------------------------------------------------------------------------------+ |
5472 | |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow incrementing expression of type bool`| |
5473 | +------------------------------------------------------------------------------------------------+ |
5474 | |
5475 | |
5476 | -Winfinite-recursion |
5477 | -------------------- |
5478 | **Diagnostic text:** |
5479 | |
5480 | +---------------------------------------------------------------------------------------+ |
5481 | |:warning:`warning:` |nbsp| :diagtext:`all paths through this function will call itself`| |
5482 | +---------------------------------------------------------------------------------------+ |
5483 | |
5484 | |
5485 | -Winit-self |
5486 | ----------- |
5487 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
5488 | |
5489 | -Winitializer-overrides |
5490 | ----------------------- |
5491 | This diagnostic is enabled by default. |
5492 | |
5493 | **Diagnostic text:** |
5494 | |
5495 | +---------------------------------------------------------------------------------------------------+ |
5496 | |:warning:`warning:` |nbsp| :diagtext:`initializer overrides prior initialization of this subobject`| |
5497 | +---------------------------------------------------------------------------------------------------+ |
5498 | |
5499 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
5500 | |:warning:`warning:` |nbsp| :diagtext:`subobject initialization overrides initialization of other fields within its enclosing subobject`| |
5501 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
5502 | |
5503 | |
5504 | -Winjected-class-name |
5505 | --------------------- |
5506 | This diagnostic is enabled by default. |
5507 | |
5508 | **Diagnostic text:** |
5509 | |
5510 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ |
5511 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ specifies that qualified reference to` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a constructor name rather than a` |nbsp| |+-------------------------+| |nbsp| :diagtext:`in this context, despite preceding` |nbsp| |+----------------------+| |nbsp| :diagtext:`keyword`| |
5512 | | ||:diagtext:`template name`|| ||:diagtext:`'typename'`|| | |
5513 | | |+-------------------------+| |+----------------------+| | |
5514 | | ||:diagtext:`type` || ||:diagtext:`'template'`|| | |
5515 | | |+-------------------------+| |+----------------------+| | |
5516 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------+--------------------------------------------------------------+------------------------+---------------------------+ |
5517 | |
5518 | |
5519 | -Winline |
5520 | -------- |
5521 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
5522 | |
5523 | -Winline-asm |
5524 | ------------ |
5525 | This diagnostic is enabled by default. |
5526 | |
5527 | **Diagnostic text:** |
5528 | |
5529 | The text of this diagnostic is not controlled by Clang. |
5530 | |
5531 | |
5532 | -Winline-new-delete |
5533 | ------------------- |
5534 | This diagnostic is enabled by default. |
5535 | |
5536 | **Diagnostic text:** |
5537 | |
5538 | +----------------------------------------------------------------------------------------------------------------------------------+ |
5539 | |:warning:`warning:` |nbsp| :diagtext:`replacement function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be declared 'inline'`| |
5540 | +----------------------------------------------------------------------------------------------------------------------------------+ |
5541 | |
5542 | |
5543 | -Winstantiation-after-specialization |
5544 | ------------------------------------ |
5545 | This diagnostic is enabled by default. |
5546 | |
5547 | **Diagnostic text:** |
5548 | |
5549 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5550 | |:warning:`warning:` |nbsp| :diagtext:`explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that occurs after an explicit specialization has no effect`| |
5551 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5552 | |
5553 | |
5554 | -Wint-conversion |
5555 | ---------------- |
5556 | This diagnostic is enabled by default. |
5557 | |
5558 | **Diagnostic text:** |
5559 | |
5560 | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5561 | |:warning:`warning:` |nbsp| :diagtext:`incompatible integer to pointer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| |
5562 | | ||:diagtext:`assigning to different types` ||| || |
5563 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5564 | | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || |
5565 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5566 | | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| |
5567 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5568 | | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || |
5569 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5570 | | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || |
5571 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5572 | | ||:diagtext:`sending to parameter of different type` || | |
5573 | | |+--------------------------------------------------------------+| | |
5574 | | ||:diagtext:`casting between types` || | |
5575 | | |+--------------------------------------------------------------+| | |
5576 | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5577 | |
5578 | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5579 | |:warning:`warning:` |nbsp| :diagtext:`incompatible pointer to integer conversion` |nbsp| |+--------------------------------------------------------------+|+-------------------------------------+| |
5580 | | ||:diagtext:`assigning to different types` ||| || |
5581 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5582 | | ||:diagtext:`passing to parameter of different type` |||:diagtext:`; dereference with \*` || |
5583 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5584 | | ||:diagtext:`returning from function with different return type`|||:diagtext:`; take the address with &`|| |
5585 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5586 | | ||:diagtext:`converting between types` |||:diagtext:`; remove \*` || |
5587 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5588 | | ||:diagtext:`initializing with expression of different type` |||:diagtext:`; remove &` || |
5589 | | |+--------------------------------------------------------------+|+-------------------------------------+| |
5590 | | ||:diagtext:`sending to parameter of different type` || | |
5591 | | |+--------------------------------------------------------------+| | |
5592 | | ||:diagtext:`casting between types` || | |
5593 | | |+--------------------------------------------------------------+| | |
5594 | +-----------------------------------------------------------------------------------------+----------------------------------------------------------------+---------------------------------------+ |
5595 | |
5596 | |
5597 | -Wint-conversions |
5598 | ----------------- |
5599 | Synonym for `-Wint-conversion`_. |
5600 | |
5601 | |
5602 | -Wint-to-pointer-cast |
5603 | --------------------- |
5604 | This diagnostic is enabled by default. |
5605 | |
5606 | Also controls `-Wint-to-void-pointer-cast`_. |
5607 | |
5608 | **Diagnostic text:** |
5609 | |
5610 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
5611 | |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| |
5612 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
5613 | |
5614 | |
5615 | -Wint-to-void-pointer-cast |
5616 | -------------------------- |
5617 | This diagnostic is enabled by default. |
5618 | |
5619 | **Diagnostic text:** |
5620 | |
5621 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
5622 | |:warning:`warning:` |nbsp| :diagtext:`cast to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`from smaller integer type` |nbsp| :placeholder:`A`| |
5623 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
5624 | |
5625 | |
5626 | -Winteger-overflow |
5627 | ------------------ |
5628 | This diagnostic is enabled by default. |
5629 | |
5630 | **Diagnostic text:** |
5631 | |
5632 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
5633 | |:warning:`warning:` |nbsp| :diagtext:`overflow in expression; result is` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with type` |nbsp| :placeholder:`B`| |
5634 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
5635 | |
5636 | |
5637 | -Winvalid-command-line-argument |
5638 | ------------------------------- |
5639 | This diagnostic is enabled by default. |
5640 | |
5641 | Also controls `-Wignored-optimization-argument`_. |
5642 | |
5643 | **Diagnostic text:** |
5644 | |
5645 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
5646 | |:warning:`warning:` |nbsp| :diagtext:`the object size sanitizer has no effect at -O0, but is explicitly enabled:` |nbsp| :placeholder:`A`| |
5647 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
5648 | |
5649 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5650 | |:warning:`warning:` |nbsp| :diagtext:`optimization level '`:placeholder:`A`:diagtext:`' is not supported; using '`:placeholder:`B`:placeholder:`C`:diagtext:`' instead`| |
5651 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5652 | |
5653 | |
5654 | -Winvalid-constexpr |
5655 | ------------------- |
5656 | This diagnostic is an error by default, but the flag ``-Wno-invalid-constexpr`` can be used to disable the error. |
5657 | |
5658 | **Diagnostic text:** |
5659 | |
5660 | +----------------------------------------------------+-------------------------+--------------------------------------------------------+ |
5661 | |:error:`error:` |nbsp| :diagtext:`constexpr` |nbsp| |+-----------------------+| |nbsp| :diagtext:`never produces a constant expression`| |
5662 | | ||:diagtext:`function` || | |
5663 | | |+-----------------------+| | |
5664 | | ||:diagtext:`constructor`|| | |
5665 | | |+-----------------------+| | |
5666 | +----------------------------------------------------+-------------------------+--------------------------------------------------------+ |
5667 | |
5668 | |
5669 | -Winvalid-iboutlet |
5670 | ------------------ |
5671 | This diagnostic is enabled by default. |
5672 | |
5673 | **Diagnostic text:** |
5674 | |
5675 | +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ |
5676 | |:warning:`warning:` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute must be an object type (invalid` |nbsp| :placeholder:`B`:diagtext:`)`| |
5677 | | ||:diagtext:`instance variable`|| | |
5678 | | |+-----------------------------+| | |
5679 | | ||:diagtext:`property` || | |
5680 | | |+-----------------------------+| | |
5681 | +---------------------------+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ |
5682 | |
5683 | +---------------------------------------------------------------------------------------------------------+ |
5684 | |:warning:`warning:` |nbsp| :diagtext:`IBOutletCollection properties should be copy/strong and not assign`| |
5685 | +---------------------------------------------------------------------------------------------------------+ |
5686 | |
5687 | |
5688 | -Winvalid-initializer-from-system-header |
5689 | ---------------------------------------- |
5690 | This diagnostic is enabled by default. |
5691 | |
5692 | **Diagnostic text:** |
5693 | |
5694 | +--------------------------------------------------------------------------------------------------------------+ |
5695 | |:warning:`warning:` |nbsp| :diagtext:`invalid constructor form class in system header, should not be explicit`| |
5696 | +--------------------------------------------------------------------------------------------------------------+ |
5697 | |
5698 | |
5699 | -Winvalid-ios-deployment-target |
5700 | ------------------------------- |
5701 | This diagnostic is an error by default, but the flag ``-Wno-invalid-ios-deployment-target`` can be used to disable the error. |
5702 | |
5703 | **Diagnostic text:** |
5704 | |
5705 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5706 | |:error:`error:` |nbsp| :diagtext:`invalid iOS deployment version '`:placeholder:`A`:diagtext:`', iOS 10 is the maximum deployment target for 32-bit targets`| |
5707 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5708 | |
5709 | |
5710 | -Winvalid-noreturn |
5711 | ------------------ |
5712 | This diagnostic is enabled by default. |
5713 | |
5714 | **Diagnostic text:** |
5715 | |
5716 | +-------------------------------------------------------------------------------------+ |
5717 | |:warning:`warning:` |nbsp| :diagtext:`function declared 'noreturn' should not return`| |
5718 | +-------------------------------------------------------------------------------------+ |
5719 | |
5720 | +--------------------------------------------------------------------------------------------------------------------------------+ |
5721 | |:warning:`warning:` |nbsp| :diagtext:`function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared 'noreturn' should not return`| |
5722 | +--------------------------------------------------------------------------------------------------------------------------------+ |
5723 | |
5724 | |
5725 | -Winvalid-offsetof |
5726 | ------------------ |
5727 | This diagnostic is enabled by default. |
5728 | |
5729 | **Diagnostic text:** |
5730 | |
5731 | +----------------------------------------------------------------------------------------+ |
5732 | |:warning:`warning:` |nbsp| :diagtext:`offset of on non-POD type` |nbsp| :placeholder:`A`| |
5733 | +----------------------------------------------------------------------------------------+ |
5734 | |
5735 | +----------------------------------------------------------------------------------------------------+ |
5736 | |:warning:`warning:` |nbsp| :diagtext:`offset of on non-standard-layout type` |nbsp| :placeholder:`A`| |
5737 | +----------------------------------------------------------------------------------------------------+ |
5738 | |
5739 | |
5740 | -Winvalid-or-nonexistent-directory |
5741 | ---------------------------------- |
5742 | Some of the diagnostics controlled by this flag are enabled by default. |
5743 | |
5744 | **Diagnostic text:** |
5745 | |
5746 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5747 | |:warning:`warning:` |nbsp| :diagtext:`environment variable SCE\_ORBIS\_SDK\_DIR is set, but points to invalid or nonexistent directory '`:placeholder:`A`:diagtext:`'`| |
5748 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5749 | |
5750 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5751 | |:warning:`warning:` |nbsp| :diagtext:`unable to find` |nbsp| :placeholder:`A` |nbsp| :diagtext:`directory, expected to be in '`:placeholder:`B`:diagtext:`'`| |
5752 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5753 | |
5754 | |
5755 | -Winvalid-partial-specialization |
5756 | -------------------------------- |
5757 | This diagnostic is an error by default, but the flag ``-Wno-invalid-partial-specialization`` can be used to disable the error. |
5758 | |
5759 | **Diagnostic text:** |
5760 | |
5761 | +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ |
5762 | |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization is not more specialized than the primary template`| |
5763 | | ||:diagtext:`class` || | |
5764 | | |+--------------------+| | |
5765 | | ||:diagtext:`variable`|| | |
5766 | | |+--------------------+| | |
5767 | +-----------------------+----------------------+-----------------------------------------------------------------------------------------------------+ |
5768 | |
5769 | |
5770 | -Winvalid-pch |
5771 | ------------- |
5772 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
5773 | |
5774 | -Winvalid-pp-token |
5775 | ------------------ |
5776 | This diagnostic is enabled by default. |
5777 | |
5778 | **Diagnostic text:** |
5779 | |
5780 | +---------------------------------------------------------------+ |
5781 | |:warning:`warning:` |nbsp| :diagtext:`empty character constant`| |
5782 | +---------------------------------------------------------------+ |
5783 | |
5784 | +------------------------------------------------------------------+-----------------+-----------------------------+ |
5785 | |:warning:`warning:` |nbsp| :diagtext:`missing terminating` |nbsp| |+---------------+| |nbsp| :diagtext:`character`| |
5786 | | ||:diagtext:`'` || | |
5787 | | |+---------------+| | |
5788 | | ||:diagtext:`'"'`|| | |
5789 | | |+---------------+| | |
5790 | +------------------------------------------------------------------+-----------------+-----------------------------+ |
5791 | |
5792 | |
5793 | -Winvalid-source-encoding |
5794 | ------------------------- |
5795 | This diagnostic is enabled by default. |
5796 | |
5797 | **Diagnostic text:** |
5798 | |
5799 | +--------------------------------------------------------------------------------------+ |
5800 | |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in character literal`| |
5801 | +--------------------------------------------------------------------------------------+ |
5802 | |
5803 | +-----------------------------------------------------------------------------------+ |
5804 | |:warning:`warning:` |nbsp| :diagtext:`illegal character encoding in string literal`| |
5805 | +-----------------------------------------------------------------------------------+ |
5806 | |
5807 | |
5808 | -Winvalid-token-paste |
5809 | --------------------- |
5810 | This diagnostic is an error by default, but the flag ``-Wno-invalid-token-paste`` can be used to disable the error. |
5811 | |
5812 | **Diagnostic text:** |
5813 | |
5814 | +----------------------------------------------------------------------------------------------------------------+ |
5815 | |:error:`error:` |nbsp| :diagtext:`pasting formed '`:placeholder:`A`:diagtext:`', an invalid preprocessing token`| |
5816 | +----------------------------------------------------------------------------------------------------------------+ |
5817 | |
5818 | |
5819 | -Wjump-seh-finally |
5820 | ------------------ |
5821 | This diagnostic is enabled by default. |
5822 | |
5823 | **Diagnostic text:** |
5824 | |
5825 | +-------------------------------------------------------------------------------------------+ |
5826 | |:warning:`warning:` |nbsp| :diagtext:`jump out of \_\_finally block has undefined behavior`| |
5827 | +-------------------------------------------------------------------------------------------+ |
5828 | |
5829 | |
5830 | -Wkeyword-compat |
5831 | ---------------- |
5832 | This diagnostic is enabled by default. |
5833 | |
5834 | **Diagnostic text:** |
5835 | |
5836 | +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ |
5837 | |:warning:`warning:` |nbsp| :diagtext:`keyword '`:placeholder:`A`:diagtext:`' will be made available as an identifier` |nbsp| |+-----------------------------------------------------+| |
5838 | | ||:diagtext:`here` || |
5839 | | |+-----------------------------------------------------+| |
5840 | | ||:diagtext:`for the remainder of the translation unit`|| |
5841 | | |+-----------------------------------------------------+| |
5842 | +-----------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------+ |
5843 | |
5844 | |
5845 | -Wkeyword-macro |
5846 | --------------- |
5847 | **Diagnostic text:** |
5848 | |
5849 | +----------------------------------------------------------------------------+ |
5850 | |:warning:`warning:` |nbsp| :diagtext:`keyword is hidden by macro definition`| |
5851 | +----------------------------------------------------------------------------+ |
5852 | |
5853 | |
5854 | -Wknr-promoted-parameter |
5855 | ------------------------ |
5856 | This diagnostic is enabled by default. |
5857 | |
5858 | **Diagnostic text:** |
5859 | |
5860 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5861 | |:warning:`warning:` |nbsp| :diagtext:`promoted type of K&R function parameter is not compatible with parameter type` |nbsp| :diagtext:`declared in a previous prototype`| |
5862 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5863 | |
5864 | |
5865 | -Wlanguage-extension-token |
5866 | -------------------------- |
5867 | **Diagnostic text:** |
5868 | |
5869 | +-----------------------------------------------------+ |
5870 | |:warning:`warning:` |nbsp| :diagtext:`extension used`| |
5871 | +-----------------------------------------------------+ |
5872 | |
5873 | |
5874 | -Wlarge-by-value-copy |
5875 | --------------------- |
5876 | This diagnostic is enabled by default. |
5877 | |
5878 | **Diagnostic text:** |
5879 | |
5880 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5881 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value argument; pass it by reference instead ?`| |
5882 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5883 | |
5884 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5885 | |:warning:`warning:` |nbsp| :diagtext:`return value of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a large (`:placeholder:`B` |nbsp| :diagtext:`bytes) pass-by-value object; pass it by reference instead ?`| |
5886 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5887 | |
5888 | |
5889 | -Wliblto |
5890 | -------- |
5891 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
5892 | |
5893 | -Wliteral-conversion |
5894 | -------------------- |
5895 | This diagnostic is enabled by default. |
5896 | |
5897 | **Diagnostic text:** |
5898 | |
5899 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5900 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`changes value from` |nbsp| :placeholder:`C` |nbsp| :diagtext:`to` |nbsp| :placeholder:`D`| |
5901 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5902 | |
5903 | |
5904 | -Wliteral-range |
5905 | --------------- |
5906 | This diagnostic is enabled by default. |
5907 | |
5908 | **Diagnostic text:** |
5909 | |
5910 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5911 | |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too large for type` |nbsp| :placeholder:`A`:diagtext:`; maximum is` |nbsp| :placeholder:`B`| |
5912 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5913 | |
5914 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5915 | |:warning:`warning:` |nbsp| :diagtext:`magnitude of floating-point constant too small for type` |nbsp| :placeholder:`A`:diagtext:`; minimum is` |nbsp| :placeholder:`B`| |
5916 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
5917 | |
5918 | |
5919 | -Wlocal-type-template-args |
5920 | -------------------------- |
5921 | Some of the diagnostics controlled by this flag are enabled by default. |
5922 | |
5923 | Also controls `-Wc++98-compat-local-type-template-args`_. |
5924 | |
5925 | **Diagnostic text:** |
5926 | |
5927 | +------------------------------------------------------------------------------------------------+ |
5928 | |:warning:`warning:` |nbsp| :diagtext:`template argument uses local type` |nbsp| :placeholder:`A`| |
5929 | +------------------------------------------------------------------------------------------------+ |
5930 | |
5931 | |
5932 | -Wlogical-not-parentheses |
5933 | ------------------------- |
5934 | This diagnostic is enabled by default. |
5935 | |
5936 | **Diagnostic text:** |
5937 | |
5938 | +--------------------------------------------------------------------------------------------------------+------------------------------+ |
5939 | |:warning:`warning:` |nbsp| :diagtext:`logical not is only applied to the left hand side of this` |nbsp| |+----------------------------+| |
5940 | | ||:diagtext:`comparison` || |
5941 | | |+----------------------------+| |
5942 | | ||:diagtext:`bitwise operator`|| |
5943 | | |+----------------------------+| |
5944 | +--------------------------------------------------------------------------------------------------------+------------------------------+ |
5945 | |
5946 | |
5947 | -Wlogical-op-parentheses |
5948 | ------------------------ |
5949 | This diagnostic is enabled by default. |
5950 | |
5951 | **Diagnostic text:** |
5952 | |
5953 | +---------------------------------------------------------+ |
5954 | |:warning:`warning:` |nbsp| :diagtext:`'&&' within '\|\|'`| |
5955 | +---------------------------------------------------------+ |
5956 | |
5957 | |
5958 | -Wlong-long |
5959 | ----------- |
5960 | Also controls `-Wc++11-long-long`_. |
5961 | |
5962 | **Diagnostic text:** |
5963 | |
5964 | +-----------------------------------------------------------------------------------------------+ |
5965 | |:warning:`warning:` |nbsp| :diagtext:`'long long' is an extension when C99 mode is not enabled`| |
5966 | +-----------------------------------------------------------------------------------------------+ |
5967 | |
5968 | |
5969 | -Wloop-analysis |
5970 | --------------- |
5971 | Controls `-Wfor-loop-analysis`_, `-Wrange-loop-analysis`_. |
5972 | |
5973 | |
5974 | -Wmacro-redefined |
5975 | ----------------- |
5976 | This diagnostic is enabled by default. |
5977 | |
5978 | **Diagnostic text:** |
5979 | |
5980 | +------------------------------------------------------------------------------+ |
5981 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`macro redefined`| |
5982 | +------------------------------------------------------------------------------+ |
5983 | |
5984 | |
5985 | -Wmain |
5986 | ------ |
5987 | Some of the diagnostics controlled by this flag are enabled by default. |
5988 | |
5989 | **Diagnostic text:** |
5990 | |
5991 | +--------------------------------------------------------------------------------------------+ |
5992 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| |
5993 | +--------------------------------------------------------------------------------------------+ |
5994 | |
5995 | +--------------------------------------------------------------------------------------+ |
5996 | |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared \_Noreturn`| |
5997 | +--------------------------------------------------------------------------------------+ |
5998 | |
5999 | +------------------------------------------------------------------------------------+ |
6000 | |:warning:`warning:` |nbsp| :diagtext:`'main' is not allowed to be declared variadic`| |
6001 | +------------------------------------------------------------------------------------+ |
6002 | |
6003 | +-------------------------------------------------------------------------------+ |
6004 | |:warning:`warning:` |nbsp| :diagtext:`only one parameter on 'main' declaration`| |
6005 | +-------------------------------------------------------------------------------+ |
6006 | |
6007 | +---------------------------------------------------------------------------------------------------------+ |
6008 | |:warning:`warning:` |nbsp| :diagtext:`variable named 'main' with external linkage has undefined behavior`| |
6009 | +---------------------------------------------------------------------------------------------------------+ |
6010 | |
6011 | +------------------------------------------------------------------------+ |
6012 | |:warning:`warning:` |nbsp| :diagtext:`bool literal returned from 'main'`| |
6013 | +------------------------------------------------------------------------+ |
6014 | |
6015 | +---------------------------------------------------------------------------+ |
6016 | |:warning:`warning:` |nbsp| :diagtext:`'main' should not be declared static`| |
6017 | +---------------------------------------------------------------------------+ |
6018 | |
6019 | |
6020 | -Wmain-return-type |
6021 | ------------------ |
6022 | This diagnostic is enabled by default. |
6023 | |
6024 | **Diagnostic text:** |
6025 | |
6026 | +-------------------------------------------------------------------------+ |
6027 | |:warning:`warning:` |nbsp| :diagtext:`return type of 'main' is not 'int'`| |
6028 | +-------------------------------------------------------------------------+ |
6029 | |
6030 | |
6031 | -Wmalformed-warning-check |
6032 | ------------------------- |
6033 | This diagnostic is enabled by default. |
6034 | |
6035 | **Diagnostic text:** |
6036 | |
6037 | +---------------------------------------------------------------------------------------------+ |
6038 | |:warning:`warning:` |nbsp| :diagtext:`\_\_has\_warning expected option name (e.g. "-Wundef")`| |
6039 | +---------------------------------------------------------------------------------------------+ |
6040 | |
6041 | |
6042 | -Wmany-braces-around-scalar-init |
6043 | -------------------------------- |
6044 | This diagnostic is enabled by default. |
6045 | |
6046 | **Diagnostic text:** |
6047 | |
6048 | +--------------------------------------------------------------------------------+ |
6049 | |:warning:`warning:` |nbsp| :diagtext:`too many braces around scalar initializer`| |
6050 | +--------------------------------------------------------------------------------+ |
6051 | |
6052 | |
6053 | -Wmax-unsigned-zero |
6054 | ------------------- |
6055 | This diagnostic is enabled by default. |
6056 | |
6057 | **Diagnostic text:** |
6058 | |
6059 | +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ |
6060 | |:warning:`warning:` |nbsp| :diagtext:`taking the max of` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`is always equal to the other value`| |
6061 | | ||:diagtext:`a value and unsigned zero`|| | |
6062 | | |+-------------------------------------+| | |
6063 | | ||:diagtext:`unsigned zero and a value`|| | |
6064 | | |+-------------------------------------+| | |
6065 | +----------------------------------------------------------------+---------------------------------------+------------------------------------------------------+ |
6066 | |
6067 | |
6068 | -Wmemsize-comparison |
6069 | -------------------- |
6070 | This diagnostic is enabled by default. |
6071 | |
6072 | **Diagnostic text:** |
6073 | |
6074 | +-----------------------------------------------------------------------------------------------------------------------+ |
6075 | |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is a comparison`| |
6076 | +-----------------------------------------------------------------------------------------------------------------------+ |
6077 | |
6078 | |
6079 | -Wmethod-signatures |
6080 | ------------------- |
6081 | **Diagnostic text:** |
6082 | |
6083 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6084 | |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| |
6085 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6086 | |
6087 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6088 | |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| |
6089 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6090 | |
6091 | |
6092 | -Wmicrosoft |
6093 | ----------- |
6094 | Some of the diagnostics controlled by this flag are enabled by default. |
6095 | |
6096 | Controls `-Winconsistent-dllimport`_, `-Wmicrosoft-anon-tag`_, `-Wmicrosoft-cast`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-const-init`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-default-arg-redefinition`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-forward-reference`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-exception-spec`_, `-Wmicrosoft-explicit-constructor-call`_, `-Wmicrosoft-extra-qualification`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-goto`_, `-Wmicrosoft-include`_, `-Wmicrosoft-mutable-reference`_, `-Wmicrosoft-pure-definition`_, `-Wmicrosoft-redeclare-static`_, `-Wmicrosoft-sealed`_, `-Wmicrosoft-template`_, `-Wmicrosoft-union-member-reference`_, `-Wmicrosoft-unqualified-friend`_, `-Wmicrosoft-using-decl`_, `-Wmicrosoft-void-pseudo-dtor`_. |
6097 | |
6098 | |
6099 | -Wmicrosoft-anon-tag |
6100 | -------------------- |
6101 | Some of the diagnostics controlled by this flag are enabled by default. |
6102 | |
6103 | **Diagnostic text:** |
6104 | |
6105 | +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ |
6106 | |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| |
6107 | | ||:diagtext:`struct`|| | |
6108 | | |+------------------+| | |
6109 | | ||:diagtext:`union` || | |
6110 | | |+------------------+| | |
6111 | +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ |
6112 | |
6113 | +--------------------------------------------------------+---------------------+---------------------------------------------+ |
6114 | |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+-------------------+| |nbsp| :diagtext:`are a Microsoft extension`| |
6115 | | ||:diagtext:`structs`|| | |
6116 | | |+-------------------+| | |
6117 | | ||:diagtext:`unions` || | |
6118 | | |+-------------------+| | |
6119 | +--------------------------------------------------------+---------------------+---------------------------------------------+ |
6120 | |
6121 | |
6122 | -Wmicrosoft-cast |
6123 | ---------------- |
6124 | This diagnostic is enabled by default. |
6125 | |
6126 | **Diagnostic text:** |
6127 | |
6128 | +------------------------------------------------------------------------------------------------------------------------------+ |
6129 | |:warning:`warning:` |nbsp| :diagtext:`static\_cast between pointer-to-function and pointer-to-object is a Microsoft extension`| |
6130 | +------------------------------------------------------------------------------------------------------------------------------+ |
6131 | |
6132 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6133 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension`| |
6134 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6135 | |
6136 | |
6137 | -Wmicrosoft-charize |
6138 | ------------------- |
6139 | **Diagnostic text:** |
6140 | |
6141 | +-------------------------------------------------------------------------------------+ |
6142 | |:warning:`warning:` |nbsp| :diagtext:`charizing operator #@ is a Microsoft extension`| |
6143 | +-------------------------------------------------------------------------------------+ |
6144 | |
6145 | |
6146 | -Wmicrosoft-comment-paste |
6147 | ------------------------- |
6148 | **Diagnostic text:** |
6149 | |
6150 | +----------------------------------------------------------------------------------------------------------+ |
6151 | |:warning:`warning:` |nbsp| :diagtext:`pasting two '/' tokens into a '//' comment is a Microsoft extension`| |
6152 | +----------------------------------------------------------------------------------------------------------+ |
6153 | |
6154 | |
6155 | -Wmicrosoft-const-init |
6156 | ---------------------- |
6157 | This diagnostic is enabled by default. |
6158 | |
6159 | **Diagnostic text:** |
6160 | |
6161 | +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ |
6162 | |:warning:`warning:` |nbsp| :diagtext:`default initialization of an object of const type` |nbsp| :placeholder:`A`|+---------------------------------------------------------------+| |nbsp| :diagtext:`is a Microsoft extension`| |
6163 | | || || | |
6164 | | |+---------------------------------------------------------------+| | |
6165 | | || |nbsp| :diagtext:`without a user-provided default constructor`|| | |
6166 | | |+---------------------------------------------------------------+| | |
6167 | +----------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------+--------------------------------------------+ |
6168 | |
6169 | |
6170 | -Wmicrosoft-cpp-macro |
6171 | --------------------- |
6172 | **Diagnostic text:** |
6173 | |
6174 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6175 | |:warning:`warning:` |nbsp| :diagtext:`C++ operator` |nbsp| :placeholder:`A` |nbsp| :diagtext:`(aka` |nbsp| :placeholder:`B`:diagtext:`) used as a macro name`| |
6176 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6177 | |
6178 | |
6179 | -Wmicrosoft-default-arg-redefinition |
6180 | ------------------------------------ |
6181 | This diagnostic is enabled by default. |
6182 | |
6183 | **Diagnostic text:** |
6184 | |
6185 | +-----------------------------------------------------------------------+ |
6186 | |:warning:`warning:` |nbsp| :diagtext:`redefinition of default argument`| |
6187 | +-----------------------------------------------------------------------+ |
6188 | |
6189 | |
6190 | -Wmicrosoft-end-of-file |
6191 | ----------------------- |
6192 | **Diagnostic text:** |
6193 | |
6194 | +----------------------------------------------------------------------------------------------+ |
6195 | |:warning:`warning:` |nbsp| :diagtext:`treating Ctrl-Z as end-of-file is a Microsoft extension`| |
6196 | +----------------------------------------------------------------------------------------------+ |
6197 | |
6198 | |
6199 | -Wmicrosoft-enum-forward-reference |
6200 | ---------------------------------- |
6201 | This diagnostic is enabled by default. |
6202 | |
6203 | **Diagnostic text:** |
6204 | |
6205 | +---------------------------------------------------------------------------------------------------+ |
6206 | |:warning:`warning:` |nbsp| :diagtext:`forward references to 'enum' types are a Microsoft extension`| |
6207 | +---------------------------------------------------------------------------------------------------+ |
6208 | |
6209 | |
6210 | -Wmicrosoft-enum-value |
6211 | ---------------------- |
6212 | **Diagnostic text:** |
6213 | |
6214 | +---------------------------------------------------------------------------------------------------------------------------+ |
6215 | |:warning:`warning:` |nbsp| :diagtext:`enumerator value is not representable in the underlying type` |nbsp| :placeholder:`A`| |
6216 | +---------------------------------------------------------------------------------------------------------------------------+ |
6217 | |
6218 | |
6219 | -Wmicrosoft-exception-spec |
6220 | -------------------------- |
6221 | Some of the diagnostics controlled by this flag are enabled by default. |
6222 | |
6223 | **Diagnostic text:** |
6224 | |
6225 | +------------------------------------------------------------------------------------------------+ |
6226 | |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| |
6227 | +------------------------------------------------------------------------------------------------+ |
6228 | |
6229 | +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ |
6230 | |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not allowed in exception specification`| |
6231 | | || || | |
6232 | | |+--------------------------------+| | |
6233 | | ||:diagtext:`pointer to` |nbsp| || | |
6234 | | |+--------------------------------+| | |
6235 | | ||:diagtext:`reference to` |nbsp| || | |
6236 | | |+--------------------------------+| | |
6237 | +---------------------------+----------------------------------+----------------------------------------------------------------------------------------------------------------+ |
6238 | |
6239 | +-----------------------------------------------------------------------------------------------------------------+ |
6240 | |:warning:`warning:` |nbsp| :diagtext:`exception specification in declaration does not match previous declaration`| |
6241 | +-----------------------------------------------------------------------------------------------------------------+ |
6242 | |
6243 | +------------------------------------------------------------------------------------------------------------------------+ |
6244 | |:warning:`warning:` |nbsp| :diagtext:`exception specification in explicit instantiation does not match instantiated one`| |
6245 | +------------------------------------------------------------------------------------------------------------------------+ |
6246 | |
6247 | +--------------------------------------------------------------------------------------------------------------------------------+ |
6248 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| |
6249 | +--------------------------------------------------------------------------------------------------------------------------------+ |
6250 | |
6251 | +-------------------------------------------------------------------------------------------------------------------+ |
6252 | |:warning:`warning:` |nbsp| :diagtext:`exception specification of overriding function is more lax than base version`| |
6253 | +-------------------------------------------------------------------------------------------------------------------+ |
6254 | |
6255 | |
6256 | -Wmicrosoft-exists |
6257 | ------------------ |
6258 | This diagnostic is enabled by default. |
6259 | |
6260 | **Diagnostic text:** |
6261 | |
6262 | +--------------------------------------------------------+---------------------------------+--------------------------------------------+ |
6263 | |:warning:`warning:` |nbsp| :diagtext:`dependent` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`declarations are ignored`| |
6264 | | ||:diagtext:`\_\_if\_not\_exists`|| | |
6265 | | |+-------------------------------+| | |
6266 | | ||:diagtext:`\_\_if\_exists` || | |
6267 | | |+-------------------------------+| | |
6268 | +--------------------------------------------------------+---------------------------------+--------------------------------------------+ |
6269 | |
6270 | |
6271 | -Wmicrosoft-explicit-constructor-call |
6272 | ------------------------------------- |
6273 | This diagnostic is enabled by default. |
6274 | |
6275 | **Diagnostic text:** |
6276 | |
6277 | +-------------------------------------------------------------------------------------------+ |
6278 | |:warning:`warning:` |nbsp| :diagtext:`explicit constructor calls are a Microsoft extension`| |
6279 | +-------------------------------------------------------------------------------------------+ |
6280 | |
6281 | |
6282 | -Wmicrosoft-extra-qualification |
6283 | ------------------------------- |
6284 | This diagnostic is enabled by default. |
6285 | |
6286 | **Diagnostic text:** |
6287 | |
6288 | +--------------------------------------------------------------------------------------------+ |
6289 | |:warning:`warning:` |nbsp| :diagtext:`extra qualification on member` |nbsp| :placeholder:`A`| |
6290 | +--------------------------------------------------------------------------------------------+ |
6291 | |
6292 | |
6293 | -Wmicrosoft-fixed-enum |
6294 | ---------------------- |
6295 | **Diagnostic text:** |
6296 | |
6297 | +---------------------------------------------------------------------------------------------------------------+ |
6298 | |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a Microsoft extension`| |
6299 | +---------------------------------------------------------------------------------------------------------------+ |
6300 | |
6301 | |
6302 | -Wmicrosoft-flexible-array |
6303 | -------------------------- |
6304 | **Diagnostic text:** |
6305 | |
6306 | +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ |
6307 | |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in otherwise empty` |nbsp| |+---------------------+| |nbsp| :diagtext:`is a Microsoft extension`| |
6308 | | ||:diagtext:`struct` || | |
6309 | | |+---------------------+| | |
6310 | | ||:diagtext:`interface`|| | |
6311 | | |+---------------------+| | |
6312 | | ||:diagtext:`union` || | |
6313 | | |+---------------------+| | |
6314 | | ||:diagtext:`class` || | |
6315 | | |+---------------------+| | |
6316 | | ||:diagtext:`enum` || | |
6317 | | |+---------------------+| | |
6318 | +----------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+ |
6319 | |
6320 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
6321 | |:warning:`warning:` |nbsp| :diagtext:`flexible array member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in a union is a Microsoft extension`| |
6322 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
6323 | |
6324 | |
6325 | -Wmicrosoft-goto |
6326 | ---------------- |
6327 | This diagnostic is enabled by default. |
6328 | |
6329 | **Diagnostic text:** |
6330 | |
6331 | +----------------------------------------------------------------------------------------------------------+ |
6332 | |:warning:`warning:` |nbsp| :diagtext:`jump from this goto statement to its label is a Microsoft extension`| |
6333 | +----------------------------------------------------------------------------------------------------------+ |
6334 | |
6335 | |
6336 | -Wmicrosoft-include |
6337 | ------------------- |
6338 | This diagnostic is enabled by default. |
6339 | |
6340 | **Diagnostic text:** |
6341 | |
6342 | +------------------------------------------------------------------------------------------------------------------------------+ |
6343 | |:warning:`warning:` |nbsp| :diagtext:`#include resolved using non-portable Microsoft search rules as:` |nbsp| :placeholder:`A`| |
6344 | +------------------------------------------------------------------------------------------------------------------------------+ |
6345 | |
6346 | |
6347 | -Wmicrosoft-mutable-reference |
6348 | ----------------------------- |
6349 | This diagnostic is enabled by default. |
6350 | |
6351 | **Diagnostic text:** |
6352 | |
6353 | +---------------------------------------------------------------------------------------------+ |
6354 | |:warning:`warning:` |nbsp| :diagtext:`'mutable' on a reference type is a Microsoft extension`| |
6355 | +---------------------------------------------------------------------------------------------+ |
6356 | |
6357 | |
6358 | -Wmicrosoft-pure-definition |
6359 | --------------------------- |
6360 | This diagnostic is enabled by default. |
6361 | |
6362 | **Diagnostic text:** |
6363 | |
6364 | +-------------------------------------------------------------------------------------------------------+ |
6365 | |:warning:`warning:` |nbsp| :diagtext:`function definition with pure-specifier is a Microsoft extension`| |
6366 | +-------------------------------------------------------------------------------------------------------+ |
6367 | |
6368 | |
6369 | -Wmicrosoft-redeclare-static |
6370 | ---------------------------- |
6371 | **Diagnostic text:** |
6372 | |
6373 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
6374 | |:warning:`warning:` |nbsp| :diagtext:`redeclaring non-static` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as static is a Microsoft extension`| |
6375 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
6376 | |
6377 | |
6378 | -Wmicrosoft-sealed |
6379 | ------------------ |
6380 | This diagnostic is enabled by default. |
6381 | |
6382 | **Diagnostic text:** |
6383 | |
6384 | +--------------------------------------------------------------------------------+ |
6385 | |:warning:`warning:` |nbsp| :diagtext:`'sealed' keyword is a Microsoft extension`| |
6386 | +--------------------------------------------------------------------------------+ |
6387 | |
6388 | |
6389 | -Wmicrosoft-template |
6390 | -------------------- |
6391 | This diagnostic is enabled by default. |
6392 | |
6393 | **Diagnostic text:** |
6394 | |
6395 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6396 | |:warning:`warning:` |nbsp| :diagtext:`duplicate explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored as a Microsoft extension`| |
6397 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6398 | |
6399 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6400 | |:warning:`warning:` |nbsp| :diagtext:`use of identifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found via unqualified lookup into dependent bases of class templates is a Microsoft extension`| |
6401 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6402 | |
6403 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6404 | |:warning:`warning:` |nbsp| :diagtext:`explicit specialization of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`within class scope is a Microsoft extension`| |
6405 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6406 | |
6407 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6408 | |:warning:`warning:` |nbsp| :diagtext:`using the undeclared type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`as a default template argument is a Microsoft extension`| |
6409 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6410 | |
6411 | +-----------------------------------------------------------------------------------------------------------------------------+ |
6412 | |:warning:`warning:` |nbsp| :diagtext:`non-type template argument containing a dereference operation is a Microsoft extension`| |
6413 | +-----------------------------------------------------------------------------------------------------------------------------+ |
6414 | |
6415 | +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6416 | |:warning:`warning:` |nbsp| |+-------------------------------------+| |nbsp| :diagtext:`specialization of` |nbsp| :placeholder:`B` |nbsp| :diagtext:`outside namespace enclosing` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a Microsoft extension`| |
6417 | | ||:diagtext:`class template` || | |
6418 | | |+-------------------------------------+| | |
6419 | | ||:diagtext:`class template partial` || | |
6420 | | |+-------------------------------------+| | |
6421 | | ||:diagtext:`variable template` || | |
6422 | | |+-------------------------------------+| | |
6423 | | ||:diagtext:`variable template partial`|| | |
6424 | | |+-------------------------------------+| | |
6425 | | ||:diagtext:`function template` || | |
6426 | | |+-------------------------------------+| | |
6427 | | ||:diagtext:`member function` || | |
6428 | | |+-------------------------------------+| | |
6429 | | ||:diagtext:`static data member` || | |
6430 | | |+-------------------------------------+| | |
6431 | | ||:diagtext:`member class` || | |
6432 | | |+-------------------------------------+| | |
6433 | | ||:diagtext:`member enumeration` || | |
6434 | | |+-------------------------------------+| | |
6435 | +---------------------------+---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6436 | |
6437 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
6438 | |:warning:`warning:` |nbsp| :diagtext:`template argument for template type parameter must be a type; omitted 'typename' is a Microsoft extension`| |
6439 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
6440 | |
6441 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6442 | |:warning:`warning:` |nbsp| :diagtext:`use of undeclared identifier` |nbsp| :placeholder:`A`:diagtext:`; unqualified lookup into dependent bases of class template` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is a Microsoft extension`| |
6443 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6444 | |
6445 | |
6446 | -Wmicrosoft-union-member-reference |
6447 | ---------------------------------- |
6448 | This diagnostic is enabled by default. |
6449 | |
6450 | **Diagnostic text:** |
6451 | |
6452 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6453 | |:warning:`warning:` |nbsp| :diagtext:`union member` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has reference type` |nbsp| :placeholder:`B`:diagtext:`, which is a Microsoft extension`| |
6454 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6455 | |
6456 | |
6457 | -Wmicrosoft-unqualified-friend |
6458 | ------------------------------ |
6459 | This diagnostic is enabled by default. |
6460 | |
6461 | **Diagnostic text:** |
6462 | |
6463 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6464 | |:warning:`warning:` |nbsp| :diagtext:`unqualified friend declaration referring to type outside of the nearest enclosing namespace is a Microsoft extension; add a nested name specifier`| |
6465 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6466 | |
6467 | |
6468 | -Wmicrosoft-using-decl |
6469 | ---------------------- |
6470 | This diagnostic is enabled by default. |
6471 | |
6472 | **Diagnostic text:** |
6473 | |
6474 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6475 | |:warning:`warning:` |nbsp| :diagtext:`using declaration referring to inaccessible member '`:placeholder:`A`:diagtext:`' (which refers to accessible member '`:placeholder:`B`:diagtext:`') is a Microsoft compatibility extension`| |
6476 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6477 | |
6478 | |
6479 | -Wmicrosoft-void-pseudo-dtor |
6480 | ---------------------------- |
6481 | This diagnostic is enabled by default. |
6482 | |
6483 | **Diagnostic text:** |
6484 | |
6485 | +------------------------------------------------------------------------------------------------+ |
6486 | |:warning:`warning:` |nbsp| :diagtext:`pseudo-destructors on type void are a Microsoft extension`| |
6487 | +------------------------------------------------------------------------------------------------+ |
6488 | |
6489 | |
6490 | -Wmismatched-new-delete |
6491 | ----------------------- |
6492 | This diagnostic is enabled by default. |
6493 | |
6494 | **Diagnostic text:** |
6495 | |
6496 | +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ |
6497 | |:warning:`warning:` |nbsp| :diagtext:`'delete`|+----------------+|:diagtext:`' applied to a pointer that was allocated with 'new`|+----------------+|:diagtext:`'; did you mean 'delete`|+----------------+|:diagtext:`'?`| |
6498 | | || || ||:diagtext:`\[\]`|| ||:diagtext:`\[\]`|| | |
6499 | | |+----------------+| |+----------------+| |+----------------+| | |
6500 | | ||:diagtext:`\[\]`|| || || || || | |
6501 | | |+----------------+| |+----------------+| |+----------------+| | |
6502 | +----------------------------------------------+------------------+---------------------------------------------------------------+------------------+-----------------------------------+------------------+--------------+ |
6503 | |
6504 | |
6505 | -Wmismatched-parameter-types |
6506 | ---------------------------- |
6507 | This diagnostic is enabled by default. |
6508 | |
6509 | **Diagnostic text:** |
6510 | |
6511 | +---------------------------------------------------------------------------------------------------------------+ |
6512 | |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in implementation of` |nbsp| :placeholder:`A`| |
6513 | +---------------------------------------------------------------------------------------------------------------+ |
6514 | |
6515 | |
6516 | -Wmismatched-return-types |
6517 | ------------------------- |
6518 | This diagnostic is enabled by default. |
6519 | |
6520 | **Diagnostic text:** |
6521 | |
6522 | +-----------------------------------------------------------------------------------------------------------+ |
6523 | |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in implementation of` |nbsp| :placeholder:`A`| |
6524 | +-----------------------------------------------------------------------------------------------------------+ |
6525 | |
6526 | |
6527 | -Wmismatched-tags |
6528 | ----------------- |
6529 | **Diagnostic text:** |
6530 | |
6531 | +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+ |
6532 | |:warning:`warning:` |nbsp| :placeholder:`C` |nbsp| :diagtext:`defined as` |nbsp| |+------------------------+|+----------------------------+| |nbsp| :diagtext:`here but previously declared as` |nbsp| |+------------------------+|+----------------------------+| |
6533 | | ||:diagtext:`a struct` ||| || ||:diagtext:`a struct` ||| || |
6534 | | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
6535 | | ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`an interface`||| |nbsp| :diagtext:`template`|| |
6536 | | |+------------------------+|+----------------------------+| |+------------------------+|+----------------------------+| |
6537 | | ||:diagtext:`a class` || | ||:diagtext:`a class` || | |
6538 | | |+------------------------+| | |+------------------------+| | |
6539 | +---------------------------------------------------------------------------------+--------------------------+------------------------------+-----------------------------------------------------------+--------------------------+------------------------------+ |
6540 | |
6541 | +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+ |
6542 | |:warning:`warning:` |nbsp| |+---------------------+|+----------------------------+| |nbsp| :placeholder:`C` |nbsp| :diagtext:`was previously declared as a` |nbsp| |+---------------------+|+----------------------------+| |
6543 | | ||:diagtext:`struct` ||| || ||:diagtext:`struct` ||| || |
6544 | | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
6545 | | ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| ||:diagtext:`interface`||| |nbsp| :diagtext:`template`|| |
6546 | | |+---------------------+|+----------------------------+| |+---------------------+|+----------------------------+| |
6547 | | ||:diagtext:`class` || | ||:diagtext:`class` || | |
6548 | | |+---------------------+| | |+---------------------+| | |
6549 | +---------------------------+-----------------------+------------------------------+--------------------------------------------------------------------------------+-----------------------+------------------------------+ |
6550 | |
6551 | |
6552 | -Wmissing-braces |
6553 | ---------------- |
6554 | **Diagnostic text:** |
6555 | |
6556 | +----------------------------------------------------------------------------------------+ |
6557 | |:warning:`warning:` |nbsp| :diagtext:`suggest braces around initialization of subobject`| |
6558 | +----------------------------------------------------------------------------------------+ |
6559 | |
6560 | |
6561 | -Wmissing-declarations |
6562 | ---------------------- |
6563 | This diagnostic is enabled by default. |
6564 | |
6565 | **Diagnostic text:** |
6566 | |
6567 | +----------------------------------------------------------------------------+ |
6568 | |:warning:`warning:` |nbsp| :diagtext:`declaration does not declare anything`| |
6569 | +----------------------------------------------------------------------------+ |
6570 | |
6571 | +-----------------------------------------------------------------------------------------------------------------+ |
6572 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' is not permitted on a declaration of a type`| |
6573 | +-----------------------------------------------------------------------------------------------------------------+ |
6574 | |
6575 | +--------------------------------------------------------------+ |
6576 | |:warning:`warning:` |nbsp| :diagtext:`typedef requires a name`| |
6577 | +--------------------------------------------------------------+ |
6578 | |
6579 | +-------------------------------------------------------------------------------------------------+ |
6580 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' ignored on this declaration`| |
6581 | +-------------------------------------------------------------------------------------------------+ |
6582 | |
6583 | |
6584 | -Wmissing-exception-spec |
6585 | ------------------------ |
6586 | This diagnostic is enabled by default. |
6587 | |
6588 | **Diagnostic text:** |
6589 | |
6590 | +--------------------------------------------------------------------------------------------------------------------------------+ |
6591 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is missing exception specification '`:placeholder:`B`:diagtext:`'`| |
6592 | +--------------------------------------------------------------------------------------------------------------------------------+ |
6593 | |
6594 | |
6595 | -Wmissing-field-initializers |
6596 | ---------------------------- |
6597 | **Diagnostic text:** |
6598 | |
6599 | +-----------------------------------------------------------------------------------------------------------+ |
6600 | |:warning:`warning:` |nbsp| :diagtext:`missing field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`initializer`| |
6601 | +-----------------------------------------------------------------------------------------------------------+ |
6602 | |
6603 | |
6604 | -Wmissing-format-attribute |
6605 | -------------------------- |
6606 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
6607 | |
6608 | -Wmissing-include-dirs |
6609 | ---------------------- |
6610 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
6611 | |
6612 | -Wmissing-method-return-type |
6613 | ---------------------------- |
6614 | **Diagnostic text:** |
6615 | |
6616 | +--------------------------------------------------------------------------------------------+ |
6617 | |:warning:`warning:` |nbsp| :diagtext:`method has no return type specified; defaults to 'id'`| |
6618 | +--------------------------------------------------------------------------------------------+ |
6619 | |
6620 | |
6621 | -Wmissing-noescape |
6622 | ------------------ |
6623 | This diagnostic is enabled by default. |
6624 | |
6625 | **Diagnostic text:** |
6626 | |
6627 | +----------------------------------------------------------------------------------------------------------------------------+ |
6628 | |:warning:`warning:` |nbsp| :diagtext:`parameter of overriding method should be annotated with \_\_attribute\_\_((noescape))`| |
6629 | +----------------------------------------------------------------------------------------------------------------------------+ |
6630 | |
6631 | |
6632 | -Wmissing-noreturn |
6633 | ------------------ |
6634 | **Diagnostic text:** |
6635 | |
6636 | +----------------------------------------------------------------------------------------+ |
6637 | |:warning:`warning:` |nbsp| :diagtext:`block could be declared with attribute 'noreturn'`| |
6638 | +----------------------------------------------------------------------------------------+ |
6639 | |
6640 | +---------------------------+----------------------+---------------------------------------------------------------------------------------+ |
6641 | |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`could be declared with attribute 'noreturn'`| |
6642 | | ||:diagtext:`function`|| | |
6643 | | |+--------------------+| | |
6644 | | ||:diagtext:`method` || | |
6645 | | |+--------------------+| | |
6646 | +---------------------------+----------------------+---------------------------------------------------------------------------------------+ |
6647 | |
6648 | |
6649 | -Wmissing-prototype-for-cc |
6650 | -------------------------- |
6651 | This diagnostic is enabled by default. |
6652 | |
6653 | **Diagnostic text:** |
6654 | |
6655 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
6656 | |:warning:`warning:` |nbsp| :diagtext:`function with no prototype cannot use the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`calling convention`| |
6657 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
6658 | |
6659 | |
6660 | -Wmissing-prototypes |
6661 | -------------------- |
6662 | **Diagnostic text:** |
6663 | |
6664 | +-------------------------------------------------------------------------------------------------+ |
6665 | |:warning:`warning:` |nbsp| :diagtext:`no previous prototype for function` |nbsp| :placeholder:`A`| |
6666 | +-------------------------------------------------------------------------------------------------+ |
6667 | |
6668 | |
6669 | -Wmissing-selector-name |
6670 | ----------------------- |
6671 | This diagnostic is enabled by default. |
6672 | |
6673 | **Diagnostic text:** |
6674 | |
6675 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
6676 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`used as the name of the previous parameter rather than as part of the selector`| |
6677 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
6678 | |
6679 | |
6680 | -Wmissing-sysroot |
6681 | ----------------- |
6682 | This diagnostic is enabled by default. |
6683 | |
6684 | **Diagnostic text:** |
6685 | |
6686 | +------------------------------------------------------------------------------------------------+ |
6687 | |:warning:`warning:` |nbsp| :diagtext:`no such sysroot directory: '`:placeholder:`A`:diagtext:`'`| |
6688 | +------------------------------------------------------------------------------------------------+ |
6689 | |
6690 | |
6691 | -Wmissing-variable-declarations |
6692 | ------------------------------- |
6693 | **Diagnostic text:** |
6694 | |
6695 | +---------------------------------------------------------------------------------------------------------------------+ |
6696 | |:warning:`warning:` |nbsp| :diagtext:`no previous extern declaration for non-static variable` |nbsp| :placeholder:`A`| |
6697 | +---------------------------------------------------------------------------------------------------------------------+ |
6698 | |
6699 | |
6700 | -Rmodule-build |
6701 | -------------- |
6702 | **Diagnostic text:** |
6703 | |
6704 | +---------------------------------------------------------------------------------------------------------------------+ |
6705 | |:remark:`remark:` |nbsp| :diagtext:`building module '`:placeholder:`A`:diagtext:`' as '`:placeholder:`B`:diagtext:`'`| |
6706 | +---------------------------------------------------------------------------------------------------------------------+ |
6707 | |
6708 | +--------------------------------------------------------------------------------------------+ |
6709 | |:remark:`remark:` |nbsp| :diagtext:`finished building module '`:placeholder:`A`:diagtext:`'`| |
6710 | +--------------------------------------------------------------------------------------------+ |
6711 | |
6712 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
6713 | |:remark:`remark:` |nbsp| :diagtext:`could not acquire lock file for module '`:placeholder:`A`:diagtext:`':` |nbsp| :placeholder:`B`| |
6714 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
6715 | |
6716 | +---------------------------------------------------------------------------------------------------------------------+ |
6717 | |:remark:`remark:` |nbsp| :diagtext:`timed out waiting to acquire lock file for module '`:placeholder:`A`:diagtext:`'`| |
6718 | +---------------------------------------------------------------------------------------------------------------------+ |
6719 | |
6720 | |
6721 | -Wmodule-conflict |
6722 | ----------------- |
6723 | This diagnostic is enabled by default. |
6724 | |
6725 | **Diagnostic text:** |
6726 | |
6727 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6728 | |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' conflicts with already-imported module '`:placeholder:`B`:diagtext:`':` |nbsp| :placeholder:`C`| |
6729 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6730 | |
6731 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6732 | |:warning:`warning:` |nbsp| :diagtext:`module file '`:placeholder:`A`:diagtext:`' was validated as a system module and is now being imported as a non-system module; any difference in diagnostic options will be ignored`| |
6733 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6734 | |
6735 | |
6736 | -Wmodule-file-config-mismatch |
6737 | ----------------------------- |
6738 | This diagnostic is an error by default, but the flag ``-Wno-module-file-config-mismatch`` can be used to disable the error. |
6739 | |
6740 | **Diagnostic text:** |
6741 | |
6742 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6743 | |:error:`error:` |nbsp| :diagtext:`module file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be loaded due to a configuration mismatch with the current compilation`| |
6744 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6745 | |
6746 | |
6747 | -Wmodule-file-extension |
6748 | ----------------------- |
6749 | This diagnostic is enabled by default. |
6750 | |
6751 | **Diagnostic text:** |
6752 | |
6753 | +----------------------------------------------------------------------------------------------------------------+ |
6754 | |:warning:`warning:` |nbsp| :diagtext:`duplicate module file extension block name '`:placeholder:`A`:diagtext:`'`| |
6755 | +----------------------------------------------------------------------------------------------------------------+ |
6756 | |
6757 | |
6758 | -Wmodule-import-in-extern-c |
6759 | --------------------------- |
6760 | This diagnostic is an error by default, but the flag ``-Wno-module-import-in-extern-c`` can be used to disable the error. |
6761 | |
6762 | **Diagnostic text:** |
6763 | |
6764 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
6765 | |:error:`error:` |nbsp| :diagtext:`import of C++ module '`:placeholder:`A`:diagtext:`' appears within extern "C" language linkage specification`| |
6766 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
6767 | |
6768 | |
6769 | -Wmodules-ambiguous-internal-linkage |
6770 | ------------------------------------ |
6771 | This diagnostic is enabled by default. |
6772 | |
6773 | **Diagnostic text:** |
6774 | |
6775 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6776 | |:warning:`warning:` |nbsp| :diagtext:`ambiguous use of internal linkage declaration` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined in multiple modules`| |
6777 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6778 | |
6779 | |
6780 | -Wmodules-import-nested-redundant |
6781 | --------------------------------- |
6782 | This diagnostic is an error by default, but the flag ``-Wno-modules-import-nested-redundant`` can be used to disable the error. |
6783 | |
6784 | **Diagnostic text:** |
6785 | |
6786 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6787 | |:error:`error:` |nbsp| :diagtext:`redundant #include of module '`:placeholder:`A`:diagtext:`' appears within` |nbsp| :placeholder:`B`| |
6788 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6789 | |
6790 | |
6791 | -Wmost |
6792 | ------ |
6793 | Some of the diagnostics controlled by this flag are enabled by default. |
6794 | |
6795 | Controls `-Wcast-of-sel-type`_, `-Wchar-subscripts`_, `-Wcomment`_, `-Wdelete-non-virtual-dtor`_, `-Wextern-c-compat`_, `-Wfor-loop-analysis`_, `-Wformat`_, `-Wimplicit`_, `-Winfinite-recursion`_, `-Wmismatched-tags`_, `-Wmissing-braces`_, `-Wmove`_, `-Wmultichar`_, `-Wobjc-designated-initializers`_, `-Wobjc-flexible-array`_, `-Wobjc-missing-super-calls`_, `-Woverloaded-virtual`_, `-Wprivate-extern`_, `-Wreorder`_, `-Wreturn-type`_, `-Wself-assign`_, `-Wself-move`_, `-Wsizeof-array-argument`_, `-Wsizeof-array-decay`_, `-Wstring-plus-int`_, `-Wtrigraphs`_, `-Wuninitialized`_, `-Wunknown-pragmas`_, `-Wunused`_, `-Wuser-defined-warnings`_, `-Wvolatile-register-var`_. |
6796 | |
6797 | |
6798 | -Wmove |
6799 | ------ |
6800 | Controls `-Wpessimizing-move`_, `-Wredundant-move`_, `-Wself-move`_. |
6801 | |
6802 | |
6803 | -Wmsvc-include |
6804 | -------------- |
6805 | Synonym for `-Wmicrosoft-include`_. |
6806 | |
6807 | |
6808 | -Wmsvc-not-found |
6809 | ---------------- |
6810 | This diagnostic is enabled by default. |
6811 | |
6812 | **Diagnostic text:** |
6813 | |
6814 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6815 | |:warning:`warning:` |nbsp| :diagtext:`unable to find a Visual Studio installation; try running Clang from a developer command prompt`| |
6816 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
6817 | |
6818 | |
6819 | -Wmultichar |
6820 | ----------- |
6821 | This diagnostic is enabled by default. |
6822 | |
6823 | **Diagnostic text:** |
6824 | |
6825 | +-------------------------------------------------------------------------+ |
6826 | |:warning:`warning:` |nbsp| :diagtext:`multi-character character constant`| |
6827 | +-------------------------------------------------------------------------+ |
6828 | |
6829 | |
6830 | -Wmultiple-move-vbase |
6831 | --------------------- |
6832 | This diagnostic is enabled by default. |
6833 | |
6834 | **Diagnostic text:** |
6835 | |
6836 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6837 | |:warning:`warning:` |nbsp| :diagtext:`defaulted move assignment operator of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will move assign virtual base class` |nbsp| :placeholder:`B` |nbsp| :diagtext:`multiple times`| |
6838 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6839 | |
6840 | |
6841 | -Wnarrowing |
6842 | ----------- |
6843 | Synonym for `-Wc++11-narrowing`_. |
6844 | |
6845 | |
6846 | -Wnested-anon-types |
6847 | ------------------- |
6848 | **Diagnostic text:** |
6849 | |
6850 | +---------------------------------------------------------------------------------------+--------------------+------------------------------------+ |
6851 | |:warning:`warning:` |nbsp| :diagtext:`anonymous types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are an extension`| |
6852 | | ||:diagtext:`struct`|| | |
6853 | | |+------------------+| | |
6854 | | ||:diagtext:`union` || | |
6855 | | |+------------------+| | |
6856 | +---------------------------------------------------------------------------------------+--------------------+------------------------------------+ |
6857 | |
6858 | |
6859 | -Wnested-externs |
6860 | ---------------- |
6861 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
6862 | |
6863 | -Wnew-returns-null |
6864 | ------------------ |
6865 | This diagnostic is enabled by default. |
6866 | |
6867 | **Diagnostic text:** |
6868 | |
6869 | +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ |
6870 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a null pointer unless it is declared 'throw()'`|+---------------------------------+| |
6871 | | || || |
6872 | | |+---------------------------------+| |
6873 | | || |nbsp| :diagtext:`or 'noexcept'`|| |
6874 | | |+---------------------------------+| |
6875 | +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+ |
6876 | |
6877 | |
6878 | -Wnewline-eof |
6879 | ------------- |
6880 | **Diagnostic text:** |
6881 | |
6882 | +----------------------------------------------------------------+ |
6883 | |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| |
6884 | +----------------------------------------------------------------+ |
6885 | |
6886 | +----------------------------------------------------------------+ |
6887 | |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| |
6888 | +----------------------------------------------------------------+ |
6889 | |
6890 | |
6891 | -Wnoexcept-type |
6892 | --------------- |
6893 | Synonym for `-Wc++17-compat-mangling`_. |
6894 | |
6895 | |
6896 | -Wnon-gcc |
6897 | --------- |
6898 | Some of the diagnostics controlled by this flag are enabled by default. |
6899 | |
6900 | Controls `-Wconversion`_, `-Wliteral-range`_, `-Wsign-compare`_. |
6901 | |
6902 | |
6903 | -Wnon-literal-null-conversion |
6904 | ----------------------------- |
6905 | This diagnostic is enabled by default. |
6906 | |
6907 | **Diagnostic text:** |
6908 | |
6909 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
6910 | |:warning:`warning:` |nbsp| :diagtext:`expression which evaluates to zero treated as a null pointer constant of type` |nbsp| :placeholder:`A`| |
6911 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
6912 | |
6913 | |
6914 | -Wnon-modular-include-in-framework-module |
6915 | ----------------------------------------- |
6916 | **Diagnostic text:** |
6917 | |
6918 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6919 | |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside framework module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| |
6920 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
6921 | |
6922 | |
6923 | -Wnon-modular-include-in-module |
6924 | ------------------------------- |
6925 | Also controls `-Wnon-modular-include-in-framework-module`_. |
6926 | |
6927 | **Diagnostic text:** |
6928 | |
6929 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
6930 | |:warning:`warning:` |nbsp| :diagtext:`include of non-modular header inside module '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| |
6931 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
6932 | |
6933 | |
6934 | -Wnon-pod-varargs |
6935 | ----------------- |
6936 | This diagnostic is an error by default, but the flag ``-Wno-non-pod-varargs`` can be used to disable the error. |
6937 | |
6938 | **Diagnostic text:** |
6939 | |
6940 | +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
6941 | |:error:`error:` |nbsp| :diagtext:`cannot pass object of` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`through variadic` |nbsp| |+-----------------------+|:diagtext:`; call will abort at runtime`| |
6942 | | ||:diagtext:`non-POD` || ||:diagtext:`function` || | |
6943 | | |+-----------------------+| |+-----------------------+| | |
6944 | | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | |
6945 | | |+-----------------------+| |+-----------------------+| | |
6946 | | | | ||:diagtext:`method` || | |
6947 | | | | |+-----------------------+| | |
6948 | | | | ||:diagtext:`constructor`|| | |
6949 | | | | |+-----------------------+| | |
6950 | +----------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------------------------+-------------------------+----------------------------------------+ |
6951 | |
6952 | +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ |
6953 | |:error:`error:` |nbsp| :diagtext:`cannot pass` |nbsp| |+-----------------------+| |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to variadic` |nbsp| |+-----------------------+|:diagtext:`; expected type from format string was` |nbsp| :placeholder:`D`| |
6954 | | ||:diagtext:`non-POD` || ||:diagtext:`function` || | |
6955 | | |+-----------------------+| |+-----------------------+| | |
6956 | | ||:diagtext:`non-trivial`|| ||:diagtext:`block` || | |
6957 | | |+-----------------------+| |+-----------------------+| | |
6958 | | | | ||:diagtext:`method` || | |
6959 | | | | |+-----------------------+| | |
6960 | | | | ||:diagtext:`constructor`|| | |
6961 | | | | |+-----------------------+| | |
6962 | +------------------------------------------------------+-------------------------+-------------------------------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------------------+ |
6963 | |
6964 | +----------------------------------------------------------------------------------------------------------+ |
6965 | |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of non-POD type` |nbsp| :placeholder:`A`| |
6966 | +----------------------------------------------------------------------------------------------------------+ |
6967 | |
6968 | +--------------------------------------------------------------------------------------------------------------------------+ |
6969 | |:error:`error:` |nbsp| :diagtext:`second argument to 'va\_arg' is of ARC ownership-qualified type` |nbsp| :placeholder:`A`| |
6970 | +--------------------------------------------------------------------------------------------------------------------------+ |
6971 | |
6972 | |
6973 | -Wnon-virtual-dtor |
6974 | ------------------ |
6975 | **Diagnostic text:** |
6976 | |
6977 | +---------------------------------------------------------------------------------------------------------------+ |
6978 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has virtual functions but non-virtual destructor`| |
6979 | +---------------------------------------------------------------------------------------------------------------+ |
6980 | |
6981 | |
6982 | -Wnonnull |
6983 | --------- |
6984 | This diagnostic is enabled by default. |
6985 | |
6986 | **Diagnostic text:** |
6987 | |
6988 | +------------------------------------------------------------------------------------------------+ |
6989 | |:warning:`warning:` |nbsp| :diagtext:`null passed to a callee that requires a non-null argument`| |
6990 | +------------------------------------------------------------------------------------------------+ |
6991 | |
6992 | +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ |
6993 | |:warning:`warning:` |nbsp| :diagtext:`null returned from` |nbsp| |+--------------------+| |nbsp| :diagtext:`that requires a non-null return value`| |
6994 | | ||:diagtext:`function`|| | |
6995 | | |+--------------------+| | |
6996 | | ||:diagtext:`method` || | |
6997 | | |+--------------------+| | |
6998 | +-----------------------------------------------------------------+----------------------+---------------------------------------------------------+ |
6999 | |
7000 | |
7001 | -Wnonportable-cfstrings |
7002 | ----------------------- |
7003 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
7004 | |
7005 | -Wnonportable-include-path |
7006 | -------------------------- |
7007 | This diagnostic is enabled by default. |
7008 | |
7009 | **Diagnostic text:** |
7010 | |
7011 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7012 | |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| |
7013 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7014 | |
7015 | |
7016 | -Wnonportable-system-include-path |
7017 | --------------------------------- |
7018 | **Diagnostic text:** |
7019 | |
7020 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7021 | |:warning:`warning:` |nbsp| :diagtext:`non-portable path to file '`:placeholder:`A`:diagtext:`'; specified path differs in case from file name on disk`| |
7022 | +------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7023 | |
7024 | |
7025 | -Wnonportable-vector-initialization |
7026 | ----------------------------------- |
7027 | This diagnostic is enabled by default. |
7028 | |
7029 | **Diagnostic text:** |
7030 | |
7031 | +---------------------------------------------------------------------------------------------------------------------+ |
7032 | |:warning:`warning:` |nbsp| :diagtext:`vector initializers are not compatible with NEON intrinsics in big endian mode`| |
7033 | +---------------------------------------------------------------------------------------------------------------------+ |
7034 | |
7035 | |
7036 | -Wnsconsumed-mismatch |
7037 | --------------------- |
7038 | This diagnostic is enabled by default. |
7039 | |
7040 | **Diagnostic text:** |
7041 | |
7042 | +---------------------------------------------------------------------------------------------------------------+ |
7043 | |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_consumed attribute on its parameter`| |
7044 | +---------------------------------------------------------------------------------------------------------------+ |
7045 | |
7046 | |
7047 | -Wnsreturns-mismatch |
7048 | -------------------- |
7049 | This diagnostic is enabled by default. |
7050 | |
7051 | **Diagnostic text:** |
7052 | |
7053 | +-------------------------------------------------------------------------------------+---------------------------+------------------------------+ |
7054 | |:warning:`warning:` |nbsp| :diagtext:`overriding method has mismatched ns\_returns\_`|+-------------------------+| |nbsp| :diagtext:`attributes`| |
7055 | | ||:diagtext:`not\_retained`|| | |
7056 | | |+-------------------------+| | |
7057 | | ||:diagtext:`retained` || | |
7058 | | |+-------------------------+| | |
7059 | +-------------------------------------------------------------------------------------+---------------------------+------------------------------+ |
7060 | |
7061 | |
7062 | -Wnull-arithmetic |
7063 | ----------------- |
7064 | This diagnostic is enabled by default. |
7065 | |
7066 | **Diagnostic text:** |
7067 | |
7068 | +--------------------------------------------------------------------------+ |
7069 | |:warning:`warning:` |nbsp| :diagtext:`use of NULL in arithmetic operation`| |
7070 | +--------------------------------------------------------------------------+ |
7071 | |
7072 | +--------------------------------------------------------------------------------------+--------------------------------------------------------------+ |
7073 | |:warning:`warning:` |nbsp| :diagtext:`comparison between NULL and non-pointer` |nbsp| |+------------------------------------------------------------+| |
7074 | | ||+----------------------------------------------------------+|| |
7075 | | |||:diagtext:`(`:placeholder:`B` |nbsp| :diagtext:`and NULL)`||| |
7076 | | ||+----------------------------------------------------------+|| |
7077 | | |+------------------------------------------------------------+| |
7078 | | ||+----------------------------------------------------------+|| |
7079 | | |||:diagtext:`(NULL and` |nbsp| :placeholder:`B`:diagtext:`)`||| |
7080 | | ||+----------------------------------------------------------+|| |
7081 | | |+------------------------------------------------------------+| |
7082 | +--------------------------------------------------------------------------------------+--------------------------------------------------------------+ |
7083 | |
7084 | |
7085 | -Wnull-character |
7086 | ---------------- |
7087 | This diagnostic is enabled by default. |
7088 | |
7089 | **Diagnostic text:** |
7090 | |
7091 | +-----------------------------------------------------------------------------+--------------------+---------------------------+ |
7092 | |:warning:`warning:` |nbsp| :diagtext:`null character(s) preserved in` |nbsp| |+------------------+| |nbsp| :diagtext:`literal`| |
7093 | | ||:diagtext:`char` || | |
7094 | | |+------------------+| | |
7095 | | ||:diagtext:`string`|| | |
7096 | | |+------------------+| | |
7097 | +-----------------------------------------------------------------------------+--------------------+---------------------------+ |
7098 | |
7099 | +-------------------------------------------------------------+ |
7100 | |:warning:`warning:` |nbsp| :diagtext:`null character ignored`| |
7101 | +-------------------------------------------------------------+ |
7102 | |
7103 | |
7104 | -Wnull-conversion |
7105 | ----------------- |
7106 | This diagnostic is enabled by default. |
7107 | |
7108 | **Diagnostic text:** |
7109 | |
7110 | +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ |
7111 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion of` |nbsp| |+-------------------+| |nbsp| :diagtext:`constant to` |nbsp| :placeholder:`B`| |
7112 | | ||:diagtext:`NULL` || | |
7113 | | |+-------------------+| | |
7114 | | ||:diagtext:`nullptr`|| | |
7115 | | |+-------------------+| | |
7116 | +---------------------------------------------------------------------+---------------------+-------------------------------------------------------+ |
7117 | |
7118 | |
7119 | -Wnull-dereference |
7120 | ------------------ |
7121 | This diagnostic is enabled by default. |
7122 | |
7123 | **Diagnostic text:** |
7124 | |
7125 | +------------------------------------------------------------------------------------------------------------+ |
7126 | |:warning:`warning:` |nbsp| :diagtext:`binding dereferenced null pointer to reference has undefined behavior`| |
7127 | +------------------------------------------------------------------------------------------------------------+ |
7128 | |
7129 | +---------------------------------------------------------------------------------------------------------+ |
7130 | |:warning:`warning:` |nbsp| :diagtext:`indirection of non-volatile null pointer will be deleted, not trap`| |
7131 | +---------------------------------------------------------------------------------------------------------+ |
7132 | |
7133 | |
7134 | -Wnull-pointer-arithmetic |
7135 | ------------------------- |
7136 | **Diagnostic text:** |
7137 | |
7138 | +--------------------------------------------------------------------------------------------------------------------------------+ |
7139 | |:warning:`warning:` |nbsp| :diagtext:`arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension`| |
7140 | +--------------------------------------------------------------------------------------------------------------------------------+ |
7141 | |
7142 | +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ |
7143 | |:warning:`warning:` |nbsp| :diagtext:`performing pointer arithmetic on a null pointer has undefined behavior`|+--------------------------------------------+| |
7144 | | || || |
7145 | | |+--------------------------------------------+| |
7146 | | || |nbsp| :diagtext:`if the offset is nonzero`|| |
7147 | | |+--------------------------------------------+| |
7148 | +-------------------------------------------------------------------------------------------------------------+----------------------------------------------+ |
7149 | |
7150 | |
7151 | -Wnullability |
7152 | ------------- |
7153 | This diagnostic is enabled by default. |
7154 | |
7155 | **Diagnostic text:** |
7156 | |
7157 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7158 | |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on parameter types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| |
7159 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7160 | |
7161 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7162 | |:warning:`warning:` |nbsp| :diagtext:`conflicting nullability specifier on return types,` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| |
7163 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7164 | |
7165 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7166 | |:warning:`warning:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`conflicts with existing specifier` |nbsp| :placeholder:`B`| |
7167 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7168 | |
7169 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7170 | |:warning:`warning:` |nbsp| :diagtext:`synthesized setter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for null\_resettable property` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not handle nil`| |
7171 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7172 | |
7173 | +----------------------------------------------------------------------------------------------+ |
7174 | |:warning:`warning:` |nbsp| :diagtext:`duplicate nullability specifier` |nbsp| :placeholder:`A`| |
7175 | +----------------------------------------------------------------------------------------------+ |
7176 | |
7177 | |
7178 | -Wnullability-completeness |
7179 | -------------------------- |
7180 | This diagnostic is enabled by default. |
7181 | |
7182 | Also controls `-Wnullability-completeness-on-arrays`_. |
7183 | |
7184 | **Diagnostic text:** |
7185 | |
7186 | +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ |
7187 | |:warning:`warning:` |nbsp| |+--------------------------+| |nbsp| :diagtext:`is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| |
7188 | | ||:diagtext:`pointer` || | |
7189 | | |+--------------------------+| | |
7190 | | ||:diagtext:`block pointer` || | |
7191 | | |+--------------------------+| | |
7192 | | ||:diagtext:`member pointer`|| | |
7193 | | |+--------------------------+| | |
7194 | +---------------------------+----------------------------+-----------------------------------------------------------------------------------------------------------+ |
7195 | |
7196 | |
7197 | -Wnullability-completeness-on-arrays |
7198 | ------------------------------------ |
7199 | This diagnostic is enabled by default. |
7200 | |
7201 | **Diagnostic text:** |
7202 | |
7203 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
7204 | |:warning:`warning:` |nbsp| :diagtext:`array parameter is missing a nullability type specifier (\_Nonnull, \_Nullable, or \_Null\_unspecified)`| |
7205 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
7206 | |
7207 | |
7208 | -Wnullability-declspec |
7209 | ---------------------- |
7210 | This diagnostic is an error by default, but the flag ``-Wno-nullability-declspec`` can be used to disable the error. |
7211 | |
7212 | **Diagnostic text:** |
7213 | |
7214 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ |
7215 | |:error:`error:` |nbsp| :diagtext:`nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`cannot be applied to non-pointer type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to apply the specifier to the` |nbsp| |+-----------------------------------+|:diagtext:`?`| |
7216 | | ||:diagtext:`pointer` || | |
7217 | | |+-----------------------------------+| | |
7218 | | ||:diagtext:`block pointer` || | |
7219 | | |+-----------------------------------+| | |
7220 | | ||:diagtext:`member pointer` || | |
7221 | | |+-----------------------------------+| | |
7222 | | ||:diagtext:`function pointer` || | |
7223 | | |+-----------------------------------+| | |
7224 | | ||:diagtext:`member function pointer`|| | |
7225 | | |+-----------------------------------+| | |
7226 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+-------------+ |
7227 | |
7228 | |
7229 | -Wnullability-extension |
7230 | ----------------------- |
7231 | **Diagnostic text:** |
7232 | |
7233 | +---------------------------------------------------------------------------------------------------------------------------------+ |
7234 | |:warning:`warning:` |nbsp| :diagtext:`type nullability specifier` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a Clang extension`| |
7235 | +---------------------------------------------------------------------------------------------------------------------------------+ |
7236 | |
7237 | |
7238 | -Wnullability-inferred-on-nested-type |
7239 | ------------------------------------- |
7240 | This diagnostic is enabled by default. |
7241 | |
7242 | **Diagnostic text:** |
7243 | |
7244 | +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ |
7245 | |:warning:`warning:` |nbsp| :diagtext:`inferring '\_Nonnull' for pointer type within` |nbsp| |+---------------------+| |nbsp| :diagtext:`is deprecated`| |
7246 | | ||:diagtext:`array` || | |
7247 | | |+---------------------+| | |
7248 | | ||:diagtext:`reference`|| | |
7249 | | |+---------------------+| | |
7250 | +--------------------------------------------------------------------------------------------+-----------------------+---------------------------------+ |
7251 | |
7252 | |
7253 | -Wnullable-to-nonnull-conversion |
7254 | -------------------------------- |
7255 | **Diagnostic text:** |
7256 | |
7257 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7258 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from nullable pointer` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to non-nullable pointer type` |nbsp| :placeholder:`B`| |
7259 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7260 | |
7261 | |
7262 | -Wobjc-autosynthesis-property-ivar-name-match |
7263 | --------------------------------------------- |
7264 | This diagnostic is enabled by default. |
7265 | |
7266 | **Diagnostic text:** |
7267 | |
7268 | +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ |
7269 | |:warning:`warning:` |nbsp| :diagtext:`autosynthesized property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will use` |nbsp| |+-----------------------+| |nbsp| :diagtext:`instance variable` |nbsp| :placeholder:`C`:diagtext:`, not existing instance variable` |nbsp| :placeholder:`D`| |
7270 | | || || | |
7271 | | |+-----------------------+| | |
7272 | | ||:diagtext:`synthesized`|| | |
7273 | | |+-----------------------+| | |
7274 | +---------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------------------------------------------------+ |
7275 | |
7276 | |
7277 | -Wobjc-circular-container |
7278 | ------------------------- |
7279 | This diagnostic is enabled by default. |
7280 | |
7281 | **Diagnostic text:** |
7282 | |
7283 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7284 | |:warning:`warning:` |nbsp| :diagtext:`adding '`:placeholder:`A`:diagtext:`' to '`:placeholder:`B`:diagtext:`' might cause circular dependency in container`| |
7285 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7286 | |
7287 | |
7288 | -Wobjc-cocoa-api |
7289 | ---------------- |
7290 | Synonym for `-Wobjc-redundant-api-use`_. |
7291 | |
7292 | |
7293 | -Wobjc-designated-initializers |
7294 | ------------------------------ |
7295 | This diagnostic is enabled by default. |
7296 | |
7297 | **Diagnostic text:** |
7298 | |
7299 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
7300 | |:warning:`warning:` |nbsp| :diagtext:`designated initializer missing a 'super' call to a designated initializer of the super class`| |
7301 | +-----------------------------------------------------------------------------------------------------------------------------------+ |
7302 | |
7303 | +--------------------------------------------------------------------------------------------------+ |
7304 | |:warning:`warning:` |nbsp| :diagtext:`designated initializer invoked a non-designated initializer`| |
7305 | +--------------------------------------------------------------------------------------------------+ |
7306 | |
7307 | +--------------------------------------------------------------------------------------------------------------------+ |
7308 | |:warning:`warning:` |nbsp| :diagtext:`designated initializer should only invoke a designated initializer on 'super'`| |
7309 | +--------------------------------------------------------------------------------------------------------------------+ |
7310 | |
7311 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7312 | |:warning:`warning:` |nbsp| :diagtext:`method override for the designated initializer of the superclass` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found`| |
7313 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7314 | |
7315 | +-----------------------------------------------------------------------------------------------------------+ |
7316 | |:warning:`warning:` |nbsp| :diagtext:`convenience initializer missing a 'self' call to another initializer`| |
7317 | +-----------------------------------------------------------------------------------------------------------+ |
7318 | |
7319 | +----------------------------------------------------------------------------------------------------------+ |
7320 | |:warning:`warning:` |nbsp| :diagtext:`convenience initializer should not invoke an initializer on 'super'`| |
7321 | +----------------------------------------------------------------------------------------------------------+ |
7322 | |
7323 | |
7324 | -Wobjc-flexible-array |
7325 | --------------------- |
7326 | This diagnostic is enabled by default. |
7327 | |
7328 | **Diagnostic text:** |
7329 | |
7330 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7331 | |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`can overwrite instance variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`in superclass` |nbsp| :placeholder:`D`| |
7332 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7333 | |
7334 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7335 | |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with variable sized type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not visible to subclasses and can conflict with their instance variables`| |
7336 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7337 | |
7338 | |
7339 | -Wobjc-forward-class-redefinition |
7340 | --------------------------------- |
7341 | This diagnostic is enabled by default. |
7342 | |
7343 | **Diagnostic text:** |
7344 | |
7345 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7346 | |:warning:`warning:` |nbsp| :diagtext:`redefinition of forward class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of a typedef name of an object type is ignored`| |
7347 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7348 | |
7349 | |
7350 | -Wobjc-interface-ivars |
7351 | ---------------------- |
7352 | **Diagnostic text:** |
7353 | |
7354 | +-------------------------------------------------------------------------------------------------------+ |
7355 | |:warning:`warning:` |nbsp| :diagtext:`declaration of instance variables in the interface is deprecated`| |
7356 | +-------------------------------------------------------------------------------------------------------+ |
7357 | |
7358 | |
7359 | -Wobjc-literal-compare |
7360 | ---------------------- |
7361 | This diagnostic is enabled by default. |
7362 | |
7363 | Also controls `-Wobjc-string-compare`_. |
7364 | |
7365 | **Diagnostic text:** |
7366 | |
7367 | +-------------------------------------------------------------------+----------------------------------+------------------------------------------+ |
7368 | |:warning:`warning:` |nbsp| :diagtext:`direct comparison of` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`has undefined behavior`| |
7369 | | ||:diagtext:`an array literal` || | |
7370 | | |+--------------------------------+| | |
7371 | | ||:diagtext:`a dictionary literal`|| | |
7372 | | |+--------------------------------+| | |
7373 | | ||:diagtext:`a numeric literal` || | |
7374 | | |+--------------------------------+| | |
7375 | | ||:diagtext:`a boxed expression` || | |
7376 | | |+--------------------------------+| | |
7377 | | || || | |
7378 | | |+--------------------------------+| | |
7379 | +-------------------------------------------------------------------+----------------------------------+------------------------------------------+ |
7380 | |
7381 | |
7382 | -Wobjc-literal-conversion |
7383 | ------------------------- |
7384 | This diagnostic is enabled by default. |
7385 | |
7386 | **Diagnostic text:** |
7387 | |
7388 | +-------------------------------------------------------------------------------------------------------------------------+ |
7389 | |:warning:`warning:` |nbsp| :diagtext:`implicit boolean conversion of Objective-C object literal always evaluates to true`| |
7390 | +-------------------------------------------------------------------------------------------------------------------------+ |
7391 | |
7392 | +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ |
7393 | |:warning:`warning:` |nbsp| :diagtext:`object of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not compatible with` |nbsp| |+---------------------------------+| |nbsp| :placeholder:`C`| |
7394 | | ||:diagtext:`array element type` || | |
7395 | | |+---------------------------------+| | |
7396 | | ||:diagtext:`dictionary key type` || | |
7397 | | |+---------------------------------+| | |
7398 | | ||:diagtext:`dictionary value type`|| | |
7399 | | |+---------------------------------+| | |
7400 | +-------------------------------------------------------------------------------------------------------------------------------+-----------------------------------+------------------------+ |
7401 | |
7402 | |
7403 | -Wobjc-macro-redefinition |
7404 | ------------------------- |
7405 | This diagnostic is enabled by default. |
7406 | |
7407 | **Diagnostic text:** |
7408 | |
7409 | +-------------------------------------------------------------------------------------------+ |
7410 | |:warning:`warning:` |nbsp| :diagtext:`ignoring redefinition of Objective-C qualifier macro`| |
7411 | +-------------------------------------------------------------------------------------------+ |
7412 | |
7413 | |
7414 | -Wobjc-messaging-id |
7415 | ------------------- |
7416 | **Diagnostic text:** |
7417 | |
7418 | +---------------------------------------------------------------+ |
7419 | |:warning:`warning:` |nbsp| :diagtext:`messaging unqualified id`| |
7420 | +---------------------------------------------------------------+ |
7421 | |
7422 | |
7423 | -Wobjc-method-access |
7424 | -------------------- |
7425 | This diagnostic is enabled by default. |
7426 | |
7427 | **Diagnostic text:** |
7428 | |
7429 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
7430 | |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| |
7431 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
7432 | |
7433 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7434 | |:warning:`warning:` |nbsp| :diagtext:`class method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| |
7435 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7436 | |
7437 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
7438 | |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id')`| |
7439 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
7440 | |
7441 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7442 | |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found (return type defaults to 'id'); did you mean` |nbsp| :placeholder:`C`:diagtext:`?`| |
7443 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7444 | |
7445 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7446 | |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found instead of class method` |nbsp| :placeholder:`B`| |
7447 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7448 | |
7449 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7450 | |:warning:`warning:` |nbsp| :diagtext:`instance method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is being used on 'Class' which is not in the root class`| |
7451 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7452 | |
7453 | |
7454 | -Wobjc-missing-property-synthesis |
7455 | --------------------------------- |
7456 | **Diagnostic text:** |
7457 | |
7458 | +------------------------------------------------------------------------------------------------------------------+ |
7459 | |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis is synthesizing property not explicitly synthesized`| |
7460 | +------------------------------------------------------------------------------------------------------------------+ |
7461 | |
7462 | |
7463 | -Wobjc-missing-super-calls |
7464 | -------------------------- |
7465 | This diagnostic is enabled by default. |
7466 | |
7467 | **Diagnostic text:** |
7468 | |
7469 | +-------------------------------------------------------------------------------------------------------------------+ |
7470 | |:warning:`warning:` |nbsp| :diagtext:`method possibly missing a \[super` |nbsp| :placeholder:`A`:diagtext:`\] call`| |
7471 | +-------------------------------------------------------------------------------------------------------------------+ |
7472 | |
7473 | |
7474 | -Wobjc-multiple-method-names |
7475 | ---------------------------- |
7476 | This diagnostic is enabled by default. |
7477 | |
7478 | **Diagnostic text:** |
7479 | |
7480 | +--------------------------------------------------------------------------------------------------------------+ |
7481 | |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| |
7482 | +--------------------------------------------------------------------------------------------------------------+ |
7483 | |
7484 | |
7485 | -Wobjc-noncopy-retain-block-property |
7486 | ------------------------------------ |
7487 | This diagnostic is enabled by default. |
7488 | |
7489 | **Diagnostic text:** |
7490 | |
7491 | +--------------------------------------------------------------------------------------------------------------------+ |
7492 | |:warning:`warning:` |nbsp| :diagtext:`retain'ed block property does not copy the block - use copy attribute instead`| |
7493 | +--------------------------------------------------------------------------------------------------------------------+ |
7494 | |
7495 | |
7496 | -Wobjc-nonunified-exceptions |
7497 | ---------------------------- |
7498 | This diagnostic is enabled by default. |
7499 | |
7500 | **Diagnostic text:** |
7501 | |
7502 | +-----------------------------------------------------------------------------------------------------------------------------+ |
7503 | |:warning:`warning:` |nbsp| :diagtext:`cannot catch an exception thrown with @throw in C++ in the non-unified exception model`| |
7504 | +-----------------------------------------------------------------------------------------------------------------------------+ |
7505 | |
7506 | |
7507 | -Wobjc-property-implementation |
7508 | ------------------------------ |
7509 | This diagnostic is enabled by default. |
7510 | |
7511 | **Diagnostic text:** |
7512 | |
7513 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7514 | |:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this class implementation`| |
7515 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7516 | |
7517 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7518 | |:warning:`warning:` |nbsp| :diagtext:`class property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| |
7519 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7520 | |
7521 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7522 | |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation`| |
7523 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7524 | |
7525 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7526 | |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires method` |nbsp| :placeholder:`B` |nbsp| :diagtext:`to be defined - use @dynamic or provide a method implementation in this category`| |
7527 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7528 | |
7529 | |
7530 | -Wobjc-property-implicit-mismatch |
7531 | --------------------------------- |
7532 | This diagnostic is enabled by default. |
7533 | |
7534 | **Diagnostic text:** |
7535 | |
7536 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
7537 | |:warning:`warning:` |nbsp| :diagtext:`primary property declaration is implicitly strong while redeclaration in class extension is weak`| |
7538 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
7539 | |
7540 | |
7541 | -Wobjc-property-matches-cocoa-ownership-rule |
7542 | -------------------------------------------- |
7543 | This diagnostic is enabled by default. |
7544 | |
7545 | **Diagnostic text:** |
7546 | |
7547 | +-------------------------------------------------------------------------------------------------------------+ |
7548 | |:warning:`warning:` |nbsp| :diagtext:`property follows Cocoa naming convention for returning 'owned' objects`| |
7549 | +-------------------------------------------------------------------------------------------------------------+ |
7550 | |
7551 | |
7552 | -Wobjc-property-no-attribute |
7553 | ---------------------------- |
7554 | This diagnostic is enabled by default. |
7555 | |
7556 | **Diagnostic text:** |
7557 | |
7558 | +-----------------------------------------------------------------------------------------------------+ |
7559 | |:warning:`warning:` |nbsp| :diagtext:`default property attribute 'assign' not appropriate for object`| |
7560 | +-----------------------------------------------------------------------------------------------------+ |
7561 | |
7562 | +--------------------------------------------------------------------------------------------------------------------+ |
7563 | |:warning:`warning:` |nbsp| :diagtext:`no 'assign', 'retain', or 'copy' attribute is specified - 'assign' is assumed`| |
7564 | +--------------------------------------------------------------------------------------------------------------------+ |
7565 | |
7566 | |
7567 | -Wobjc-property-synthesis |
7568 | ------------------------- |
7569 | This diagnostic is enabled by default. |
7570 | |
7571 | **Diagnostic text:** |
7572 | |
7573 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7574 | |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A`:diagtext:`; it will be implemented by its superclass, use @dynamic to acknowledge intention`| |
7575 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7576 | |
7577 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7578 | |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it is 'readwrite' but it will be synthesized 'readonly' via another property`| |
7579 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7580 | |
7581 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7582 | |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it cannot share an ivar with another synthesized property`| |
7583 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7584 | |
7585 | |
7586 | -Wobjc-protocol-method-implementation |
7587 | ------------------------------------- |
7588 | This diagnostic is enabled by default. |
7589 | |
7590 | **Diagnostic text:** |
7591 | |
7592 | +----------------------------------------------------------------------------------------------------------------------------+ |
7593 | |:warning:`warning:` |nbsp| :diagtext:`category is implementing a method which will also be implemented by its primary class`| |
7594 | +----------------------------------------------------------------------------------------------------------------------------+ |
7595 | |
7596 | |
7597 | -Wobjc-protocol-property-synthesis |
7598 | ---------------------------------- |
7599 | This diagnostic is enabled by default. |
7600 | |
7601 | **Diagnostic text:** |
7602 | |
7603 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7604 | |:warning:`warning:` |nbsp| :diagtext:`auto property synthesis will not synthesize property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in protocol` |nbsp| :placeholder:`B`| |
7605 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7606 | |
7607 | |
7608 | -Wobjc-protocol-qualifiers |
7609 | -------------------------- |
7610 | This diagnostic is enabled by default. |
7611 | |
7612 | **Diagnostic text:** |
7613 | |
7614 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7615 | |:warning:`warning:` |nbsp| :diagtext:`parameterized class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`already conforms to the protocols listed; did you forget a '\*'?`| |
7616 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7617 | |
7618 | |
7619 | -Wobjc-readonly-with-setter-property |
7620 | ------------------------------------ |
7621 | This diagnostic is enabled by default. |
7622 | |
7623 | **Diagnostic text:** |
7624 | |
7625 | +-----------------------------------------------------------------------------------------+ |
7626 | |:warning:`warning:` |nbsp| :diagtext:`setter cannot be specified for a readonly property`| |
7627 | +-----------------------------------------------------------------------------------------+ |
7628 | |
7629 | |
7630 | -Wobjc-redundant-api-use |
7631 | ------------------------ |
7632 | Synonym for `-Wobjc-redundant-literal-use`_. |
7633 | |
7634 | |
7635 | -Wobjc-redundant-literal-use |
7636 | ---------------------------- |
7637 | This diagnostic is enabled by default. |
7638 | |
7639 | **Diagnostic text:** |
7640 | |
7641 | +-------------------------------------------------------------------------------------------------------------------+ |
7642 | |:warning:`warning:` |nbsp| :diagtext:`using` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with a literal is redundant`| |
7643 | +-------------------------------------------------------------------------------------------------------------------+ |
7644 | |
7645 | |
7646 | -Wobjc-root-class |
7647 | ----------------- |
7648 | This diagnostic is enabled by default. |
7649 | |
7650 | **Diagnostic text:** |
7651 | |
7652 | +-------------------------------------------------------------------------------------------------------------------------------+ |
7653 | |:warning:`warning:` |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`defined without specifying a base class`| |
7654 | +-------------------------------------------------------------------------------------------------------------------------------+ |
7655 | |
7656 | |
7657 | -Wobjc-string-compare |
7658 | --------------------- |
7659 | This diagnostic is enabled by default. |
7660 | |
7661 | **Diagnostic text:** |
7662 | |
7663 | +---------------------------------------------------------------------------------------------------+ |
7664 | |:warning:`warning:` |nbsp| :diagtext:`direct comparison of a string literal has undefined behavior`| |
7665 | +---------------------------------------------------------------------------------------------------+ |
7666 | |
7667 | |
7668 | -Wobjc-string-concatenation |
7669 | --------------------------- |
7670 | This diagnostic is enabled by default. |
7671 | |
7672 | **Diagnostic text:** |
7673 | |
7674 | +-------------------------------------------------------------------------------------------------------------------------+ |
7675 | |:warning:`warning:` |nbsp| :diagtext:`concatenated NSString literal for an NSArray expression - possibly missing a comma`| |
7676 | +-------------------------------------------------------------------------------------------------------------------------+ |
7677 | |
7678 | |
7679 | -Wobjc-unsafe-perform-selector |
7680 | ------------------------------ |
7681 | This diagnostic is enabled by default. |
7682 | |
7683 | **Diagnostic text:** |
7684 | |
7685 | +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ |
7686 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is incompatible with selectors that return a` |nbsp| |+------------------+| |nbsp| :diagtext:`type`| |
7687 | | ||:diagtext:`struct`|| | |
7688 | | |+------------------+| | |
7689 | | ||:diagtext:`union` || | |
7690 | | |+------------------+| | |
7691 | | ||:diagtext:`vector`|| | |
7692 | | |+------------------+| | |
7693 | +-------------------------------------------------------------------------------------------------------------------+--------------------+------------------------+ |
7694 | |
7695 | |
7696 | -Wodr |
7697 | ----- |
7698 | This diagnostic is enabled by default. |
7699 | |
7700 | **Diagnostic text:** |
7701 | |
7702 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
7703 | |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has incompatible definitions in different translation units`| |
7704 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
7705 | |
7706 | |
7707 | -Wold-style-cast |
7708 | ---------------- |
7709 | **Diagnostic text:** |
7710 | |
7711 | +------------------------------------------------------------+ |
7712 | |:warning:`warning:` |nbsp| :diagtext:`use of old-style cast`| |
7713 | +------------------------------------------------------------+ |
7714 | |
7715 | |
7716 | -Wold-style-definition |
7717 | ---------------------- |
7718 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
7719 | |
7720 | -Wopencl-unsupported-rgba |
7721 | ------------------------- |
7722 | This diagnostic is enabled by default. |
7723 | |
7724 | **Diagnostic text:** |
7725 | |
7726 | +----------------------------------------------------------------------------------------------------------------------------+ |
7727 | |:warning:`warning:` |nbsp| :diagtext:`vector component name '`:placeholder:`A`:diagtext:`' is an OpenCL version 2.2 feature`| |
7728 | +----------------------------------------------------------------------------------------------------------------------------+ |
7729 | |
7730 | |
7731 | -Wopenmp-clauses |
7732 | ---------------- |
7733 | This diagnostic is enabled by default. |
7734 | |
7735 | **Diagnostic text:** |
7736 | |
7737 | +-------------------------------------------------------------------------------------------------------------------------+ |
7738 | |:warning:`warning:` |nbsp| :diagtext:`aligned clause will be ignored because the requested alignment is not a power of 2`| |
7739 | +-------------------------------------------------------------------------------------------------------------------------+ |
7740 | |
7741 | +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ |
7742 | |:warning:`warning:` |nbsp| :diagtext:`zero linear step (`:placeholder:`A` |nbsp| |+-------------------------------------------------+|:diagtext:`should probably be const)`| |
7743 | | || || | |
7744 | | |+-------------------------------------------------+| | |
7745 | | ||:diagtext:`and other variables in clause` |nbsp| || | |
7746 | | |+-------------------------------------------------+| | |
7747 | +---------------------------------------------------------------------------------+---------------------------------------------------+-------------------------------------+ |
7748 | |
7749 | |
7750 | -Wopenmp-loop-form |
7751 | ------------------ |
7752 | This diagnostic is enabled by default. |
7753 | |
7754 | **Diagnostic text:** |
7755 | |
7756 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
7757 | |:warning:`warning:` |nbsp| :diagtext:`initialization clause of OpenMP for loop is not in canonical form ('var = init' or 'T var = init')`| |
7758 | +-----------------------------------------------------------------------------------------------------------------------------------------+ |
7759 | |
7760 | +-----------------------------------------------------------------------------------------------------------------------------+ |
7761 | |:warning:`warning:` |nbsp| :diagtext:`OpenMP loop iteration variable cannot have more than 64 bits size and will be narrowed`| |
7762 | +-----------------------------------------------------------------------------------------------------------------------------+ |
7763 | |
7764 | |
7765 | -Wopenmp-target |
7766 | --------------- |
7767 | This diagnostic is enabled by default. |
7768 | |
7769 | **Diagnostic text:** |
7770 | |
7771 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7772 | |:warning:`warning:` |nbsp| :diagtext:`The OpenMP offloading target '`:placeholder:`A`:diagtext:`' is similar to target '`:placeholder:`B`:diagtext:`' already specified - will be ignored.`| |
7773 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7774 | |
7775 | +-----------------------------------------------------------------------------------------------+ |
7776 | |:warning:`warning:` |nbsp| :diagtext:`declaration is not declared in any declare target region`| |
7777 | +-----------------------------------------------------------------------------------------------+ |
7778 | |
7779 | |
7780 | -Woption-ignored |
7781 | ---------------- |
7782 | This diagnostic is enabled by default. |
7783 | |
7784 | **Diagnostic text:** |
7785 | |
7786 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
7787 | |:warning:`warning:` |nbsp| :diagtext:`option '-ffine-grained-bitfield-accesses' cannot be enabled together with a sanitizer; flag ignored`| |
7788 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
7789 | |
7790 | +----------------------------------------------------------------------------------------------------------------------------+ |
7791 | |:warning:`warning:` |nbsp| :diagtext:`option '`:placeholder:`A`:diagtext:`' was ignored by the PS4 toolchain, using '-fPIC'`| |
7792 | +----------------------------------------------------------------------------------------------------------------------------+ |
7793 | |
7794 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
7795 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabicalls' option as it cannot be used with non position-independent code and the N64 ABI`| |
7796 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
7797 | |
7798 | +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ |
7799 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mlong-calls' option as it is not currently supported with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| |
7800 | | || || | |
7801 | | |+-----------------------------------------+| | |
7802 | | ||:diagtext:`the implicit usage of` |nbsp| || | |
7803 | | |+-----------------------------------------+| | |
7804 | +-------------------------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ |
7805 | |
7806 | |
7807 | -Wout-of-line-declaration |
7808 | ------------------------- |
7809 | This diagnostic is an error by default, but the flag ``-Wno-out-of-line-declaration`` can be used to disable the error. |
7810 | |
7811 | **Diagnostic text:** |
7812 | |
7813 | +-------------------------------------------------------------------------------------------+ |
7814 | |:error:`error:` |nbsp| :diagtext:`out-of-line declaration of a member must be a definition`| |
7815 | +-------------------------------------------------------------------------------------------+ |
7816 | |
7817 | |
7818 | -Wout-of-scope-function |
7819 | ----------------------- |
7820 | This diagnostic is enabled by default. |
7821 | |
7822 | **Diagnostic text:** |
7823 | |
7824 | +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ |
7825 | |:warning:`warning:` |nbsp| :diagtext:`use of out-of-scope declaration of` |nbsp| :placeholder:`A`|+-------------------------------------------------------------------------------------+| |
7826 | | || || |
7827 | | |+-------------------------------------------------------------------------------------+| |
7828 | | || |nbsp| :diagtext:`whose type is not compatible with that of an implicit declaration`|| |
7829 | | |+-------------------------------------------------------------------------------------+| |
7830 | +-------------------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------+ |
7831 | |
7832 | |
7833 | -Wover-aligned |
7834 | -------------- |
7835 | **Diagnostic text:** |
7836 | |
7837 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7838 | |:warning:`warning:` |nbsp| :diagtext:`type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bytes of alignment and the default allocator only guarantees` |nbsp| :placeholder:`C` |nbsp| :diagtext:`bytes`| |
7839 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7840 | |
7841 | |
7842 | -Woverflow |
7843 | ---------- |
7844 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
7845 | |
7846 | -Woverlength-strings |
7847 | -------------------- |
7848 | **Diagnostic text:** |
7849 | |
7850 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ |
7851 | |:warning:`warning:` |nbsp| :diagtext:`string literal of length` |nbsp| :placeholder:`A` |nbsp| :diagtext:`exceeds maximum length` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that` |nbsp| |+-------------------+| |nbsp| :diagtext:`compilers are required to support`| |
7852 | | ||:diagtext:`C90` || | |
7853 | | |+-------------------+| | |
7854 | | ||:diagtext:`ISO C99`|| | |
7855 | | |+-------------------+| | |
7856 | | ||:diagtext:`C++` || | |
7857 | | |+-------------------+| | |
7858 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+-----------------------------------------------------+ |
7859 | |
7860 | |
7861 | -Woverloaded-shift-op-parentheses |
7862 | --------------------------------- |
7863 | This diagnostic is enabled by default. |
7864 | |
7865 | **Diagnostic text:** |
7866 | |
7867 | +------------------------------------------------------------------+----------------+------------------------------------------------------------------+ |
7868 | |:warning:`warning:` |nbsp| :diagtext:`overloaded operator` |nbsp| |+--------------+| |nbsp| :diagtext:`has higher precedence than comparison operator`| |
7869 | | ||:diagtext:`>>`|| | |
7870 | | |+--------------+| | |
7871 | | ||:diagtext:`<<`|| | |
7872 | | |+--------------+| | |
7873 | +------------------------------------------------------------------+----------------+------------------------------------------------------------------+ |
7874 | |
7875 | |
7876 | -Woverloaded-virtual |
7877 | -------------------- |
7878 | **Diagnostic text:** |
7879 | |
7880 | +-----------------------------------------------------------------------------------------------+-----------------------+ |
7881 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides overloaded virtual` |nbsp| |+---------------------+| |
7882 | | ||:diagtext:`function` || |
7883 | | |+---------------------+| |
7884 | | ||:diagtext:`functions`|| |
7885 | | |+---------------------+| |
7886 | +-----------------------------------------------------------------------------------------------+-----------------------+ |
7887 | |
7888 | -Woverride-init |
7889 | --------------- |
7890 | Synonym for `-Winitializer-overrides`_. |
7891 | |
7892 | |
7893 | -Woverride-module |
7894 | ----------------- |
7895 | This diagnostic is enabled by default. |
7896 | |
7897 | **Diagnostic text:** |
7898 | |
7899 | +-------------------------------------------------------------------------------------------------------+ |
7900 | |:warning:`warning:` |nbsp| :diagtext:`overriding the module target triple with` |nbsp| :placeholder:`A`| |
7901 | +-------------------------------------------------------------------------------------------------------+ |
7902 | |
7903 | |
7904 | -Woverriding-method-mismatch |
7905 | ---------------------------- |
7906 | **Diagnostic text:** |
7907 | |
7908 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
7909 | |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on parameter type in declaration of` |nbsp| :placeholder:`A`| |
7910 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
7911 | |
7912 | +------------------------------------------------------------------------------------------------------------+ |
7913 | |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`| |
7914 | +------------------------------------------------------------------------------------------------------------+ |
7915 | |
7916 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
7917 | |:warning:`warning:` |nbsp| :diagtext:`conflicting distributed object modifiers on return type in declaration of` |nbsp| :placeholder:`A`| |
7918 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
7919 | |
7920 | +--------------------------------------------------------------------------------------------------------+ |
7921 | |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`| |
7922 | +--------------------------------------------------------------------------------------------------------+ |
7923 | |
7924 | +--------------------------------------------------------------------------------------------------------+ |
7925 | |:warning:`warning:` |nbsp| :diagtext:`conflicting variadic declaration of method and its implementation`| |
7926 | +--------------------------------------------------------------------------------------------------------+ |
7927 | |
7928 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7929 | |:warning:`warning:` |nbsp| :diagtext:`conflicting parameter types in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| |
7930 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7931 | |
7932 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7933 | |:warning:`warning:` |nbsp| :diagtext:`conflicting return type in declaration of` |nbsp| :placeholder:`A`:diagtext:`:` |nbsp| :placeholder:`B` |nbsp| :diagtext:`vs` |nbsp| :placeholder:`C`| |
7934 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
7935 | |
7936 | |
7937 | -Woverriding-t-option |
7938 | --------------------- |
7939 | This diagnostic is enabled by default. |
7940 | |
7941 | **Diagnostic text:** |
7942 | |
7943 | +---------------------------------------------------------------------------------------------------------------------------+ |
7944 | |:warning:`warning:` |nbsp| :diagtext:`overriding '`:placeholder:`A`:diagtext:`' option with '`:placeholder:`B`:diagtext:`'`| |
7945 | +---------------------------------------------------------------------------------------------------------------------------+ |
7946 | |
7947 | |
7948 | -Wpacked |
7949 | -------- |
7950 | **Diagnostic text:** |
7951 | |
7952 | +--------------------------------------------------------------------------------------------------+ |
7953 | |:warning:`warning:` |nbsp| :diagtext:`packed attribute is unnecessary for` |nbsp| :placeholder:`A`| |
7954 | +--------------------------------------------------------------------------------------------------+ |
7955 | |
7956 | |
7957 | -Wpadded |
7958 | -------- |
7959 | **Diagnostic text:** |
7960 | |
7961 | +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ |
7962 | |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align anonymous bit-field`| |
7963 | | ||:diagtext:`struct` || ||:diagtext:`byte`||| || | |
7964 | | |+---------------------+| |+----------------+|+-------------+| | |
7965 | | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | |
7966 | | |+---------------------+| |+----------------+|+-------------+| | |
7967 | | ||:diagtext:`class` || | | | | |
7968 | | |+---------------------+| | | | | |
7969 | +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+------------------------------------------------+ |
7970 | |
7971 | +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ |
7972 | |:warning:`warning:` |nbsp| :diagtext:`padding` |nbsp| |+---------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`with` |nbsp| :placeholder:`C` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to align` |nbsp| :placeholder:`E`| |
7973 | | ||:diagtext:`struct` || ||:diagtext:`byte`||| || | |
7974 | | |+---------------------+| |+----------------+|+-------------+| | |
7975 | | ||:diagtext:`interface`|| ||:diagtext:`bit` |||:diagtext:`s`|| | |
7976 | | |+---------------------+| |+----------------+|+-------------+| | |
7977 | | ||:diagtext:`class` || | | | | |
7978 | | |+---------------------+| | | | | |
7979 | +------------------------------------------------------+-----------------------+--------------------------------------------------------------------------------+------------------+---------------+----------------------------------------------------+ |
7980 | |
7981 | +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ |
7982 | |:warning:`warning:` |nbsp| :diagtext:`padding size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`with` |nbsp| :placeholder:`B` |nbsp| |+----------------+|+-------------+| |nbsp| :diagtext:`to alignment boundary`| |
7983 | | ||:diagtext:`byte`||| || | |
7984 | | |+----------------+|+-------------+| | |
7985 | | ||:diagtext:`bit` |||:diagtext:`s`|| | |
7986 | | |+----------------+|+-------------+| | |
7987 | +--------------------------------------------------------------------------------------------------------------------------------------+------------------+---------------+-----------------------------------------+ |
7988 | |
7989 | |
7990 | -Wparentheses |
7991 | ------------- |
7992 | This diagnostic is enabled by default. |
7993 | |
7994 | Also controls `-Wbitwise-op-parentheses`_, `-Wdangling-else`_, `-Wlogical-not-parentheses`_, `-Wlogical-op-parentheses`_, `-Woverloaded-shift-op-parentheses`_, `-Wparentheses-equality`_, `-Wshift-op-parentheses`_. |
7995 | |
7996 | **Diagnostic text:** |
7997 | |
7998 | +-----------------------------------------------------------------------------------------------------------+ |
7999 | |:warning:`warning:` |nbsp| :diagtext:`using the result of an assignment as a condition without parentheses`| |
8000 | +-----------------------------------------------------------------------------------------------------------+ |
8001 | |
8002 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8003 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has lower precedence than` |nbsp| :placeholder:`B`:diagtext:`;` |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be evaluated first`| |
8004 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8005 | |
8006 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8007 | |:warning:`warning:` |nbsp| :diagtext:`operator '?:' has lower precedence than '`:placeholder:`A`:diagtext:`'; '`:placeholder:`A`:diagtext:`' will be evaluated first`| |
8008 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8009 | |
8010 | |
8011 | -Wparentheses-equality |
8012 | ---------------------- |
8013 | This diagnostic is enabled by default. |
8014 | |
8015 | **Diagnostic text:** |
8016 | |
8017 | +--------------------------------------------------------------------------------------+ |
8018 | |:warning:`warning:` |nbsp| :diagtext:`equality comparison with extraneous parentheses`| |
8019 | +--------------------------------------------------------------------------------------+ |
8020 | |
8021 | |
8022 | -Wpartial-availability |
8023 | ---------------------- |
8024 | Synonym for `-Wunguarded-availability`_. |
8025 | |
8026 | |
8027 | -Rpass |
8028 | ------ |
8029 | **Diagnostic text:** |
8030 | |
8031 | The text of this diagnostic is not controlled by Clang. |
8032 | |
8033 | |
8034 | -Rpass-analysis |
8035 | --------------- |
8036 | **Diagnostic text:** |
8037 | |
8038 | The text of this diagnostic is not controlled by Clang. |
8039 | |
8040 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8041 | |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop. If the arrays will always be independent specify '#pragma clang loop vectorize(assume\_safety)' before the loop or provide the '\_\_restrict\_\_' qualifier with the independent array arguments. Erroneous results will occur if these options are incorrectly applied!`| |
8042 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8043 | |
8044 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8045 | |:remark:`remark:` |nbsp| :placeholder:`A`:diagtext:`; allow reordering by specifying '#pragma clang loop vectorize(enable)' before the loop or by providing the compiler option '-ffast-math'.`| |
8046 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8047 | |
8048 | |
8049 | -Wpass-failed |
8050 | ------------- |
8051 | This diagnostic is enabled by default. |
8052 | |
8053 | **Diagnostic text:** |
8054 | |
8055 | The text of this diagnostic is not controlled by Clang. |
8056 | |
8057 | |
8058 | -Rpass-missed |
8059 | ------------- |
8060 | **Diagnostic text:** |
8061 | |
8062 | The text of this diagnostic is not controlled by Clang. |
8063 | |
8064 | |
8065 | -Wpch-date-time |
8066 | --------------- |
8067 | This diagnostic is enabled by default. |
8068 | |
8069 | **Diagnostic text:** |
8070 | |
8071 | +---------------------------+--------------------------------+-----------------------------------------------------+ |
8072 | |:warning:`warning:` |nbsp| |+------------------------------+| |nbsp| :diagtext:`uses \_\_DATE\_\_ or \_\_TIME\_\_`| |
8073 | | ||:diagtext:`precompiled header`|| | |
8074 | | |+------------------------------+| | |
8075 | | ||:diagtext:`module` || | |
8076 | | |+------------------------------+| | |
8077 | +---------------------------+--------------------------------+-----------------------------------------------------+ |
8078 | |
8079 | |
8080 | -Wpedantic |
8081 | ---------- |
8082 | Also controls `-Wc++11-extra-semi`_, `-Wc++11-long-long`_, `-Wc++14-binary-literal`_, `-Wc11-extensions`_, `-Wcomplex-component-init`_, `-Wdeclaration-after-statement`_, `-Wdollar-in-identifier-extension`_, `-Wembedded-directive`_, `-Wempty-translation-unit`_, `-Wextended-offsetof`_, `-Wflexible-array-extensions`_, `-Wformat-pedantic`_, `-Wfour-char-constants`_, `-Wgnu-anonymous-struct`_, `-Wgnu-auto-type`_, `-Wgnu-binary-literal`_, `-Wgnu-case-range`_, `-Wgnu-complex-integer`_, `-Wgnu-compound-literal-initializer`_, `-Wgnu-conditional-omitted-operand`_, `-Wgnu-empty-initializer`_, `-Wgnu-empty-struct`_, `-Wgnu-flexible-array-initializer`_, `-Wgnu-flexible-array-union-member`_, `-Wgnu-folding-constant`_, `-Wgnu-imaginary-constant`_, `-Wgnu-include-next`_, `-Wgnu-label-as-value`_, `-Wgnu-redeclared-enum`_, `-Wgnu-statement-expression`_, `-Wgnu-union-cast`_, `-Wgnu-zero-line-directive`_, `-Wgnu-zero-variadic-macro-arguments`_, `-Wimport-preprocessor-directive-pedantic`_, `-Wkeyword-macro`_, `-Wlanguage-extension-token`_, `-Wlong-long`_, `-Wmicrosoft-charize`_, `-Wmicrosoft-comment-paste`_, `-Wmicrosoft-cpp-macro`_, `-Wmicrosoft-end-of-file`_, `-Wmicrosoft-enum-value`_, `-Wmicrosoft-fixed-enum`_, `-Wmicrosoft-flexible-array`_, `-Wmicrosoft-redeclare-static`_, `-Wnested-anon-types`_, `-Wnullability-extension`_, `-Woverlength-strings`_, `-Wretained-language-linkage`_, `-Wundefined-internal-type`_, `-Wvla-extension`_, `-Wzero-length-array`_. |
8083 | |
8084 | **Diagnostic text:** |
8085 | |
8086 | +------------------------------------------------------------------------+ |
8087 | |:warning:`warning:` |nbsp| :diagtext:`'enable\_if' is a clang extension`| |
8088 | +------------------------------------------------------------------------+ |
8089 | |
8090 | +--------------------------------------------------------------------------+ |
8091 | |:warning:`warning:` |nbsp| :diagtext:`'diagnose\_if' is a clang extension`| |
8092 | +--------------------------------------------------------------------------+ |
8093 | |
8094 | +--------------------------------------------------------------------------------+ |
8095 | |:warning:`warning:` |nbsp| :diagtext:`designated initializers are a C99 feature`| |
8096 | +--------------------------------------------------------------------------------+ |
8097 | |
8098 | +--------------------------------------------------------------------------------------------+ |
8099 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow 'main' to be used by a program`| |
8100 | +--------------------------------------------------------------------------------------------+ |
8101 | |
8102 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ |
8103 | |:warning:`warning:` |nbsp| :diagtext:`C++98 requires an accessible copy constructor for class` |nbsp| :placeholder:`C` |nbsp| :diagtext:`when binding a reference to a temporary; was` |nbsp| |+---------------------+| |
8104 | | ||:diagtext:`private` || |
8105 | | |+---------------------+| |
8106 | | ||:diagtext:`protected`|| |
8107 | | |+---------------------+| |
8108 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------+ |
8109 | |
8110 | +--------------------------------------------------------+--------------------+------------------------------------------------------------+ |
8111 | |:warning:`warning:` |nbsp| :diagtext:`anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`cannot be '`:placeholder:`B`:diagtext:`'`| |
8112 | | ||:diagtext:`struct`|| | |
8113 | | |+------------------+| | |
8114 | | ||:diagtext:`union` || | |
8115 | | |+------------------+| | |
8116 | +--------------------------------------------------------+--------------------+------------------------------------------------------------+ |
8117 | |
8118 | +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ |
8119 | |:warning:`warning:` |nbsp| :diagtext:`no viable constructor` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B`:diagtext:`; C++98 requires a copy constructor when binding a reference to a temporary`| |
8120 | | ||:diagtext:`copying variable` || | |
8121 | | |+---------------------------------------+| | |
8122 | | ||:diagtext:`copying parameter` || | |
8123 | | |+---------------------------------------+| | |
8124 | | ||:diagtext:`returning object` || | |
8125 | | |+---------------------------------------+| | |
8126 | | ||:diagtext:`throwing object` || | |
8127 | | |+---------------------------------------+| | |
8128 | | ||:diagtext:`copying member subobject` || | |
8129 | | |+---------------------------------------+| | |
8130 | | ||:diagtext:`copying array element` || | |
8131 | | |+---------------------------------------+| | |
8132 | | ||:diagtext:`allocating object` || | |
8133 | | |+---------------------------------------+| | |
8134 | | ||:diagtext:`copying temporary` || | |
8135 | | |+---------------------------------------+| | |
8136 | | ||:diagtext:`initializing base subobject`|| | |
8137 | | |+---------------------------------------+| | |
8138 | | ||:diagtext:`initializing vector element`|| | |
8139 | | |+---------------------------------------+| | |
8140 | | ||:diagtext:`capturing value` || | |
8141 | | |+---------------------------------------+| | |
8142 | +--------------------------------------------------------------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------+ |
8143 | |
8144 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
8145 | |:warning:`warning:` |nbsp| :diagtext:`parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was not declared, defaulting to type 'int'`| |
8146 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
8147 | |
8148 | +--------------------------------------------------------------------------------------------------------------------------+ |
8149 | |:warning:`warning:` |nbsp| :diagtext:`invoking a pointer to a 'const &' member function on an rvalue is a C++2a extension`| |
8150 | +--------------------------------------------------------------------------------------------------------------------------+ |
8151 | |
8152 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8153 | |:warning:`warning:` |nbsp| :diagtext:`qualifier in explicit instantiation of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires a template-id (a typedef is not permitted)`| |
8154 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8155 | |
8156 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
8157 | |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| |
8158 | | ||:diagtext:`function`|| | |
8159 | | |+--------------------+| | |
8160 | | ||:diagtext:`variable`|| | |
8161 | | |+--------------------+| | |
8162 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
8163 | |
8164 | +---------------------------------------------------------------------------------------+ |
8165 | |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids forward references to 'enum' types`| |
8166 | +---------------------------------------------------------------------------------------+ |
8167 | |
8168 | +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ |
8169 | |:warning:`warning:` |nbsp| :diagtext:`ISO C restricts enumerator values to range of 'int' (`:placeholder:`A` |nbsp| :diagtext:`is too` |nbsp| |+-----------------+|:diagtext:`)`| |
8170 | | ||:diagtext:`small`|| | |
8171 | | |+-----------------+| | |
8172 | | ||:diagtext:`large`|| | |
8173 | | |+-----------------+| | |
8174 | +----------------------------------------------------------------------------------------------------------------------------------------------+-------------------+-------------+ |
8175 | |
8176 | +--------------------------------------------------------------------------------------------------+ |
8177 | |:warning:`warning:` |nbsp| :diagtext:`size of static array must be an integer constant expression`| |
8178 | +--------------------------------------------------------------------------------------------------+ |
8179 | |
8180 | +-----------------------------------------------------------------------------------------------+ |
8181 | |:warning:`warning:` |nbsp| :diagtext:`initializer for aggregate is not a compile-time constant`| |
8182 | +-----------------------------------------------------------------------------------------------+ |
8183 | |
8184 | +-------------------------------------------------------------------------------+ |
8185 | |:warning:`warning:` |nbsp| :diagtext:`flexible array members are a C99 feature`| |
8186 | +-------------------------------------------------------------------------------+ |
8187 | |
8188 | +---------------------------------------------------------------+-----------------------+--------------------------------+ |
8189 | |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`| |
8190 | | ||:diagtext:`sizeof` || | |
8191 | | |+---------------------+| | |
8192 | | ||:diagtext:`alignof` || | |
8193 | | |+---------------------+| | |
8194 | | ||:diagtext:`vec\_step`|| | |
8195 | | |+---------------------+| | |
8196 | +---------------------------------------------------------------+-----------------------+--------------------------------+ |
8197 | |
8198 | +---------------------------------------------------------------+-----------------------+----------------------------+ |
8199 | |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`| |
8200 | | ||:diagtext:`sizeof` || | |
8201 | | |+---------------------+| | |
8202 | | ||:diagtext:`alignof` || | |
8203 | | |+---------------------+| | |
8204 | | ||:diagtext:`vec\_step`|| | |
8205 | | |+---------------------+| | |
8206 | +---------------------------------------------------------------+-----------------------+----------------------------+ |
8207 | |
8208 | +-------------------------------------------------------------------------------------------+ |
8209 | |:warning:`warning:` |nbsp| :diagtext:`ISO C90 does not allow subscripting non-lvalue array`| |
8210 | +-------------------------------------------------------------------------------------------+ |
8211 | |
8212 | +----------------------------------------------------------------------------------------+ |
8213 | |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| |
8214 | +----------------------------------------------------------------------------------------+ |
8215 | |
8216 | +-------------------------------------------------------------------------------------------------------+ |
8217 | |:warning:`warning:` |nbsp| :diagtext:`ISO C forbids taking the address of an expression of type 'void'`| |
8218 | +-------------------------------------------------------------------------------------------------------+ |
8219 | |
8220 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8221 | |:warning:`warning:` |nbsp| :diagtext:`ordered comparison between pointer and zero (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`) is an extension`| |
8222 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8223 | |
8224 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8225 | |:warning:`warning:` |nbsp| :diagtext:`equality comparison between function pointer and void pointer (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| |
8226 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8227 | |
8228 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ |
8229 | |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| |
8230 | | || |nbsp| :diagtext:`a`|| || || | |
8231 | | |+---------------------+| |+-------------+| | |
8232 | | || || ||:diagtext:`s`|| | |
8233 | | |+---------------------+| |+-------------+| | |
8234 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ |
8235 | |
8236 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ |
8237 | |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| |
8238 | | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | |
8239 | | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | |
8240 | | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | |
8241 | | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | |
8242 | | | | | | | | | | ||+-----------------------------------------------+|| | |
8243 | | | | | | | | | | |+-------------------------------------------------+| | |
8244 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ |
8245 | |
8246 | +-----------------------------------------------------------------------------------------------------------------------+ |
8247 | |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '++'/'--' on complex integer type` |nbsp| :placeholder:`A`| |
8248 | +-----------------------------------------------------------------------------------------------------------------------+ |
8249 | |
8250 | +--------------------------------------------------------------------------------------------------------------------+ |
8251 | |:warning:`warning:` |nbsp| :diagtext:`ISO C does not support '~' for complex conjugation of` |nbsp| :placeholder:`A`| |
8252 | +--------------------------------------------------------------------------------------------------------------------+ |
8253 | |
8254 | +------------------------------------------------------------------------------------------------------------+ |
8255 | |:warning:`warning:` |nbsp| :diagtext:`complex numbers are an extension in a freestanding C99 implementation`| |
8256 | +------------------------------------------------------------------------------------------------------------+ |
8257 | |
8258 | +-------------------------------------------------------------------------------------------------------------+ |
8259 | |:warning:`warning:` |nbsp| :diagtext:`cast between pointer-to-function and pointer-to-object is an extension`| |
8260 | +-------------------------------------------------------------------------------------------------------------+ |
8261 | |
8262 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ |
8263 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion from array size expression of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| |+-----------------------+| |nbsp| :diagtext:`type` |nbsp| :placeholder:`C` |nbsp| :diagtext:`is a C++11 extension`| |
8264 | | ||:diagtext:`integral` || | |
8265 | | |+-----------------------+| | |
8266 | | ||:diagtext:`enumeration`|| | |
8267 | | |+-----------------------+| | |
8268 | +---------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------------------------------------------------------------------------------------+ |
8269 | |
8270 | +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ |
8271 | |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between void pointer and function pointer`| |
8272 | | ||:diagtext:`assigning to different types` || | |
8273 | | |+--------------------------------------------------------------+| | |
8274 | | ||:diagtext:`passing to parameter of different type` || | |
8275 | | |+--------------------------------------------------------------+| | |
8276 | | ||:diagtext:`returning from function with different return type`|| | |
8277 | | |+--------------------------------------------------------------+| | |
8278 | | ||:diagtext:`converting between types` || | |
8279 | | |+--------------------------------------------------------------+| | |
8280 | | ||:diagtext:`initializing with expression of different type` || | |
8281 | | |+--------------------------------------------------------------+| | |
8282 | | ||:diagtext:`sending to parameter of different type` || | |
8283 | | |+--------------------------------------------------------------+| | |
8284 | | ||:diagtext:`casting between types` || | |
8285 | | |+--------------------------------------------------------------+| | |
8286 | +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------+ |
8287 | |
8288 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8289 | |:warning:`warning:` |nbsp| :diagtext:`kernel function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a member function; this may not be accepted by nvcc`| |
8290 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8291 | |
8292 | +--------------------------------------------------------------------------------------------------+ |
8293 | |:warning:`warning:` |nbsp| :diagtext:`C99 forbids conditional expressions with only one void side`| |
8294 | +--------------------------------------------------------------------------------------------------+ |
8295 | |
8296 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
8297 | |:warning:`warning:` |nbsp| :diagtext:`C99 forbids casting nonscalar type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to the same type`| |
8298 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
8299 | |
8300 | +---------------------------------------------------------------------------------------------------------------------------+ |
8301 | |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++14 extension`| |
8302 | +---------------------------------------------------------------------------------------------------------------------------+ |
8303 | |
8304 | +---------------------------------------------------------------------------------------------------------------------------+ |
8305 | |:warning:`warning:` |nbsp| :diagtext:`use of the` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute is a C++17 extension`| |
8306 | +---------------------------------------------------------------------------------------------------------------------------+ |
8307 | |
8308 | +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ |
8309 | |:warning:`warning:` |nbsp| :diagtext:`types declared in an anonymous` |nbsp| |+------------------+| |nbsp| :diagtext:`are a Microsoft extension`| |
8310 | | ||:diagtext:`struct`|| | |
8311 | | |+------------------+| | |
8312 | | ||:diagtext:`union` || | |
8313 | | |+------------------+| | |
8314 | +-----------------------------------------------------------------------------+--------------------+---------------------------------------------+ |
8315 | |
8316 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ |
8317 | |:warning:`warning:` |nbsp| :diagtext:`void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return void expression`| |
8318 | | ||:diagtext:`function`|| | |
8319 | | |+--------------------+| | |
8320 | | ||:diagtext:`method` || | |
8321 | | |+--------------------+| | |
8322 | | ||:diagtext:`block` || | |
8323 | | |+--------------------+| | |
8324 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------------------+ |
8325 | |
8326 | +--------------------------------------------------------------------------------------------------+ |
8327 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' cannot be signed or unsigned`| |
8328 | +--------------------------------------------------------------------------------------------------+ |
8329 | |
8330 | +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ |
8331 | |:warning:`warning:` |nbsp| |+--------------------------------+|:diagtext:`array size` |nbsp| |+---------------------+|:diagtext:`is a C99 feature`| |
8332 | | ||:diagtext:`qualifier in` |nbsp| || || || | |
8333 | | |+--------------------------------+| |+---------------------+| | |
8334 | | ||:diagtext:`static` |nbsp| || || || | |
8335 | | |+--------------------------------+| |+---------------------+| | |
8336 | | || || ||:diagtext:`'\[\*\] '`|| | |
8337 | | |+--------------------------------+| |+---------------------+| | |
8338 | +---------------------------+----------------------------------+------------------------------+-----------------------+----------------------------+ |
8339 | |
8340 | +--------------------------------------------------------+------------------------------------------------+ |
8341 | |:warning:`warning:` |nbsp| :diagtext:`extra ';'` |nbsp| |+----------------------------------------------+| |
8342 | | ||:diagtext:`outside of a function` || |
8343 | | |+----------------------------------------------+| |
8344 | | ||+--------------------------------------------+|| |
8345 | | |||:diagtext:`inside a` |nbsp| :placeholder:`B`||| |
8346 | | ||+--------------------------------------------+|| |
8347 | | |+----------------------------------------------+| |
8348 | | ||:diagtext:`inside instance variable list` || |
8349 | | |+----------------------------------------------+| |
8350 | | ||:diagtext:`after member function definition` || |
8351 | | |+----------------------------------------------+| |
8352 | +--------------------------------------------------------+------------------------------------------------+ |
8353 | |
8354 | +-----------------------------------------------------------------------------------------+ |
8355 | |:warning:`warning:` |nbsp| :diagtext:`'\_\_thread' before '`:placeholder:`A`:diagtext:`'`| |
8356 | +-----------------------------------------------------------------------------------------+ |
8357 | |
8358 | +----------------------------------------------------------------------------------------+ |
8359 | |:warning:`warning:` |nbsp| :diagtext:`type-less parameter names in function declaration`| |
8360 | +----------------------------------------------------------------------------------------+ |
8361 | |
8362 | +-------------------------------------------------------------------------------------------------+ |
8363 | |:warning:`warning:` |nbsp| :diagtext:`variable declaration in for loop is a C99-specific feature`| |
8364 | +-------------------------------------------------------------------------------------------------+ |
8365 | |
8366 | +-----------------------------------------------------------------------------------+ |
8367 | |:warning:`warning:` |nbsp| :diagtext:`compound literals are a C99-specific feature`| |
8368 | +-----------------------------------------------------------------------------------+ |
8369 | |
8370 | +-------------------------------------------------------------------------------------------------------+ |
8371 | |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C99-specific feature`| |
8372 | +-------------------------------------------------------------------------------------------------------+ |
8373 | |
8374 | +--------------------------------------------------------------------------------------------------+ |
8375 | |:warning:`warning:` |nbsp| :diagtext:`commas at the end of enumerator lists are a C++11 extension`| |
8376 | +--------------------------------------------------------------------------------------------------+ |
8377 | |
8378 | +-----------------------------------------------------------------------------------------------------------+ |
8379 | |:warning:`warning:` |nbsp| :diagtext:`enumeration types with a fixed underlying type are a C++11 extension`| |
8380 | +-----------------------------------------------------------------------------------------------------------+ |
8381 | |
8382 | +-----------------------------------------------------------------------+ |
8383 | |:warning:`warning:` |nbsp| :diagtext:`use of GNU array range extension`| |
8384 | +-----------------------------------------------------------------------+ |
8385 | |
8386 | +------------------------------------------------------------------------------------------------+ |
8387 | |:warning:`warning:` |nbsp| :diagtext:`exception specification of '...' is a Microsoft extension`| |
8388 | +------------------------------------------------------------------------------------------------+ |
8389 | |
8390 | +------------------------------------------------------------+---------------------------+-----------------------------------------------------+ |
8391 | |:warning:`warning:` |nbsp| :diagtext:`attributes on` |nbsp| |+-------------------------+| |nbsp| :diagtext:`declaration are a C++17 extension`| |
8392 | | ||:diagtext:`a namespace` || | |
8393 | | |+-------------------------+| | |
8394 | | ||:diagtext:`an enumerator`|| | |
8395 | | |+-------------------------+| | |
8396 | +------------------------------------------------------------+---------------------------+-----------------------------------------------------+ |
8397 | |
8398 | +-----------------------------------------------------------------------------+ |
8399 | |:warning:`warning:` |nbsp| :diagtext:`extern templates are a C++11 extension`| |
8400 | +-----------------------------------------------------------------------------+ |
8401 | |
8402 | +------------------------------------------------------------+ |
8403 | |:warning:`warning:` |nbsp| :diagtext:`multi-line // comment`| |
8404 | +------------------------------------------------------------+ |
8405 | |
8406 | +-----------------------------------------------------------------------------------+ |
8407 | |:warning:`warning:` |nbsp| :diagtext:`// comments are not allowed in this language`| |
8408 | +-----------------------------------------------------------------------------------+ |
8409 | |
8410 | +----------------------------------------------------------------+ |
8411 | |:warning:`warning:` |nbsp| :diagtext:`no newline at end of file`| |
8412 | +----------------------------------------------------------------+ |
8413 | |
8414 | +------------------------------------------------------------------------------------------------------------+ |
8415 | |:warning:`warning:` |nbsp| :diagtext:`use of non-standard escape character '\\`:placeholder:`A`:diagtext:`'`| |
8416 | +------------------------------------------------------------------------------------------------------------+ |
8417 | |
8418 | +---------------------------------------------------------------------------------------+ |
8419 | |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating constants are a C99 feature`| |
8420 | +---------------------------------------------------------------------------------------+ |
8421 | |
8422 | +----------------------------------------------------------------------------------------+ |
8423 | |:warning:`warning:` |nbsp| :diagtext:`hexadecimal floating literals are a C++17 feature`| |
8424 | +----------------------------------------------------------------------------------------+ |
8425 | |
8426 | +---------------------------------------------------------------------+ |
8427 | |:warning:`warning:` |nbsp| :diagtext:`#ident is a language extension`| |
8428 | +---------------------------------------------------------------------+ |
8429 | |
8430 | +-----------------------------------------------------------------------+ |
8431 | |:warning:`warning:` |nbsp| :diagtext:`#warning is a language extension`| |
8432 | +-----------------------------------------------------------------------+ |
8433 | |
8434 | +-----------------------------------------------------------------------+ |
8435 | |:warning:`warning:` |nbsp| :diagtext:`comma operator in operand of #if`| |
8436 | +-----------------------------------------------------------------------+ |
8437 | |
8438 | +----------------------------------------------------------------------------------------------------------------+ |
8439 | |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_ARGS\_\_ can only appear in the expansion of a C99 variadic macro`| |
8440 | +----------------------------------------------------------------------------------------------------------------+ |
8441 | |
8442 | +------------------------------------------------------------------------+ |
8443 | |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| |
8444 | +------------------------------------------------------------------------+ |
8445 | |
8446 | +--------------------------------------------------------------------------------+ |
8447 | |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| |
8448 | +--------------------------------------------------------------------------------+ |
8449 | |
8450 | +------------------------------------------------------------------------------+ |
8451 | |:warning:`warning:` |nbsp| :diagtext:`empty macro arguments are a C99 feature`| |
8452 | +------------------------------------------------------------------------------+ |
8453 | |
8454 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
8455 | |:warning:`warning:` |nbsp| :diagtext:`C requires #line number to be less than` |nbsp| :placeholder:`A`:diagtext:`, allowed as extension`| |
8456 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
8457 | |
8458 | +-------------------------------------------------------------------------------------------------+ |
8459 | |:warning:`warning:` |nbsp| :diagtext:`macro expansion producing 'defined' has undefined behavior`| |
8460 | +-------------------------------------------------------------------------------------------------+ |
8461 | |
8462 | |
8463 | -Wpedantic-core-features |
8464 | ------------------------ |
8465 | **Diagnostic text:** |
8466 | |
8467 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8468 | |:warning:`warning:` |nbsp| :diagtext:`OpenCL extension` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is core feature or supported optional core feature - ignoring`| |
8469 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8470 | |
8471 | |
8472 | -Wpessimizing-move |
8473 | ------------------ |
8474 | **Diagnostic text:** |
8475 | |
8476 | +--------------------------------------------------------------------------------------+ |
8477 | |:warning:`warning:` |nbsp| :diagtext:`moving a temporary object prevents copy elision`| |
8478 | +--------------------------------------------------------------------------------------+ |
8479 | |
8480 | +--------------------------------------------------------------------------------------------------------+ |
8481 | |:warning:`warning:` |nbsp| :diagtext:`moving a local object in a return statement prevents copy elision`| |
8482 | +--------------------------------------------------------------------------------------------------------+ |
8483 | |
8484 | |
8485 | -Wpointer-arith |
8486 | --------------- |
8487 | Some of the diagnostics controlled by this flag are enabled by default. |
8488 | |
8489 | **Diagnostic text:** |
8490 | |
8491 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ |
8492 | |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to`|+-----------------------+| |nbsp| :diagtext:`function type`|+-------------+| |nbsp| :placeholder:`B`|+-------------------------------------------------+| |nbsp| :diagtext:`is a GNU extension`| |
8493 | | || |nbsp| :diagtext:`a`|| || || || |nbsp| :diagtext:`the`|| || || || || | |
8494 | | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| |+-------------------------------------------------+| | |
8495 | | || || ||:diagtext:`s`|| || || ||:diagtext:`s`|| ||+-----------------------------------------------+|| | |
8496 | | |+---------------------+| |+-------------+| |+-----------------------+| |+-------------+| ||| |nbsp| :diagtext:`and` |nbsp| :placeholder:`D`||| | |
8497 | | | | | | | | | | ||+-----------------------------------------------+|| | |
8498 | | | | | | | | | | |+-------------------------------------------------+| | |
8499 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------+-------------------------+---------------------------------+---------------+------------------------+---------------------------------------------------+--------------------------------------+ |
8500 | |
8501 | +----------------------------------------------------------------------------------------+ |
8502 | |:warning:`warning:` |nbsp| :diagtext:`subscript of a pointer to void is a GNU extension`| |
8503 | +----------------------------------------------------------------------------------------+ |
8504 | |
8505 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ |
8506 | |:warning:`warning:` |nbsp| :diagtext:`arithmetic on`|+---------------------+| |nbsp| :diagtext:`pointer`|+-------------+| |nbsp| :diagtext:`to void is a GNU extension`| |
8507 | | || |nbsp| :diagtext:`a`|| || || | |
8508 | | |+---------------------+| |+-------------+| | |
8509 | | || || ||:diagtext:`s`|| | |
8510 | | |+---------------------+| |+-------------+| | |
8511 | +----------------------------------------------------+-----------------------+---------------------------+---------------+----------------------------------------------+ |
8512 | |
8513 | +---------------------------------------------------------------+-----------------------+--------------------------------+ |
8514 | |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a function type`| |
8515 | | ||:diagtext:`sizeof` || | |
8516 | | |+---------------------+| | |
8517 | | ||:diagtext:`alignof` || | |
8518 | | |+---------------------+| | |
8519 | | ||:diagtext:`vec\_step`|| | |
8520 | | |+---------------------+| | |
8521 | +---------------------------------------------------------------+-----------------------+--------------------------------+ |
8522 | |
8523 | +---------------------------------------------------------------+-----------------------+----------------------------+ |
8524 | |:warning:`warning:` |nbsp| :diagtext:`invalid application of '`|+---------------------+|:diagtext:`' to a void type`| |
8525 | | ||:diagtext:`sizeof` || | |
8526 | | |+---------------------+| | |
8527 | | ||:diagtext:`alignof` || | |
8528 | | |+---------------------+| | |
8529 | | ||:diagtext:`vec\_step`|| | |
8530 | | |+---------------------+| | |
8531 | +---------------------------------------------------------------+-----------------------+----------------------------+ |
8532 | |
8533 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
8534 | |:warning:`warning:` |nbsp| :diagtext:`subtraction of pointers to type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of zero size has undefined behavior`| |
8535 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
8536 | |
8537 | |
8538 | -Wpointer-bool-conversion |
8539 | ------------------------- |
8540 | This diagnostic is enabled by default. |
8541 | |
8542 | **Diagnostic text:** |
8543 | |
8544 | +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ |
8545 | |:warning:`warning:` |nbsp| :diagtext:`nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will evaluate to 'true' on first encounter`| |
8546 | | ||:diagtext:`function call`|| | |
8547 | | |+-------------------------+| | |
8548 | | ||:diagtext:`parameter` || | |
8549 | | |+-------------------------+| | |
8550 | +------------------------------------------------------+---------------------------+---------------------------------------------------------------------------------------------+ |
8551 | |
8552 | +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ |
8553 | |:warning:`warning:` |nbsp| :diagtext:`address of`|+----------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' will always evaluate to 'true'`| |
8554 | | || || | |
8555 | | |+----------------------------+| | |
8556 | | || |nbsp| :diagtext:`function`|| | |
8557 | | |+----------------------------+| | |
8558 | | || |nbsp| :diagtext:`array` || | |
8559 | | |+----------------------------+| | |
8560 | +-------------------------------------------------+------------------------------+---------------------------------------------------------------------------------+ |
8561 | |
8562 | |
8563 | -Wpointer-sign |
8564 | -------------- |
8565 | This diagnostic is enabled by default. |
8566 | |
8567 | **Diagnostic text:** |
8568 | |
8569 | +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ |
8570 | |:warning:`warning:` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`converts between pointers to integer types with different sign`| |
8571 | | ||:diagtext:`assigning to different types` || | |
8572 | | |+--------------------------------------------------------------+| | |
8573 | | ||:diagtext:`passing to parameter of different type` || | |
8574 | | |+--------------------------------------------------------------+| | |
8575 | | ||:diagtext:`returning from function with different return type`|| | |
8576 | | |+--------------------------------------------------------------+| | |
8577 | | ||:diagtext:`converting between types` || | |
8578 | | |+--------------------------------------------------------------+| | |
8579 | | ||:diagtext:`initializing with expression of different type` || | |
8580 | | |+--------------------------------------------------------------+| | |
8581 | | ||:diagtext:`sending to parameter of different type` || | |
8582 | | |+--------------------------------------------------------------+| | |
8583 | | ||:diagtext:`casting between types` || | |
8584 | | |+--------------------------------------------------------------+| | |
8585 | +---------------------------+----------------------------------------------------------------+----------------------------------------------------------------------------------+ |
8586 | |
8587 | |
8588 | -Wpointer-to-int-cast |
8589 | --------------------- |
8590 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
8591 | |
8592 | -Wpointer-type-mismatch |
8593 | ----------------------- |
8594 | This diagnostic is enabled by default. |
8595 | |
8596 | **Diagnostic text:** |
8597 | |
8598 | +------------------------------------------------------------+ |
8599 | |:warning:`warning:` |nbsp| :diagtext:`pointer type mismatch`| |
8600 | +------------------------------------------------------------+ |
8601 | |
8602 | |
8603 | -Wpotentially-evaluated-expression |
8604 | ---------------------------------- |
8605 | This diagnostic is enabled by default. |
8606 | |
8607 | **Diagnostic text:** |
8608 | |
8609 | +----------------------------------------------------------------------------------------------------------------------------------+ |
8610 | |:warning:`warning:` |nbsp| :diagtext:`expression with side effects will be evaluated despite being used as an operand to 'typeid'`| |
8611 | +----------------------------------------------------------------------------------------------------------------------------------+ |
8612 | |
8613 | |
8614 | -Wpragma-clang-attribute |
8615 | ------------------------ |
8616 | This diagnostic is enabled by default. |
8617 | |
8618 | **Diagnostic text:** |
8619 | |
8620 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
8621 | |:warning:`warning:` |nbsp| :diagtext:`unused attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in '#pragma clang attribute push' region`| |
8622 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
8623 | |
8624 | |
8625 | -Wpragma-once-outside-header |
8626 | ---------------------------- |
8627 | This diagnostic is enabled by default. |
8628 | |
8629 | **Diagnostic text:** |
8630 | |
8631 | +----------------------------------------------------------------+ |
8632 | |:warning:`warning:` |nbsp| :diagtext:`#pragma once in main file`| |
8633 | +----------------------------------------------------------------+ |
8634 | |
8635 | |
8636 | -Wpragma-pack |
8637 | ------------- |
8638 | Some of the diagnostics controlled by this flag are enabled by default. |
8639 | |
8640 | Also controls `-Wpragma-pack-suspicious-include`_. |
8641 | |
8642 | **Diagnostic text:** |
8643 | |
8644 | +----------------------------------------------------------------------------------------------------------------+ |
8645 | |:warning:`warning:` |nbsp| :diagtext:`the current #pragma pack alignment value is modified in the included file`| |
8646 | +----------------------------------------------------------------------------------------------------------------+ |
8647 | |
8648 | +---------------------------------------------------------------------------------------------+ |
8649 | |:warning:`warning:` |nbsp| :diagtext:`unterminated '#pragma pack (push, ...)' at end of file`| |
8650 | +---------------------------------------------------------------------------------------------+ |
8651 | |
8652 | |
8653 | -Wpragma-pack-suspicious-include |
8654 | -------------------------------- |
8655 | **Diagnostic text:** |
8656 | |
8657 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
8658 | |:warning:`warning:` |nbsp| :diagtext:`non-default #pragma pack value changes the alignment of struct or union members in the included file`| |
8659 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
8660 | |
8661 | |
8662 | -Wpragma-system-header-outside-header |
8663 | ------------------------------------- |
8664 | This diagnostic is enabled by default. |
8665 | |
8666 | **Diagnostic text:** |
8667 | |
8668 | +----------------------------------------------------------------------------------+ |
8669 | |:warning:`warning:` |nbsp| :diagtext:`#pragma system\_header ignored in main file`| |
8670 | +----------------------------------------------------------------------------------+ |
8671 | |
8672 | |
8673 | -Wpragmas |
8674 | --------- |
8675 | Some of the diagnostics controlled by this flag are enabled by default. |
8676 | |
8677 | Also controls `-Wignored-pragmas`_, `-Wpragma-clang-attribute`_, `-Wpragma-pack`_, `-Wunknown-pragmas`_. |
8678 | |
8679 | **Diagnostic text:** |
8680 | |
8681 | +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ |
8682 | |:warning:`warning:` |nbsp| :diagtext:`#pragma redefine\_extname is applicable to external C declarations only; not applied to` |nbsp| |+--------------------+| |nbsp| :placeholder:`B`| |
8683 | | ||:diagtext:`function`|| | |
8684 | | |+--------------------+| | |
8685 | | ||:diagtext:`variable`|| | |
8686 | | |+--------------------+| | |
8687 | +--------------------------------------------------------------------------------------------------------------------------------------+----------------------+------------------------+ |
8688 | |
8689 | |
8690 | -Wpredefined-identifier-outside-function |
8691 | ---------------------------------------- |
8692 | This diagnostic is enabled by default. |
8693 | |
8694 | **Diagnostic text:** |
8695 | |
8696 | +------------------------------------------------------------------------------------------+ |
8697 | |:warning:`warning:` |nbsp| :diagtext:`predefined identifier is only valid inside function`| |
8698 | +------------------------------------------------------------------------------------------+ |
8699 | |
8700 | |
8701 | -Wprivate-extern |
8702 | ---------------- |
8703 | This diagnostic is enabled by default. |
8704 | |
8705 | **Diagnostic text:** |
8706 | |
8707 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8708 | |:warning:`warning:` |nbsp| :diagtext:`use of \_\_private\_extern\_\_ on a declaration may not produce external symbol private to the linkage unit and is deprecated`| |
8709 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8710 | |
8711 | |
8712 | -Wprivate-header |
8713 | ---------------- |
8714 | This diagnostic is an error by default, but the flag ``-Wno-private-header`` can be used to disable the error. |
8715 | |
8716 | **Diagnostic text:** |
8717 | |
8718 | +----------------------------------------------------------------------------------------------------------------+ |
8719 | |:error:`error:` |nbsp| :diagtext:`use of private header from outside its module: '`:placeholder:`A`:diagtext:`'`| |
8720 | +----------------------------------------------------------------------------------------------------------------+ |
8721 | |
8722 | |
8723 | -Wprivate-module |
8724 | ---------------- |
8725 | This diagnostic is enabled by default. |
8726 | |
8727 | **Diagnostic text:** |
8728 | |
8729 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8730 | |:warning:`warning:` |nbsp| :diagtext:`top-level module '`:placeholder:`A`:diagtext:`' in private module map, expected a submodule of '`:placeholder:`B`:diagtext:`'`| |
8731 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8732 | |
8733 | +----------------------------------------------------------------------------------------------------------------------------------+ |
8734 | |:warning:`warning:` |nbsp| :diagtext:`module '`:placeholder:`A`:diagtext:`' already re-exported as '`:placeholder:`B`:diagtext:`'`| |
8735 | +----------------------------------------------------------------------------------------------------------------------------------+ |
8736 | |
8737 | |
8738 | -Wprofile-instr-missing |
8739 | ----------------------- |
8740 | **Diagnostic text:** |
8741 | |
8742 | +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+ |
8743 | |:warning:`warning:` |nbsp| :diagtext:`profile data may be incomplete: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`no data`| |
8744 | | || || ||:diagtext:`:has` || | |
8745 | | |+-------------+| |+-----------------+| | |
8746 | | ||:diagtext:`s`|| ||:diagtext:`:have`|| | |
8747 | | |+-------------+| |+-----------------+| | |
8748 | +-----------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+---------------------------+ |
8749 | |
8750 | |
8751 | -Wprofile-instr-out-of-date |
8752 | --------------------------- |
8753 | This diagnostic is enabled by default. |
8754 | |
8755 | **Diagnostic text:** |
8756 | |
8757 | +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+ |
8758 | |:warning:`warning:` |nbsp| :diagtext:`profile data may be out of date: of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`function`|+-------------+|:diagtext:`,` |nbsp| :placeholder:`B` |nbsp| |+-----------------+| |nbsp| :diagtext:`mismatched data that will be ignored`| |
8759 | | || || ||:diagtext:`:has` || | |
8760 | | |+-------------+| |+-----------------+| | |
8761 | | ||:diagtext:`s`|| ||:diagtext:`:have`|| | |
8762 | | |+-------------+| |+-----------------+| | |
8763 | +------------------------------------------------------------------------------------------------------------------------------+---------------+---------------------------------------------+-------------------+--------------------------------------------------------+ |
8764 | |
8765 | |
8766 | -Wprofile-instr-unprofiled |
8767 | -------------------------- |
8768 | This diagnostic is enabled by default. |
8769 | |
8770 | **Diagnostic text:** |
8771 | |
8772 | +--------------------------------------------------------------------------------------------------------+ |
8773 | |:warning:`warning:` |nbsp| :diagtext:`no profile data available for file "`:placeholder:`A`:diagtext:`"`| |
8774 | +--------------------------------------------------------------------------------------------------------+ |
8775 | |
8776 | |
8777 | -Wproperty-access-dot-syntax |
8778 | ---------------------------- |
8779 | This diagnostic is enabled by default. |
8780 | |
8781 | **Diagnostic text:** |
8782 | |
8783 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8784 | |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`not found on object of type` |nbsp| :placeholder:`B`:diagtext:`; did you mean to access property` |nbsp| :placeholder:`C`:diagtext:`?`| |
8785 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8786 | |
8787 | |
8788 | -Wproperty-attribute-mismatch |
8789 | ----------------------------- |
8790 | This diagnostic is enabled by default. |
8791 | |
8792 | **Diagnostic text:** |
8793 | |
8794 | +-------------------------------------------------------------------------------------------------------------+ |
8795 | |:warning:`warning:` |nbsp| :diagtext:`property attribute in class extension does not match the primary class`| |
8796 | +-------------------------------------------------------------------------------------------------------------+ |
8797 | |
8798 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8799 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' attribute on property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not match the property inherited from` |nbsp| :placeholder:`C`| |
8800 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8801 | |
8802 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8803 | |:warning:`warning:` |nbsp| :diagtext:`getter name mismatch between property redeclaration (`:placeholder:`B`:diagtext:`) and its original declaration (`:placeholder:`A`:diagtext:`)`| |
8804 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8805 | |
8806 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8807 | |:warning:`warning:` |nbsp| :diagtext:`attribute 'readonly' of property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`restricts attribute 'readwrite' of property inherited from` |nbsp| :placeholder:`B`| |
8808 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8809 | |
8810 | |
8811 | -Wprotocol |
8812 | ---------- |
8813 | This diagnostic is enabled by default. |
8814 | |
8815 | **Diagnostic text:** |
8816 | |
8817 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8818 | |:warning:`warning:` |nbsp| :diagtext:`method` |nbsp| :placeholder:`A` |nbsp| :diagtext:`in protocol` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not implemented`| |
8819 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8820 | |
8821 | |
8822 | -Wprotocol-property-synthesis-ambiguity |
8823 | --------------------------------------- |
8824 | This diagnostic is enabled by default. |
8825 | |
8826 | **Diagnostic text:** |
8827 | |
8828 | +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ |
8829 | |:warning:`warning:` |nbsp| :diagtext:`property` |nbsp| |+--------------------------------------------------------------+| |nbsp| :diagtext:`was selected for synthesis`| |
8830 | | ||+-------------------------------------------+ || | |
8831 | | |||:diagtext:`of type` |nbsp| :placeholder:`B`| || | |
8832 | | ||+-------------------------------------------+ || | |
8833 | | |+--------------------------------------------------------------+| | |
8834 | | ||+---------------------------------------------------------+ || | |
8835 | | |||:diagtext:`with attribute '`:placeholder:`B`:diagtext:`'`| || | |
8836 | | ||+---------------------------------------------------------+ || | |
8837 | | |+--------------------------------------------------------------+| | |
8838 | | ||+------------------------------------------------------------+|| | |
8839 | | |||:diagtext:`without attribute '`:placeholder:`B`:diagtext:`'`||| | |
8840 | | ||+------------------------------------------------------------+|| | |
8841 | | |+--------------------------------------------------------------+| | |
8842 | | ||+-----------------------------------------------+ || | |
8843 | | |||:diagtext:`with getter` |nbsp| :placeholder:`B`| || | |
8844 | | ||+-----------------------------------------------+ || | |
8845 | | |+--------------------------------------------------------------+| | |
8846 | | ||+-----------------------------------------------+ || | |
8847 | | |||:diagtext:`with setter` |nbsp| :placeholder:`B`| || | |
8848 | | ||+-----------------------------------------------+ || | |
8849 | | |+--------------------------------------------------------------+| | |
8850 | +-------------------------------------------------------+----------------------------------------------------------------+----------------------------------------------+ |
8851 | |
8852 | |
8853 | -Wqualified-void-return-type |
8854 | ---------------------------- |
8855 | This diagnostic is enabled by default. |
8856 | |
8857 | **Diagnostic text:** |
8858 | |
8859 | +---------------------------------------------------------------------------------------------------------+ |
8860 | |:warning:`warning:` |nbsp| :diagtext:`function cannot return qualified void type` |nbsp| :placeholder:`A`| |
8861 | +---------------------------------------------------------------------------------------------------------+ |
8862 | |
8863 | |
8864 | -Wrange-loop-analysis |
8865 | --------------------- |
8866 | **Diagnostic text:** |
8867 | |
8868 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8869 | |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| |nbsp| :diagtext:`is initialized with a value of a different type` |nbsp| :diagtext:`resulting in a copy`| |
8870 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8871 | |
8872 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8873 | |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`creates a copy from type` |nbsp| :placeholder:`C`| |
8874 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8875 | |
8876 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8877 | |:warning:`warning:` |nbsp| :diagtext:`loop variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is always a copy because the range of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`does not return a reference`| |
8878 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8879 | |
8880 | |
8881 | -Wreadonly-iboutlet-property |
8882 | ---------------------------- |
8883 | This diagnostic is enabled by default. |
8884 | |
8885 | **Diagnostic text:** |
8886 | |
8887 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8888 | |:warning:`warning:` |nbsp| :diagtext:`readonly IBOutlet property` |nbsp| :placeholder:`A` |nbsp| :diagtext:`when auto-synthesized may not work correctly with 'nib' loader`| |
8889 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8890 | |
8891 | |
8892 | -Wreceiver-expr |
8893 | --------------- |
8894 | This diagnostic is enabled by default. |
8895 | |
8896 | **Diagnostic text:** |
8897 | |
8898 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8899 | |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not 'id' or interface pointer, consider casting it to 'id'`| |
8900 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8901 | |
8902 | |
8903 | -Wreceiver-forward-class |
8904 | ------------------------ |
8905 | Some of the diagnostics controlled by this flag are enabled by default. |
8906 | |
8907 | **Diagnostic text:** |
8908 | |
8909 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8910 | |:warning:`warning:` |nbsp| :diagtext:`receiver` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a forward class and corresponding @interface may not exist`| |
8911 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
8912 | |
8913 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
8914 | |:warning:`warning:` |nbsp| :diagtext:`receiver type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for instance message is a forward declaration`| |
8915 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
8916 | |
8917 | |
8918 | -Wredeclared-class-member |
8919 | ------------------------- |
8920 | This diagnostic is enabled by default. |
8921 | |
8922 | **Diagnostic text:** |
8923 | |
8924 | +------------------------------------------------------------------------+ |
8925 | |:warning:`warning:` |nbsp| :diagtext:`class member cannot be redeclared`| |
8926 | +------------------------------------------------------------------------+ |
8927 | |
8928 | |
8929 | -Wredundant-decls |
8930 | ----------------- |
8931 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
8932 | |
8933 | -Wredundant-move |
8934 | ---------------- |
8935 | **Diagnostic text:** |
8936 | |
8937 | +-------------------------------------------------------------------------+ |
8938 | |:warning:`warning:` |nbsp| :diagtext:`redundant move in return statement`| |
8939 | +-------------------------------------------------------------------------+ |
8940 | |
8941 | |
8942 | -Wredundant-parens |
8943 | ------------------ |
8944 | **Diagnostic text:** |
8945 | |
8946 | +-----------------------------------------------------------------------------------+ |
8947 | |:warning:`warning:` |nbsp| :diagtext:`redundant parentheses surrounding declarator`| |
8948 | +-----------------------------------------------------------------------------------+ |
8949 | |
8950 | |
8951 | -Wregister |
8952 | ---------- |
8953 | This diagnostic is enabled by default. |
8954 | |
8955 | Also controls `-Wdeprecated-register`_. |
8956 | |
8957 | **Diagnostic text:** |
8958 | |
8959 | +----------------------------------------------------------------------------------------------+ |
8960 | |:error:`error:` |nbsp| :diagtext:`ISO C++17 does not allow 'register' storage class specifier`| |
8961 | +----------------------------------------------------------------------------------------------+ |
8962 | |
8963 | |
8964 | -Wreinterpret-base-class |
8965 | ------------------------ |
8966 | This diagnostic is enabled by default. |
8967 | |
8968 | **Diagnostic text:** |
8969 | |
8970 | +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ |
8971 | |:warning:`warning:` |nbsp| :diagtext:`'reinterpret\_cast'` |nbsp| |+----------------+| |nbsp| :diagtext:`class` |nbsp| :placeholder:`A` |nbsp| |+----------------+| |nbsp| :diagtext:`its` |nbsp| |+-----------------------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`behaves differently from 'static\_cast'`| |
8972 | | ||:diagtext:`from`|| ||:diagtext:`to` || ||:diagtext:`virtual base` || | |
8973 | | |+----------------+| |+----------------+| |+-----------------------------------+| | |
8974 | | ||:diagtext:`to` || ||:diagtext:`from`|| ||:diagtext:`base at non-zero offset`|| | |
8975 | | |+----------------+| |+----------------+| |+-----------------------------------+| | |
8976 | +------------------------------------------------------------------+------------------+---------------------------------------------------------+------------------+-------------------------------+-------------------------------------+-----------------------------------------------------------------------------------+ |
8977 | |
8978 | |
8979 | -Rremark-backend-plugin |
8980 | ----------------------- |
8981 | **Diagnostic text:** |
8982 | |
8983 | The text of this diagnostic is not controlled by Clang. |
8984 | |
8985 | |
8986 | -Wreorder |
8987 | --------- |
8988 | **Diagnostic text:** |
8989 | |
8990 | +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ |
8991 | |:warning:`warning:` |nbsp| |+----------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`will be initialized after` |nbsp| |+-----------------+| |nbsp| :placeholder:`D`| |
8992 | | ||:diagtext:`field` || ||:diagtext:`field`|| | |
8993 | | |+----------------------+| |+-----------------+| | |
8994 | | ||:diagtext:`base class`|| ||:diagtext:`base` || | |
8995 | | |+----------------------+| |+-----------------+| | |
8996 | +---------------------------+------------------------+-----------------------------------------------------------------------------+-------------------+------------------------+ |
8997 | |
8998 | |
8999 | -Wrequires-super-attribute |
9000 | -------------------------- |
9001 | This diagnostic is enabled by default. |
9002 | |
9003 | **Diagnostic text:** |
9004 | |
9005 | +-----------------------------------------------------------------------------------------------------+----------------------------------+ |
9006 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute cannot be applied to` |nbsp| |+--------------------------------+| |
9007 | | ||:diagtext:`methods in protocols`|| |
9008 | | |+--------------------------------+| |
9009 | | ||:diagtext:`dealloc` || |
9010 | | |+--------------------------------+| |
9011 | +-----------------------------------------------------------------------------------------------------+----------------------------------+ |
9012 | |
9013 | |
9014 | -Wreserved-id-macro |
9015 | ------------------- |
9016 | **Diagnostic text:** |
9017 | |
9018 | +--------------------------------------------------------------------------+ |
9019 | |:warning:`warning:` |nbsp| :diagtext:`macro name is a reserved identifier`| |
9020 | +--------------------------------------------------------------------------+ |
9021 | |
9022 | |
9023 | -Wreserved-user-defined-literal |
9024 | ------------------------------- |
9025 | Some of the diagnostics controlled by this flag are enabled by default. |
9026 | |
9027 | Also controls `-Wc++11-compat-reserved-user-defined-literal`_. |
9028 | |
9029 | **Diagnostic text:** |
9030 | |
9031 | +-----------------------------------------------------------------------------------------------------------------------+ |
9032 | |:warning:`warning:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| |
9033 | +-----------------------------------------------------------------------------------------------------------------------+ |
9034 | |
9035 | +-------------------------------------------------------------------------------------------------------------------+ |
9036 | |:error:`error:` |nbsp| :diagtext:`invalid suffix on literal; C++11 requires a space between literal and identifier`| |
9037 | +-------------------------------------------------------------------------------------------------------------------+ |
9038 | |
9039 | |
9040 | -Wretained-language-linkage |
9041 | --------------------------- |
9042 | **Diagnostic text:** |
9043 | |
9044 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9045 | |:warning:`warning:` |nbsp| :diagtext:`friend function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`retaining previous language linkage is an extension`| |
9046 | +-----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9047 | |
9048 | |
9049 | -Wreturn-stack-address |
9050 | ---------------------- |
9051 | This diagnostic is enabled by default. |
9052 | |
9053 | **Diagnostic text:** |
9054 | |
9055 | +---------------------------------------------------------------------------------+ |
9056 | |:warning:`warning:` |nbsp| :diagtext:`returning address of label, which is local`| |
9057 | +---------------------------------------------------------------------------------+ |
9058 | |
9059 | +--------------------------------------------------------+--------------------------+------------------------------------------+ |
9060 | |:warning:`warning:` |nbsp| :diagtext:`returning` |nbsp| |+------------------------+| |nbsp| :diagtext:`local temporary object`| |
9061 | | ||:diagtext:`address of` || | |
9062 | | |+------------------------+| | |
9063 | | ||:diagtext:`reference to`|| | |
9064 | | |+------------------------+| | |
9065 | +--------------------------------------------------------+--------------------------+------------------------------------------+ |
9066 | |
9067 | +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+ |
9068 | |:warning:`warning:` |nbsp| |+------------------------+| |nbsp| :diagtext:`stack memory associated with local variable` |nbsp| :placeholder:`B` |nbsp| :diagtext:`returned`| |
9069 | | ||:diagtext:`address of` || | |
9070 | | |+------------------------+| | |
9071 | | ||:diagtext:`reference to`|| | |
9072 | | |+------------------------+| | |
9073 | +---------------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------+ |
9074 | |
9075 | |
9076 | -Wreturn-type |
9077 | ------------- |
9078 | This diagnostic is enabled by default. |
9079 | |
9080 | Also controls `-Wreturn-type-c-linkage`_. |
9081 | |
9082 | **Diagnostic text:** |
9083 | |
9084 | +-----------------------+---------------------------+---------------------------------------------------------------------+ |
9085 | |:error:`error:` |nbsp| |+-------------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should not return a value`| |
9086 | | ||:diagtext:`void function`|| | |
9087 | | |+-------------------------+| | |
9088 | | ||:diagtext:`void method` || | |
9089 | | |+-------------------------+| | |
9090 | | ||:diagtext:`constructor` || | |
9091 | | |+-------------------------+| | |
9092 | | ||:diagtext:`destructor` || | |
9093 | | |+-------------------------+| | |
9094 | +-----------------------+---------------------------+---------------------------------------------------------------------+ |
9095 | |
9096 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------+ |
9097 | |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| |
9098 | | ||:diagtext:`function`|| | |
9099 | | |+--------------------+| | |
9100 | | ||:diagtext:`method` || | |
9101 | | |+--------------------+| | |
9102 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------+ |
9103 | |
9104 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9105 | |:warning:`warning:` |nbsp| :diagtext:`control reaches end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| |
9106 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9107 | |
9108 | +-------------------------------------------------------------------------------+ |
9109 | |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void function`| |
9110 | +-------------------------------------------------------------------------------+ |
9111 | |
9112 | +-----------------------------------------------------------------------------+ |
9113 | |:warning:`warning:` |nbsp| :diagtext:`control reaches end of non-void lambda`| |
9114 | +-----------------------------------------------------------------------------+ |
9115 | |
9116 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9117 | |:warning:`warning:` |nbsp| :diagtext:`control may reach end of coroutine; which is undefined behavior because the promise type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`does not declare 'return\_void()'`| |
9118 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9119 | |
9120 | +---------------------------------------------------------------------------------+ |
9121 | |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void function`| |
9122 | +---------------------------------------------------------------------------------+ |
9123 | |
9124 | +-------------------------------------------------------------------------------+ |
9125 | |:warning:`warning:` |nbsp| :diagtext:`control may reach end of non-void lambda`| |
9126 | +-------------------------------------------------------------------------------+ |
9127 | |
9128 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------+ |
9129 | |:error:`error:` |nbsp| :diagtext:`non-void` |nbsp| |+--------------------+| |nbsp| :placeholder:`A` |nbsp| :diagtext:`should return a value`| |
9130 | | ||:diagtext:`function`|| | |
9131 | | |+--------------------+| | |
9132 | | ||:diagtext:`method` || | |
9133 | | |+--------------------+| | |
9134 | +---------------------------------------------------+----------------------+-----------------------------------------------------------------+ |
9135 | |
9136 | |
9137 | -Wreturn-type-c-linkage |
9138 | ----------------------- |
9139 | This diagnostic is enabled by default. |
9140 | |
9141 | **Diagnostic text:** |
9142 | |
9143 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9144 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns user-defined type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which is incompatible with C`| |
9145 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9146 | |
9147 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9148 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has C-linkage specified, but returns incomplete type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`which could be incompatible with C`| |
9149 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9150 | |
9151 | |
9152 | -Wrtti-for-exceptions |
9153 | --------------------- |
9154 | This diagnostic is enabled by default. |
9155 | |
9156 | **Diagnostic text:** |
9157 | |
9158 | +--------------------------------------------------------------------------------------+ |
9159 | |:warning:`warning:` |nbsp| :diagtext:`implicitly enabling rtti for exception handling`| |
9160 | +--------------------------------------------------------------------------------------+ |
9161 | |
9162 | |
9163 | -Rsanitize-address |
9164 | ------------------ |
9165 | **Diagnostic text:** |
9166 | |
9167 | +--------------------------------------------------------------------------------------------------------+ |
9168 | |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding applied to` |nbsp| :placeholder:`A`| |
9169 | +--------------------------------------------------------------------------------------------------------+ |
9170 | |
9171 | +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ |
9172 | |:remark:`remark:` |nbsp| :diagtext:`-fsanitize-address-field-padding ignored for` |nbsp| :placeholder:`A` |nbsp| :diagtext:`because it` |nbsp| |+------------------------------------+| |
9173 | | ||:diagtext:`is not C++` || |
9174 | | |+------------------------------------+| |
9175 | | ||:diagtext:`is packed` || |
9176 | | |+------------------------------------+| |
9177 | | ||:diagtext:`is a union` || |
9178 | | |+------------------------------------+| |
9179 | | ||:diagtext:`is trivially copyable` || |
9180 | | |+------------------------------------+| |
9181 | | ||:diagtext:`has trivial destructor` || |
9182 | | |+------------------------------------+| |
9183 | | ||:diagtext:`is standard layout` || |
9184 | | |+------------------------------------+| |
9185 | | ||:diagtext:`is in a blacklisted file`|| |
9186 | | |+------------------------------------+| |
9187 | | ||:diagtext:`is blacklisted` || |
9188 | | |+------------------------------------+| |
9189 | +-----------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------+ |
9190 | |
9191 | |
9192 | -Wsection |
9193 | --------- |
9194 | This diagnostic is enabled by default. |
9195 | |
9196 | **Diagnostic text:** |
9197 | |
9198 | +--------------------------------------------------------------------------------------------+ |
9199 | |:warning:`warning:` |nbsp| :diagtext:`section attribute is specified on redeclared variable`| |
9200 | +--------------------------------------------------------------------------------------------+ |
9201 | |
9202 | +----------------------------------------------------------------------------------+ |
9203 | |:warning:`warning:` |nbsp| :diagtext:`section does not match previous declaration`| |
9204 | +----------------------------------------------------------------------------------+ |
9205 | |
9206 | |
9207 | -Wselector |
9208 | ---------- |
9209 | Also controls `-Wselector-type-mismatch`_. |
9210 | |
9211 | **Diagnostic text:** |
9212 | |
9213 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
9214 | |:warning:`warning:` |nbsp| :diagtext:`no method with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is implemented in this translation unit`| |
9215 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
9216 | |
9217 | |
9218 | -Wselector-type-mismatch |
9219 | ------------------------ |
9220 | **Diagnostic text:** |
9221 | |
9222 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9223 | |:warning:`warning:` |nbsp| :diagtext:`several methods with selector` |nbsp| :placeholder:`A` |nbsp| :diagtext:`of mismatched types are found for the @selector expression`| |
9224 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9225 | |
9226 | |
9227 | -Wself-assign |
9228 | ------------- |
9229 | Some of the diagnostics controlled by this flag are enabled by default. |
9230 | |
9231 | Also controls `-Wself-assign-field`_. |
9232 | |
9233 | **Diagnostic text:** |
9234 | |
9235 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
9236 | |:warning:`warning:` |nbsp| :diagtext:`explicitly assigning value of variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| |
9237 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
9238 | |
9239 | |
9240 | -Wself-assign-field |
9241 | ------------------- |
9242 | This diagnostic is enabled by default. |
9243 | |
9244 | **Diagnostic text:** |
9245 | |
9246 | +--------------------------------------------------------+-------------------------------+-----------------------------+ |
9247 | |:warning:`warning:` |nbsp| :diagtext:`assigning` |nbsp| |+-----------------------------+| |nbsp| :diagtext:`to itself`| |
9248 | | ||:diagtext:`field` || | |
9249 | | |+-----------------------------+| | |
9250 | | ||:diagtext:`instance variable`|| | |
9251 | | |+-----------------------------+| | |
9252 | +--------------------------------------------------------+-------------------------------+-----------------------------+ |
9253 | |
9254 | |
9255 | -Wself-move |
9256 | ----------- |
9257 | **Diagnostic text:** |
9258 | |
9259 | +------------------------------------------------------------------------------------------------------------------------------+ |
9260 | |:warning:`warning:` |nbsp| :diagtext:`explicitly moving variable of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to itself`| |
9261 | +------------------------------------------------------------------------------------------------------------------------------+ |
9262 | |
9263 | |
9264 | -Wsemicolon-before-method-body |
9265 | ------------------------------ |
9266 | **Diagnostic text:** |
9267 | |
9268 | +------------------------------------------------------------------------------+ |
9269 | |:warning:`warning:` |nbsp| :diagtext:`semicolon before method body is ignored`| |
9270 | +------------------------------------------------------------------------------+ |
9271 | |
9272 | |
9273 | -Wsentinel |
9274 | ---------- |
9275 | This diagnostic is enabled by default. |
9276 | |
9277 | **Diagnostic text:** |
9278 | |
9279 | +------------------------------------------------------------------+-----------------------------+ |
9280 | |:warning:`warning:` |nbsp| :diagtext:`missing sentinel in` |nbsp| |+---------------------------+| |
9281 | | ||:diagtext:`function call` || |
9282 | | |+---------------------------+| |
9283 | | ||:diagtext:`method dispatch`|| |
9284 | | |+---------------------------+| |
9285 | | ||:diagtext:`block call` || |
9286 | | |+---------------------------+| |
9287 | +------------------------------------------------------------------+-----------------------------+ |
9288 | |
9289 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
9290 | |:warning:`warning:` |nbsp| :diagtext:`not enough variable arguments in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declaration to fit a sentinel`| |
9291 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
9292 | |
9293 | |
9294 | -Wsequence-point |
9295 | ---------------- |
9296 | Synonym for `-Wunsequenced`_. |
9297 | |
9298 | |
9299 | -Wserialized-diagnostics |
9300 | ------------------------ |
9301 | This diagnostic is enabled by default. |
9302 | |
9303 | **Diagnostic text:** |
9304 | |
9305 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9306 | |:warning:`warning:` |nbsp| :diagtext:`unable to open file` |nbsp| :placeholder:`A` |nbsp| :diagtext:`for serializing diagnostics (`:placeholder:`B`:diagtext:`)`| |
9307 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9308 | |
9309 | +--------------------------------------------------------------------------------------------+ |
9310 | |:warning:`warning:` |nbsp| :diagtext:`unable to merge a subprocess's serialized diagnostics`| |
9311 | +--------------------------------------------------------------------------------------------+ |
9312 | |
9313 | |
9314 | -Wshadow |
9315 | -------- |
9316 | Some of the diagnostics controlled by this flag are enabled by default. |
9317 | |
9318 | Also controls `-Wshadow-field-in-constructor-modified`_, `-Wshadow-ivar`_. |
9319 | |
9320 | **Diagnostic text:** |
9321 | |
9322 | +--------------------------------------------------------------------+-------------------------------------------------------------+ |
9323 | |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| |
9324 | | ||:diagtext:`local variable` || |
9325 | | |+-----------------------------------------------------------+| |
9326 | | ||+-----------------------------------------------+ || |
9327 | | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || |
9328 | | ||+-----------------------------------------------+ || |
9329 | | |+-----------------------------------------------------------+| |
9330 | | ||+---------------------------------------------------------+|| |
9331 | | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| |
9332 | | ||+---------------------------------------------------------+|| |
9333 | | |+-----------------------------------------------------------+| |
9334 | | ||+--------------------------------------------+ || |
9335 | | |||:diagtext:`field of` |nbsp| :placeholder:`C`| || |
9336 | | ||+--------------------------------------------+ || |
9337 | | |+-----------------------------------------------------------+| |
9338 | | ||+----------------------------------------------+ || |
9339 | | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || |
9340 | | ||+----------------------------------------------+ || |
9341 | | |+-----------------------------------------------------------+| |
9342 | | ||+-------------------------------------------------+ || |
9343 | | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || |
9344 | | ||+-------------------------------------------------+ || |
9345 | | |+-----------------------------------------------------------+| |
9346 | +--------------------------------------------------------------------+-------------------------------------------------------------+ |
9347 | |
9348 | |
9349 | -Wshadow-all |
9350 | ------------ |
9351 | Some of the diagnostics controlled by this flag are enabled by default. |
9352 | |
9353 | Controls `-Wshadow`_, `-Wshadow-field`_, `-Wshadow-field-in-constructor`_, `-Wshadow-uncaptured-local`_. |
9354 | |
9355 | |
9356 | -Wshadow-field |
9357 | -------------- |
9358 | **Diagnostic text:** |
9359 | |
9360 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9361 | |:warning:`warning:` |nbsp| :diagtext:`non-static data member '`:placeholder:`A`:diagtext:`' of '`:placeholder:`B`:diagtext:`' shadows member inherited from type '`:placeholder:`C`:diagtext:`'`| |
9362 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9363 | |
9364 | |
9365 | -Wshadow-field-in-constructor |
9366 | ----------------------------- |
9367 | Also controls `-Wshadow-field-in-constructor-modified`_. |
9368 | |
9369 | **Diagnostic text:** |
9370 | |
9371 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9372 | |:warning:`warning:` |nbsp| :diagtext:`constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`shadows the field` |nbsp| :placeholder:`B` |nbsp| :diagtext:`of` |nbsp| :placeholder:`C`| |
9373 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9374 | |
9375 | |
9376 | -Wshadow-field-in-constructor-modified |
9377 | -------------------------------------- |
9378 | **Diagnostic text:** |
9379 | |
9380 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9381 | |:warning:`warning:` |nbsp| :diagtext:`modifying constructor parameter` |nbsp| :placeholder:`A` |nbsp| :diagtext:`that shadows a field of` |nbsp| :placeholder:`B`| |
9382 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9383 | |
9384 | |
9385 | -Wshadow-ivar |
9386 | ------------- |
9387 | This diagnostic is enabled by default. |
9388 | |
9389 | **Diagnostic text:** |
9390 | |
9391 | +------------------------------------------------------------------------------------------------------------------------------+ |
9392 | |:warning:`warning:` |nbsp| :diagtext:`local declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`hides instance variable`| |
9393 | +------------------------------------------------------------------------------------------------------------------------------+ |
9394 | |
9395 | |
9396 | -Wshadow-uncaptured-local |
9397 | ------------------------- |
9398 | **Diagnostic text:** |
9399 | |
9400 | +--------------------------------------------------------------------+-------------------------------------------------------------+ |
9401 | |:warning:`warning:` |nbsp| :diagtext:`declaration shadows a` |nbsp| |+-----------------------------------------------------------+| |
9402 | | ||:diagtext:`local variable` || |
9403 | | |+-----------------------------------------------------------+| |
9404 | | ||+-----------------------------------------------+ || |
9405 | | |||:diagtext:`variable in` |nbsp| :placeholder:`C`| || |
9406 | | ||+-----------------------------------------------+ || |
9407 | | |+-----------------------------------------------------------+| |
9408 | | ||+---------------------------------------------------------+|| |
9409 | | |||:diagtext:`static data member of` |nbsp| :placeholder:`C`||| |
9410 | | ||+---------------------------------------------------------+|| |
9411 | | |+-----------------------------------------------------------+| |
9412 | | ||+--------------------------------------------+ || |
9413 | | |||:diagtext:`field of` |nbsp| :placeholder:`C`| || |
9414 | | ||+--------------------------------------------+ || |
9415 | | |+-----------------------------------------------------------+| |
9416 | | ||+----------------------------------------------+ || |
9417 | | |||:diagtext:`typedef in` |nbsp| :placeholder:`C`| || |
9418 | | ||+----------------------------------------------+ || |
9419 | | |+-----------------------------------------------------------+| |
9420 | | ||+-------------------------------------------------+ || |
9421 | | |||:diagtext:`type alias in` |nbsp| :placeholder:`C`| || |
9422 | | ||+-------------------------------------------------+ || |
9423 | | |+-----------------------------------------------------------+| |
9424 | +--------------------------------------------------------------------+-------------------------------------------------------------+ |
9425 | |
9426 | |
9427 | -Wshift-count-negative |
9428 | ---------------------- |
9429 | This diagnostic is enabled by default. |
9430 | |
9431 | **Diagnostic text:** |
9432 | |
9433 | +--------------------------------------------------------------+ |
9434 | |:warning:`warning:` |nbsp| :diagtext:`shift count is negative`| |
9435 | +--------------------------------------------------------------+ |
9436 | |
9437 | |
9438 | -Wshift-count-overflow |
9439 | ---------------------- |
9440 | This diagnostic is enabled by default. |
9441 | |
9442 | **Diagnostic text:** |
9443 | |
9444 | +-------------------------------------------------------------------+ |
9445 | |:warning:`warning:` |nbsp| :diagtext:`shift count >= width of type`| |
9446 | +-------------------------------------------------------------------+ |
9447 | |
9448 | |
9449 | -Wshift-negative-value |
9450 | ---------------------- |
9451 | This diagnostic is enabled by default. |
9452 | |
9453 | **Diagnostic text:** |
9454 | |
9455 | +------------------------------------------------------------------------------------+ |
9456 | |:warning:`warning:` |nbsp| :diagtext:`shifting a negative signed value is undefined`| |
9457 | +------------------------------------------------------------------------------------+ |
9458 | |
9459 | |
9460 | -Wshift-op-parentheses |
9461 | ---------------------- |
9462 | This diagnostic is enabled by default. |
9463 | |
9464 | **Diagnostic text:** |
9465 | |
9466 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9467 | |:warning:`warning:` |nbsp| :diagtext:`operator '`:placeholder:`A`:diagtext:`' has lower precedence than '`:placeholder:`B`:diagtext:`'; '`:placeholder:`B`:diagtext:`' will be evaluated first`| |
9468 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9469 | |
9470 | |
9471 | -Wshift-overflow |
9472 | ---------------- |
9473 | This diagnostic is enabled by default. |
9474 | |
9475 | **Diagnostic text:** |
9476 | |
9477 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9478 | |:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) requires` |nbsp| :placeholder:`B` |nbsp| :diagtext:`bits to represent, but` |nbsp| :placeholder:`C` |nbsp| :diagtext:`only has` |nbsp| :placeholder:`D` |nbsp| :diagtext:`bits`| |
9479 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9480 | |
9481 | |
9482 | -Wshift-sign-overflow |
9483 | --------------------- |
9484 | **Diagnostic text:** |
9485 | |
9486 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9487 | |:warning:`warning:` |nbsp| :diagtext:`signed shift result (`:placeholder:`A`:diagtext:`) sets the sign bit of the shift expression's type (`:placeholder:`B`:diagtext:`) and becomes negative`| |
9488 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9489 | |
9490 | |
9491 | -Wshorten-64-to-32 |
9492 | ------------------ |
9493 | **Diagnostic text:** |
9494 | |
9495 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9496 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion loses integer precision:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
9497 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9498 | |
9499 | |
9500 | -Wsign-compare |
9501 | -------------- |
9502 | **Diagnostic text:** |
9503 | |
9504 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9505 | |:warning:`warning:` |nbsp| :diagtext:`comparison of integers of different signs:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`| |
9506 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9507 | |
9508 | |
9509 | -Wsign-conversion |
9510 | ----------------- |
9511 | **Diagnostic text:** |
9512 | |
9513 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9514 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
9515 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9516 | |
9517 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
9518 | |:warning:`warning:` |nbsp| :diagtext:`operand of ? changes signedness:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
9519 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
9520 | |
9521 | |
9522 | -Wsign-promo |
9523 | ------------ |
9524 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9525 | |
9526 | -Wsigned-enum-bitfield |
9527 | ---------------------- |
9528 | **Diagnostic text:** |
9529 | |
9530 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9531 | |:warning:`warning:` |nbsp| :diagtext:`enums in the Microsoft ABI are signed integers by default; consider giving the enum` |nbsp| :placeholder:`A` |nbsp| :diagtext:`an unsigned underlying type to make this code portable`| |
9532 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9533 | |
9534 | |
9535 | -Wsizeof-array-argument |
9536 | ----------------------- |
9537 | This diagnostic is enabled by default. |
9538 | |
9539 | **Diagnostic text:** |
9540 | |
9541 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9542 | |:warning:`warning:` |nbsp| :diagtext:`sizeof on array function parameter will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| |
9543 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9544 | |
9545 | |
9546 | -Wsizeof-array-decay |
9547 | -------------------- |
9548 | This diagnostic is enabled by default. |
9549 | |
9550 | **Diagnostic text:** |
9551 | |
9552 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9553 | |:warning:`warning:` |nbsp| :diagtext:`sizeof on pointer operation will return size of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`instead of` |nbsp| :placeholder:`B`| |
9554 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9555 | |
9556 | |
9557 | -Wsizeof-pointer-memaccess |
9558 | -------------------------- |
9559 | This diagnostic is enabled by default. |
9560 | |
9561 | **Diagnostic text:** |
9562 | |
9563 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9564 | |:warning:`warning:` |nbsp| :diagtext:`'`:placeholder:`A`:diagtext:`' call operates on objects of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`while the size is based on a different type` |nbsp| :placeholder:`C`| |
9565 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9566 | |
9567 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ |
9568 | |:warning:`warning:` |nbsp| :diagtext:`argument to 'sizeof' in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call is the same pointer type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`as the` |nbsp| |+-----------------------+|:diagtext:`; expected` |nbsp| :placeholder:`D` |nbsp| :diagtext:`or an explicit length`| |
9569 | | ||:diagtext:`destination`|| | |
9570 | | |+-----------------------+| | |
9571 | | ||:diagtext:`source` || | |
9572 | | |+-----------------------+| | |
9573 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------+---------------------------------------------------------------------------------------+ |
9574 | |
9575 | |
9576 | -Wslash-u-filename |
9577 | ------------------ |
9578 | This diagnostic is enabled by default. |
9579 | |
9580 | **Diagnostic text:** |
9581 | |
9582 | +--------------------------------------------------------------------------------------------------+ |
9583 | |:warning:`warning:` |nbsp| :diagtext:`'/U`:placeholder:`A`:diagtext:`' treated as the '/U' option`| |
9584 | +--------------------------------------------------------------------------------------------------+ |
9585 | |
9586 | |
9587 | -Wsometimes-uninitialized |
9588 | ------------------------- |
9589 | **Diagnostic text:** |
9590 | |
9591 | +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ |
9592 | |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is` |nbsp| |+--------------------+| |nbsp| :diagtext:`uninitialized whenever` |nbsp| |+------------------------------------------------------------------------------------------------------------+| |
9593 | | ||:diagtext:`used` || ||+---------------------------------------------------------------+-------------------+ || |
9594 | | |+--------------------+| |||:diagtext:`'`:placeholder:`D`:diagtext:`' condition is` |nbsp| |+-----------------+| || |
9595 | | ||:diagtext:`captured`|| ||| ||:diagtext:`true` || || |
9596 | | |+--------------------+| ||| |+-----------------+| || |
9597 | | | | ||| ||:diagtext:`false`|| || |
9598 | | | | ||| |+-----------------+| || |
9599 | | | | ||+---------------------------------------------------------------+-------------------+ || |
9600 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9601 | | | | ||+-------------------------------------------------------+--------------------------------------------------+|| |
9602 | | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| |
9603 | | | | ||| ||:diagtext:`is entered` |||| |
9604 | | | | ||| |+------------------------------------------------+||| |
9605 | | | | ||| ||:diagtext:`exits because its condition is false`|||| |
9606 | | | | ||| |+------------------------------------------------+||| |
9607 | | | | ||+-------------------------------------------------------+--------------------------------------------------+|| |
9608 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9609 | | | | ||+-------------------------------------------------------+--------------------------------------------------+|| |
9610 | | | | |||:diagtext:`'`:placeholder:`D`:diagtext:`' loop` |nbsp| |+------------------------------------------------+||| |
9611 | | | | ||| ||:diagtext:`condition is true` |||| |
9612 | | | | ||| |+------------------------------------------------+||| |
9613 | | | | ||| ||:diagtext:`exits because its condition is false`|||| |
9614 | | | | ||| |+------------------------------------------------+||| |
9615 | | | | ||+-------------------------------------------------------+--------------------------------------------------+|| |
9616 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9617 | | | | ||+----------------------------------------------------------------------+ || |
9618 | | | | |||:diagtext:`switch` |nbsp| :placeholder:`D` |nbsp| :diagtext:`is taken`| || |
9619 | | | | ||+----------------------------------------------------------------------+ || |
9620 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9621 | | | | ||:diagtext:`its declaration is reached` || |
9622 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9623 | | | | ||+---------------------------------------------+ || |
9624 | | | | |||:placeholder:`D` |nbsp| :diagtext:`is called`| || |
9625 | | | | ||+---------------------------------------------+ || |
9626 | | | | |+------------------------------------------------------------------------------------------------------------+| |
9627 | +-----------------------------------------------------------------------------------------------------+----------------------+--------------------------------------------------+--------------------------------------------------------------------------------------------------------------+ |
9628 | |
9629 | |
9630 | -Wsource-uses-openmp |
9631 | -------------------- |
9632 | Some of the diagnostics controlled by this flag are enabled by default. |
9633 | |
9634 | **Diagnostic text:** |
9635 | |
9636 | +------------------------------------------------------------------------------------------------------------------------------+ |
9637 | |:warning:`warning:` |nbsp| :diagtext:`OpenMP only allows an ordered construct with the simd clause nested in a simd construct`| |
9638 | +------------------------------------------------------------------------------------------------------------------------------+ |
9639 | |
9640 | +------------------------------------------------------------------------------+ |
9641 | |:warning:`warning:` |nbsp| :diagtext:`unexpected '#pragma omp ...' in program`| |
9642 | +------------------------------------------------------------------------------+ |
9643 | |
9644 | |
9645 | -Wspir-compat |
9646 | ------------- |
9647 | **Diagnostic text:** |
9648 | |
9649 | +----------------------------------------------------------------------------------------------------------------------+ |
9650 | |:warning:`warning:` |nbsp| :diagtext:`sampler initializer has invalid` |nbsp| :placeholder:`A` |nbsp| :diagtext:`bits`| |
9651 | +----------------------------------------------------------------------------------------------------------------------+ |
9652 | |
9653 | |
9654 | -Wstack-protector |
9655 | ----------------- |
9656 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9657 | |
9658 | -Wstatic-float-init |
9659 | ------------------- |
9660 | This diagnostic is enabled by default. |
9661 | |
9662 | Also controls `-Wgnu-static-float-init`_. |
9663 | |
9664 | **Diagnostic text:** |
9665 | |
9666 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9667 | |:error:`error:` |nbsp| :diagtext:`in-class initializer for static data member of type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`requires 'constexpr' specifier`| |
9668 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9669 | |
9670 | |
9671 | -Wstatic-in-inline |
9672 | ------------------ |
9673 | Some of the diagnostics controlled by this flag are enabled by default. |
9674 | |
9675 | **Diagnostic text:** |
9676 | |
9677 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
9678 | |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| |
9679 | | ||:diagtext:`function`|| | |
9680 | | |+--------------------+| | |
9681 | | ||:diagtext:`variable`|| | |
9682 | | |+--------------------+| | |
9683 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
9684 | |
9685 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
9686 | |:warning:`warning:` |nbsp| :diagtext:`static` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is used in an inline function with external linkage`| |
9687 | | ||:diagtext:`function`|| | |
9688 | | |+--------------------+| | |
9689 | | ||:diagtext:`variable`|| | |
9690 | | |+--------------------+| | |
9691 | +-----------------------------------------------------+----------------------+-----------------------------------------------------------------------------------------------+ |
9692 | |
9693 | |
9694 | -Wstatic-inline-explicit-instantiation |
9695 | -------------------------------------- |
9696 | This diagnostic is enabled by default. |
9697 | |
9698 | **Diagnostic text:** |
9699 | |
9700 | +-------------------------------------------------+--------------------+--------------------------------------------------------+ |
9701 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '`|+------------------+|:diagtext:`' keyword on explicit template instantiation`| |
9702 | | ||:diagtext:`static`|| | |
9703 | | |+------------------+| | |
9704 | | ||:diagtext:`inline`|| | |
9705 | | |+------------------+| | |
9706 | +-------------------------------------------------+--------------------+--------------------------------------------------------+ |
9707 | |
9708 | |
9709 | -Wstatic-local-in-inline |
9710 | ------------------------ |
9711 | This diagnostic is enabled by default. |
9712 | |
9713 | **Diagnostic text:** |
9714 | |
9715 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9716 | |:warning:`warning:` |nbsp| :diagtext:`non-constant static local variable in inline function may be different in different files`| |
9717 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9718 | |
9719 | |
9720 | -Wstatic-self-init |
9721 | ------------------ |
9722 | This diagnostic is enabled by default. |
9723 | |
9724 | **Diagnostic text:** |
9725 | |
9726 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9727 | |:warning:`warning:` |nbsp| :diagtext:`static variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is suspiciously used within its own initialization`| |
9728 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
9729 | |
9730 | |
9731 | -Wstrict-aliasing |
9732 | ----------------- |
9733 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9734 | |
9735 | -Wstrict-aliasing=0 |
9736 | ------------------- |
9737 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9738 | |
9739 | -Wstrict-aliasing=1 |
9740 | ------------------- |
9741 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9742 | |
9743 | -Wstrict-aliasing=2 |
9744 | ------------------- |
9745 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9746 | |
9747 | -Wstrict-overflow |
9748 | ----------------- |
9749 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9750 | |
9751 | -Wstrict-overflow=0 |
9752 | ------------------- |
9753 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9754 | |
9755 | -Wstrict-overflow=1 |
9756 | ------------------- |
9757 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9758 | |
9759 | -Wstrict-overflow=2 |
9760 | ------------------- |
9761 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9762 | |
9763 | -Wstrict-overflow=3 |
9764 | ------------------- |
9765 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9766 | |
9767 | -Wstrict-overflow=4 |
9768 | ------------------- |
9769 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9770 | |
9771 | -Wstrict-overflow=5 |
9772 | ------------------- |
9773 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9774 | |
9775 | -Wstrict-prototypes |
9776 | ------------------- |
9777 | **Diagnostic text:** |
9778 | |
9779 | +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ |
9780 | |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| |
9781 | | ||:diagtext:`function declaration is not` || | |
9782 | | |+------------------------------------------------------------+| | |
9783 | | ||:diagtext:`block declaration is not` || | |
9784 | | |+------------------------------------------------------------+| | |
9785 | | ||:diagtext:`old-style function definition is not preceded by`|| | |
9786 | | |+------------------------------------------------------------+| | |
9787 | +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ |
9788 | |
9789 | |
9790 | -Wstrict-prototypes |
9791 | ------------------- |
9792 | **Diagnostic text:** |
9793 | |
9794 | +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ |
9795 | |:warning:`warning:` |nbsp| :diagtext:`this` |nbsp| |+------------------------------------------------------------+| |nbsp| :diagtext:`a prototype`| |
9796 | | ||:diagtext:`function declaration is not` || | |
9797 | | |+------------------------------------------------------------+| | |
9798 | | ||:diagtext:`block declaration is not` || | |
9799 | | |+------------------------------------------------------------+| | |
9800 | | ||:diagtext:`old-style function definition is not preceded by`|| | |
9801 | | |+------------------------------------------------------------+| | |
9802 | +---------------------------------------------------+--------------------------------------------------------------+-------------------------------+ |
9803 | |
9804 | |
9805 | -Wstrict-selector-match |
9806 | ----------------------- |
9807 | **Diagnostic text:** |
9808 | |
9809 | +--------------------------------------------------------------------------------------------------------------+ |
9810 | |:warning:`warning:` |nbsp| :diagtext:`multiple methods named` |nbsp| :placeholder:`A` |nbsp| :diagtext:`found`| |
9811 | +--------------------------------------------------------------------------------------------------------------+ |
9812 | |
9813 | |
9814 | -Wstring-compare |
9815 | ---------------- |
9816 | This diagnostic is enabled by default. |
9817 | |
9818 | **Diagnostic text:** |
9819 | |
9820 | +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ |
9821 | |:warning:`warning:` |nbsp| :diagtext:`result of comparison against` |nbsp| |+----------------------------+| |nbsp| :diagtext:`is unspecified (use strncmp instead)`| |
9822 | | ||:diagtext:`a string literal`|| | |
9823 | | |+----------------------------+| | |
9824 | | ||:diagtext:`@encode` || | |
9825 | | |+----------------------------+| | |
9826 | +---------------------------------------------------------------------------+------------------------------+--------------------------------------------------------+ |
9827 | |
9828 | |
9829 | -Wstring-conversion |
9830 | ------------------- |
9831 | **Diagnostic text:** |
9832 | |
9833 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9834 | |:warning:`warning:` |nbsp| :diagtext:`implicit conversion turns string literal into bool:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`| |
9835 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9836 | |
9837 | |
9838 | -Wstring-plus-char |
9839 | ------------------ |
9840 | This diagnostic is enabled by default. |
9841 | |
9842 | **Diagnostic text:** |
9843 | |
9844 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
9845 | |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string pointer does not append to the string`| |
9846 | +------------------------------------------------------------------------------------------------------------------------------------------+ |
9847 | |
9848 | |
9849 | -Wstring-plus-int |
9850 | ----------------- |
9851 | This diagnostic is enabled by default. |
9852 | |
9853 | **Diagnostic text:** |
9854 | |
9855 | +----------------------------------------------------------------------------------------------------------------------------------+ |
9856 | |:warning:`warning:` |nbsp| :diagtext:`adding` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to a string does not append to the string`| |
9857 | +----------------------------------------------------------------------------------------------------------------------------------+ |
9858 | |
9859 | |
9860 | -Wstrlcpy-strlcat-size |
9861 | ---------------------- |
9862 | This diagnostic is enabled by default. |
9863 | |
9864 | **Diagnostic text:** |
9865 | |
9866 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9867 | |:warning:`warning:` |nbsp| :diagtext:`size argument in` |nbsp| :placeholder:`A` |nbsp| :diagtext:`call appears to be size of the source; expected the size of the destination`| |
9868 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9869 | |
9870 | |
9871 | -Wstrncat-size |
9872 | -------------- |
9873 | This diagnostic is enabled by default. |
9874 | |
9875 | **Diagnostic text:** |
9876 | |
9877 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9878 | |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument in 'strncat' is too large, might lead to a buffer overflow`| |
9879 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9880 | |
9881 | +-------------------------------------------------------------------------------------------------------+ |
9882 | |:warning:`warning:` |nbsp| :diagtext:`size argument in 'strncat' call appears to be size of the source`| |
9883 | +-------------------------------------------------------------------------------------------------------+ |
9884 | |
9885 | +-------------------------------------------------------------------------------------------+ |
9886 | |:warning:`warning:` |nbsp| :diagtext:`the value of the size argument to 'strncat' is wrong`| |
9887 | +-------------------------------------------------------------------------------------------+ |
9888 | |
9889 | |
9890 | -Wsuper-class-method-mismatch |
9891 | ----------------------------- |
9892 | **Diagnostic text:** |
9893 | |
9894 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9895 | |:warning:`warning:` |nbsp| :diagtext:`method parameter type` |nbsp| :diagtext:`does not match super class method parameter type`| |
9896 | +--------------------------------------------------------------------------------------------------------------------------------+ |
9897 | |
9898 | |
9899 | -Wswitch |
9900 | -------- |
9901 | This diagnostic is enabled by default. |
9902 | |
9903 | **Diagnostic text:** |
9904 | |
9905 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9906 | |:warning:`warning:` |nbsp| :diagtext:`overflow converting case value to switch condition type (`:placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B`:diagtext:`)`| |
9907 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9908 | |
9909 | +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9910 | |:warning:`warning:` |nbsp| |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9911 | | ||+-----------------------------------------------------------------------------------------------+ || |
9912 | | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not handled in switch`| || |
9913 | | ||+-----------------------------------------------------------------------------------------------+ || |
9914 | | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9915 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ || |
9916 | | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not handled in switch`| || |
9917 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------+ || |
9918 | | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9919 | | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9920 | | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not handled in switch`| || |
9921 | | ||+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9922 | | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9923 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
9924 | | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| |
9925 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
9926 | | |+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9927 | +---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9928 | |
9929 | +------------------------------------------------------------------------------------------------+ |
9930 | |:warning:`warning:` |nbsp| :diagtext:`case value not in enumerated type` |nbsp| :placeholder:`A`| |
9931 | +------------------------------------------------------------------------------------------------+ |
9932 | |
9933 | |
9934 | -Wswitch-bool |
9935 | ------------- |
9936 | This diagnostic is enabled by default. |
9937 | |
9938 | **Diagnostic text:** |
9939 | |
9940 | +-------------------------------------------------------------------------+ |
9941 | |:warning:`warning:` |nbsp| :diagtext:`switch condition has boolean value`| |
9942 | +-------------------------------------------------------------------------+ |
9943 | |
9944 | |
9945 | -Wswitch-default |
9946 | ---------------- |
9947 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9948 | |
9949 | -Wswitch-enum |
9950 | ------------- |
9951 | **Diagnostic text:** |
9952 | |
9953 | +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9954 | |:warning:`warning:` |nbsp| |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9955 | | ||+----------------------------------------------------------------------------------------------------------+ || |
9956 | | |||:diagtext:`:enumeration value` |nbsp| :placeholder:`B` |nbsp| :diagtext:`not explicitly handled in switch`| || |
9957 | | ||+----------------------------------------------------------------------------------------------------------+ || |
9958 | | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9959 | | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9960 | | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B` |nbsp| :diagtext:`and` |nbsp| :placeholder:`C` |nbsp| :diagtext:`not explicitly handled in switch`| || |
9961 | | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9962 | | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9963 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9964 | | |||:diagtext:`:enumeration values` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`, and` |nbsp| :placeholder:`D` |nbsp| :diagtext:`not explicitly handled in switch`| || |
9965 | | ||+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ || |
9966 | | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9967 | | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
9968 | | |||:diagtext:`:`:placeholder:`A` |nbsp| :diagtext:`enumeration values not explicitly handled in switch:` |nbsp| :placeholder:`B`:diagtext:`,` |nbsp| :placeholder:`C`:diagtext:`,` |nbsp| :placeholder:`D`:diagtext:`...`||| |
9969 | | ||+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+|| |
9970 | | |+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| |
9971 | +---------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
9972 | |
9973 | |
9974 | -Wsync-fetch-and-nand-semantics-changed |
9975 | --------------------------------------- |
9976 | This diagnostic is enabled by default. |
9977 | |
9978 | **Diagnostic text:** |
9979 | |
9980 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
9981 | |:warning:`warning:` |nbsp| :diagtext:`the semantics of this intrinsic changed with GCC version 4.4 - the newer semantics are provided here`| |
9982 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
9983 | |
9984 | |
9985 | -Wsynth |
9986 | ------- |
9987 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
9988 | |
9989 | -Wtautological-compare |
9990 | ---------------------- |
9991 | Some of the diagnostics controlled by this flag are enabled by default. |
9992 | |
9993 | Also controls `-Wtautological-constant-compare`_, `-Wtautological-overlap-compare`_, `-Wtautological-pointer-compare`_, `-Wtautological-undefined-compare`_. |
9994 | |
9995 | **Diagnostic text:** |
9996 | |
9997 | +---------------------------+---------------------------+--------------------------------------------------+------------------------+ |
9998 | |:warning:`warning:` |nbsp| |+-------------------------+|:diagtext:`comparison always evaluates to` |nbsp| |+----------------------+| |
9999 | | ||:diagtext:`self-` || ||:diagtext:`false` || |
10000 | | |+-------------------------+| |+----------------------+| |
10001 | | ||:diagtext:`array` |nbsp| || ||:diagtext:`true` || |
10002 | | |+-------------------------+| |+----------------------+| |
10003 | | | | ||:diagtext:`a constant`|| |
10004 | | | | |+----------------------+| |
10005 | +---------------------------+---------------------------+--------------------------------------------------+------------------------+ |
10006 | |
10007 | +-------------------------------------------------------------------------------------+-------------------+ |
10008 | |:warning:`warning:` |nbsp| :diagtext:`bitwise comparison always evaluates to` |nbsp| |+-----------------+| |
10009 | | ||:diagtext:`false`|| |
10010 | | |+-----------------+| |
10011 | | ||:diagtext:`true` || |
10012 | | |+-----------------+| |
10013 | +-------------------------------------------------------------------------------------+-------------------+ |
10014 | |
10015 | |
10016 | -Wtautological-constant-compare |
10017 | ------------------------------- |
10018 | This diagnostic is enabled by default. |
10019 | |
10020 | Also controls `-Wtautological-constant-out-of-range-compare`_, `-Wtautological-unsigned-enum-zero-compare`_, `-Wtautological-unsigned-zero-compare`_. |
10021 | |
10022 | **Diagnostic text:** |
10023 | |
10024 | +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+ |
10025 | |:warning:`warning:` |nbsp| :diagtext:`comparison` |nbsp| |+----------------+| |nbsp| :placeholder:`C` |nbsp| |+----------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| |
10026 | | ||:placeholder:`D`|| ||:placeholder:`B`|| ||:diagtext:`false`|| |
10027 | | |+----------------+| |+----------------+| |+-----------------+| |
10028 | | ||:placeholder:`B`|| ||:placeholder:`D`|| ||:diagtext:`true` || |
10029 | | |+----------------+| |+----------------+| |+-----------------+| |
10030 | +---------------------------------------------------------+------------------+--------------------------------+------------------+-------------------------------------+-------------------+ |
10031 | |
10032 | |
10033 | -Wtautological-constant-out-of-range-compare |
10034 | -------------------------------------------- |
10035 | This diagnostic is enabled by default. |
10036 | |
10037 | **Diagnostic text:** |
10038 | |
10039 | +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+ |
10040 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------------------------------+| |nbsp| :diagtext:`with` |nbsp| |+--------------------------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| |
10041 | | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`false`|| |
10042 | | |||:diagtext:`constant` |nbsp| :placeholder:`A`||| |||:diagtext:`expression of type` |nbsp| :placeholder:`C`||| |+-----------------+| |
10043 | | ||+--------------------------------------------+|| ||+------------------------------------------------------+|| ||:diagtext:`true` || |
10044 | | |+----------------------------------------------+| |+--------------------------------------------------------+| |+-----------------+| |
10045 | | ||:diagtext:`true` || ||:diagtext:`boolean expression` || | | |
10046 | | |+----------------------------------------------+| |+--------------------------------------------------------+| | | |
10047 | | ||:diagtext:`false` || | | | | |
10048 | | |+----------------------------------------------+| | | | | |
10049 | +------------------------------------------------------------+------------------------------------------------+--------------------------------+----------------------------------------------------------+-------------------------------------+-------------------+ |
10050 | |
10051 | |
10052 | -Wtautological-overlap-compare |
10053 | ------------------------------ |
10054 | **Diagnostic text:** |
10055 | |
10056 | +-----------------------------------------------------------------------------------------+-------------------+ |
10057 | |:warning:`warning:` |nbsp| :diagtext:`overlapping comparisons always evaluate to` |nbsp| |+-----------------+| |
10058 | | ||:diagtext:`false`|| |
10059 | | |+-----------------+| |
10060 | | ||:diagtext:`true` || |
10061 | | |+-----------------+| |
10062 | +-----------------------------------------------------------------------------------------+-------------------+ |
10063 | |
10064 | |
10065 | -Wtautological-pointer-compare |
10066 | ------------------------------ |
10067 | This diagnostic is enabled by default. |
10068 | |
10069 | **Diagnostic text:** |
10070 | |
10071 | +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ |
10072 | |:warning:`warning:` |nbsp| :diagtext:`comparison of nonnull` |nbsp| |+-------------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is '`|+-----------------+|:diagtext:`' on first encounter`| |
10073 | | ||:diagtext:`function call`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || | |
10074 | | |+-------------------------+| |+-----------------------+| |+-----------------+| | |
10075 | | ||:diagtext:`parameter` || || || ||:diagtext:`false`|| | |
10076 | | |+-------------------------+| |+-----------------------+| |+-----------------+| | |
10077 | +--------------------------------------------------------------------+---------------------------+----------------------------------------------------------+-------------------------+----------------------------------------+-------------------+--------------------------------+ |
10078 | |
10079 | +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ |
10080 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+----------------------+| |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`'` |nbsp| |+-----------------------+|:diagtext:`equal to a null pointer is always` |nbsp| |+-----------------+| |
10081 | | ||:diagtext:`address of`|| ||:diagtext:`not` |nbsp| || ||:diagtext:`true` || |
10082 | | |+----------------------+| |+-----------------------+| |+-----------------+| |
10083 | | ||:diagtext:`function` || || || ||:diagtext:`false`|| |
10084 | | |+----------------------+| |+-----------------------+| |+-----------------+| |
10085 | | ||:diagtext:`array` || | | | | |
10086 | | |+----------------------+| | | | | |
10087 | +------------------------------------------------------------+------------------------+----------------------------------------------------------+-------------------------+-----------------------------------------------------+-------------------+ |
10088 | |
10089 | |
10090 | -Wtautological-undefined-compare |
10091 | -------------------------------- |
10092 | This diagnostic is enabled by default. |
10093 | |
10094 | **Diagnostic text:** |
10095 | |
10096 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ |
10097 | |:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| |
10098 | | ||:diagtext:`true` || |
10099 | | |+-----------------+| |
10100 | | ||:diagtext:`false`|| |
10101 | | |+-----------------+| |
10102 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ |
10103 | |
10104 | +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ |
10105 | |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to` |nbsp| |+-----------------+| |
10106 | | ||:diagtext:`true` || |
10107 | | |+-----------------+| |
10108 | | ||:diagtext:`false`|| |
10109 | | |+-----------------+| |
10110 | +------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+ |
10111 | |
10112 | |
10113 | -Wtautological-unsigned-enum-zero-compare |
10114 | ----------------------------------------- |
10115 | This diagnostic is enabled by default. |
10116 | |
10117 | **Diagnostic text:** |
10118 | |
10119 | +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+ |
10120 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+------------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+------------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| |
10121 | | ||:placeholder:`D` || ||:diagtext:`unsigned enum expression`|| ||:diagtext:`false`|| |
10122 | | |+------------------------------------+| |+------------------------------------+| |+-----------------+| |
10123 | | ||:diagtext:`unsigned enum expression`|| ||:placeholder:`D` || ||:diagtext:`true` || |
10124 | | |+------------------------------------+| |+------------------------------------+| |+-----------------+| |
10125 | +------------------------------------------------------------+--------------------------------------+--------------------------------+--------------------------------------+-------------------------------------+-------------------+ |
10126 | |
10127 | |
10128 | -Wtautological-unsigned-zero-compare |
10129 | ------------------------------------ |
10130 | This diagnostic is enabled by default. |
10131 | |
10132 | **Diagnostic text:** |
10133 | |
10134 | +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+ |
10135 | |:warning:`warning:` |nbsp| :diagtext:`comparison of` |nbsp| |+-------------------------------+| |nbsp| :placeholder:`C` |nbsp| |+-------------------------------+| |nbsp| :diagtext:`is always` |nbsp| |+-----------------+| |
10136 | | ||:placeholder:`D` || ||:diagtext:`unsigned expression`|| ||:diagtext:`false`|| |
10137 | | |+-------------------------------+| |+-------------------------------+| |+-----------------+| |
10138 | | ||:diagtext:`unsigned expression`|| ||:placeholder:`D` || ||:diagtext:`true` || |
10139 | | |+-------------------------------+| |+-------------------------------+| |+-----------------+| |
10140 | +------------------------------------------------------------+---------------------------------+--------------------------------+---------------------------------+-------------------------------------+-------------------+ |
10141 | |
10142 | |
10143 | -Wtentative-definition-incomplete-type |
10144 | -------------------------------------- |
10145 | This diagnostic is enabled by default. |
10146 | |
10147 | **Diagnostic text:** |
10148 | |
10149 | +---------------------------------------------------------------------------------------------------------------------------------------------------+ |
10150 | |:warning:`warning:` |nbsp| :diagtext:`tentative definition of variable with internal linkage has incomplete non-array type` |nbsp| :placeholder:`A`| |
10151 | +---------------------------------------------------------------------------------------------------------------------------------------------------+ |
10152 | |
10153 | |
10154 | -Wthread-safety |
10155 | --------------- |
10156 | Controls `-Wthread-safety-analysis`_, `-Wthread-safety-attributes`_, `-Wthread-safety-precise`_, `-Wthread-safety-reference`_. |
10157 | |
10158 | |
10159 | -Wthread-safety-analysis |
10160 | ------------------------ |
10161 | **Diagnostic text:** |
10162 | |
10163 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
10164 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' must be acquired before '`:placeholder:`C`:diagtext:`'`| |
10165 | +----------------------------------------------------------------------------------------------------------------------------------------------------+ |
10166 | |
10167 | +---------------------------------------------------------------------------------------------------------------------------------+ |
10168 | |:warning:`warning:` |nbsp| :diagtext:`Cycle in acquired\_before/after dependencies, starting with '`:placeholder:`A`:diagtext:`'`| |
10169 | +---------------------------------------------------------------------------------------------------------------------------------+ |
10170 | |
10171 | +---------------------------------------------------------------------+ |
10172 | |:warning:`warning:` |nbsp| :diagtext:`cannot resolve lock expression`| |
10173 | +---------------------------------------------------------------------+ |
10174 | |
10175 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10176 | |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that is already held`| |
10177 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10178 | |
10179 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10180 | |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at start of each loop`| |
10181 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10182 | |
10183 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10184 | |:warning:`warning:` |nbsp| :diagtext:`expecting` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' to be held at the end of function`| |
10185 | +------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10186 | |
10187 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10188 | |:warning:`warning:` |nbsp| :diagtext:`cannot call function '`:placeholder:`B`:diagtext:`' while` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`C`:diagtext:`' is held`| |
10189 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10190 | |
10191 | +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10192 | |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10193 | | ||+------------------------------------------+ || |
10194 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10195 | | ||+------------------------------------------+ || |
10196 | | |+--------------------------------------------------------+| |
10197 | | ||+------------------------------------------------------+|| |
10198 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10199 | | ||+------------------------------------------------------+|| |
10200 | | |+--------------------------------------------------------+| |
10201 | +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10202 | |
10203 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
10204 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is acquired exclusively and shared in the same scope`| |
10205 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ |
10206 | |
10207 | +------------------------------------------------------------------------------------------------------------------------------------+ |
10208 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is not held on every path through here`| |
10209 | +------------------------------------------------------------------------------------------------------------------------------------+ |
10210 | |
10211 | +----------------------------------------------------------------------------------------------------------------------------------+ |
10212 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' is still held at the end of function`| |
10213 | +----------------------------------------------------------------------------------------------------------------------------------+ |
10214 | |
10215 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
10216 | |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' that was not held`| |
10217 | +--------------------------------------------------------------------------------------------------------------------------------------------+ |
10218 | |
10219 | +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ |
10220 | |:warning:`warning:` |nbsp| :diagtext:`releasing` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' using` |nbsp| |+---------------------+| |nbsp| :diagtext:`access, expected` |nbsp| |+---------------------+| |nbsp| :diagtext:`access`| |
10221 | | ||:diagtext:`shared` || ||:diagtext:`shared` || | |
10222 | | |+---------------------+| |+---------------------+| | |
10223 | | ||:diagtext:`exclusive`|| ||:diagtext:`exclusive`|| | |
10224 | | |+---------------------+| |+---------------------+| | |
10225 | +----------------------------------------------------------------------------------------------------------------------------------------+-----------------------+--------------------------------------------+-----------------------+--------------------------+ |
10226 | |
10227 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+ |
10228 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+| |
10229 | | ||:diagtext:`reading`|| ||:diagtext:`any mutex` || |
10230 | | |+-------------------+| |+---------------------------------+| |
10231 | | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| |
10232 | | |+-------------------+| |+---------------------------------+| |
10233 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------+-----------------------------------+ |
10234 | |
10235 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10236 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10237 | | ||:diagtext:`reading`|| ||+------------------------------------------+ || |
10238 | | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10239 | | ||:diagtext:`writing`|| ||+------------------------------------------+ || |
10240 | | |+-------------------+| |+--------------------------------------------------------+| |
10241 | | | | ||+------------------------------------------------------+|| |
10242 | | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10243 | | | | ||+------------------------------------------------------+|| |
10244 | | | | |+--------------------------------------------------------+| |
10245 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10246 | |
10247 | +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+ |
10248 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`A`:diagtext:`' requires holding` |nbsp| |+---------------------------------+| |
10249 | | ||:diagtext:`reading`|| ||:diagtext:`any mutex` || |
10250 | | |+-------------------+| |+---------------------------------+| |
10251 | | ||:diagtext:`writing`|| ||:diagtext:`any mutex exclusively`|| |
10252 | | |+-------------------+| |+---------------------------------+| |
10253 | +---------------------------+---------------------+------------------------------------------------------------------------------------+-----------------------------------+ |
10254 | |
10255 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10256 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10257 | | ||:diagtext:`reading`|| ||+------------------------------------------+ || |
10258 | | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10259 | | ||:diagtext:`writing`|| ||+------------------------------------------+ || |
10260 | | |+-------------------+| |+--------------------------------------------------------+| |
10261 | | | | ||+------------------------------------------------------+|| |
10262 | | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10263 | | | | ||+------------------------------------------------------+|| |
10264 | | | | |+--------------------------------------------------------+| |
10265 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10266 | |
10267 | |
10268 | -Wthread-safety-attributes |
10269 | -------------------------- |
10270 | **Diagnostic text:** |
10271 | |
10272 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
10273 | |:warning:`warning:` |nbsp| :diagtext:`invalid capability name '`:placeholder:`A`:diagtext:`'; capability name must be 'mutex' or 'role'`| |
10274 | +----------------------------------------------------------------------------------------------------------------------------------------+ |
10275 | |
10276 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10277 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute requires arguments whose type is annotated with 'capability' attribute; type here is` |nbsp| :placeholder:`B`| |
10278 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10279 | |
10280 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10281 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute can only be applied in a context annotated with 'capability("mutex")' attribute`| |
10282 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10283 | |
10284 | +----------------------------------------------------------------------------------------------------------------------------------+ |
10285 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`only applies to pointer types; type here is` |nbsp| :placeholder:`B`| |
10286 | +----------------------------------------------------------------------------------------------------------------------------------+ |
10287 | |
10288 | +------------------------------------------------------------------------------------------------------------------------------------+ |
10289 | |:warning:`warning:` |nbsp| :diagtext:`ignoring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute because its argument is invalid`| |
10290 | +------------------------------------------------------------------------------------------------------------------------------------+ |
10291 | |
10292 | |
10293 | -Wthread-safety-beta |
10294 | -------------------- |
10295 | **Diagnostic text:** |
10296 | |
10297 | +------------------------------------------------------------------+ |
10298 | |:warning:`warning:` |nbsp| :diagtext:`Thread safety beta warning.`| |
10299 | +------------------------------------------------------------------+ |
10300 | |
10301 | |
10302 | -Wthread-safety-negative |
10303 | ------------------------ |
10304 | **Diagnostic text:** |
10305 | |
10306 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10307 | |:warning:`warning:` |nbsp| :diagtext:`acquiring` |nbsp| :placeholder:`A` |nbsp| :diagtext:`'`:placeholder:`B`:diagtext:`' requires negative capability '`:placeholder:`C`:diagtext:`'`| |
10308 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10309 | |
10310 | |
10311 | -Wthread-safety-precise |
10312 | ----------------------- |
10313 | **Diagnostic text:** |
10314 | |
10315 | +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10316 | |:warning:`warning:` |nbsp| :diagtext:`calling function '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10317 | | ||+------------------------------------------+ || |
10318 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10319 | | ||+------------------------------------------+ || |
10320 | | |+--------------------------------------------------------+| |
10321 | | ||+------------------------------------------------------+|| |
10322 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10323 | | ||+------------------------------------------------------+|| |
10324 | | |+--------------------------------------------------------+| |
10325 | +---------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10326 | |
10327 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10328 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`the value pointed to by '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10329 | | ||:diagtext:`reading`|| ||+------------------------------------------+ || |
10330 | | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10331 | | ||:diagtext:`writing`|| ||+------------------------------------------+ || |
10332 | | |+-------------------+| |+--------------------------------------------------------+| |
10333 | | | | ||+------------------------------------------------------+|| |
10334 | | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10335 | | | | ||+------------------------------------------------------+|| |
10336 | | | | |+--------------------------------------------------------+| |
10337 | +---------------------------+---------------------+---------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10338 | |
10339 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10340 | |:warning:`warning:` |nbsp| |+-------------------+| |nbsp| :diagtext:`variable '`:placeholder:`B`:diagtext:`' requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10341 | | ||:diagtext:`reading`|| ||+------------------------------------------+ || |
10342 | | |+-------------------+| |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10343 | | ||:diagtext:`writing`|| ||+------------------------------------------+ || |
10344 | | |+-------------------+| |+--------------------------------------------------------+| |
10345 | | | | ||+------------------------------------------------------+|| |
10346 | | | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10347 | | | | ||+------------------------------------------------------+|| |
10348 | | | | |+--------------------------------------------------------+| |
10349 | +---------------------------+---------------------+------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10350 | |
10351 | |
10352 | -Wthread-safety-reference |
10353 | ------------------------- |
10354 | **Diagnostic text:** |
10355 | |
10356 | +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10357 | |:warning:`warning:` |nbsp| :diagtext:`passing variable '`:placeholder:`B`:diagtext:`' by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10358 | | ||+------------------------------------------+ || |
10359 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10360 | | ||+------------------------------------------+ || |
10361 | | |+--------------------------------------------------------+| |
10362 | | ||+------------------------------------------------------+|| |
10363 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10364 | | ||+------------------------------------------------------+|| |
10365 | | |+--------------------------------------------------------+| |
10366 | +----------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10367 | |
10368 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10369 | |:warning:`warning:` |nbsp| :diagtext:`passing the value that '`:placeholder:`B`:diagtext:`' points to by reference requires holding` |nbsp| :placeholder:`A` |nbsp| |+--------------------------------------------------------+| |
10370 | | ||+------------------------------------------+ || |
10371 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`'`| || |
10372 | | ||+------------------------------------------+ || |
10373 | | |+--------------------------------------------------------+| |
10374 | | ||+------------------------------------------------------+|| |
10375 | | |||:diagtext:`'`:placeholder:`C`:diagtext:`' exclusively`||| |
10376 | | ||+------------------------------------------------------+|| |
10377 | | |+--------------------------------------------------------+| |
10378 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------+ |
10379 | |
10380 | |
10381 | -Wthread-safety-verbose |
10382 | ----------------------- |
10383 | **Diagnostic text:** |
10384 | |
10385 | +---------------------------------------------------------------------+ |
10386 | |:warning:`warning:` |nbsp| :diagtext:`Thread safety verbose warning.`| |
10387 | +---------------------------------------------------------------------+ |
10388 | |
10389 | |
10390 | -Wtrigraphs |
10391 | ----------- |
10392 | This diagnostic is enabled by default. |
10393 | |
10394 | **Diagnostic text:** |
10395 | |
10396 | +-----------------------------------------------------------------------------------------------------+ |
10397 | |:warning:`warning:` |nbsp| :diagtext:`trigraph converted to '`:placeholder:`A`:diagtext:`' character`| |
10398 | +-----------------------------------------------------------------------------------------------------+ |
10399 | |
10400 | +------------------------------------------------------------------+ |
10401 | |:warning:`warning:` |nbsp| :diagtext:`trigraph ends block comment`| |
10402 | +------------------------------------------------------------------+ |
10403 | |
10404 | +-------------------------------------------------------+ |
10405 | |:warning:`warning:` |nbsp| :diagtext:`trigraph ignored`| |
10406 | +-------------------------------------------------------+ |
10407 | |
10408 | +-------------------------------------------------------------------------------+ |
10409 | |:warning:`warning:` |nbsp| :diagtext:`ignored trigraph would end block comment`| |
10410 | +-------------------------------------------------------------------------------+ |
10411 | |
10412 | |
10413 | -Wtype-limits |
10414 | ------------- |
10415 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
10416 | |
10417 | -Wtype-safety |
10418 | ------------- |
10419 | This diagnostic is enabled by default. |
10420 | |
10421 | **Diagnostic text:** |
10422 | |
10423 | +----------------------------------------------------------------------------------------------------------------------------+ |
10424 | |:warning:`warning:` |nbsp| :diagtext:`specified` |nbsp| :placeholder:`A` |nbsp| :diagtext:`type tag requires a null pointer`| |
10425 | +----------------------------------------------------------------------------------------------------------------------------+ |
10426 | |
10427 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ |
10428 | |:warning:`warning:` |nbsp| :diagtext:`argument type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`doesn't match specified` |nbsp| :placeholder:`B` |nbsp| :diagtext:`type tag` |nbsp| |+---------------------------------------------------+| |
10429 | | ||+-------------------------------------------------+|| |
10430 | | |||:diagtext:`that requires` |nbsp| :placeholder:`D`||| |
10431 | | ||+-------------------------------------------------+|| |
10432 | | |+---------------------------------------------------+| |
10433 | | || || |
10434 | | |+---------------------------------------------------+| |
10435 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------+ |
10436 | |
10437 | +---------------------------------------------------------------------------------------------------+ |
10438 | |:warning:`warning:` |nbsp| :diagtext:`this type tag was not designed to be used with this function`| |
10439 | +---------------------------------------------------------------------------------------------------+ |
10440 | |
10441 | |
10442 | -Wtypedef-redefinition |
10443 | ---------------------- |
10444 | This diagnostic is enabled by default. |
10445 | |
10446 | **Diagnostic text:** |
10447 | |
10448 | +--------------------------------------------------------------------------------------------------------------------------+ |
10449 | |:warning:`warning:` |nbsp| :diagtext:`redefinition of typedef` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is a C11 feature`| |
10450 | +--------------------------------------------------------------------------------------------------------------------------+ |
10451 | |
10452 | |
10453 | -Wtypename-missing |
10454 | ------------------ |
10455 | This diagnostic is enabled by default. |
10456 | |
10457 | **Diagnostic text:** |
10458 | |
10459 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
10460 | |:warning:`warning:` |nbsp| :diagtext:`missing 'typename' prior to dependent type name '`:placeholder:`A`:placeholder:`B`:diagtext:`'`| |
10461 | +-------------------------------------------------------------------------------------------------------------------------------------+ |
10462 | |
10463 | |
10464 | -Wunable-to-open-stats-file |
10465 | --------------------------- |
10466 | This diagnostic is enabled by default. |
10467 | |
10468 | **Diagnostic text:** |
10469 | |
10470 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
10471 | |:warning:`warning:` |nbsp| :diagtext:`unable to open statistics output file '`:placeholder:`A`:diagtext:`': '`:placeholder:`B`:diagtext:`'`| |
10472 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
10473 | |
10474 | |
10475 | -Wunavailable-declarations |
10476 | -------------------------- |
10477 | This diagnostic is enabled by default. |
10478 | |
10479 | **Diagnostic text:** |
10480 | |
10481 | +----------------------------------------------------------------------------------------------------------------------+ |
10482 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`may be unavailable because the receiver type is unknown`| |
10483 | +----------------------------------------------------------------------------------------------------------------------+ |
10484 | |
10485 | |
10486 | -Wundeclared-selector |
10487 | --------------------- |
10488 | **Diagnostic text:** |
10489 | |
10490 | +----------------------------------------------------------------------------------+ |
10491 | |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`| |
10492 | +----------------------------------------------------------------------------------+ |
10493 | |
10494 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
10495 | |:warning:`warning:` |nbsp| :diagtext:`undeclared selector` |nbsp| :placeholder:`A`:diagtext:`; did you mean` |nbsp| :placeholder:`B`:diagtext:`?`| |
10496 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
10497 | |
10498 | |
10499 | -Wundef |
10500 | ------- |
10501 | **Diagnostic text:** |
10502 | |
10503 | +---------------------------------------------------------------------------------------------+ |
10504 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined, evaluates to 0`| |
10505 | +---------------------------------------------------------------------------------------------+ |
10506 | |
10507 | |
10508 | -Wundefined-bool-conversion |
10509 | --------------------------- |
10510 | This diagnostic is enabled by default. |
10511 | |
10512 | **Diagnostic text:** |
10513 | |
10514 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10515 | |:warning:`warning:` |nbsp| :diagtext:`reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true`| |
10516 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10517 | |
10518 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10519 | |:warning:`warning:` |nbsp| :diagtext:`'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true`| |
10520 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10521 | |
10522 | |
10523 | -Wundefined-func-template |
10524 | ------------------------- |
10525 | **Diagnostic text:** |
10526 | |
10527 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10528 | |:warning:`warning:` |nbsp| :diagtext:`instantiation of function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| |
10529 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10530 | |
10531 | |
10532 | -Wundefined-inline |
10533 | ------------------ |
10534 | This diagnostic is enabled by default. |
10535 | |
10536 | **Diagnostic text:** |
10537 | |
10538 | +----------------------------------------------------------------------------------------------------------------+ |
10539 | |:warning:`warning:` |nbsp| :diagtext:`inline function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not defined`| |
10540 | +----------------------------------------------------------------------------------------------------------------+ |
10541 | |
10542 | |
10543 | -Wundefined-internal |
10544 | -------------------- |
10545 | This diagnostic is enabled by default. |
10546 | |
10547 | **Diagnostic text:** |
10548 | |
10549 | +---------------------------+----------------------+-----------------------------------------------------------------------------------+ |
10550 | |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`has internal linkage but is not defined`| |
10551 | | ||:diagtext:`function`|| | |
10552 | | |+--------------------+| | |
10553 | | ||:diagtext:`variable`|| | |
10554 | | |+--------------------+| | |
10555 | +---------------------------+----------------------+-----------------------------------------------------------------------------------+ |
10556 | |
10557 | |
10558 | -Wundefined-internal-type |
10559 | ------------------------- |
10560 | **Diagnostic text:** |
10561 | |
10562 | +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ |
10563 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ requires a definition in this translation unit for` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`because its type does not have linkage`| |
10564 | | ||:diagtext:`function`|| | |
10565 | | |+--------------------+| | |
10566 | | ||:diagtext:`variable`|| | |
10567 | | |+--------------------+| | |
10568 | +---------------------------------------------------------------------------------------------------------+----------------------+----------------------------------------------------------------------------------+ |
10569 | |
10570 | |
10571 | -Wundefined-reinterpret-cast |
10572 | ---------------------------- |
10573 | **Diagnostic text:** |
10574 | |
10575 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10576 | |:warning:`warning:` |nbsp| :diagtext:`dereference of type` |nbsp| :placeholder:`B` |nbsp| :diagtext:`that was reinterpret\_cast from type` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has undefined behavior`| |
10577 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10578 | |
10579 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10580 | |:warning:`warning:` |nbsp| :diagtext:`reinterpret\_cast from` |nbsp| :placeholder:`A` |nbsp| :diagtext:`to` |nbsp| :placeholder:`B` |nbsp| :diagtext:`has undefined behavior`| |
10581 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10582 | |
10583 | |
10584 | -Wundefined-var-template |
10585 | ------------------------ |
10586 | This diagnostic is enabled by default. |
10587 | |
10588 | **Diagnostic text:** |
10589 | |
10590 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10591 | |:warning:`warning:` |nbsp| :diagtext:`instantiation of variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`required here, but no definition is available`| |
10592 | +---------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10593 | |
10594 | |
10595 | -Wunevaluated-expression |
10596 | ------------------------ |
10597 | This diagnostic is enabled by default. |
10598 | |
10599 | Also controls `-Wpotentially-evaluated-expression`_. |
10600 | |
10601 | **Diagnostic text:** |
10602 | |
10603 | +-----------------------------------------------------------------------------------------------------------+ |
10604 | |:warning:`warning:` |nbsp| :diagtext:`expression with side effects has no effect in an unevaluated context`| |
10605 | +-----------------------------------------------------------------------------------------------------------+ |
10606 | |
10607 | |
10608 | -Wunguarded-availability |
10609 | ------------------------ |
10610 | Some of the diagnostics controlled by this flag are enabled by default. |
10611 | |
10612 | Also controls `-Wunguarded-availability-new`_. |
10613 | |
10614 | **Diagnostic text:** |
10615 | |
10616 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10617 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| |
10618 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10619 | |
10620 | |
10621 | -Wunguarded-availability-new |
10622 | ---------------------------- |
10623 | This diagnostic is enabled by default. |
10624 | |
10625 | **Diagnostic text:** |
10626 | |
10627 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10628 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is only available on` |nbsp| :placeholder:`B` |nbsp| :placeholder:`C` |nbsp| :diagtext:`or newer`| |
10629 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10630 | |
10631 | |
10632 | -Wunicode |
10633 | --------- |
10634 | This diagnostic is enabled by default. |
10635 | |
10636 | **Diagnostic text:** |
10637 | |
10638 | +-------------------------------------------------------------------------------------------------------------------+ |
10639 | |:warning:`warning:` |nbsp| :diagtext:`incomplete universal character name; treating as '\\' followed by identifier`| |
10640 | +-------------------------------------------------------------------------------------------------------------------+ |
10641 | |
10642 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10643 | |:warning:`warning:` |nbsp| :diagtext:`\\`:placeholder:`A` |nbsp| :diagtext:`used with no following hex digits; treating as '\\' followed by identifier`| |
10644 | +-------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10645 | |
10646 | +-----------------------------------------------------------------------------------------------+ |
10647 | |:warning:`warning:` |nbsp| :diagtext:`universal character name refers to a surrogate character`| |
10648 | +-----------------------------------------------------------------------------------------------+ |
10649 | |
10650 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
10651 | |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++; treating as '\\' followed by identifier`| |
10652 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
10653 | |
10654 | +---------------------------------------------------------------------------------------------+ |
10655 | |:warning:`warning:` |nbsp| :diagtext:`universal character names are only valid in C99 or C++`| |
10656 | +---------------------------------------------------------------------------------------------+ |
10657 | |
10658 | |
10659 | -Wunicode-whitespace |
10660 | -------------------- |
10661 | This diagnostic is enabled by default. |
10662 | |
10663 | **Diagnostic text:** |
10664 | |
10665 | +-------------------------------------------------------------------------------+ |
10666 | |:warning:`warning:` |nbsp| :diagtext:`treating Unicode character as whitespace`| |
10667 | +-------------------------------------------------------------------------------+ |
10668 | |
10669 | |
10670 | -Wuninitialized |
10671 | --------------- |
10672 | Some of the diagnostics controlled by this flag are enabled by default. |
10673 | |
10674 | Also controls `-Wsometimes-uninitialized`_, `-Wstatic-self-init`_. |
10675 | |
10676 | **Diagnostic text:** |
10677 | |
10678 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10679 | |:warning:`warning:` |nbsp| :diagtext:`base class` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here to access` |nbsp| :placeholder:`B`| |
10680 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10681 | |
10682 | +-----------------------------------------------------------------------------------------------------------------------+ |
10683 | |:warning:`warning:` |nbsp| :diagtext:`field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used here`| |
10684 | +-----------------------------------------------------------------------------------------------------------------------+ |
10685 | |
10686 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
10687 | |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used here`| |
10688 | +--------------------------------------------------------------------------------------------------------------------------------------+ |
10689 | |
10690 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
10691 | |:warning:`warning:` |nbsp| :diagtext:`block pointer variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when captured by block`| |
10692 | +------------------------------------------------------------------------------------------------------------------------------------------------+ |
10693 | |
10694 | +---------------------------------------------------------------------------------------------------------------------------------------------------+ |
10695 | |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when used within its own initialization`| |
10696 | +---------------------------------------------------------------------------------------------------------------------------------------------------+ |
10697 | |
10698 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10699 | |:warning:`warning:` |nbsp| :diagtext:`reference` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not yet bound to a value when used within its own initialization`| |
10700 | +---------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10701 | |
10702 | +------------------------------------------------------------------------------------------------------------------------+-------------------------------+ |
10703 | |:warning:`warning:` |nbsp| :diagtext:`variable` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is uninitialized when` |nbsp| |+-----------------------------+| |
10704 | | ||:diagtext:`used here` || |
10705 | | |+-----------------------------+| |
10706 | | ||:diagtext:`captured by block`|| |
10707 | | |+-----------------------------+| |
10708 | +------------------------------------------------------------------------------------------------------------------------+-------------------------------+ |
10709 | |
10710 | |
10711 | -Wunknown-argument |
10712 | ------------------ |
10713 | This diagnostic is enabled by default. |
10714 | |
10715 | **Diagnostic text:** |
10716 | |
10717 | +-----------------------------------------------------------------------------------------------------------+ |
10718 | |:warning:`warning:` |nbsp| :diagtext:`unknown argument ignored in clang-cl: '`:placeholder:`A`:diagtext:`'`| |
10719 | +-----------------------------------------------------------------------------------------------------------+ |
10720 | |
10721 | |
10722 | -Wunknown-attributes |
10723 | -------------------- |
10724 | This diagnostic is enabled by default. |
10725 | |
10726 | **Diagnostic text:** |
10727 | |
10728 | +-----------------------------------------------------------------------------------------------------------+ |
10729 | |:warning:`warning:` |nbsp| :diagtext:`unknown attribute` |nbsp| :placeholder:`A` |nbsp| :diagtext:`ignored`| |
10730 | +-----------------------------------------------------------------------------------------------------------+ |
10731 | |
10732 | |
10733 | -Wunknown-escape-sequence |
10734 | ------------------------- |
10735 | This diagnostic is enabled by default. |
10736 | |
10737 | **Diagnostic text:** |
10738 | |
10739 | +-----------------------------------------------------------------------------------------------+ |
10740 | |:warning:`warning:` |nbsp| :diagtext:`unknown escape sequence '\\`:placeholder:`A`:diagtext:`'`| |
10741 | +-----------------------------------------------------------------------------------------------+ |
10742 | |
10743 | |
10744 | -Wunknown-pragmas |
10745 | ----------------- |
10746 | Some of the diagnostics controlled by this flag are enabled by default. |
10747 | |
10748 | **Diagnostic text:** |
10749 | |
10750 | +------------------------------------------------------------------------------------+ |
10751 | |:warning:`warning:` |nbsp| :diagtext:`expected 'ON' or 'OFF' or 'DEFAULT' in pragma`| |
10752 | +------------------------------------------------------------------------------------+ |
10753 | |
10754 | +--------------------------------------------------------------------------+ |
10755 | |:warning:`warning:` |nbsp| :diagtext:`expected end of directive in pragma`| |
10756 | +--------------------------------------------------------------------------+ |
10757 | |
10758 | +-----------------------------------------------------------------------+ |
10759 | |:warning:`warning:` |nbsp| :diagtext:`unknown pragma in STDC namespace`| |
10760 | +-----------------------------------------------------------------------+ |
10761 | |
10762 | +--------------------------------------------------------------------------------------------+ |
10763 | |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic pop could not pop, no matching push`| |
10764 | +--------------------------------------------------------------------------------------------+ |
10765 | |
10766 | +--------------------------------------------------------------------------------------------------------------------------+ |
10767 | |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'`| |
10768 | +--------------------------------------------------------------------------------------------------------------------------+ |
10769 | |
10770 | +----------------------------------------------------------------------------------------------+ |
10771 | |:warning:`warning:` |nbsp| :diagtext:`pragma diagnostic expected option name (e.g. "-Wundef")`| |
10772 | +----------------------------------------------------------------------------------------------+ |
10773 | |
10774 | +----------------------------------------------------------------------------+ |
10775 | |:warning:`warning:` |nbsp| :diagtext:`unexpected token in pragma diagnostic`| |
10776 | +----------------------------------------------------------------------------+ |
10777 | |
10778 | +-------------------------------------------------------------+ |
10779 | |:warning:`warning:` |nbsp| :diagtext:`unknown pragma ignored`| |
10780 | +-------------------------------------------------------------+ |
10781 | |
10782 | +----------------------------------------------------------------------------------------------------+ |
10783 | |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected '`:placeholder:`A`:diagtext:`'`| |
10784 | +----------------------------------------------------------------------------------------------------+ |
10785 | |
10786 | +--------------------------------------------------------------------------------------+ |
10787 | |:warning:`warning:` |nbsp| :diagtext:`pragma include\_alias expected include filename`| |
10788 | +--------------------------------------------------------------------------------------+ |
10789 | |
10790 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10791 | |:warning:`warning:` |nbsp| :diagtext:`angle-bracketed include <`:placeholder:`A`:diagtext:`> cannot be aliased to double-quoted include "`:placeholder:`B`:diagtext:`"`| |
10792 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10793 | |
10794 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10795 | |:warning:`warning:` |nbsp| :diagtext:`double-quoted include "`:placeholder:`A`:diagtext:`" cannot be aliased to angle-bracketed include <`:placeholder:`B`:diagtext:`>`| |
10796 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10797 | |
10798 | +----------------------------------------------------------------------------------------------+ |
10799 | |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected '`:placeholder:`A`:diagtext:`'`| |
10800 | +----------------------------------------------------------------------------------------------+ |
10801 | |
10802 | +--------------------------------------------------------------------------------+ |
10803 | |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected a warning number`| |
10804 | +--------------------------------------------------------------------------------+ |
10805 | |
10806 | +----------------------------------------------------------------------------------------------------+ |
10807 | |:warning:`warning:` |nbsp| :diagtext:`#pragma warning(push, level) requires a level between 0 and 4`| |
10808 | +----------------------------------------------------------------------------------------------------+ |
10809 | |
10810 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10811 | |:warning:`warning:` |nbsp| :diagtext:`#pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4`| |
10812 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10813 | |
10814 | +----------------------------------------------------------------------------------------------------+ |
10815 | |:warning:`warning:` |nbsp| :diagtext:`pragma STDC FENV\_ACCESS ON is not supported, ignoring pragma`| |
10816 | +----------------------------------------------------------------------------------------------------+ |
10817 | |
10818 | |
10819 | -Wunknown-sanitizers |
10820 | -------------------- |
10821 | This diagnostic is enabled by default. |
10822 | |
10823 | **Diagnostic text:** |
10824 | |
10825 | +-----------------------------------------------------------------------------------------------+ |
10826 | |:warning:`warning:` |nbsp| :diagtext:`unknown sanitizer '`:placeholder:`A`:diagtext:`' ignored`| |
10827 | +-----------------------------------------------------------------------------------------------+ |
10828 | |
10829 | |
10830 | -Wunknown-warning-option |
10831 | ------------------------ |
10832 | This diagnostic is enabled by default. |
10833 | |
10834 | **Diagnostic text:** |
10835 | |
10836 | +----------------------------------------------------------------------------------------------------+ |
10837 | |:warning:`warning:` |nbsp| :diagtext:`unknown warning group '`:placeholder:`A`:diagtext:`', ignored`| |
10838 | +----------------------------------------------------------------------------------------------------+ |
10839 | |
10840 | +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ |
10841 | |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| |+-------------------+| |nbsp| :diagtext:`option '`:placeholder:`B`:diagtext:`'`|+------------------------------------------------------------+| |
10842 | | ||:diagtext:`warning`|| || || |
10843 | | |+-------------------+| |+------------------------------------------------------------+| |
10844 | | ||:diagtext:`remark` || ||+----------------------------------------------------------+|| |
10845 | | |+-------------------+| |||:diagtext:`; did you mean '`:placeholder:`D`:diagtext:`'?`||| |
10846 | | | | ||+----------------------------------------------------------+|| |
10847 | | | | |+------------------------------------------------------------+| |
10848 | +------------------------------------------------------+---------------------+---------------------------------------------------------+--------------------------------------------------------------+ |
10849 | |
10850 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
10851 | |:warning:`warning:` |nbsp| :diagtext:`unknown` |nbsp| :placeholder:`A` |nbsp| :diagtext:`warning specifier: '`:placeholder:`B`:diagtext:`'`| |
10852 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
10853 | |
10854 | |
10855 | -Wunnamed-type-template-args |
10856 | ---------------------------- |
10857 | Some of the diagnostics controlled by this flag are enabled by default. |
10858 | |
10859 | Also controls `-Wc++98-compat-unnamed-type-template-args`_. |
10860 | |
10861 | **Diagnostic text:** |
10862 | |
10863 | +--------------------------------------------------------------------------+ |
10864 | |:warning:`warning:` |nbsp| :diagtext:`template argument uses unnamed type`| |
10865 | +--------------------------------------------------------------------------+ |
10866 | |
10867 | |
10868 | -Wunneeded-internal-declaration |
10869 | ------------------------------- |
10870 | **Diagnostic text:** |
10871 | |
10872 | +---------------------------+----------------------+---------------------------------------------------------------------------------+ |
10873 | |:warning:`warning:` |nbsp| |+--------------------+| |nbsp| :placeholder:`B` |nbsp| :diagtext:`is not needed and will not be emitted`| |
10874 | | ||:diagtext:`function`|| | |
10875 | | |+--------------------+| | |
10876 | | ||:diagtext:`variable`|| | |
10877 | | |+--------------------+| | |
10878 | +---------------------------+----------------------+---------------------------------------------------------------------------------+ |
10879 | |
10880 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10881 | |:warning:`warning:` |nbsp| :diagtext:`'static' function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`declared in header file should be declared 'static inline'`| |
10882 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10883 | |
10884 | |
10885 | -Wunneeded-member-function |
10886 | -------------------------- |
10887 | **Diagnostic text:** |
10888 | |
10889 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
10890 | |:warning:`warning:` |nbsp| :diagtext:`member function` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not needed and will not be emitted`| |
10891 | +---------------------------------------------------------------------------------------------------------------------------------------+ |
10892 | |
10893 | |
10894 | -Wunreachable-code |
10895 | ------------------ |
10896 | Also controls `-Wunreachable-code-loop-increment`_. |
10897 | |
10898 | **Diagnostic text:** |
10899 | |
10900 | +------------------------------------------------------------------+ |
10901 | |:warning:`warning:` |nbsp| :diagtext:`code will never be executed`| |
10902 | +------------------------------------------------------------------+ |
10903 | |
10904 | |
10905 | -Wunreachable-code-aggressive |
10906 | ----------------------------- |
10907 | Controls `-Wunreachable-code`_, `-Wunreachable-code-break`_, `-Wunreachable-code-return`_. |
10908 | |
10909 | |
10910 | -Wunreachable-code-break |
10911 | ------------------------ |
10912 | **Diagnostic text:** |
10913 | |
10914 | +---------------------------------------------------------------------+ |
10915 | |:warning:`warning:` |nbsp| :diagtext:`'break' will never be executed`| |
10916 | +---------------------------------------------------------------------+ |
10917 | |
10918 | |
10919 | -Wunreachable-code-loop-increment |
10920 | --------------------------------- |
10921 | **Diagnostic text:** |
10922 | |
10923 | +-------------------------------------------------------------------------------------------------+ |
10924 | |:warning:`warning:` |nbsp| :diagtext:`loop will run at most once (loop increment never executed)`| |
10925 | +-------------------------------------------------------------------------------------------------+ |
10926 | |
10927 | |
10928 | -Wunreachable-code-return |
10929 | ------------------------- |
10930 | **Diagnostic text:** |
10931 | |
10932 | +----------------------------------------------------------------------+ |
10933 | |:warning:`warning:` |nbsp| :diagtext:`'return' will never be executed`| |
10934 | +----------------------------------------------------------------------+ |
10935 | |
10936 | |
10937 | -Wunsequenced |
10938 | ------------- |
10939 | This diagnostic is enabled by default. |
10940 | |
10941 | **Diagnostic text:** |
10942 | |
10943 | +----------------------------------------------------------------------------------------------------+ |
10944 | |:warning:`warning:` |nbsp| :diagtext:`multiple unsequenced modifications to` |nbsp| :placeholder:`A`| |
10945 | +----------------------------------------------------------------------------------------------------+ |
10946 | |
10947 | +-----------------------------------------------------------------------------------------------------+ |
10948 | |:warning:`warning:` |nbsp| :diagtext:`unsequenced modification and access to` |nbsp| :placeholder:`A`| |
10949 | +-----------------------------------------------------------------------------------------------------+ |
10950 | |
10951 | |
10952 | -Wunsupported-abs |
10953 | ----------------- |
10954 | This diagnostic is enabled by default. |
10955 | |
10956 | **Diagnostic text:** |
10957 | |
10958 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10959 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| |
10960 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
10961 | |
10962 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
10963 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mabs=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| |
10964 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
10965 | |
10966 | |
10967 | -Wunsupported-availability-guard |
10968 | -------------------------------- |
10969 | This diagnostic is enabled by default. |
10970 | |
10971 | **Diagnostic text:** |
10972 | |
10973 | +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ |
10974 | |:warning:`warning:` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`does not guard availability here; use if (`|+----------------------------------+|:diagtext:`) instead`| |
10975 | | ||:diagtext:`@available` || ||:diagtext:`@available` || | |
10976 | | |+----------------------------------+| |+----------------------------------+| | |
10977 | | ||:diagtext:`\_\_builtin\_available`|| ||:diagtext:`\_\_builtin\_available`|| | |
10978 | | |+----------------------------------+| |+----------------------------------+| | |
10979 | +---------------------------+------------------------------------+--------------------------------------------------------------+------------------------------------+---------------------+ |
10980 | |
10981 | |
10982 | -Wunsupported-cb |
10983 | ---------------- |
10984 | This diagnostic is enabled by default. |
10985 | |
10986 | **Diagnostic text:** |
10987 | |
10988 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10989 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mcompact-branches=' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| |
10990 | +--------------------------------------------------------------------------------------------------------------------------------------------------------+ |
10991 | |
10992 | |
10993 | -Wunsupported-dll-base-class-template |
10994 | ------------------------------------- |
10995 | **Diagnostic text:** |
10996 | |
10997 | +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ |
10998 | |:warning:`warning:` |nbsp| :diagtext:`propagating dll attribute to` |nbsp| |+----------------------------------+| |nbsp| :diagtext:`base class template without dll attribute is not supported`| |
10999 | | ||:diagtext:`already instantiated` || | |
11000 | | |+----------------------------------+| | |
11001 | | ||:diagtext:`explicitly specialized`|| | |
11002 | | |+----------------------------------+| | |
11003 | +---------------------------------------------------------------------------+------------------------------------+------------------------------------------------------------------------------+ |
11004 | |
11005 | |
11006 | -Wunsupported-friend |
11007 | -------------------- |
11008 | This diagnostic is enabled by default. |
11009 | |
11010 | **Diagnostic text:** |
11011 | |
11012 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11013 | |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend template declaration is not supported; ignoring this friend declaration`| |
11014 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11015 | |
11016 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11017 | |:warning:`warning:` |nbsp| :diagtext:`dependent nested name specifier '`:placeholder:`A`:diagtext:`' for friend class declaration is not supported; turning off access control for` |nbsp| :placeholder:`B`| |
11018 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11019 | |
11020 | |
11021 | -Wunsupported-gpopt |
11022 | ------------------- |
11023 | This diagnostic is enabled by default. |
11024 | |
11025 | **Diagnostic text:** |
11026 | |
11027 | +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ |
11028 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mgpopt' option as it cannot be used with` |nbsp| |+-----------------------------------------+|:diagtext:`-mabicalls`| |
11029 | | || || | |
11030 | | |+-----------------------------------------+| | |
11031 | | ||:diagtext:`the implicit usage of` |nbsp| || | |
11032 | | |+-----------------------------------------+| | |
11033 | +--------------------------------------------------------------------------------------------------+-------------------------------------------+----------------------+ |
11034 | |
11035 | |
11036 | -Wunsupported-nan |
11037 | ----------------- |
11038 | This diagnostic is enabled by default. |
11039 | |
11040 | **Diagnostic text:** |
11041 | |
11042 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
11043 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=2008' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| |
11044 | +-----------------------------------------------------------------------------------------------------------------------------------------------+ |
11045 | |
11046 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
11047 | |:warning:`warning:` |nbsp| :diagtext:`ignoring '-mnan=legacy' option because the '`:placeholder:`A`:diagtext:`' architecture does not support it`| |
11048 | +-------------------------------------------------------------------------------------------------------------------------------------------------+ |
11049 | |
11050 | |
11051 | -Wunsupported-visibility |
11052 | ------------------------ |
11053 | This diagnostic is enabled by default. |
11054 | |
11055 | **Diagnostic text:** |
11056 | |
11057 | +------------------------------------------------------------------------------------------------------+ |
11058 | |:warning:`warning:` |nbsp| :diagtext:`target does not support 'protected' visibility; using 'default'`| |
11059 | +------------------------------------------------------------------------------------------------------+ |
11060 | |
11061 | |
11062 | -Wunusable-partial-specialization |
11063 | --------------------------------- |
11064 | This diagnostic is an error by default, but the flag ``-Wno-unusable-partial-specialization`` can be used to disable the error. |
11065 | |
11066 | **Diagnostic text:** |
11067 | |
11068 | +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ |
11069 | |:error:`error:` |nbsp| |+--------------------+| |nbsp| :diagtext:`template partial specialization contains` |nbsp| |+--------------------------------+| |nbsp| :diagtext:`that cannot be deduced; this partial specialization will never be used`| |
11070 | | ||:diagtext:`class` || ||:diagtext:`a template parameter`|| | |
11071 | | |+--------------------+| |+--------------------------------+| | |
11072 | | ||:diagtext:`variable`|| ||:diagtext:`template parameters` || | |
11073 | | |+--------------------+| |+--------------------------------+| | |
11074 | +-----------------------+----------------------+--------------------------------------------------------------------+----------------------------------+------------------------------------------------------------------------------------------+ |
11075 | |
11076 | |
11077 | -Wunused |
11078 | -------- |
11079 | Some of the diagnostics controlled by this flag are enabled by default. |
11080 | |
11081 | Controls `-Wunused-argument`_, `-Wunused-function`_, `-Wunused-label`_, `-Wunused-lambda-capture`_, `-Wunused-local-typedef`_, `-Wunused-private-field`_, `-Wunused-property-ivar`_, `-Wunused-value`_, `-Wunused-variable`_. |
11082 | |
11083 | |
11084 | -Wunused-argument |
11085 | ----------------- |
11086 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
11087 | |
11088 | -Wunused-command-line-argument |
11089 | ------------------------------ |
11090 | This diagnostic is enabled by default. |
11091 | |
11092 | **Diagnostic text:** |
11093 | |
11094 | +-------------------------------------------------------------------------------------------------------------------------------+ |
11095 | |:warning:`warning:` |nbsp| :diagtext:`argument '`:placeholder:`A`:diagtext:`' requires profile-guided optimization information`| |
11096 | +-------------------------------------------------------------------------------------------------------------------------------+ |
11097 | |
11098 | +---------------------------------------------------------------------------------------------------------------+ |
11099 | |:warning:`warning:` |nbsp| :diagtext:`joined argument expects additional value: '`:placeholder:`A`:diagtext:`'`| |
11100 | +---------------------------------------------------------------------------------------------------------------+ |
11101 | |
11102 | +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ |
11103 | |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused`|+--------------------------------------------------------------------+| |
11104 | | ||+------------------------------------------------------------------+|| |
11105 | | ||| |nbsp| :diagtext:`when '`:placeholder:`D`:diagtext:`' is present`||| |
11106 | | ||+------------------------------------------------------------------+|| |
11107 | | |+--------------------------------------------------------------------+| |
11108 | | || || |
11109 | | |+--------------------------------------------------------------------+| |
11110 | +----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ |
11111 | |
11112 | +----------------------------------------------------------------------------------------------------------------+ |
11113 | |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: '`:placeholder:`B`:diagtext:`' input unused in cpp mode`| |
11114 | +----------------------------------------------------------------------------------------------------------------+ |
11115 | |
11116 | +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ |
11117 | |:warning:`warning:` |nbsp| :placeholder:`A`:diagtext:`: previously preprocessed input`|+---------------------------------------------------------------------------+| |
11118 | | ||+-------------------------------------------------------------------------+|| |
11119 | | ||| |nbsp| :diagtext:`unused when '`:placeholder:`C`:diagtext:`' is present`||| |
11120 | | ||+-------------------------------------------------------------------------+|| |
11121 | | |+---------------------------------------------------------------------------+| |
11122 | | || || |
11123 | | |+---------------------------------------------------------------------------+| |
11124 | +--------------------------------------------------------------------------------------+-----------------------------------------------------------------------------+ |
11125 | |
11126 | +---------------------------------------------------------------------------------------------------------+ |
11127 | |:warning:`warning:` |nbsp| :diagtext:`argument unused during compilation: '`:placeholder:`A`:diagtext:`'`| |
11128 | +---------------------------------------------------------------------------------------------------------+ |
11129 | |
11130 | +----------------------------------------------------------------------------------------------------------------------+ |
11131 | |:warning:`warning:` |nbsp| :diagtext:`the flag '`:placeholder:`A`:diagtext:`' has been deprecated and will be ignored`| |
11132 | +----------------------------------------------------------------------------------------------------------------------+ |
11133 | |
11134 | |
11135 | -Wunused-comparison |
11136 | ------------------- |
11137 | This diagnostic is enabled by default. |
11138 | |
11139 | **Diagnostic text:** |
11140 | |
11141 | +---------------------------+-----------------------------------------+--------------------------------------------+ |
11142 | |:warning:`warning:` |nbsp| |+---------------------------------------+| |nbsp| :diagtext:`comparison result unused`| |
11143 | | ||+----------------+--------------------+|| | |
11144 | | |||+--------------+|:diagtext:`equality`||| | |
11145 | | |||| || ||| | |
11146 | | |||+--------------+| ||| | |
11147 | | ||||:diagtext:`in`|| ||| | |
11148 | | |||+--------------+| ||| | |
11149 | | ||+----------------+--------------------+|| | |
11150 | | |+---------------------------------------+| | |
11151 | | ||:diagtext:`relational` || | |
11152 | | |+---------------------------------------+| | |
11153 | +---------------------------+-----------------------------------------+--------------------------------------------+ |
11154 | |
11155 | |
11156 | -Wunused-const-variable |
11157 | ----------------------- |
11158 | **Diagnostic text:** |
11159 | |
11160 | +------------------------------------------------------------------------------+ |
11161 | |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| |
11162 | +------------------------------------------------------------------------------+ |
11163 | |
11164 | |
11165 | -Wunused-exception-parameter |
11166 | ---------------------------- |
11167 | **Diagnostic text:** |
11168 | |
11169 | +-----------------------------------------------------------------------------------------+ |
11170 | |:warning:`warning:` |nbsp| :diagtext:`unused exception parameter` |nbsp| :placeholder:`A`| |
11171 | +-----------------------------------------------------------------------------------------+ |
11172 | |
11173 | |
11174 | -Wunused-function |
11175 | ----------------- |
11176 | Also controls `-Wunneeded-internal-declaration`_. |
11177 | |
11178 | **Diagnostic text:** |
11179 | |
11180 | +------------------------------------------------------------------------------+ |
11181 | |:warning:`warning:` |nbsp| :diagtext:`unused function` |nbsp| :placeholder:`A`| |
11182 | +------------------------------------------------------------------------------+ |
11183 | |
11184 | |
11185 | -Wunused-getter-return-value |
11186 | ---------------------------- |
11187 | This diagnostic is enabled by default. |
11188 | |
11189 | **Diagnostic text:** |
11190 | |
11191 | +------------------------------------------------------------------------------------------------------------------+ |
11192 | |:warning:`warning:` |nbsp| :diagtext:`property access result unused - getters should not be used for side effects`| |
11193 | +------------------------------------------------------------------------------------------------------------------+ |
11194 | |
11195 | |
11196 | -Wunused-label |
11197 | -------------- |
11198 | **Diagnostic text:** |
11199 | |
11200 | +---------------------------------------------------------------------------+ |
11201 | |:warning:`warning:` |nbsp| :diagtext:`unused label` |nbsp| :placeholder:`A`| |
11202 | +---------------------------------------------------------------------------+ |
11203 | |
11204 | |
11205 | -Wunused-lambda-capture |
11206 | ----------------------- |
11207 | **Diagnostic text:** |
11208 | |
11209 | +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ |
11210 | |:warning:`warning:` |nbsp| :diagtext:`lambda capture` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not` |nbsp| |+------------------------------------------------+| |
11211 | | ||:diagtext:`used` || |
11212 | | |+------------------------------------------------+| |
11213 | | ||:diagtext:`required to be captured for this use`|| |
11214 | | |+------------------------------------------------+| |
11215 | +---------------------------------------------------------------------------------------------------------------+--------------------------------------------------+ |
11216 | |
11217 | |
11218 | -Wunused-local-typedef |
11219 | ---------------------- |
11220 | **Diagnostic text:** |
11221 | |
11222 | +-----------------------------------------------------+------------------------+------------------------+ |
11223 | |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+----------------------+| |nbsp| :placeholder:`B`| |
11224 | | ||:diagtext:`typedef` || | |
11225 | | |+----------------------+| | |
11226 | | ||:diagtext:`type alias`|| | |
11227 | | |+----------------------+| | |
11228 | +-----------------------------------------------------+------------------------+------------------------+ |
11229 | |
11230 | |
11231 | -Wunused-local-typedefs |
11232 | ----------------------- |
11233 | Synonym for `-Wunused-local-typedef`_. |
11234 | |
11235 | |
11236 | -Wunused-macros |
11237 | --------------- |
11238 | **Diagnostic text:** |
11239 | |
11240 | +--------------------------------------------------------+ |
11241 | |:warning:`warning:` |nbsp| :diagtext:`macro is not used`| |
11242 | +--------------------------------------------------------+ |
11243 | |
11244 | |
11245 | -Wunused-member-function |
11246 | ------------------------ |
11247 | Also controls `-Wunneeded-member-function`_. |
11248 | |
11249 | **Diagnostic text:** |
11250 | |
11251 | +-------------------------------------------------------------------------------------+ |
11252 | |:warning:`warning:` |nbsp| :diagtext:`unused member function` |nbsp| :placeholder:`A`| |
11253 | +-------------------------------------------------------------------------------------+ |
11254 | |
11255 | |
11256 | -Wunused-parameter |
11257 | ------------------ |
11258 | **Diagnostic text:** |
11259 | |
11260 | +-------------------------------------------------------------------------------+ |
11261 | |:warning:`warning:` |nbsp| :diagtext:`unused parameter` |nbsp| :placeholder:`A`| |
11262 | +-------------------------------------------------------------------------------+ |
11263 | |
11264 | |
11265 | -Wunused-private-field |
11266 | ---------------------- |
11267 | **Diagnostic text:** |
11268 | |
11269 | +-----------------------------------------------------------------------------------------------------------+ |
11270 | |:warning:`warning:` |nbsp| :diagtext:`private field` |nbsp| :placeholder:`A` |nbsp| :diagtext:`is not used`| |
11271 | +-----------------------------------------------------------------------------------------------------------+ |
11272 | |
11273 | |
11274 | -Wunused-property-ivar |
11275 | ---------------------- |
11276 | **Diagnostic text:** |
11277 | |
11278 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11279 | |:warning:`warning:` |nbsp| :diagtext:`ivar` |nbsp| :placeholder:`A` |nbsp| :diagtext:`which backs the property is not referenced in this property's accessor`| |
11280 | +-------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11281 | |
11282 | |
11283 | -Wunused-result |
11284 | --------------- |
11285 | This diagnostic is enabled by default. |
11286 | |
11287 | **Diagnostic text:** |
11288 | |
11289 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
11290 | |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| |
11291 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
11292 | |
11293 | |
11294 | -Wunused-template |
11295 | ----------------- |
11296 | Also controls `-Wunneeded-internal-declaration`_. |
11297 | |
11298 | **Diagnostic text:** |
11299 | |
11300 | +-----------------------------------------------------+----------------------+----------------------------------------------------+ |
11301 | |:warning:`warning:` |nbsp| :diagtext:`unused` |nbsp| |+--------------------+| |nbsp| :diagtext:`template` |nbsp| :placeholder:`B`| |
11302 | | ||:diagtext:`function`|| | |
11303 | | |+--------------------+| | |
11304 | | ||:diagtext:`variable`|| | |
11305 | | |+--------------------+| | |
11306 | +-----------------------------------------------------+----------------------+----------------------------------------------------+ |
11307 | |
11308 | |
11309 | -Wunused-value |
11310 | -------------- |
11311 | This diagnostic is enabled by default. |
11312 | |
11313 | Also controls `-Wunevaluated-expression`_, `-Wunused-comparison`_, `-Wunused-result`_. |
11314 | |
11315 | **Diagnostic text:** |
11316 | |
11317 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
11318 | |:warning:`warning:` |nbsp| :diagtext:`ignoring return value of function declared with` |nbsp| :placeholder:`A` |nbsp| :diagtext:`attribute`| |
11319 | +-------------------------------------------------------------------------------------------------------------------------------------------+ |
11320 | |
11321 | +----------------------------------------------------------------------------------------------------------------------------+ |
11322 | |:warning:`warning:` |nbsp| :diagtext:`container access result unused - container access should not be used for side effects`| |
11323 | +----------------------------------------------------------------------------------------------------------------------------+ |
11324 | |
11325 | +---------------------------------------------------------------+ |
11326 | |:warning:`warning:` |nbsp| :diagtext:`expression result unused`| |
11327 | +---------------------------------------------------------------+ |
11328 | |
11329 | +-----------------------------------------------------------------------------------------------+ |
11330 | |:warning:`warning:` |nbsp| :diagtext:`expression result unused; should this cast be to 'void'?`| |
11331 | +-----------------------------------------------------------------------------------------------+ |
11332 | |
11333 | |
11334 | -Wunused-variable |
11335 | ----------------- |
11336 | Also controls `-Wunused-const-variable`_. |
11337 | |
11338 | **Diagnostic text:** |
11339 | |
11340 | +------------------------------------------------------------------------------+ |
11341 | |:warning:`warning:` |nbsp| :diagtext:`unused variable` |nbsp| :placeholder:`A`| |
11342 | +------------------------------------------------------------------------------+ |
11343 | |
11344 | |
11345 | -Wunused-volatile-lvalue |
11346 | ------------------------ |
11347 | This diagnostic is enabled by default. |
11348 | |
11349 | **Diagnostic text:** |
11350 | |
11351 | +----------------------------------------------------------------------------------------------------------------+ |
11352 | |:warning:`warning:` |nbsp| :diagtext:`expression result unused; assign into a variable to force a volatile load`| |
11353 | +----------------------------------------------------------------------------------------------------------------+ |
11354 | |
11355 | |
11356 | -Wused-but-marked-unused |
11357 | ------------------------ |
11358 | **Diagnostic text:** |
11359 | |
11360 | +---------------------------------------------------------------------------------------------+ |
11361 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`was marked unused but was used`| |
11362 | +---------------------------------------------------------------------------------------------+ |
11363 | |
11364 | |
11365 | -Wuser-defined-literals |
11366 | ----------------------- |
11367 | This diagnostic is enabled by default. |
11368 | |
11369 | **Diagnostic text:** |
11370 | |
11371 | +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ |
11372 | |:warning:`warning:` |nbsp| :diagtext:`user-defined literal suffixes not starting with '\_' are reserved`|+--------------------------------------------------+| |
11373 | | ||:diagtext:`; no literal will invoke this operator`|| |
11374 | | |+--------------------------------------------------+| |
11375 | | || || |
11376 | | |+--------------------------------------------------+| |
11377 | +--------------------------------------------------------------------------------------------------------+----------------------------------------------------+ |
11378 | |
11379 | |
11380 | -Wuser-defined-warnings |
11381 | ----------------------- |
11382 | This diagnostic is enabled by default. |
11383 | |
11384 | **Diagnostic text:** |
11385 | |
11386 | The text of this diagnostic is not controlled by Clang. |
11387 | |
11388 | |
11389 | -Wvarargs |
11390 | --------- |
11391 | This diagnostic is enabled by default. |
11392 | |
11393 | **Diagnostic text:** |
11394 | |
11395 | +-----------------------------------------------------------------------------------------------------+ |
11396 | |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_start' is not the last named parameter`| |
11397 | +-----------------------------------------------------------------------------------------------------+ |
11398 | |
11399 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11400 | |:warning:`warning:` |nbsp| :diagtext:`second argument to 'va\_arg' is of promotable type` |nbsp| :placeholder:`A`:diagtext:`; this va\_arg has undefined behavior because arguments will be promoted to` |nbsp| :placeholder:`B`| |
11401 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11402 | |
11403 | +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ |
11404 | |:warning:`warning:` |nbsp| :diagtext:`passing` |nbsp| |+---------------------------------------------------------------+| |nbsp| :diagtext:`to 'va\_start' has undefined behavior`| |
11405 | | ||:diagtext:`an object that undergoes default argument promotion`|| | |
11406 | | |+---------------------------------------------------------------+| | |
11407 | | ||:diagtext:`an object of reference type` || | |
11408 | | |+---------------------------------------------------------------+| | |
11409 | | ||:diagtext:`a parameter declared with the 'register' keyword` || | |
11410 | | |+---------------------------------------------------------------+| | |
11411 | +------------------------------------------------------+-----------------------------------------------------------------+---------------------------------------------------------+ |
11412 | |
11413 | |
11414 | -Wvariadic-macros |
11415 | ----------------- |
11416 | Some of the diagnostics controlled by this flag are enabled by default. |
11417 | |
11418 | **Diagnostic text:** |
11419 | |
11420 | +--------------------------------------------------------------------------------+ |
11421 | |:warning:`warning:` |nbsp| :diagtext:`named variadic macros are a GNU extension`| |
11422 | +--------------------------------------------------------------------------------+ |
11423 | |
11424 | +-----------------------------------------------------------------------------------------------------------+ |
11425 | |:warning:`warning:` |nbsp| :diagtext:`\_\_VA\_OPT\_\_ can only appear in the expansion of a variadic macro`| |
11426 | +-----------------------------------------------------------------------------------------------------------+ |
11427 | |
11428 | +------------------------------------------------------------------------+ |
11429 | |:warning:`warning:` |nbsp| :diagtext:`variadic macros are a C99 feature`| |
11430 | +------------------------------------------------------------------------+ |
11431 | |
11432 | |
11433 | -Wvec-elem-size |
11434 | --------------- |
11435 | This diagnostic is an error by default, but the flag ``-Wno-vec-elem-size`` can be used to disable the error. |
11436 | |
11437 | **Diagnostic text:** |
11438 | |
11439 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11440 | |:error:`error:` |nbsp| :diagtext:`vector operands do not have the same elements sizes (`:placeholder:`A` |nbsp| :diagtext:`and` |nbsp| :placeholder:`B`:diagtext:`)`| |
11441 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11442 | |
11443 | |
11444 | -Wvector-conversion |
11445 | ------------------- |
11446 | **Diagnostic text:** |
11447 | |
11448 | +------------------------------------------------------------------------+----------------------------------------------------------------+ |
11449 | |:warning:`warning:` |nbsp| :diagtext:`incompatible vector types` |nbsp| |+--------------------------------------------------------------+| |
11450 | | ||:diagtext:`assigning to different types` || |
11451 | | |+--------------------------------------------------------------+| |
11452 | | ||:diagtext:`passing to parameter of different type` || |
11453 | | |+--------------------------------------------------------------+| |
11454 | | ||:diagtext:`returning from function with different return type`|| |
11455 | | |+--------------------------------------------------------------+| |
11456 | | ||:diagtext:`converting between types` || |
11457 | | |+--------------------------------------------------------------+| |
11458 | | ||:diagtext:`initializing with expression of different type` || |
11459 | | |+--------------------------------------------------------------+| |
11460 | | ||:diagtext:`sending to parameter of different type` || |
11461 | | |+--------------------------------------------------------------+| |
11462 | | ||:diagtext:`casting between types` || |
11463 | | |+--------------------------------------------------------------+| |
11464 | +------------------------------------------------------------------------+----------------------------------------------------------------+ |
11465 | |
11466 | |
11467 | -Wvector-conversions |
11468 | -------------------- |
11469 | Synonym for `-Wvector-conversion`_. |
11470 | |
11471 | |
11472 | -Wvexing-parse |
11473 | -------------- |
11474 | This diagnostic is enabled by default. |
11475 | |
11476 | **Diagnostic text:** |
11477 | |
11478 | +----------------------------------------------------------------------------------------------+ |
11479 | |:warning:`warning:` |nbsp| :diagtext:`empty parentheses interpreted as a function declaration`| |
11480 | +----------------------------------------------------------------------------------------------+ |
11481 | |
11482 | +-----------------------------------------------------------------------------------------------+ |
11483 | |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as a function declaration`| |
11484 | +-----------------------------------------------------------------------------------------------+ |
11485 | |
11486 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11487 | |:warning:`warning:` |nbsp| :diagtext:`parentheses were disambiguated as redundant parentheses around declaration of variable named` |nbsp| :placeholder:`A`| |
11488 | +-----------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11489 | |
11490 | |
11491 | -Wvisibility |
11492 | ------------ |
11493 | This diagnostic is enabled by default. |
11494 | |
11495 | **Diagnostic text:** |
11496 | |
11497 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
11498 | |:warning:`warning:` |nbsp| :diagtext:`declaration of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| |
11499 | +---------------------------------------------------------------------------------------------------------------------------------------------+ |
11500 | |
11501 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
11502 | |:warning:`warning:` |nbsp| :diagtext:`redefinition of` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will not be visible outside of this function`| |
11503 | +----------------------------------------------------------------------------------------------------------------------------------------------+ |
11504 | |
11505 | |
11506 | -Wvla |
11507 | ----- |
11508 | **Diagnostic text:** |
11509 | |
11510 | +-----------------------------------------------------------------+ |
11511 | |:warning:`warning:` |nbsp| :diagtext:`variable length array used`| |
11512 | +-----------------------------------------------------------------+ |
11513 | |
11514 | |
11515 | -Wvla-extension |
11516 | --------------- |
11517 | **Diagnostic text:** |
11518 | |
11519 | +-------------------------------------------------------------------------------+ |
11520 | |:warning:`warning:` |nbsp| :diagtext:`variable length arrays are a C99 feature`| |
11521 | +-------------------------------------------------------------------------------+ |
11522 | |
11523 | |
11524 | -Wvoid-ptr-dereference |
11525 | ---------------------- |
11526 | This diagnostic is enabled by default. |
11527 | |
11528 | **Diagnostic text:** |
11529 | |
11530 | +--------------------------------------------------------------------------------------------------------------------+ |
11531 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++ does not allow indirection on operand of type` |nbsp| :placeholder:`A`| |
11532 | +--------------------------------------------------------------------------------------------------------------------+ |
11533 | |
11534 | |
11535 | -Wvolatile-register-var |
11536 | ----------------------- |
11537 | This diagnostic flag exists for GCC compatibility, and has no effect in Clang. |
11538 | |
11539 | -Wweak-template-vtables |
11540 | ----------------------- |
11541 | **Diagnostic text:** |
11542 | |
11543 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11544 | |:warning:`warning:` |nbsp| :diagtext:`explicit template instantiation` |nbsp| :placeholder:`A` |nbsp| :diagtext:`will emit a vtable in every translation unit`| |
11545 | +--------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11546 | |
11547 | |
11548 | -Wweak-vtables |
11549 | -------------- |
11550 | **Diagnostic text:** |
11551 | |
11552 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11553 | |:warning:`warning:` |nbsp| :placeholder:`A` |nbsp| :diagtext:`has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit`| |
11554 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |
11555 | |
11556 | |
11557 | -Wwritable-strings |
11558 | ------------------ |
11559 | This diagnostic is enabled by default. |
11560 | |
11561 | Also controls `-Wdeprecated-writable-strings`_. |
11562 | |
11563 | **Diagnostic text:** |
11564 | |
11565 | +-------------------------------------------------------------------------------------------------------------------------+ |
11566 | |:warning:`warning:` |nbsp| :diagtext:`ISO C++11 does not allow conversion from string literal to` |nbsp| :placeholder:`A`| |
11567 | +-------------------------------------------------------------------------------------------------------------------------+ |
11568 | |
11569 | |
11570 | -Wwrite-strings |
11571 | --------------- |
11572 | Synonym for `-Wwritable-strings`_. |
11573 | |
11574 | |
11575 | -Wzero-as-null-pointer-constant |
11576 | ------------------------------- |
11577 | **Diagnostic text:** |
11578 | |
11579 | +--------------------------------------------------------------------+ |
11580 | |:warning:`warning:` |nbsp| :diagtext:`zero as null pointer constant`| |
11581 | +--------------------------------------------------------------------+ |
11582 | |
11583 | |
11584 | -Wzero-length-array |
11585 | ------------------- |
11586 | **Diagnostic text:** |
11587 | |
11588 | +------------------------------------------------------------------------+ |
11589 | |:warning:`warning:` |nbsp| :diagtext:`zero size arrays are an extension`| |
11590 | +------------------------------------------------------------------------+ |
11591 | |
11592 | |
11593 | |