Subversion Repositories tendra.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
    		 Crown Copyright (c) 1997, 1998
3
 
4
    This TenDRA(r) Computer Program is subject to Copyright
5
    owned by the United Kingdom Secretary of State for Defence
6
    acting through the Defence Evaluation and Research Agency
7
    (DERA).  It is made available to Recipients with a
8
    royalty-free licence for its use, reproduction, transfer
9
    to other parties and amendment for any purpose not excluding
10
    product development provided that any such use et cetera
11
    shall be deemed to be acceptance of the following conditions:-
12
 
13
        (1) Its Recipients shall ensure that this Notice is
14
        reproduced upon any copies or amended versions of it;
15
 
16
        (2) Any amended version of it shall be clearly marked to
17
        show both the nature of and the organisation responsible
18
        for the relevant amendment or amendments;
19
 
20
        (3) Its onward transfer from a recipient to another
21
        party shall be deemed to be that party's acceptance of
22
        these conditions;
23
 
24
        (4) DERA gives no warranty or assurance as to its
25
        quality or suitability for any purpose and DERA accepts
26
        no liability whatsoever in relation to any use to which
27
        it may be put.
28
*/
29
 
30
/* AUTOMATICALLY GENERATED BY make_err FROM cpp */
31
 
32
 
33
/* Error catalogue */
34
 
35
ERR_CONST char *ERR_NAME = "cpp" ;
36
 
