DiagnosticSerializationKinds.td revision 327952
1//==--- DiagnosticSerializationKinds.td - serialization diagnostics -------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10let Component = "Serialization" in {
11let CategoryName = "AST Deserialization Issue" in {
12
13def err_fe_unable_to_read_pch_file : Error<
14    "unable to read PCH file %0: '%1'">;
15def err_fe_not_a_pch_file : Error<
16    "input is not a PCH file: '%0'">;
17def err_fe_pch_malformed : Error<
18    "malformed or corrupted AST file: '%0'">, DefaultFatal;
19def err_fe_pch_malformed_block : Error<
20    "malformed block record in PCH file: '%0'">, DefaultFatal;
21def err_fe_pch_file_modified : Error<
22    "file '%0' has been modified since the precompiled header '%1' was built">,
23    DefaultFatal;
24def err_fe_module_file_modified : Error<
25    "file '%0' has been modified since the module file '%1' was built">,
26    DefaultFatal;
27def err_fe_ast_file_modified : Error<
28    "file '%0' has been modified since the AST file '%1' was built">,
29    DefaultFatal;
30def err_fe_pch_file_overridden : Error<
31    "file '%0' from the precompiled header has been overridden">;
32def note_pch_required_by : Note<"'%0' required by '%1'">;
33def note_pch_rebuild_required : Note<"please rebuild precompiled header '%0'">;
34def note_module_cache_path : Note<
35    "after modifying system headers, please delete the module cache at '%0'">;
36
37def err_pch_targetopt_mismatch : Error<
38    "PCH file was compiled for the %0 '%1' but the current translation "
39    "unit is being compiled for target '%2'">;
40def err_pch_targetopt_feature_mismatch : Error<
41    "%select{AST file|current translation unit}0 was compiled with the target "
42    "feature'%1' but the %select{current translation unit is|AST file was}0 "
43    "not">;
44def err_pch_langopt_mismatch : Error<"%0 was %select{disabled|enabled}1 in "
45    "PCH file but is currently %select{disabled|enabled}2">;
46def err_pch_langopt_value_mismatch : Error<
47  "%0 differs in PCH file vs. current file">;
48def err_pch_diagopt_mismatch : Error<"%0 is currently enabled, but was not in "
49  "the PCH file">;
50def err_pch_modulecache_mismatch : Error<"PCH was compiled with module cache "
51  "path '%0', but the path is currently '%1'">;
52  
53def err_pch_version_too_old : Error<
54    "PCH file uses an older PCH format that is no longer supported">;
55def err_pch_version_too_new : Error<
56    "PCH file uses a newer PCH format that cannot be read">;
57def err_pch_different_branch : Error<
58    "PCH file built from a different branch (%0) than the compiler (%1)">;
59def err_pch_with_compiler_errors : Error<
60    "PCH file contains compiler errors">;
61
62def err_module_file_conflict : Error<
63  "module '%0' is defined in both '%1' and '%2'">, DefaultFatal;
64def err_module_file_not_found : Error<
65  "%select{PCH|module|AST}0 file '%1' not found%select{|: %3}2">, DefaultFatal;
66def err_module_file_out_of_date : Error<
67  "%select{PCH|module|AST}0 file '%1' is out of date and "
68  "needs to be rebuilt%select{|: %3}2">, DefaultFatal;
69def err_module_file_invalid : Error<
70  "file '%1' is not a valid precompiled %select{PCH|module|AST}0 file">, DefaultFatal;
71def note_module_file_imported_by : Note<
72  "imported by %select{|module '%2' in }1'%0'">;
73def err_module_file_not_module : Error<
74  "AST file '%0' was not built as a module">, DefaultFatal;
75
76def err_imported_module_not_found : Error<
77    "module '%0' in AST file '%1' (imported by AST file '%2') "
78    "is not defined in any loaded module map file; "
79    "maybe you need to load '%3'?">, DefaultFatal;
80def note_imported_by_pch_module_not_found : Note<
81    "consider adding '%0' to the header search path">;
82def err_imported_module_modmap_changed : Error<
83    "module '%0' imported by AST file '%1' found in a different module map file"
84    " (%2) than when the importing AST file was built (%3)">, DefaultFatal;
85def err_imported_module_relocated : Error<
86    "module '%0' was built in directory '%1' but now resides in "
87    "directory '%2'">, DefaultFatal;
88def err_module_different_modmap : Error<
89    "module '%0' %select{uses|does not use}1 additional module map '%2'"
90    "%select{| not}1 used when the module was built">;
91
92def err_pch_macro_def_undef : Error<
93    "macro '%0' was %select{defined|undef'd}1 in the precompiled header but "
94    "%select{undef'd|defined}1 on the command line">;
95def err_pch_macro_def_conflict : Error<
96    "definition of macro '%0' differs between the precompiled header ('%1') "
97    "and the command line ('%2')">;
98def err_pch_undef : Error<
99    "%select{command line contains|precompiled header was built with}0 "
100    "'-undef' but %select{precompiled header was not built with it|"
101    "it is not present on the command line}0">;
102def err_pch_pp_detailed_record : Error<
103    "%select{command line contains|precompiled header was built with}0 "
104    "'-detailed-preprocessing-record' but %select{precompiled header was not "
105    "built with it|it is not present on the command line}0">;
106
107def err_module_odr_violation_missing_decl : Error<
108  "%q0 from module '%1' is not present in definition of %q2"
109  "%select{ in module '%4'| provided earlier}3">, NoSFINAE;
110def note_module_odr_violation_no_possible_decls : Note<
111  "definition has no member %0">;
112def note_module_odr_violation_possible_decl : Note<
113  "declaration of %0 does not match">;
114def err_module_odr_violation_different_definitions : Error<
115  "%q0 has different definitions in different modules; "
116  "%select{definition in module '%2' is here|defined here}1">;
117def note_first_module_difference : Note<
118  "in first definition, possible difference is here">;
119def note_module_odr_violation_different_definitions : Note<
120  "definition in module '%0' is here">;
121def note_second_module_difference : Note<
122  "in second definition, possible difference is here">;
123
124def err_module_odr_violation_different_instantiations : Error<
125  "instantiation of %q0 is different in different modules">;
126
127def err_module_odr_violation_definition_data : Error <
128  "%q0 has different definitions in different modules; first difference is "
129  "%select{definition in module '%2'|defined here}1 found "
130  "%select{"
131  "%4 base %plural{1:class|:classes}4|"
132  "%4 virtual base %plural{1:class|:classes}4|"
133  "%ordinal4 base class with type %5|"
134  "%ordinal4 %select{non-virtual|virtual}5 base class %6|"
135  "%ordinal4 base class %5 with "
136  "%select{public|protected|private|no}6 access specifier}3">;
137
138def note_module_odr_violation_definition_data : Note <
139  "but in '%0' found "
140  "%select{"
141  "%2 base %plural{1:class|:classes}2|"
142  "%2 virtual base %plural{1:class|:classes}2|"
143  "%ordinal2 base class with different type %3|"
144  "%ordinal2 %select{non-virtual|virtual}3 base class %4|"
145  "%ordinal2 base class %3 with "
146  "%select{public|protected|private|no}4 access specifier}1">;
147
148def err_module_odr_violation_template_parameter : Error <
149  "%q0 has different definitions in different modules; first difference is "
150  "%select{definition in module '%2'|defined here}1 found "
151  "%select{"
152  "unnamed template parameter|"
153  "template parameter %4|"
154  "template parameter with %select{no |}4default argument|"
155  "template parameter with default argument}3">;
156
157
158def note_module_odr_violation_template_parameter : Note <
159  "but in '%0' found "
160  "%select{"
161  "unnamed template parameter %2|"
162  "template parameter %2|"
163  "template parameter with %select{no |}2default argument|"
164  "template parameter with different default argument}1">;
165
166def err_module_odr_violation_mismatch_decl : Error<
167  "%q0 has different definitions in different modules; first difference is "
168  "%select{definition in module '%2'|defined here}1 found "
169  "%select{end of class|public access specifier|private access specifier|"
170  "protected access specifier|static assert|field|method|type alias|typedef|"
171  "data member|friend declaration}3">;
172def note_module_odr_violation_mismatch_decl : Note<"but in '%0' found "
173  "%select{end of class|public access specifier|private access specifier|"
174  "protected access specifier|static assert|field|method|type alias|typedef|"
175  "data member|friend declaration}1">;
176
177def err_module_odr_violation_mismatch_decl_diff : Error<
178  "%q0 has different definitions in different modules; first difference is "
179  "%select{definition in module '%2'|defined here}1 found "
180  "%select{"
181  "static assert with condition|"
182  "static assert with message|"
183  "static assert with %select{|no }4message|"
184  "field %4|"
185  "field %4 with type %5|"
186  "%select{non-|}5bitfield %4|"
187  "bitfield %4 with one width expression|"
188  "%select{non-|}5mutable field %4|"
189  "field %4 with %select{no|an}5 initalizer|"
190  "field %4 with an initializer|"
191  "%select{method %5|constructor|destructor}4|"
192  "%select{method %5|constructor|destructor}4 "
193    "is %select{not deleted|deleted}6|"
194  "%select{method %5|constructor|destructor}4 "
195    "is %select{|pure }6%select{not virtual|virtual}7|"
196  "%select{method %5|constructor|destructor}4 "
197    "is %select{not static|static}6|"
198  "%select{method %5|constructor|destructor}4 "
199    "is %select{not volatile|volatile}6|"
200  "%select{method %5|constructor|destructor}4 "
201    "is %select{not const|const}6|"
202  "%select{method %5|constructor|destructor}4 "
203    "is %select{not inline|inline}6|"
204  "%select{method %5|constructor|destructor}4 "
205    "that has %6 parameter%s6|"
206  "%select{method %5|constructor|destructor}4 "
207    "with %ordinal6 parameter of type %7%select{| decayed from %9}8|"
208  "%select{method %5|constructor|destructor}4 "
209    "with %ordinal6 parameter named %7|"
210  "%select{method %5|constructor|destructor}4 "
211    "with %ordinal6 parameter with%select{out|}7 a default argument|"
212  "%select{method %5|constructor|destructor}4 "
213    "with %ordinal6 parameter with a default argument|"
214  "%select{typedef|type alias}4 name %5|"
215  "%select{typedef|type alias}4 %5 with underlying type %6|"
216  "data member with name %4|"
217  "data member %4 with type %5|"
218  "data member %4 with%select{out|}5 an initializer|"
219  "data member %4 with an initializer|"
220  "data member %4 %select{is constexpr|is not constexpr}5|"
221  "friend %select{class|function}4|"
222  "friend %4|"
223  "friend function %4|"
224  "}3">;
225
226def note_module_odr_violation_mismatch_decl_diff : Note<"but in '%0' found "
227  "%select{"
228  "static assert with different condition|"
229  "static assert with different message|"
230  "static assert with %select{|no }2message|"
231  "field %2|"
232  "field %2 with type %3|"
233  "%select{non-|}3bitfield %2|"
234  "bitfield %2 with different width expression|"
235  "%select{non-|}3mutable field %2|"
236  "field %2 with %select{no|an}3 initializer|"
237  "field %2 with a different initializer|"
238  "%select{method %3|constructor|destructor}2|"
239  "%select{method %3|constructor|destructor}2 "
240    "is %select{not deleted|deleted}4|"
241  "%select{method %3|constructor|destructor}2 "
242    "is %select{|pure }4%select{not virtual|virtual}5|"
243  "%select{method %3|constructor|destructor}2 "
244    "is %select{not static|static}4|"
245  "%select{method %3|constructor|destructor}2 "
246    "is %select{not volatile|volatile}4|"
247  "%select{method %3|constructor|destructor}2 "
248    "is %select{not const|const}4|"
249  "%select{method %3|constructor|destructor}2 "
250    "is %select{not inline|inline}4|"
251  "%select{method %3|constructor|destructor}2 "
252    "that has %4 parameter%s4|"
253  "%select{method %3|constructor|destructor}2 "
254    "with %ordinal4 parameter of type %5%select{| decayed from %7}6|"
255  "%select{method %3|constructor|destructor}2 "
256    "with %ordinal4 parameter named %5|"
257  "%select{method %3|constructor|destructor}2 "
258    "with %ordinal4 parameter with%select{out|}5 a default argument|"
259  "%select{method %3|constructor|destructor}2 "
260    "with %ordinal4 parameter with a different default argument|"
261  "%select{typedef|type alias}2 name %3|"
262  "%select{typedef|type alias}2 %3 with different underlying type %4|"
263  "data member with name %2|"
264  "data member %2 with different type %3|"
265  "data member %2 with%select{out|}3 an initializer|"
266  "data member %2 with a different initializer|"
267  "data member %2 %select{is constexpr|is not constexpr}3|"
268  "friend %select{class|function}2|"
269  "friend %2|"
270  "friend function %2|"
271  "}1">;
272
273def err_module_odr_violation_function : Error<
274  "%q0 has different definitions in different modules; "
275  "%select{definition in module '%2'|defined here}1 "
276  "first difference is "
277  "%select{"
278  "return type is %4|"
279  "%ordinal4 parameter with name %5|"
280  "%ordinal4 parameter with type %5%select{| decayed from %7}6|"
281  "%ordinal4 parameter with%select{out|}5 a default argument|"
282  "%ordinal4 parameter with a default argument|"
283  "function body"
284  "}3">;
285
286def note_module_odr_violation_function : Note<"but in '%0' found "
287  "%select{"
288  "different return type %2|"
289  "%ordinal2 parameter with name %3|"
290  "%ordinal2 parameter with type %3%select{| decayed from %5}4|"
291  "%ordinal2 parameter with%select{out|}3 a default argument|"
292  "%ordinal2 parameter with a different default argument|"
293  "a different body"
294  "}1">;
295
296def err_module_odr_violation_mismatch_decl_unknown : Error<
297  "%q0 %select{with definition in module '%2'|defined here}1 has different "
298  "definitions in different modules; first difference is this "
299  "%select{||||static assert|field|method|type alias|typedef|data member|"
300  "friend declaration|unexpected decl}3">;
301def note_module_odr_violation_mismatch_decl_unknown : Note<
302  "but in '%0' found "
303  "%select{||||different static assert|different field|different method|"
304  "different type alias|different typedef|different data member|"
305  "different friend declaration|another unexpected decl}1">;
306
307def warn_duplicate_module_file_extension : Warning<
308  "duplicate module file extension block name '%0'">,
309  InGroup<ModuleFileExtension>;
310
311def warn_module_system_bit_conflict : Warning<
312  "module file '%0' was validated as a system module and is now being imported "
313  "as a non-system module; any difference in diagnostic options will be ignored">,
314  InGroup<ModuleConflict>;
315} // let CategoryName
316
317let CategoryName = "AST Serialization Issue" in {
318def warn_module_uses_date_time : Warning<
319  "%select{precompiled header|module}0 uses __DATE__ or __TIME__">,
320  InGroup<DiagGroup<"pch-date-time">>;
321def err_module_no_size_mtime_for_header : Error<
322  "cannot emit module %0: %select{size|mtime}1 must be explicitly specified "
323  "for missing header file \"%2\"">;
324} // let CategoryName
325} // let Component
326
327