forked from Barro/compiler-warnings
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathwarnings-messages-14.txt
4285 lines (4285 loc) · 291 KB
/
warnings-messages-14.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# enabled by default:
# -W (partial)
# -Wextra (partial)
# call to function without interrupt attribute could clobber interruptee's VFP registers
# -Wignored-qualifiers (partial)
# 'A' qualifier on function type B has no effect
# 'A' qualifier on omitted return type B has no effect
# ARC <unused|__unsafe_unretained|__strong|__weak|__autoreleasing> lifetime qualifier on return type is ignored
# -Wignored-reference-qualifiers
# 'A' qualifier on reference type B has no effect
# -Winitializer-overrides
# initializer [partially ]overrides prior initialization of this subobject
# -W#pragma-messages
# The text of this diagnostic is not controlled by Clang
# -Wabsolute-value
# absolute value function A given an argument of type B but has parameter of type C which may cause truncation of value
# taking the absolute value of <pointer|function|array> type B is suspicious
# taking the absolute value of unsigned type A has no effect
# using <integer|floating point|complex> absolute value function A when argument is of <integer|floating point|complex> type
# -Wabstract-final-class
# abstract class is marked '<final|sealed>'
# -Waddress
# -Wpointer-bool-conversion
# address of[ function| array] 'B' will always evaluate to 'true'
# nonnull <function call|parameter> 'B' will evaluate to 'true' on first encounter
# -Wstring-compare
# result of comparison against <a string literal|@encode> is unspecified (use an explicit string comparison function instead)
# -Wtautological-pointer-compare
# comparison of <address of|function|array> 'B' [not ]equal to a null pointer is always <true|false>
# comparison of nonnull <function call|parameter> 'B' [not ]equal to a null pointer is '<true|false>' on first encounter
# -Waddress-of-packed-member
# taking address of packed member A of class or structure B may result in an unaligned pointer value
# -Waddress-of-temporary
# taking the address of a temporary object of type A
# -Waix-compat
# #pragma align(packed) may not be compatible with objects generated with AIX XL C/C++
# requesting an alignment of 16 bytes or greater for struct members is not binary compatible with IBM XL C/C++ for AIX 16.1.0 and older
# -Walign-mismatch
# passing A-byte aligned argument to B-byte aligned parameter C[ of E] may result in an unaligned pointer access
# -Walloca-with-align-alignof
# second argument to __builtin_alloca_with_align is supposed to be in bits
# -Wambiguous-delete
# multiple suitable A functions for B; no 'operator delete' function will be invoked if initialization throws an exception
# -Wambiguous-ellipsis
# '...' in this location creates a C-style varargs function[, not a function parameter pack]
# -Wambiguous-macro
# ambiguous expansion of macro A
# -Wambiguous-member-template
# lookup of A in member access expression is ambiguous; using member of B
# -Wambiguous-reversed-operator
# ISO C++20 considers use of overloaded operator 'A' (with operand types B and C) to be ambiguous despite there being a unique best viable function[ with non-reversed arguments]
# -Wanalyzer-incompatible-plugin
# checker plugin 'A' is not compatible with this version of the analyzer
# -Wanon-enum-enum-conversion (partial)
# -Wdeprecated-anon-enum-enum-conversion
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wanonymous-pack-parens
# ISO C++11 requires a parenthesized pack declaration to have a name
# -Warc
# -Warc-non-pod-memaccess
# <destination for|source of> this B call is a pointer to ownership-qualified type C
# -Warc-retain-cycles
# capturing A strongly in this block is likely to lead to a retain cycle
# -Warc-unsafe-retained-assign
# assigning <array literal|dictionary literal|numeric literal|boxed expression|<should not happen>|block literal> to a weak <property|variable>; object will be released after assignment
# assigning retained object to <weak|unsafe_unretained> <property|variable>; object will be released after assignment
# assigning retained object to unsafe property; object will be released after assignment
# -Warc-bridge-casts-disallowed-in-nonarc
# 'A' casts have no effect when not using ARC
# -Warc-performSelector-leaks
# performSelector may cause a leak because its selector is unknown
# -Wargument-outside-range
# argument value A is outside the valid range [B, C]
# -Wargument-undefined-behaviour
# argument value A will result in undefined behaviour
# -Warray-bounds
# array argument is too small; <contains A elements|is of size A>, callee requires at least B
# array index A is before the beginning of the array
# array index A is past the end of the array (which contains B element(s))
# array index A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element(s))
# the pointer incremented by A refers past the last possible element for an array in B-bit address space containing C-bit (D-byte) elements (max possible E element(s))
# -Wasm
# -Wasm-operand-widths
# value size does not match register size specified by the constraint and modifier
# -Wassume
# the argument to A has side effects that will be discarded
# -Watimport-in-framework-header
# use of '@import' in framework header is discouraged, including this header requires -fmodules
# -Watomic-alignment
# large atomic operation may incur significant performance penalty; the access size (A bytes) exceeds the max lock-free size (B bytes)
# misaligned atomic operation may incur significant performance penalty; the expected alignment (A bytes) exceeds the actual alignment (B bytes)
# -Watomic-memory-ordering
# memory order argument to atomic operation is invalid
# -Watomic-property-with-user-defined-accessor
# writable atomic property A cannot pair a synthesized <getter|setter> with a user defined <getter|setter>
# -Wattribute-packed-for-bitfield
# 'packed' attribute was ignored on bit-fields with single-byte alignment in older versions of GCC and Clang
# -Wattribute-warning
# call to A declared with 'warning' attribute: B
# -Wattributes
# -Wignored-attributes
# 'A' attribute cannot be specified on a definition
# 'A' only applies to <function|pointer|Objective-C object or block pointer> types; type here is C
# '__clang__' is a predefined macro name, not an attribute scope specifier; did you mean '_Clang' instead?
# 'abi_tag' attribute on <non-inline|anonymous> namespace ignored
# 'cmse_nonsecure_entry' cannot be applied to functions with internal linkage
# 'deprecated' attribute on anonymous namespace ignored
# 'dllexport' attribute ignored on explicit instantiation definition
# 'gnu_inline' attribute requires function to be marked 'inline', attribute ignored
# 'internal_linkage' attribute on a non-static local variable is ignored
# 'mig_server_routine' attribute only applies to routines that return a kern_return_t
# 'nocf_check' attribute ignored; use -fcf-protection to enable the attribute
# 'noderef' can only be used on an array or pointer type
# 'nonnull' attribute applied to function with no pointer arguments
# 'nonnull' attribute when used on parameters takes no arguments
# 'nothrow' attribute conflicts with exception specification; attribute ignored
# 'objc_externally_retained' can only be applied to local variables <of retainable type|with strong ownership>
# 'require_constant_initialization' attribute added after initialization of variable
# 'sentinel' attribute only supported for variadic <functions|blocks>
# 'sentinel' attribute requires named arguments
# 'sycl_kernel' attribute only applies to a function template with at least two template parameters
# 'trivial_abi' cannot be applied to A
# <MIPS|MSP430|RISC-V> 'interrupt' attribute only applies to functions that have <no parameters|a 'void' return type>
# <alias|ifunc> will always resolve to A even if weak definition of B is overridden
# <alias|ifunc> will not be in section 'A' but in the same section as the <aliasee|resolver>
# <alignment|size> of field B (C bits) does not match the <alignment|size> of the first field in transparent union; transparent_union attribute ignored
# <unsupported|duplicate|unknown>[ architecture| tune CPU] 'C' in the '<target|target_clones>' attribute string; '<target|target_clones>' attribute ignored
# A attribute argument not supported: B
# A attribute can only be applied to instance variables or properties
# A attribute ignored
# A attribute ignored for field of type B
# A attribute ignored on a non-definition declaration
# A attribute ignored on inline function
# A attribute ignored when parsing type
# A attribute is deprecated and ignored in B
# A attribute is ignored because there exists no call expression inside the statement
# A attribute isn't implemented by this Objective-C runtime
# A attribute only applies to <Objective-C object|pointer|pointer-to-CF-pointer|pointer/reference-to-OSObject-pointer> parameters
# A attribute only applies to <functions|methods|properties> that return <an Objective-C object|a pointer|a non-retainable pointer>
# A attribute only applies to <functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non-K&R-style functions>
# A attribute only applies to B
# A attribute only applies to a pointer or reference (B is invalid)
# A attribute only applies to return values that are pointers
# A attribute only applies to return values that are pointers or references
# A attribute only applies to[ constant] pointer arguments
# A calling convention is not supported <for this target|on variadic function|on constructor/destructor|on builtin function>
# A currently has no effect on a using declaration
# A redeclared inline; B attribute ignored
# Objective-C GC does not allow weak variables on the stack
# __declspec attribute A is not supported
# __weak attribute cannot be specified on a field declaration
# __weak attribute cannot be specified on an automatic variable when ARC is not enabled
# attribute A after definition is ignored
# attribute A cannot be applied to <functions|Objective-C method> without return value
# attribute A has no effect when annotating an 'if <constexpr|consteval>' statement
# attribute A has no effect when annotating an infinite loop
# attribute A ignored, because it cannot be applied to a type
# attribute A ignored, because it cannot be applied to omitted return type
# attribute A ignored, because it is not attached to a declaration
# attribute A is already applied
# attribute A is already applied with different arguments
# attribute A is ignored, place it after "<class|struct|interface|union|enum>" to apply attribute to type declaration
# attribute declaration must precede definition
# conflicting attributes A are ignored
# direct attribute on property A ignored (not implemented by this Objective-C runtime)
# first field of a transparent union cannot have <floating point|vector> type B; transparent_union attribute ignored
# function template with 'sycl_kernel' attribute must have a 'void' return type
# function template with 'sycl_kernel' attribute must have a single parameter
# ignoring __declspec(allocator) because the function return type A is not a pointer or reference type
# import <module|name> (B) does not match the import <module|name> (C) of the previous declaration
# import <module|name> cannot be applied to a function with a definition
# inheritance model ignored on <primary template|partial specialization>
# qualifiers after comma in declarator list are ignored
# repeated RISC-V 'interrupt' attribute
# requested alignment is less than minimum alignment of B for type A
# template parameter of a function template with the 'sycl_kernel' attribute cannot be a non-type template parameter
# transparent union definition must contain at least one field; transparent_union attribute ignored
# transparent_union attribute can only be applied to a union definition; attribute ignored
# unknown attribute 'A'
# unknown visibility A
# -Wunknown-attributes
# unknown attribute A ignored
# -Wauto-disable-vptr-sanitizer
# implicitly disabling vptr sanitizer because rtti wasn't enabled
# -Wauto-storage-class
# 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases
# -Wauto-var-id
# 'auto' deduced as 'id' in declaration of A
# -Wavailability
# 'unavailable' availability overrides all other availability information
# Fuchsia API Level prohibits specifying a minor or sub-minor version
# [overriding ]method <introduced after|deprecated before|obsoleted before> <the protocol method it implements|overridden method> on B (C vs. D)
# [overriding ]method cannot be unavailable on A when <the protocol method it implements|its overridden method> is available
# availability does not match previous declaration
# feature cannot be <introduced|deprecated|obsoleted> in B version C before it was <introduced|deprecated|obsoleted> in version E; attribute ignored
# ignoring availability attribute <on '+load' method|with constructor attribute|with destructor attribute>
# only 'unavailable' and 'deprecated' are supported for Swift availability
# unknown platform A in availability macro
# use same version number separators '_' or '.'; as in 'major[.minor[.subminor]]'
# -Wavr-rtlib-linking-quirks
# no avr-gcc installation can be found on the system, cannot link standard libraries
# no avr-libc installation can be found on the system, cannot link standard libraries
# no target microcontroller specified on command line, cannot link standard libraries, please pass -mmcu=<mcu name>
# standard library not linked and so no interrupt vector table or compiler runtime routines will be linked
# support for linking stdlibs for microcontroller 'A' is not implemented
# support for passing the data section address to the linker for microcontroller 'A' is not implemented
# -Wbackend-plugin
# The text of this diagnostic is not controlled by Clang
# -Wbackslash-newline-escape
# backslash and newline separated by space
# -Wbinding-in-condition
# ISO C++17 does not permit structured binding declaration in a condition
# -Wbitfield-width
# width of bit-field A (B bits) exceeds the width of its type; value will be truncated to C bit(s)
# -Wblock-capture-autoreleasing
# block captures an autoreleasing out-parameter, which may result in use-after-free bugs
# -Wbool-conversions
# -Wbool-conversion
# initialization of pointer of type A to null from a constant boolean expression
# -Wpointer-bool-conversion
# address of[ function| array] 'B' will always evaluate to 'true'
# nonnull <function call|parameter> 'B' will evaluate to 'true' on first encounter
# -Wundefined-bool-conversion
# 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true
# reference cannot be bound to dereferenced null pointer in well-defined C++ code; pointer may be assumed to always convert to true
# -Wbraced-scalar-init
# braces around [scalar ]initializer
# -Wbranch-protection
# '-mbranch-protection=' option is incompatible with the 'A' architecture
# ignoring the 'branch-protection' attribute because the 'A' architecture does not support it
# invalid branch protection option 'A' in 'B'
# unsupported branch protection specification 'A'
# -Wbridge-cast
# A bridges to B, not C
# A cannot bridge to B
# -Wbuiltin-assume-aligned-alignment
# requested alignment must be A bytes or smaller; maximum alignment assumed
# -Wbuiltin-memcpy-chk-size
# 'A' will always overflow; destination buffer has size B, but size argument is C
# -Wbuiltin-requires-header
# declaration of built-in function 'B' requires inclusion of the header <A>
# -Wc++0x-compat (partial)
# -Wc++11-compat (partial)
# 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 <have type 'long long'|be ill-formed> in C++11 onwards
# integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will <have type 'long long'|be ill-formed> in C++11 onwards
# use of right-shift operator ('>>') in template argument will require parentheses in C++11
# -Wc++11-compat-deprecated-writable-strings
# conversion from string literal to A is deprecated
# -Wc++11-narrowing (partial)
# <case value|enumerator value|non-type template argument|array size|explicit specifier argument|noexcept specifier argument> <cannot be narrowed from type C to D|evaluates to C, which cannot be narrowed to type D>
# constant expression evaluates to A which cannot be narrowed to type B
# non-constant-expression cannot be narrowed from type A to B in initializer list
# type A cannot be narrowed to B in initializer list
# -Wc++0x-extensions (partial)
# -Wc++11-extensions (partial)
# 'A' keyword is a C++11 extension
# 'auto' type specifier is a C++11 extension
# 'template' keyword outside of a template
# 'typename' occurs outside of a template
# <defaulted|deleted> function definitions are a C++11 extension
# alias declarations are a C++11 extension
# befriending enumeration type A is a C++11 extension
# default member initializer for non-static data member is a C++11 extension
# default template arguments for a function template are a C++11 extension
# explicit conversion functions are a C++11 extension
# generalized initializer lists are a C++11 extension
# non-class friend type A is a C++11 extension
# non-type template argument referring to <function|object> B with internal linkage is a C++11 extension
# range-based for loop is a C++11 extension
# reference qualifiers on functions are a C++11 extension
# rvalue references are a C++11 extension
# scoped enumerations are a C++11 extension
# static data member A in union is a C++11 extension
# unelaborated friend declaration is a C++11 extension; specify '<struct|interface|union|class|enum>' to befriend B
# use of enumeration in a nested name specifier is a C++11 extension
# variadic templates are a C++11 extension
# -Wc++11-inline-namespace
# inline namespaces are a C++11 feature
# -Wc++0x-narrowing (partial)
# -Wc++11-narrowing (partial)
# <case value|enumerator value|non-type template argument|array size|explicit specifier argument|noexcept specifier argument> <cannot be narrowed from type C to D|evaluates to C, which cannot be narrowed to type D>
# constant expression evaluates to A which cannot be narrowed to type B
# non-constant-expression cannot be narrowed from type A to B in initializer list
# type A cannot be narrowed to B in initializer list
# -Wc++11-compat-pedantic (partial)
# -Wc++11-compat (partial)
# 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 <have type 'long long'|be ill-formed> in C++11 onwards
# integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C++98; this literal will <have type 'long long'|be ill-formed> in C++11 onwards
# use of right-shift operator ('>>') in template argument will require parentheses in C++11
# -Wc++11-compat-deprecated-writable-strings
# conversion from string literal to A is deprecated
# -Wc++11-narrowing (partial)
# <case value|enumerator value|non-type template argument|array size|explicit specifier argument|noexcept specifier argument> <cannot be narrowed from type C to D|evaluates to C, which cannot be narrowed to type D>
# constant expression evaluates to A which cannot be narrowed to type B
# non-constant-expression cannot be narrowed from type A to B in initializer list
# type A cannot be narrowed to B in initializer list
# -Wc++17-compat-pedantic (partial)
# -Wc++17-compat (partial)
# -Wc++17-compat-mangling
# mangled name of A will change in C++17 due to non-throwing exception specification in function signature
# -Wdeprecated-increment-bool
# incrementing expression of type bool is deprecated and incompatible with C++17
# -Wdeprecated-register
# 'register' storage class specifier is deprecated and incompatible with C++17
# -Wc++1y-extensions (partial)
# -Wc++14-extensions (partial)
# 'decltype(auto)' type specifier is a C++14 extension
# initialized lambda captures are a C++14 extension
# multiple return statements in constexpr function is a C++14 extension
# type definition in a constexpr <function|constructor> is a C++14 extension
# use of this statement in a constexpr <function|constructor> is a C++14 extension
# variable declaration in a constexpr <function|constructor> is a C++14 extension
# variable templates are a C++14 extension
# -Wc++1z-compat (partial)
# -Wc++17-compat (partial)
# -Wc++17-compat-mangling
# mangled name of A will change in C++17 due to non-throwing exception specification in function signature
# -Wdeprecated-increment-bool
# incrementing expression of type bool is deprecated and incompatible with C++17
# -Wdeprecated-register
# 'register' storage class specifier is deprecated and incompatible with C++17
# -Wc++1z-compat-mangling
# -Wc++17-compat-mangling
# mangled name of A will change in C++17 due to non-throwing exception specification in function signature
# -Wc++1z-extensions (partial)
# -Wc++17-extensions (partial)
# '<if|switch>' initialization statements are a C++17 extension
# 'begin' and 'end' returning different types (A and B) is a C++17 extension
# 'constexpr' on lambda expressions is a C++17 extension
# 'static_assert' with no message is a C++17 extension
# capture of '*this' by copy is a C++17 extension
# constexpr if is a C++17 extension
# decomposition declarations are a C++17 extension
# default scope specifier for attributes is a C++17 extension
# inline variables are a C++17 extension
# nested namespace definition is a C++17 extension; define each namespace separately
# pack expansion of using declaration is a C++17 extension
# pack fold expression is a C++17 extension
# template template parameter using 'typename' is a C++17 extension
# use of multiple declarators in a single using declaration is a C++17 extension
# -Wc++2a-compat (partial)
# -Wc++20-compat (partial)
# '<=>' is a single token in C++20; add a space to avoid a change in behavior
# -Wc++2a-compat-pedantic (partial)
# -Wc++20-compat-pedantic (partial)
# -Wc++20-compat (partial)
# '<=>' is a single token in C++20; add a space to avoid a change in behavior
# -Wc++2a-extensions (partial)
# -Wc++20-extensions (partial)
# constexpr constructor that does not initialize all members is a C++20 extension
# constexpr union constructor that does not initialize any member is a C++20 extension
# decomposition declaration declared <'B'|with 'B' specifiers> is a C++20 extension
# default member initializer for bit-field is a C++20 extension
# defaulted comparison operators are a C++20 extension
# explicit capture of 'this' with a capture default of '=' is a C++20 extension
# explicit template parameter list for lambdas is a C++20 extension
# explicit(bool) is a C++20 extension
# function try block in constexpr <function|constructor> is a C++20 extension
# initialized lambda pack captures are a C++20 extension
# inline nested namespace definition is a C++20 extension
# member using declaration naming a non-member enumerator is a C++20 extension
# range-based for loop initialization statements are a C++20 extension
# uninitialized variable in a constexpr <function|constructor> is a C++20 extension
# use of function template name with no prior declaration in function call with explicit template arguments is a C++20 extension
# use of this statement in a constexpr <function|constructor> is a C++20 extension
# using declaration naming a scoped enumerator is a C++20 extension
# using enum declaration is a C++20 extension
# -Wc++2b-extensions
# 'size_t' suffix for literals is a C++2b extension
# alias declaration in this context is a C++2b extension
# an attribute specifier sequence in this position is a C++2b extension
# consteval if is a C++2b extension
# lambda without a parameter clause is a C++2b extension
# -Wc2x-extensions
# '_Static_assert' with no message is a C2x extension
# omitting the parameter name in a function definition is a C2x extension
# -Wc99-compat (partial)
# integer literal is too large to be represented in type 'long', interpreting as 'unsigned long' per C89; this literal will <have type 'long long'|be ill-formed> in C99 onwards
# -Wc99-extensions (partial)
# ISO C99 requires whitespace after the macro name
# -Wc99-designator (partial)
# array designators are a C99 extension
# brace elision for designated initializer is a C99 extension
# mixture of designated and non-designated initializers in the same initializer list is a C99 extension
# nested designators are a C99 extension
# -Wcall-to-pure-virtual-from-ctor-dtor
# call to pure virtual member function A has undefined behavior; overrides of A in subclasses are not available in the <constructor|destructor> of C
# -Wcalled-once-parameter (partial)
# A parameter marked 'called_once' is called twice
# A parameter marked 'called_once' is never <used|called> when <taking true branch|taking false branch|handling this case|none of the cases applies|entering the loop|skipping the loop|taking one of the branches>
# [captured ]A parameter marked 'called_once' is never called
# -Wcast-calling-convention
# cast between incompatible calling conventions 'A' and 'B'; calls through this pointer may abort at runtime
# -Wcast-qual-unrelated
# ISO C++ does not allow [const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast] from B to C because it casts away qualifiers, even though the source and destination types are unrelated
# -WCFString-literal
# input conversion stopped due to an input byte that does not belong to the input codeset UTF-8
# -WCL4 (partial)
# -Wall (partial)
# -Wmost (partial)
# -Wcast-of-sel-type
# cast of type A to B is deprecated; use sel_getName instead
# -Wcomment (partial)
# '/*' within block comment
# escaped newline between */ characters at block comment end
# -Wdelete-non-virtual-dtor (partial)
# -Wdelete-abstract-non-virtual-dtor
# <delete|destructor> called on B that is abstract but has non-virtual destructor
# -Wextern-c-compat
# [empty ]<struct|union> has size 0 in C, <size 1|non-zero size> in C++
# -Wformat
# '%n' specifier not supported on this platform
# '<*|.*>' specified field <width|precision> is missing a matching 'int' argument
# 'A' is not a valid object format flag
# <field width|precision> used with 'B' conversion specifier, resulting in undefined behavior
# <values of type|enum values with underlying type> 'A' should not be used as format arguments; add an explicit cast to B instead
# cannot mix positional and non-positional arguments in format string
# data argument position 'A' exceeds the number of data arguments (B)
# field <width|precision> should have type B, but argument has type C
# flag 'A' is ignored when flag 'B' is present
# flag 'A' results in undefined behavior with 'B' conversion specifier
# format specifies type A but the argument has <type|underlying type> B
# format string contains '\0' within the string body
# format string is not null-terminated
# format string missing
# format string should not be a wide string
# incomplete format specifier
# invalid position specified for <field width|field precision>
# length modifier 'A' results in undefined behavior or no effect with 'B' conversion specifier
# missing object format flag
# no closing ']' for '%[' in scanf format string
# object format flags cannot be used with 'A' conversion specifier
# position arguments in format strings start counting at 1 (not 0)
# using '%P' format specifier without precision
# using 'A' format specifier annotation outside of os_log()/os_trace()
# using 'A' format specifier, but argument has boolean value
# zero field width in scanf format string is unused
# -Wformat-extra-args
# data argument not used by format string
# -Wformat-insufficient-args
# more '%' conversions than data arguments
# -Wformat-invalid-specifier
# invalid conversion specifier 'A'
# -Wformat-security
# format string is not a string literal (potentially insecure)
# -Wformat-zero-length
# format string is empty
# -Wnonnull
# null passed to a callee that requires a non-null argument
# null returned from <function|method> that requires a non-null return value
# -Wimplicit (partial)
# -Wimplicit-function-declaration (partial)
# implicit declaration of function A is invalid in C99
# implicitly declaring library function 'A' with type B
# use of unknown builtin A
# -Wimplicit-int
# type specifier missing, defaults to 'int'
# -Wmultichar
# multi-character character constant
# -Wobjc-designated-initializers
# convenience initializer missing a 'self' call to another initializer
# convenience initializer should not invoke an initializer on 'super'
# designated initializer invoked a non-designated initializer
# designated initializer missing a 'super' call to a designated initializer of the super class
# designated initializer should only invoke a designated initializer on 'super'
# method override for the designated initializer of the superclass A not found
# -Wobjc-flexible-array
# field A can overwrite instance variable B with variable sized type C in superclass D
# field A with variable sized type B is not visible to subclasses and can conflict with their instance variables
# -Wobjc-missing-super-calls
# method possibly missing a [super A] call
# -Wprivate-extern
# use of __private_extern__ on a declaration may not produce external symbol private to the linkage unit and is deprecated
# -Wreorder (partial)
# -Wreorder-init-list
# ISO C++ requires field designators to be specified in declaration order; field B will be initialized after field A
# -Wreturn-type
# <void function|void method|constructor|destructor> A should not return a value
# non-void <function|method> A should return a value
# non-void coroutine does not return a value
# non-void coroutine does not return a value in all control paths
# non-void function does not return a value
# non-void function does not return a value in all control paths
# non-void lambda does not return a value
# non-void lambda does not return a value in all control paths
# -Wreturn-type-c-linkage
# A has C-linkage specified, but returns incomplete type B which could be incompatible with C
# A has C-linkage specified, but returns user-defined type B which is incompatible with C
# -Wself-assign (partial)
# -Wself-assign-field
# assigning <field|instance variable> to itself
# -Wsizeof-array-argument
# sizeof on array function parameter will return size of A instead of B
# -Wsizeof-array-decay
# sizeof on pointer operation will return size of A instead of B
# -Wstring-plus-int
# adding A to a string does not append to the string
# -Wtautological-compare (partial)
# <aligning a value|the result of checking whether a value is aligned> to 1 byte is <a no-op|always true>
# <self-|array >comparison always evaluates to <a constant|true|false|'std::strong_ordering::equal'>
# -Wtautological-constant-compare
# converting the result of '<<' to a boolean always evaluates to <false|true>
# converting the result of '?:' with integer constants to a boolean always evaluates to 'true'
# result of comparison of <constant A|true|false> with <expression of type C|boolean expression> is always E
# -Wtautological-constant-out-of-range-compare
# result of comparison of <constant A|true|false> with <expression of type C|boolean expression> is always E
# -Wtautological-objc-bool-compare
# result of comparison of constant A with expression of type 'BOOL' is always B, as the only well defined values for 'BOOL' are YES and NO
# -Wtautological-pointer-compare
# comparison of <address of|function|array> 'B' [not ]equal to a null pointer is always <true|false>
# comparison of nonnull <function call|parameter> 'B' [not ]equal to a null pointer is '<true|false>' on first encounter
# -Wtautological-undefined-compare
# 'this' pointer cannot be null in well-defined C++ code; comparison may be assumed to always evaluate to <true|false>
# reference cannot be bound to dereferenced null pointer in well-defined C++ code; comparison may be assumed to always evaluate to <true|false>
# -Wtrigraphs
# ignored trigraph would end block comment
# trigraph converted to 'A' character
# trigraph ends block comment
# trigraph ignored
# -Wuninitialized (partial)
# base class A is uninitialized when used here to access B
# field A is uninitialized when used here
# reference A is not yet bound to a value when used here
# reference A is not yet bound to a value when used within its own initialization
# variable A is uninitialized when used within its own initialization
# -Wstatic-self-init
# static variable A is suspiciously used within its own initialization
# -Wunknown-pragmas (partial)
# #pragma execution_character_set expected 'A'
# #pragma execution_character_set expected 'push' or 'pop'
# #pragma execution_character_set invalid value 'A', only 'UTF-8' is supported
# #pragma warning expected 'A'
# #pragma warning expected 'push', 'pop', 'default', 'disable', 'error', 'once', 'suppress', 1, 2, 3, or 4
# #pragma warning expected a warning number
# #pragma warning(push, level) requires a level between 0 and 4
# angle-bracketed include <A> cannot be aliased to double-quoted include "B"
# double-quoted include "A" cannot be aliased to angle-bracketed include <B>
# expected 'ON' or 'OFF' or 'DEFAULT' in pragma
# expected end of directive in pragma
# pragma STDC FENV_ROUND is not supported
# pragma diagnostic expected 'error', 'warning', 'ignored', 'fatal', 'push', or 'pop'
# pragma diagnostic expected option name (e.g. "-Wundef")
# pragma diagnostic pop could not pop, no matching push
# pragma include_alias expected 'A'
# pragma include_alias expected include filename
# unexpected token in pragma diagnostic
# unknown pragma in STDC namespace
# -Wunused (partial)
# -Wunused-value
# container access result unused - container access should not be used for side effects
# expression result unused
# expression result unused; should this cast be to 'void'?
# ignoring return value of function declared with A attribute
# ignoring temporary created by a constructor declared with A attribute
# ignoring temporary created by a constructor declared with A attribute: B
# left operand of comma operator has no effect
# -Wunevaluated-expression
# expression with side effects has no effect in an unevaluated context
# -Wpotentially-evaluated-expression
# expression with side effects will be evaluated despite being used as an operand to 'typeid'
# -Wunused-comparison
# <equality|inequality|relational|three-way> comparison result unused
# -Wunused-result
# ignoring return value of function declared with A attribute
# ignoring return value of function declared with A attribute: B
# -Wuser-defined-warnings
# The text of this diagnostic is not controlled by Clang
# -Wparentheses (partial)
# A has lower precedence than B; B will be evaluated first
# operator '?:' has lower precedence than 'A'; 'A' will be evaluated first
# using the result of an assignment as a condition without parentheses
# -Wbitwise-conditional-parentheses
# operator '?:' has lower precedence than 'A'; 'A' will be evaluated first
# -Wdangling-else
# add explicit braces to avoid dangling else
# -Wlogical-not-parentheses
# logical not is only applied to the left hand side of this <comparison|bitwise operator>
# -Woverloaded-shift-op-parentheses
# overloaded operator <>>|<<> has higher precedence than comparison operator
# -Wparentheses-equality
# equality comparison with extraneous parentheses
# -Wshift-op-parentheses
# operator 'A' has lower precedence than 'B'; 'B' will be evaluated first
# -Wswitch
# <enumeration value B not handled in switch|enumeration values B and C not handled in switch|enumeration values B, C, and D not handled in switch|A enumeration values not handled in switch>
# case value not in enumerated type A
# overflow converting case value to switch condition type (A to B)
# -Wswitch-bool
# switch condition has boolean value
# -Wextra (partial)
# call to function without interrupt attribute could clobber interruptee's VFP registers
# -Wignored-qualifiers (partial)
# 'A' qualifier on function type B has no effect
# 'A' qualifier on omitted return type B has no effect
# ARC <unused|__unsafe_unretained|__strong|__weak|__autoreleasing> lifetime qualifier on return type is ignored
# -Wignored-reference-qualifiers
# 'A' qualifier on reference type B has no effect
# -Winitializer-overrides
# initializer [partially ]overrides prior initialization of this subobject
# -Wclang-cl-pch
# #pragma hdrstop filename not supported, /Fp can be used to specify precompiled header filename
# definition of macro A does not match definition in precompiled header
# support for '/Yc' and '/Yu' with different filenames not implemented yet; flags ignored
# support for '/Yc' with more than one source file not implemented yet; flag ignored
# -Wclass-conversion
# conversion function converting A to B will never be used
# conversion function converting A to its base class B will never be used
# conversion function converting A to itself will never be used
# -Wclass-varargs (partial)
# -Wnon-pod-varargs
# cannot pass <non-POD|non-trivial> object of type B to variadic <function|block|method|constructor>; expected type from format string was D
# cannot pass object of <non-POD|non-trivial> type B through variadic <function|block|method|constructor>; call will abort at runtime
# second argument to 'va_arg' is of ARC ownership-qualified type A
# second argument to 'va_arg' is of non-POD type A
# -Wcmse-union-leak
# passing union across security boundary via <parameter B|return value> may leak information
# -Wcomments (partial)
# -Wcomment (partial)
# '/*' within block comment
# escaped newline between */ characters at block comment end
# -Wcompare-distinct-pointer-types
# comparison of distinct pointer types
# -Wcompound-token-split (partial)
# -Wcompound-token-split-by-macro
# [B and ]C tokens <introducing statement expression|terminating statement expression|introducing attribute|terminating attribute|forming pointer to member type>,1,2,3 appear in different macro expansion contexts
# -Wconcepts-ts-compat
# ISO C++20 does not permit the 'bool' keyword after 'concept'
# -Wconditional-type-mismatch
# pointer/integer type mismatch in conditional expression
# -Wconfig-macros
# <definition|#undef> of configuration macro 'B' has no effect on the import of 'C'; pass '<-DB=...|-UB>' on the command line to configure the module
# -Wconstant-evaluated
# 'A' will always evaluate to 'true' in a manifestly constant-evaluated expression
# -Wconstant-logical-operand
# use of logical 'A' with constant operand
# -Wconstexpr-not-const
# 'constexpr' non-static member function will not be implicitly 'const' in C++14; add 'const' to avoid a change in behavior
# -Wconversion-null
# -Wnull-conversion
# implicit conversion of <NULL|nullptr> constant to B
# -Wcoroutine
# return type of 'coroutine_handle<>::address should be 'void*' (have A) in order to get capability with existing async C API.
# -Wcoroutine-missing-unhandled-exception
# A is required to declare the member 'unhandled_exception()' when exceptions are enabled
# -Wdeprecated-coroutine
# 'for co_await' belongs to CoroutineTS instead of C++20, which is deprecated
# -Wdeprecated-experimental-coroutine
# support for std::experimental::A will be removed in LLVM 15; use std::A instead
# -Wcpp
# -W#warnings
# The text of this diagnostic is not controlled by Clang
# -Wctu
# imported AST from 'A' had been generated for a different target, current: B, imported: C
# -Wcuda-compat (partial)
# A attribute parameter B is negative and will be ignored
# argument to '#pragma unroll' should not be in parentheses in CUDA C/C++
# ignored 'inline' attribute on kernel function A
# nvcc does not allow '__A__' to appear after the parameter list in lambdas
# -Wcxx-attribute-extension
# ISO C++ does not allow an attribute list to appear here
# -Wdangling
# <temporary <whose address is used as value of|[implicitly ]bound to> <[reference ]member of local variable|local <variable|reference>>|array backing <initializer list subobject of local variable|local initializer list>> [D ]will be destroyed at the end of the full-expression
# sorry, lifetime extension of <temporary|backing array of initializer list> created by aggregate initialization using default member initializer is not supported; lifetime of <temporary|backing array> will end at the end of the full-expression
# -Wdangling-field
# <reference|backing array for 'std::initializer_list'> [subobject of ]member A <binds to|is> a temporary object whose lifetime is shorter than the lifetime of the constructed object
# binding reference member A to stack allocated <variable|parameter> B
# initializing pointer member A with the stack address of <variable|parameter> B
# temporary bound to reference member of allocated object will be destroyed at the end of the full-expression
# -Wdangling-gsl
# initializing pointer member A to point to a temporary object whose lifetime is shorter than the lifetime of the constructed object
# object backing the pointer will be destroyed at the end of the full-expression
# -Wdangling-initializer-list
# array backing <initializer list subobject of the allocated object|the allocated initializer list> will be destroyed at the end of the full-expression
# -Wreturn-stack-address
# <address of|reference to> stack memory associated with <local variable|parameter> B returned
# returning <address of|reference to> local temporary object
# returning address of label, which is local
# -Wdarwin-sdk-settings
# SDK settings were ignored as 'SDKSettings.json' could not be parsed
# -Wdealloc-in-category
# -dealloc is being overridden in a category
# -Wdebug-compression-unavailable
# cannot compress debug sections (zlib not installed)
# -Wdefaulted-function-deleted
# explicitly defaulted <<ERROR>|equality|three-way|relational> comparison operator is implicitly deleted
# explicitly defaulted <default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor> is implicitly deleted
# -Wdelegating-ctor-cycles
# constructor for A creates a delegation cycle
# -Wdelete-incomplete
# cannot delete expression with pointer-to-'void' type A
# deleting pointer to incomplete type A may cause undefined behavior
# -Wdeprecated (partial)
# -O4 is equivalent to -O3
# -fconcepts-ts is deprecated - use '-std=c++20' for Concepts support
# A does not support the option 'B'
# Use of 'long' with '__vector' is deprecated
# access declarations are deprecated; use using declarations instead
# argument 'A' is deprecated, use 'B' instead
# treating 'A' input as 'B' when in C++ mode, this behavior is deprecated
# -Wdeprecated-anon-enum-enum-conversion
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wdeprecated-array-compare
# comparison between two arrays is deprecated; to compare array addresses, use unary '+' to decay operands to pointers
# -Wdeprecated-attributes
# specifying vector types with the 'mode' attribute is deprecated; use the 'vector_size' attribute instead
# -Wdeprecated-comma-subscript
# top-level comma expression in array subscript is deprecated
# -Wdeprecated-declarations
# A is deprecated
# A is deprecated: B
# A may be deprecated because the receiver type is unknown
# property access is using A method which is deprecated
# specifying 'uuid' as an ATL attribute is deprecated; use __declspec instead
# use of C-style parameters in Objective-C method declarations is deprecated
# -Wdeprecated-enum-compare
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wdeprecated-enum-compare-conditional
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wdeprecated-enum-enum-conversion
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wdeprecated-enum-float-conversion
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> <floating-point|enumeration> type C <with|from|and> <enumeration|floating-point> type D is deprecated
# -Wdeprecated-increment-bool
# incrementing expression of type bool is deprecated and incompatible with C++17
# -Wdeprecated-pragma
# macro A has been marked as deprecated[: C]
# -Wdeprecated-register
# 'register' storage class specifier is deprecated and incompatible with C++17
# -Wdeprecated-type
# '_ExtInt' is deprecated; use '_BitInt' instead
# -Wdeprecated-volatile
# <decrement|increment> of object of volatile-qualified type B is deprecated
# compound assignment to object of volatile-qualified type A is deprecated
# use of result of assignment to object of volatile-qualified type A is deprecated
# volatile qualifier in structured binding declaration is deprecated
# volatile-qualified parameter type A is deprecated
# volatile-qualified return type A is deprecated
# -Wdeprecated-writable-strings
# -Wc++11-compat-deprecated-writable-strings
# conversion from string literal to A is deprecated
# -Wdeprecated-altivec-src-compat
# Current handling of vector bool and vector pixel types in this context are deprecated. The default behaviour will soon change to that implied by the '-altivec-compat=xl' option
# -Wdeprecated-objc-isa-usage
# assignment to Objective-C's isa is deprecated in favor of object_setClass()
# direct access to Objective-C's isa is deprecated in favor of object_getClass()
# -Wdeprecated-objc-pointer-introspection
# bitmasking for introspection of Objective-C object pointers is strongly discouraged
# -Wdeprecated-objc-pointer-introspection-performSelector
# bitmasking for introspection of Objective-C object pointers is strongly discouraged
# -Wdistributed-object-modifiers
# conflicting distributed object modifiers on parameter type in implementation of A
# conflicting distributed object modifiers on return type in implementation of A
# -Wdiv-by-zero
# -Wdivision-by-zero
# <remainder|division> by zero is undefined
# -Wdll-attribute-on-redeclaration
# redeclaration of A should not add B attribute
# -Wdllexport-explicit-instantiation-decl
# explicit instantiation declaration should not be 'dllexport'
# -Wdllimport-static-field-def
# definition of dllimport static field
# -Wdtor-name (partial)
# qualified destructor name only found in lexical scope; omit the qualifier to find this type name by unqualified lookup
# -Wdtor-typedef
# destructor cannot be declared using a <typedef|type alias> A of the class name
# -Wduplicate-decl-specifier (partial)
# duplicate 'A' declaration specifier
# multiple identical address spaces specified for type
# -Wduplicate-protocol
# duplicate protocol definition of A is ignored
# -Wdynamic-exception-spec (partial)
# ISO C++17 does not allow dynamic exception specifications
# -Welaborated-enum-base
# non-defining declaration of enumeration with a fixed underlying type is only permitted as a standalone declaration[; missing list of enumerators?]
# -Welaborated-enum-class
# reference to enumeration must use 'enum' not 'enum <struct|class>'
# -Wempty-body
# for loop has empty body
# if statement has empty body
# range-based for loop has empty body
# switch statement has empty body
# while loop has empty body
# -Wempty-decomposition
# ISO C++17 does not allow a decomposition group to be empty
# -Wencode-type
# encoding of A type is incomplete because B component has unknown encoding
# -Wendif-labels
# -Wextra-tokens
# extra tokens at end of #A directive
# extra tokens at the end of '#pragma omp A' are ignored
# -Wenum-compare
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types
# -Wdeprecated-enum-compare
# <arithmetic between|bitwise operation between|comparison of|conditional expression between|compound assignment of> different enumeration types is deprecated
# -Wenum-compare-switch
# comparison of different enumeration types in switch statement
# -Wenum-too-large
# enumeration values exceed range of largest integer
# incremented enumerator value A is not representable in the largest integer type
# -Wexceptions
# A has a non-throwing exception specification but can still throw
# cannot refer to a non-static member from the handler of a <constructor|destructor> function try block
# exception of type A will be caught by earlier handler
# -Wexcess-initializers
# excess elements in <array|vector|scalar|union|struct> initializer
# excess elements in char array initializer
# excess elements in initializer for indivisible sizeless type A
# initializer-string for char array is too long
# -Wexpansion-to-defined (partial)
# macro expansion producing 'defined' has undefined behavior
# -Wexplicit-initialize-call
# explicit call to +initialize results in duplicate call to +initialize
# explicit call to [super initialize] should only be in implementation of +initialize
# -Wexport-unnamed
# ISO C++20 does not permit <an empty|a static_assert> declaration to appear in an export block
# ISO C++20 does not permit a declaration that does not introduce any names to be exported
# -Wexport-using-directive
# ISO C++20 does not permit using directive to be exported
# -Wextern-initializer
# 'extern' variable has an initializer
# -Wextra-qualification
# extra qualification on member A
# -Wfinal-dtor-non-final-class
# class with destructor marked '<final|sealed>' cannot be inherited from
# -Wfixed-point-overflow
# overflow in expression; result is A with type B
# -Wflag-enum
# enumeration value A is out of range of flags in enumeration type B
# -Wformat=2 (partial)
# -Wformat-security
# format string is not a string literal (potentially insecure)
# -Wfortify-source
# 'A' may overflow; destination buffer in argument B has size C, but the corresponding specifier may require size D
# 'A' size argument is too large; destination buffer has size B, but size argument is C
# 'A' will always overflow; destination buffer has size B, but format string expands to at least C
# 'A' will always overflow; destination buffer has size B, but size argument is C
# 'A' will always overflow; destination buffer has size B, but the source string has length C (including NUL byte)
# -Wframe-larger-than=
# -Wframe-larger-than
# The text of this diagnostic is not controlled by Clang
# stack frame size (A) exceeds limit (B) in 'C'
# -Wframework-include-private-from-public
# public framework header includes private framework header 'A'
# -Wfree-nonheap-object
# attempt to call A on non-heap <object C|object: block expression|object: lambda-to-function-pointer conversion>
# -Wfunction-def-in-objc-container
# function definition inside an Objective-C container is deprecated
# -Wfunction-multiversion
# CPU list contains duplicate entries; attribute ignored
# body of cpu_dispatch function will be ignored
# version list contains duplicate entries
# -Wtarget-clones-mixed-specifiers
# mixing 'target_clones' specifier mechanisms is permitted for GCC compatibility; use a comma separated sequence of string literals, or a string literal containing a comma-separated list of versions
# -Wgcc-compat (partial)
# 'A' is bound to current loop, GCC binds it to the enclosing loop
# 'break' is bound to loop, GCC binds it to switch
# GCC does not allow A attribute in this position on a function definition
# GCC does not allow an attribute in this position on a function declaration
# GCC does not allow the 'cleanup' attribute argument to be anything other than a simple identifier
# GCC does not allow the A attribute to be written on a type
# GCC does not allow variable declarations in for loop initializers before C99
# __final is a GNU extension, consider using C++11 final
# -Wglobal-isel
# -fglobal-isel support for the 'A' architecture is incomplete
# -fglobal-isel support is incomplete for this architecture at the current optimization level
# -Wgnu (partial)
# -Wgnu-alignof-expression
# A applied to an expression is a GNU extension
# -Wgnu-designator (partial)
# use of GNU 'missing =' extension in designator
# use of GNU old-style field designator extension
# -Wgnu-folding-constant (partial)
# variable length array folded to constant array as an extension
# -Wgnu-static-float-init
# in-class initializer for static data member of type A is a GNU extension
# -Wgnu-string-literal-operator-template
# string literal operator templates are a GNU extension
# -Wgnu-variable-sized-type-not-at-end
# field A with variable sized type B not at the end of a struct or class is a GNU extension
# -Wredeclared-class-member
# class member cannot be redeclared
# -Wgnu-array-member-paren-init
# parenthesized initialization of a member array is a GNU extension
# -Wgnu-inline-cpp-without-extern
# 'gnu_inline' attribute without 'extern' in C++ treated as externally available, this changed in Clang 10
# -Wgpu-maybe-wrong-side
# capture host side class data member by this pointer in device or host device lambda function may result in invalid memory access if this pointer is not accessible on device side
# -Wheader-guard
# A is used as a header guard here, followed by #define of a different macro
# -Whip-only
# 'A' is ignored since it is only supported for HIP
# -Wignored-availability-without-sdk-settings
# A availability is ignored without a valid 'SDKSettings.json' in the SDK
# -Wimplicit-conversion-floating-point-to-bool
# implicit conversion turns floating-point number into bool: A to B
# -Wimplicit-exception-spec-mismatch
# function previously declared with an <explicit|implicit> exception specification redeclared with an <implicit|explicit> exception specification
# -Wimplicit-fixed-point-conversion
# implicit conversion from A cannot fit within the range of values for B
# -Wimplicitly-unsigned-literal
# integer literal is too large to be represented in a signed integer type, interpreting as unsigned
# -Winaccessible-base
# direct base A is inaccessible due to ambiguity:B
# -Winclude-next-absolute-path
# #include_next in file found relative to primary source file or found by absolute path; will search from start of include path
# -Winclude-next-outside-header
# #include_next in primary source file; will search from start of include path
# -Wincompatible-exception-spec
# exception specifications of <return|argument> types differ
# target exception specification is not superset of source
# -Wincompatible-library-redeclaration
# incompatible redeclaration of library function A
# -Wincompatible-ms-struct
# ms_struct may not produce Microsoft-compatible layouts for classes with base classes or virtual functions
# ms_struct may not produce Microsoft-compatible layouts with fundamental data types with sizes that aren't a power of two
# -Wincompatible-pointer-types
# incompatible pointer types <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types>[; dereference with *|; take the address with &|; remove *|; remove &]
# -Wincompatible-function-pointer-types
# incompatible function pointer types <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types>[; dereference with *|; take the address with &|; remove *|; remove &]
# -Wincompatible-pointer-types-discards-qualifiers
# <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types> discards qualifiers
# <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types> discards qualifiers in nested pointer types
# <reinterpret_cast|C-style cast> from B to C changes address space of nested pointers
# -Wincompatible-property-type
# property type A is incompatible with type B inherited from C
# -Wincompatible-sysroot
# using sysroot for 'A' but targeting 'B'
# -Wincomplete-framework-module-declaration
# skipping 'A' because module declaration of 'B' lacks the 'framework' qualifier
# -Wincomplete-implementation
# method definition for A not found
# -Wincomplete-module (partial)
# -Wincomplete-umbrella
# missing submodule 'A'
# umbrella directory 'A' not found
# umbrella header for module 'A' does not include header 'B'
# -Wincomplete-setjmp-declaration
# declaration of built-in function 'A' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>.
# -Winconsistent-missing-override
# A overrides a member function but is not marked 'override'
# -Wincrement-bool
# ISO C++17 does not allow incrementing expression of type bool
# -Wdeprecated-increment-bool
# incrementing expression of type bool is deprecated and incompatible with C++17
# -WIndependentClass-attribute
# 'objc_independent_class' attribute may be put on Objective-C object pointer type only; attribute is ignored
# 'objc_independent_class' attribute may be put on a typedef only; attribute is ignored
# -Winjected-class-name
# ISO C++ specifies that qualified reference to A is a constructor name rather than a <template name|type> in this context, despite preceding <'typename'|'template'> keyword
# -Winline-asm
# The text of this diagnostic is not controlled by Clang
# -Winline-namespace-reopened-noninline
# inline namespace reopened as a non-inline namespace
# -Winline-new-delete
# replacement function A cannot be declared 'inline'
# -Winstantiation-after-specialization
# explicit instantiation of A that occurs after an explicit specialization has no effect
# -Wint-conversions
# -Wint-conversion
# incompatible integer to pointer conversion <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types>[; dereference with *|; take the address with &|; remove *|; remove &]
# incompatible pointer to integer conversion <assigning to different types|passing to parameter of different type|returning from function with different return type|converting between types|initializing with expression of different type|sending to parameter of different type|casting between types>[; dereference with *|; take the address with &|; remove *|; remove &]
# -Wint-to-pointer-cast
# cast to B from smaller integer type A
# -Wint-to-void-pointer-cast
# cast to B from smaller integer type A
# -Winteger-overflow
# overflow in expression; result is A with type B
# -Winterrupt-service-routine
# interrupt service routine should only call a function with attribute 'no_caller_saved_registers'
# -Winvalid-command-line-argument
# ignoring extension 'A' because the 'B' architecture does not support it
# missing plugin argument for plugin A in B
# missing plugin name in A
# no MCU device specified, but '-mhwmult' is set to 'auto', assuming no hardware multiply; use '-mmcu' to specify an MSP430 device, or '-mhwmult' to set the hardware multiply type explicitly
# optimization level 'A' is not supported; using 'BC' instead
# the given MCU does not support hardware multiply, but '-mhwmult' is set to A
# the given MCU supports A hardware multiply, but '-mhwmult' is set to B
# the object size sanitizer has no effect at -O0, but is explicitly enabled: A
# -Wignored-optimization-argument
# optimization flag 'A' is not supported
# optimization flag 'A' is not supported for target 'B'
# -Winvalid-constexpr
# <constexpr|consteval> <function|constructor> never produces a constant expression
# -Winvalid-iboutlet
# <instance variable|property> with A attribute must be an object type (invalid B)
# IBOutletCollection properties should be copy/strong and not assign
# -Winvalid-initializer-from-system-header
# invalid constructor from class in system header, should not be explicit
# -Winvalid-ios-deployment-target
# invalid iOS deployment version 'A', iOS 10 is the maximum deployment target for 32-bit targets
# -Winvalid-no-builtin-names
# 'A' is not a valid builtin name for B
# -Winvalid-noreturn
# function A declared 'noreturn' should not return
# function declared 'noreturn' should not return
# -Winvalid-offsetof
# offset of on non-POD type A
# offset of on non-standard-layout type A
# -Winvalid-or-nonexistent-directory (partial)
# environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or nonexistent directory 'A'