37
ERR_DATA ERR_CATALOG [] = {
38
    {
39
	"fail_input",
40
	"J",
41
	0,
42
	3,
43
	"",
44
	"Can't open input file, '%0'"
45
    },
46
    {
47
	"fail_output",
48
	"J",
49
	0,
50
	3,
51
	NULL,
52
	"Can't open output file, '%0'"
53
    },
54
    {
55
	"fail_dump",
56
	"J",
57
	0,
58
	3,
59
	NULL,
60
	"Can't open output dump file, '%0'"
61
    },
62
    {
63
	"fail_spec",
64
	"J",
65
	0,
66
	3,
67
	NULL,
68
	"Can't open output spec file, '%0'"
69
    },
70
    {
71
	"fail_spec_bad",
72
	"JJ",
73
	0,
74
	3,
75
	NULL,
76
	"Ill-formed spec file, '%0': %1"
77
    },
78
    {
79
	"fail_port",
80
	"J",
81
	0,
82
	3,
83
	NULL,
84
	"Can't open portability table, '%0'"
85
    },
86
    {
87
	"fail_too_many",
88
	"L",
89
	0,
90
	3,
91
	NULL,
92
	"Too many errors (%0) - aborting"
93
    },
94
    {
95
	"fail_error",
96
	"I",
97
	0,
98
	3,
99
	NULL,
100
	"%0"
101
    },
102
    {
103
	"fail_warning",
104
	"I",
105
	OPT_warning,
106
	3,
107
	NULL,
108
	"%0"
109
    },
110
    {
111
	"fail_list_item",
112
	"M9D",
113
	OPT_whatever,
114
	65,
115
	NULL,
116
	"\t%0. '%1' (%2)"
117
    },
118
    {
119
	"fail_list_end",
120
	"M",
121
	OPT_none,
122
	65,
123
	NULL,
124
	" (total %0)"
125
    },
126
    {
127
	"lex_parse",
128
	"C",
129
	0,
130
	17,
131
	"",
132
	"Parse error before '%0'"
133
    },
134
    {
135
	"lex_expect",
136
	"8",
137
	0,
138
	17,
139
	NULL,
140
	"Syntax error, '%0' expected"
141
    },
142
    {
143
	"lex_extra_comma",
144
	NULL,
145
	OPT_comma_extra,
146
	17,
147
	NULL,
148
	"Extra comma at end of list"
149
    },
150
    {
151
	"lex_abort",
152
	NULL,
153
	0,
154
	17,
155
	NULL,
156
	"Can't recover from this error"
157
    },
158
    {
159
	"lex_phases_eof",
160
	NULL,
161
	OPT_eof_nline,
162
	0,
163
#ifndef ERR_ALTERNATE
164
	"2.1",
165
#else
166
	"5.1.1.2",
167
#endif
168
	"File does not end in newline character"
169
    },
170
    {
171
	"lex_phases_comm_eof",
172
	NULL,
173
	0,
174
	0,
175
	NULL,
176
	"Unterminated comment"
177
    },
178
    {
179
	"lex_phases_str_eof",
180
	NULL,
181
	0,
182
	0,
183
	NULL,
184
	"End of file in string literal"
185
    },
186
    {
187
	"lex_charset_len",
188
	"HM",
189
	0,
190
	0,
191
#ifndef ERR_ALTERNATE
192
	"2.2",
193
#else
194
	"5.2.1",
195
#endif
196
	"Universal character '\\%0' should be followed by %1 hexadecimal digits"
197
    },
198
    {
199
	"lex_charset_replace",
200
	"K",
201
	OPT_trigraph,
202
	0,
203
	NULL,
204
	"Universal character '%0' used"
205
    },
206
    {
207
	"lex_charset_bad",
208
	"K",
209
	0,
210
	0,
211
	NULL,
212
	"Invalid universal character '%0'"
213
    },
214
    {
215
	"lex_trigraph_replace",
216
	"HH",
217
	OPT_trigraph,
218
	0,
219
#ifndef ERR_ALTERNATE
220
	"2.3",
221
#else
222
	"5.2.1.1",
223
#endif
224
	"Trigraph '??%0' replaced by '%1'"
225
    },
226
    {
227
	"lex_pptoken_unknown",
228
	"H",
229
	0,
230
	0,
231
#ifndef ERR_ALTERNATE
232
	"2.4",
233
#else
234
	"6.1",
235
#endif
236
	"Illegal character, '%0'"
237
    },
238
    {
239
	"lex_pptoken_unicode",
240
	"K",
241
	0,
242
	0,
243
	NULL,
244
	"Illegal universal character, '%0'"
245
    },
246
    {
247
	"lex_digraph_replace",
248
	"88",
249
	OPT_digraph,
250
	0,
251
#ifndef ERR_ALTERNATE
252
	"2.5",
253
#else
254
	"Amendment 1",
255
#endif
256
	"Digraph '%0' replaced by '%1'"
257
    },
258
    {
259
	"lex_digraph_iso",
260
	"68",
261
	OPT_iso_keyword,
262
	0,
263
	NULL,
264
	"ISO keyword '%0' replaced by '%1'"
265
    },
266
    {
267
	"lex_comment_nest",
268
	NULL,
269
	OPT_nest_comment,
270
	0,
271
#ifndef ERR_ALTERNATE
272
	"2.7",
273
#else
274
	"6.1.9",
275
#endif
276
	"'/*' in comment"
277
    },
278
    {
279
	"lex_name_limit",
280
	"6LL",
281
	OPT_name_limit,
282
	0,
283
#ifndef ERR_ALTERNATE
284
	"2.10",
285
#else
286
	"6.1.2",
287
#endif
288
	"Length of identifier '%0' (%1) exceeds %2"
289
    },
290
    {
291
	"lex_name_extendid",
292
	"K",
293
	0,
294
	0,
295
	NULL,
296
	"Invalid universal character, '%0', in identifier"
297
    },
298
    {
299
	"lex_key_word",
300
	"8",
301
	0,
302
	0,
303
#ifndef ERR_ALTERNATE
304
	"2.11",
305
#else
306
	"6.1.1",
307
#endif
308
	"'%0' is now a keyword"
309
    },
310
    {
311
	"lex_key_iso",
312
	"6",
313
	OPT_wall,
314
	0,
315
	NULL,
316
	"ISO keyword '%0' is not a valid macro identifier"
317
    },
318
    {
319
	"lex_key_reserve",
320
	"6",
321
	OPT_wall,
322
	0,
323
	NULL,
324
	"'%0' is a reserved identifier"
325
    },
326
    {
327
	"lex_op_old_assign",
328
	"HH",
329
	OPT_none,
330
	0,
331
#ifndef ERR_ALTERNATE
332
	"2.12",
333
#else
334
	"6.1.5",
335
#endif
336
	"Old style assignment operator '=%0', assuming '= %1'"
337
    },
338
    {
339
	"lex_literal_bad",
340
	"J",
341
	0,
342
	0,
343
#ifndef ERR_ALTERNATE
344
	"2.13",
345
#else
346
	"6.1.3",
347
#endif
348
	"Can't convert '%0' to a number"
349
    },
350
    {
351
	"lex_icon_octal",
352
	"J",
353
	0,
354
	0,
355
#ifndef ERR_ALTERNATE
356
	"2.13.1",
357
#else
358
	"6.1.3.2",
359
#endif
360
	"Illegal octal digits in '%0'"
361
    },
362
    {
363
	"lex_icon_large",
364
	"JB",
365
	0,
366
	0,
367
	NULL,
368
	"Integer literal '%0' exceeds maximum value (%1)"
369
    },
370
    {
371
	"lex_icon_llong",
372
	"J",
373
	OPT_longlong,
374
	0,
375
	NULL,
376
	"'long long' integer literal '%0'"
377
    },
378
    {
379
	"lex_ccon_multibyte",
380
	NULL,
381
	0,
382
	0,
383
#ifndef ERR_ALTERNATE
384
	"2.13.2",
385
#else
386
	"5.2.1.2",
387
#endif
388
	"Invalid multibyte character"
389
    },
390
    {
391
	"lex_ccon_empty",
392
	NULL,
393
	0,
394
	0,
395
#ifndef ERR_ALTERNATE
396
	"2.13.2",
397
#else
398
	"6.1.3.4",
399
#endif
400
	"Empty character literal"
401
    },
402
    {
403
	"lex_ccon_multi",
404
	"F",
405
	OPT_wall,
406
	0,
407
	NULL,
408
	"Multicharacter character literal, %0"
409
    },
410
    {
411
	"lex_ccon_escape",
412
	"H",
413
	OPT_escape_unknown,
414
	0,
415
	NULL,
416
	"Unknown escape sequence, '\\%0'"
417
    },
418
    {
419
	"lex_ccon_hex",
420
	"H",
421
	OPT_escape_unknown,
422
	0,
423
	NULL,
424
	"Invalid hexadecimal escape sequence, '\\%0'"
425
    },
426
    {
427
	"lex_ccon_large",
428
	NULL,
429
	OPT_escape_overflow,
430
	0,
431
	NULL,
432
	"Character out of range"
433
    },
434
    {
435
	"lex_fcon_large",
436
	"5",
437
	0,
438
	0,
439
#ifndef ERR_ALTERNATE
440
	"2.13.3",
441
#else
442
	"6.1.3.1",
443
#endif
444
	"Floating point literal '%0' too large"
445
    },
446
    {
447
	"lex_string_nl",
448
	"MN",
449
	0,
450
	0,
451
#ifndef ERR_ALTERNATE
452
	"2.13.4",
453
#else
454
	"6.1.4",
455
#endif
456
	"%0 newline character%1 in string literal"
457
    },
458
    {
459
	"lex_string_pp_nl",
460
	NULL,
461
	0,
462
	0,
463
	NULL,
464
	"End of line in string literal"
465
    },
466
    {
467
	"lex_string_concat",
468
	NULL,
469
	OPT_concat_string,
470
	0,
471
	NULL,
472
	"Concatenation of different string literal types"
473
    },
474
    {
475
	"basic_odr_decl",
476
	"7D",
477
	0,
478
	0,
479
#ifndef ERR_ALTERNATE
480
	"3.2",
481
#else
482
	"6.5",
483
#endif
484
	"'%0' has already been declared (at %1)"
485
    },
486
    {
487
	"basic_odr_diff",
488
	"7D",
489
	0,
490
	0,
491
	NULL,
492
	"'%0' has already been declared as a different kind of object (at %1)"
493
    },
494
    {
495
	"basic_odr_typedef",
496
	"7D",
497
	OPT_type_redef,
498
	0,
499
	NULL,
500
	"Type '%0' redeclared (see %1)"
501
    },
502
    {
503
	"basic_odr_def",
504
	"7D",
505
	0,
506
	0,
507
#ifndef ERR_ALTERNATE
508
	"3.2",
509
#else
510
	"6.7",
511
#endif
512
	"'%0' has already been defined (at %1)"
513
    },
514
    {
515
	"basic_odr_def_func",
516
	"9D",
517
	0,
518
	0,
519
	NULL,
520
	"The function '%0' has already been defined (at %1)"
521
    },
522
    {
523
	"basic_odr_undef",
524
	"9",
525
	0,
526
	0,
527
	NULL,
528
	"'%0' has been used but not defined"
529
    },
530
    {
531
	"basic_odr_inline",
532
	"9",
533
	0,
534
	0,
535
	NULL,
536
	"The 'inline' function '%0' has been used but not defined"
537
    },
538
    {
539
	"basic_odr_unused",
540
	"9",
541
	OPT_whatever,
542
	0,
543
	NULL,
544
	"'%0' has been defined but not used"
545
    },
546
    {
547
	"basic_odr_redundant",
548
	"9",
549
	OPT_whatever,
550
	0,
551
	NULL,
552
	"'%0' has been declared but not used or defined"
553
    },
554
    {
555
	"basic_odr_tentative",
556
	"7D",
557
	OPT_wall,
558
	0,
559
#ifndef ERR_ALTERNATE
560
	"3.2",
561
#else
562
	"6.7.2",
563
#endif
564
	"Multiple definition of '%0' (see %1)"
565
    },
566
    {
567
	"basic_odr_def_type",
568
	"9D",
569
	0,
570
	0,
571
#ifndef ERR_ALTERNATE
572
	"3.2",
573
#else
574
	"6.5.2.3",
575
#endif
576
	"The type '%0' has already been defined (at %1)"
577
    },
578
    {
579
	"basic_scope_pdecl_param",
580
	"9",
581
	OPT_wall,
582
	0,
583
#ifndef ERR_ALTERNATE
584
	"3.3.1",
585
#else
586
	"6.1.2.1",
587
#endif
588
	"The type '%0' has function parameter scope - it is only in scope in this declaration"
589
    },
590
    {
591
	"basic_scope_hide",
592
	"6D",
593
	OPT_decl_hide,
594
	0,
595
#ifndef ERR_ALTERNATE
596
	"3.3.7",
597
#else
598
	"6.1.2.1",
599
#endif
600
	"Declaration of '%0' hides a previous declaration (at %1)"
601
    },
602
    {
603
	"basic_scope_hide_mem",
604
	"67",
605
	OPT_decl_hide,
606
	0,
607
	NULL,
608
	"Declaration of '%0' hides the member '%1'"
609
    },
610
    {
611
	"lookup_ambig_id",
612
	"7",
613
	0,
614
	0,
615
#ifndef ERR_ALTERNATE
616
	"3.4",
617
#else
618
	"6.3.1",
619
#endif
620
	"The name '%0' is ambiguous"
621
    },
622
    {
623
	"lookup_ambig_mem",
624
	"7",
625
	0,
626
	0,
627
	NULL,
628
	"The member '%0' is ambiguous"
629
    },
630
    {
631
	"lookup_ambig_list",
632
	NULL,
633
	OPT_whatever,
634
	0,
635
	NULL,
636
	"Ambiguous meanings are as follows"
637
    },
638
    {
639
	"lookup_unqual_undef",
640
	"6",
641
	0,
642
	0,
643
#ifndef ERR_ALTERNATE
644
	"3.4.1",
645
#else
646
	"6.3.1",
647
#endif
648
	"The identifier '%0' hasn't been declared in this scope"
649
    },
650
    {
651
	"lookup_unqual_vis",
652
	"7",
653
	0,
654
	0,
655
	NULL,
656
	"Previous declaration of '%0' isn't visible in this scope"
657
    },
658
    {
659
	"lookup_qual_undef",
660
	"6A",
661
	0,
662
	0,
663
#ifndef ERR_ALTERNATE
664
	"3.4.3",
665
#else
666
	"6.5.2.1",
667
#endif
668
	"The member '%0' of '%1' hasn't been declared"
669
    },
670
    {
671
	"lookup_qual_bad",
672
	"7A",
673
	0,
674
	0,
675
	NULL,
676
	"'%0' is not a member of '%1'"
677
    },
678
    {
679
	"lookup_qual_decl",
680
	"7A",
681
	0,
682
	0,
683
	NULL,
684
	"'%0' is not an immediate member of '%1'"
685
    },
686
    {
687
	"lookup_elab_alias",
688
	"17",
689
	0,
690
	0,
691
#ifndef ERR_ALTERNATE
692
	"3.4.4",
693
#else
694
	"6.5.2.3",
695
#endif
696
	"'typedef' name used in '%0 %1'"
697
    },
698
    {
699
	"lookup_elab_invalid",
700
	"17",
701
	0,
702
	0,
703
	NULL,
704
	"Invalid identifier used in '%0 %1'"
705
    },
706
    {
707
	"lookup_elab_enum",
708
	"9",
709
	OPT_enum_decl,
710
	0,
711
	NULL,
712
	"Can't declare the enumeration '%0'"
713
    },
714
    {
715
	"lookup_classref_ambig",
716
	"7",
717
	0,
718
	0,
719
#ifndef ERR_ALTERNATE
720
	"3.4.5",
721
#else
722
	"????",
723
#endif
724
	"Ambiguous class member look-up for '%0'"
725
    },
726
    {
727
	"basic_link_mem_extern",
728
	"9",
729
	0,
730
	0,
731
#ifndef ERR_ALTERNATE
732
	"3.5",
733
#else
734
	"6.1.2.2",
735
#endif
736
	"The member '%0' has external linkage"
737
    },
738
    {
739
	"basic_link_none",
740
	"G9",
741
	OPT_cpp_error,
742
	0,
743
	NULL,
744
	"A type with no linkage, '%0', can't be used to declare an object with linkage, '%1'"
745
    },
746
    {
747
	"basic_link_qual",
748
	"33",
749
	OPT_type_qual_incompat,
750
	0,
751
#ifndef ERR_ALTERNATE
752
	"3.5",
753
#else
754
	"6.5.3",
755
#endif
756
	"The type qualifiers '%0' and '%1' are incompatible"
757
    },
758
    {
759
	"basic_link_incompat",
760
	"GG",
761
	0,
762
	0,
763
#ifndef ERR_ALTERNATE
764
	"3.5",
765
#else
766
	"6.1.2.6",
767
#endif
768
	"The types '%0' and '%1' are incompatible"
769
    },
770
    {
771
	"basic_link_decl_type",
772
	"7D",
773
	OPT_whatever,
774
	0,
775
	NULL,
776
	"The declaration of '%0' should be compatible with that at %1"
777
    },
778
    {
779
	"basic_link_typedef",
780
	"7D",
781
	OPT_whatever,
782
	0,
783
	NULL,
784
	"The redefinition of type '%0' should be compatible with that at %1"
785
    },
786
    {
787
	"basic_link_unmatch",
788
	"G7",
789
	0,
790
	0,
791
	NULL,
792
	"The type '%0' does not match any declaration of the member '%1'"
793
    },
794
    {
795
	"basic_start_main_over",
796
	"7",
797
	0,
798
	0,
799
#ifndef ERR_ALTERNATE
800
	"3.6.1",
801
#else
802
	"5.1.2.2",
803
#endif
804
	"Can't overload '%0'"
805
    },
806
    {
807
	"basic_start_main_ret",
808
	"G6",
809
#ifndef ERR_ALTERNATE
810
	OPT_error,
811
#else
812
	OPT_wall,
813
#endif
814
	0,
815
	NULL,
816
	"Illegal return type '%0' for '%1'"
817
    },
818
    {
819
	"basic_start_main_proto",
820
	"G6",
821
	OPT_wall,
822
	0,
823
	NULL,
824
	"Unorthodox type '%0' for '%1'"
825
    },
826
    {
827
	"basic_start_main_link",
828
	"64",
829
#ifndef ERR_ALTERNATE
830
	OPT_error,
831
#else
832
	OPT_wall,
833
#endif
834
	0,
835
	NULL,
836
	"Can't declare '%0' to be '%1'"
837
    },
838
    {
839
	"basic_start_main_call",
840
	"7",
841
	OPT_cpp_error,
842
	0,
843
	NULL,
844
	"Can't call '%0' from within a program"
845
    },
846
    {
847
	"basic_start_main_addr",
848
	"7",
849
	OPT_cpp_error,
850
	0,
851
	NULL,
852
	"Can't take the address of '%0'"
853
    },
854
    {
855
	"basic_start_main_fall",
856
	"7G",
857
#ifndef ERR_ALTERNATE
858
	OPT_wall,
859
#else
860
	OPT_func_ret_void,
861
#endif
862
	0,
863
	NULL,
864
	"Implicit 'return 0' in function '%0' which returns '%1'"
865
    },
866
    {
867
	"basic_stc_alloc_ret",
868
	"6G",
869
	0,
870
	0,
871
#ifndef ERR_ALTERNATE
872
	"3.7.3",
873
#else
874
	"????",
875
#endif
876
	"'%0' should return '%1'"
877
    },
878
    {
879
	"basic_stc_alloc_p1",
880
	"6G",
881
	0,
882
	0,
883
	NULL,
884
	"First parameter of '%0' should have type '%1'"
885
    },
886
    {
887
	"basic_stc_alloc_d1",
888
	"6",
889
	0,
890
	0,
891
	NULL,
892
	"First parameter of '%0' can't have default argument"
893
    },
894
    {
895
	"basic_stc_alloc_p2",
896
	"6G",
897
	OPT_delete_over,
898
	0,
899
	NULL,
900
	"Second parameter of '%0' should have type '%1'"
901
    },
902
    {
903
	"basic_stc_alloc_pn",
904
	"6",
905
	OPT_delete_over,
906
	0,
907
	NULL,
908
	"Too many parameters for '%0'"
909
    },
910
    {
911
	"basic_stc_alloc_templ",
912
	"6",
913
	0,
914
	0,
915
	NULL,
916
	"Template '%0' should have at least two parameters"
917
    },
918
    {
919
	"basic_stc_alloc_nspace",
920
	"7",
921
	0,
922
	0,
923
	NULL,
924
	"Should declare '%0' in global namespace scope"
925
    },
926
    {
927
	"basic_stc_alloc_link",
928
	"7",
929
	0,
930
	0,
931
	NULL,
932
	"Can't declare '%0' with internal linkage"
933
    },
934
    {
935
	"basic_stc_dealloc_over",
936
	"7",
937
	OPT_delete_over,
938
	0,
939
#ifndef ERR_ALTERNATE
940
	"3.7.3.2",
941
#else
942
	"????",
943
#endif
944
	"Can't overload '%0'"
945
    },
946
    {
947
	"basic_types_def_incompl",
948
	"7",
949
	0,
950
	0,
951
#ifndef ERR_ALTERNATE
952
	"3.9",
953
#else
954
	"6.5",
955
#endif
956
	"The defined object '%0' must have complete object type"
957
    },
958
    {
959
	"basic_types_par_incompl",
960
	"7",
961
	0,
962
	0,
963
	NULL,
964
	"The parameter '%0' must have complete object type"
965
    },
966
    {
967
	"basic_types_tent_incompl",
968
	"7",
969
	0,
970
	0,
971
#ifndef ERR_ALTERNATE
972
	"3.9",
973
#else
974
	"6.7.2",
975
#endif
976
	"The implicitly defined object '%0' must have complete object type"
977
    },
978
    {
979
	"basic_types_obj_func",
980
	"G",
981
	OPT_whatever,
982
	0,
983
#ifndef ERR_ALTERNATE
984
	"3.9",
985
#else
986
	"6.1.2.5",
987
#endif
988
	"The function type '%0' is not an object type"
989
    },
990
    {
991
	"basic_types_obj_ref",
992
	"G",
993
	OPT_whatever,
994
	0,
995
	NULL,
996
	"The reference type '%0' is not an object type"
997
    },
998
    {
999
	"basic_types_incompl",
1000
	"G",
1001
	OPT_whatever,
1002
	0,
1003
	NULL,
1004
	"The type '%0' is incomplete"
1005
    },
1006
    {
1007
	"basic_types_completed",
1008
	"G",
1009
	OPT_complete_struct,
1010
	0,
1011
	NULL,
1012
	"The type '%0' has not been completed in its scope"
1013
    },
1014
    {
1015
	"basic_types_obj_incompl",
1016
	NULL,
1017
	OPT_whatever,
1018
	0,
1019
	NULL,
1020
	"An incomplete type is not a complete object type"
1021
    },
1022
    {
1023
	"basic_types_obj_void",
1024
	"G",
1025
	OPT_ptr_void,
1026
	0,
1027
	NULL,
1028
	"'%0' is not a pointer to a complete object type"
1029
    },
1030
    {
1031
	"basic_fund_void_decl",
1032
	"7G",
1033
	0,
1034
	0,
1035
#ifndef ERR_ALTERNATE
1036
	"3.9.1",
1037
#else
1038
	"6.1.2.5",
1039
#endif
1040
	"The object '%0' declared to have type '%1'"
1041
    },
1042
    {
1043
	"basic_fund_void_mem",
1044
	"7G",
1045
	0,
1046
	0,
1047
	NULL,
1048
	"The class member '%0' declared to have type '%1'"
1049
    },
1050
    {
1051
	"basic_fund_void_exp",
1052
	"G",
1053
	0,
1054
	0,
1055
	NULL,
1056
	"Invalid use of expression of type '%0'"
1057
    },
1058
    {
1059
	"basic_lval_not",
1060
	NULL,
1061
	OPT_whatever,
1062
	0,
1063
#ifndef ERR_ALTERNATE
1064
	"3.10",
1065
#else
1066
	"6.2.2.1",
1067
#endif
1068
	"Expression is not an lvalue"
1069
    },
1070
    {
1071
	"basic_lval_mod_rvalue",
1072
	NULL,
1073
	0,
1074
	0,
1075
	NULL,
1076
	"Expression should be an lvalue to be modifiable"
1077
    },
1078
    {
1079
	"basic_lval_mod_array",
1080
	NULL,
1081
	0,
1082
	0,
1083
	NULL,
1084
	"Lvalues of array type are not modifiable"
1085
    },
1086
    {
1087
	"basic_lval_mod_func",
1088
	NULL,
1089
	0,
1090
	0,
1091
	NULL,
1092
	"Lvalues of function type are not modifiable"
1093
    },
1094
    {
1095
	"basic_lval_mod_incompl",
1096
	NULL,
1097
	0,
1098
	0,
1099
	NULL,
1100
	"Lvalues of incomplete types are not modifiable"
1101
    },
1102
    {
1103
	"basic_lval_mod_const",
1104
	NULL,
1105
	0,
1106
	0,
1107
	NULL,
1108
	"A 'const' qualified lvalue is not modifiable"
1109
    },
1110
    {
1111
	"basic_lval_mod_member",
1112
	"G",
1113
	OPT_c_error,
1114
	0,
1115
	NULL,
1116
	"A type with a 'const' member, '%0', is not modifiable"
1117
    },
1118
    {
1119
	"conv_lval_incompl",
1120
	NULL,
1121
	0,
1122
	0,
1123
#ifndef ERR_ALTERNATE
1124
	"4.1",
1125
#else
1126
	"6.2.2.1",
1127
#endif
1128
	"Can't perform lvalue conversion on an incomplete type"
1129
    },
1130
    {
1131
	"conv_array_string",
1132
	NULL,
1133
	OPT_const_string,
1134
	0,
1135
#ifndef ERR_ALTERNATE
1136
	"4.2",
1137
#else
1138
	"6.1.4",
1139
#endif
1140
	"Conversion of string literal to non-'const' type"
1141
    },
1142
    {
1143
	"conv_array_str_mod",
1144
	NULL,
1145
	OPT_const_string,
1146
	0,
1147
	NULL,
1148
	"String literals are not modifiable"
1149
    },
1150
    {
1151
	"conv_qual_cast",
1152
	"3",
1153
	OPT_type_qual_incompat,
1154
	0,
1155
#ifndef ERR_ALTERNATE
1156
	"4.4",
1157
#else
1158
	"6.3.16.1",
1159
#endif
1160
	"Conversion casts away '%0'-ness"
1161
    },
1162
    {
1163
	"conv_qual_multi",
1164
	NULL,
1165
	OPT_type_qual_incompat,
1166
	0,
1167
	NULL,
1168
	"Multi-level qualification conversion should contain 'const' at each level"
1169
    },
1170
    {
1171
	"conv_integral_cast",
1172
	"GG",
1173
	OPT_whatever,
1174
	0,
1175
#ifndef ERR_ALTERNATE
1176
	"4.7",
1177
#else
1178
	"6.2.1",
1179
#endif
1180
	"Integral conversion from '%0' to '%1'"
1181
    },
1182
    {
1183
	"conv_double_cast",
1184
	"GG",
1185
	OPT_whatever,
1186
	0,
1187
#ifndef ERR_ALTERNATE
1188
	"4.8",
1189
#else
1190
	"6.2.1",
1191
#endif
1192
	"Floating point conversion from '%0' to '%1'"
1193
    },
1194
    {
1195
	"conv_fpint_trunc",
1196
	"GG",
1197
	OPT_whatever,
1198
	0,
1199
#ifndef ERR_ALTERNATE
1200
	"4.9",
1201
#else
1202
	"6.2.1",
1203
#endif
1204
	"Floating point truncation from '%0' to '%1'"
1205
    },
1206
    {
1207
	"conv_fpint_float",
1208
	"GG",
1209
	OPT_whatever,
1210
	0,
1211
	NULL,
1212
	"Integer to floating point conversion from '%0' to '%1'"
1213
    },
1214
    {
1215
	"conv_fpint_large",
1216
	"5",
1217
	OPT_int_overflow,
1218
	0,
1219
	NULL,
1220
	"Integer overflow in truncation of '%0'"
1221
    },
1222
    {
1223
	"conv_ptr_null_complex",
1224
	NULL,
1225
	OPT_ptr_operator,
1226
	0,
1227
#ifndef ERR_ALTERNATE
1228
	"4.10",
1229
#else
1230
	"6.2.2.3",
1231
#endif
1232
	"Complex null pointer constant"
1233
    },
1234
    {
1235
	"conv_ptr_nonzero",
1236
	"GG",
1237
	0,
1238
	0,
1239
#ifndef ERR_ALTERNATE
1240
	"4.10",
1241
#else
1242
	"6.3.4",
1243
#endif
1244
	"Conversion of nonzero value of type '%0' to type '%1'"
1245
    },
1246
    {
1247
	"conv_ptr_cast",
1248
	"GG",
1249
	0,
1250
	0,
1251
	NULL,
1252
	"Pointer conversion from '%0' to '%1'"
1253
    },
1254
    {
1255
	"conv_ptr_incompat",
1256
	NULL,
1257
	OPT_whatever,
1258
	0,
1259
	NULL,
1260
	"Types in pointer conversion should be compatible"
1261
    },
1262
    {
1263
	"conv_ptr_ambiguous",
1264
	NULL,
1265
	0,
1266
	0,
1267
	NULL,
1268
	"Base class in pointer conversion must be unambiguous"
1269
    },
1270
    {
1271
	"conv_ptr_access",
1272
	NULL,
1273
	0,
1274
	0,
1275
	NULL,
1276
	"Accessible base required in base class conversion"
1277
    },
1278
    {
1279
	"conv_ptr_common",
1280
	NULL,
1281
	OPT_whatever,
1282
	0,
1283
	NULL,
1284
	"Can't bring incompatible types to a common pointer type"
1285
    },
1286
    {
1287
	"conv_ptr_gen",
1288
	"G",
1289
	OPT_gen_ptr_char,
1290
	0,
1291
	NULL,
1292
	"Type '%0' used as generic pointer type"
1293
    },
1294
    {
1295
	"conv_mem_nonzero",
1296
	"GG",
1297
	0,
1298
	0,
1299
#ifndef ERR_ALTERNATE
1300
	"4.11",
1301
#else
1302
	"????",
1303
#endif
1304
	"Conversion of nonzero value of type '%0' to type '%1'"
1305
    },
1306
    {
1307
	"conv_mem_cast",
1308
	"GG",
1309
	0,
1310
	0,
1311
	NULL,
1312
	"Pointer to member conversion from '%0' to '%1'"
1313
    },
1314
    {
1315
	"conv_mem_ambiguous",
1316
	NULL,
1317
	0,
1318
	0,
1319
	NULL,
1320
	"Base class in pointer to member conversion must be unambiguous"
1321
    },
1322
    {
1323
	"conv_mem_virtual",
1324
	NULL,
1325
	0,
1326
	0,
1327
	NULL,
1328
	"Base class in pointer to member conversion can't be virtual"
1329
    },
1330
    {
1331
	"conv_mem_common",
1332
	NULL,
1333
	OPT_whatever,
1334
	0,
1335
	NULL,
1336
	"Can't bring incompatible types to a common pointer to member type"
1337
    },
1338
    {
1339
	"conv_bool_cast",
1340
	"G",
1341
	0,
1342
	0,
1343
#ifndef ERR_ALTERNATE
1344
	"4.12",
1345
#else
1346
	"6.3",
1347
#endif
1348
	"Can't convert expression of type '%0' to a boolean"
1349
    },
1350
    {
1351
	"conv_bool_assign",
1352
	NULL,
1353
	OPT_bool_assign,
1354
	0,
1355
	NULL,
1356
	"Assignment in boolean value"
1357
    },
1358
    {
1359
	"expr_paren_left",
1360
	"88",
1361
	OPT_paren,
1362
	0,
1363
#ifndef ERR_ALTERNATE
1364
	"5",
1365
#else
1366
	"6.3",
1367
#endif
1368
	"Operator precedence is '( a %0 b ) %1 c'"
1369
    },
1370
    {
1371
	"expr_paren_right",
1372
	"88",
1373
	OPT_paren,
1374
	0,
1375
	NULL,
1376
	"Operator precedence is 'a %0 ( b %1 c )'"
1377
    },
1378
    {
1379
	"expr_convert_op",
1380
	"M8",
1381
	OPT_whatever,
1382
	0,
1383
	NULL,
1384
	"Conversion of operand %0 in operation '%1'"
1385
    },
1386
    {
1387
	"expr_prim_this",
1388
	NULL,
1389
	0,
1390
	0,
1391
#ifndef ERR_ALTERNATE
1392
	"5.1",
1393
#else
1394
	"6.3.1",
1395
#endif
1396
	"'this' is only in scope in non-static member functions"
1397
    },
1398
    {
1399
	"expr_prim_mem",
1400
	"9",
1401
	0,
1402
	0,
1403
	NULL,
1404
	"Can't use non-static member '%0' in this context"
1405
    },
1406
    {
1407
	"expr_prim_type",
1408
	"9",
1409
	0,
1410
	0,
1411
	NULL,
1412
	"'%0' denotes a type, not an expression"
1413
    },
1414
    {
1415
	"expr_sub_ptr_op",
1416
	"GG",
1417
	0,
1418
	0,
1419
#ifndef ERR_ALTERNATE
1420
	"5.2.1",
1421
#else
1422
	"6.3.2.1",
1423
#endif
1424
	"One operand of '[]' should have pointer type, not '%0' and '%1'"
1425
    },
1426
    {
1427
	"expr_sub_int_op",
1428
	"G",
1429
	0,
1430
	0,
1431
	NULL,
1432
	"Non-pointer operand of '[]' should have integral type, not '%0'"
1433
    },
1434
    {
1435
	"expr_sub_char_op",
1436
	"G",
1437
	OPT_ptr_operator,
1438
	0,
1439
	NULL,
1440
	"Non-pointer operand of '[]' has type '%0'"
1441
    },
1442
    {
1443
	"expr_sub_incompl",
1444
	NULL,
1445
	0,
1446
	0,
1447
	NULL,
1448
	"Pointer to complete object type expected in '[]'"
1449
    },
1450
    {
1451
	"expr_call_func",
1452
	"9",
1453
	OPT_whatever,
1454
	0,
1455
#ifndef ERR_ALTERNATE
1456
	"5.2.2",
1457
#else
1458
	"6.3.2.2",
1459
#endif
1460
	"In call of function '%0'"
1461
    },
1462
    {
1463
	"expr_call_op",
1464
	"G",
1465
	0,
1466
	0,
1467
	NULL,
1468
	"Invalid function type, '%0'"
1469
    },
1470
    {
1471
	"expr_call_ret",
1472
	NULL,
1473
	0,
1474
	0,
1475
	NULL,
1476
	"Function return type should be a complete object type or 'void'"
1477
    },
1478
    {
1479
	"expr_call_mem",
1480
	"9",
1481
	0,
1482
	0,
1483
	NULL,
1484
	"Non-static member function '%0' should have an associated object"
1485
    },
1486
    {
1487
	"expr_call_undecl",
1488
	"9",
1489
	OPT_func_impl,
1490
	0,
1491
	NULL,
1492
	"Implicit declaration of function '%0'"
1493
    },
1494
    {
1495
	"expr_call_arg",
1496
	"M",
1497
	OPT_whatever,
1498
	0,
1499
	NULL,
1500
	"Argument %0 is converted to parameter type"
1501
    },
1502
    {
1503
	"expr_call_ellipsis",
1504
	"M",
1505
	OPT_whatever,
1506
	0,
1507
	NULL,
1508
	"Argument %0 is converted to its promotion type"
1509
    },
1510
    {
1511
	"expr_call_weak_arg",
1512
	"MD",
1513
	OPT_weak,
1514
	0,
1515
	NULL,
1516
	"Incompatible type for argument %0 (see %1)"
1517
    },
1518
    {
1519
	"expr_call_args_exact",
1520
	"MNM",
1521
	0,
1522
	0,
1523
	NULL,
1524
	"Function call has %0 argument%1, it should have %2"
1525
    },
1526
    {
1527
	"expr_call_args_range",
1528
	"MNMM",
1529
	0,
1530
	0,
1531
	NULL,
1532
	"Function call has %0 argument%1, it should have between %2 and %3"
1533
    },
1534
    {
1535
	"expr_call_args_min",
1536
	"MNM",
1537
	0,
1538
	0,
1539
	NULL,
1540
	"Function call has %0 argument%1, it should have at least %2"
1541
    },
1542
    {
1543
	"expr_call_struct",
1544
	"G",
1545
	OPT_wall,
1546
	0,
1547
	NULL,
1548
	"Argument of type '%0' is passed as a data structure"
1549
    },
1550
    {
1551
	"expr_call_ell_func",
1552
	NULL,
1553
	0,
1554
	0,
1555
	NULL,
1556
	"Can only use '...' in function defined using '...'"
1557
    },
1558
    {
1559
	"expr_call_ell_exp",
1560
	NULL,
1561
	OPT_ellipsis_ident,
1562
	0,
1563
	NULL,
1564
	"'...' used as an expression"
1565
    },
1566
    {
1567
	"expr_type_conv_incompl",
1568
	NULL,
1569
	0,
1570
	0,
1571
#ifndef ERR_ALTERNATE
1572
	"5.2.3",
1573
#else
1574
	"6.3.4",
1575
#endif
1576
	"Complete object type required in type conversion"
1577
    },
1578
    {
1579
	"expr_type_conv_array",
1580
	"G",
1581
	0,
1582
	0,
1583
	NULL,
1584
	"Can't use array type '%0' in function-style cast"
1585
    },
1586
    {
1587
	"expr_type_conv_bad",
1588
	NULL,
1589
	OPT_whatever,
1590
	0,
1591
	NULL,
1592
	"Can't perform this conversion using a function-style cast"
1593
    },
1594
    {
1595
	"expr_type_conv_many",
1596
	"G",
1597
	0,
1598
	0,
1599
	NULL,
1600
	"A function-style cast with more than one argument requires a class type, not '%0'"
1601
    },
1602
    {
1603
	"expr_pseudo_type",
1604
	"GG",
1605
	0,
1606
	0,
1607
#ifndef ERR_ALTERNATE
1608
	"5.2.4",
1609
#else
1610
	"????",
1611
#endif
1612
	"Type mismatch for pseudo-destructor '%0::~%1'"
1613
    },
1614
    {
1615
	"expr_pseudo_scalar",
1616
	"G",
1617
	0,
1618
	0,
1619
	NULL,
1620
	"Can only have pseudo-destructor for scalar types, not '%0'"
1621
    },
1622
    {
1623
	"expr_pseudo_obj",
1624
	"6G",
1625
	0,
1626
	0,
1627
	NULL,
1628
	"Pseudo-destructor '%0' applied to type '%1'"
1629
    },
1630
    {
1631
	"expr_pseudo_args",
1632
	"6",
1633
	0,
1634
	0,
1635
	NULL,
1636
	"Can't give arguments to pseudo-destructor '%0'"
1637
    },
1638
    {
1639
	"expr_ref_arrow_op",
1640
	"GJ",
1641
	0,
1642
	0,
1643
#ifndef ERR_ALTERNATE
1644
	"5.2.5",
1645
#else
1646
	"6.3.2.3",
1647
#endif
1648
	"First operand of '->' should have type pointer to %1, not '%0'"
1649
    },
1650
    {
1651
	"expr_ref_dot_op",
1652
	"GJ",
1653
	0,
1654
	0,
1655
	NULL,
1656
	"First operand of '.' should have %1 type, not '%0'"
1657
    },
1658
    {
1659
	"expr_ref_arrow_dot",
1660
	"G",
1661
	0,
1662
	0,
1663
	NULL,
1664
	"Should use '.' with operand of type '%0', not '->'"
1665
    },
1666
    {
1667
	"expr_ref_dot_arrow",
1668
	"G",
1669
	0,
1670
	0,
1671
	NULL,
1672
	"Should use '->' with operand of type '%0', not '.'"
1673
    },
1674
    {
1675
	"expr_ref_incompl",
1676
	"81",
1677
	0,
1678
	0,
1679
	NULL,
1680
	"The %1 associated with the operand of '%0' should be complete"
1681
    },
1682
    {
1683
	"expr_ref_select",
1684
	"8J",
1685
	0,
1686
	0,
1687
	NULL,
1688
	"Second operand of '%0' should be a member of the %1 given by the first operand"
1689
    },
1690
    {
1691
	"expr_ref_call",
1692
	NULL,
1693
	0,
1694
	0,
1695
	NULL,
1696
	"Can only use member function selector in function call"
1697
    },
1698
    {
1699
	"expr_ref_qual",
1700
	"E7",
1701
	OPT_none,
1702
	0,
1703
	NULL,
1704
	"Illegal member access specifier, '%0%1'"
1705
    },
1706
    {
1707
	"expr_ref_func_type",
1708
	"2",
1709
	0,
1710
	0,
1711
	NULL,
1712
	"Member function called with unrelated class '%0'"
1713
    },
1714
    {
1715
	"expr_ref_type",
1716
	"7",
1717
	0,
1718
	0,
1719
	NULL,
1720
	"'%0' denotes a type member"
1721
    },
1722
    {
1723
	"expr_post_incr_mod",
1724
	"8",
1725
	OPT_whatever,
1726
	0,
1727
#ifndef ERR_ALTERNATE
1728
	"5.2.6",
1729
#else
1730
	"6.3.2.4",
1731
#endif
1732
	"Operand of postfix '%0' should be modifiable"
1733
    },
1734
    {
1735
	"expr_post_incr_op",
1736
	"8G",
1737
	0,
1738
	0,
1739
	NULL,
1740
	"Operand of postfix '%0' should have arithmetic or pointer type, not '%1'"
1741
    },
1742
    {
1743
	"expr_post_incr_incompl",
1744
	"8",
1745
	0,
1746
	0,
1747
	NULL,
1748
	"Pointer to complete object type expected in postfix '%0' operation"
1749
    },
1750
    {
1751
	"expr_post_incr_bool_inc",
1752
	"8G",
1753
	OPT_int_operator,
1754
	0,
1755
	NULL,
1756
	"Use of postfix '%0' on type '%1' is deprecated"
1757
    },
1758
    {
1759
	"expr_post_incr_bool_dec",
1760
	"8G",
1761
	0,
1762
	0,
1763
	NULL,
1764
	"Postfix '%0' can't be applied to type '%1'"
1765
    },
1766
    {
1767
	"expr_cast_dynam_typedef",
1768
	NULL,
1769
	0,
1770
	0,
1771
#ifndef ERR_ALTERNATE
1772
	"5.2.7",
1773
#else
1774
	"6.3.4",
1775
#endif
1776
	"Can't define a type in a 'dynamic_cast' expression"
1777
    },
1778
    {
1779
	"expr_cast_dynam_bad",
1780
	NULL,
1781
	OPT_whatever,
1782
	0,
1783
	NULL,
1784
	"Can't perform this conversion using 'dynamic_cast'"
1785
    },
1786
    {
1787
	"expr_cast_dynam_type",
1788
	"G",
1789
	0,
1790
	0,
1791
	NULL,
1792
	"Pointer or reference to complete class expected in 'dynamic_cast', not '%0'"
1793
    },
1794
    {
1795
	"expr_cast_dynam_ptr",
1796
	"G",
1797
	0,
1798
	0,
1799
	NULL,
1800
	"Operand to 'dynamic_cast' should be a pointer to complete class, not '%0'"
1801
    },
1802
    {
1803
	"expr_cast_dynam_ref",
1804
	"G",
1805
	0,
1806
	0,
1807
	NULL,
1808
	"Operand to 'dynamic_cast' should be an lvalue of complete class type, not '%0'"
1809
    },
1810
    {
1811
	"expr_cast_dynam_poly",
1812
	"2",
1813
	0,
1814
	0,
1815
	NULL,
1816
	"Operand to 'dynamic_cast' should have polymorphic class, not '%0'"
1817
    },
1818
    {
1819
	"expr_typeid_index",
1820
	"8",
1821
	OPT_wall,
1822
	0,
1823
#ifndef ERR_ALTERNATE
1824
	"5.2.8",
1825
#else
1826
	"????",
1827
#endif
1828
	"Index in '%0' expression is unevaluated"
1829
    },
1830
    {
1831
	"expr_typeid_side",
1832
	"8",
1833
	OPT_wall,
1834
	0,
1835
	NULL,
1836
	"Side effects in unevaluated '%0' expression"
1837
    },
1838
    {
1839
	"expr_typeid_typedef",
1840
	"8",
1841
	0,
1842
	0,
1843
	NULL,
1844
	"Can't define a type in a '%0' expression"
1845
    },
1846
    {
1847
	"expr_typeid_incompl",
1848
	"8",
1849
	0,
1850
	0,
1851
	NULL,
1852
	"Can't have incomplete class in a '%0' expression"
1853
    },
1854
    {
1855
	"expr_typeid_vtable",
1856
	"8",
1857
	0,
1858
	0,
1859
	NULL,
1860
	"Can only apply '%0' to polymorphic types"
1861
    },
1862
    {
1863
	"expr_cast_stat_typedef",
1864
	NULL,
1865
	0,
1866
	0,
1867
#ifndef ERR_ALTERNATE
1868
	"5.2.9",
1869
#else
1870
	"6.3.4",
1871
#endif
1872
	"Can't define a type in a 'static_cast' expression"
1873
    },
1874
    {
1875
	"expr_cast_stat_bad",
1876
	NULL,
1877
	OPT_whatever,
1878
	0,
1879
	NULL,
1880
	"Can't perform this conversion using 'static_cast'"
1881
    },
1882
    {
1883
	"expr_cast_stat_int_enum",
1884
	"GG",
1885
	0,
1886
	0,
1887
	NULL,
1888
	"Integer to enumeration conversion from '%0' to '%1'"
1889
    },
1890
    {
1891
	"expr_cast_stat_enum_enum",
1892
	"GG",
1893
	0,
1894
	0,
1895
	NULL,
1896
	"Conversion between different enumeration types '%0' and '%1'"
1897
    },
1898
    {
1899
	"expr_cast_stat_virt",
1900
	NULL,
1901
	0,
1902
	0,
1903
	NULL,
1904
	"Base class in pointer up-cast can't be virtual"
1905
    },
1906
    {
1907
	"expr_cast_stat_func",
1908
	"G",
1909
	0,
1910
	0,
1911
	NULL,
1912
	"Can't cast to the function type '%0'"
1913
    },
1914
    {
1915
	"expr_cast_reint_typedef",
1916
	NULL,
1917
	0,
1918
	0,
1919
#ifndef ERR_ALTERNATE
1920
	"5.2.10",
1921
#else
1922
	"6.3.4",
1923
#endif
1924
	"Can't define a type in a 'reinterpret_cast' expression"
1925
    },
1926
    {
1927
	"expr_cast_reint_bad",
1928
	NULL,
1929
	OPT_whatever,
1930
	0,
1931
	NULL,
1932
	"Can't perform this conversion using 'reinterpret_cast'"
1933
    },
1934
    {
1935
	"expr_cast_reint_int_ptr",
1936
	"GG",
1937
	0,
1938
	0,
1939
	NULL,
1940
	"Integer to pointer conversion from '%0' to '%1'"
1941
    },
1942
    {
1943
	"expr_cast_reint_ptr_int",
1944
	"GG",
1945
	0,
1946
	0,
1947
	NULL,
1948
	"Pointer to integer conversion from '%0' to '%1'"
1949
    },
1950
    {
1951
	"expr_cast_reint_func_ptr",
1952
	"GG",
1953
	OPT_conv_ptr_func,
1954
	0,
1955
	NULL,
1956
	"Can't convert function pointer '%0' to non-function pointer '%1'"
1957
    },
1958
    {
1959
	"expr_cast_reint_mem_func",
1960
	"GG",
1961
	0,
1962
	0,
1963
	NULL,
1964
	"Pointer to member function '%0' converted to pointer to function '%1'"
1965
    },
1966
    {
1967
	"expr_cast_const_typedef",
1968
	NULL,
1969
	0,
1970
	0,
1971
#ifndef ERR_ALTERNATE
1972
	"5.2.11",
1973
#else
1974
	"6.3.4",
1975
#endif
1976
	"Can't define a type in a 'const_cast' expression"
1977
    },
1978
    {
1979
	"expr_cast_const_bad",
1980
	NULL,
1981
	OPT_whatever,
1982
	0,
1983
	NULL,
1984
	"Can't perform this conversion using 'const_cast'"
1985
    },
1986
    {
1987
	"expr_unary_op_indir_op",
1988
	"G",
1989
	0,
1990
	0,
1991
#ifndef ERR_ALTERNATE
1992
	"5.3.1",
1993
#else
1994
	"6.3.3.2",
1995
#endif
1996
	"Operand of unary '*' should have pointer type, not '%0'"
1997
    },
1998
    {
1999
	"expr_unary_op_indir_void",
2000
	"G",
2001
	OPT_none,
2002
	0,
2003
	NULL,
2004
	"Can't apply unary '*' to a operand of type '%0'"
2005
    },
2006
    {
2007
	"expr_unary_op_indir_null",
2008
	"8",
2009
	OPT_ptr_operator,
2010
	0,
2011
	NULL,
2012
	"'%0' is undefined on null pointers"
2013
    },
2014
    {
2015
	"expr_unary_op_ref_lvalue",
2016
	NULL,
2017
	0,
2018
	0,
2019
	NULL,
2020
	"Operand of unary '&' should be an lvalue"
2021
    },
2022
    {
2023
	"expr_unary_op_ref_void",
2024
	"G",
2025
	0,
2026
	0,
2027
	NULL,
2028
	"Can't apply unary '&' to a operand of type '%0'"
2029
    },
2030
    {
2031
	"expr_unary_op_ref_incompl",
2032
	NULL,
2033
	OPT_none,
2034
	0,
2035
	NULL,
2036
	"Operand of unary '&' can't be incomplete"
2037
    },
2038
    {
2039
	"expr_unary_op_ref_post",
2040
	"7",
2041
	OPT_wall,
2042
	0,
2043
	NULL,
2044
	"Function '%0' declared in class previously taken address of as incomplete type"
2045
    },
2046
    {
2047
	"expr_unary_op_ref_bitf",
2048
	NULL,
2049
	0,
2050
	0,
2051
	NULL,
2052
	"Operand of unary '&' can't be a bitfield"
2053
    },
2054
    {
2055
	"expr_unary_op_ref_register",
2056
	"7",
2057
	OPT_addr_register,
2058
	0,
2059
	NULL,
2060
	"Can't take the address of the 'register' variable '%0'"
2061
    },
2062
    {
2063
	"expr_unary_op_ref_paren",
2064
	NULL,
2065
	0,
2066
	0,
2067
	NULL,
2068
	"Member operand to unary '&' can't be parenthesized"
2069
    },
2070
    {
2071
	"expr_unary_op_ref_full",
2072
	NULL,
2073
	OPT_none,
2074
	0,
2075
	NULL,
2076
	"Member operand to unary '&' can't be a fully qualified identifier"
2077
    },
2078
    {
2079
	"expr_unary_op_ref_unqual",
2080
	NULL,
2081
	0,
2082
	0,
2083
	NULL,
2084
	"Member operand to unary '&' must be a qualified identifier"
2085
    },
2086
    {
2087
	"expr_unary_op_uplus_op",
2088
	"8G",
2089
	0,
2090
	0,
2091
#ifndef ERR_ALTERNATE
2092
	"5.3.1",
2093
#else
2094
	"6.3.3.3",
2095
#endif
2096
	"Operand of unary '%0' should have arithmetic or pointer type, not '%1'"
2097
    },
2098
    {
2099
	"expr_unary_op_uminus_op",
2100
	"8G",
2101
	0,
2102
	0,
2103
	NULL,
2104
	"Operand of unary '%0' should have arithmetic type, not '%1'"
2105
    },
2106
    {
2107
	"expr_unary_op_compl_op",
2108
	"8G",
2109
	0,
2110
	0,
2111
	NULL,
2112
	"Operand of '%0' should have integral type, not '%1'"
2113
    },
2114
    {
2115
	"expr_unary_op_not_op",
2116
	NULL,
2117
	OPT_whatever,
2118
	0,
2119
	NULL,
2120
	"Operand of '!' is converted to a boolean"
2121
    },
2122
    {
2123
	"expr_pre_incr_mod",
2124
	"8",
2125
	OPT_whatever,
2126
	0,
2127
#ifndef ERR_ALTERNATE
2128
	"5.3.2",
2129
#else
2130
	"6.3.3.1",
2131
#endif
2132
	"Operand of prefix '%0' should be modifiable"
2133
    },
2134
    {
2135
	"expr_pre_incr_op",
2136
	"8G",
2137
	0,
2138
	0,
2139
	NULL,
2140
	"Operand of prefix '%0' should have arithmetic or pointer type, not '%1'"
2141
    },
2142
    {
2143
	"expr_pre_incr_incompl",
2144
	"8",
2145
	0,
2146
	0,
2147
	NULL,
2148
	"Pointer to complete object type expected in prefix '%0' operation"
2149
    },
2150
    {
2151
	"expr_pre_incr_bool_inc",
2152
	"8G",
2153
	OPT_int_operator,
2154
	0,
2155
	NULL,
2156
	"Use of prefix '%0' on type '%1' is deprecated"
2157
    },
2158
    {
2159
	"expr_pre_incr_bool_dec",
2160
	"8G",
2161
	0,
2162
	0,
2163
	NULL,
2164
	"Postfix '%0' can't be applied to type '%1'"
2165
    },
2166
    {
2167
	"expr_sizeof_func",
2168
	"8",
2169
	0,
2170
	0,
2171
#ifndef ERR_ALTERNATE
2172
	"5.3.3",
2173
#else
2174
	"6.3.3.4",
2175
#endif
2176
	"Can't apply '%0' to a function type"
2177
    },
2178
    {
2179
	"expr_sizeof_bitf",
2180
	"8",
2181
	0,
2182
	0,
2183
	NULL,
2184
	"Can't apply '%0' to a bitfield type"
2185
    },
2186
    {
2187
	"expr_sizeof_incompl",
2188
	"8",
2189
	0,
2190
	0,
2191
	NULL,
2192
	"Can't apply '%0' to an incomplete type"
2193
    },
2194
    {
2195
	"expr_sizeof_typedef",
2196
	"8",
2197
	OPT_cpp_error,
2198
	0,
2199
	NULL,
2200
	"Can't define a type in a '%0' expression"
2201
    },
2202
    {
2203
	"expr_sizeof_side",
2204
	"8",
2205
	OPT_wall,
2206
	0,
2207
	NULL,
2208
	"Side effects in unevaluated '%0' expression"
2209
    },
2210
    {
2211
	"expr_new_typedef",
2212
	NULL,
2213
	0,
2214
	0,
2215
#ifndef ERR_ALTERNATE
2216
	"5.3.4",
2217
#else
2218
	"????",
2219
#endif
2220
	"Can't declare types in a 'new' expression"
2221
    },
2222
    {
2223
	"expr_new_incompl",
2224
	NULL,
2225
	0,
2226
	0,
2227
	NULL,
2228
	"Type in 'new' expression should be a complete object type"
2229
    },
2230
    {
2231
	"expr_new_abstract",
2232
	NULL,
2233
	0,
2234
	0,
2235
	NULL,
2236
	"Type in 'new' expression can't be abstract"
2237
    },
2238
    {
2239
	"expr_new_dim",
2240
	"G",
2241
	0,
2242
	0,
2243
	NULL,
2244
	"Array bound in 'new' expression should have integral type, not '%0'"
2245
    },
2246
    {
2247
	"expr_new_init",
2248
	"8",
2249
	OPT_whatever,
2250
	0,
2251
	NULL,
2252
	"In '%0' expression initializer"
2253
    },
2254
    {
2255
	"expr_new_array_init",
2256
	"8",
2257
	0,
2258
	0,
2259
	NULL,
2260
	"Can't have an initializer in '%0' expression"
2261
    },
2262
    {
2263
	"expr_delete_ptr",
2264
	"8G",
2265
	0,
2266
	0,
2267
#ifndef ERR_ALTERNATE
2268
	"5.3.5",
2269
#else
2270
	"????",
2271
#endif
2272
	"Operand of '%0' expression should have pointer type, not '%1'"
2273
    },
2274
    {
2275
	"expr_delete_conv",
2276
	"8",
2277
	OPT_whatever,
2278
	0,
2279
	NULL,
2280
	"Operand of '%0' expression is converted to a pointer type"
2281
    },
2282
    {
2283
	"expr_delete_void",
2284
	"8G",
2285
	OPT_wall,
2286
	0,
2287
	NULL,
2288
	"Operand of '%0' expression can't have type '%1'"
2289
    },
2290
    {
2291
	"expr_delete_obj",
2292
	"8",
2293
	0,
2294
	0,
2295
	NULL,
2296
	"Pointer in '%0' expression should be to an object type"
2297
    },
2298
    {
2299
	"expr_delete_incompl",
2300
	"8",
2301
	OPT_wall,
2302
	0,
2303
	NULL,
2304
	"Pointer in '%0' expression should be to a complete type"
2305
    },
2306
    {
2307
	"expr_delete_post",
2308
	"7",
2309
	OPT_wall,
2310
	0,
2311
	NULL,
2312
	"Function '%0' declared in class deleted through pointer to incomplete type"
2313
    },
2314
    {
2315
	"expr_delete_const",
2316
	"3",
2317
	OPT_none,
2318
	0,
2319
	NULL,
2320
	"Can't delete a '%0' object"
2321
    },
2322
    {
2323
	"expr_delete_array",
2324
	"8",
2325
	0,
2326
	0,
2327
	NULL,
2328
	"The array bound in '%0' is anachronistic"
2329
    },
2330
    {
2331
	"expr_cast_expl_used",
2332
	NULL,
2333
	OPT_cast_explicit,
2334
	0,
2335
#ifndef ERR_ALTERNATE
2336
	"5.4",
2337
#else
2338
	"6.3.4",
2339
#endif
2340
	"Explicit cast expression"
2341
    },
2342
    {
2343
	"expr_cast_expl_typedef",
2344
	NULL,
2345
	OPT_cpp_error,
2346
	0,
2347
	NULL,
2348
	"Can't define a type in a cast expression"
2349
    },
2350
    {
2351
	"expr_cast_expl_scalar",
2352
	"G",
2353
	OPT_c_error,
2354
	0,
2355
	NULL,
2356
	"Can't cast to the non-scalar type '%0'"
2357
    },
2358
    {
2359
	"expr_cast_invalid",
2360
	"GG",
2361
	0,
2362
	0,
2363
	NULL,
2364
	"Illegal conversion from type '%0' to type '%1'"
2365
    },
2366
    {
2367
	"expr_cast_expl_bad",
2368
	NULL,
2369
	OPT_whatever,
2370
	0,
2371
	NULL,
2372
	"Can't perform this conversion using an explicit cast"
2373
    },
2374
    {
2375
	"expr_cast_ref",
2376
	"GG",
2377
	OPT_whatever,
2378
	0,
2379
	NULL,
2380
	"'cast < %0 > ( a )' is equivalent to '*cast < %1 > ( &a )'"
2381
    },
2382
    {
2383
	"expr_mptr_oper_arrow_op",
2384
	"9G",
2385
	0,
2386
	0,
2387
#ifndef ERR_ALTERNATE
2388
	"5.5",
2389
#else
2390
	"????",
2391
#endif
2392
	"First operand of '->*' should have type pointer to '%0', not '%1'"
2393
    },
2394
    {
2395
	"expr_mptr_oper_dot_op",
2396
	"9G",
2397
	0,
2398
	0,
2399
	NULL,
2400
	"First operand of '.*' should have type '%0', not '%1'"
2401
    },
2402
    {
2403
	"expr_mptr_oper_arrow_dot",
2404
	"G",
2405
	0,
2406
	0,
2407
	NULL,
2408
	"Should use '.*' with operand of type '%0', not '->*'"
2409
    },
2410
    {
2411
	"expr_mptr_oper_dot_arrow",
2412
	"G",
2413
	0,
2414
	0,
2415
	NULL,
2416
	"Should use '->*' with operand of type '%0', not '.*'"
2417
    },
2418
    {
2419
	"expr_mptr_oper_op2",
2420
	"8G",
2421
	0,
2422
	0,
2423
	NULL,
2424
	"Second operand of '%0' should have pointer to member type, not '%1'"
2425
    },
2426
    {
2427
	"expr_mptr_oper_compl",
2428
	"8",
2429
	0,
2430
	0,
2431
	NULL,
2432
	"Class in '%0' should be complete"
2433
    },
2434
    {
2435
	"expr_mptr_oper_ambig",
2436
	"8",
2437
	0,
2438
	0,
2439
	NULL,
2440
	"Base class conversion in '%0' must be unambiguous"
2441
    },
2442
    {
2443
	"expr_mptr_oper_call",
2444
	NULL,
2445
	0,
2446
	0,
2447
	NULL,
2448
	"Can only use function member selector in a function call"
2449
    },
2450
    {
2451
	"expr_mptr_oper_null",
2452
	"8",
2453
	OPT_ptr_operator,
2454
	0,
2455
	NULL,
2456
	"'%0' is undefined on null pointer to members"
2457
    },
2458
    {
2459
	"expr_mptr_oper_paren",
2460
	NULL,
2461
	OPT_whatever,
2462
	0,
2463
	NULL,
2464
	"Possible precedence error involving '.*' or '->*'"
2465
    },
2466
    {
2467
	"expr_mul_mul_op",
2468
	"8GG",
2469
	0,
2470
	0,
2471
#ifndef ERR_ALTERNATE
2472
	"5.6",
2473
#else
2474
	"6.3.5",
2475
#endif
2476
	"Operands of binary '%0' should be arithmetic, not '%1' and '%2'"
2477
    },
2478
    {
2479
	"expr_mul_rem_op",
2480
	"8GG",
2481
	0,
2482
	0,
2483
	NULL,
2484
	"Operands of '%0' should be integral, not '%1' and '%2'"
2485
    },
2486
    {
2487
	"expr_mul_div_zero",
2488
	"8",
2489
	OPT_int_overflow,
2490
	0,
2491
	NULL,
2492
	"Division operation '%0' with zero divisor is undefined"
2493
    },
2494
    {
2495
	"expr_mul_div_neg",
2496
	"8B",
2497
	OPT_int_operator,
2498
	0,
2499
	NULL,
2500
	"Division operation '%0' involving negative operand '%1' is implementation dependent"
2501
    },
2502
    {
2503
	"expr_add_op",
2504
	"8GG",
2505
	0,
2506
	0,
2507
#ifndef ERR_ALTERNATE
2508
	"5.7",
2509
#else
2510
	"6.3.6",
2511
#endif
2512
	"Can't perform binary '%0' on operands of types '%1' and '%2'"
2513
    },
2514
    {
2515
	"expr_add_incompl",
2516
	"8",
2517
	0,
2518
	0,
2519
	NULL,
2520
	"Pointer to complete object type expected in binary '%0'"
2521
    },
2522
    {
2523
	"expr_add_ptrdiff",
2524
	NULL,
2525
	OPT_whatever,
2526
	0,
2527
	NULL,
2528
	"Pointers in '-' should be to compatible types"
2529
    },
2530
    {
2531
	"expr_add_array",
2532
	"BG8",
2533
	OPT_ptr_operator,
2534
	0,
2535
	NULL,
2536
	"Can't address element '%0' of array of type '%1' using '%2'"
2537
    },
2538
    {
2539
	"expr_add_different",
2540
	NULL,
2541
	OPT_ptr_operator,
2542
	0,
2543
	NULL,
2544
	"Pointers in '-' should be to elements of the same array"
2545
    },
2546
    {
2547
	"expr_shift_op",
2548
	"8GG",
2549
	0,
2550
	0,
2551
#ifndef ERR_ALTERNATE
2552
	"5.8",
2553
#else
2554
	"6.3.7",
2555
#endif
2556
	"Operands of '%0' should be integral, not '%1' and '%2'"
2557
    },
2558
    {
2559
	"expr_shift_op1_sign",
2560
	"8",
2561
	OPT_int_operator,
2562
	0,
2563
	NULL,
2564
	"Shift operation '%0' with signed first operand is implementation dependent"
2565
    },
2566
    {
2567
	"expr_shift_op1_neg",
2568
	"8B",
2569
	OPT_int_operator,
2570
	0,
2571
	NULL,
2572
	"Shift operation '%0' with negative first operand '%1' is implementation dependent"
2573
    },
2574
    {
2575
	"expr_shift_op2_neg",
2576
	"8B",
2577
	OPT_int_operator,
2578
	0,
2579
	NULL,
2580
	"Shift operation '%0' with negative second operand '%1' is undefined"
2581
    },
2582
    {
2583
	"expr_shift_op2_big",
2584
	"8BG",
2585
	OPT_int_operator,
2586
	0,
2587
	NULL,
2588
	"Shift operation '%0' second operand '%1' exceeds the minimum size of first operand type, '%2'"
2589
    },
2590
    {
2591
	"expr_rel_op",
2592
	"8GG",
2593
	0,
2594
	0,
2595
#ifndef ERR_ALTERNATE
2596
	"5.9",
2597
#else
2598
	"6.3.8",
2599
#endif
2600
	"Can't perform '%0' on operands of types '%1' and '%2'"
2601
    },
2602
    {
2603
	"expr_rel_nonzero",
2604
	"8GG",
2605
	0,
2606
	0,
2607
	NULL,
2608
	"Can't perform '%0' on an operand of type '%1' and a nonzero value of type '%2'"
2609
    },
2610
    {
2611
	"expr_rel_ptr",
2612
	"8",
2613
	OPT_whatever,
2614
	0,
2615
	NULL,
2616
	"Pointer operands of '%0' are converted to a common type"
2617
    },
2618
    {
2619
	"expr_rel_ptr_void",
2620
	"8GG",
2621
#ifndef ERR_ALTERNATE
2622
	OPT_ptr_operator,
2623
#else
2624
	OPT_error,
2625
#endif
2626
	0,
2627
	NULL,
2628
	"Comparison '%0' performed on operands of types '%1' and '%2'"
2629
    },
2630
    {
2631
	"expr_rel_paren",
2632
	"88",
2633
	OPT_paren,
2634
	0,
2635
	NULL,
2636
	"Expressions like 'a %0 b %1 c' do not have their mathematical meaning"
2637
    },
2638
    {
2639
	"expr_rel_true",
2640
	NULL,
2641
	OPT_int_operator,
2642
	0,
2643
	NULL,
2644
	"The relation 'a >= 0' is always true for unsigned comparisons"
2645
    },
2646
    {
2647
	"expr_rel_false",
2648
	NULL,
2649
	OPT_int_operator,
2650
	0,
2651
	NULL,
2652
	"The relation 'a < 0' is always false for unsigned comparisons"
2653
    },
2654
    {
2655
	"expr_rel_null",
2656
	"8",
2657
#ifndef ERR_ALTERNATE
2658
	OPT_ptr_operator,
2659
#else
2660
	OPT_error,
2661
#endif
2662
	0,
2663
	NULL,
2664
	"Can't have null pointer operand to '%0'"
2665
    },
2666
    {
2667
	"expr_eq_op",
2668
	"8GG",
2669
	0,
2670
	0,
2671
#ifndef ERR_ALTERNATE
2672
	"5.10",
2673
#else
2674
	"6.3.9",
2675
#endif
2676
	"Can't perform '%0' on operands of types '%1' and '%2'"
2677
    },
2678
    {
2679
	"expr_eq_nonzero",
2680
	"8GG",
2681
	0,
2682
	0,
2683
	NULL,
2684
	"Can't perform '%0' on an operand of type '%1' and a nonzero value of type '%2'"
2685
    },
2686
    {
2687
	"expr_eq_ptr",
2688
	"8",
2689
	OPT_whatever,
2690
	0,
2691
	NULL,
2692
	"Pointer operands of '%0' are converted to a common type"
2693
    },
2694
    {
2695
	"expr_eq_mptr",
2696
	"8",
2697
	OPT_whatever,
2698
	0,
2699
	NULL,
2700
	"Pointer to member operands of '%0' are converted to a common type"
2701
    },
2702
    {
2703
	"expr_eq_float",
2704
	"8",
2705
	OPT_int_operator,
2706
	0,
2707
	NULL,
2708
	"Floating point '%0' operation"
2709
    },
2710
    {
2711
	"expr_bit_and_op",
2712
	"8GG",
2713
	0,
2714
	0,
2715
#ifndef ERR_ALTERNATE
2716
	"5.11",
2717
#else
2718
	"6.3.10",
2719
#endif
2720
	"Operands of binary '%0' should be integral, not '%1' and '%2'"
2721
    },
2722
    {
2723
	"expr_xor_op",
2724
	"8GG",
2725
	0,
2726
	0,
2727
#ifndef ERR_ALTERNATE
2728
	"5.12",
2729
#else
2730
	"6.3.11",
2731
#endif
2732
	"Operands of '%0' should be integral, not '%1' and '%2'"
2733
    },
2734
    {
2735
	"expr_or_op",
2736
	"8GG",
2737
	0,
2738
	0,
2739
#ifndef ERR_ALTERNATE
2740
	"5.13",
2741
#else
2742
	"6.3.12",
2743
#endif
2744
	"Operands of '%0' should be integral, not '%1' and '%2'"
2745
    },
2746
    {
2747
	"expr_log_and_op",
2748
	"8",
2749
	OPT_whatever,
2750
	0,
2751
#ifndef ERR_ALTERNATE
2752
	"5.14",
2753
#else
2754
	"6.3.13",
2755
#endif
2756
	"Operands of '%0' are converted to booleans"
2757
    },
2758
    {
2759
	"expr_log_or_op",
2760
	"8",
2761
	OPT_whatever,
2762
	0,
2763
#ifndef ERR_ALTERNATE
2764
	"5.15",
2765
#else
2766
	"6.3.14",
2767
#endif
2768
	"Operands of '%0' are converted to booleans"
2769
    },
2770
    {
2771
	"expr_cond_bool",
2772
	NULL,
2773
	OPT_whatever,
2774
	0,
2775
#ifndef ERR_ALTERNATE
2776
	"5.16",
2777
#else
2778
	"6.3.15",
2779
#endif
2780
	"The condition of '?:' is converted to a boolean"
2781
    },
2782
    {
2783
	"expr_cond_const",
2784
	NULL,
2785
	OPT_const_cond,
2786
	0,
2787
	NULL,
2788
	"Constant condition in '?:' expression"
2789
    },
2790
    {
2791
	"expr_cond_op",
2792
	"GG",
2793
	0,
2794
	0,
2795
	NULL,
2796
	"Can't perform '?:' on operands of types '%0' and '%1'"
2797
    },
2798
    {
2799
	"expr_cond_qual",
2800
	"GG",
2801
	OPT_none,
2802
	0,
2803
	NULL,
2804
	"Qualifier mismatch for operands of types '%0' and '%1' in '?:'"
2805
    },
2806
    {
2807
	"expr_cond_nonzero",
2808
	"GG",
2809
	0,
2810
	0,
2811
	NULL,
2812
	"Can't perform '?:' on an operand of type '%0' and a nonzero value of type '%1'"
2813
    },
2814
    {
2815
	"expr_cond_ptr",
2816
	NULL,
2817
	OPT_whatever,
2818
	0,
2819
	NULL,
2820
	"Pointer operands of '?:' are converted to a common type"
2821
    },
2822
    {
2823
	"expr_cond_mptr",
2824
	NULL,
2825
	OPT_whatever,
2826
	0,
2827
	NULL,
2828
	"Pointer to member operands of '?:' are converted to a common type"
2829
    },
2830
    {
2831
	"expr_ass_mod",
2832
	"8",
2833
	OPT_whatever,
2834
	0,
2835
#ifndef ERR_ALTERNATE
2836
	"5.17",
2837
#else
2838
	"6.3.16",
2839
#endif
2840
	"Left operand of '%0' should be modifiable"
2841
    },
2842
    {
2843
	"expr_ass_op",
2844
	"8GG",
2845
	0,
2846
	0,
2847
	NULL,
2848
	"Can't perform '%0' on operands of types '%1' and '%2'"
2849
    },
2850
    {
2851
	"expr_ass_incompl",
2852
	"8",
2853
	0,
2854
	0,
2855
	NULL,
2856
	"Pointer to complete object type expected in '%0'"
2857
    },
2858
    {
2859
	"expr_ass_conv",
2860
	NULL,
2861
	OPT_whatever,
2862
	0,
2863
	NULL,
2864
	"Can't perform this conversion by assignment"
2865
    },
2866
    {
2867
	"expr_ass_twice",
2868
	"7",
2869
	OPT_variable,
2870
	0,
2871
	NULL,
2872
	"Variable '%0' modified twice in expression"
2873
    },
2874
    {
2875
	"expr_const_bad",
2876
	NULL,
2877
	OPT_whatever,
2878
	0,
2879
#ifndef ERR_ALTERNATE
2880
	"5.19",
2881
#else
2882
	"6.4",
2883
#endif
2884
	"Illegal integer constant expression"
2885
    },
2886
    {
2887
	"expr_const_int",
2888
	"G",
2889
	OPT_whatever,
2890
	0,
2891
	NULL,
2892
	"Constant expression should have integral type, not '%0'"
2893
    },
2894
    {
2895
	"expr_const_off_mem",
2896
	"9",
2897
	0,
2898
	0,
2899
	NULL,
2900
	"Member '%0' doesn't designate a constant offset"
2901
    },
2902
    {
2903
	"expr_const_off_array",
2904
	"G",
2905
	0,
2906
	0,
2907
	NULL,
2908
	"Array type required in constant offset, not '%0'"
2909
    },
2910
    {
2911
	"expr_const_off_dim",
2912
	NULL,
2913
	0,
2914
	0,
2915
	NULL,
2916
	"Constant index required in constant offset"
2917
    },
2918
    {
2919
	"stmt_stmt_unreach",
2920
	NULL,
2921
	OPT_reached,
2922
	0,
2923
#ifndef ERR_ALTERNATE
2924
	"6",
2925
#else
2926
	"6.6",
2927
#endif
2928
	"Statement not reached"
2929
    },
2930
    {
2931
	"stmt_stmt_empty",
2932
	"8",
2933
	OPT_empty_body,
2934
	0,
2935
	NULL,
2936
	"Empty body in '%0' statement"
2937
    },
2938
    {
2939
	"stmt_label_redef",
2940
	"79D",
2941
	0,
2942
	0,
2943
#ifndef ERR_ALTERNATE
2944
	"6.1",
2945
#else
2946
	"6.6.1",
2947
#endif
2948
	"Label '%0' already defined in function '%1' (at %2)"
2949
    },
2950
    {
2951
	"stmt_label_unused",
2952
	"79",
2953
	OPT_reached,
2954
	0,
2955
	NULL,
2956
	"Label '%0' defined but not used in function '%1'"
2957
    },
2958
    {
2959
	"stmt_label_case",
2960
	NULL,
2961
	0,
2962
	0,
2963
	NULL,
2964
	"'case' should be inside a 'switch' statement"
2965
    },
2966
    {
2967
	"stmt_label_default",
2968
	NULL,
2969
	0,
2970
	0,
2971
	NULL,
2972
	"'default' should be inside a 'switch' statement"
2973
    },
2974
    {
2975
	"stmt_label_fall",
2976
	"8",
2977
	OPT_case_fall,
2978
	0,
2979
	NULL,
2980
	"Fall into '%0' statement"
2981
    },
2982
    {
2983
	"stmt_expr_discard_func",
2984
	NULL,
2985
	OPT_discard_func,
2986
	0,
2987
#ifndef ERR_ALTERNATE
2988
	"6.2",
2989
#else
2990
	"6.6.3",
2991
#endif
2992
	"Discarded function return"
2993
    },
2994
    {
2995
	"stmt_expr_discard_val",
2996
	NULL,
2997
	OPT_discard_value,
2998
	0,
2999
	NULL,
3000
	"Discarded value"
3001
    },
3002
    {
3003
	"stmt_expr_incompl",
3004
	NULL,
3005
	OPT_none,
3006
	0,
3007
	NULL,
3008
	"Incomplete value discarded"
3009
    },
3010
    {
3011
	"stmt_select_type",
3012
	"G",
3013
	0,
3014
	0,
3015
#ifndef ERR_ALTERNATE
3016
	"6.4",
3017
#else
3018
	"6.6.4",
3019
#endif
3020
	"Invalid type for condition declaration, '%0'"
3021
    },
3022
    {
3023
	"stmt_select_typedef",
3024
	NULL,
3025
	0,
3026
	0,
3027
	NULL,
3028
	"Can't declare a type in a condition declaration"
3029
    },
3030
    {
3031
	"stmt_if_cond",
3032
	NULL,
3033
	OPT_whatever,
3034
	0,
3035
#ifndef ERR_ALTERNATE
3036
	"6.4.1",
3037
#else
3038
	"6.6.4.1",
3039
#endif
3040
	"Condition of an 'if' statement is converted to a boolean"
3041
    },
3042
    {
3043
	"stmt_if_const",
3044
	NULL,
3045
	OPT_const_cond,
3046
	0,
3047
	NULL,
3048
	"Constant condition in 'if' statement"
3049
    },
3050
    {
3051
	"stmt_if_no_else",
3052
	NULL,
3053
	OPT_cond_default,
3054
	0,
3055
	NULL,
3056
	"No 'else' in 'if' statement"
3057
    },
3058
    {
3059
	"stmt_switch_control",
3060
	"G",
3061
	0,
3062
	0,
3063
#ifndef ERR_ALTERNATE
3064
	"6.4.2",
3065
#else
3066
	"6.6.4.2",
3067
#endif
3068
	"Control expression of a 'switch' statement should have integral type, not '%0'"
3069
    },
3070
    {
3071
	"stmt_switch_conv",
3072
	NULL,
3073
	OPT_whatever,
3074
	0,
3075
	NULL,
3076
	"Control expression of a 'switch' statement is converted to an integral type"
3077
    },
3078
    {
3079
	"stmt_switch_const",
3080
	NULL,
3081
	OPT_const_cond,
3082
	0,
3083
	NULL,
3084
	"Constant control expression in 'switch' statement"
3085
    },
3086
    {
3087
	"stmt_switch_case_const",
3088
	NULL,
3089
	0,
3090
	0,
3091
	NULL,
3092
	"Expression in a 'case' statement should be an integer constant"
3093
    },
3094
    {
3095
	"stmt_switch_case_dup",
3096
	"BD",
3097
	0,
3098
	0,
3099
	NULL,
3100
	"'case %0' already defined in 'switch' (at %1)"
3101
    },
3102
    {
3103
	"stmt_switch_default_dup",
3104
	"D",
3105
	0,
3106
	0,
3107
	NULL,
3108
	"'default' already defined in 'switch' (at %0)"
3109
    },
3110
    {
3111
	"stmt_switch_case_not",
3112
	"B",
3113
	0,
3114
	0,
3115
	NULL,
3116
	"'case %0' not defined in 'switch'"
3117
    },
3118
    {
3119
	"stmt_switch_default_not",
3120
	NULL,
3121
	0,
3122
	0,
3123
	NULL,
3124
	"'default' not defined in 'switch'"
3125
    },
3126
    {
3127
	"stmt_switch_exhaust_none",
3128
	NULL,
3129
	0,
3130
	0,
3131
	NULL,
3132
	"No cases in exhaustive 'switch' statement"
3133
    },
3134
    {
3135
	"stmt_switch_exhaust_default",
3136
	NULL,
3137
	0,
3138
	0,
3139
	NULL,
3140
	"Can't have 'default' in exhaustive 'switch' statement"
3141
    },
3142
    {
3143
	"stmt_switch_case_none",
3144
	NULL,
3145
	OPT_const_cond,
3146
	0,
3147
	NULL,
3148
	"No cases in 'switch' statement"
3149
    },
3150
    {
3151
	"stmt_switch_no_default",
3152
	NULL,
3153
	OPT_cond_default,
3154
	0,
3155
	NULL,
3156
	"No 'default' in 'switch' statement"
3157
    },
3158
    {
3159
	"stmt_switch_case_enum",
3160
	"9",
3161
	OPT_enum_switch,
3162
	0,
3163
	NULL,
3164
	"Enumerator '%0' not covered in 'switch'"
3165
    },
3166
    {
3167
	"stmt_switch_case_extra",
3168
	"BG",
3169
	OPT_enum_switch,
3170
	0,
3171
	NULL,
3172
	"'case %0' is not a valid value for type '%1'"
3173
    },
3174
    {
3175
	"stmt_while_cond",
3176
	NULL,
3177
	OPT_whatever,
3178
	0,
3179
#ifndef ERR_ALTERNATE
3180
	"6.5.1",
3181
#else
3182
	"6.6.5.1",
3183
#endif
3184
	"Condition of a 'while' statement is converted to a boolean"
3185
    },
3186
    {
3187
	"stmt_while_const",
3188
	NULL,
3189
	OPT_const_cond,
3190
	0,
3191
	NULL,
3192
	"Constant condition in 'while' statement"
3193
    },
3194
    {
3195
	"stmt_do_cond",
3196
	NULL,
3197
	OPT_whatever,
3198
	0,
3199
#ifndef ERR_ALTERNATE
3200
	"6.5.2",
3201
#else
3202
	"6.6.5.2",
3203
#endif
3204
	"Condition of a 'do' statement is converted to a boolean"
3205
    },
3206
    {
3207
	"stmt_do_const",
3208
	NULL,
3209
	OPT_const_cond,
3210
	0,
3211
	NULL,
3212
	"Constant condition in 'do' statement"
3213
    },
3214
    {
3215
	"stmt_for_cond",
3216
	NULL,
3217
	OPT_whatever,
3218
	0,
3219
#ifndef ERR_ALTERNATE
3220
	"6.5.3",
3221
#else
3222
	"6.6.5.3",
3223
#endif
3224
	"Condition of a 'for' statement is converted to a boolean"
3225
    },
3226
    {
3227
	"stmt_for_const",
3228
	NULL,
3229
	OPT_const_cond,
3230
	0,
3231
	NULL,
3232
	"Constant condition in 'for' statement"
3233
    },
3234
    {
3235
	"stmt_for_init",
3236
	"7",
3237
	OPT_for_scope,
3238
	0,
3239
	NULL,
3240
	"Variable '%0' used outside its 'for' statement"
3241
    },
3242
    {
3243
	"stmt_break_bad",
3244
	NULL,
3245
	0,
3246
	0,
3247
#ifndef ERR_ALTERNATE
3248
	"6.6.1",
3249
#else
3250
	"6.6.6.3",
3251
#endif
3252
	"'break' should be inside an iteration or 'switch' statement"
3253
    },
3254
    {
3255
	"stmt_cont_bad",
3256
	NULL,
3257
	0,
3258
	0,
3259
#ifndef ERR_ALTERNATE
3260
	"6.6.2",
3261
#else
3262
	"6.6.6.2",
3263
#endif
3264
	"'continue' should be inside an iteration statement"
3265
    },
3266
    {
3267
	"stmt_return_void",
3268
	"7G",
3269
	OPT_func_ret_void,
3270
	0,
3271
#ifndef ERR_ALTERNATE
3272
	"6.6.3",
3273
#else
3274
	"6.6.6.4",
3275
#endif
3276
	"'return' with no value in function '%0' which returns '%1'"
3277
    },
3278
    {
3279
	"stmt_return_none",
3280
	"7G",
3281
	0,
3282
	0,
3283
	NULL,
3284
	"'return' with value in function '%0' which returns '%1'"
3285
    },
3286
    {
3287
	"stmt_return_bottom",
3288
	"7G",
3289
	0,
3290
	0,
3291
	NULL,
3292
	"Can't return from function '%0' which returns '%1'"
3293
    },
3294
    {
3295
	"stmt_return_conv",
3296
	NULL,
3297
	OPT_whatever,
3298
	0,
3299
	NULL,
3300
	"'return' value is converted to function return type"
3301
    },
3302
    {
3303
	"stmt_return_fall",
3304
	"7G",
3305
	OPT_func_ret_void,
3306
	0,
3307
	NULL,
3308
	"Fall out of function '%0' which returns '%1'"
3309
    },
3310
    {
3311
	"stmt_return_auto",
3312
	"98",
3313
	OPT_ptr_operator,
3314
	0,
3315
	NULL,
3316
	"Reference to local variable '%0' in '%1'"
3317
    },
3318
    {
3319
	"stmt_goto_undef",
3320
	"79",
3321
	0,
3322
	0,
3323
#ifndef ERR_ALTERNATE
3324
	"6.6.4",
3325
#else
3326
	"6.6.6.1",
3327
#endif
3328
	"Label '%0' used but not defined in function '%1'"
3329
    },
3330
    {
3331
	"stmt_goto_case",
3332
	"8",
3333
	0,
3334
	0,
3335
	NULL,
3336
	"Can't have 'goto %0'"
3337
    },
3338
    {
3339
	"stmt_dcl_start",
3340
	NULL,
3341
	OPT_c_error,
3342
	0,
3343
#ifndef ERR_ALTERNATE
3344
	"6.7",
3345
#else
3346
	"6.6.2",
3347
#endif
3348
	"Declaration statement should be at start of block"
3349
    },
3350
    {
3351
	"stmt_dcl_bypass_lab",
3352
	"77",
3353
#ifndef ERR_ALTERNATE
3354
	OPT_error,
3355
#else
3356
	OPT_variable,
3357
#endif
3358
	0,
3359
	NULL,
3360
	"Jump to label '%0' bypasses initialization of '%1'"
3361
    },
3362
    {
3363
	"stmt_dcl_bypass_case",
3364
	"B7",
3365
#ifndef ERR_ALTERNATE
3366
	OPT_error,
3367
#else
3368
	OPT_variable,
3369
#endif
3370
	0,
3371
	NULL,
3372
	"Jump to 'case %0' bypasses initialization of '%1'"
3373
    },
3374
    {
3375
	"stmt_dcl_bypass_default",
3376
	"7",
3377
#ifndef ERR_ALTERNATE
3378
	OPT_error,
3379
#else
3380
	OPT_variable,
3381
#endif
3382
	0,
3383
	NULL,
3384
	"Jump to 'default' bypasses initialization of '%0'"
3385
    },
3386
    {
3387
	"stmt_dcl_unused",
3388
	"9",
3389
	OPT_variable,
3390
	0,
3391
	NULL,
3392
	"Variable '%0' not used"
3393
    },
3394
    {
3395
	"stmt_dcl_unset",
3396
	"9",
3397
	OPT_variable,
3398
	0,
3399
	NULL,
3400
	"Variable '%0' may be used without being set"
3401
    },
3402
    {
3403
	"stmt_dcl_reset",
3404
	"9",
3405
	OPT_variable,
3406
	0,
3407
	NULL,
3408
	"Variable '%0' not used since previous assignment"
3409
    },
3410
    {
3411
	"dcl_dcl_none",
3412
	NULL,
3413
	OPT_decl_none,
3414
	0,
3415
#ifndef ERR_ALTERNATE
3416
	"7",
3417
#else
3418
	"6.7",
3419
#endif
3420
	"No declarations in translation unit"
3421
    },
3422
    {
3423
	"dcl_dcl_empty",
3424
	NULL,
3425
	OPT_decl_empty,
3426
	0,
3427
#ifndef ERR_ALTERNATE
3428
	"7",
3429
#else
3430
	"6.5",
3431
#endif
3432
	"Every declaration must introduce a name"
3433
    },
3434
    {
3435
	"dcl_dcl_semicolon",
3436
	NULL,
3437
	OPT_semicolon_extra,
3438
	0,
3439
	NULL,
3440
	"Can't have empty declaration"
3441
    },
3442
    {
3443
	"dcl_dcl_anon",
3444
	NULL,
3445
	OPT_decl_struct_anon,
3446
	0,
3447
	NULL,
3448
	"Every type definition must introduce a name"
3449
    },
3450
    {
3451
	"dcl_dcl_ds_empty",
3452
	NULL,
3453
	OPT_dspec_none,
3454
	0,
3455
	NULL,
3456
	"No declaration specifiers in declaration"
3457
    },
3458
    {
3459
	"dcl_dcl_ds_func",
3460
	NULL,
3461
	OPT_dspec_none_func,
3462
	0,
3463
	NULL,
3464
	"No declaration specifiers in function definition"
3465
    },
3466
    {
3467
	"dcl_spec_dup",
3468
	"4",
3469
	0,
3470
	0,
3471
#ifndef ERR_ALTERNATE
3472
	"7.1",
3473
#else
3474
	"6.5.1",
3475
#endif
3476
	"Duplicate declaration specifier, '%0 %0'"
3477
    },
3478
    {
3479
	"dcl_spec_order",
3480
	"4",
3481
	OPT_wall,
3482
	0,
3483
	NULL,
3484
	"Declaration specifier, '%0' after type specifier"
3485
    },
3486
    {
3487
	"dcl_stc_dup",
3488
	"44",
3489
	0,
3490
	0,
3491
#ifndef ERR_ALTERNATE
3492
	"7.1.1",
3493
#else
3494
	"6.5.1",
3495
#endif
3496
	"Multiple storage class specifiers '%0', assuming '%1'"
3497
    },
3498
    {
3499
	"dcl_stc_stat_block",
3500
	NULL,
3501
	OPT_func_block,
3502
	0,
3503
	NULL,
3504
	"Can't declare 'static' functions inside a block"
3505
    },
3506
    {
3507
	"dcl_stc_bad",
3508
	"4",
3509
	OPT_cpp_error,
3510
	0,
3511
#ifndef ERR_ALTERNATE
3512
	"7.1.1",
3513
#else
3514
	"6.7",
3515
#endif
3516
	"Storage class specifier '%0' must be applied to an object"
3517
    },
3518
    {
3519
	"dcl_stc_expl_spec",
3520
	"4",
3521
	0,
3522
	0,
3523
	NULL,
3524
	"Can't apply '%0' to an explicit specialization or instantiation"
3525
    },
3526
    {
3527
	"dcl_stc_auto_bad",
3528
	"4",
3529
	0,
3530
	0,
3531
	NULL,
3532
	"Can only apply '%0' to a function parameter or variable"
3533
    },
3534
    {
3535
	"dcl_stc_auto_func",
3536
	"4",
3537
	0,
3538
	0,
3539
	NULL,
3540
	"Can't apply '%0' to a function declaration"
3541
    },
3542
    {
3543
	"dcl_stc_ext_inline",
3544
	NULL,
3545
	OPT_none,
3546
	0,
3547
	NULL,
3548
	"Can't declare a function 'extern inline'"
3549
    },
3550
    {
3551
	"dcl_stc_ext_mem",
3552
	NULL,
3553
	0,
3554
	0,
3555
	NULL,
3556
	"Can't apply 'extern' to a class member"
3557
    },
3558
    {
3559
	"dcl_stc_mut_bad",
3560
	NULL,
3561
	0,
3562
	0,
3563
	NULL,
3564
	"Can only apply 'mutable' to a data member"
3565
    },
3566
    {
3567
	"dcl_stc_mut_const",
3568
	"9",
3569
	0,
3570
	0,
3571
	NULL,
3572
	"Can't apply 'mutable' to the 'const' member '%0'"
3573
    },
3574
    {
3575
	"dcl_stc_param",
3576
	"4",
3577
	0,
3578
	0,
3579
#ifndef ERR_ALTERNATE
3580
	"7.1.1",
3581
#else
3582
	"6.7.1",
3583
#endif
3584
	"Can't apply '%0' to a function parameter"
3585
    },
3586
    {
3587
	"dcl_stc_auto_par",
3588
	NULL,
3589
	OPT_c_error,
3590
	0,
3591
	NULL,
3592
	"Can't apply 'auto' to a function parameter"
3593
    },
3594
    {
3595
	"dcl_stc_internal",
3596
	"9D",
3597
	OPT_link_incompat,
3598
	0,
3599
#ifndef ERR_ALTERNATE
3600
	"7.1.1",
3601
#else
3602
	"6.1.2.2",
3603
#endif
3604
	"'%0' previously declared with internal linkage (at %1)"
3605
    },
3606
    {
3607
	"dcl_stc_external",
3608
	"9D",
3609
	OPT_link_resolve,
3610
	0,
3611
	NULL,
3612
	"'%0' previously declared with external linkage (at %1)"
3613
    },
3614
    {
3615
	"dcl_fct_spec_inline_bad",
3616
	NULL,
3617
	0,
3618
	0,
3619
#ifndef ERR_ALTERNATE
3620
	"7.1.2",
3621
#else
3622
	"6.5.1",
3623
#endif
3624
	"The specifier 'inline' can only applied to function declarations"
3625
    },
3626
    {
3627
	"dcl_fct_spec_block",
3628
	NULL,
3629
	0,
3630
	0,
3631
	NULL,
3632
	"Can't declare 'inline' functions inside a block"
3633
    },
3634
    {
3635
	"dcl_fct_spec_virtual",
3636
	NULL,
3637
	0,
3638
	0,
3639
	NULL,
3640
	"The specifier 'virtual' can only applied to function members"
3641
    },
3642
    {
3643
	"dcl_fct_spec_explicit",
3644
	NULL,
3645
	0,
3646
	0,
3647
	NULL,
3648
	"The specifier 'explicit' can only applied to function members"
3649
    },
3650
    {
3651
	"dcl_fct_spec_expl_constr",
3652
	NULL,
3653
	0,
3654
	0,
3655
	NULL,
3656
	"Can only apply 'explicit' to a constructor"
3657
    },
3658
    {
3659
	"dcl_fct_spec_expl_conv",
3660
	NULL,
3661
	0,
3662
	0,
3663
	NULL,
3664
	"Can't apply 'explicit' to a conversion function"
3665
    },
3666
    {
3667
	"dcl_fct_spec_inline_call",
3668
	"9",
3669
	OPT_none,
3670
	0,
3671
	NULL,
3672
	"The inline function '%0' has been called before it is defined"
3673
    },
3674
    {
3675
	"dcl_typedef_func",
3676
	NULL,
3677
	0,
3678
	0,
3679
#ifndef ERR_ALTERNATE
3680
	"7.1.3",
3681
#else
3682
	"6.5.1",
3683
#endif
3684
	"Can't apply 'typedef' to a function definition"
3685
    },
3686
    {
3687
	"dcl_typedef_par",
3688
	NULL,
3689
	0,
3690
	0,
3691
	NULL,
3692
	"Can't apply 'typedef' to a function parameter"
3693
    },
3694
    {
3695
	"dcl_typedef_dspec",
3696
	"4",
3697
	0,
3698
	0,
3699
	NULL,
3700
	"Can't use declaration specifier(s) '%0' with 'typedef'"
3701
    },
3702
    {
3703
	"dcl_typedef_dcl",
3704
	NULL,
3705
	OPT_none,
3706
	0,
3707
	NULL,
3708
	"The 'typedef' specifier must define a type"
3709
    },
3710
    {
3711
	"dcl_typedef_constr",
3712
	"76",
3713
	0,
3714
	0,
3715
	NULL,
3716
	"Can't use 'typedef' name '%0' in constructor '%1'"
3717
    },
3718
    {
3719
	"dcl_typedef_destr",
3720
	"76",
3721
	0,
3722
	0,
3723
	NULL,
3724
	"Can't use 'typedef' name '%0' in destructor '%1'"
3725
    },
3726
    {
3727
	"dcl_friend_class",
3728
	NULL,
3729
	0,
3730
	0,
3731
#ifndef ERR_ALTERNATE
3732
	"7.1.4",
3733
#else
3734
	"????",
3735
#endif
3736
	"The specifier 'friend' can only be used in a class definition"
3737
    },
3738
    {
3739
	"dcl_type_infer",
3740
	"G",
3741
	OPT_whatever,
3742
	0,
3743
#ifndef ERR_ALTERNATE
3744
	"7.1.5",
3745
#else
3746
	"6.5.2",
3747
#endif
3748
	"Type '%0' inferred"
3749
    },
3750
    {
3751
	"dcl_type_none",
3752
	NULL,
3753
	OPT_infer_int,
3754
	0,
3755
	NULL,
3756
	"No type specifier given in declaration"
3757
    },
3758
    {
3759
	"dcl_type_qual",
3760
	NULL,
3761
	OPT_infer_int_cv,
3762
	0,
3763
	NULL,
3764
	"Only type qualifiers given in type specifier"
3765
    },
3766
    {
3767
	"dcl_type_cv_dup",
3768
	"3",
3769
	0,
3770
	0,
3771
#ifndef ERR_ALTERNATE
3772
	"7.1.5",
3773
#else
3774
	"6.5.3",
3775
#endif
3776
	"Duplicate type qualifier, '%0 %0'"
3777
    },
3778
    {
3779
	"dcl_type_type_cv",
3780
	"93",
3781
#ifndef ERR_ALTERNATE
3782
	OPT_wall,
3783
#else
3784
	OPT_error,
3785
#endif
3786
	0,
3787
	NULL,
3788
	"Type '%0' is already '%1' qualified"
3789
    },
3790
    {
3791
	"dcl_type_cv_unused",
3792
	"3",
3793
	OPT_cpp_error,
3794
	0,
3795
#ifndef ERR_ALTERNATE
3796
	"7.1.5.1",
3797
#else
3798
	"6.5.3",
3799
#endif
3800
	"Type specifier(s) '%0' not used"
3801
    },
3802
    {
3803
	"dcl_type_simple_dup",
3804
	"1",
3805
	0,
3806
	0,
3807
#ifndef ERR_ALTERNATE
3808
	"7.1.5.2",
3809
#else
3810
	"6.5.2",
3811
#endif
3812
	"Duplicate type specifier, '%0 %0'"
3813
    },
3814
    {
3815
	"dcl_type_simple_bad",
3816
	"11",
3817
	0,
3818
	0,
3819
	NULL,
3820
	"Illegal type specifier, '%0', assuming '%1'"
3821
    },
3822
    {
3823
	"dcl_type_simple_llong",
3824
	"1",
3825
	OPT_longlong,
3826
	0,
3827
	NULL,
3828
	"Type specifier '%0' used"
3829
    },
3830
    {
3831
	"dcl_type_simple_many",
3832
	"GG",
3833
	0,
3834
	0,
3835
	NULL,
3836
	"Duplicate type names, '%0' and '%1'"
3837
    },
3838
    {
3839
	"dcl_type_simple_undecl",
3840
	"1G",
3841
	0,
3842
	0,
3843
	NULL,
3844
	"Can't use type specifiers '%0' with '%1'"
3845
    },
3846
    {
3847
	"dcl_type_simple_undef",
3848
	"7",
3849
	0,
3850
	0,
3851
	NULL,
3852
	"The type '%0' hasn't been declared"
3853
    },
3854
    {
3855
	"dcl_type_elab_bad",
3856
	"117D",
3857
	OPT_type_tag_ignore,
3858
	0,
3859
#ifndef ERR_ALTERNATE
3860
	"7.1.5.3",
3861
#else
3862
	"6.5.2.3",
3863
#endif
3864
	"Inconsistent key '%0' used for '%1 %2' (see %3)"
3865
    },
3866
    {
3867
	"dcl_type_elab_qual",
3868
	"1",
3869
	0,
3870
	0,
3871
	NULL,
3872
	"A type declaration should have the form '%0 identifier'"
3873
    },
3874
    {
3875
	"dcl_enum_none",
3876
	NULL,
3877
	OPT_c_error,
3878
	0,
3879
#ifndef ERR_ALTERNATE
3880
	"7.2",
3881
#else
3882
	"6.5.2.2",
3883
#endif
3884
	"No enumerators in enumeration type"
3885
    },
3886
    {
3887
	"dcl_enum_const",
3888
	"9",
3889
	0,
3890
	0,
3891
	NULL,
3892
	"Value for enumerator '%0' should be an integer constant expression"
3893
    },
3894
    {
3895
	"dcl_enum_zero",
3896
	"G",
3897
	OPT_wall,
3898
	0,
3899
	NULL,
3900
	"Zero is not a valid enumerator value for '%0'"
3901
    },
3902
    {
3903
	"dcl_nspace_scope",
3904
	NULL,
3905
	0,
3906
	0,
3907
#ifndef ERR_ALTERNATE
3908
	"7.3",
3909
#else
3910
	"????",
3911
#endif
3912
	"A namespace can only be defined in namespace scope"
3913
    },
3914
    {
3915
	"dcl_nspace_undef",
3916
	"7",
3917
	0,
3918
	0,
3919
	NULL,
3920
	"The namespace '%0' hasn't been defined"
3921
    },
3922
    {
3923
	"dcl_nspace_def_orig",
3924
	"77",
3925
	0,
3926
	0,
3927
#ifndef ERR_ALTERNATE
3928
	"7.3.1",
3929
#else
3930
	"????",
3931
#endif
3932
	"Namespace extension should use original name, '%0', not the alias '%1'"
3933
    },
3934
    {
3935
	"dcl_nspace_unnamed_static",
3936
	NULL,
3937
	OPT_none,
3938
	0,
3939
#ifndef ERR_ALTERNATE
3940
	"7.3.1.1",
3941
#else
3942
	"????",
3943
#endif
3944
	"Use of 'static' in namespace scope is deprecated"
3945
    },
3946
    {
3947
	"dcl_nspace_memdef_scope",
3948
	"9",
3949
	0,
3950
	0,
3951
#ifndef ERR_ALTERNATE
3952
	"7.3.1.2",
3953
#else
3954
	"6.5.7",
3955
#endif
3956
	"'%0' can only be defined in an enclosing namespace scope"
3957
    },
3958
    {
3959
	"dcl_nspace_alias_class",
3960
	"A",
3961
	0,
3962
	0,
3963
#ifndef ERR_ALTERNATE
3964
	"7.3.2",
3965
#else
3966
	"????",
3967
#endif
3968
	"Namespace alias can't refer to the class '%0'"
3969
    },
3970
    {
3971
	"dcl_nspace_alias_bad",
3972
	"7D",
3973
	0,
3974
	0,
3975
	NULL,
3976
	"Namespace alias '%0' has already been defined as an original namespace name (at %1)"
3977
    },
3978
    {
3979
	"dcl_nspace_alias_redef",
3980
	"7D",
3981
	0,
3982
	0,
3983
	NULL,
3984
	"Namespace '%0' redefined inconsistently (see %1)"
3985
    },
3986
    {
3987
	"dcl_nspace_udecl_unqual",
3988
	NULL,
3989
	0,
3990
	0,
3991
#ifndef ERR_ALTERNATE
3992
	"7.3.3",
3993
#else
3994
	"????",
3995
#endif
3996
	"The identifier in a 'using' declaration must be qualified"
3997
    },
3998
    {
3999
	"dcl_nspace_udecl_mem",
4000
	"7",
4001
	0,
4002
	0,
4003
	NULL,
4004
	"Can't use '%0' in its own scope"
4005
    },
4006
    {
4007
	"dcl_nspace_udecl_base",
4008
	"72",
4009
	0,
4010
	0,
4011
	NULL,
4012
	"Used identifier '%0' is not a member of a base class of '%1'"
4013
    },
4014
    {
4015
	"dcl_nspace_udecl_vis",
4016
	"72",
4017
	0,
4018
	0,
4019
	NULL,
4020
	"Used identifier '%0' is not visible in '%1'"
4021
    },
4022
    {
4023
	"dcl_nspace_udecl_id",
4024
	"7",
4025
	0,
4026
	0,
4027
	NULL,
4028
	"'%0' can only be used in a derived class"
4029
    },
4030
    {
4031
	"dcl_nspace_udecl_constr",
4032
	"7",
4033
	0,
4034
	0,
4035
	NULL,
4036
	"Can't use the member '%0'"
4037
    },
4038
    {
4039
	"dcl_nspace_udecl_acc",
4040
	"7D",
4041
	OPT_wall,
4042
	0,
4043
	NULL,
4044
	"Declaration reduces access to '%0' (see %1)"
4045
    },
4046
    {
4047
	"dcl_nspace_udecl_multi",
4048
	"7D",
4049
	0,
4050
	0,
4051
	NULL,
4052
	"Invalid redeclaration of '%0' (see %1)"
4053
    },
4054
    {
4055
	"dcl_nspace_udecl_redecl",
4056
	"7D",
4057
	0,
4058
	0,
4059
	NULL,
4060
	"Can't redeclare '%0' (see %1)"
4061
    },
4062
    {
4063
	"dcl_nspace_udir_class",
4064
	"A",
4065
	0,
4066
	0,
4067
#ifndef ERR_ALTERNATE
4068
	"7.3.4",
4069
#else
4070
	"????",
4071
#endif
4072
	"Can't use the class namespace '%0'"
4073
    },
4074
    {
4075
	"dcl_nspace_udir_dup",
4076
	"A",
4077
	OPT_none,
4078
	0,
4079
	NULL,
4080
	"Namespace '%0' already used in this scope"
4081
    },
4082
    {
4083
	"dcl_asm_ti",
4084
	NULL,
4085
	OPT_wall,
4086
	0,
4087
#ifndef ERR_ALTERNATE
4088
	"7.4",
4089
#else
4090
	"Annex G",
4091
#endif
4092
	"'asm' declarations are not portable"
4093
    },
4094
    {
4095
	"dcl_asm_args",
4096
	NULL,
4097
	0,
4098
	0,
4099
	NULL,
4100
	"Can't have arguments with 'asm'"
4101
    },
4102
    {
4103
	"dcl_link_unknown",
4104
	"F",
4105
	0,
4106
	0,
4107
#ifndef ERR_ALTERNATE
4108
	"7.5",
4109
#else
4110
	"????",
4111
#endif
4112
	"Unknown linkage specifier, %0"
4113
    },
4114
    {
4115
	"dcl_link_scope",
4116
	NULL,
4117
	0,
4118
	0,
4119
	NULL,
4120
	"Linkage specifications can only occur in namespace scope"
4121
    },
4122
    {
4123
	"dcl_link_lang",
4124
	"9JD",
4125
	OPT_link_incompat,
4126
	0,
4127
	NULL,
4128
	"'%0' previously declared with %1 linkage (at %2)"
4129
    },
4130
    {
4131
	"dcl_link_func",
4132
	"J",
4133
	OPT_func_linkage,
4134
	0,
4135
	NULL,
4136
	"Function type previously declared with %0 linkage"
4137
    },
4138
    {
4139
	"dcl_link_conv",
4140
	NULL,
4141
	OPT_func_linkage,
4142
	0,
4143
	NULL,
4144
	"Differing function linkage specifications in conversion"
4145
    },
4146
    {
4147
	"dcl_link_over",
4148
	NULL,
4149
	OPT_whatever,
4150
	0,
4151
	NULL,
4152
	"Only one function in a set of overloaded functions can have C linkage"
4153
    },
4154
    {
4155
	"dcl_link_redecl",
4156
	"6D",
4157
#ifndef ERR_ALTERNATE
4158
	OPT_whatever,
4159
#else
4160
	OPT_none,
4161
#endif
4162
	0,
4163
	NULL,
4164
	"Two objects with C linkage named '%0' are the same"
4165
    },
4166
    {
4167
	"dcl_meaning_id",
4168
	"E7",
4169
	0,
4170
	0,
4171
#ifndef ERR_ALTERNATE
4172
	"8.3",
4173
#else
4174
	"6.5.4",
4175
#endif
4176
	"The identifier '%0%1' can't be used in this context"
4177
    },
4178
    {
4179
	"dcl_meaning_full",
4180
	"E7",
4181
	OPT_none,
4182
	0,
4183
	NULL,
4184
	"The fully qualified identifier '%0%1' can't be used in this context"
4185
    },
4186
    {
4187
	"dcl_meaning_mem",
4188
	"E7",
4189
	0,
4190
	0,
4191
	NULL,
4192
	"Illegally qualified member declaration '%0%1'"
4193
    },
4194
    {
4195
	"dcl_meaning_paren",
4196
	NULL,
4197
	OPT_wall,
4198
	0,
4199
	NULL,
4200
	"Redundant parentheses in declarator"
4201
    },
4202
    {
4203
	"dcl_ref_cv",
4204
	"3",
4205
	0,
4206
	0,
4207
#ifndef ERR_ALTERNATE
4208
	"8.3.2",
4209
#else
4210
	"????",
4211
#endif
4212
	"Can't have '%0' qualified references"
4213
    },
4214
    {
4215
	"dcl_ref_cv_type",
4216
	"39",
4217
	OPT_wall,
4218
	0,
4219
	NULL,
4220
	"'%0' qualifier for reference type '%1'"
4221
    },
4222
    {
4223
	"dcl_ref_void",
4224
	"G",
4225
	0,
4226
	0,
4227
	NULL,
4228
	"Can't have references to '%0'"
4229
    },
4230
    {
4231
	"dcl_ref_ref",
4232
	NULL,
4233
	0,
4234
	0,
4235
	NULL,
4236
	"Can't have references to references"
4237
    },
4238
    {
4239
	"dcl_ref_ptr",
4240
	NULL,
4241
	0,
4242
	0,
4243
	NULL,
4244
	"Can't have pointers to references"
4245
    },
4246
    {
4247
	"dcl_ref_array",
4248
	NULL,
4249
	0,
4250
	0,
4251
	NULL,
4252
	"Can't have arrays of references"
4253
    },
4254
    {
4255
	"dcl_mptr_type",
4256
	"7",
4257
	0,
4258
	0,
4259
#ifndef ERR_ALTERNATE
4260
	"8.3.3",
4261
#else
4262
	"????",
4263
#endif
4264
	"Class name required in pointer to member, not '%0'"
4265
    },
4266
    {
4267
	"dcl_mptr_class",
4268
	"G",
4269
	0,
4270
	0,
4271
	NULL,
4272
	"Class type required in pointer to member, not '%0'"
4273
    },
4274
    {
4275
	"dcl_mptr_void",
4276
	"G",
4277
	0,
4278
	0,
4279
	NULL,
4280
	"Can't have pointers to '%0' members"
4281
    },
4282
    {
4283
	"dcl_mptr_ref",
4284
	NULL,
4285
	0,
4286
	0,
4287
	NULL,
4288
	"Can't have pointers to reference members"
4289
    },
4290
    {
4291
	"dcl_array_void",
4292
	"G",
4293
	0,
4294
	0,
4295
#ifndef ERR_ALTERNATE
4296
	"8.3.4",
4297
#else
4298
	"6.1.2.5",
4299
#endif
4300
	"Can't have arrays of '%0'"
4301
    },
4302
    {
4303
	"dcl_array_incompl",
4304
	NULL,
4305
	OPT_type_obj_incompl,
4306
	0,
4307
	NULL,
4308
	"Can't have arrays of incomplete types"
4309
    },
4310
    {
4311
	"dcl_array_abstract",
4312
	NULL,
4313
	0,
4314
	0,
4315
	NULL,
4316
	"Can't have arrays of abstract types"
4317
    },
4318
    {
4319
	"dcl_array_array",
4320
	NULL,
4321
	0,
4322
	0,
4323
	NULL,
4324
	"Can't have arrays of incomplete arrays"
4325
    },
4326
    {
4327
	"dcl_array_bitf",
4328
	NULL,
4329
	0,
4330
	0,
4331
	NULL,
4332
	"Can't have arrays of bitfields"
4333
    },
4334
    {
4335
	"dcl_array_func",
4336
	NULL,
4337
	0,
4338
	0,
4339
	NULL,
4340
	"Can't have arrays of functions"
4341
    },
4342
    {
4343
	"dcl_array_dim_const",
4344
	NULL,
4345
	0,
4346
	0,
4347
#ifndef ERR_ALTERNATE
4348
	"8.3.4",
4349
#else
4350
	"6.5.4.2",
4351
#endif
4352
	"Array bound should be an integer constant expression"
4353
    },
4354
    {
4355
	"dcl_array_dim_zero",
4356
	NULL,
4357
	0,
4358
	0,
4359
	NULL,
4360
	"Array bound can't be zero"
4361
    },
4362
    {
4363
	"dcl_array_dim_neg",
4364
	"B",
4365
	0,
4366
	0,
4367
	NULL,
4368
	"Array bound should be greater than zero, not %0"
4369
    },
4370
    {
4371
	"dcl_fct_par_void",
4372
	"7G",
4373
	0,
4374
	0,
4375
#ifndef ERR_ALTERNATE
4376
	"8.3.5",
4377
#else
4378
	"6.5.4.3",
4379
#endif
4380
	"Parameter '%0' declared to have type '%1'"
4381
    },
4382
    {
4383
	"dcl_fct_par_array",
4384
	"7G",
4385
	OPT_cpp_error,
4386
	0,
4387
	NULL,
4388
	"Parameter '%0' declared to have incomplete array type '%1'"
4389
    },
4390
    {
4391
	"dcl_fct_par_weak",
4392
	NULL,
4393
	0,
4394
	0,
4395
	NULL,
4396
	"Parameter required in weak function prototype"
4397
    },
4398
    {
4399
	"dcl_fct_par_empty",
4400
	NULL,
4401
	0,
4402
	0,
4403
	NULL,
4404
	"Precisely '( void )' required in empty parameter list"
4405
    },
4406
    {
4407
	"dcl_fct_par_ellipsis",
4408
	NULL,
4409
#ifndef ERR_ALTERNATE
4410
	OPT_none,
4411
#else
4412
	OPT_ellipsis_ident,
4413
#endif
4414
	0,
4415
	NULL,
4416
	"Need at least one parameter before '...'"
4417
    },
4418
    {
4419
	"dcl_fct_weak",
4420
	NULL,
4421
	0,
4422
	0,
4423
	NULL,
4424
	"Can only have parameter list in function definition"
4425
    },
4426
    {
4427
	"dcl_fct_proto",
4428
	NULL,
4429
	OPT_func_proto,
4430
	0,
4431
	NULL,
4432
	"Function prototype used"
4433
    },
4434
    {
4435
	"dcl_fct_nonproto",
4436
	NULL,
4437
	OPT_func_weak,
4438
	0,
4439
	NULL,
4440
	"Non-prototype function used"
4441
    },
4442
    {
4443
	"dcl_fct_array",
4444
	NULL,
4445
	0,
4446
	0,
4447
	NULL,
4448
	"Can't have functions returning arrays"
4449
    },
4450
    {
4451
	"dcl_fct_bitf",
4452
	NULL,
4453
	0,
4454
	0,
4455
	NULL,
4456
	"Can't have functions returning bitfields"
4457
    },
4458
    {
4459
	"dcl_fct_func",
4460
	NULL,
4461
	0,
4462
	0,
4463
	NULL,
4464
	"Can't have functions returning functions"
4465
    },
4466
    {
4467
	"dcl_fct_typedef_par",
4468
	NULL,
4469
	OPT_cpp_error,
4470
	0,
4471
	NULL,
4472
	"Can't define a type in a function parameter"
4473
    },
4474
    {
4475
	"dcl_fct_typedef_ret",
4476
	NULL,
4477
	OPT_cpp_error,
4478
	0,
4479
	NULL,
4480
	"Can't define a type in a function return"
4481
    },
4482
    {
4483
	"dcl_fct_cv_ret",
4484
	"3",
4485
	OPT_none,
4486
	0,
4487
	NULL,
4488
	"A function can't return a '%0' qualified type"
4489
    },
4490
    {
4491
	"dcl_fct_cv",
4492
	"3",
4493
	0,
4494
	0,
4495
	NULL,
4496
	"Invalid use of '%0' qualified function"
4497
    },
4498
    {
4499
	"dcl_fct_cv_decl",
4500
	"3",
4501
	0,
4502
	0,
4503
	NULL,
4504
	"Only non-static member functions can be '%0' qualified"
4505
    },
4506
    {
4507
	"dcl_fct_compat_ellipsis",
4508
	NULL,
4509
	OPT_ellipsis_extra,
4510
	0,
4511
	NULL,
4512
	"Compatible function types should agree on use of ellipsis"
4513
    },
4514
    {
4515
	"dcl_fct_compat_prom",
4516
	"G",
4517
	OPT_func_incompat,
4518
	0,
4519
	NULL,
4520
	"The type '%0' is not compatible with its argument promotion type"
4521
    },
4522
    {
4523
	"dcl_fct_qual",
4524
	"39",
4525
	0,
4526
	0,
4527
#ifndef ERR_ALTERNATE
4528
	"8.3.5",
4529
#else
4530
	"6.5.3",
4531
#endif
4532
	"'%0' qualifier for function type '%1'"
4533
    },
4534
    {
4535
	"dcl_fct_ret",
4536
	NULL,
4537
	0,
4538
	0,
4539
#ifndef ERR_ALTERNATE
4540
	"8.3.5",
4541
#else
4542
	"6.7.1",
4543
#endif
4544
	"Function return type should be a complete object type or 'void'"
4545
    },
4546
    {
4547
	"dcl_fct_ret_void",
4548
	"G",
4549
	0,
4550
	0,
4551
	NULL,
4552
	"Function return type can't be '%0'"
4553
    },
4554
    {
4555
	"dcl_fct_typedef",
4556
	NULL,
4557
	0,
4558
	0,
4559
	NULL,
4560
	"Can't define a function using a 'typedef' function type"
4561
    },
4562
    {
4563
	"dcl_fct_par_proto",
4564
	NULL,
4565
	0,
4566
	0,
4567
	NULL,
4568
	"Can't have parameter list with prototype"
4569
    },
4570
    {
4571
	"dcl_fct_par_anon",
4572
	NULL,
4573
	OPT_c_error,
4574
	0,
4575
	NULL,
4576
	"Must have parameter name in function definition"
4577
    },
4578
    {
4579
	"dcl_fct_par_undecl",
4580
	"6",
4581
	0,
4582
	0,
4583
	NULL,
4584
	"Parameter '%0' doesn't appear in parameter list"
4585
    },
4586
    {
4587
	"dcl_fct_par_typedef",
4588
	"7",
4589
	0,
4590
	0,
4591
	NULL,
4592
	"Can't use type name '%0' in parameter list"
4593
    },
4594
    {
4595
	"dcl_fct_par_none",
4596
	NULL,
4597
	0,
4598
	0,
4599
	NULL,
4600
	"Parameter declaration should contain a declarator"
4601
    },
4602
    {
4603
	"dcl_fct_par_impl",
4604
	"7",
4605
	OPT_param_impl,
4606
	0,
4607
	NULL,
4608
	"Implicit declaration of parameter '%0'"
4609
    },
4610
    {
4611
	"dcl_fct_par_order",
4612
	NULL,
4613
	OPT_wall,
4614
	0,
4615
	NULL,
4616
	"Function parameters declared out of sequence"
4617
    },
4618
    {
4619
	"dcl_fct_default_bad",
4620
	NULL,
4621
	0,
4622
	0,
4623
#ifndef ERR_ALTERNATE
4624
	"8.3.6",
4625
#else
4626
	"6.7.1",
4627
#endif
4628
	"Can only have default arguments in a function declaration"
4629
    },
4630
    {
4631
	"dcl_fct_default_missing",
4632
	"7",
4633
	0,
4634
	0,
4635
	NULL,
4636
	"Parameter '%0' should have a default argument"
4637
    },
4638
    {
4639
	"dcl_fct_default_dup",
4640
	"7D",
4641
	0,
4642
	0,
4643
	NULL,
4644
	"Duplicate default argument for parameter '%0' (see %1)"
4645
    },
4646
    {
4647
	"dcl_fct_default_redef",
4648
	"7D",
4649
	0,
4650
	0,
4651
	NULL,
4652
	"Default argument for parameter '%0' redefined inconsistently (see %1)"
4653
    },
4654
    {
4655
	"dcl_fct_default_templ",
4656
	NULL,
4657
	0,
4658
	0,
4659
	NULL,
4660
	"Can't add default arguments to template functions"
4661
    },
4662
    {
4663
	"dcl_fct_default_param",
4664
	"7",
4665
	0,
4666
	0,
4667
	NULL,
4668
	"'%0' can't be used in a default argument"
4669
    },
4670
    {
4671
	"dcl_fct_default_weak",
4672
	"7",
4673
	OPT_c_error,
4674
	0,
4675
	NULL,
4676
	"Can't initialize the parameter '%0'"
4677
    },
4678
    {
4679
	"dcl_fct_def_scope",
4680
	NULL,
4681
	0,
4682
	0,
4683
#ifndef ERR_ALTERNATE
4684
	"8.4",
4685
#else
4686
	"6.7.1",
4687
#endif
4688
	"A function can only be defined in namespace or class scope"
4689
    },
4690
    {
4691
	"dcl_fct_def_comment",
4692
	"9",
4693
	OPT_whatever,
4694
	0,
4695
	NULL,
4696
	"In definition of function '%0'"
4697
    },
4698
    {
4699
	"dcl_init_decl",
4700
	"7J",
4701
	OPT_whatever,
4702
	0,
4703
#ifndef ERR_ALTERNATE
4704
	"8.5",
4705
#else
4706
	"6.5.7",
4707
#endif
4708
	"In initialization of '%0%1'"
4709
    },
4710
    {
4711
	"dcl_init_typedef",
4712
	"7",
4713
	0,
4714
	0,
4715
	NULL,
4716
	"Can't initialize the type '%0'"
4717
    },
4718
    {
4719
	"dcl_init_incompl",
4720
	NULL,
4721
	0,
4722
	0,
4723
	NULL,
4724
	"Can't initialize objects of incomplete type"
4725
    },
4726
    {
4727
	"dcl_init_func",
4728
	"9",
4729
	0,
4730
	0,
4731
	NULL,
4732
	"Can't initialize the function '%0'"
4733
    },
4734
    {
4735
	"dcl_init_bad",
4736
	NULL,
4737
	0,
4738
	0,
4739
	NULL,
4740
	"Badly placed function style initializer"
4741
    },
4742
    {
4743
	"dcl_init_const",
4744
	NULL,
4745
	OPT_cpp_error,
4746
	0,
4747
	NULL,
4748
	"'const' objects should be initialized"
4749
    },
4750
    {
4751
	"dcl_init_ctor",
4752
	"G",
4753
	0,
4754
	0,
4755
	NULL,
4756
	"A constructor-style initializer with more than one argument requires a class type, not '%0'"
4757
    },
4758
    {
4759
	"dcl_init_conv",
4760
	NULL,
4761
	OPT_whatever,
4762
	0,
4763
	NULL,
4764
	"Can't perform this conversion by initialization"
4765
    },
4766
    {
4767
	"dcl_init_assign",
4768
	NULL,
4769
	OPT_whatever,
4770
	0,
4771
	NULL,
4772
	"Initializers are converted as if by assignment"
4773
    },
4774
    {
4775
	"dcl_init_dynamic",
4776
	NULL,
4777
	OPT_init_dynamic,
4778
	0,
4779
	NULL,
4780
	"Object initializer should be a constant expression"
4781
    },
4782
    {
4783
	"dcl_init_aggr_array_bad",
4784
	NULL,
4785
	0,
4786
	0,
4787
#ifndef ERR_ALTERNATE
4788
	"8.5.1",
4789
#else
4790
	"6.5.7",
4791
#endif
4792
	"Bad array initializer"
4793
    },
4794
    {
4795
	"dcl_init_aggr_dynamic",
4796
	NULL,
4797
	OPT_init_dynamic,
4798
	0,
4799
	NULL,
4800
	"Expression in aggregate initializer should be constant"
4801
    },
4802
    {
4803
	"dcl_init_aggr_array_ti",
4804
	"BG",
4805
	OPT_init_aggregate,
4806
	0,
4807
	NULL,
4808
	"Target dependent initialization, '%0' elements for array of type '%1'"
4809
    },
4810
    {
4811
	"dcl_init_aggr_excess",
4812
	"G",
4813
	0,
4814
	0,
4815
	NULL,
4816
	"Too many elements in initializer for type '%0'"
4817
    },
4818
    {
4819
	"dcl_init_aggr_pad",
4820
	"BG",
4821
	OPT_init_aggregate,
4822
	0,
4823
	NULL,
4824
	"'%0' too few elements in initializer for type '%1'"
4825
    },
4826
    {
4827
	"dcl_init_aggr_type",
4828
	"G",
4829
	0,
4830
	0,
4831
	NULL,
4832
	"Can't initialize objects of type '%0' using aggregate initializers"
4833
    },
4834
    {
4835
	"dcl_init_aggr_empty",
4836
	NULL,
4837
	OPT_c_error,
4838
	0,
4839
	NULL,
4840
	"Empty aggregate initializer"
4841
    },
4842
    {
4843
	"dcl_init_aggr_no_scalar",
4844
	NULL,
4845
	0,
4846
	0,
4847
	NULL,
4848
	"Scalar aggregate initializers can't be empty"
4849
    },
4850
    {
4851
	"dcl_init_aggr_nest",
4852
	NULL,
4853
	0,
4854
	0,
4855
	NULL,
4856
	"Scalar aggregate initializers can't be nested"
4857
    },
4858
    {
4859
	"dcl_init_aggr_partial",
4860
	NULL,
4861
	OPT_init_aggregate,
4862
	0,
4863
	NULL,
4864
	"Partially bracketed aggregate initializer"
4865
    },
4866
    {
4867
	"dcl_init_aggr_auto",
4868
	"7",
4869
	OPT_init_struct,
4870
	0,
4871
	NULL,
4872
	"Initializer for local aggregate variable '%0'"
4873
    },
4874
    {
4875
	"dcl_init_string_char",
4876
	NULL,
4877
	0,
4878
	0,
4879
#ifndef ERR_ALTERNATE
4880
	"8.5.2",
4881
#else
4882
	"6.5.7",
4883
#endif
4884
	"Can only initialize character arrays with string literals"
4885
    },
4886
    {
4887
	"dcl_init_string_wchar",
4888
	NULL,
4889
	0,
4890
	0,
4891
	NULL,
4892
	"Can only initialize wide character arrays with wide string literals"
4893
    },
4894
    {
4895
	"dcl_init_string_excess",
4896
	"G",
4897
	0,
4898
	0,
4899
	NULL,
4900
	"Initializer string too long for type '%0'"
4901
    },
4902
    {
4903
	"dcl_init_string_zero",
4904
	"G",
4905
	OPT_cpp_error,
4906
	0,
4907
	NULL,
4908
	"Initializer string (including terminal zero) too long for type '%0'"
4909
    },
4910
    {
4911
	"dcl_init_ref_none",
4912
	NULL,
4913
	0,
4914
	0,
4915
#ifndef ERR_ALTERNATE
4916
	"8.5.3",
4917
#else
4918
	"6.5.7",
4919
#endif
4920
	"References should be initialized"
4921
    },
4922
    {
4923
	"dcl_init_ref_ambig",
4924
	NULL,
4925
	0,
4926
	0,
4927
	NULL,
4928
	"Base class in reference binding must be unambiguous"
4929
    },
4930
    {
4931
	"dcl_init_ref_const",
4932
	NULL,
4933
	0,
4934
	0,
4935
	NULL,
4936
	"A non-'const' reference can't be initialized using an rvalue"
4937
    },
4938
    {
4939
	"dcl_init_ref_qual",
4940
	"3",
4941
	0,
4942
	0,
4943
	NULL,
4944
	"Reference binding from more '%0' qualified type"
4945
    },
4946
    {
4947
	"dcl_init_ref_func",
4948
	NULL,
4949
	0,
4950
	0,
4951
	NULL,
4952
	"A reference to function can only be initialized by a function"
4953
    },
4954
    {
4955
	"dcl_init_ref_tmp",
4956
	"G",
4957
	OPT_wall,
4958
	0,
4959
	NULL,
4960
	"Introducing temporary variable of type '%0'"
4961
    },
4962
    {
4963
	"class_none",
4964
	NULL,
4965
	OPT_c_error,
4966
	0,
4967
#ifndef ERR_ALTERNATE
4968
	"9",
4969
#else
4970
	"6.5.2.1",
4971
#endif
4972
	"No members in class definition"
4973
    },
4974
    {
4975
	"class_mem_empty",
4976
	NULL,
4977
	OPT_decl_empty,
4978
	0,
4979
#ifndef ERR_ALTERNATE
4980
	"9.2",
4981
#else
4982
	"6.5.2.1",
4983
#endif
4984
	"Every member declaration must introduce a name"
4985
    },
4986
    {
4987
	"class_mem_declarator",
4988
	NULL,
4989
	OPT_c_error,
4990
	0,
4991
	NULL,
4992
	"A member declaration should contain a declarator"
4993
    },
4994
    {
4995
	"class_mem_semicolon",
4996
	NULL,
4997
	OPT_semicolon_extra,
4998
	0,
4999
	NULL,
5000
	"Can't have empty member declaration"
5001
    },
5002
    {
5003
	"class_mem_anon",
5004
	NULL,
5005
	OPT_decl_struct_anon,
5006
	0,
5007
	NULL,
5008
	"Every type definition must introduce a member name"
5009
    },
5010
    {
5011
	"class_mem_ds_empty",
5012
	NULL,
5013
	OPT_dspec_none,
5014
	0,
5015
	NULL,
5016
	"No declaration specifiers in member declaration"
5017
    },
5018
    {
5019
	"class_mem_redecl",
5020
	"7D",
5021
	0,
5022
	0,
5023
	NULL,
5024
	"The member '%0' has already been declared (at %1)"
5025
    },
5026
    {
5027
	"class_mem_incompl_mem",
5028
	"7",
5029
	0,
5030
	0,
5031
	NULL,
5032
	"The member '%0' must have complete object type"
5033
    },
5034
    {
5035
	"class_mem_init_mem",
5036
	"9",
5037
	0,
5038
	0,
5039
	NULL,
5040
	"Can't have initializer with non-static member '%0'"
5041
    },
5042
    {
5043
	"class_mem_def",
5044
	"9",
5045
	0,
5046
	0,
5047
	NULL,
5048
	"Can't define the non-static member '%0'"
5049
    },
5050
    {
5051
	"class_mem_init_const",
5052
	NULL,
5053
	0,
5054
	0,
5055
	NULL,
5056
	"A member initializer should be a constant expression"
5057
    },
5058
    {
5059
	"class_mem_incompl_stat",
5060
	"7",
5061
	0,
5062
	0,
5063
	NULL,
5064
	"The static member '%0' must have complete object type"
5065
    },
5066
    {
5067
	"class_mem_ctor",
5068
	"7",
5069
	OPT_cpp_error,
5070
	0,
5071
	NULL,
5072
	"The member '%0' can't have the same name as its class"
5073
    },
5074
    {
5075
	"class_mem_ctor_data",
5076
	"7",
5077
#ifndef ERR_ALTERNATE
5078
	OPT_new,
5079
#else
5080
	OPT_none,
5081
#endif
5082
	0,
5083
	NULL,
5084
	"The data member '%0' can't have the same name as its class"
5085
    },
5086
    {
5087
	"class_mem_ref",
5088
	"2",
5089
	OPT_whatever,
5090
	0,
5091
	NULL,
5092
	"'%0' has a non-static reference member"
5093
    },
5094
    {
5095
	"class_mem_const",
5096
	"2",
5097
	OPT_whatever,
5098
	0,
5099
	NULL,
5100
	"'%0' has a non-static 'const' member"
5101
    },
5102
    {
5103
	"class_mfct_eof",
5104
	"9",
5105
	0,
5106
	0,
5107
#ifndef ERR_ALTERNATE
5108
	"9.3",
5109
#else
5110
	"????",
5111
#endif
5112
	"End of file encountered in rewriting '%0'"
5113
    },
5114
    {
5115
	"class_mfct_scope",
5116
	"9",
5117
	0,
5118
	0,
5119
	NULL,
5120
	"'%0' can only be defined in its class or an enclosing namespace scope"
5121
    },
5122
    {
5123
	"class_mfct_redecl",
5124
	"9",
5125
	0,
5126
	0,
5127
	NULL,
5128
	"Can't redeclare the member function '%0'"
5129
    },
5130
    {
5131
	"class_this_qual",
5132
	"3",
5133
	0,
5134
	0,
5135
#ifndef ERR_ALTERNATE
5136
	"9.3.2",
5137
#else
5138
	"????",
5139
#endif
5140
	"Member function called for more '%0' qualified object"
5141
    },
5142
    {
5143
	"class_static_mfct_virt",
5144
	NULL,
5145
	0,
5146
	0,
5147
#ifndef ERR_ALTERNATE
5148
	"9.4.1",
5149
#else
5150
	"????",
5151
#endif
5152
	"Can't have virtual static member functions"
5153
    },
5154
    {
5155
	"class_static_data_init",
5156
	"7G",
5157
	0,
5158
	0,
5159
#ifndef ERR_ALTERNATE
5160
	"9.4.2",
5161
#else
5162
	"????",
5163
#endif
5164
	"The static member '%0' can only have an initializer if it has integral type, not '%1'"
5165
    },
5166
    {
5167
	"class_static_data_const",
5168
	"7G",
5169
	0,
5170
	0,
5171
	NULL,
5172
	"The static member '%0' can only have an initializer if it has 'const' type, not '%1'"
5173
    },
5174
    {
5175
	"class_static_data_def",
5176
	"7D",
5177
	0,
5178
	0,
5179
	NULL,
5180
	"'%0' was initialized in its class (at %1), and so can't be assigned a value in its definition"
5181
    },
5182
    {
5183
	"class_static_data_scope",
5184
	"7",
5185
	0,
5186
	0,
5187
	NULL,
5188
	"'%0' can only be defined in its class or an enclosing namespace scope"
5189
    },
5190
    {
5191
	"class_static_data_anon",
5192
	"7",
5193
	0,
5194
	0,
5195
	NULL,
5196
	"Can't have static member '%0' in an anonymous class"
5197
    },
5198
    {
5199
	"class_union_deriv",
5200
	"2",
5201
	0,
5202
	0,
5203
#ifndef ERR_ALTERNATE
5204
	"9.5",
5205
#else
5206
	"6.5.2.1",
5207
#endif
5208
	"The union '%0' can't have base classes"
5209
    },
5210
    {
5211
	"class_union_base",
5212
	"2",
5213
	0,
5214
	0,
5215
	NULL,
5216
	"The union '%0' can't be used as a base class"
5217
    },
5218
    {
5219
	"class_union_static",
5220
	"2",
5221
	0,
5222
	0,
5223
	NULL,
5224
	"The union '%0' can't contain a static data member"
5225
    },
5226
    {
5227
	"class_union_virtual",
5228
	"2",
5229
	0,
5230
	0,
5231
	NULL,
5232
	"The union '%0' can't contain a virtual function"
5233
    },
5234
    {
5235
	"class_union_ref",
5236
	"2G",
5237
	0,
5238
	0,
5239
	NULL,
5240
	"The union '%0' can't have a member of reference type '%1'"
5241
    },
5242
    {
5243
	"class_union_mem",
5244
	"2G",
5245
	0,
5246
	0,
5247
	NULL,
5248
	"The union '%0' can't have a member of type '%1'"
5249
    },
5250
    {
5251
	"class_union_anon_private",
5252
	NULL,
5253
	0,
5254
	0,
5255
	NULL,
5256
	"An anonymous union can't have 'private' or 'protected' members"
5257
    },
5258
    {
5259
	"class_union_anon_func",
5260
	NULL,
5261
	0,
5262
	0,
5263
	NULL,
5264
	"An anonymous union can't have function members"
5265
    },
5266
    {
5267
	"class_union_anon_static",
5268
	NULL,
5269
	0,
5270
	0,
5271
	NULL,
5272
	"An anonymous union can't have external linkage"
5273
    },
5274
    {
5275
	"class_union_anon_mem",
5276
	NULL,
5277
	0,
5278
	0,
5279
	NULL,
5280
	"An anonymous union can't be a static data member of a class"
5281
    },
5282
    {
5283
	"class_bit_base",
5284
	"G",
5285
	0,
5286
	0,
5287
#ifndef ERR_ALTERNATE
5288
	"9.6",
5289
#else
5290
	"6.5.2.1",
5291
#endif
5292
	"Bitfield base type should be integral, not '%0'"
5293
    },
5294
    {
5295
	"class_bit_base_int",
5296
	"G",
5297
	OPT_bitf_type,
5298
	0,
5299
	NULL,
5300
	"Only 'int' types allowed in bitfields, not '%0'"
5301
    },
5302
    {
5303
	"class_bit_sign",
5304
	"1",
5305
	OPT_wall,
5306
	0,
5307
	NULL,
5308
	"Sign of a bitfield of type '%0' is implementation dependent"
5309
    },
5310
    {
5311
	"class_bit_dim_const",
5312
	NULL,
5313
	0,
5314
	0,
5315
	NULL,
5316
	"Bitfield width should be an integer constant expression"
5317
    },
5318
    {
5319
	"class_bit_dim_zero",
5320
	NULL,
5321
	0,
5322
	0,
5323
	NULL,
5324
	"Only unnamed bitfields can have width zero"
5325
    },
5326
    {
5327
	"class_bit_dim_neg",
5328
	"B",
5329
	0,
5330
	0,
5331
	NULL,
5332
	"Bitfield width should be non-negative, not '%0'"
5333
    },
5334
    {
5335
	"class_bit_dim_big",
5336
	"BG",
5337
	OPT_bitf_overflow,
5338
	0,
5339
	NULL,
5340
	"Bitfield width '%0' exceeds minimum size for base type, '%1'"
5341
    },
5342
    {
5343
	"class_bit_static",
5344
	NULL,
5345
	0,
5346
	0,
5347
	NULL,
5348
	"A bitfield can't be a static member"
5349
    },
5350
    {
5351
	"class_bit_typedef",
5352
	NULL,
5353
	0,
5354
	0,
5355
	NULL,
5356
	"Can't use 'typedef' to define a bitfield type"
5357
    },
5358
    {
5359
	"class_bit_ptr",
5360
	NULL,
5361
	0,
5362
	0,
5363
	NULL,
5364
	"Can't have pointers to bitfields"
5365
    },
5366
    {
5367
	"class_bit_ref",
5368
	NULL,
5369
	0,
5370
	0,
5371
	NULL,
5372
	"Can't have references to bitfields"
5373
    },
5374
    {
5375
	"class_bit_mptr",
5376
	NULL,
5377
	0,
5378
	0,
5379
	NULL,
5380
	"Can't have pointers to bitfield members"
5381
    },
5382
    {
5383
	"class_local_func",
5384
	"9",
5385
	OPT_none,
5386
	0,
5387
#ifndef ERR_ALTERNATE
5388
	"9.8",
5389
#else
5390
	"6.5.2.1",
5391
#endif
5392
	"Member function '%0' of a local class should be defined in that class"
5393
    },
5394
    {
5395
	"class_local_static",
5396
	"7",
5397
	0,
5398
	0,
5399
	NULL,
5400
	"Can't have static member '%0' in a local class"
5401
    },
5402
    {
5403
	"class_local_auto",
5404
	"7",
5405
	0,
5406
	0,
5407
	NULL,
5408
	"Can't use variable '%0' in local class"
5409
    },
5410
    {
5411
	"class_derived_class",
5412
	"G",
5413
	0,
5414
	0,
5415
#ifndef ERR_ALTERNATE
5416
	"10",
5417
#else
5418
	"????",
5419
#endif
5420
	"A base class should have class type, not '%0'"
5421
    },
5422
    {
5423
	"class_derived_incompl",
5424
	NULL,
5425
	0,
5426
	0,
5427
	NULL,
5428
	"A base class should be complete"
5429
    },
5430
    {
5431
	"class_derived_empty",
5432
	"2",
5433
	0,
5434
	0,
5435
	NULL,
5436
	"Empty base class list for '%0'"
5437
    },
5438
    {
5439
	"class_derived_base",
5440
	"22",
5441
	OPT_whatever,
5442
	0,
5443
	NULL,
5444
	"'%0' has a base class, '%1'"
5445
    },
5446
    {
5447
	"class_derived_virt",
5448
	"22",
5449
	OPT_whatever,
5450
	0,
5451
	NULL,
5452
	"'%0' is a virtual base class of '%1'"
5453
    },
5454
    {
5455
	"class_mi_dup",
5456
	"22",
5457
	0,
5458
	0,
5459
#ifndef ERR_ALTERNATE
5460
	"10.1",
5461
#else
5462
	"????",
5463
#endif
5464
	"Class '%0' already has a base class '%1'"
5465
    },
5466
    {
5467
	"class_member_lookup_ambig",
5468
	"22",
5469
	OPT_whatever,
5470
	0,
5471
#ifndef ERR_ALTERNATE
5472
	"10.2",
5473
#else
5474
	"????",
5475
#endif
5476
	"'%0' is an ambiguous base class of '%1'"
5477
    },
5478
    {
5479
	"class_member_lookup_func",
5480
	NULL,
5481
	0,
5482
	0,
5483
	NULL,
5484
	"Can't call a member function inherited from an ambiguous base class"
5485
    },
5486
    {
5487
	"class_virtual_poly",
5488
	"2",
5489
	OPT_whatever,
5490
	0,
5491
#ifndef ERR_ALTERNATE
5492
	"10.3",
5493
#else
5494
	"????",
5495
#endif
5496
	"'%0' is a polymorphic type"
5497
    },
5498
    {
5499
	"class_virtual_override",
5500
	"6",
5501
	OPT_wall,
5502
	0,
5503
	NULL,
5504
	"'%0' is an overriding virtual function"
5505
    },
5506
    {
5507
	"class_virtual_hide",
5508
	"69",
5509
	OPT_wall,
5510
	0,
5511
	NULL,
5512
	"'%0' hides rather than overrides the virtual function '%1'"
5513
    },
5514
    {
5515
	"class_virtual_ret",
5516
	"79D",
5517
	0,
5518
	0,
5519
	NULL,
5520
	"Return type for overriding virtual function '%0' differs from that for '%1' (see %2)"
5521
    },
5522
    {
5523
	"class_virtual_darg",
5524
	"7",
5525
	OPT_wall,
5526
	0,
5527
	NULL,
5528
	"Default arguments for virtual function '%0' differ from those of overridden function"
5529
    },
5530
    {
5531
	"class_virtual_ambig",
5532
	"79",
5533
	0,
5534
	0,
5535
	NULL,
5536
	"Conversion from return type of '%0' to that of '%1' must be unambiguous"
5537
    },
5538
    {
5539
	"class_virtual_final",
5540
	"92",
5541
	0,
5542
	0,
5543
	NULL,
5544
	"Virtual function '%0' doesn't have a unique final overrider in '%1'"
5545
    },
5546
    {
5547
	"class_virtual_destr",
5548
	"2",
5549
	OPT_wall,
5550
	0,
5551
	NULL,
5552
	"The polymorphic type '%0' doesn't have a virtual destructor"
5553
    },
5554
    {
5555
	"class_virtual_not",
5556
	"9",
5557
	OPT_wall,
5558
	0,
5559
	NULL,
5560
	"Call to '%0' is not virtual"
5561
    },
5562
    {
5563
	"class_abstract_virt",
5564
	NULL,
5565
	0,
5566
	0,
5567
#ifndef ERR_ALTERNATE
5568
	"10.4",
5569
#else
5570
	"????",
5571
#endif
5572
	"Only virtual functions can be pure"
5573
    },
5574
    {
5575
	"class_abstract_zero",
5576
	NULL,
5577
	0,
5578
	0,
5579
	NULL,
5580
	"A pure specifier should be precisely '0'"
5581
    },
5582
    {
5583
	"class_abstract_class",
5584
	"2",
5585
	OPT_whatever,
5586
	0,
5587
	NULL,
5588
	"The class '%0' is abstract"
5589
    },
5590
    {
5591
	"class_abstract_pure",
5592
	"9",
5593
	OPT_whatever,
5594
	0,
5595
	NULL,
5596
	"'%0' is a pure virtual function"
5597
    },
5598
    {
5599
	"class_abstract_decl",
5600
	"7",
5601
	0,
5602
	0,
5603
	NULL,
5604
	"The object '%0' can't have abstract type"
5605
    },
5606
    {
5607
	"class_abstract_mem",
5608
	"7",
5609
	0,
5610
	0,
5611
	NULL,
5612
	"The member '%0' can't have abstract type"
5613
    },
5614
    {
5615
	"class_abstract_par",
5616
	NULL,
5617
	0,
5618
	0,
5619
	NULL,
5620
	"A function parameter can't have abstract type"
5621
    },
5622
    {
5623
	"class_abstract_ret",
5624
	NULL,
5625
	0,
5626
	0,
5627
	NULL,
5628
	"A function can't return an abstract type"
5629
    },
5630
    {
5631
	"class_abstract_cast",
5632
	NULL,
5633
	0,
5634
	0,
5635
	NULL,
5636
	"Can't explicitly cast to an abstract type"
5637
    },
5638
    {
5639
	"class_abstract_call",
5640
	"9",
5641
	OPT_wall,
5642
	0,
5643
	NULL,
5644
	"Calling the pure virtual function '%0' is undefined"
5645
    },
5646
    {
5647
	"class_access_spec_priv",
5648
	"2",
5649
	OPT_whatever,
5650
	0,
5651
#ifndef ERR_ALTERNATE
5652
	"11.1",
5653
#else
5654
	"????",
5655
#endif
5656
	"'%0' has a 'private' or 'protected' member"
5657
    },
5658
    {
5659
	"class_access_spec_id",
5660
	"909",
5661
	0,
5662
	0,
5663
	NULL,
5664
	"The '%1' member '%0' can't be accessed by '%2'"
5665
    },
5666
    {
5667
	"class_access_spec_none",
5668
	"90",
5669
	0,
5670
	0,
5671
	NULL,
5672
	"Can't access the '%1' member '%0'"
5673
    },
5674
    {
5675
	"class_access_spec_change",
5676
	"9D",
5677
	0,
5678
	0,
5679
	NULL,
5680
	"Can't change access in redeclaration of '%0' (see %1)"
5681
    },
5682
    {
5683
	"class_access_base_acc",
5684
	"90",
5685
	OPT_wall,
5686
	0,
5687
#ifndef ERR_ALTERNATE
5688
	"11.2",
5689
#else
5690
	"????",
5691
#endif
5692
	"Missing base class access, '%1 %0'"
5693
    },
5694
    {
5695
	"class_access_base_id",
5696
	"2209",
5697
	0,
5698
	0,
5699
	NULL,
5700
	"The '%2' base '%0' of '%1' can't be accessed by '%3'"
5701
    },
5702
    {
5703
	"class_access_base_none",
5704
	"220",
5705
	0,
5706
	0,
5707
	NULL,
5708
	"Can't access the '%2' base '%0' of '%1'"
5709
    },
5710
    {
5711
	"class_access_dcl_using",
5712
	"7",
5713
	OPT_none,
5714
	0,
5715
#ifndef ERR_ALTERNATE
5716
	"11.3",
5717
#else
5718
	"????",
5719
#endif
5720
	"Access declarations are deprecated: use 'using %0'"
5721
    },
5722
    {
5723
	"class_friend_decl",
5724
	NULL,
5725
	0,
5726
	0,
5727
#ifndef ERR_ALTERNATE
5728
	"11.4",
5729
#else
5730
	"????",
5731
#endif
5732
	"Only functions and classes can be friends"
5733
    },
5734
    {
5735
	"class_friend_elab",
5736
	NULL,
5737
	0,
5738
	0,
5739
	NULL,
5740
	"Elaborated type specifier required in friend declaration"
5741
    },
5742
    {
5743
	"class_friend_storage",
5744
	"4",
5745
	0,
5746
	0,
5747
	NULL,
5748
	"The 'friend' specifier can't be used with the storage class specifier '%0'"
5749
    },
5750
    {
5751
	"class_friend_def",
5752
	NULL,
5753
	0,
5754
	0,
5755
	NULL,
5756
	"Can't apply 'friend' to a class definition"
5757
    },
5758
    {
5759
	"class_friend_local",
5760
	NULL,
5761
	0,
5762
	0,
5763
	NULL,
5764
	"Can't define a 'friend' function in a local class"
5765
    },
5766
    {
5767
	"class_friend_pre",
5768
	"7",
5769
	OPT_wall,
5770
	0,
5771
	NULL,
5772
	"'%0' first declared in a friend declaration"
5773
    },
5774
    {
5775
	"class_friend_dup_func",
5776
	"92",
5777
	OPT_wall,
5778
	0,
5779
	NULL,
5780
	"Function '%0' is already a friend of '%1'"
5781
    },
5782
    {
5783
	"class_friend_dup_class",
5784
	"22",
5785
	OPT_wall,
5786
	0,
5787
	NULL,
5788
	"Class '%0' is already a friend of '%1'"
5789
    },
5790
    {
5791
	"class_special_decl",
5792
	"9",
5793
	0,
5794
	0,
5795
#ifndef ERR_ALTERNATE
5796
	"12",
5797
#else
5798
	"????",
5799
#endif
5800
	"Can't explicitly declare the implicit function '%0'"
5801
    },
5802
    {
5803
	"class_ctor_static",
5804
	NULL,
5805
	0,
5806
	0,
5807
#ifndef ERR_ALTERNATE
5808
	"12.1",
5809
#else
5810
	"????",
5811
#endif
5812
	"Constructors can't be static members"
5813
    },
5814
    {
5815
	"class_ctor_virtual",
5816
	NULL,
5817
	0,
5818
	0,
5819
	NULL,
5820
	"Constructors can't be virtual members"
5821
    },
5822
    {
5823
	"class_ctor_ret",
5824
	"6",
5825
	0,
5826
	0,
5827
	NULL,
5828
	"Can't give return type for constructor '%0'"
5829
    },
5830
    {
5831
	"class_ctor_qual",
5832
	"63",
5833
	0,
5834
	0,
5835
	NULL,
5836
	"The constructor '%0' can't be '%1' qualified"
5837
    },
5838
    {
5839
	"class_ctor_result",
5840
	"9",
5841
	0,
5842
	0,
5843
	NULL,
5844
	"Can't return a value from the constructor '%0'"
5845
    },
5846
    {
5847
	"class_ctor_addr",
5848
	"9",
5849
	0,
5850
	0,
5851
	NULL,
5852
	"Can't take the address of the constructor '%0'"
5853
    },
5854
    {
5855
	"class_ctor_default",
5856
	"2",
5857
	0,
5858
	0,
5859
	NULL,
5860
	"'%0' has no default constructor"
5861
    },
5862
    {
5863
	"class_ctor_user",
5864
	"2",
5865
	OPT_whatever,
5866
	0,
5867
	NULL,
5868
	"'%0' has a user-defined constructor"
5869
    },
5870
    {
5871
	"class_ctor_nontriv",
5872
	"2",
5873
	OPT_whatever,
5874
	0,
5875
	NULL,
5876
	"'%0' has a non-trivial constructor"
5877
    },
5878
    {
5879
	"class_ctor_make",
5880
	"2",
5881
	OPT_wall,
5882
	0,
5883
	NULL,
5884
	"'%0' has only copy constructors"
5885
    },
5886
    {
5887
	"class_ctor_private",
5888
	"2",
5889
	OPT_wall,
5890
	0,
5891
	NULL,
5892
	"'%0' has only private non-copy constructors and no friends"
5893
    },
5894
    {
5895
	"class_conv_fct_typedef",
5896
	"6",
5897
	0,
5898
	0,
5899
#ifndef ERR_ALTERNATE
5900
	"12.3.2",
5901
#else
5902
	"????",
5903
#endif
5904
	"Can't declare type in conversion function name '%0'"
5905
    },
5906
    {
5907
	"class_conv_fct_ret",
5908
	"6",
5909
	0,
5910
	0,
5911
	NULL,
5912
	"Can't give return type for conversion function '%0'"
5913
    },
5914
    {
5915
	"class_conv_fct_ret_bad",
5916
	"6G",
5917
	0,
5918
	0,
5919
	NULL,
5920
	"Conversion function '%0' declared to return '%1'"
5921
    },
5922
    {
5923
	"class_conv_fct_pars",
5924
	"6",
5925
	0,
5926
	0,
5927
	NULL,
5928
	"Can't give parameter types for conversion function '%0'"
5929
    },
5930
    {
5931
	"class_conv_fct_void",
5932
	"6",
5933
	OPT_none,
5934
	0,
5935
	NULL,
5936
	"Illegal conversion function '%0'"
5937
    },
5938
    {
5939
	"class_conv_fct_mem",
5940
	NULL,
5941
	0,
5942
	0,
5943
	NULL,
5944
	"A conversion function must be a non-static member"
5945
    },
5946
    {
5947
	"class_dtor_static",
5948
	NULL,
5949
	0,
5950
	0,
5951
#ifndef ERR_ALTERNATE
5952
	"12.4",
5953
#else
5954
	"????",
5955
#endif
5956
	"Destructors can't be static members"
5957
    },
5958
    {
5959
	"class_dtor_ret",
5960
	"6",
5961
	0,
5962
	0,
5963
	NULL,
5964
	"Can't give return type for destructor '%0'"
5965
    },
5966
    {
5967
	"class_dtor_pars",
5968
	"6",
5969
	0,
5970
	0,
5971
	NULL,
5972
	"Can't give parameter types for destructor '%0'"
5973
    },
5974
    {
5975
	"class_dtor_func",
5976
	"6",
5977
	0,
5978
	0,
5979
	NULL,
5980
	"The destructor '%0' must be a member function"
5981
    },
5982
    {
5983
	"class_dtor_inherit",
5984
	"6A",
5985
	0,
5986
	0,
5987
	NULL,
5988
	"The destructor '%0' can't be inherited by '%1'"
5989
    },
5990
    {
5991
	"class_dtor_qual",
5992
	"63",
5993
	0,
5994
	0,
5995
	NULL,
5996
	"The destructor '%0' can't be '%1' qualified"
5997
    },
5998
    {
5999
	"class_dtor_default",
6000
	"2",
6001
	0,
6002
	0,
6003
	NULL,
6004
	"'%0' has no default destructor"
6005
    },
6006
    {
6007
	"class_dtor_nontriv",
6008
	"2",
6009
	OPT_whatever,
6010
	0,
6011
	NULL,
6012
	"'%0' has a non-trivial destructor"
6013
    },
6014
    {
6015
	"class_dtor_result",
6016
	"9",
6017
	0,
6018
	0,
6019
	NULL,
6020
	"Can't return a value from the destructor '%0'"
6021
    },
6022
    {
6023
	"class_dtor_addr",
6024
	"9",
6025
	0,
6026
	0,
6027
	NULL,
6028
	"Can't take the address of the destructor '%0'"
6029
    },
6030
    {
6031
	"class_dtor_private",
6032
	"2",
6033
	OPT_wall,
6034
	0,
6035
	NULL,
6036
	"'%0' has a private destructor and no friends"
6037
    },
6038
    {
6039
	"class_dtor_three",
6040
	"2",
6041
	OPT_wall,
6042
	0,
6043
	NULL,
6044
	"A class '%0' with a destructor, copy constructor or copy assignment operator should have all three"
6045
    },
6046
    {
6047
	"class_free_static",
6048
	"6",
6049
	OPT_whatever,
6050
	0,
6051
#ifndef ERR_ALTERNATE
6052
	"12.5",
6053
#else
6054
	"????",
6055
#endif
6056
	"'%0' is implicitly declared static"
6057
    },
6058
    {
6059
	"class_base_init_bad",
6060
	"9",
6061
	0,
6062
	0,
6063
#ifndef ERR_ALTERNATE
6064
	"12.6.2",
6065
#else
6066
	"????",
6067
#endif
6068
	"The function '%0' can't have constructor-style initializers"
6069
    },
6070
    {
6071
	"class_base_init_empty",
6072
	"9",
6073
	0,
6074
	0,
6075
	NULL,
6076
	"Empty constructor-style initializer for function '%0'"
6077
    },
6078
    {
6079
	"class_base_init_old",
6080
	"9",
6081
	0,
6082
	0,
6083
	NULL,
6084
	"Anachronistic base class initializer in '%0'"
6085
    },
6086
    {
6087
	"class_base_init_uniq",
6088
	"2",
6089
	0,
6090
	0,
6091
	NULL,
6092
	"Class '%0' does not have a unique base class"
6093
    },
6094
    {
6095
	"class_base_init_static",
6096
	"7",
6097
	0,
6098
	0,
6099
	NULL,
6100
	"Initializer '%0' isn't a non-static member or a base class"
6101
    },
6102
    {
6103
	"class_base_init_inherit",
6104
	"7",
6105
	0,
6106
	0,
6107
	NULL,
6108
	"Can't use inherited member '%0' as an initializer"
6109
    },
6110
    {
6111
	"class_base_init_base",
6112
	"2",
6113
	0,
6114
	0,
6115
	NULL,
6116
	"The base class initializer '%0' should be a direct or a virtual base"
6117
    },
6118
    {
6119
	"class_base_init_ambig",
6120
	"2",
6121
	0,
6122
	0,
6123
	NULL,
6124
	"The base class initializer '%0' is both a direct and a virtual base"
6125
    },
6126
    {
6127
	"class_base_init_dup",
6128
	"7",
6129
	0,
6130
	0,
6131
	NULL,
6132
	"Initializer for '%0' already given"
6133
    },
6134
    {
6135
	"class_base_init_none",
6136
	"7",
6137
	OPT_variable,
6138
	0,
6139
	NULL,
6140
	"No initializer for '%0' in constructor"
6141
    },
6142
    {
6143
	"class_base_init_order",
6144
	"7",
6145
	OPT_variable,
6146
	0,
6147
	NULL,
6148
	"Constructor initializer for '%0' out of sequence"
6149
    },
6150
    {
6151
	"class_base_init_union",
6152
	"2",
6153
	0,
6154
	0,
6155
	NULL,
6156
	"More than one initializer given for union '%0'"
6157
    },
6158
    {
6159
	"class_base_init_anon",
6160
	"7",
6161
	0,
6162
	0,
6163
	NULL,
6164
	"More than one initializer given for anonymous union member '%0'"
6165
    },
6166
    {
6167
	"class_base_init_err",
6168
	"9",
6169
	OPT_whatever,
6170
	0,
6171
	NULL,
6172
	"In special member function '%0'"
6173
    },
6174
    {
6175
	"class_base_init_impl",
6176
	"9",
6177
	OPT_whatever,
6178
	0,
6179
	NULL,
6180
	"In implicit definition of '%0'"
6181
    },
6182
    {
6183
	"class_copy_bad",
6184
	"6",
6185
	0,
6186
	0,
6187
#ifndef ERR_ALTERNATE
6188
	"12.8",
6189
#else
6190
	"????",
6191
#endif
6192
	"Copy constructor '%0' should have a reference parameter"
6193
    },
6194
    {
6195
	"class_copy_constr",
6196
	"2",
6197
	0,
6198
	0,
6199
	NULL,
6200
	"'%0' has no copy constructor"
6201
    },
6202
    {
6203
	"class_copy_assign",
6204
	"2",
6205
	0,
6206
	0,
6207
	NULL,
6208
	"'%0' has no copy assignment operator"
6209
    },
6210
    {
6211
	"class_copy_nontriv_constr",
6212
	"2",
6213
	OPT_whatever,
6214
	0,
6215
	NULL,
6216
	"'%0' has a non-trivial copy constructor"
6217
    },
6218
    {
6219
	"class_copy_nontriv_assign",
6220
	"2",
6221
	OPT_whatever,
6222
	0,
6223
	NULL,
6224
	"'%0' has a non-trivial copy assignment operator"
6225
    },
6226
    {
6227
	"class_copy_ptr",
6228
	NULL,
6229
	OPT_wall,
6230
	0,
6231
	NULL,
6232
	"Pointers are shallow copied"
6233
    },
6234
    {
6235
	"over_load_pars",
6236
	NULL,
6237
	OPT_whatever,
6238
	0,
6239
#ifndef ERR_ALTERNATE
6240
	"13.1",
6241
#else
6242
	"????",
6243
#endif
6244
	"Can't overload functions with indistinguishable parameter types"
6245
    },
6246
    {
6247
	"over_match_call_mem",
6248
	"7",
6249
	0,
6250
	0,
6251
#ifndef ERR_ALTERNATE
6252
	"13.3.1.1",
6253
#else
6254
	"????",
6255
#endif
6256
	"Can't have member function '&%0' in call"
6257
    },
6258
    {
6259
	"over_match_call_ok",
6260
	"9",
6261
	OPT_overload_res,
6262
	0,
6263
	NULL,
6264
	"Overloaded function call resolves to '%0'"
6265
    },
6266
    {
6267
	"over_match_call_target",
6268
	"7",
6269
	OPT_overload_dep,
6270
	0,
6271
	NULL,
6272
	"Target dependent resolution for call to overloaded function '%0'"
6273
    },
6274
    {
6275
	"over_match_call_ambig",
6276
	"7",
6277
	OPT_overload_ambig,
6278
	0,
6279
	NULL,
6280
	"Ambiguous call to overloaded function '%0'"
6281
    },
6282
    {
6283
	"over_match_oper_ok",
6284
	"9",
6285
	OPT_overload_res,
6286
	0,
6287
#ifndef ERR_ALTERNATE
6288
	"13.3.1.2",
6289
#else
6290
	"????",
6291
#endif
6292
	"Overloaded operator resolves to '%0'"
6293
    },
6294
    {
6295
	"over_match_oper_target",
6296
	"8",
6297
	OPT_overload_dep,
6298
	0,
6299
	NULL,
6300
	"Target dependent resolution for overloaded operator '%0'"
6301
    },
6302
    {
6303
	"over_match_oper_ambig",
6304
	"8",
6305
	OPT_overload_ambig,
6306
	0,
6307
	NULL,
6308
	"Ambiguous overloaded operator '%0'"
6309
    },
6310
    {
6311
	"over_match_oper_arrow",
6312
	NULL,
6313
	0,
6314
	0,
6315
	NULL,
6316
	"Infinite loop in overloading of '->'"
6317
    },
6318
    {
6319
	"over_match_ctor_ok",
6320
	"9",
6321
	OPT_overload_res,
6322
	0,
6323
#ifndef ERR_ALTERNATE
6324
	"13.3.1.3",
6325
#else
6326
	"????",
6327
#endif
6328
	"Overloaded constructor call resolves to '%0'"
6329
    },
6330
    {
6331
	"over_match_ctor_target",
6332
	"7",
6333
	OPT_overload_dep,
6334
	0,
6335
	NULL,
6336
	"Target dependent resolution for call to overloaded constructor '%0'"
6337
    },
6338
    {
6339
	"over_match_ctor_ambig",
6340
	"7",
6341
	OPT_overload_ambig,
6342
	0,
6343
	NULL,
6344
	"Ambiguous call to overloaded constructor '%0'"
6345
    },
6346
    {
6347
	"over_match_ctor_none",
6348
	"7",
6349
	0,
6350
	0,
6351
	NULL,
6352
	"None of the overloaded constructors '%0' is viable for given call"
6353
    },
6354
    {
6355
	"over_match_conv_ok",
6356
	"9",
6357
	OPT_overload_res,
6358
	0,
6359
#ifndef ERR_ALTERNATE
6360
	"13.3.1.5",
6361
#else
6362
	"????",
6363
#endif
6364
	"Overloaded user-defined conversion resolves to '%0'"
6365
    },
6366
    {
6367
	"over_match_conv_target",
6368
	"GG",
6369
	OPT_overload_dep,
6370
	0,
6371
	NULL,
6372
	"Target dependent resolution for user-defined conversion from '%0' to '%1'"
6373
    },
6374
    {
6375
	"over_match_conv_ambig",
6376
	"GG",
6377
	OPT_overload_ambig,
6378
	0,
6379
	NULL,
6380
	"Ambiguous user-defined conversion from '%0' to '%1'"
6381
    },
6382
    {
6383
	"over_match_conv_dup",
6384
	"G",
6385
	0,
6386
	0,
6387
	NULL,
6388
	"Ambiguous user-defined conversions from '%0'"
6389
    },
6390
    {
6391
	"over_match_viable_none",
6392
	"7",
6393
	0,
6394
	0,
6395
#ifndef ERR_ALTERNATE
6396
	"13.3.2",
6397
#else
6398
	"????",
6399
#endif
6400
	"None of the overloaded functions '%0' is viable for given call"
6401
    },
6402
    {
6403
	"over_match_viable_list",
6404
	NULL,
6405
	OPT_whatever,
6406
	0,
6407
	NULL,
6408
	"Viable candidates are as follows"
6409
    },
6410
    {
6411
	"over_match_best_install",
6412
	NULL,
6413
	OPT_overload_ambig,
6414
	0,
6415
#ifndef ERR_ALTERNATE
6416
	"13.3.3",
6417
#else
6418
	"????",
6419
#endif
6420
	"Failed target dependent overload resolution"
6421
    },
6422
    {
6423
	"over_match_best_common",
6424
	NULL,
6425
	0,
6426
	0,
6427
	NULL,
6428
	"Can't find common return type for target dependent overload resolution"
6429
    },
6430
    {
6431
	"over_over_context",
6432
	"7",
6433
	0,
6434
	0,
6435
#ifndef ERR_ALTERNATE
6436
	"13.4",
6437
#else
6438
	"????",
6439
#endif
6440
	"Can't use the overloaded function '%0' in this context"
6441
    },
6442
    {
6443
	"over_over_none",
6444
	"7G",
6445
	0,
6446
	0,
6447
	NULL,
6448
	"None of the overloaded functions '%0' has type '%1'"
6449
    },
6450
    {
6451
	"over_over_ok",
6452
	"9",
6453
	OPT_overload_res,
6454
	0,
6455
	NULL,
6456
	"Address of overloaded function resolves to '%0'"
6457
    },
6458
    {
6459
	"over_oper_bad",
6460
	"8",
6461
	0,
6462
	0,
6463
#ifndef ERR_ALTERNATE
6464
	"13.5",
6465
#else
6466
	"????",
6467
#endif
6468
	"Can't overload '%0'"
6469
    },
6470
    {
6471
	"over_oper_static",
6472
	NULL,
6473
	0,
6474
	0,
6475
	NULL,
6476
	"Overloaded operators can't be static members"
6477
    },
6478
    {
6479
	"over_oper_type",
6480
	"6",
6481
	0,
6482
	0,
6483
	NULL,
6484
	"'%0' should have an overloadable parameter type"
6485
    },
6486
    {
6487
	"over_oper_default",
6488
	"6",
6489
	0,
6490
	0,
6491
	NULL,
6492
	"'%0' can't have default arguments"
6493
    },
6494
    {
6495
	"over_oper_func",
6496
	"7",
6497
	0,
6498
	0,
6499
	NULL,
6500
	"'%0' is not a function"
6501
    },
6502
    {
6503
	"over_unary_pars",
6504
	"6MN",
6505
	0,
6506
	0,
6507
#ifndef ERR_ALTERNATE
6508
	"13.5.1",
6509
#else
6510
	"????",
6511
#endif
6512
	"'%0' should have %1 parameter%2"
6513
    },
6514
    {
6515
	"over_binary_pars_p2",
6516
	"6MN",
6517
	0,
6518
	0,
6519
#ifndef ERR_ALTERNATE
6520
	"13.5.2",
6521
#else
6522
	"????",
6523
#endif
6524
	"'%0' should have %1 parameter%2"
6525
    },
6526
    {
6527
	"over_binary_pars_p1",
6528
	"6MMN",
6529
	0,
6530
	0,
6531
	NULL,
6532
	"'%0' should have %1 or %2 parameter%3"
6533
    },
6534
    {
6535
	"over_ass_mem",
6536
	"6",
6537
	0,
6538
	0,
6539
#ifndef ERR_ALTERNATE
6540
	"13.5.3",
6541
#else
6542
	"????",
6543
#endif
6544
	"'%0' should be a member function"
6545
    },
6546
    {
6547
	"over_ass_pars",
6548
	"6MN",
6549
	0,
6550
	0,
6551
	NULL,
6552
	"'%0' should have %1 parameter%2"
6553
    },
6554
    {
6555
	"over_call_mem",
6556
	"6",
6557
	0,
6558
	0,
6559
#ifndef ERR_ALTERNATE
6560
	"13.5.4",
6561
#else
6562
	"????",
6563
#endif
6564
	"'%0' should be a member function"
6565
    },
6566
    {
6567
	"over_sub_mem",
6568
	"6",
6569
	0,
6570
	0,
6571
#ifndef ERR_ALTERNATE
6572
	"13.5.5",
6573
#else
6574
	"????",
6575
#endif
6576
	"'%0' should be a member function"
6577
    },
6578
    {
6579
	"over_sub_pars",
6580
	"6MN",
6581
	0,
6582
	0,
6583
	NULL,
6584
	"'%0' should have %1 parameter%2"
6585
    },
6586
    {
6587
	"over_ref_mem",
6588
	"6",
6589
	0,
6590
	0,
6591
#ifndef ERR_ALTERNATE
6592
	"13.5.6",
6593
#else
6594
	"????",
6595
#endif
6596
	"'%0' should be a member function"
6597
    },
6598
    {
6599
	"over_ref_pars",
6600
	"6MN",
6601
	0,
6602
	0,
6603
	NULL,
6604
	"'%0' should have %1 parameter%2"
6605
    },
6606
    {
6607
	"over_inc_pars",
6608
	"6MMN",
6609
	0,
6610
	0,
6611
#ifndef ERR_ALTERNATE
6612
	"13.5.7",
6613
#else
6614
	"????",
6615
#endif
6616
	"'%0' should have %1 or %2 parameter%3"
6617
    },
6618
    {
6619
	"over_inc_pars_p2",
6620
	"6G",
6621
	0,
6622
	0,
6623
	NULL,
6624
	"Extra parameter to '%0' should be of type '%1'"
6625
    },
6626
    {
6627
	"temp_decl_bad",
6628
	NULL,
6629
	0,
6630
	0,
6631
#ifndef ERR_ALTERNATE
6632
	"14",
6633
#else
6634
	"????",
6635
#endif
6636
	"Invalid template declaration"
6637
    },
6638
    {
6639
	"temp_decl_scope",
6640
	NULL,
6641
	0,
6642
	0,
6643
	NULL,
6644
	"A template can only be declared in namespace or class scope"
6645
    },
6646
    {
6647
	"temp_decl_func",
6648
	NULL,
6649
	0,
6650
	0,
6651
	NULL,
6652
	"Can't have partially specialized template functions"
6653
    },
6654
    {
6655
	"temp_decl_one",
6656
	NULL,
6657
	0,
6658
	0,
6659
	NULL,
6660
	"Can only declare a single object in a template declaration"
6661
    },
6662
    {
6663
	"temp_decl_linkage",
6664
	NULL,
6665
	0,
6666
	0,
6667
	NULL,
6668
	"A template can't have C linkage"
6669
    },
6670
    {
6671
	"temp_decl_export",
6672
	"7",
6673
	0,
6674
	0,
6675
	NULL,
6676
	"Can't export the template '%0'"
6677
    },
6678
    {
6679
	"temp_decl_undef",
6680
	"9",
6681
	0,
6682
	0,
6683
	NULL,
6684
	"The non-exported template '%0' has not been defined"
6685
    },
6686
    {
6687
	"temp_param_eof",
6688
	NULL,
6689
	0,
6690
	0,
6691
#ifndef ERR_ALTERNATE
6692
	"14.1",
6693
#else
6694
	"????",
6695
#endif
6696
	"End of file in template parameters"
6697
    },
6698
    {
6699
	"temp_param_dup",
6700
	"6",
6701
	0,
6702
	0,
6703
	NULL,
6704
	"Duplicate template parameter '%0'"
6705
    },
6706
    {
6707
	"temp_param_type",
6708
	"7G",
6709
	0,
6710
	0,
6711
	NULL,
6712
	"The template parameter '%0' can't have type '%1'"
6713
    },
6714
    {
6715
	"temp_param_dcl_stc",
6716
	"4",
6717
	0,
6718
	0,
6719
	NULL,
6720
	"Can't apply '%0' to a template parameter"
6721
    },
6722
    {
6723
	"temp_param_default",
6724
	"7",
6725
	0,
6726
	0,
6727
	NULL,
6728
	"The template parameter '%0' should have a default argument"
6729
    },
6730
    {
6731
	"temp_param_func",
6732
	NULL,
6733
	0,
6734
	0,
6735
	NULL,
6736
	"Can't have default arguments in template function"
6737
    },
6738
    {
6739
	"temp_param_redecl",
6740
	NULL,
6741
	0,
6742
	0,
6743
	NULL,
6744
	"Can't have default arguments in template redeclaration"
6745
    },
6746
    {
6747
	"temp_param_none",
6748
	"9",
6749
	0,
6750
	0,
6751
	NULL,
6752
	"No template from which to specialize '%0'"
6753
    },
6754
    {
6755
	"temp_names_eof",
6756
	"9",
6757
	0,
6758
	0,
6759
#ifndef ERR_ALTERNATE
6760
	"14.2",
6761
#else
6762
	"????",
6763
#endif
6764
	"End of file in arguments for template '%0'"
6765
    },
6766
    {
6767
	"temp_names_hack",
6768
	NULL,
6769
	0,
6770
	0,
6771
	NULL,
6772
	"'>>' in template arguments interpreted as '> >'"
6773
    },
6774
    {
6775
	"temp_names_bad",
6776
	NULL,
6777
	0,
6778
	0,
6779
	NULL,
6780
	"Bad 'template' qualifier"
6781
    },
6782
    {
6783
	"temp_names_not",
6784
	"7",
6785
	0,
6786
	0,
6787
	NULL,
6788
	"'template %0' doesn't name a template member"
6789
    },
6790
    {
6791
	"temp_names_mem",
6792
	"7",
6793
	0,
6794
	0,
6795
	NULL,
6796
	"Member '%0' should be prefixed by 'template'"
6797
    },
6798
    {
6799
	"temp_arg_type",
6800
	"79",
6801
	0,
6802
	0,
6803
#ifndef ERR_ALTERNATE
6804
	"14.3",
6805
#else
6806
	"????",
6807
#endif
6808
	"Type expected for parameter '%0' of template '%1'"
6809
    },
6810
    {
6811
	"temp_arg_exp",
6812
	"79",
6813
	0,
6814
	0,
6815
	NULL,
6816
	"Expression expected for parameter '%0' of template '%1'"
6817
    },
6818
    {
6819
	"temp_arg_less",
6820
	"9",
6821
	0,
6822
	0,
6823
	NULL,
6824
	"Not enough arguments for template '%0'"
6825
    },
6826
    {
6827
	"temp_arg_more",
6828
	"9",
6829
	0,
6830
	0,
6831
	NULL,
6832
	"Too many arguments for template '%0'"
6833
    },
6834
    {
6835
	"temp_arg_local",
6836
	"G",
6837
	0,
6838
	0,
6839
	NULL,
6840
	"Type argument '%0' should have external linkage"
6841
    },
6842
    {
6843
	"temp_arg_const",
6844
	NULL,
6845
	0,
6846
	0,
6847
	NULL,
6848
	"A non-type template argument should be constant"
6849
    },
6850
    {
6851
	"temp_arg_internal",
6852
	NULL,
6853
	0,
6854
	0,
6855
	NULL,
6856
	"A non-type template argument should have external linkage"
6857
    },
6858
    {
6859
	"temp_arg_over",
6860
	NULL,
6861
	0,
6862
	0,
6863
	NULL,
6864
	"A non-type template argument can't be an overloaded pointer to member"
6865
    },
6866
    {
6867
	"temp_arg_bad",
6868
	NULL,
6869
	0,
6870
	0,
6871
	NULL,
6872
	"Invalid non-type template argument"
6873
    },
6874
    {
6875
	"temp_arg_init",
6876
	"79",
6877
	OPT_whatever,
6878
	0,
6879
	NULL,
6880
	"In initialization of template parameter '%0' of '%1'"
6881
    },
6882
    {
6883
	"temp_arg_templ",
6884
	"79",
6885
	0,
6886
	0,
6887
	NULL,
6888
	"Template name expected for parameter '%0' of template '%1'"
6889
    },
6890
    {
6891
	"temp_arg_templ_not",
6892
	"77",
6893
	0,
6894
	0,
6895
	NULL,
6896
	"Value for template parameter '%0', '%1' does not denote a type name"
6897
    },
6898
    {
6899
	"temp_arg_templ_bad",
6900
	"7G",
6901
	0,
6902
	0,
6903
	NULL,
6904
	"Invalid type for template parameter '%0', '%1'"
6905
    },
6906
    {
6907
	"temp_mem_virtual",
6908
	NULL,
6909
	0,
6910
	0,
6911
#ifndef ERR_ALTERNATE
6912
	"14.5.2",
6913
#else
6914
	"????",
6915
#endif
6916
	"A template member function can't be virtual"
6917
    },
6918
    {
6919
	"temp_mem_destr",
6920
	NULL,
6921
	0,
6922
	0,
6923
	NULL,
6924
	"A destructor can't be a template member function"
6925
    },
6926
    {
6927
	"temp_mem_local",
6928
	NULL,
6929
	0,
6930
	0,
6931
	NULL,
6932
	"A local class can't have a template member or friend"
6933
    },
6934
    {
6935
	"temp_class_spec_primary",
6936
	"G",
6937
	0,
6938
	0,
6939
#ifndef ERR_ALTERNATE
6940
	"14.5.4",
6941
#else
6942
	"????",
6943
#endif
6944
	"Specialization '%0' should be more specialized than its primary template"
6945
    },
6946
    {
6947
	"temp_class_spec_depend",
6948
	"G",
6949
	0,
6950
	0,
6951
	NULL,
6952
	"Dependent non-type argument in specialization '%0'"
6953
    },
6954
    {
6955
	"temp_class_spec_darg",
6956
	NULL,
6957
	0,
6958
	0,
6959
	NULL,
6960
	"Can't have default arguments in template specialization"
6961
    },
6962
    {
6963
	"temp_class_spec_ambig",
6964
	"G",
6965
	0,
6966
	0,
6967
#ifndef ERR_ALTERNATE
6968
	"14.5.4.1",
6969
#else
6970
	"????",
6971
#endif
6972
	"Ambiguous specialization for template '%0'"
6973
    },
6974
    {
6975
	"temp_class_spec_match",
6976
	"9",
6977
	OPT_wall,
6978
	0,
6979
	NULL,
6980
	"Specialization '%0' used"
6981
    },
6982
    {
6983
	"temp_res_nspace",
6984
	"AG",
6985
	0,
6986
	0,
6987
#ifndef ERR_ALTERNATE
6988
	"14.6",
6989
#else
6990
	"????",
6991
#endif
6992
	"Qualifier '%0' expands to the non-class type '%1'"
6993
    },
6994
    {
6995
	"temp_res_qual",
6996
	NULL,
6997
	0,
6998
	0,
6999
	NULL,
7000
	"Qualifier in 'typename' doesn't depend on a template parameter"
7001
    },
7002
    {
7003
	"temp_res_type",
7004
	"A6",
7005
	0,
7006
	0,
7007
	NULL,
7008
	"'typename %0::%1' doesn't denote a type"
7009
    },
7010
    {
7011
	"temp_res_key",
7012
	"179G",
7013
	0,
7014
	0,
7015
	NULL,
7016
	"Template parameter '%1' of '%2' should be '%0', not '%3'"
7017
    },
7018
    {
7019
	"temp_local_not",
7020
	"G",
7021
	0,
7022
	0,
7023
#ifndef ERR_ALTERNATE
7024
	"14.6.1",
7025
#else
7026
	"????",
7027
#endif
7028
	"Can't use the template type '%0' in this context"
7029
    },
7030
    {
7031
	"temp_local_hide",
7032
	"7",
7033
	0,
7034
	0,
7035
	NULL,
7036
	"Can't hide the template parameter '%0'"
7037
    },
7038
    {
7039
	"temp_spec_type",
7040
	"G7",
7041
	0,
7042
	0,
7043
#ifndef ERR_ALTERNATE
7044
	"14.7",
7045
#else
7046
	"????",
7047
#endif
7048
	"Invalid type '%0' for specialization of template '%1'"
7049
    },
7050
    {
7051
	"temp_spec_bad",
7052
	"G",
7053
	0,
7054
	0,
7055
	NULL,
7056
	"Invalid specialization for template '%0'"
7057
    },
7058
    {
7059
	"temp_spec_member",
7060
	"9",
7061
	0,
7062
	0,
7063
	NULL,
7064
	"Can't specialize '%0' in a class"
7065
    },
7066
    {
7067
	"temp_spec_prefix",
7068
	NULL,
7069
	OPT_new,
7070
	0,
7071
	NULL,
7072
	"'template <>' required in template specialization"
7073
    },
7074
    {
7075
	"temp_spec_reinst",
7076
	"G",
7077
	0,
7078
	0,
7079
	NULL,
7080
	"Template '%0' already explicitly instantiated"
7081
    },
7082
    {
7083
	"temp_spec_respec",
7084
	"G",
7085
	OPT_none,
7086
	0,
7087
	NULL,
7088
	"Template '%0' already explicitly specialized"
7089
    },
7090
    {
7091
	"temp_spec_redecl",
7092
	"G",
7093
	0,
7094
	0,
7095
	NULL,
7096
	"Template '%0' both explicitly instantiated and explicitly specialized"
7097
    },
7098
    {
7099
	"temp_spec_used",
7100
	"G",
7101
	0,
7102
	0,
7103
	NULL,
7104
	"Template '%0' specialized after use"
7105
    },
7106
    {
7107
	"temp_spec_post",
7108
	"GG",
7109
	0,
7110
	0,
7111
	NULL,
7112
	"Template specialization '%0' matches previously used instance '%1'"
7113
    },
7114
    {
7115
	"temp_inst_def",
7116
	"G",
7117
	OPT_wall,
7118
	0,
7119
#ifndef ERR_ALTERNATE
7120
	"14.7.1",
7121
#else
7122
	"????",
7123
#endif
7124
	"Instantiating template '%0'"
7125
    },
7126
    {
7127
	"temp_inst_depth",
7128
	"L",
7129
	0,
7130
	0,
7131
	NULL,
7132
	"Template instantiation depth too great (%0)"
7133
    },
7134
    {
7135
	"temp_inst_comment",
7136
	"GD",
7137
	OPT_whatever,
7138
	0,
7139
	NULL,
7140
	"In instantiation of template '%0' (at %1)"
7141
    },
7142
    {
7143
	"temp_explicit_bad",
7144
	"9",
7145
	0,
7146
	0,
7147
#ifndef ERR_ALTERNATE
7148
	"14.7.2",
7149
#else
7150
	"????",
7151
#endif
7152
	"No template from which to instantiate '%0'"
7153
    },
7154
    {
7155
	"temp_explicit_id",
7156
	"7",
7157
	OPT_none,
7158
	0,
7159
	NULL,
7160
	"'%0 <>' required in explicit template instantiation"
7161
    },
7162
    {
7163
	"temp_explicit_def",
7164
	NULL,
7165
	0,
7166
	0,
7167
	NULL,
7168
	"Can't have definition in explicit template instantiation"
7169
    },
7170
    {
7171
	"temp_explicit_incompl",
7172
	NULL,
7173
	0,
7174
	0,
7175
	NULL,
7176
	"Complete class required in explicit template instantiation"
7177
    },
7178
    {
7179
	"temp_explicit_templ",
7180
	NULL,
7181
	0,
7182
	0,
7183
	NULL,
7184
	"Invalid template instantiation"
7185
    },
7186
    {
7187
	"temp_expl_spec_dargs",
7188
	NULL,
7189
	0,
7190
	0,
7191
#ifndef ERR_ALTERNATE
7192
	"14.7.3",
7193
#else
7194
	"????",
7195
#endif
7196
	"Can't have default function arguments in explicit specialization"
7197
    },
7198
    {
7199
	"temp_deduct_fail",
7200
	"9",
7201
	0,
7202
	0,
7203
#ifndef ERR_ALTERNATE
7204
	"14.8.2",
7205
#else
7206
	"????",
7207
#endif
7208
	"Template argument deduction failed for '%0'"
7209
    },
7210
    {
7211
	"temp_deduct_undef",
7212
	"79",
7213
	0,
7214
	0,
7215
	NULL,
7216
	"Can't deduce value of template parameter '%0'"
7217
    },
7218
    {
7219
	"except_handlers",
7220
	NULL,
7221
	0,
7222
	0,
7223
#ifndef ERR_ALTERNATE
7224
	"15",
7225
#else
7226
	"????",
7227
#endif
7228
	"A 'try' block must have at least one associated 'catch' handler"
7229
    },
7230
    {
7231
	"except_not",
7232
	NULL,
7233
	OPT_throw_bad,
7234
	0,
7235
	NULL,
7236
	"Body of 'try' block doesn't throw an exception"
7237
    },
7238
    {
7239
	"except_jump_into",
7240
	NULL,
7241
	0,
7242
	0,
7243
	NULL,
7244
	"Can't jump into a 'try' block or handler"
7245
    },
7246
    {
7247
	"except_throw_type",
7248
	NULL,
7249
	0,
7250
	0,
7251
#ifndef ERR_ALTERNATE
7252
	"15.1",
7253
#else
7254
	"????",
7255
#endif
7256
	"Can only throw an expression, not a type"
7257
    },
7258
    {
7259
	"except_throw_typedef",
7260
	NULL,
7261
	0,
7262
	0,
7263
	NULL,
7264
	"Can't define a type in a 'throw' expression"
7265
    },
7266
    {
7267
	"except_throw_copy",
7268
	NULL,
7269
	OPT_whatever,
7270
	0,
7271
	NULL,
7272
	"'throw' expression is copied to temporary variable"
7273
    },
7274
    {
7275
	"except_throw_incompl",
7276
	NULL,
7277
	0,
7278
	0,
7279
	NULL,
7280
	"Can't throw a reference to an incomplete class"
7281
    },
7282
    {
7283
	"except_throw_ambig",
7284
	NULL,
7285
	OPT_none,
7286
	0,
7287
	NULL,
7288
	"Can't throw an expression with an ambiguous base class"
7289
    },
7290
    {
7291
	"except_handle_typedef",
7292
	NULL,
7293
	0,
7294
	0,
7295
#ifndef ERR_ALTERNATE
7296
	"15.3",
7297
#else
7298
	"????",
7299
#endif
7300
	"Can't define a type in an exception declaration"
7301
    },
7302
    {
7303
	"except_handle_unreach",
7304
	"GG",
7305
	OPT_throw_bad,
7306
	0,
7307
	NULL,
7308
	"Exceptions of type '%0' will be caught by the previous '%1' handler"
7309
    },
7310
    {
7311
	"except_handle_ellipsis",
7312
	NULL,
7313
	0,
7314
	0,
7315
	NULL,
7316
	"A '...' exception handler must be the last in its block"
7317
    },
7318
    {
7319
	"except_handle_incompl",
7320
	NULL,
7321
	0,
7322
	0,
7323
	NULL,
7324
	"Can't catch a reference to an incomplete class"
7325
    },
7326
    {
7327
	"except_handle_return",
7328
	"7",
7329
	0,
7330
	0,
7331
	NULL,
7332
	"Can't return from exception handler in '%0'"
7333
    },
7334
    {
7335
	"except_spec_bad",
7336
	NULL,
7337
	0,
7338
	0,
7339
#ifndef ERR_ALTERNATE
7340
	"15.4",
7341
#else
7342
	"????",
7343
#endif
7344
	"Can only use exception specification in a function declarator"
7345
    },
7346
    {
7347
	"except_spec_typedef",
7348
	NULL,
7349
	0,
7350
	0,
7351
	NULL,
7352
	"Can't define a type in an exception specification"
7353
    },
7354
    {
7355
	"except_spec_ellipsis",
7356
	NULL,
7357
	0,
7358
	0,
7359
	NULL,
7360
	"Can't use '...' in an exception specification"
7361
    },
7362
    {
7363
	"except_spec_incompl",
7364
	NULL,
7365
	OPT_new,
7366
	0,
7367
	NULL,
7368
	"Can't have a reference to an incomplete class in an exception specification"
7369
    },
7370
    {
7371
	"except_spec_wrong",
7372
	"7D",
7373
	0,
7374
	0,
7375
	NULL,
7376
	"Redeclaration of '%0' should have the same exception specifiers (see %1)"
7377
    },
7378
    {
7379
	"except_spec_virtual",
7380
	"79D",
7381
	0,
7382
	0,
7383
	NULL,
7384
	"Exception specifiers for overriding virtual function '%0' should be more restrictive than those for '%1' (see %2)"
7385
    },
7386
    {
7387
	"except_spec_assign",
7388
	NULL,
7389
	0,
7390
	0,
7391
	NULL,
7392
	"Exception specifiers in conversion should be more restrictive"
7393
    },
7394
    {
7395
	"except_spec_init",
7396
	NULL,
7397
	0,
7398
	0,
7399
	NULL,
7400
	"Exception specifiers in initialization should match"
7401
    },
7402
    {
7403
	"except_spec_throw",
7404
	"G",
7405
	OPT_throw_bad,
7406
	0,
7407
	NULL,
7408
	"Uncaught exception of type '%0' thrown"
7409
    },
7410
    {
7411
	"except_spec_call",
7412
	"9G",
7413
	OPT_throw_bad,
7414
	0,
7415
	NULL,
7416
	"Function '%0' may throw an uncaught exception of type '%1'"
7417
    },
7418
    {
7419
	"cpp_bad",
7420
	NULL,
7421
	OPT_ppdir_id,
7422
	0,
7423
#ifndef ERR_ALTERNATE
7424
	"16",
7425
#else
7426
	"6.8",
7427
#endif
7428
	"Bad preprocessing directive"
7429
    },
7430
    {
7431
	"cpp_unknown",
7432
	"6",
7433
	OPT_ppdir_unknown,
7434
	0,
7435
	NULL,
7436
	"Unknown preprocessing directive, '#%0'"
7437
    },
7438
    {
7439
	"cpp_end",
7440
	"8",
7441
	0,
7442
	0,
7443
	NULL,
7444
	"End of '#%0' directive expected"
7445
    },
7446
    {
7447
	"cpp_indent",
7448
	NULL,
7449
	OPT_ppdir_indent,
7450
	0,
7451
	NULL,
7452
	"Indented preprocessing directive"
7453
    },
7454
    {
7455
	"cpp_indent_dir",
7456
	NULL,
7457
	OPT_ppdir_indent_dir,
7458
	0,
7459
	NULL,
7460
	"Space after '#' in preprocessing directive"
7461
    },
7462
    {
7463
	"cpp_space_replace",
7464
	NULL,
7465
	0,
7466
	0,
7467
	NULL,
7468
	"White space required before illegal character in replacement list"
7469
    },
7470
    {
7471
	"cpp_old",
7472
	"8",
7473
	OPT_none,
7474
	0,
7475
	NULL,
7476
	"Pre-ISO preprocessors don't handle '#%0'"
7477
    },
7478
    {
7479
	"cpp_cond_if_match",
7480
	"88",
7481
	0,
7482
	0,
7483
#ifndef ERR_ALTERNATE
7484
	"16.1",
7485
#else
7486
	"6.8.1",
7487
#endif
7488
	"'#%0' without matching '#%1'"
7489
    },
7490
    {
7491
	"cpp_cond_else_dup",
7492
	"88D",
7493
	0,
7494
	0,
7495
	NULL,
7496
	"'#%0' after '#%1' (at %2)"
7497
    },
7498
    {
7499
	"cpp_cond_def_id",
7500
	NULL,
7501
	0,
7502
	0,
7503
	NULL,
7504
	"Bad 'defined' operation"
7505
    },
7506
    {
7507
	"cpp_cond_def_replace",
7508
	NULL,
7509
	OPT_wall,
7510
	0,
7511
	NULL,
7512
	"Macro expansion gives 'defined'"
7513
    },
7514
    {
7515
	"cpp_cond_ifdef_id",
7516
	"8",
7517
	0,
7518
	0,
7519
	NULL,
7520
	"Macro identifier expected after '#%0'"
7521
    },
7522
    {
7523
	"cpp_cond_zero",
7524
	"6",
7525
	OPT_none,
7526
	0,
7527
	NULL,
7528
	"Identifier '%0' replaced by '0'"
7529
    },
7530
    {
7531
	"cpp_cond_if_const",
7532
	"8",
7533
	0,
7534
	0,
7535
	NULL,
7536
	"Integer constant expression expected after '#%0'"
7537
    },
7538
    {
7539
	"cpp_cond_if_ti",
7540
	"8",
7541
	OPT_wall,
7542
	0,
7543
	NULL,
7544
	"Target dependent '#%0'"
7545
    },
7546
    {
7547
	"cpp_cond_if_ti_decl",
7548
	"8",
7549
	OPT_decl_cond,
7550
	0,
7551
	NULL,
7552
	"Can't have target dependent '#%0' at outer level"
7553
    },
7554
    {
7555
	"cpp_cond_if_jump_into",
7556
	NULL,
7557
	0,
7558
	0,
7559
	NULL,
7560
	"Can't jump into a target dependent '#if' statement"
7561
    },
7562
    {
7563
	"cpp_cond_if_macro",
7564
	"6",
7565
	0,
7566
	0,
7567
#ifndef ERR_ALTERNATE
7568
	"16.1",
7569
#else
7570
	"6.8.1",
7571
#endif
7572
	"Can't define macro '%0' in a target dependent '#if' statement"
7573
    },
7574
    {
7575
	"cpp_cond_endif_end",
7576
	"8",
7577
	OPT_ppdir_text,
7578
	0,
7579
	NULL,
7580
	"No text allowed after '#%0' directive"
7581
    },
7582
    {
7583
	"cpp_include_bad",
7584
	NULL,
7585
	0,
7586
	0,
7587
#ifndef ERR_ALTERNATE
7588
	"16.2",
7589
#else
7590
	"6.8.2",
7591
#endif
7592
	"Illegal header name"
7593
    },
7594
    {
7595
	"cpp_include_incompl",
7596
	NULL,
7597
	0,
7598
	0,
7599
	NULL,
7600
	"Incomplete header name"
7601
    },
7602
    {
7603
	"cpp_include_undef",
7604
	"J",
7605
	OPT_wall,
7606
	0,
7607
	NULL,
7608
	"Undefined header name, '%0'"
7609
    },
7610
    {
7611
	"cpp_include_empty",
7612
	NULL,
7613
	0,
7614
	0,
7615
	NULL,
7616
	"Empty header name"
7617
    },
7618
    {
7619
	"cpp_include_full",
7620
	"J",
7621
	OPT_include_full,
7622
	0,
7623
	NULL,
7624
	"Inclusion of '%0' may not be portable"
7625
    },
7626
    {
7627
	"cpp_include_unknown",
7628
	"J",
7629
	0,
7630
	0,
7631
	NULL,
7632
	"Can't open included file, '%0'"
7633
    },
7634
    {
7635
	"cpp_include_open",
7636
	"J",
7637
	OPT_include_verbose,
7638
	0,
7639
	NULL,
7640
	"Opening included file, '%0'"
7641
    },
7642
    {
7643
	"cpp_include_close",
7644
	"J",
7645
	OPT_include_verbose,
7646
	0,
7647
	NULL,
7648
	"Closing included file, '%0'"
7649
    },
7650
    {
7651
	"cpp_include_depth",
7652
	"L",
7653
	0,
7654
	0,
7655
	NULL,
7656
	"Include depth too great (%0)"
7657
    },
7658
    {
7659
	"cpp_include_dup",
7660
	"JD",
7661
	OPT_include_verbose,
7662
	0,
7663
	NULL,
7664
	"File '%0' has already been included (from %1)"
7665
    },
7666
    {
7667
	"cpp_include_date",
7668
	NULL,
7669
	OPT_wall,
7670
	0,
7671
	NULL,
7672
	"Date stamp on file has changed"
7673
    },
7674
    {
7675
	"cpp_replace_id",
7676
	"8",
7677
	0,
7678
	0,
7679
#ifndef ERR_ALTERNATE
7680
	"16.3",
7681
#else
7682
	"6.8.3",
7683
#endif
7684
	"Macro identifier expected after '#%0'"
7685
    },
7686
    {
7687
	"cpp_replace_redef_ok",
7688
	"7D",
7689
	OPT_none,
7690
	0,
7691
	NULL,
7692
	"Macro '%0' redefined (see %1)"
7693
    },
7694
    {
7695
	"cpp_replace_redef_bad",
7696
	"7D",
7697
	OPT_macro_redef,
7698
	0,
7699
	NULL,
7700
	"Macro '%0' redefined inconsistently (see %1)"
7701
    },
7702
    {
7703
	"cpp_replace_redef_weak",
7704
	"7D",
7705
	OPT_macro_weak,
7706
	0,
7707
	NULL,
7708
	"Macro '%0' redefined with parameter renaming (see %1)"
7709
    },
7710
    {
7711
	"cpp_replace_redef_space",
7712
	"7D",
7713
	OPT_macro_weak,
7714
	0,
7715
	NULL,
7716
	"Macro '%0' redefined with differing white space (see %1)"
7717
    },
7718
    {
7719
	"cpp_replace_redef_nest",
7720
	"7D",
7721
	OPT_macro_nest,
7722
	0,
7723
	NULL,
7724
	"Nested definition of macro '%0' (see %1)"
7725
    },
7726
    {
7727
	"cpp_replace_par_dup",
7728
	"66",
7729
	0,
7730
	0,
7731
	NULL,
7732
	"Parameter '%0' already defined for macro '%1'"
7733
    },
7734
    {
7735
	"cpp_replace_par_bad",
7736
	"6",
7737
	0,
7738
	0,
7739
	NULL,
7740
	"Badly punctuated parameters for macro '%0'"
7741
    },
7742
    {
7743
	"cpp_replace_arg_none",
7744
	"6",
7745
	OPT_wall,
7746
	0,
7747
	NULL,
7748
	"Macro '%0' invoked without arguments"
7749
    },
7750
    {
7751
	"cpp_replace_arg_empty",
7752
	"M6",
7753
	OPT_wall,
7754
	0,
7755
	NULL,
7756
	"Argument %0 for macro '%1' is empty"
7757
    },
7758
    {
7759
	"cpp_replace_arg_ppdir",
7760
	"6",
7761
	OPT_macro_arg_dir,
7762
	0,
7763
	NULL,
7764
	"Preprocessing directive in arguments for macro '%0'"
7765
    },
7766
    {
7767
	"cpp_replace_arg_eof",
7768
	"6",
7769
	0,
7770
	0,
7771
	NULL,
7772
	"Unterminated arguments for macro '%0'"
7773
    },
7774
    {
7775
	"cpp_replace_arg_number",
7776
	"6MNM",
7777
	0,
7778
	0,
7779
	NULL,
7780
	"Macro '%0' applied with %1 argument%2, not %3"
7781
    },
7782
    {
7783
	"cpp_stringize_par",
7784
	"6",
7785
	OPT_hash_ident,
7786
	0,
7787
#ifndef ERR_ALTERNATE
7788
	"16.3.2",
7789
#else
7790
	"6.8.3.2",
7791
#endif
7792
	"'#' should be followed by a parameter for macro '%0'"
7793
    },
7794
    {
7795
	"cpp_stringize_bad",
7796
	"6",
7797
	0,
7798
	0,
7799
	NULL,
7800
	"Invalid string formed by macro '%0'"
7801
    },
7802
    {
7803
	"cpp_stringize_old",
7804
	"66",
7805
	OPT_wall,
7806
	0,
7807
	NULL,
7808
	"Quoted parameter '%0' in definition of macro '%1'"
7809
    },
7810
    {
7811
	"cpp_concat_place",
7812
	"6",
7813
	0,
7814
	0,
7815
#ifndef ERR_ALTERNATE
7816
	"16.3.3",
7817
#else
7818
	"6.8.3.3",
7819
#endif
7820
	"Badly placed '##' operator in macro '%0'"
7821
    },
7822
    {
7823
	"cpp_concat_bad",
7824
	"6",
7825
	0,
7826
	0,
7827
	NULL,
7828
	"Invalid result for '##' operator in macro '%0'"
7829
    },
7830
    {
7831
	"cpp_rescan_recursive",
7832
	"6",
7833
	OPT_wall,
7834
	0,
7835
#ifndef ERR_ALTERNATE
7836
	"16.3.4",
7837
#else
7838
	"6.8.3.4",
7839
#endif
7840
	"Macro '%0' used recursively"
7841
    },
7842
    {
7843
	"cpp_scope_id",
7844
	"8",
7845
	0,
7846
	0,
7847
#ifndef ERR_ALTERNATE
7848
	"16.3.5",
7849
#else
7850
	"6.8.3.5",
7851
#endif
7852
	"Macro identifier expected after '#%0'"
7853
    },
7854
    {
7855
	"cpp_scope_undef",
7856
	"6",
7857
	OPT_none,
7858
	0,
7859
	NULL,
7860
	"Undefined macro '%0' was not defined"
7861
    },
7862
    {
7863
	"cpp_line_bad",
7864
	"8",
7865
	0,
7866
	0,
7867
#ifndef ERR_ALTERNATE
7868
	"16.4",
7869
#else
7870
	"6.8.4",
7871
#endif
7872
	"Line number expected after '#%0'"
7873
    },
7874
    {
7875
	"cpp_line_float",
7876
	"8",
7877
	0,
7878
	0,
7879
	NULL,
7880
	"Invalid line number in '#%0'"
7881
    },
7882
    {
7883
	"cpp_line_range",
7884
	"8",
7885
	0,
7886
	0,
7887
	NULL,
7888
	"Line number out of range in '#%0'"
7889
    },
7890
    {
7891
	"cpp_error_msg",
7892
	"J",
7893
	0,
7894
	0,
7895
#ifndef ERR_ALTERNATE
7896
	"16.5",
7897
#else
7898
	"6.8.5",
7899
#endif
7900
	"%0"
7901
    },
7902
    {
7903
	"cpp_pragma_unknown",
7904
	"8",
7905
	OPT_pragma_unknown,
7906
	0,
7907
#ifndef ERR_ALTERNATE
7908
	"16.6",
7909
#else
7910
	"6.8.6",
7911
#endif
7912
	"Unknown '#%0' directive"
7913
    },
7914
    {
7915
	"cpp_null",
7916
	NULL,
7917
	OPT_wall,
7918
	0,
7919
#ifndef ERR_ALTERNATE
7920
	"16.7",
7921
#else
7922
	"6.8.7",
7923
#endif
7924
	"Null preprocessing directive"
7925
    },
7926
    {
7927
	"cpp_predef_bad",
7928
	"68",
7929
	0,
7930
	0,
7931
#ifndef ERR_ALTERNATE
7932
	"16.8",
7933
#else
7934
	"6.8.8",
7935
#endif
7936
	"Identifier '%0' subject of '#%1' directive"
7937
    },
7938
    {
7939
	"cpp_predef_undef",
7940
	"7",
7941
	0,
7942
	0,
7943
	NULL,
7944
	"Undefining built-in macro '%0'"
7945
    },
7946
    {
7947
	"cpp_predef_redef",
7948
	"7",
7949
	0,
7950
	0,
7951
	NULL,
7952
	"Built-in macro '%0' redefined"
7953
    },
7954
    {
7955
	"cpp_predef_keyword",
7956
	"6",
7957
	OPT_wall,
7958
	0,
7959
	NULL,
7960
	"Keyword '%0' redefined using '#define'"
7961
    },
7962
    {
7963
	"lib_builtin",
7964
	"J6",
7965
	0,
7966
	0,
7967
#ifndef ERR_ALTERNATE
7968
	"18",
7969
#else
7970
	"????",
7971
#endif
7972
	"Built-in '%0::%1' not declared"
7973
    },
7974
    {
7975
	"printf_unknown",
7976
	"J",
7977
	OPT_printf_string,
7978
	9,
7979
	NULL,
7980
	"Unknown format string, '%0'"
7981
    },
7982
    {
7983
	"printf_invalid",
7984
	"J",
7985
	OPT_printf_string,
7986
	9,
7987
	NULL,
7988
	"Invalid format string, '%0'"
7989
    },
7990
    {
7991
	"printf_unterm",
7992
	"J",
7993
	OPT_printf_string,
7994
	9,
7995
	NULL,
7996
	"Unterminated '%0' format string"
7997
    },
7998
    {
7999
	"printf_flags",
8000
	"JJ",
8001
	OPT_printf_string,
8002
	9,
8003
	NULL,
8004
	"Can't have flags '%0' with '%1' format string"
8005
    },
8006
    {
8007
	"printf_width",
8008
	"J",
8009
	OPT_printf_string,
8010
	9,
8011
	NULL,
8012
	"Can't have field width with '%0' format string"
8013
    },
8014
    {
8015
	"printf_precision",
8016
	"J",
8017
	OPT_printf_string,
8018
	9,
8019
	NULL,
8020
	"Can't have precision with '%0' format string"
8021
    },
8022
    {
8023
	"printf_arg_zero",
8024
	NULL,
8025
	OPT_printf_string,
8026
	9,
8027
	NULL,
8028
	"Can't have argument zero in format string"
8029
    },
8030
    {
8031
	"printf_arg_large",
8032
	"M",
8033
	OPT_printf_string,
8034
	9,
8035
	NULL,
8036
	"Argument %0 in format string out of range"
8037
    },
8038
    {
8039
	"printf_arg_compat",
8040
	"M",
8041
	OPT_printf_string,
8042
	9,
8043
	NULL,
8044
	"Incompatible format string for argument %0"
8045
    },
8046
    {
8047
	"printf_arg_none",
8048
	"M",
8049
	OPT_printf_string,
8050
	9,
8051
	NULL,
8052
	"No format string given for argument %0"
8053
    },
8054
    {
8055
	"printf_arg_mix",
8056
	NULL,
8057
	OPT_printf_string,
8058
	9,
8059
	NULL,
8060
	"Can't mix numbered and unnumbered arguments in format string"
8061
    },
8062
    {
8063
	"limits_max",
8064
	"JLL",
8065
	0,
8066
	0,
8067
#ifndef ERR_ALTERNATE
8068
	"Annex B",
8069
#else
8070
	"5.2.4.1",
8071
#endif
8072
	"Value for '%0' (%1) exceeds implementation limit (%2)"
8073
    },
8074
    {
8075
	"limits_min",
8076
	"JLL",
8077
	OPT_wall,
8078
	0,
8079
	NULL,
8080
	"Value for '%0' (%1) exceeds minimum implementation limit (%2)"
8081
    },
8082
    {
8083
	"pragma_scope_undef",
8084
	"6",
8085
	0,
8086
	5,
8087
	"",
8088
	"Checking scope '%0' not defined"
8089
    },
8090
    {
8091
	"pragma_scope_redef",
8092
	"6",
8093
	0,
8094
	5,
8095
	NULL,
8096
	"Checking scope '%0' already defined"
8097
    },
8098
    {
8099
	"pragma_scope_end",
8100
	NULL,
8101
	0,
8102
	5,
8103
	NULL,
8104
	"Unexpected end of checking scope"
8105
    },
8106
    {
8107
	"pragma_scope_set",
8108
	"J",
8109
	0,
8110
	5,
8111
	NULL,
8112
	"Option '%0' has already been set in this scope"
8113
    },
8114
    {
8115
	"pragma_dblock_name",
8116
	"6",
8117
	0,
8118
	5,
8119
	NULL,
8120
	"Name mismatch for end of declaration block '%0'"
8121
    },
8122
    {
8123
	"pragma_dblock_end",
8124
	NULL,
8125
	0,
8126
	5,
8127
	NULL,
8128
	"Unexpected end of declaration block"
8129
    },
8130
    {
8131
	"pragma_dir_undef",
8132
	"J",
8133
	0,
8134
	5,
8135
	NULL,
8136
	"Directory '%0' not defined"
8137
    },
8138
    {
8139
	"pragma_dir_mode",
8140
	"J",
8141
	0,
8142
	5,
8143
	NULL,
8144
	"Checking mode for directory '%0' already defined"
8145
    },
8146
    {
8147
	"pragma_error_bad",
8148
	"F",
8149
	0,
8150
	5,
8151
	NULL,
8152
	"Unknown error, %0"
8153
    },
8154
    {
8155
	"pragma_option_bad",
8156
	"F",
8157
	0,
8158
	5,
8159
	NULL,
8160
	"Unknown option, %0"
8161
    },
8162
    {
8163
	"pragma_keyword_bad",
8164
	"6",
8165
	0,
8166
	5,
8167
	NULL,
8168
	"Unknown keyword, '%0'"
8169
    },
8170
    {
8171
	"pragma_char_lit",
8172
	"G",
8173
	0,
8174
	5,
8175
	NULL,
8176
	"Character literal should have integral type, not '%0'"
8177
    },
8178
    {
8179
	"pragma_builtin_type",
8180
	"G",
8181
	0,
8182
	5,
8183
	NULL,
8184
	"Built-in type should be integral, not '%0'"
8185
    },
8186
    {
8187
	"pragma_promote_type",
8188
	"G",
8189
	0,
8190
	5,
8191
	NULL,
8192
	"Promotion type should be integral, not '%0'"
8193
    },
8194
    {
8195
	"pragma_promote_compat",
8196
	"G",
8197
	OPT_whatever,
8198
	5,
8199
	NULL,
8200
	"Promotion types for '%0' should be compatible"
8201
    },
8202
    {
8203
	"pragma_compat_type",
8204
	NULL,
8205
	0,
8206
	5,
8207
	NULL,
8208
	"Invalid arguments for directive"
8209
    },
8210
    {
8211
	"pragma_arg_dup",
8212
	"G",
8213
	0,
8214
	5,
8215
	NULL,
8216
	"Inconsistent compatible argument type for '%0'"
8217
    },
8218
    {
8219
	"pragma_arg_cycle",
8220
	NULL,
8221
	0,
8222
	5,
8223
	NULL,
8224
	"Directive completes a cycle of compatible argument types"
8225
    },
8226
    {
8227
	"pragma_lit_type",
8228
	"G",
8229
	0,
8230
	5,
8231
	NULL,
8232
	"Literal type should be a promoted integral type, not '%0'"
8233
    },
8234
    {
8235
	"pragma_lit_range",
8236
	"BG",
8237
	OPT_none,
8238
	5,
8239
	NULL,
8240
	"Literal limit '%0' doesn't fit into type '%1'"
8241
    },
8242
    {
8243
	"pragma_lit_question",
8244
	NULL,
8245
	0,
8246
	5,
8247
	NULL,
8248
	"Type required in '?:' literal limit"
8249
    },
8250
    {
8251
	"pragma_token_sort",
8252
	"7",
8253
	0,
8254
	33,
8255
	NULL,
8256
	"Invalid sort for token '%0'"
8257
    },
8258
    {
8259
	"pragma_preserve_undecl",
8260
	"87",
8261
	0,
8262
	5,
8263
	NULL,
8264
	"Identifier in '%0' directive, '%1', doesn't have linkage"
8265
    },
8266
    {
8267
	"pragma_weak_redef",
8268
	"7",
8269
	0,
8270
	5,
8271
	NULL,
8272
	"Weak symbol '%0' already defined"
8273
    },
8274
    {
8275
	"pragma_cpp_known",
8276
	"8",
8277
	0,
8278
	5,
8279
	NULL,
8280
	"Preprocessing directive '#%0' used"
8281
    },
8282
    {
8283
	"pragma_cpp_ident",
8284
	"8",
8285
	0,
8286
	5,
8287
	NULL,
8288
	"String literal expected after '#%0'"
8289
    },
8290
    {
8291
	"pragma_assert_id",
8292
	"8",
8293
	0,
8294
	5,
8295
	NULL,
8296
	"Predicate identifier expected after '#%0'"
8297
    },
8298
    {
8299
	"pragma_assert_open",
8300
	"8",
8301
	0,
8302
	5,
8303
	NULL,
8304
	"Open bracket expected after predicate in '#%0'"
8305
    },
8306
    {
8307
	"pragma_assert_paren",
8308
	"8",
8309
	0,
8310
	5,
8311
	NULL,
8312
	"Unterminated predicate token sequence in '#%0'"
8313
    },
8314
    {
8315
	"pragma_assert_empty",
8316
	"8",
8317
	0,
8318
	5,
8319
	NULL,
8320
	"Empty predicate token sequence in '#%0'"
8321
    },
8322
    {
8323
	"pragma_assert_pred",
8324
	"6",
8325
	OPT_ppdir_assert,
8326
	5,
8327
	NULL,
8328
	"Predicate '%0' used"
8329
    },
8330
    {
8331
	"port_entry_undef",
8332
	"J",
8333
	0,
8334
	5,
8335
	NULL,
8336
	"Portability table entry '%0' not defined"
8337
    },
8338
    {
8339
	"port_entry_redef",
8340
	"J",
8341
	0,
8342
	5,
8343
	NULL,
8344
	"Portability table entry '%0' already defined"
8345
    },
8346
    {
8347
	"token_info",
8348
	"7",
8349
	OPT_whatever,
8350
	33,
8351
	"",
8352
	"'%0' is tokenized"
8353
    },
8354
    {
8355
	"token_redecl",
8356
	"7D",
8357
	0,
8358
	33,
8359
	NULL,
8360
	"Token '%0' declared inconsistently (see %1)"
8361
    },
8362
    {
8363
	"token_redef",
8364
	"7D",
8365
	0,
8366
	33,
8367
	NULL,
8368
	"Incompatible redefinition for token '%0' (see %1)"
8369
    },
8370
    {
8371
	"token_redef_ok",
8372
	"7D",
8373
	OPT_token_redef,
8374
	33,
8375
	NULL,
8376
	"Redefinition of token '%0' (see %1)"
8377
    },
8378
    {
8379
	"token_undef",
8380
	"7",
8381
	OPT_token_undef,
8382
	33,
8383
	NULL,
8384
	"Token '%0' not defined"
8385
    },
8386
    {
8387
	"token_undecl",
8388
	"7",
8389
	0,
8390
	33,
8391
	NULL,
8392
	"Token '%0' not declared"
8393
    },
8394
    {
8395
	"token_qual",
8396
	"7",
8397
	0,
8398
	33,
8399
	NULL,
8400
	"Can't qualify the token name '%0'"
8401
    },
8402
    {
8403
	"token_scope",
8404
	"7",
8405
	0,
8406
	33,
8407
	NULL,
8408
	"Identifier '%0' used out of scope"
8409
    },
8410
    {
8411
	"token_no_def",
8412
	"7D",
8413
	0,
8414
	33,
8415
	NULL,
8416
	"Token in 'no_def' directive, '%0', has already been defined (at %1)"
8417
    },
8418
    {
8419
	"token_def_not",
8420
	"7",
8421
	0,
8422
	33,
8423
	NULL,
8424
	"Can't define token '%0'"
8425
    },
8426
    {
8427
	"token_def_args",
8428
	"7",
8429
	0,
8430
	33,
8431
	NULL,
8432
	"Wrong number of parameters in definition of token '%0'"
8433
    },
8434
    {
8435
	"token_def_func",
8436
	"7G",
8437
	0,
8438
	33,
8439
	NULL,
8440
	"Function of type '%1' required in 'FUNC' token definition, not '%0'"
8441
    },
8442
    {
8443
	"token_def_ambig",
8444
	"7",
8445
	0,
8446
	33,
8447
	NULL,
8448
	"Ambiguous 'FUNC' token '%0' in definition"
8449
    },
8450
    {
8451
	"token_def_except",
8452
	NULL,
8453
	0,
8454
	33,
8455
	NULL,
8456
	"Exception specifiers should match in 'FUNC' token definition"
8457
    },
8458
    {
8459
	"token_def_implicit",
8460
	"7",
8461
	OPT_func_token_undef,
8462
	33,
8463
	NULL,
8464
	"Implicit definition of token '%0'"
8465
    },
8466
    {
8467
	"token_proc_high",
8468
	NULL,
8469
	0,
8470
	33,
8471
	NULL,
8472
	"High-level 'PROC' tokens not allowed"
8473
    },
8474
    {
8475
	"token_func",
8476
	"G",
8477
	0,
8478
	33,
8479
	NULL,
8480
	"A 'FUNC' token should have function type, not '%0'"
8481
    },
8482
    {
8483
	"token_mem",
8484
	"G",
8485
	0,
8486
	33,
8487
	NULL,
8488
	"The second type in a 'MEMBER' token should have class type, not '%0'"
8489
    },
8490
    {
8491
	"token_mem_off",
8492
	NULL,
8493
	OPT_whatever,
8494
	33,
8495
	NULL,
8496
	"Constant offset required in 'MEMBER' token"
8497
    },
8498
    {
8499
	"token_stmt_ret",
8500
	"7",
8501
	0,
8502
	33,
8503
	NULL,
8504
	"Can't have 'return' statement in 'STATEMENT' token '%0'"
8505
    },
8506
    {
8507
	"token_stmt_jump",
8508
	NULL,
8509
	0,
8510
	33,
8511
	NULL,
8512
	"Jump into 'STATEMENT' token"
8513
    },
8514
    {
8515
	"token_const",
8516
	"7",
8517
	OPT_token_const,
8518
	33,
8519
	NULL,
8520
	"Non-constant 'EXP' token '%0' used in constant expression"
8521
    },
8522
    {
8523
	"token_arg_sort",
8524
	"7",
8525
	0,
8526
	33,
8527
	NULL,
8528
	"Wrong sort for 'PROC' token parameter '%0'"
8529
    },
8530
    {
8531
	"token_arg_bad",
8532
	"7",
8533
	0,
8534
	33,
8535
	NULL,
8536
	"Invalid 'PROC' token parameter '%0'"
8537
    },
8538
    {
8539
	"token_arg_exp",
8540
	"7",
8541
	OPT_whatever,
8542
	33,
8543
	NULL,
8544
	"Values for 'EXP' token '%0' are converted to the token type"
8545
    },
8546
    {
8547
	"token_arg_const",
8548
	"7",
8549
	0,
8550
	33,
8551
	NULL,
8552
	"Non-constant value for constant 'EXP' token '%0'"
8553
    },
8554
    {
8555
	"token_arg_lvalue",
8556
	"7",
8557
	0,
8558
	33,
8559
	NULL,
8560
	"Value for lvalue 'EXP' token '%0' is an rvalue"
8561
    },
8562
    {
8563
	"token_arg_mem",
8564
	"7",
8565
	OPT_whatever,
8566
	33,
8567
	NULL,
8568
	"Types for 'MEMBER' token '%0' should be compatible"
8569
    },
8570
    {
8571
	"token_arg_nat",
8572
	"7",
8573
	0,
8574
	33,
8575
	NULL,
8576
	"Non-negative integer constant required in 'NAT' token '%0'"
8577
    },
8578
    {
8579
	"token_arg_type",
8580
	"87G",
8581
	0,
8582
	33,
8583
	NULL,
8584
	"Invalid type for '%0' token '%1', '%2'"
8585
    },
8586
    {
8587
	"token_recursive",
8588
	"7",
8589
	0,
8590
	33,
8591
	NULL,
8592
	"Token '%0' defined recursively"
8593
    },
8594
    {
8595
	"token_arg_undef",
8596
	"77",
8597
	0,
8598
	33,
8599
	NULL,
8600
	"Can't deduce value of token parameter '%0' in application of token '%1'"
8601
    },
8602
    {
8603
	"token_conv",
8604
	"7GG",
8605
	OPT_none,
8606
	33,
8607
	NULL,
8608
	"Using token '%0' for conversion from '%1' to '%2'"
8609
    },
8610
    {
8611
	NULL,
8612
	NULL,
8613
	0,
8614
	0,
8615
	NULL,
8616
	NULL
8617
    }
8618
} ;