History

gcc-9.1

Wolfgang Thaller committed 7 years ago

Commit 6fbf4221 parent ec13cc931387 files · +2442466 −1054331Browse files

Showing the changes to gcc/libcpp (73 of 31387 files). Show all

Unified · Split

73 files
  1. gcc/libcpp/ChangeLog +457 −9
  2. gcc/libcpp/Makefile.in +3 −4
  3. gcc/libcpp/aclocal.m4 +4 −5
  4. gcc/libcpp/charset.c +18 −16
  5. gcc/libcpp/config.in +5 −0
  6. gcc/libcpp/configure +566 −484
  7. gcc/libcpp/configure.ac +1 −2
  8. gcc/libcpp/directives-only.c +2 −2
  9. gcc/libcpp/directives.c +142 −209
  10. gcc/libcpp/errors.c +42 −34
  11. gcc/libcpp/expr.c +12 −28
  12. gcc/libcpp/files.c +42 −28
  13. gcc/libcpp/identifiers.c +3 −3
  14. gcc/libcpp/include/cpp-id-data.h +0 −82
  15. gcc/libcpp/include/cpplib.h +238 −150
  16. gcc/libcpp/include/line-map.h +310 −210
  17. gcc/libcpp/include/mkdeps.h +1 −1
  18. gcc/libcpp/include/symtab.h +1 −1
  19. gcc/libcpp/init.c +9 −5
  20. gcc/libcpp/internal.h +51 −28
  21. gcc/libcpp/lex.c +44 −24
  22. gcc/libcpp/line-map.c +293 −305
  23. gcc/libcpp/location-example.txt +196 −151
  24. gcc/libcpp/macro.c +429 −409
  25. gcc/libcpp/makeucnid.c +2 −2
  26. gcc/libcpp/mkdeps.c +1 −1
  27. gcc/libcpp/pch.c +51 −76
  28. gcc/libcpp/po/ChangeLog +32 −6
  29. gcc/libcpp/po/be.gmo +0 −0
  30. gcc/libcpp/po/be.po +163 −166
  31. gcc/libcpp/po/ca.gmo +0 −0
  32. gcc/libcpp/po/ca.po +180 −165
  33. gcc/libcpp/po/cpplib.pot +157 −157
  34. gcc/libcpp/po/da.gmo +0 −0
  35. gcc/libcpp/po/da.po +184 −169
  36. gcc/libcpp/po/de.gmo +0 −0
  37. gcc/libcpp/po/de.po +183 −168
  38. gcc/libcpp/po/el.gmo +0 −0
  39. gcc/libcpp/po/el.po +163 −170
  40. gcc/libcpp/po/eo.po +185 −170
  41. gcc/libcpp/po/es.gmo +0 −0
  42. gcc/libcpp/po/es.po +182 −165
  43. gcc/libcpp/po/fi.gmo +0 −0
  44. gcc/libcpp/po/fi.po +185 −170
  45. gcc/libcpp/po/fr.gmo +0 −0
  46. gcc/libcpp/po/fr.po +183 −168
  47. gcc/libcpp/po/id.gmo +0 −0
  48. gcc/libcpp/po/id.po +182 −165
  49. gcc/libcpp/po/ja.gmo +0 −0
  50. gcc/libcpp/po/ja.po +182 −165
  51. gcc/libcpp/po/nl.gmo +0 −0
  52. gcc/libcpp/po/nl.po +182 −165
  53. gcc/libcpp/po/pt_BR.po +184 −169
  54. gcc/libcpp/po/ru.gmo +0 −0
  55. gcc/libcpp/po/ru.po +183 −168
  56. gcc/libcpp/po/sr.po +182 −165
  57. gcc/libcpp/po/sv.gmo +0 −0
  58. gcc/libcpp/po/sv.po +169 −169
  59. gcc/libcpp/po/tr.gmo +0 −0
  60. gcc/libcpp/po/tr.po +182 −165
  61. gcc/libcpp/po/uk.gmo +0 −0
  62. gcc/libcpp/po/uk.po +184 −169
  63. gcc/libcpp/po/vi.gmo +0 −0
  64. gcc/libcpp/po/vi.po +183 −166
  65. gcc/libcpp/po/zh_CN.gmo +0 −0
  66. gcc/libcpp/po/zh_CN.po +182 −165
  67. gcc/libcpp/po/zh_TW.gmo +0 −0
  68. gcc/libcpp/po/zh_TW.po +182 −165
  69. gcc/libcpp/symtab.c +23 −14
  70. gcc/libcpp/system.h +5 −1
  71. gcc/libcpp/traditional.c +51 −42
  72. gcc/libcpp/ucnid.h +1 −1
  73. gcc/libcpp/ucnid.tab +1 −1
gcc/libcpp/ChangeLog+457−9
@@ -1,10 +1,458 @@
1−2018-07-26 Release Manager
1+2019-05-03 Release Manager
22
3− * GCC 8.2.0 released.
3+ * GCC 9.1.0 released.
44
5−2018-05-02 Release Manager
5+2019-04-03 Jonathan Wakely <jwakely@redhat.com>
66
7− * GCC 8.1.0 released.
7+ * files.c (search_path_exhausted): Fix typo in comment.
8+
9+2019-02-26 Martin Liska <mliska@suse.cz>
10+
11+ * symtab.c (ht_dump_statistics): Make
12+ horizontal alignment for statistics.
13+
14+2019-02-20 David Malcolm <dmalcolm@redhat.com>
15+
16+ PR c/89410
17+ * include/line-map.h (linenum_arith_t): New typedef.
18+ (compare): Use it.
19+
20+2019-02-18 Martin Liska <mliska@suse.cz>
21+
22+ PR c++/89383
23+ * line-map.c (linemap_line_start): Use 1UL in order
24+ to not overflow.
25+
26+2019-02-11 Martin Liska <mliska@suse.cz>
27+
28+ PR lto/88147
29+ * line-map.c (linemap_line_start): Don't reuse the existing line
30+ map if the line offset is sufficiently large to cause overflow
31+ when computing location_t values.
32+
33+2019-01-26 Jakub Jelinek <jakub@redhat.com>
34+
35+ PR preprocessor/88974
36+ * directives.c (SEEN_EOL): Move macro to ...
37+ * internal.h (SEEN_EOL): ... here.
38+ * expr.c (parse_has_include): Don't cpp_get_token if SEEN_EOL ().
39+
40+2019-01-01 Jakub Jelinek <jakub@redhat.com>
41+
42+ Update copyright years.
43+
44+2018-11-27 Mike Gulick <mgulick@mathworks.com>
45+
46+ PR preprocessor/83173
47+ * location-example.txt: Update example -fdump-internal-locations
48+ output.
49+
50+2018-11-27 Mike Gulick <mgulick@mathworks.com>
51+
52+ PR preprocessor/83173
53+ * files.c (_cpp_stack_include): Check if
54+ line_table->highest_location is past current line before
55+ decrementing.
56+
57+2018-11-13 David Malcolm <dmalcolm@redhat.com>
58+
59+ * charset.c: Replace "source_location" with "location_t".
60+ * directives-only.c: Likewise.
61+ * directives.c: Likewise.
62+ * errors.c: Likewise.
63+ * expr.c: Likewise.
64+ * files.c: Likewise.
65+ * include/cpplib.h: Likewise. Rename MAX_SOURCE_LOCATION to
66+ MAX_LOCATION_T.
67+ * include/line-map.h: Likewise.
68+ * init.c: Likewise.
69+ * internal.h: Likewise.
70+ * lex.c: Likewise.
71+ * line-map.c: Likewise.
72+ * location-example.txt: Likewise.
73+ * macro.c: Likewise.
74+ * pch.c: Likewise.
75+ * traditional.c: Likewise.
76+
77+2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
78+
79+ * configure: Regenerated.
80+
81+2018-11-05 Martin Liska <mliska@suse.cz>
82+
83+ * symtab.c (ht_dump_statistics): Replace %zu with %lu format.
84+
85+2018-11-05 Martin Liska <mliska@suse.cz>
86+
87+ * symtab.c (ht_dump_statistics): Fix format and
88+ pass missing argument.
89+
90+2018-11-05 Martin Liska <mliska@suse.cz>
91+
92+ * symtab.c (ht_dump_statistics): Make dump conditional
93+ based on alloc_subobject.
94+
95+2018-10-31 Joseph Myers <joseph@codesourcery.com>
96+
97+ PR bootstrap/82856
98+ * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE.
99+ * aclocal.m4, config.in, configure: Regenerate.
100+
101+2018-10-31 Nathan Sidwell <nathan@acm.org>
102+
103+ * internal.h (struct cpp_reader): Rename forced_token_location_p
104+ to forced_token_location and drop its pointerness.
105+ * include/cpplib.h (cpp_force_token_locations): Take location, not
106+ pointer to one.
107+ * init.c (cpp_create_reader): Adjust.
108+ * lex.c (cpp_read_main_file):
109+
110+ * directives.c (do_include_common): Commonize cleanup path.
111+ (_cpp_pop_buffer): Fix leak.
112+
113+ * include/line-map.h (IS_ORDINARY_LOC, IS_MACRO_LOC): New
114+ predicates.
115+ (IS_ADHOC_LOC): Move earlier.
116+ (MAP_ORDINARY_P): Use IS_ORDINARY_LOC.
117+ * line-map.c (linemap_location_from_macro_expansion_p): Use
118+ IS_MACRO_LOC.
119+
120+ * include/cpplib.h (cpp_macro_definition_location): Make inline.
121+ * macro.c (warn_of_redefinition): Fix comments, examine macro
122+ type, use C++ for.
123+ (cpp_macro_definition_location): Don't define here.
124+
125+ * include/cpplib.h (HT_NODE): Don't cast NODE.
126+ (NODE_LEN, NODE_NAME): Use HT_NODE.
127+
128+ * directives.c (DIRECTIVE_TABLE): Drop historical frequency
129+ comments.
130+ * files.c (_cpp_stack_file): Fix indentation.
131+
132+2018-10-17 Joseph Myers <joseph@codesourcery.com>
133+
134+ * include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
135+ * init.c (lang_defaults): Add GNUC2X and STDC2X entries.
136+ (cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.
137+
138+2018-10-11 David Malcolm <dmalcolm@redhat.com>
139+
140+ * macro.c (_cpp_arguments_ok): If the argument count is wrong, add
141+ a note showing the definition of the macro.
142+
143+2018-10-11 Nathan Sidwell <nathan@acm.org>
144+
145+ * include/line-map.h (LINEMAPS_MACRO_LOWEST_LOCATION): Fix
146+ off-by-one error.
147+ * line-map.c (linemap_enter_macro): Use RAII. Clear all of the
148+ macro_locations.
149+
150+2018-10-09 David Malcolm <dmalcolm@redhat.com>
151+
152+ * charset.c (noop_error_cb): Rename to...
153+ (noop_diagnostic_cb): ...this, converting params to enums.
154+ (cpp_interpret_string_ranges): Update for renaming and enums.
155+ * directives.c (check_eol_1): Convert reason to enum.
156+ (do_diagnostic): Convert code and reason to enum.
157+ (do_error): Use CPP_W_NONE rather than 0.
158+ (do_pragma_dependency): Likewise.
159+ * errors.c (cpp_diagnostic_at): Convert level and reason to enums.
160+ Update for renaming.
161+ (cpp_diagnostic): Convert level and reason to enums.
162+ (cpp_error): Convert level to enum.
163+ (cpp_warning): Convert reason to enums.
164+ (cpp_pedwarning): Likewise.
165+ (cpp_warning_syshdr): Likewise.
166+ (cpp_diagnostic_with_line): Convert level and reason to enums.
167+ Update for renaming.
168+ (cpp_error_with_line): Convert level to enum.
169+ (cpp_warning_with_line): Convert reason to enums.
170+ (cpp_pedwarning_with_line): Likewise.
171+ (cpp_warning_with_line_syshdr): Likewise.
172+ (cpp_error_at): Convert level to enum.
173+ (cpp_errno): Likewise.
174+ (cpp_errno_filename): Likewise.
175+ * include/cpplib.h (enum cpp_diagnostic_level): Name this enum,
176+ and move to before struct cpp_callbacks.
177+ (enum cpp_warning_reason): Likewise.
178+ (cpp_callbacks::diagnostic): Convert params from int to enums.
179+ (cpp_error): Convert int param to enum cpp_diagnostic_level.
180+ (cpp_warning): Convert int param to enum cpp_warning_reason.
181+ (cpp_pedwarning): Likewise.
182+ (cpp_warning_syshdr): Likewise.
183+ (cpp_errno): Convert int param to enum cpp_diagnostic_level.
184+ (cpp_errno_filename): Likewise.
185+ (cpp_error_with_line): Likewise.
186+ (cpp_warning_with_line): Convert int param to enum
187+ cpp_warning_reason.
188+ (cpp_pedwarning_with_line): Likewise.
189+ (cpp_warning_with_line_syshdr): Likewise.
190+ (cpp_error_at): Convert int param to enum cpp_diagnostic_level.
191+ * macro.c (create_iso_definition): Convert int to enum.
192+ (_cpp_create_definition): Likewise.
193+
194+2018-09-17 David Malcolm <dmalcolm@redhat.com>
195+
196+ * include/line-map.h (range_label::get_text): Add param
197+ "range_idx".
198+
199+2018-08-30 Nathan Sidwell <nathan@acm.org>
200+
201+ * include/line-map.h (enum lc_reason): Comment each member
202+ separately.
203+ (struct line_maps): Fix reallocator comment.
204+
205+2018-08-27 David Malcolm <dmalcolm@redhat.com>
206+
207+ PR 87091
208+ * include/line-map.h (enum range_display_kind): New enum.
209+ (struct location_range): Replace field "m_show_caret_p" with
210+ "m_range_display_kind", converting from bool to the new enum.
211+ (class rich_location): Add example of line insertion fix-it hint.
212+ (rich_location::add_range): Convert param "show_caret_p" from bool
213+ to enum range_display_kind and rename to "range_display_kind",
214+ giving it a default of SHOW_RANGE_WITHOUT_CARET.
215+ (rich_location::set_range): Likewise, albeit without a default.
216+ * line-map.c (rich_location::rich_location): Update for conversion
217+ of show_caret_p to tri-state enum.
218+ (rich_location::add_range): Likewise.
219+ (rich_location::set_range): Likewise.
220+
221+2018-08-24 H.J. Lu <hongjiu.lu@intel.com>
222+
223+ PR bootstrap/86872
224+ * line-map.c (pure_location_p): Return true if linemap_lookup
225+ returns NULL.
226+ (linemap_add): Set start_location to 0 if we run out of line map
227+ space.
228+
229+2018-08-20 Nathan Sidwell <nathan@acm.org>
230+
231+ * include/cpplib.h: Fixup some whitespace.
232+ (cpp_hashnode): Reduce type to 2 bit & flags to 8.
233+
234+ * include/cpplib.h (NODE_BUILTIN, NODE_MACRO_ARG): Delete.
235+ Renumber others.
236+ (enum node_type): Replace NT_MACRO with NT_USER_MACRO,
237+ NT_BUILTIN_MACRO, NT_MACRO_ARG. Delete NT_ASSERTION.
238+ (NTV_MACRO, NTV_ANSWER, NTV_BUILTIN, NTV_ARGUMENT, NTV_NONE):
239+ Delete.
240+ (CPP_HASHNODE_VALUE_IDX): Delete.
241+ (union _cpp_hashnode_value): GTY tag from enum node_type directly.
242+ (struct cpp_hashnode): Adjust GTY desc for value field.
243+ (cpp_user_macro_p, cpp_builtin_macro_p, cpp_macro_p): Adjust.
244+ * directives.c (undefine_macros): Clear value.anwers, adjust flag
245+ clearing.
246+ (_cpp_test_assertion): No need to check NT_ASSERTION.
247+ (do_assert, do_unassert): Likewise.
248+ * init.c (cpp_init_special_builtins): Set type not flags.
249+ * macro.c (struct macro_arg_saved_data): Add type field.
250+ (cpp_get_token_1): Check type not NT_VOID.
251+ (_cpp_free_definition): Adjust flag clearing. Nullify
252+ value.answers.
253+ (_cpp_save_parameter, _cpp_unsave_parameters): Save and restore
254+ type.
255+ (lex_expansion_token): Check type not flags.
256+ (_cpp_create_definition): Set type to NT_USER_MACRO.
257+ (_cpp_notify_macro_use): Adjust type checking.
258+ * pch.c (write_macdef, count_defs, write_defs, cpp_valid_state)
259+ (save_macros): Adjust node type/flag handling.
260+ * traditional.c (_cpp_scan_out_logical_line): Check type not flags.
261+
262+ * directives.c (do_undef): Use cpp_macro_p & cpp_builtin_macro_p.
263+ * include/cpplib.h (enum cpp_macro_kind): Remove trailing comma.
264+ (cpp_fun_like_macro_p): Make inline, define.
265+ * macro.c (cpp_define_lazily): Use UCHAR_MAX.
266+ (cpp_fun_like_macro_p): Delete.
267+
268+ * Makefile.in (TAGS_SOURCES): Remove cpp-id-data.h.
269+ * include/cpp-id-data.h: Delete.
270+ * internal.h: Include cpplib.h not cpp-id-data.h.
271+
272+ * include/cpp-id-data.h (struct answer): Delete.
273+ * include/cpplib.h (struct answer): Don't forward-declare.
274+ (enum cpp_macro_kind): Add cmk_assert.
275+ (struct cpp_macro): Union parms and next assert chain.
276+ (union _cpp_hashnode_value): 'answer' field is cpp_macro.
277+ * directives.c (parse_answer): Convert to use cpp_macro. Return
278+ true on success.
279+ (parse_assertion, find_answer, _cpp_test_assertion, cpp_do_assert)
280+ (cpp_do_unassert): Convert to use cpp_macro.
281+ * macro.c (warn_of_redefinition, _cpp_new_macro)
282+ (check_trad_stringification, cpp_macro_definition): Adjust macro
283+ parm access.
284+ * traditional.c (_cpp_replacement_text_len)
285+ (_cpp_copy_replacement_text, _cpp_create_trad_definition): Likewise.
286+
287+2018-08-17 Nathan Sidwell <nathan@acm.org>
288+
289+ * include/cpplib.h (struct cpp_callbacks): Replace
290+ user_builtin_macro with user_lazy_macro.
291+ (struct cpp_macro): add lazy field.
292+ (enum cpp_builtin_type): Remove BT_FIRST_USER, BT_LAST_USER.
293+ (cpp_define_lazily): Declare.
294+ * macro.c (enter_macro_context) Use _cpp_maybe_notify_macro_use.
295+ (warn_of_redefinition): Use cpp_builtin_macro_p, directly call
296+ user_lazy_macro hook.
297+ (_cpp_new_macro): Clear lazy field.
298+ (cpp_define_lazily): Define.
299+ (_cpp_notify_macro_use): Adjust lazy definition code.
300+ (cpp_macro_definition): No need to do lazy definition here.
301+ * pch.c (write_macdef, save_macros): Likewise.
302+
303+ * include/cpplib.h (enum cpp_macro_kind): New.
304+ (struct cpp_macro): Make body trailing array. Add kind field,
305+ delete traditional flag.
306+ * internal.h (_cpp_new_macro): Declare.
307+ (_cpp_reserve_room): New inline.
308+ (_cpp_commit_buf): Declare.
309+ (_cpp_create_trad_definition): Return new macro.
310+ * lex.c (_cpp_commit_buff): New.
311+ * macro.c (macro_real_token_count): Count backwards.
312+ (replace_args): Pointer equality not orderedness.
313+ (_cpp_save_parameter): Use _cpp_reserve_room.
314+ (alloc_expansion_token): Delete.
315+ (lex_expansion_token): Return macro pointer. Use _cpp_reserve_room.
316+ (create_iso_definition): Allocate macro itself. Adjust for
317+ different allocation ordering.
318+ (_cpp_new_macro): New.
319+ (_cpp_create_definition): Adjust for API changes.
320+ * traditional.c (push_replacement_text): Don't set traditional
321+ flag.
322+ (save_replacement_text): Likewise.
323+ (_cpp_create_trad_definition): Allocate macro itself, Adjust for
324+ different allocation ordering.
325+
326+ * cpp-id-data.h (uchar, UC): Move to internal.h
327+ (struct cpp_macro): Move to cpplib.h.
328+ * internal.h (uchar, UC): From cpp-id-data.h.
329+ * include/cpplib.h (struct cpp_macro): From cpp-id-data.h.
330+
331+2018-08-16 Nathan Sidwell <nathan@acm.org>
332+
333+ * internal.h (_cpp_save_parameter): Take parmno, not macro.
334+ (_cpp_unsave_parameters): Declare.
335+ * macro.c (_cpp_save_parameter): Take parm number, not macro.
336+ Return true on success.
337+ (_cpp_unsave_parameters): New.
338+ (parse_params): Take parm_no and variadic pointers, not macro.
339+ Reimplement parsing logic.
340+ (create_iso_definition): Adjust parse_params changes. Call
341+ _cpp_unsave_parameters here.
342+ (_cpp_create_definition): Don't unsave params here.
343+ * traditional.c (scan_parameters): Take n_param pointer, adjust.
344+ (_cpp_create_trad_definition): Ajust scan_parameters change. Call
345+ _cpp_unsave_parameters.
346+
347+ * include/cpplib.h (cpp_user_macro_p, cpp_builtin_macro_p)
348+ (cpp_macro_p): New inlines.
349+ * directives.c (do_pragma_poison): Use cpp_macro_p.
350+ (do_ifdef, do_ifndef): Likewise. Use _cpp_maybe_notify_macro_use.
351+ (cpp_pop_definition): Use cpp_macro_p. Move _cpp_free_definition
352+ earlier. Don't zap node directly.
353+ * expr.c (parse_defined): Use _cpp_maybe_notify_macro_use &
354+ cpp_macro_p.
355+ * files.c (should_stack_file): Use cpp_macro_p.
356+ * identifiers.c (cpp_defined): Likewise.
357+ * internal.h (_cpp_mark_macro): Use cpp_user_macro_p.
358+ (_cpp_notify_macro_use): Declare.
359+ (_cpp_maybe_notify_macro_use): New inline.
360+ * lex.c (is_macro): Use cpp_macro_p.
361+ * macro.c (_cpp_warn_if_unused_macro): Use cpp_user_macro_p.
362+ (enter_macro_context): Likewise.
363+ (_cpp_create_definition): Use cpp_builtin_macro_p,
364+ cpp_user_macro_p. Move _cpp_free_definition earlier.
365+ (_cpp_notify_macro_use): New, broken out of multiple call sites.
366+ * traditional.c (fun_like_macro_p): Use cpp_builtin_macro_p.
367+ (maybe_start_funlike, _cpp_scan_out_logical_line)
368+ (push_replacement_text): Likewise.
369+
370+2018-08-15 David Malcolm <dmalcolm@redhat.com>
371+
372+ * include/line-map.h (struct location_range): Add "m_label" field.
373+ (class rich_location): Add description of labels to leading
374+ comment.
375+ (rich_location::rich_location): Add "label" param, defaulting to
376+ NULL.
377+ (rich_location::add_range): Likewise.
378+ (struct label_text): New struct.
379+ (class range_label): New abstract base class.
380+ * line-map.c (rich_location::rich_location): Add "label" param;
381+ use it.
382+ (rich_location::add_range): Likewise.
383+
384+2018-08-08 Nathan Sidwell <nathan@acm.org>
385+
386+ Make linemap::included_from a location
387+ libcpp/
388+ * include/line-map.h (struct line_map_ordinary): Replace
389+ included_from map index with included_at source_location.
390+ (ORDINARY_MAP_INCLUDER_FILE_INDEX): Delete.
391+ (LAST_SOURCE_LINE_LOCATION): Delete.
392+ (LAST_SOURCE_LINE, LAST_SOURCE_COLUMN): Delete.
393+ (linemap_included_from): New.
394+ (linemap_included_from_linemap): Declare.
395+ (MAIN_FILE_P): Adjust.
396+ * line-map.c (linemap_included_from_linemap): New.
397+ (lonemap_check_files_exited): Use linemap_included_at.
398+ (linemap_add): Adjust inclusion setting.
399+ (linemap_dump, linemap_dump_location): Adjust.
400+ * directives.c (do_linemarker): Use linemap_included_at.
401+
402+2018-08-07 Nathan Sidwell <nathan@acm.org>
403+
404+ * line-map.c: (linemap_init): Set default allocator here.
405+ (new_linemap): Rather than here. Refactor allocation logic.
406+
407+2018-07-20 David Malcolm <dmalcolm@redhat.com>
408+
409+ * include/line-map.h (rich_location::set_range): Remove redundant
410+ line_maps * parameter.
411+ * line-map.c (rich_location::set_range): Likewise.
412+
413+2018-07-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
414+
415+ PR 69558
416+ * macro.c (enter_macro_context): Change the location info for builtin
417+ macros and _Pragma from location of the closing parenthesis to location
418+ of the macro expansion point.
419+
420+2018-07-17 Jason Franklin <j_fra@fastmail.us>
421+ Jakub Jelinek <jakub@redhat.com>
422+
423+ * lex.c (_cpp_lex_direct): Use CPP_DL_NOTE instead of CPP_DL_PEDWARN,
424+ CPP_DL_WARNING or CPP_DL_ERROR for note that diagnostics for C++ style
425+ comments is reported only once per file and guard those calls on the
426+ preceding cpp_error returning true.
427+
428+2018-07-03 Nathan Sidwell <nathan@acm.org>
429+
430+ Reorg line_map data structures for better packing.
431+ * include/line-map.h (enum lc_reason): Add LC_HWM.
432+ (LINE_MAP_MAX_LOCATION): Define here.
433+ (struct line_map): Move reason field to line_map_ordinary. Adjust
434+ GTY tagging.
435+ (struct line_map_ordinary): Reorder fields for less padding.
436+ (struct line_map_macro): Likewise.
437+ (MAP_ORDINARY_P): New.
438+ (linemap_check_ordinary, linemap_check_macro): Adjust.
439+ * line-map.c (LINE_MAP_MAX_SOURCE_LOCATION): Delete.
440+ (new_linemap): Take start_location, not reason. Adjust.
441+ (linemap_add, linemap_enter_macro): Adjust.
442+ (linemap_line_start): Likewise.
443+ (linemap_macro_expansion_map_p): Use MAP_ORDINARY_P.
444+ (linemap_macro_loc_to_spelling_point): Likewise.
445+ (linemap_macro_loc_to_def_point): Likewise.
446+ (linemap_dump): Likewise.
447+
448+2018-05-23 Jason Merrill <jason@redhat.com>
449+
450+ * system.h: #include <new> earlier.
451+
452+2018-05-17 Jason Merrill <jason@redhat.com>
453+
454+ * line-map.c (linemap_init): Use placement new.
455+ * system.h: #include <new>.
8456
9457 2018-03-14 David Malcolm <dmalcolm@redhat.com>
10458
@@ -52,10 +500,10 @@ · 41 unmodified lines
52500
53501 2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
54502
55− PR other/70268
56− * include/cpplib.h (cpp_callbacks::remap_filename): New callback.
57− * macro.c (_cpp_builtin_macro_text): Call remap_filename for
58− __FILE__ and __BASE_FILE__.
503+ PR other/70268
504+ * include/cpplib.h (cpp_callbacks::remap_filename): New callback.
505+ * macro.c (_cpp_builtin_macro_text): Call remap_filename for
506+ __FILE__ and __BASE_FILE__.
59507
60508 2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
61509
@@ -5312,7 +5760,7 @@ · 5250 unmodified lines
53125760 * include/symtab.h: Moved from gcc/hashtable.h. Change header
53135761 guard name.
53145762
5315−Copyright (C) 2004-2018 Free Software Foundation, Inc.
5763+Copyright (C) 2004-2019 Free Software Foundation, Inc.
53165764
53175765 Copying and distribution of this file, with or without modification,
53185766 are permitted in any medium without royalty provided the copyright
gcc/libcpp/Makefile.in+3−4
@@ -1,7 +1,7 @@
11 # @configure_input@
22 # Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
33
4−# Copyright (C) 2004-2018 Free Software Foundation, Inc.
4+# Copyright (C) 2004-2019 Free Software Foundation, Inc.
55
66 #This file is part of libcpp.
77
@@ -261,9 +261,8 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES) · 253 unmodified lines
261261 sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot
262262 rm po/$(PACKAGE).pot.tmp
263263
264−TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \
265− include/line-map.h include/symtab.h include/cpp-id-data.h \
266− include/cpplib.h include/mkdeps.h system.h
264+TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h system.h ucnid.h \
265+ include/cpplib.h include/line-map.h include/mkdeps.h include/symtab.h
267266
268267 TAGS: $(TAGS_SOURCES)
269268 cd $(srcdir) && etags $(TAGS_SOURCES)
gcc/libcpp/aclocal.m4+4−5
@@ -1,8 +1,7 @@
1−# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
1+# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
2+
3+# Copyright (C) 1996-2017 Free Software Foundation, Inc.
24
3−# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4−# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
5−# Inc.
65 # This file is free software; the Free Software Foundation
76 # gives unlimited permission to copy and/or distribute it,
87 # with or without modifications, as long as this notice is preserved.
@@ -12,6 +11,7 @@ · 3 unmodified lines
1211 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
1312 # PARTICULAR PURPOSE.
1413
14+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
1515 m4_include([../config/acx.m4])
1616 m4_include([../config/codeset.m4])
1717 m4_include([../config/depstand.m4])
@@ -21,5 +21,4 @@ m4_include([../config/lead-dot.m4]) · 3 unmodified lines
2121 m4_include([../config/lib-ld.m4])
2222 m4_include([../config/lib-link.m4])
2323 m4_include([../config/lib-prefix.m4])
24−m4_include([../config/override.m4])
2524 m4_include([../config/warnings.m4])
gcc/libcpp/charset.c+18−16
@@ -1,5 +1,5 @@
11 /* CPP Library - charsets
2− Copyright (C) 1998-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
33
44 Broken out of c-lex.c Apr 2003, adding valid C99 UCN ranges.
55
@@ -1693,13 +1693,14 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count, · 1687 unmodified lines
16931693 return cpp_interpret_string_1 (pfile, from, count, to, type, NULL, NULL);
16941694 }
16951695
1696−/* A "do nothing" error-handling callback for use by
1696+/* A "do nothing" diagnostic-handling callback for use by
16971697 cpp_interpret_string_ranges, so that it can temporarily suppress
1698− error-handling. */
1698+ diagnostic-handling. */
16991699
17001700 static bool
1701−noop_error_cb (cpp_reader *, int, int, rich_location *,
1702− const char *, va_list *)
1701+noop_diagnostic_cb (cpp_reader *, enum cpp_diagnostic_level,
1702+ enum cpp_warning_reason, rich_location *,
1703+ const char *, va_list *)
17031704 {
17041705 /* no-op. */
17051706 return true;
@@ -1737,25 +1738,26 @@ cpp_interpret_string_ranges (cpp_reader *pfile, const cpp_string *from, · 31 unmodified lines
17371738 return "execution character set != source character set";
17381739
17391740 /* For on-demand strings we have already lexed the strings, so there
1740− should be no errors. However, if we have bogus source location
1741+ should be no diagnostics. However, if we have bogus source location
17411742 data (or stringified macro arguments), the attempt to lex the
1742− strings could fail with an error. Temporarily install an
1743− error-handler to catch the error, so that it can lead to this call
1743+ strings could fail with an diagnostic. Temporarily install an
1744+ diagnostic-handler to catch the diagnostic, so that it can lead to this call
17441745 failing, rather than being emitted as a user-visible diagnostic.
1745− If an error does occur, we should see it via the return value of
1746+ If an diagnostic does occur, we should see it via the return value of
17461747 cpp_interpret_string_1. */
1747− bool (*saved_error_handler) (cpp_reader *, int, int, rich_location *,
1748− const char *, va_list *)
1748+ bool (*saved_diagnostic_handler) (cpp_reader *, enum cpp_diagnostic_level,
1749+ enum cpp_warning_reason, rich_location *,
1750+ const char *, va_list *)
17491751 ATTRIBUTE_FPTR_PRINTF(5,0);
17501752
1751− saved_error_handler = pfile->cb.error;
1752− pfile->cb.error = noop_error_cb;
1753+ saved_diagnostic_handler = pfile->cb.diagnostic;
1754+ pfile->cb.diagnostic = noop_diagnostic_cb;
17531755
17541756 bool result = cpp_interpret_string_1 (pfile, from, count, NULL, type,
17551757 loc_readers, out);
17561758
1757− /* Restore the saved error-handler. */
1758− pfile->cb.error = saved_error_handler;
1759+ /* Restore the saved diagnostic-handler. */
1760+ pfile->cb.diagnostic = saved_diagnostic_handler;
17591761
17601762 if (!result)
17611763 return "cpp_interpret_string_1 failed";
@@ -2133,7 +2135,7 @@ _cpp_default_encoding (void) · 371 unmodified lines
21332135 /* Constructor for cpp_string_location_reader. */
21342136
21352137 cpp_string_location_reader::
2136−cpp_string_location_reader (source_location src_loc,
2138+cpp_string_location_reader (location_t src_loc,
21372139 line_maps *line_table)
21382140 : m_line_table (line_table)
21392141 {
gcc/libcpp/config.in+5−0
@@ -318,6 +318,11 @@ · 317 unmodified lines
318318 # endif
319319 #endif
320320
321+/* Enable large inode numbers on Mac OS X 10.5. */
322+#ifndef _DARWIN_USE_64_BIT_INODE
323+# define _DARWIN_USE_64_BIT_INODE 1
324+#endif
325+
321326 /* Number of bits in a file offset, on hosts where this is settable. */
322327 #undef _FILE_OFFSET_BITS
323328
gcc/libcpp/configure+566−484
@@ -1,12 +1,12 @@
11 #! /bin/sh
22 # Guess values for system-dependent variables and create Makefiles.
3−# Generated by GNU Autoconf 2.64 for cpplib .
3+# Generated by GNU Autoconf 2.69 for cpplib .
44 #
55 # Report bugs to <gcc-bugs@gcc.gnu.org>.
66 #
7−# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
8−# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
9−# Foundation, Inc.
7+#
8+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
9+#
1010 #
1111 # This configure script is free software; the Free Software Foundation
1212 # gives unlimited permission to copy, distribute and modify it.
@@ -89,6 +89,7 @@ fi · 76 unmodified lines
8989 IFS=" "" $as_nl"
9090
9191 # Find who we are. Look in the path if we contain no directory separator.
92+as_myself=
9293 case $0 in #((
9394 *[\\/]* ) as_myself=$0 ;;
9495 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -133,6 +134,31 @@ export LANGUAGE · 38 unmodified lines
133134 # CDPATH.
134135 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
135136
137+# Use a proper internal environment variable to ensure we don't fall
138+ # into an infinite loop, continuously re-executing ourselves.
139+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
140+ _as_can_reexec=no; export _as_can_reexec;
141+ # We cannot yet assume a decent shell, so we have to provide a
142+# neutralization value for shells without unset; and this also
143+# works around shells that cannot unset nonexistent variables.
144+# Preserve -v and -x to the replacement shell.
145+BASH_ENV=/dev/null
146+ENV=/dev/null
147+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
148+case $- in # ((((
149+ *v*x* | *x*v* ) as_opts=-vx ;;
150+ *v* ) as_opts=-v ;;
151+ *x* ) as_opts=-x ;;
152+ * ) as_opts= ;;
153+esac
154+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
155+# Admittedly, this is quite paranoid, since all the known shells bail
156+# out after a failed `exec'.
157+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
158+as_fn_exit 255
159+ fi
160+ # We don't want this to propagate to other subprocesses.
161+ { _as_can_reexec=; unset _as_can_reexec;}
136162 if test "x$CONFIG_SHELL" = x; then
137163 as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
138164 emulate sh
@@ -166,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : · 27 unmodified lines
166192 else
167193 exitcode=1; echo positional parameters were not saved.
168194 fi
169−test x\$exitcode = x0 || exit 1"
195+test x\$exitcode = x0 || exit 1
196+test -x / || exit 1"
170197 as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
171198 as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
172199 eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -211,14 +238,25 @@ IFS=$as_save_IFS · 38 unmodified lines
211238
212239
213240 if test "x$CONFIG_SHELL" != x; then :
214− # We cannot yet assume a decent shell, so we have to provide a
215− # neutralization value for shells without unset; and this also
216− # works around shells that cannot unset nonexistent variables.
217− BASH_ENV=/dev/null
218− ENV=/dev/null
219− (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
220− export CONFIG_SHELL
221− exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
241+ export CONFIG_SHELL
242+ # We cannot yet assume a decent shell, so we have to provide a
243+# neutralization value for shells without unset; and this also
244+# works around shells that cannot unset nonexistent variables.
245+# Preserve -v and -x to the replacement shell.
246+BASH_ENV=/dev/null
247+ENV=/dev/null
248+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
249+case $- in # ((((
250+ *v*x* | *x*v* ) as_opts=-vx ;;
251+ *v* ) as_opts=-v ;;
252+ *x* ) as_opts=-x ;;
253+ * ) as_opts= ;;
254+esac
255+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
256+# Admittedly, this is quite paranoid, since all the known shells bail
257+# out after a failed `exec'.
258+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
259+exit 255
222260 fi
223261
224262 if test x$as_have_required = xno; then :
@@ -317,10 +355,18 @@ $as_echo X"$as_dir" | · 92 unmodified lines
317355 test -d "$as_dir" && break
318356 done
319357 test -z "$as_dirs" || eval "mkdir $as_dirs"
320− } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
358+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
321359
322360
323361 } # as_fn_mkdir_p
362+
363+# as_fn_executable_p FILE
364+# -----------------------
365+# Test if FILE is an executable regular file.
366+as_fn_executable_p ()
367+{
368+ test -f "$1" && test -x "$1"
369+} # as_fn_executable_p
324370 # as_fn_append VAR VALUE
325371 # ----------------------
326372 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -357,19 +403,19 @@ else · 30 unmodified lines
357403 fi # as_fn_arith
358404
359405
360−# as_fn_error ERROR [LINENO LOG_FD]
361−# ---------------------------------
406+# as_fn_error STATUS ERROR [LINENO LOG_FD]
407+# ----------------------------------------
362408 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
363409 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
364−# script with status $?, using 1 if that was 0.
410+# script with STATUS, using 1 if that was 0.
365411 as_fn_error ()
366412 {
367− as_status=$?; test $as_status -eq 0 && as_status=1
368− if test "$3"; then
369− as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
370− $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
413+ as_status=$1; test $as_status -eq 0 && as_status=1
414+ if test "$4"; then
415+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
416+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
371417 fi
372− $as_echo "$as_me: error: $1" >&2
418+ $as_echo "$as_me: error: $2" >&2
373419 as_fn_exit $as_status
374420 } # as_fn_error
375421
@@ -442,6 +488,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits · 66 unmodified lines
442488 chmod +x "$as_me.lineno" ||
443489 { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
444490
491+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
492+ # already done that, so ensure we don't try to do so again and fall
493+ # in an infinite loop. This has already happened in practice.
494+ _as_can_reexec=no; export _as_can_reexec
445495 # Don't try to exec as it changes $[0], causing all sort of problems
446496 # (the dirname of $[0] is not the place where we might find the
447497 # original and so on. Autoconf is especially sensitive to this).
@@ -476,16 +526,16 @@ if (echo >conf$$.file) 2>/dev/null; then · 28 unmodified lines
476526 # ... but there are two gotchas:
477527 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
478528 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
479− # In both cases, we have to default to `cp -p'.
529+ # In both cases, we have to default to `cp -pR'.
480530 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
481− as_ln_s='cp -p'
531+ as_ln_s='cp -pR'
482532 elif ln conf$$.file conf$$ 2>/dev/null; then
483533 as_ln_s=ln
484534 else
485− as_ln_s='cp -p'
535+ as_ln_s='cp -pR'
486536 fi
487537 else
488− as_ln_s='cp -p'
538+ as_ln_s='cp -pR'
489539 fi
490540 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
491541 rmdir conf$$.dir 2>/dev/null
@@ -497,28 +547,8 @@ else · 5 unmodified lines
497547 as_mkdir_p=false
498548 fi
499549
500−if test -x / >/dev/null 2>&1; then
501− as_test_x='test -x'
502−else
503− if ls -dL / >/dev/null 2>&1; then
504− as_ls_L_option=L
505− else
506− as_ls_L_option=
507− fi
508− as_test_x='
509− eval sh -c '\''
510− if test -d "$1"; then
511− test -d "$1/.";
512− else
513− case $1 in #(
514− -*)set "./$1";;
515− esac;
516− case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
517− ???[sx]*):;;*)false;;esac;fi
518− '\'' sh
519− '
520−fi
521−as_executable_p=$as_test_x
550+as_test_x='test -x'
551+as_executable_p=as_fn_executable_p
522552
523553 # Sed expression to map a string onto a valid CPP name.
524554 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -527,10 +557,11 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" · 2 unmodified lines
527557 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
528558
529559
530−exec 7<&0 </dev/null 6>&1
560+test -n "$DJDIR" || exec 7<&0 </dev/null
561+exec 6>&1
531562
532563 # Name of the host.
533−# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
564+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
534565 # so uname gets run too.
535566 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
536567
@@ -779,8 +810,9 @@ do · 242 unmodified lines
779810 fi
780811
781812 case $ac_option in
782− *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
783− *) ac_optarg=yes ;;
813+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
814+ *=) ac_optarg= ;;
815+ *) ac_optarg=yes ;;
784816 esac
785817
786818 # Accept the important Cygnus configure options, so we can diagnose typos.
@@ -825,7 +857,7 @@ do · 38 unmodified lines
825857 ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
826858 # Reject names that are not valid shell variable names.
827859 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
828− as_fn_error "invalid feature name: $ac_useropt"
860+ as_fn_error $? "invalid feature name: $ac_useropt"
829861 ac_useropt_orig=$ac_useropt
830862 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
831863 case $ac_user_opts in
@@ -851,7 +883,7 @@ do · 19 unmodified lines
851883 ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
852884 # Reject names that are not valid shell variable names.
853885 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
854− as_fn_error "invalid feature name: $ac_useropt"
886+ as_fn_error $? "invalid feature name: $ac_useropt"
855887 ac_useropt_orig=$ac_useropt
856888 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
857889 case $ac_user_opts in
@@ -1055,7 +1087,7 @@ do · 197 unmodified lines
10551087 ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
10561088 # Reject names that are not valid shell variable names.
10571089 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1058− as_fn_error "invalid package name: $ac_useropt"
1090+ as_fn_error $? "invalid package name: $ac_useropt"
10591091 ac_useropt_orig=$ac_useropt
10601092 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
10611093 case $ac_user_opts in
@@ -1071,7 +1103,7 @@ do · 9 unmodified lines
10711103 ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
10721104 # Reject names that are not valid shell variable names.
10731105 expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
1074− as_fn_error "invalid package name: $ac_useropt"
1106+ as_fn_error $? "invalid package name: $ac_useropt"
10751107 ac_useropt_orig=$ac_useropt
10761108 ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
10771109 case $ac_user_opts in
@@ -1101,8 +1133,8 @@ do · 23 unmodified lines
11011133 | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
11021134 x_libraries=$ac_optarg ;;
11031135
1104− -*) as_fn_error "unrecognized option: \`$ac_option'
1105−Try \`$0 --help' for more information."
1136+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
1137+Try \`$0 --help' for more information"
11061138 ;;
11071139
11081140 *=*)
@@ -1110,7 +1142,7 @@ Try \`$0 --help' for more information." · 1 unmodified line
11101142 # Reject names that are not valid shell variable names.
11111143 case $ac_envvar in #(
11121144 '' | [0-9]* | *[!_$as_cr_alnum]* )
1113− as_fn_error "invalid variable name: \`$ac_envvar'" ;;
1145+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
11141146 esac
11151147 eval $ac_envvar=\$ac_optarg
11161148 export $ac_envvar ;;
@@ -1120,7 +1152,7 @@ Try \`$0 --help' for more information." · 3 unmodified lines
11201152 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
11211153 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
11221154 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
1123− : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
1155+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
11241156 ;;
11251157
11261158 esac
@@ -1128,13 +1160,13 @@ done · 1 unmodified line
11281160
11291161 if test -n "$ac_prev"; then
11301162 ac_option=--`echo $ac_prev | sed 's/_/-/g'`
1131− as_fn_error "missing argument to $ac_option"
1163+ as_fn_error $? "missing argument to $ac_option"
11321164 fi
11331165
11341166 if test -n "$ac_unrecognized_opts"; then
11351167 case $enable_option_checking in
11361168 no) ;;
1137− fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
1169+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
11381170 *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
11391171 esac
11401172 fi
@@ -1157,7 +1189,7 @@ do · 16 unmodified lines
11571189 [\\/$]* | ?:[\\/]* ) continue;;
11581190 NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
11591191 esac
1160− as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
1192+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
11611193 done
11621194
11631195 # There might be people who depend on the old broken behavior: `$host'
@@ -1171,8 +1203,6 @@ target=$target_alias · 7 unmodified lines
11711203 if test "x$host_alias" != x; then
11721204 if test "x$build_alias" = x; then
11731205 cross_compiling=maybe
1174− $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
1175− If a cross compiler is detected then cross compile mode will be used." >&2
11761206 elif test "x$build_alias" != "x$host_alias"; then
11771207 cross_compiling=yes
11781208 fi
@@ -1187,9 +1217,9 @@ test "$silent" = yes && exec 6>/dev/null · 8 unmodified lines
11871217 ac_pwd=`pwd` && test -n "$ac_pwd" &&
11881218 ac_ls_di=`ls -di .` &&
11891219 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
1190− as_fn_error "working directory cannot be determined"
1220+ as_fn_error $? "working directory cannot be determined"
11911221 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
1192− as_fn_error "pwd does not report name of working directory"
1222+ as_fn_error $? "pwd does not report name of working directory"
11931223
11941224
11951225 # Find the source files, if location was not specified.
@@ -1228,11 +1258,11 @@ else · 32 unmodified lines
12281258 fi
12291259 if test ! -r "$srcdir/$ac_unique_file"; then
12301260 test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
1231− as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
1261+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
12321262 fi
12331263 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
12341264 ac_abs_confdir=`(
1235− cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
1265+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
12361266 pwd)`
12371267 # When building in place, set srcdir=.
12381268 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1272,7 +1302,7 @@ Configuration: · 33 unmodified lines
12721302 --help=short display options specific to this package
12731303 --help=recursive display the short help of all the included packages
12741304 -V, --version display version information and exit
1275− -q, --quiet, --silent do not print \`checking...' messages
1305+ -q, --quiet, --silent do not print \`checking ...' messages
12761306 --cache-file=FILE cache test results in FILE [disabled]
12771307 -C, --config-cache alias for \`--cache-file=config.cache'
12781308 -n, --no-create do not create output files
@@ -1360,7 +1390,7 @@ Some influential environment variables: · 81 unmodified lines
13601390 LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
13611391 nonstandard directory <lib dir>
13621392 LIBS libraries to pass to the linker, e.g. -l<library>
1363− CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
1393+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
13641394 you have headers in a nonstandard directory <include dir>
13651395 CXX C++ compiler command
13661396 CXXFLAGS C++ compiler flags
@@ -1433,9 +1463,9 @@ test -n "$ac_init_help" && exit $ac_status · 66 unmodified lines
14331463 if $ac_init_version; then
14341464 cat <<\_ACEOF
14351465 cpplib configure
1436−generated by GNU Autoconf 2.64
1466+generated by GNU Autoconf 2.69
14371467
1438−Copyright (C) 2009 Free Software Foundation, Inc.
1468+Copyright (C) 2012 Free Software Foundation, Inc.
14391469 This configure script is free software; the Free Software Foundation
14401470 gives unlimited permission to copy, distribute and modify it.
14411471 _ACEOF
@@ -1479,8 +1509,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 37 unmodified lines
14791509
14801510 ac_retval=1
14811511 fi
1482− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1483− return $ac_retval
1512+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1513+ as_fn_set_status $ac_retval
14841514
14851515 } # ac_fn_c_try_compile
14861516
@@ -1517,8 +1547,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 30 unmodified lines
15171547
15181548 ac_retval=1
15191549 fi
1520− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1521− return $ac_retval
1550+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1551+ as_fn_set_status $ac_retval
15221552
15231553 } # ac_fn_cxx_try_compile
15241554
@@ -1543,7 +1573,7 @@ $as_echo "$ac_try_echo"; } >&5 · 18 unmodified lines
15431573 mv -f conftest.er1 conftest.err
15441574 fi
15451575 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
1546− test $ac_status = 0; } >/dev/null && {
1576+ test $ac_status = 0; } > conftest.i && {
15471577 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
15481578 test ! -s conftest.err
15491579 }; then :
@@ -1554,8 +1584,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 4 unmodified lines
15541584
15551585 ac_retval=1
15561586 fi
1557− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1558− return $ac_retval
1587+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1588+ as_fn_set_status $ac_retval
15591589
15601590 } # ac_fn_c_try_cpp
15611591
@@ -1567,10 +1597,10 @@ fi · 5 unmodified lines
15671597 ac_fn_c_check_header_mongrel ()
15681598 {
15691599 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
1570− if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1600+ if eval \${$3+:} false; then :
15711601 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
15721602 $as_echo_n "checking for $2... " >&6; }
1573−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1603+if eval \${$3+:} false; then :
15741604 $as_echo_n "(cached) " >&6
15751605 fi
15761606 eval ac_res=\$$3
@@ -1606,7 +1636,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : · 29 unmodified lines
16061636 else
16071637 ac_header_preproc=no
16081638 fi
1609−rm -f conftest.err conftest.$ac_ext
1639+rm -f conftest.err conftest.i conftest.$ac_ext
16101640 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
16111641 $as_echo "$ac_header_preproc" >&6; }
16121642
@@ -1629,17 +1659,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} · 16 unmodified lines
16291659 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
16301660 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
16311661 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
1632−( cat <<\_ASBOX
1633−## ----------------------------------- ##
1662+( $as_echo "## ----------------------------------- ##
16341663 ## Report this to gcc-bugs@gcc.gnu.org ##
1635−## ----------------------------------- ##
1636−_ASBOX
1664+## ----------------------------------- ##"
16371665 ) | sed "s/^/$as_me: WARNING: /" >&2
16381666 ;;
16391667 esac
16401668 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
16411669 $as_echo_n "checking for $2... " >&6; }
1642−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1670+if eval \${$3+:} false; then :
16431671 $as_echo_n "(cached) " >&6
16441672 else
16451673 eval "$3=\$ac_header_compiler"
@@ -1648,7 +1676,7 @@ eval ac_res=\$$3 · 2 unmodified lines
16481676 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
16491677 $as_echo "$ac_res" >&6; }
16501678 fi
1651− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1679+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
16521680
16531681 } # ac_fn_c_check_header_mongrel
16541682
@@ -1689,8 +1717,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 34 unmodified lines
16891717 ac_retval=$ac_status
16901718 fi
16911719 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1692− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1693− return $ac_retval
1720+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1721+ as_fn_set_status $ac_retval
16941722
16951723 } # ac_fn_c_try_run
16961724
@@ -1703,7 +1731,7 @@ ac_fn_c_check_header_compile () · 6 unmodified lines
17031731 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17041732 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17051733 $as_echo_n "checking for $2... " >&6; }
1706−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1734+if eval \${$3+:} false; then :
17071735 $as_echo_n "(cached) " >&6
17081736 else
17091737 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1721,7 +1749,7 @@ fi · 11 unmodified lines
17211749 eval ac_res=\$$3
17221750 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
17231751 $as_echo "$ac_res" >&6; }
1724− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1752+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
17251753
17261754 } # ac_fn_c_check_header_compile
17271755
@@ -1752,7 +1780,7 @@ $as_echo "$ac_try_echo"; } >&5 · 24 unmodified lines
17521780 test ! -s conftest.err
17531781 } && test -s conftest$ac_exeext && {
17541782 test "$cross_compiling" = yes ||
1755− $as_test_x conftest$ac_exeext
1783+ test -x conftest$ac_exeext
17561784 }; then :
17571785 ac_retval=0
17581786 else
@@ -1766,8 +1794,8 @@ fi · 7 unmodified lines
17661794 # interfere with the next link command; also delete a directory that is
17671795 # left behind by Apple's compiler. We do this before executing the actions.
17681796 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
1769− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1770− return $ac_retval
1797+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
1798+ as_fn_set_status $ac_retval
17711799
17721800 } # ac_fn_c_try_link
17731801
@@ -1780,7 +1808,7 @@ ac_fn_c_check_type () · 6 unmodified lines
17801808 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
17811809 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
17821810 $as_echo_n "checking for $2... " >&6; }
1783−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1811+if eval \${$3+:} false; then :
17841812 $as_echo_n "(cached) " >&6
17851813 else
17861814 eval "$3=no"
@@ -1821,7 +1849,7 @@ fi · 34 unmodified lines
18211849 eval ac_res=\$$3
18221850 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
18231851 $as_echo "$ac_res" >&6; }
1824− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1852+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
18251853
18261854 } # ac_fn_c_check_type
18271855
@@ -1834,10 +1862,12 @@ ac_fn_c_find_uintX_t () · 6 unmodified lines
18341862 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
18351863 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5
18361864 $as_echo_n "checking for uint$2_t... " >&6; }
1837−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
1865+if eval \${$3+:} false; then :
18381866 $as_echo_n "(cached) " >&6
18391867 else
18401868 eval "$3=no"
1869+ # Order is important - never check a type that is potentially smaller
1870+ # than half of the expected target width.
18411871 for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
18421872 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
18431873 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1846,8 +1876,9 @@ $ac_includes_default · 2 unmodified lines
18461876 int
18471877 main ()
18481878 {
1849−static int test_array [1 - 2 * !(($ac_type) -1 >> ($2 - 1) == 1)];
1850−test_array [0] = 0
1879+static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)];
1880+test_array [0] = 0;
1881+return test_array [0];
18511882
18521883 ;
18531884 return 0;
@@ -1862,8 +1893,7 @@ if ac_fn_c_try_compile "$LINENO"; then : · 8 unmodified lines
18621893 esac
18631894 fi
18641895 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1865− eval as_val=\$$3
1866− if test "x$as_val" = x""no; then :
1896+ if eval test \"x\$"$3"\" = x"no"; then :
18671897
18681898 else
18691899 break
@@ -1873,7 +1903,7 @@ fi · 3 unmodified lines
18731903 eval ac_res=\$$3
18741904 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
18751905 $as_echo "$ac_res" >&6; }
1876− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
1906+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
18771907
18781908 } # ac_fn_c_find_uintX_t
18791909
@@ -1894,7 +1924,8 @@ int · 14 unmodified lines
18941924 main ()
18951925 {
18961926 static int test_array [1 - 2 * !(($2) >= 0)];
1897−test_array [0] = 0
1927+test_array [0] = 0;
1928+return test_array [0];
18981929
18991930 ;
19001931 return 0;
@@ -1910,7 +1941,8 @@ int · 9 unmodified lines
19101941 main ()
19111942 {
19121943 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
1913−test_array [0] = 0
1944+test_array [0] = 0;
1945+return test_array [0];
19141946
19151947 ;
19161948 return 0;
@@ -1936,7 +1968,8 @@ int · 19 unmodified lines
19361968 main ()
19371969 {
19381970 static int test_array [1 - 2 * !(($2) < 0)];
1939−test_array [0] = 0
1971+test_array [0] = 0;
1972+return test_array [0];
19401973
19411974 ;
19421975 return 0;
@@ -1952,7 +1985,8 @@ int · 9 unmodified lines
19521985 main ()
19531986 {
19541987 static int test_array [1 - 2 * !(($2) >= $ac_mid)];
1955−test_array [0] = 0
1988+test_array [0] = 0;
1989+return test_array [0];
19561990
19571991 ;
19581992 return 0;
@@ -1986,7 +2020,8 @@ int · 27 unmodified lines
19862020 main ()
19872021 {
19882022 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
1989−test_array [0] = 0
2023+test_array [0] = 0;
2024+return test_array [0];
19902025
19912026 ;
19922027 return 0;
@@ -2050,8 +2085,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ · 57 unmodified lines
20502085 rm -f conftest.val
20512086
20522087 fi
2053− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2054− return $ac_retval
2088+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2089+ as_fn_set_status $ac_retval
20552090
20562091 } # ac_fn_c_compute_int
20572092
@@ -2063,7 +2098,7 @@ ac_fn_c_check_func () · 5 unmodified lines
20632098 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
20642099 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
20652100 $as_echo_n "checking for $2... " >&6; }
2066−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2101+if eval \${$3+:} false; then :
20672102 $as_echo_n "(cached) " >&6
20682103 else
20692104 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2118,13 +2153,14 @@ fi · 48 unmodified lines
21182153 eval ac_res=\$$3
21192154 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21202155 $as_echo "$ac_res" >&6; }
2121− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2156+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
21222157
21232158 } # ac_fn_c_check_func
21242159
2125−# ac_fn_c_check_decl LINENO SYMBOL VAR
2126−# ------------------------------------
2127−# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
2160+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
2161+# ---------------------------------------------
2162+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
2163+# accordingly.
21282164 ac_fn_c_check_decl ()
21292165 {
21302166 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
@@ -2132,7 +2168,7 @@ ac_fn_c_check_decl () · 1 unmodified line
21322168 as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
21332169 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
21342170 $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
2135−if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
2171+if eval \${$3+:} false; then :
21362172 $as_echo_n "(cached) " >&6
21372173 else
21382174 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2163,7 +2199,7 @@ fi · 24 unmodified lines
21632199 eval ac_res=\$$3
21642200 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
21652201 $as_echo "$ac_res" >&6; }
2166− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2202+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
21672203
21682204 } # ac_fn_c_check_decl
21692205
@@ -2194,7 +2230,7 @@ $as_echo "$ac_try_echo"; } >&5 · 24 unmodified lines
21942230 test ! -s conftest.err
21952231 } && test -s conftest$ac_exeext && {
21962232 test "$cross_compiling" = yes ||
2197− $as_test_x conftest$ac_exeext
2233+ test -x conftest$ac_exeext
21982234 }; then :
21992235 ac_retval=0
22002236 else
@@ -2208,8 +2244,8 @@ fi · 7 unmodified lines
22082244 # interfere with the next link command; also delete a directory that is
22092245 # left behind by Apple's compiler. We do this before executing the actions.
22102246 rm -rf conftest.dSYM conftest_ipa8_conftest.oo
2211− eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
2212− return $ac_retval
2247+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
2248+ as_fn_set_status $ac_retval
22132249
22142250 } # ac_fn_cxx_try_link
22152251 cat >config.log <<_ACEOF
@@ -2217,7 +2253,7 @@ This file contains any messages produced by compilers while · 1 unmodified line
22172253 running configure, to aid debugging if configure makes a mistake.
22182254
22192255 It was created by cpplib $as_me , which was
2220−generated by GNU Autoconf 2.64. Invocation command line was
2256+generated by GNU Autoconf 2.69. Invocation command line was
22212257
22222258 $ $0 $@
22232259
@@ -2327,11 +2363,9 @@ trap 'exit_status=$? · 103 unmodified lines
23272363 {
23282364 echo
23292365
2330− cat <<\_ASBOX
2331−## ---------------- ##
2366+ $as_echo "## ---------------- ##
23322367 ## Cache variables. ##
2333−## ---------------- ##
2334−_ASBOX
2368+## ---------------- ##"
23352369 echo
23362370 # The following way of writing the cache mishandles newlines in values,
23372371 (
@@ -2365,11 +2399,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; · 27 unmodified lines
23652399 )
23662400 echo
23672401
2368− cat <<\_ASBOX
2369−## ----------------- ##
2402+ $as_echo "## ----------------- ##
23702403 ## Output variables. ##
2371−## ----------------- ##
2372−_ASBOX
2404+## ----------------- ##"
23732405 echo
23742406 for ac_var in $ac_subst_vars
23752407 do
@@ -2382,11 +2414,9 @@ _ASBOX · 6 unmodified lines
23822414 echo
23832415
23842416 if test -n "$ac_subst_files"; then
2385− cat <<\_ASBOX
2386−## ------------------- ##
2417+ $as_echo "## ------------------- ##
23872418 ## File substitutions. ##
2388−## ------------------- ##
2389−_ASBOX
2419+## ------------------- ##"
23902420 echo
23912421 for ac_var in $ac_subst_files
23922422 do
@@ -2400,11 +2430,9 @@ _ASBOX · 7 unmodified lines
24002430 fi
24012431
24022432 if test -s confdefs.h; then
2403− cat <<\_ASBOX
2404−## ----------- ##
2433+ $as_echo "## ----------- ##
24052434 ## confdefs.h. ##
2406−## ----------- ##
2407−_ASBOX
2435+## ----------- ##"
24082436 echo
24092437 cat confdefs.h
24102438 echo
@@ -2459,7 +2487,12 @@ _ACEOF · 48 unmodified lines
24592487 ac_site_file1=NONE
24602488 ac_site_file2=NONE
24612489 if test -n "$CONFIG_SITE"; then
2462− ac_site_file1=$CONFIG_SITE
2490+ # We do not want a PATH search for config.site.
2491+ case $CONFIG_SITE in #((
2492+ -*) ac_site_file1=./$CONFIG_SITE;;
2493+ */*) ac_site_file1=$CONFIG_SITE;;
2494+ *) ac_site_file1=./$CONFIG_SITE;;
2495+ esac
24632496 elif test "x$prefix" != xNONE; then
24642497 ac_site_file1=$prefix/share/config.site
24652498 ac_site_file2=$prefix/etc/config.site
@@ -2470,18 +2503,22 @@ fi · 4 unmodified lines
24702503 for ac_site_file in "$ac_site_file1" "$ac_site_file2"
24712504 do
24722505 test "x$ac_site_file" = xNONE && continue
2473− if test -r "$ac_site_file"; then
2506+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
24742507 { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
24752508 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
24762509 sed 's/^/| /' "$ac_site_file" >&5
2477− . "$ac_site_file"
2510+ . "$ac_site_file" \
2511+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
2512+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
2513+as_fn_error $? "failed to load site script $ac_site_file
2514+See \`config.log' for more details" "$LINENO" 5; }
24782515 fi
24792516 done
24802517
24812518 if test -r "$cache_file"; then
2482− # Some versions of bash will fail to source /dev/null (special
2483− # files actually), so we avoid doing that.
2484− if test -f "$cache_file"; then
2519+ # Some versions of bash will fail to source /dev/null (special files
2520+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
2521+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
24852522 { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
24862523 $as_echo "$as_me: loading cache $cache_file" >&6;}
24872524 case $cache_file in
@@ -2550,7 +2587,7 @@ if $ac_cache_corrupted; then · 62 unmodified lines
25502587 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
25512588 { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
25522589 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
2553− as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
2590+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
25542591 fi
25552592 ## -------------------- ##
25562593 ## Main body of script. ##
@@ -2565,21 +2602,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu · 8 unmodified lines
25652602
25662603
25672604
2568−
2569−
2570−
25712605 ac_aux_dir=
25722606 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
2573− for ac_t in install-sh install.sh shtool; do
2574− if test -f "$ac_dir/$ac_t"; then
2575− ac_aux_dir=$ac_dir
2576− ac_install_sh="$ac_aux_dir/$ac_t -c"
2577− break 2
2578− fi
2579− done
2607+ if test -f "$ac_dir/install-sh"; then
2608+ ac_aux_dir=$ac_dir
2609+ ac_install_sh="$ac_aux_dir/install-sh -c"
2610+ break
2611+ elif test -f "$ac_dir/install.sh"; then
2612+ ac_aux_dir=$ac_dir
2613+ ac_install_sh="$ac_aux_dir/install.sh -c"
2614+ break
2615+ elif test -f "$ac_dir/shtool"; then
2616+ ac_aux_dir=$ac_dir
2617+ ac_install_sh="$ac_aux_dir/shtool install -c"
2618+ break
2619+ fi
25802620 done
25812621 if test -z "$ac_aux_dir"; then
2582− as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
2622+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
25832623 fi
25842624
25852625 # These three variables are undocumented and unsupported,
@@ -2593,27 +2633,27 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. · 7 unmodified lines
25932633
25942634 # Make sure we can run config.sub.
25952635 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
2596− as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
2636+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
25972637
25982638 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
25992639 $as_echo_n "checking build system type... " >&6; }
2600−if test "${ac_cv_build+set}" = set; then :
2640+if ${ac_cv_build+:} false; then :
26012641 $as_echo_n "(cached) " >&6
26022642 else
26032643 ac_build_alias=$build_alias
26042644 test "x$ac_build_alias" = x &&
26052645 ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
26062646 test "x$ac_build_alias" = x &&
2607− as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
2647+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
26082648 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
2609− as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
2649+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
26102650
26112651 fi
26122652 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
26132653 $as_echo "$ac_cv_build" >&6; }
26142654 case $ac_cv_build in
26152655 *-*-*) ;;
2616−*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
2656+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
26172657 esac
26182658 build=$ac_cv_build
26192659 ac_save_IFS=$IFS; IFS='-'
@@ -2631,14 +2671,14 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac · 11 unmodified lines
26312671
26322672 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
26332673 $as_echo_n "checking host system type... " >&6; }
2634−if test "${ac_cv_host+set}" = set; then :
2674+if ${ac_cv_host+:} false; then :
26352675 $as_echo_n "(cached) " >&6
26362676 else
26372677 if test "x$host_alias" = x; then
26382678 ac_cv_host=$ac_cv_build
26392679 else
26402680 ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
2641− as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
2681+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
26422682 fi
26432683
26442684 fi
@@ -2646,7 +2686,7 @@ fi · 1 unmodified line
26462686 $as_echo "$ac_cv_host" >&6; }
26472687 case $ac_cv_host in
26482688 *-*-*) ;;
2649−*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
2689+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
26502690 esac
26512691 host=$ac_cv_host
26522692 ac_save_IFS=$IFS; IFS='-'
@@ -2664,14 +2704,14 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac · 11 unmodified lines
26642704
26652705 { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
26662706 $as_echo_n "checking target system type... " >&6; }
2667−if test "${ac_cv_target+set}" = set; then :
2707+if ${ac_cv_target+:} false; then :
26682708 $as_echo_n "(cached) " >&6
26692709 else
26702710 if test "x$target_alias" = x; then
26712711 ac_cv_target=$ac_cv_host
26722712 else
26732713 ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
2674− as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
2714+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
26752715 fi
26762716
26772717 fi
@@ -2679,7 +2719,7 @@ fi · 1 unmodified line
26792719 $as_echo "$ac_cv_target" >&6; }
26802720 case $ac_cv_target in
26812721 *-*-*) ;;
2682−*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
2722+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
26832723 esac
26842724 target=$ac_cv_target
26852725 ac_save_IFS=$IFS; IFS='-'
@@ -2708,7 +2748,7 @@ test -n "$target_alias" && · 22 unmodified lines
27082748 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
27092749 set x ${MAKE-make}
27102750 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
2711−if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
2751+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
27122752 $as_echo_n "(cached) " >&6
27132753 else
27142754 cat >conftest.make <<\_ACEOF
@@ -2716,7 +2756,7 @@ SHELL = /bin/sh · 1 unmodified line
27162756 all:
27172757 @echo '@@@%%%=$(MAKE)=@@@%%%'
27182758 _ACEOF
2719−# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2759+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
27202760 case `${MAKE-make} -f conftest.make 2>/dev/null` in
27212761 *@@@%%%=?*=@@@%%%*)
27222762 eval ac_cv_prog_make_${ac_make}_set=yes;;
@@ -2752,7 +2792,7 @@ fi · 29 unmodified lines
27522792 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
27532793 $as_echo_n "checking for a BSD-compatible install... " >&6; }
27542794 if test -z "$INSTALL"; then
2755−if test "${ac_cv_path_install+set}" = set; then :
2795+if ${ac_cv_path_install+:} false; then :
27562796 $as_echo_n "(cached) " >&6
27572797 else
27582798 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2772,7 +2812,7 @@ case $as_dir/ in #(( · 13 unmodified lines
27722812 # by default.
27732813 for ac_prog in ginstall scoinst install; do
27742814 for ac_exec_ext in '' $ac_executable_extensions; do
2775− if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
2815+ if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
27762816 if test $ac_prog = install &&
27772817 grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
27782818 # AIX install. It has an incompatible calling convention.
@@ -2838,7 +2878,7 @@ if test -n "$ac_tool_prefix"; then · 59 unmodified lines
28382878 set dummy ${ac_tool_prefix}gcc; ac_word=$2
28392879 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28402880 $as_echo_n "checking for $ac_word... " >&6; }
2841−if test "${ac_cv_prog_CC+set}" = set; then :
2881+if ${ac_cv_prog_CC+:} false; then :
28422882 $as_echo_n "(cached) " >&6
28432883 else
28442884 if test -n "$CC"; then
@@ -2850,7 +2890,7 @@ do · 5 unmodified lines
28502890 IFS=$as_save_IFS
28512891 test -z "$as_dir" && as_dir=.
28522892 for ac_exec_ext in '' $ac_executable_extensions; do
2853− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
2893+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
28542894 ac_cv_prog_CC="${ac_tool_prefix}gcc"
28552895 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
28562896 break 2
@@ -2878,7 +2918,7 @@ if test -z "$ac_cv_prog_CC"; then · 21 unmodified lines
28782918 set dummy gcc; ac_word=$2
28792919 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
28802920 $as_echo_n "checking for $ac_word... " >&6; }
2881−if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
2921+if ${ac_cv_prog_ac_ct_CC+:} false; then :
28822922 $as_echo_n "(cached) " >&6
28832923 else
28842924 if test -n "$ac_ct_CC"; then
@@ -2890,7 +2930,7 @@ do · 5 unmodified lines
28902930 IFS=$as_save_IFS
28912931 test -z "$as_dir" && as_dir=.
28922932 for ac_exec_ext in '' $ac_executable_extensions; do
2893− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
2933+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
28942934 ac_cv_prog_ac_ct_CC="gcc"
28952935 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
28962936 break 2
@@ -2931,7 +2971,7 @@ if test -z "$CC"; then · 34 unmodified lines
29312971 set dummy ${ac_tool_prefix}cc; ac_word=$2
29322972 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
29332973 $as_echo_n "checking for $ac_word... " >&6; }
2934−if test "${ac_cv_prog_CC+set}" = set; then :
2974+if ${ac_cv_prog_CC+:} false; then :
29352975 $as_echo_n "(cached) " >&6
29362976 else
29372977 if test -n "$CC"; then
@@ -2943,7 +2983,7 @@ do · 5 unmodified lines
29432983 IFS=$as_save_IFS
29442984 test -z "$as_dir" && as_dir=.
29452985 for ac_exec_ext in '' $ac_executable_extensions; do
2946− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
2986+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
29472987 ac_cv_prog_CC="${ac_tool_prefix}cc"
29482988 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
29492989 break 2
@@ -2971,7 +3011,7 @@ if test -z "$CC"; then · 21 unmodified lines
29713011 set dummy cc; ac_word=$2
29723012 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
29733013 $as_echo_n "checking for $ac_word... " >&6; }
2974−if test "${ac_cv_prog_CC+set}" = set; then :
3014+if ${ac_cv_prog_CC+:} false; then :
29753015 $as_echo_n "(cached) " >&6
29763016 else
29773017 if test -n "$CC"; then
@@ -2984,7 +3024,7 @@ do · 6 unmodified lines
29843024 IFS=$as_save_IFS
29853025 test -z "$as_dir" && as_dir=.
29863026 for ac_exec_ext in '' $ac_executable_extensions; do
2987− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3027+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
29883028 if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
29893029 ac_prog_rejected=yes
29903030 continue
@@ -3030,7 +3070,7 @@ if test -z "$CC"; then · 39 unmodified lines
30303070 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
30313071 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
30323072 $as_echo_n "checking for $ac_word... " >&6; }
3033−if test "${ac_cv_prog_CC+set}" = set; then :
3073+if ${ac_cv_prog_CC+:} false; then :
30343074 $as_echo_n "(cached) " >&6
30353075 else
30363076 if test -n "$CC"; then
@@ -3042,7 +3082,7 @@ do · 5 unmodified lines
30423082 IFS=$as_save_IFS
30433083 test -z "$as_dir" && as_dir=.
30443084 for ac_exec_ext in '' $ac_executable_extensions; do
3045− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3085+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
30463086 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
30473087 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
30483088 break 2
@@ -3074,7 +3114,7 @@ do · 25 unmodified lines
30743114 set dummy $ac_prog; ac_word=$2
30753115 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
30763116 $as_echo_n "checking for $ac_word... " >&6; }
3077−if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
3117+if ${ac_cv_prog_ac_ct_CC+:} false; then :
30783118 $as_echo_n "(cached) " >&6
30793119 else
30803120 if test -n "$ac_ct_CC"; then
@@ -3086,7 +3126,7 @@ do · 5 unmodified lines
30863126 IFS=$as_save_IFS
30873127 test -z "$as_dir" && as_dir=.
30883128 for ac_exec_ext in '' $ac_executable_extensions; do
3089− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3129+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
30903130 ac_cv_prog_ac_ct_CC="$ac_prog"
30913131 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
30923132 break 2
@@ -3128,8 +3168,8 @@ fi · 35 unmodified lines
31283168
31293169 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
31303170 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3131−as_fn_error "no acceptable C compiler found in \$PATH
3132−See \`config.log' for more details." "$LINENO" 5; }
3171+as_fn_error $? "no acceptable C compiler found in \$PATH
3172+See \`config.log' for more details" "$LINENO" 5; }
31333173
31343174 # Provide some information about the compiler.
31353175 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -3150,8 +3190,8 @@ $as_echo "$ac_try_echo"; } >&5 · 14 unmodified lines
31503190 ... rest of stderr output deleted ...
31513191 10q' conftest.err >conftest.er1
31523192 cat conftest.er1 >&5
3153− rm -f conftest.er1 conftest.err
31543193 fi
3194+ rm -f conftest.er1 conftest.err
31553195 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
31563196 test $ac_status = 0; }
31573197 done
@@ -3168,12 +3208,12 @@ main () · 10 unmodified lines
31683208 }
31693209 _ACEOF
31703210 ac_clean_files_save=$ac_clean_files
3171−ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
3211+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
31723212 # Try to create an executable without -o first, disregard a.out.
31733213 # It will help us diagnose broken compilers, and finding out an intuition
31743214 # of exeext.
3175−{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
3176−$as_echo_n "checking for C compiler default output file name... " >&6; }
3215+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
3216+$as_echo_n "checking whether the C compiler works... " >&6; }
31773217 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
31783218
31793219 # The possible output files:
@@ -3235,62 +3275,28 @@ test "$ac_cv_exeext" = no && ac_cv_exeext= · 55 unmodified lines
32353275 else
32363276 ac_file=''
32373277 fi
3238−{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
3239−$as_echo "$ac_file" >&6; }
32403278 if test -z "$ac_file"; then :
3241− $as_echo "$as_me: failed program was:" >&5
3279+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
3280+$as_echo "no" >&6; }
3281+$as_echo "$as_me: failed program was:" >&5
32423282 sed 's/^/| /' conftest.$ac_ext >&5
32433283
32443284 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
32453285 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3246−{ as_fn_set_status 77
3247−as_fn_error "C compiler cannot create executables
3248−See \`config.log' for more details." "$LINENO" 5; }; }
3286+as_fn_error 77 "C compiler cannot create executables
3287+See \`config.log' for more details" "$LINENO" 5; }
3288+else
3289+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3290+$as_echo "yes" >&6; }
32493291 fi
3292+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
3293+$as_echo_n "checking for C compiler default output file name... " >&6; }
3294+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
3295+$as_echo "$ac_file" >&6; }
32503296 ac_exeext=$ac_cv_exeext
32513297
3252−# Check that the compiler produces executables we can run. If not, either
3253−# the compiler is broken, or we cross compile.
3254−{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
3255−$as_echo_n "checking whether the C compiler works... " >&6; }
3256−# If not cross compiling, check that we can run a simple program.
3257−if test "$cross_compiling" != yes; then
3258− if { ac_try='./$ac_file'
3259− { { case "(($ac_try" in
3260− *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3261− *) ac_try_echo=$ac_try;;
3262−esac
3263−eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3264−$as_echo "$ac_try_echo"; } >&5
3265− (eval "$ac_try") 2>&5
3266− ac_status=$?
3267− $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3268− test $ac_status = 0; }; }; then
3269− cross_compiling=no
3270− else
3271− if test "$cross_compiling" = maybe; then
3272− cross_compiling=yes
3273− else
3274− { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3275−$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3276−as_fn_error "cannot run C compiled programs.
3277−If you meant to cross compile, use \`--host'.
3278−See \`config.log' for more details." "$LINENO" 5; }
3279− fi
3280− fi
3281−fi
3282−{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3283−$as_echo "yes" >&6; }
3284−
3285−rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
3298+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
32863299 ac_clean_files=$ac_clean_files_save
3287−# Check that the compiler produces executables we can run. If not, either
3288−# the compiler is broken, or we cross compile.
3289−{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
3290−$as_echo_n "checking whether we are cross compiling... " >&6; }
3291−{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
3292−$as_echo "$cross_compiling" >&6; }
3293−
32943300 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
32953301 $as_echo_n "checking for suffix of executables... " >&6; }
32963302 if { { ac_try="$ac_link"
@@ -3320,19 +3326,78 @@ done · 23 unmodified lines
33203326 else
33213327 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
33223328 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3323−as_fn_error "cannot compute suffix of executables: cannot compile and link
3324−See \`config.log' for more details." "$LINENO" 5; }
3329+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
3330+See \`config.log' for more details" "$LINENO" 5; }
33253331 fi
3326−rm -f conftest$ac_cv_exeext
3332+rm -f conftest conftest$ac_cv_exeext
33273333 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
33283334 $as_echo "$ac_cv_exeext" >&6; }
33293335
33303336 rm -f conftest.$ac_ext
33313337 EXEEXT=$ac_cv_exeext
33323338 ac_exeext=$EXEEXT
3339+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
3340+/* end confdefs.h. */
3341+#include <stdio.h>
3342+int
3343+main ()
3344+{
3345+FILE *f = fopen ("conftest.out", "w");
3346+ return ferror (f) || fclose (f) != 0;
3347+
3348+ ;
3349+ return 0;
3350+}
3351+_ACEOF
3352+ac_clean_files="$ac_clean_files conftest.out"
3353+# Check that the compiler produces executables we can run. If not, either
3354+# the compiler is broken, or we cross compile.
3355+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
3356+$as_echo_n "checking whether we are cross compiling... " >&6; }
3357+if test "$cross_compiling" != yes; then
3358+ { { ac_try="$ac_link"
3359+case "(($ac_try" in
3360+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3361+ *) ac_try_echo=$ac_try;;
3362+esac
3363+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3364+$as_echo "$ac_try_echo"; } >&5
3365+ (eval "$ac_link") 2>&5
3366+ ac_status=$?
3367+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3368+ test $ac_status = 0; }
3369+ if { ac_try='./conftest$ac_cv_exeext'
3370+ { { case "(($ac_try" in
3371+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
3372+ *) ac_try_echo=$ac_try;;
3373+esac
3374+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
3375+$as_echo "$ac_try_echo"; } >&5
3376+ (eval "$ac_try") 2>&5
3377+ ac_status=$?
3378+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3379+ test $ac_status = 0; }; }; then
3380+ cross_compiling=no
3381+ else
3382+ if test "$cross_compiling" = maybe; then
3383+ cross_compiling=yes
3384+ else
3385+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
3386+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3387+as_fn_error $? "cannot run C compiled programs.
3388+If you meant to cross compile, use \`--host'.
3389+See \`config.log' for more details" "$LINENO" 5; }
3390+ fi
3391+ fi
3392+fi
3393+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
3394+$as_echo "$cross_compiling" >&6; }
3395+
3396+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
3397+ac_clean_files=$ac_clean_files_save
33333398 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
33343399 $as_echo_n "checking for suffix of object files... " >&6; }
3335−if test "${ac_cv_objext+set}" = set; then :
3400+if ${ac_cv_objext+:} false; then :
33363401 $as_echo_n "(cached) " >&6
33373402 else
33383403 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3372,8 +3437,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 33 unmodified lines
33723437
33733438 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
33743439 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
3375−as_fn_error "cannot compute suffix of object files: cannot compile
3376−See \`config.log' for more details." "$LINENO" 5; }
3440+as_fn_error $? "cannot compute suffix of object files: cannot compile
3441+See \`config.log' for more details" "$LINENO" 5; }
33773442 fi
33783443 rm -f conftest.$ac_cv_objext conftest.$ac_ext
33793444 fi
@@ -3383,7 +3448,7 @@ OBJEXT=$ac_cv_objext · 3 unmodified lines
33833448 ac_objext=$OBJEXT
33843449 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
33853450 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
3386−if test "${ac_cv_c_compiler_gnu+set}" = set; then :
3451+if ${ac_cv_c_compiler_gnu+:} false; then :
33873452 $as_echo_n "(cached) " >&6
33883453 else
33893454 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3420,7 +3485,7 @@ ac_test_CFLAGS=${CFLAGS+set} · 30 unmodified lines
34203485 ac_save_CFLAGS=$CFLAGS
34213486 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
34223487 $as_echo_n "checking whether $CC accepts -g... " >&6; }
3423−if test "${ac_cv_prog_cc_g+set}" = set; then :
3488+if ${ac_cv_prog_cc_g+:} false; then :
34243489 $as_echo_n "(cached) " >&6
34253490 else
34263491 ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3498,7 +3563,7 @@ else · 71 unmodified lines
34983563 fi
34993564 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
35003565 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
3501−if test "${ac_cv_prog_cc_c89+set}" = set; then :
3566+if ${ac_cv_prog_cc_c89+:} false; then :
35023567 $as_echo_n "(cached) " >&6
35033568 else
35043569 ac_cv_prog_cc_c89=no
@@ -3507,8 +3572,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext · 2 unmodified lines
35073572 /* end confdefs.h. */
35083573 #include <stdarg.h>
35093574 #include <stdio.h>
3510−#include <sys/types.h>
3511−#include <sys/stat.h>
3575+struct stat;
35123576 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
35133577 struct buf { int x; };
35143578 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -3609,7 +3673,7 @@ if test -z "$CXX"; then · 94 unmodified lines
36093673 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
36103674 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
36113675 $as_echo_n "checking for $ac_word... " >&6; }
3612−if test "${ac_cv_prog_CXX+set}" = set; then :
3676+if ${ac_cv_prog_CXX+:} false; then :
36133677 $as_echo_n "(cached) " >&6
36143678 else
36153679 if test -n "$CXX"; then
@@ -3621,7 +3685,7 @@ do · 5 unmodified lines
36213685 IFS=$as_save_IFS
36223686 test -z "$as_dir" && as_dir=.
36233687 for ac_exec_ext in '' $ac_executable_extensions; do
3624− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3688+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
36253689 ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
36263690 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
36273691 break 2
@@ -3653,7 +3717,7 @@ do · 25 unmodified lines
36533717 set dummy $ac_prog; ac_word=$2
36543718 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
36553719 $as_echo_n "checking for $ac_word... " >&6; }
3656−if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
3720+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
36573721 $as_echo_n "(cached) " >&6
36583722 else
36593723 if test -n "$ac_ct_CXX"; then
@@ -3665,7 +3729,7 @@ do · 5 unmodified lines
36653729 IFS=$as_save_IFS
36663730 test -z "$as_dir" && as_dir=.
36673731 for ac_exec_ext in '' $ac_executable_extensions; do
3668− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3732+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
36693733 ac_cv_prog_ac_ct_CXX="$ac_prog"
36703734 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
36713735 break 2
@@ -3723,15 +3787,15 @@ $as_echo "$ac_try_echo"; } >&5 · 51 unmodified lines
37233787 ... rest of stderr output deleted ...
37243788 10q' conftest.err >conftest.er1
37253789 cat conftest.er1 >&5
3726− rm -f conftest.er1 conftest.err
37273790 fi
3791+ rm -f conftest.er1 conftest.err
37283792 $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
37293793 test $ac_status = 0; }
37303794 done
37313795
37323796 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
37333797 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
3734−if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
3798+if ${ac_cv_cxx_compiler_gnu+:} false; then :
37353799 $as_echo_n "(cached) " >&6
37363800 else
37373801 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3768,7 +3832,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set} · 30 unmodified lines
37683832 ac_save_CXXFLAGS=$CXXFLAGS
37693833 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
37703834 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
3771−if test "${ac_cv_prog_cxx_g+set}" = set; then :
3835+if ${ac_cv_prog_cxx_g+:} false; then :
37723836 $as_echo_n "(cached) " >&6
37733837 else
37743838 ac_save_cxx_werror_flag=$ac_cxx_werror_flag
@@ -3855,7 +3919,7 @@ if test -n "$ac_tool_prefix"; then · 80 unmodified lines
38553919 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
38563920 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
38573921 $as_echo_n "checking for $ac_word... " >&6; }
3858−if test "${ac_cv_prog_RANLIB+set}" = set; then :
3922+if ${ac_cv_prog_RANLIB+:} false; then :
38593923 $as_echo_n "(cached) " >&6
38603924 else
38613925 if test -n "$RANLIB"; then
@@ -3867,7 +3931,7 @@ do · 5 unmodified lines
38673931 IFS=$as_save_IFS
38683932 test -z "$as_dir" && as_dir=.
38693933 for ac_exec_ext in '' $ac_executable_extensions; do
3870− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3934+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
38713935 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
38723936 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
38733937 break 2
@@ -3895,7 +3959,7 @@ if test -z "$ac_cv_prog_RANLIB"; then · 21 unmodified lines
38953959 set dummy ranlib; ac_word=$2
38963960 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
38973961 $as_echo_n "checking for $ac_word... " >&6; }
3898−if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
3962+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
38993963 $as_echo_n "(cached) " >&6
39003964 else
39013965 if test -n "$ac_ct_RANLIB"; then
@@ -3907,7 +3971,7 @@ do · 5 unmodified lines
39073971 IFS=$as_save_IFS
39083972 test -z "$as_dir" && as_dir=.
39093973 for ac_exec_ext in '' $ac_executable_extensions; do
3910− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
3974+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
39113975 ac_cv_prog_ac_ct_RANLIB="ranlib"
39123976 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
39133977 break 2
@@ -3956,7 +4020,7 @@ if test -n "$CPP" && test -d "$CPP"; then · 42 unmodified lines
39564020 CPP=
39574021 fi
39584022 if test -z "$CPP"; then
3959− if test "${ac_cv_prog_CPP+set}" = set; then :
4023+ if ${ac_cv_prog_CPP+:} false; then :
39604024 $as_echo_n "(cached) " >&6
39614025 else
39624026 # Double quotes because CPP needs to be expanded
@@ -3986,7 +4050,7 @@ else · 23 unmodified lines
39864050 # Broken: fails on valid input.
39874051 continue
39884052 fi
3989−rm -f conftest.err conftest.$ac_ext
4053+rm -f conftest.err conftest.i conftest.$ac_ext
39904054
39914055 # OK, works on sane cases. Now check whether nonexistent headers
39924056 # can be detected and how.
@@ -4002,11 +4066,11 @@ else · 9 unmodified lines
40024066 ac_preproc_ok=:
40034067 break
40044068 fi
4005−rm -f conftest.err conftest.$ac_ext
4069+rm -f conftest.err conftest.i conftest.$ac_ext
40064070
40074071 done
40084072 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4009−rm -f conftest.err conftest.$ac_ext
4073+rm -f conftest.i conftest.err conftest.$ac_ext
40104074 if $ac_preproc_ok; then :
40114075 break
40124076 fi
@@ -4045,7 +4109,7 @@ else · 32 unmodified lines
40454109 # Broken: fails on valid input.
40464110 continue
40474111 fi
4048−rm -f conftest.err conftest.$ac_ext
4112+rm -f conftest.err conftest.i conftest.$ac_ext
40494113
40504114 # OK, works on sane cases. Now check whether nonexistent headers
40514115 # can be detected and how.
@@ -4061,18 +4125,18 @@ else · 9 unmodified lines
40614125 ac_preproc_ok=:
40624126 break
40634127 fi
4064−rm -f conftest.err conftest.$ac_ext
4128+rm -f conftest.err conftest.i conftest.$ac_ext
40654129
40664130 done
40674131 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
4068−rm -f conftest.err conftest.$ac_ext
4132+rm -f conftest.i conftest.err conftest.$ac_ext
40694133 if $ac_preproc_ok; then :
40704134
40714135 else
40724136 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
40734137 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
4074−as_fn_error "C preprocessor \"$CPP\" fails sanity check
4075−See \`config.log' for more details." "$LINENO" 5; }
4138+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
4139+See \`config.log' for more details" "$LINENO" 5; }
40764140 fi
40774141
40784142 ac_ext=c
@@ -4084,7 +4148,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu · 5 unmodified lines
40844148
40854149 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
40864150 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
4087−if test "${ac_cv_path_GREP+set}" = set; then :
4151+if ${ac_cv_path_GREP+:} false; then :
40884152 $as_echo_n "(cached) " >&6
40894153 else
40904154 if test -z "$GREP"; then
@@ -4098,7 +4162,7 @@ do · 7 unmodified lines
40984162 for ac_prog in grep ggrep; do
40994163 for ac_exec_ext in '' $ac_executable_extensions; do
41004164 ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
4101− { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
4165+ as_fn_executable_p "$ac_path_GREP" || continue
41024166 # Check for GNU ac_path_GREP and select it if it is found.
41034167 # Check for GNU $ac_path_GREP
41044168 case `"$ac_path_GREP" --version 2>&1` in
@@ -4133,7 +4197,7 @@ esac · 28 unmodified lines
41334197 done
41344198 IFS=$as_save_IFS
41354199 if test -z "$ac_cv_path_GREP"; then
4136− as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4200+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
41374201 fi
41384202 else
41394203 ac_cv_path_GREP=$GREP
@@ -4147,7 +4211,7 @@ $as_echo "$ac_cv_path_GREP" >&6; } · 7 unmodified lines
41474211
41484212 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
41494213 $as_echo_n "checking for egrep... " >&6; }
4150−if test "${ac_cv_path_EGREP+set}" = set; then :
4214+if ${ac_cv_path_EGREP+:} false; then :
41514215 $as_echo_n "(cached) " >&6
41524216 else
41534217 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -4164,7 +4228,7 @@ do · 10 unmodified lines
41644228 for ac_prog in egrep; do
41654229 for ac_exec_ext in '' $ac_executable_extensions; do
41664230 ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
4167− { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
4231+ as_fn_executable_p "$ac_path_EGREP" || continue
41684232 # Check for GNU ac_path_EGREP and select it if it is found.
41694233 # Check for GNU $ac_path_EGREP
41704234 case `"$ac_path_EGREP" --version 2>&1` in
@@ -4199,7 +4263,7 @@ esac · 28 unmodified lines
41994263 done
42004264 IFS=$as_save_IFS
42014265 if test -z "$ac_cv_path_EGREP"; then
4202− as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
4266+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
42034267 fi
42044268 else
42054269 ac_cv_path_EGREP=$EGREP
@@ -4214,7 +4278,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } · 8 unmodified lines
42144278
42154279 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
42164280 $as_echo_n "checking for ANSI C header files... " >&6; }
4217−if test "${ac_cv_header_stdc+set}" = set; then :
4281+if ${ac_cv_header_stdc+:} false; then :
42184282 $as_echo_n "(cached) " >&6
42194283 else
42204284 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4331,8 +4395,7 @@ do : · 110 unmodified lines
43314395 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
43324396 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
43334397 "
4334−eval as_val=\$$as_ac_Header
4335− if test "x$as_val" = x""yes; then :
4398+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
43364399 cat >>confdefs.h <<_ACEOF
43374400 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
43384401 _ACEOF
@@ -4344,7 +4407,7 @@ done · 5 unmodified lines
43444407
43454408
43464409 ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
4347−if test "x$ac_cv_header_minix_config_h" = x""yes; then :
4410+if test "x$ac_cv_header_minix_config_h" = xyes; then :
43484411 MINIX=yes
43494412 else
43504413 MINIX=
@@ -4366,14 +4429,14 @@ $as_echo "#define _MINIX 1" >>confdefs.h · 15 unmodified lines
43664429
43674430 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
43684431 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
4369−if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
4432+if ${ac_cv_safe_to_define___extensions__+:} false; then :
43704433 $as_echo_n "(cached) " >&6
43714434 else
43724435 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
43734436 /* end confdefs.h. */
43744437
4375−# define __EXTENSIONS__ 1
4376− $ac_includes_default
4438+# define __EXTENSIONS__ 1
4439+ $ac_includes_default
43774440 int
43784441 main ()
43794442 {
@@ -4412,7 +4475,7 @@ if test "$enable_largefile" != no; then · 32 unmodified lines
44124475
44134476 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
44144477 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
4415−if test "${ac_cv_sys_largefile_CC+set}" = set; then :
4478+if ${ac_cv_sys_largefile_CC+:} false; then :
44164479 $as_echo_n "(cached) " >&6
44174480 else
44184481 ac_cv_sys_largefile_CC=no
@@ -4463,7 +4526,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; } · 44 unmodified lines
44634526
44644527 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
44654528 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
4466−if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
4529+if ${ac_cv_sys_file_offset_bits+:} false; then :
44674530 $as_echo_n "(cached) " >&6
44684531 else
44694532 while :; do
@@ -4532,7 +4595,7 @@ rm -rf conftest* · 62 unmodified lines
45324595 if test $ac_cv_sys_file_offset_bits = unknown; then
45334596 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
45344597 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
4535−if test "${ac_cv_sys_large_files+set}" = set; then :
4598+if ${ac_cv_sys_large_files+:} false; then :
45364599 $as_echo_n "(cached) " >&6
45374600 else
45384601 while :; do
@@ -4599,6 +4662,8 @@ _ACEOF · 60 unmodified lines
45994662 esac
46004663 rm -rf conftest*
46014664 fi
4665+
4666+
46024667 fi
46034668
46044669
@@ -4609,7 +4674,7 @@ do · 4 unmodified lines
46094674 set dummy $ac_prog; ac_word=$2
46104675 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
46114676 $as_echo_n "checking for $ac_word... " >&6; }
4612−if test "${ac_cv_prog_ACLOCAL+set}" = set; then :
4677+if ${ac_cv_prog_ACLOCAL+:} false; then :
46134678 $as_echo_n "(cached) " >&6
46144679 else
46154680 if test -n "$ACLOCAL"; then
@@ -4621,7 +4686,7 @@ do · 5 unmodified lines
46214686 IFS=$as_save_IFS
46224687 test -z "$as_dir" && as_dir=.
46234688 for ac_exec_ext in '' $ac_executable_extensions; do
4624− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4689+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
46254690 ac_cv_prog_ACLOCAL="$ac_prog"
46264691 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
46274692 break 2
@@ -4652,7 +4717,7 @@ do · 24 unmodified lines
46524717 set dummy $ac_prog; ac_word=$2
46534718 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
46544719 $as_echo_n "checking for $ac_word... " >&6; }
4655−if test "${ac_cv_prog_AUTOCONF+set}" = set; then :
4720+if ${ac_cv_prog_AUTOCONF+:} false; then :
46564721 $as_echo_n "(cached) " >&6
46574722 else
46584723 if test -n "$AUTOCONF"; then
@@ -4664,7 +4729,7 @@ do · 5 unmodified lines
46644729 IFS=$as_save_IFS
46654730 test -z "$as_dir" && as_dir=.
46664731 for ac_exec_ext in '' $ac_executable_extensions; do
4667− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4732+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
46684733 ac_cv_prog_AUTOCONF="$ac_prog"
46694734 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
46704735 break 2
@@ -4695,7 +4760,7 @@ do · 24 unmodified lines
46954760 set dummy $ac_prog; ac_word=$2
46964761 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
46974762 $as_echo_n "checking for $ac_word... " >&6; }
4698−if test "${ac_cv_prog_AUTOHEADER+set}" = set; then :
4763+if ${ac_cv_prog_AUTOHEADER+:} false; then :
46994764 $as_echo_n "(cached) " >&6
47004765 else
47014766 if test -n "$AUTOHEADER"; then
@@ -4707,7 +4772,7 @@ do · 5 unmodified lines
47074772 IFS=$as_save_IFS
47084773 test -z "$as_dir" && as_dir=.
47094774 for ac_exec_ext in '' $ac_executable_extensions; do
4710− if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
4775+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
47114776 ac_cv_prog_AUTOHEADER="$ac_prog"
47124777 $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
47134778 break 2
@@ -4756,7 +4821,7 @@ for real_option in -W -Wall -Wno-narrowing -Wwrite-strings \ · 42 unmodified lines
47564821
47574822 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
47584823 $as_echo_n "checking whether $CC supports $option... " >&6; }
4759−if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
4824+if eval \${$as_acx_Woption+:} false; then :
47604825 $as_echo_n "(cached) " >&6
47614826 else
47624827 CFLAGS="$option"
@@ -4814,7 +4879,7 @@ for real_option in -Wstrict-prototypes -Wmissing-prototypes \ · 51 unmodified lines
48144879
48154880 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
48164881 $as_echo_n "checking whether $CC supports $option... " >&6; }
4817−if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
4882+if eval \${$as_acx_Woption+:} false; then :
48184883 $as_echo_n "(cached) " >&6
48194884 else
48204885 CFLAGS="$option"
@@ -4864,7 +4929,7 @@ WARN_PEDANTIC= · 43 unmodified lines
48644929 if test "$GCC" = yes; then :
48654930 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long" >&5
48664931 $as_echo_n "checking whether $CC supports -pedantic -Wlong-long... " >&6; }
4867−if test "${acx_cv_prog_cc_pedantic__Wlong_long+set}" = set; then :
4932+if ${acx_cv_prog_cc_pedantic__Wlong_long+:} false; then :
48684933 $as_echo_n "(cached) " >&6
48694934 else
48704935 save_CFLAGS="$CFLAGS"
@@ -4923,7 +4988,7 @@ for real_option in -fno-exceptions -fno-rtti; do · 52 unmodified lines
49234988
49244989 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
49254990 $as_echo_n "checking whether $CC supports $option... " >&6; }
4926−if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
4991+if eval \${$as_acx_Woption+:} false; then :
49274992 $as_echo_n "(cached) " >&6
49284993 else
49294994 CFLAGS="$option"
@@ -5019,7 +5084,7 @@ _ACEOF · 89 unmodified lines
50195084 if ac_fn_cxx_try_compile "$LINENO"; then :
50205085
50215086 else
5022− as_fn_error "C++ compiler missing or inoperational" "$LINENO" 5
5087+ as_fn_error $? "C++ compiler missing or inoperational" "$LINENO" 5
50235088 fi
50245089 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
50255090 ac_ext=c
@@ -5033,7 +5098,7 @@ depcc="$CXX" am_compiler_list= · 7 unmodified lines
50335098 am_depcomp=$ac_aux_dir/depcomp
50345099 { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
50355100 $as_echo_n "checking dependency style of $depcc... " >&6; }
5036−if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
5101+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
50375102 $as_echo_n "(cached) " >&6
50385103 else
50395104 if test -f "$am_depcomp"; then
@@ -5119,7 +5184,7 @@ fi · 79 unmodified lines
51195184 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
51205185 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
51215186 if test x${am_cv_CXX_dependencies_compiler_type-none} = xnone
5122−then as_fn_error "no usable dependency style found" "$LINENO" 5
5187+then as_fn_error $? "no usable dependency style found" "$LINENO" 5
51235188 else CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
51245189
51255190 fi
@@ -5128,7 +5193,7 @@ fi · 2 unmodified lines
51285193 # Checks for header files.
51295194 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
51305195 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
5131−if test "${ac_cv_header_time+set}" = set; then :
5196+if ${ac_cv_header_time+:} false; then :
51325197 $as_echo_n "(cached) " >&6
51335198 else
51345199 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5163,7 +5228,7 @@ fi · 28 unmodified lines
51635228
51645229 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5
51655230 $as_echo_n "checking whether string.h and strings.h may both be included... " >&6; }
5166−if test "${gcc_cv_header_string+set}" = set; then :
5231+if ${gcc_cv_header_string+:} false; then :
51675232 $as_echo_n "(cached) " >&6
51685233 else
51695234 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5199,8 +5264,7 @@ for ac_header in locale.h fcntl.h limits.h stddef.h \ · 29 unmodified lines
51995264 do :
52005265 as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
52015266 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
5202−eval as_val=\$$as_ac_Header
5203− if test "x$as_val" = x""yes; then :
5267+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
52045268 cat >>confdefs.h <<_ACEOF
52055269 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
52065270 _ACEOF
@@ -5213,7 +5277,7 @@ done · 6 unmodified lines
52135277 # Checks for typedefs, structures, and compiler characteristics.
52145278 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
52155279 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
5216−if test "${ac_cv_c_bigendian+set}" = set; then :
5280+if ${ac_cv_c_bigendian+:} false; then :
52175281 $as_echo_n "(cached) " >&6
52185282 else
52195283 ac_cv_c_bigendian=unknown
@@ -5431,13 +5495,13 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h · 211 unmodified lines
54315495
54325496 ;; #(
54335497 *)
5434− as_fn_error "unknown endianness
5498+ as_fn_error $? "unknown endianness
54355499 presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
54365500 esac
54375501
54385502 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
54395503 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
5440−if test "${ac_cv_c_const+set}" = set; then :
5504+if ${ac_cv_c_const+:} false; then :
54415505 $as_echo_n "(cached) " >&6
54425506 else
54435507 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5446,11 +5510,11 @@ else · 2 unmodified lines
54465510 int
54475511 main ()
54485512 {
5449−/* FIXME: Include the comments suggested by Paul. */
5513+
54505514 #ifndef __cplusplus
5451− /* Ultrix mips cc rejects this. */
5515+ /* Ultrix mips cc rejects this sort of thing. */
54525516 typedef int charset[2];
5453− const charset cs;
5517+ const charset cs = { 0, 0 };
54545518 /* SunOS 4.1.1 cc rejects this. */
54555519 char const *const *pcpcc;
54565520 char **ppc;
@@ -5467,8 +5531,9 @@ main () · 10 unmodified lines
54675531 ++pcpcc;
54685532 ppc = (char**) pcpcc;
54695533 pcpcc = (char const *const *) ppc;
5470− { /* SCO 3.2v4 cc rejects this. */
5471− char *t;
5534+ { /* SCO 3.2v4 cc rejects this sort of thing. */
5535+ char tx;
5536+ char *t = &tx;
54725537 char const *s = 0 ? (char *) 0 : (char const *) 0;
54735538
54745539 *t++ = 0;
@@ -5484,10 +5549,10 @@ main () · 9 unmodified lines
54845549 iptr p = 0;
54855550 ++p;
54865551 }
5487− { /* AIX XL C 1.02.0.0 rejects this saying
5552+ { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
54885553 "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
5489− struct s { int j; const int *ap[3]; };
5490− struct s *b; b->j = 5;
5554+ struct s { int j; const int *ap[3]; } bx;
5555+ struct s *b = &bx; b->j = 5;
54915556 }
54925557 { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
54935558 const int foo = 10;
@@ -5517,7 +5582,7 @@ fi · 23 unmodified lines
55175582
55185583 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
55195584 $as_echo_n "checking for inline... " >&6; }
5520−if test "${ac_cv_c_inline+set}" = set; then :
5585+if ${ac_cv_c_inline+:} false; then :
55215586 $as_echo_n "(cached) " >&6
55225587 else
55235588 ac_cv_c_inline=no
@@ -5559,7 +5624,7 @@ esac · 35 unmodified lines
55595624
55605625 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
55615626 $as_echo_n "checking for obstacks... " >&6; }
5562−if test "${ac_cv_func_obstack+set}" = set; then :
5627+if ${ac_cv_func_obstack+:} false; then :
55635628 $as_echo_n "(cached) " >&6
55645629 else
55655630 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5602,7 +5667,7 @@ esac · 36 unmodified lines
56025667 fi
56035668
56045669 ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
5605−if test "x$ac_cv_type_off_t" = x""yes; then :
5670+if test "x$ac_cv_type_off_t" = xyes; then :
56065671
56075672 else
56085673
@@ -5613,7 +5678,7 @@ _ACEOF · 4 unmodified lines
56135678 fi
56145679
56155680 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
5616−if test "x$ac_cv_type_size_t" = x""yes; then :
5681+if test "x$ac_cv_type_size_t" = xyes; then :
56175682
56185683 else
56195684
@@ -5624,7 +5689,7 @@ _ACEOF · 4 unmodified lines
56245689 fi
56255690
56265691 ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
5627−if test "x$ac_cv_type_ssize_t" = x""yes; then :
5692+if test "x$ac_cv_type_ssize_t" = xyes; then :
56285693
56295694 else
56305695
@@ -5636,7 +5701,7 @@ fi · 5 unmodified lines
56365701
56375702
56385703 ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
5639−if test "x$ac_cv_type_uintptr_t" = x""yes; then :
5704+if test "x$ac_cv_type_uintptr_t" = xyes; then :
56405705
56415706 $as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
56425707
@@ -5650,7 +5715,8 @@ int · 7 unmodified lines
56505715 main ()
56515716 {
56525717 static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
5653−test_array [0] = 0
5718+test_array [0] = 0;
5719+return test_array [0];
56545720
56555721 ;
56565722 return 0;
@@ -5671,7 +5737,7 @@ fi · 14 unmodified lines
56715737
56725738
56735739 ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
5674−if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
5740+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
56755741
56765742 else
56775743
@@ -5696,11 +5762,11 @@ _ACEOF · 18 unmodified lines
56965762 esac
56975763
56985764 if test x"$ac_cv_c_uint64_t" = x"no"; then
5699− as_fn_error "uint64_t not found" "$LINENO" 5
5765+ as_fn_error $? "uint64_t not found" "$LINENO" 5
57005766 fi
57015767 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
57025768 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
5703−if test "${ac_cv_struct_tm+set}" = set; then :
5769+if ${ac_cv_struct_tm+:} false; then :
57045770 $as_echo_n "(cached) " >&6
57055771 else
57065772 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -5739,7 +5805,7 @@ fi · 32 unmodified lines
57395805 # This bug is HP SR number 8606223364.
57405806 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
57415807 $as_echo_n "checking size of int... " >&6; }
5742−if test "${ac_cv_sizeof_int+set}" = set; then :
5808+if ${ac_cv_sizeof_int+:} false; then :
57435809 $as_echo_n "(cached) " >&6
57445810 else
57455811 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
@@ -5748,9 +5814,8 @@ else · 2 unmodified lines
57485814 if test "$ac_cv_type_int" = yes; then
57495815 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
57505816 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5751−{ as_fn_set_status 77
5752−as_fn_error "cannot compute sizeof (int)
5753−See \`config.log' for more details." "$LINENO" 5; }; }
5817+as_fn_error 77 "cannot compute sizeof (int)
5818+See \`config.log' for more details" "$LINENO" 5; }
57545819 else
57555820 ac_cv_sizeof_int=0
57565821 fi
@@ -5773,7 +5838,7 @@ _ACEOF · 16 unmodified lines
57735838 # This bug is HP SR number 8606223364.
57745839 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
57755840 $as_echo_n "checking size of long... " >&6; }
5776−if test "${ac_cv_sizeof_long+set}" = set; then :
5841+if ${ac_cv_sizeof_long+:} false; then :
57775842 $as_echo_n "(cached) " >&6
57785843 else
57795844 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
@@ -5782,9 +5847,8 @@ else · 2 unmodified lines
57825847 if test "$ac_cv_type_long" = yes; then
57835848 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
57845849 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
5785−{ as_fn_set_status 77
5786−as_fn_error "cannot compute sizeof (long)
5787−See \`config.log' for more details." "$LINENO" 5; }; }
5850+as_fn_error 77 "cannot compute sizeof (long)
5851+See \`config.log' for more details" "$LINENO" 5; }
57885852 else
57895853 ac_cv_sizeof_long=0
57905854 fi
@@ -5806,8 +5870,7 @@ for ac_func in clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked · 15 unmodified lines
58065870 do :
58075871 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
58085872 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
5809−eval as_val=\$$as_ac_var
5810− if test "x$as_val" = x""yes; then :
5873+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
58115874 cat >>confdefs.h <<_ACEOF
58125875 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
58135876 _ACEOF
@@ -5816,7 +5879,7 @@ fi · 2 unmodified lines
58165879 done
58175880
58185881 ac_fn_c_check_decl "$LINENO" "abort" "ac_cv_have_decl_abort" "$ac_includes_default"
5819−if test "x$ac_cv_have_decl_abort" = x""yes; then :
5882+if test "x$ac_cv_have_decl_abort" = xyes; then :
58205883 ac_have_decl=1
58215884 else
58225885 ac_have_decl=0
@@ -5826,7 +5889,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58265889 #define HAVE_DECL_ABORT $ac_have_decl
58275890 _ACEOF
58285891 ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default"
5829−if test "x$ac_cv_have_decl_asprintf" = x""yes; then :
5892+if test "x$ac_cv_have_decl_asprintf" = xyes; then :
58305893 ac_have_decl=1
58315894 else
58325895 ac_have_decl=0
@@ -5835,8 +5898,9 @@ fi · 2 unmodified lines
58355898 cat >>confdefs.h <<_ACEOF
58365899 #define HAVE_DECL_ASPRINTF $ac_have_decl
58375900 _ACEOF
5838−ac_fn_c_check_decl "$LINENO" "basename(char *)" "ac_cv_have_decl_basename_char_p_" "$ac_includes_default"
5839−if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then :
5901+as_ac_Symbol=`$as_echo "ac_cv_have_decl_basename(char *)" | $as_tr_sh`
5902+ac_fn_c_check_decl "$LINENO" "basename(char *)" "$as_ac_Symbol" "$ac_includes_default"
5903+if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then :
58405904 ac_have_decl=1
58415905 else
58425906 ac_have_decl=0
@@ -5846,7 +5910,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58465910 #define HAVE_DECL_BASENAME $ac_have_decl
58475911 _ACEOF
58485912 ac_fn_c_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" "$ac_includes_default"
5849−if test "x$ac_cv_have_decl_errno" = x""yes; then :
5913+if test "x$ac_cv_have_decl_errno" = xyes; then :
58505914 ac_have_decl=1
58515915 else
58525916 ac_have_decl=0
@@ -5856,7 +5920,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58565920 #define HAVE_DECL_ERRNO $ac_have_decl
58575921 _ACEOF
58585922 ac_fn_c_check_decl "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default"
5859−if test "x$ac_cv_have_decl_getopt" = x""yes; then :
5923+if test "x$ac_cv_have_decl_getopt" = xyes; then :
58605924 ac_have_decl=1
58615925 else
58625926 ac_have_decl=0
@@ -5866,7 +5930,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58665930 #define HAVE_DECL_GETOPT $ac_have_decl
58675931 _ACEOF
58685932 ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default"
5869−if test "x$ac_cv_have_decl_vasprintf" = x""yes; then :
5933+if test "x$ac_cv_have_decl_vasprintf" = xyes; then :
58705934 ac_have_decl=1
58715935 else
58725936 ac_have_decl=0
@@ -5877,7 +5941,7 @@ cat >>confdefs.h <<_ACEOF · 4 unmodified lines
58775941 _ACEOF
58785942
58795943 ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
5880−if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then :
5944+if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes; then :
58815945 ac_have_decl=1
58825946 else
58835947 ac_have_decl=0
@@ -5887,7 +5951,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58875951 #define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
58885952 _ACEOF
58895953 ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
5890−if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then :
5954+if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then :
58915955 ac_have_decl=1
58925956 else
58935957 ac_have_decl=0
@@ -5897,7 +5961,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
58975961 #define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
58985962 _ACEOF
58995963 ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
5900−if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then :
5964+if test "x$ac_cv_have_decl_ferror_unlocked" = xyes; then :
59015965 ac_have_decl=1
59025966 else
59035967 ac_have_decl=0
@@ -5907,7 +5971,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59075971 #define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
59085972 _ACEOF
59095973 ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
5910−if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then :
5974+if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then :
59115975 ac_have_decl=1
59125976 else
59135977 ac_have_decl=0
@@ -5917,7 +5981,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59175981 #define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
59185982 _ACEOF
59195983 ac_fn_c_check_decl "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default"
5920−if test "x$ac_cv_have_decl_fgetc_unlocked" = x""yes; then :
5984+if test "x$ac_cv_have_decl_fgetc_unlocked" = xyes; then :
59215985 ac_have_decl=1
59225986 else
59235987 ac_have_decl=0
@@ -5927,7 +5991,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59275991 #define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl
59285992 _ACEOF
59295993 ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
5930−if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then :
5994+if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then :
59315995 ac_have_decl=1
59325996 else
59335997 ac_have_decl=0
@@ -5937,7 +6001,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59376001 #define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
59386002 _ACEOF
59396003 ac_fn_c_check_decl "$LINENO" "fileno_unlocked" "ac_cv_have_decl_fileno_unlocked" "$ac_includes_default"
5940−if test "x$ac_cv_have_decl_fileno_unlocked" = x""yes; then :
6004+if test "x$ac_cv_have_decl_fileno_unlocked" = xyes; then :
59416005 ac_have_decl=1
59426006 else
59436007 ac_have_decl=0
@@ -5947,7 +6011,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59476011 #define HAVE_DECL_FILENO_UNLOCKED $ac_have_decl
59486012 _ACEOF
59496013 ac_fn_c_check_decl "$LINENO" "fprintf_unlocked" "ac_cv_have_decl_fprintf_unlocked" "$ac_includes_default"
5950−if test "x$ac_cv_have_decl_fprintf_unlocked" = x""yes; then :
6014+if test "x$ac_cv_have_decl_fprintf_unlocked" = xyes; then :
59516015 ac_have_decl=1
59526016 else
59536017 ac_have_decl=0
@@ -5957,7 +6021,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59576021 #define HAVE_DECL_FPRINTF_UNLOCKED $ac_have_decl
59586022 _ACEOF
59596023 ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
5960−if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then :
6024+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
59616025 ac_have_decl=1
59626026 else
59636027 ac_have_decl=0
@@ -5967,7 +6031,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59676031 #define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
59686032 _ACEOF
59696033 ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
5970−if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then :
6034+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
59716035 ac_have_decl=1
59726036 else
59736037 ac_have_decl=0
@@ -5977,7 +6041,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59776041 #define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
59786042 _ACEOF
59796043 ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
5980−if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then :
6044+if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
59816045 ac_have_decl=1
59826046 else
59836047 ac_have_decl=0
@@ -5987,7 +6051,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59876051 #define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
59886052 _ACEOF
59896053 ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
5990−if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then :
6054+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
59916055 ac_have_decl=1
59926056 else
59936057 ac_have_decl=0
@@ -5997,7 +6061,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
59976061 #define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
59986062 _ACEOF
59996063 ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
6000−if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then :
6064+if test "x$ac_cv_have_decl_getchar_unlocked" = xyes; then :
60016065 ac_have_decl=1
60026066 else
60036067 ac_have_decl=0
@@ -6007,7 +6071,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
60076071 #define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
60086072 _ACEOF
60096073 ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
6010−if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then :
6074+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
60116075 ac_have_decl=1
60126076 else
60136077 ac_have_decl=0
@@ -6017,7 +6081,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
60176081 #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
60186082 _ACEOF
60196083 ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
6020−if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then :
6084+if test "x$ac_cv_have_decl_putchar_unlocked" = xyes; then :
60216085 ac_have_decl=1
60226086 else
60236087 ac_have_decl=0
@@ -6027,7 +6091,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines
60276091 #define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
60286092 _ACEOF
60296093 ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
6030−if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then :
6094+if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then :
60316095 ac_have_decl=1
60326096 else
60336097 ac_have_decl=0
@@ -6043,7 +6107,7 @@ _ACEOF · 9 unmodified lines
60436107 # for constant arguments. Useless!
60446108 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
60456109 $as_echo_n "checking for working alloca.h... " >&6; }
6046−if test "${ac_cv_working_alloca_h+set}" = set; then :
6110+if ${ac_cv_working_alloca_h+:} false; then :
60476111 $as_echo_n "(cached) " >&6
60486112 else
60496113 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6076,7 +6140,7 @@ fi · 26 unmodified lines
60766140
60776141 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
60786142 $as_echo_n "checking for alloca... " >&6; }
6079−if test "${ac_cv_func_alloca_works+set}" = set; then :
6143+if ${ac_cv_func_alloca_works+:} false; then :
60806144 $as_echo_n "(cached) " >&6
60816145 else
60826146 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6095,7 +6159,7 @@ else · 12 unmodified lines
60956159 #pragma alloca
60966160 # else
60976161 # ifndef alloca /* predefined by HP cc +Olibcalls */
6098−char *alloca ();
6162+void *alloca (size_t);
60996163 # endif
61006164 # endif
61016165 # endif
@@ -6139,7 +6203,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs.h · 37 unmodified lines
61396203
61406204 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
61416205 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
6142−if test "${ac_cv_os_cray+set}" = set; then :
6206+if ${ac_cv_os_cray+:} false; then :
61436207 $as_echo_n "(cached) " >&6
61446208 else
61456209 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6166,8 +6230,7 @@ if test $ac_cv_os_cray = yes; then · 20 unmodified lines
61666230 for ac_func in _getb67 GETB67 getb67; do
61676231 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
61686232 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
6169−eval as_val=\$$as_ac_var
6170− if test "x$as_val" = x""yes; then :
6233+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
61716234
61726235 cat >>confdefs.h <<_ACEOF
61736236 #define CRAY_STACKSEG_END $ac_func
@@ -6181,7 +6244,7 @@ fi · 7 unmodified lines
61816244
61826245 { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
61836246 $as_echo_n "checking stack direction for C alloca... " >&6; }
6184−if test "${ac_cv_c_stack_direction+set}" = set; then :
6247+if ${ac_cv_c_stack_direction+:} false; then :
61856248 $as_echo_n "(cached) " >&6
61866249 else
61876250 if test "$cross_compiling" = yes; then :
@@ -6191,23 +6254,20 @@ else · 3 unmodified lines
61916254 /* end confdefs.h. */
61926255 $ac_includes_default
61936256 int
6194−find_stack_direction ()
6257+find_stack_direction (int *addr, int depth)
61956258 {
6196− static char *addr = 0;
6197− auto char dummy;
6198− if (addr == 0)
6199− {
6200− addr = &dummy;
6201− return find_stack_direction ();
6202− }
6203− else
6204− return (&dummy > addr) ? 1 : -1;
6259+ int dir, dummy = 0;
6260+ if (! addr)
6261+ addr = &dummy;
6262+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
6263+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
6264+ return dir + dummy;
62056265 }
62066266
62076267 int
6208−main ()
6268+main (int argc, char **argv)
62096269 {
6210− return find_stack_direction () < 0;
6270+ return find_stack_direction (0, argc + !argv + 20) < 0;
62116271 }
62126272 _ACEOF
62136273 if ac_fn_c_try_run "$LINENO"; then :
@@ -6231,7 +6291,7 @@ fi · 17 unmodified lines
62316291
62326292 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
62336293 $as_echo_n "checking for ANSI C header files... " >&6; }
6234−if test "${ac_cv_header_stdc+set}" = set; then :
6294+if ${ac_cv_header_stdc+:} false; then :
62356295 $as_echo_n "(cached) " >&6
62366296 else
62376297 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6344,7 +6404,7 @@ fi · 106 unmodified lines
63446404
63456405 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
63466406 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
6347−if test "${am_cv_langinfo_codeset+set}" = set; then :
6407+if ${am_cv_langinfo_codeset+:} false; then :
63486408 $as_echo_n "(cached) " >&6
63496409 else
63506410 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6448,7 +6508,7 @@ fi · 97 unmodified lines
64486508
64496509 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uchar" >&5
64506510 $as_echo_n "checking for uchar... " >&6; }
6451−if test "${gcc_cv_type_uchar+set}" = set; then :
6511+if ${gcc_cv_type_uchar+:} false; then :
64526512 $as_echo_n "(cached) " >&6
64536513 else
64546514 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -6564,7 +6624,7 @@ else · 109 unmodified lines
65646624 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
65656625 $as_echo_n "checking for non-GNU ld... " >&6; }
65666626 fi
6567−if test "${acl_cv_path_LD+set}" = set; then :
6627+if ${acl_cv_path_LD+:} false; then :
65686628 $as_echo_n "(cached) " >&6
65696629 else
65706630 if test -z "$LD"; then
@@ -6597,10 +6657,10 @@ else · 26 unmodified lines
65976657 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
65986658 $as_echo "no" >&6; }
65996659 fi
6600−test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
6660+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
66016661 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
66026662 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
6603−if test "${acl_cv_prog_gnu_ld+set}" = set; then :
6663+if ${acl_cv_prog_gnu_ld+:} false; then :
66046664 $as_echo_n "(cached) " >&6
66056665 else
66066666 # I'd rather use --version here, but apparently some GNU ld's only accept -v.
@@ -6618,7 +6678,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld · 11 unmodified lines
66186678
66196679 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
66206680 $as_echo_n "checking for shared library run path origin... " >&6; }
6621−if test "${acl_cv_rpath+set}" = set; then :
6681+if ${acl_cv_rpath+:} false; then :
66226682 $as_echo_n "(cached) " >&6
66236683 else
66246684
@@ -7036,7 +7096,7 @@ fi · 411 unmodified lines
70367096
70377097 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
70387098 $as_echo_n "checking for iconv... " >&6; }
7039−if test "${am_cv_func_iconv+set}" = set; then :
7099+if ${am_cv_func_iconv+:} false; then :
70407100 $as_echo_n "(cached) " >&6
70417101 else
70427102
@@ -7105,7 +7165,7 @@ rm -f core conftest.err conftest.$ac_objext \ · 62 unmodified lines
71057165 if test "$am_cv_func_iconv" != yes; then
71067166 am_save_CPPFLAGS="$CPPFLAGS"
71077167 am_save_LIBS="$LIBS"
7108− CPPFLAGS="$LIBS $INCICONV"
7168+ CPPFLAGS="$CPPFLAGS $INCICONV"
71097169 LIBS="$LIBS $LIBICONV"
71107170 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
71117171 /* end confdefs.h. */
@@ -7177,7 +7237,7 @@ $as_echo "$LIBICONV" >&6; } · 65 unmodified lines
71777237 if test "$am_cv_func_iconv" = yes; then
71787238 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
71797239 $as_echo_n "checking for iconv declaration... " >&6; }
7180− if test "${am_cv_proto_iconv+set}" = set; then :
7240+ if ${am_cv_proto_iconv+:} false; then :
71817241 $as_echo_n "(cached) " >&6
71827242 else
71837243
@@ -7378,7 +7438,7 @@ if test x$enable_valgrind_annotations != xno \ · 194 unmodified lines
73787438 if (test $have_valgrind_h = no \
73797439 && test $gcc_cv_header_memcheck_h = no \
73807440 && test $gcc_cv_header_valgrind_memcheck_h = no); then
7381− as_fn_error "*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h" "$LINENO" 5
7441+ as_fn_error $? "*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h" "$LINENO" 5
73827442 fi
73837443
73847444 $as_echo "#define ENABLE_VALGRIND_ANNOTATIONS 1" >>confdefs.h
@@ -7455,10 +7515,21 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; · 70 unmodified lines
74557515 :end' >>confcache
74567516 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
74577517 if test -w "$cache_file"; then
7458− test "x$cache_file" != "x/dev/null" &&
7518+ if test "x$cache_file" != "x/dev/null"; then
74597519 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
74607520 $as_echo "$as_me: updating cache $cache_file" >&6;}
7461− cat confcache >$cache_file
7521+ if test ! -f "$cache_file" || test -h "$cache_file"; then
7522+ cat confcache >"$cache_file"
7523+ else
7524+ case $cache_file in #(
7525+ */* | ?:*)
7526+ mv -f confcache "$cache_file"$$ &&
7527+ mv -f "$cache_file"$$ "$cache_file" ;; #(
7528+ *)
7529+ mv -f confcache "$cache_file" ;;
7530+ esac
7531+ fi
7532+ fi
74627533 else
74637534 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
74647535 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -7474,6 +7545,7 @@ DEFS=-DHAVE_CONFIG_H · 9 unmodified lines
74747545
74757546 ac_libobjs=
74767547 ac_ltlibobjs=
7548+U=
74777549 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
74787550 # 1. Remove the extension, and $U if already installed.
74797551 ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@ -7490,7 +7562,7 @@ LTLIBOBJS=$ac_ltlibobjs · 10 unmodified lines
74907562
74917563
74927564
7493−: ${CONFIG_STATUS=./config.status}
7565+: "${CONFIG_STATUS=./config.status}"
74947566 ac_write_fail=0
74957567 ac_clean_files_save=$ac_clean_files
74967568 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -7591,6 +7663,7 @@ fi · 94 unmodified lines
75917663 IFS=" "" $as_nl"
75927664
75937665 # Find who we are. Look in the path if we contain no directory separator.
7666+as_myself=
75947667 case $0 in #((
75957668 *[\\/]* ) as_myself=$0 ;;
75967669 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -7636,19 +7709,19 @@ export LANGUAGE · 39 unmodified lines
76367709 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
76377710
76387711
7639−# as_fn_error ERROR [LINENO LOG_FD]
7640−# ---------------------------------
7712+# as_fn_error STATUS ERROR [LINENO LOG_FD]
7713+# ----------------------------------------
76417714 # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
76427715 # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
7643−# script with status $?, using 1 if that was 0.
7716+# script with STATUS, using 1 if that was 0.
76447717 as_fn_error ()
76457718 {
7646− as_status=$?; test $as_status -eq 0 && as_status=1
7647− if test "$3"; then
7648− as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
7649− $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
7719+ as_status=$1; test $as_status -eq 0 && as_status=1
7720+ if test "$4"; then
7721+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
7722+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
76507723 fi
7651− $as_echo "$as_me: error: $1" >&2
7724+ $as_echo "$as_me: error: $2" >&2
76527725 as_fn_exit $as_status
76537726 } # as_fn_error
76547727
@@ -7786,16 +7859,16 @@ if (echo >conf$$.file) 2>/dev/null; then · 131 unmodified lines
77867859 # ... but there are two gotchas:
77877860 # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
77887861 # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
7789− # In both cases, we have to default to `cp -p'.
7862+ # In both cases, we have to default to `cp -pR'.
77907863 ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
7791− as_ln_s='cp -p'
7864+ as_ln_s='cp -pR'
77927865 elif ln conf$$.file conf$$ 2>/dev/null; then
77937866 as_ln_s=ln
77947867 else
7795− as_ln_s='cp -p'
7868+ as_ln_s='cp -pR'
77967869 fi
77977870 else
7798− as_ln_s='cp -p'
7871+ as_ln_s='cp -pR'
77997872 fi
78007873 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
78017874 rmdir conf$$.dir 2>/dev/null
@@ -7844,7 +7917,7 @@ $as_echo X"$as_dir" | · 42 unmodified lines
78447917 test -d "$as_dir" && break
78457918 done
78467919 test -z "$as_dirs" || eval "mkdir $as_dirs"
7847− } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
7920+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
78487921
78497922
78507923 } # as_fn_mkdir_p
@@ -7855,28 +7928,16 @@ else · 4 unmodified lines
78557928 as_mkdir_p=false
78567929 fi
78577930
7858−if test -x / >/dev/null 2>&1; then
7859− as_test_x='test -x'
7860−else
7861− if ls -dL / >/dev/null 2>&1; then
7862− as_ls_L_option=L
7863− else
7864− as_ls_L_option=
7865− fi
7866− as_test_x='
7867− eval sh -c '\''
7868− if test -d "$1"; then
7869− test -d "$1/.";
7870− else
7871− case $1 in #(
7872− -*)set "./$1";;
7873− esac;
7874− case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
7875− ???[sx]*):;;*)false;;esac;fi
7876− '\'' sh
7877− '
7878−fi
7879−as_executable_p=$as_test_x
7931+
7932+# as_fn_executable_p FILE
7933+# -----------------------
7934+# Test if FILE is an executable regular file.
7935+as_fn_executable_p ()
7936+{
7937+ test -f "$1" && test -x "$1"
7938+} # as_fn_executable_p
7939+as_test_x='test -x'
7940+as_executable_p=as_fn_executable_p
78807941
78817942 # Sed expression to map a string onto a valid CPP name.
78827943 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -7898,7 +7959,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 · 15 unmodified lines
78987959 # values after options handling.
78997960 ac_log="
79007961 This file was extended by cpplib $as_me , which was
7901−generated by GNU Autoconf 2.64. Invocation command line was
7962+generated by GNU Autoconf 2.69. Invocation command line was
79027963
79037964 CONFIG_FILES = $CONFIG_FILES
79047965 CONFIG_HEADERS = $CONFIG_HEADERS
@@ -7938,6 +7999,7 @@ Usage: $0 [OPTION]... [TAG]... · 33 unmodified lines
79387999
79398000 -h, --help print this help, then exit
79408001 -V, --version print version number and configuration settings, then exit
8002+ --config print configuration, then exit
79418003 -q, --quiet, --silent
79428004 do not print progress messages
79438005 -d, --debug don't remove temporary files
@@ -7960,12 +8022,13 @@ Report bugs to <gcc-bugs@gcc.gnu.org>." · 16 unmodified lines
79608022
79618023 _ACEOF
79628024 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
8025+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
79638026 ac_cs_version="\\
79648027 cpplib config.status
7965−configured by $0, generated by GNU Autoconf 2.64,
7966− with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
8028+configured by $0, generated by GNU Autoconf 2.69,
8029+ with options \\"\$ac_cs_config\\"
79678030
7968−Copyright (C) 2009 Free Software Foundation, Inc.
8031+Copyright (C) 2012 Free Software Foundation, Inc.
79698032 This config.status script is free software; the Free Software Foundation
79708033 gives unlimited permission to copy, distribute and modify it."
79718034
@@ -7981,11 +8044,16 @@ ac_need_defaults=: · 9 unmodified lines
79818044 while test $# != 0
79828045 do
79838046 case $1 in
7984− --*=*)
8047+ --*=?*)
79858048 ac_option=`expr "X$1" : 'X\([^=]*\)='`
79868049 ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
79878050 ac_shift=:
79888051 ;;
8052+ --*=)
8053+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
8054+ ac_optarg=
8055+ ac_shift=:
8056+ ;;
79898057 *)
79908058 ac_option=$1
79918059 ac_optarg=$2
@@ -7999,12 +8067,15 @@ do · 7 unmodified lines
79998067 ac_cs_recheck=: ;;
80008068 --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
80018069 $as_echo "$ac_cs_version"; exit ;;
8070+ --config | --confi | --conf | --con | --co | --c )
8071+ $as_echo "$ac_cs_config"; exit ;;
80028072 --debug | --debu | --deb | --de | --d | -d )
80038073 debug=: ;;
80048074 --file | --fil | --fi | --f )
80058075 $ac_shift
80068076 case $ac_optarg in
80078077 *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
8078+ '') as_fn_error $? "missing file argument" ;;
80088079 esac
80098080 as_fn_append CONFIG_FILES " '$ac_optarg'"
80108081 ac_need_defaults=false;;
@@ -8017,7 +8088,7 @@ do · 6 unmodified lines
80178088 ac_need_defaults=false;;
80188089 --he | --h)
80198090 # Conflict between --help and --header
8020− as_fn_error "ambiguous option: \`$1'
8091+ as_fn_error $? "ambiguous option: \`$1'
80218092 Try \`$0 --help' for more information.";;
80228093 --help | --hel | -h )
80238094 $as_echo "$ac_cs_usage"; exit ;;
@@ -8026,7 +8097,7 @@ Try \`$0 --help' for more information.";; · 2 unmodified lines
80268097 ac_cs_silent=: ;;
80278098
80288099 # This is an error.
8029− -*) as_fn_error "unrecognized option: \`$1'
8100+ -*) as_fn_error $? "unrecognized option: \`$1'
80308101 Try \`$0 --help' for more information." ;;
80318102
80328103 *) as_fn_append ac_config_targets " $1"
@@ -8046,7 +8117,7 @@ fi · 13 unmodified lines
80468117 _ACEOF
80478118 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
80488119 if \$ac_cs_recheck; then
8049− set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
8120+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
80508121 shift
80518122 \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
80528123 CONFIG_SHELL='$SHELL'
@@ -8084,7 +8155,7 @@ do · 31 unmodified lines
80848155 "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
80858156 "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
80868157
8087− *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
8158+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
80888159 esac
80898160 done
80908161
@@ -8107,9 +8178,10 @@ fi · 16 unmodified lines
81078178 # after its creation but before its name has been assigned to `$tmp'.
81088179 $debug ||
81098180 {
8110− tmp=
8181+ tmp= ac_tmp=
81118182 trap 'exit_status=$?
8112− { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
8183+ : "${ac_tmp:=$tmp}"
8184+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
81138185 ' 0
81148186 trap 'as_fn_exit 1' 1 2 13 15
81158187 }
@@ -8117,12 +8189,13 @@ $debug || · 1 unmodified line
81178189
81188190 {
81198191 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
8120− test -n "$tmp" && test -d "$tmp"
8192+ test -d "$tmp"
81218193 } ||
81228194 {
81238195 tmp=./conf$$-$RANDOM
81248196 (umask 077 && mkdir "$tmp")
8125−} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
8197+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
8198+ac_tmp=$tmp
81268199
81278200 # Set up the scripts for CONFIG_FILES section.
81288201 # No need to generate them if there are no CONFIG_FILES.
@@ -8139,12 +8212,12 @@ if test "x$ac_cr" = x; then · 10 unmodified lines
81398212 fi
81408213 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
81418214 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
8142− ac_cs_awk_cr='\r'
8215+ ac_cs_awk_cr='\\r'
81438216 else
81448217 ac_cs_awk_cr=$ac_cr
81458218 fi
81468219
8147−echo 'BEGIN {' >"$tmp/subs1.awk" &&
8220+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
81488221 _ACEOF
81498222
81508223
@@ -8153,18 +8226,18 @@ _ACEOF · 2 unmodified lines
81538226 echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
81548227 echo "_ACEOF"
81558228 } >conf$$subs.sh ||
8156− as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
8157−ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
8229+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
8230+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
81588231 ac_delim='%!_!# '
81598232 for ac_last_try in false false false false false :; do
81608233 . ./conf$$subs.sh ||
8161− as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
8234+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
81628235
81638236 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
81648237 if test $ac_delim_n = $ac_delim_num; then
81658238 break
81668239 elif $ac_last_try; then
8167− as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
8240+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
81688241 else
81698242 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
81708243 fi
@@ -8172,7 +8245,7 @@ done · 1 unmodified line
81728245 rm -f conf$$subs.sh
81738246
81748247 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
8175−cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
8248+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
81768249 _ACEOF
81778250 sed -n '
81788251 h
@@ -8186,7 +8259,7 @@ s/'"$ac_delim"'$// · 7 unmodified lines
81868259 t delim
81878260 :nl
81888261 h
8189−s/\(.\{148\}\).*/\1/
8262+s/\(.\{148\}\)..*/\1/
81908263 t more1
81918264 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
81928265 p
@@ -8200,7 +8273,7 @@ s/.\{148\}// · 7 unmodified lines
82008273 t nl
82018274 :delim
82028275 h
8203−s/\(.\{148\}\).*/\1/
8276+s/\(.\{148\}\)..*/\1/
82048277 t more2
82058278 s/["\\]/\\&/g; s/^/"/; s/$/"/
82068279 p
@@ -8220,7 +8293,7 @@ t delim · 13 unmodified lines
82208293 rm -f conf$$subs.awk
82218294 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
82228295 _ACAWK
8223−cat >>"\$tmp/subs1.awk" <<_ACAWK &&
8296+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
82248297 for (key in S) S_is_set[key] = 1
82258298 FS = ""
82268299
@@ -8252,21 +8325,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then · 25 unmodified lines
82528325 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
82538326 else
82548327 cat
8255−fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
8256− || as_fn_error "could not setup config files machinery" "$LINENO" 5
8328+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
8329+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
82578330 _ACEOF
82588331
8259−# VPATH may cause trouble with some makes, so we remove $(srcdir),
8260−# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
8332+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
8333+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
82618334 # trailing colons and then remove the whole line if VPATH becomes empty
82628335 # (actually we leave an empty line to preserve line numbers).
82638336 if test "x$srcdir" = x.; then
8264− ac_vpsub='/^[ ]*VPATH[ ]*=/{
8265−s/:*\$(srcdir):*/:/
8266−s/:*\${srcdir}:*/:/
8267−s/:*@srcdir@:*/:/
8268−s/^\([^=]*=[ ]*\):*/\1/
8337+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
8338+h
8339+s///
8340+s/^/:/
8341+s/[ ]*$/:/
8342+s/:\$(srcdir):/:/g
8343+s/:\${srcdir}:/:/g
8344+s/:@srcdir@:/:/g
8345+s/^:*//
82698346 s/:*$//
8347+x
8348+s/\(=[ ]*\).*/\1/
8349+G
8350+s/\n//
82708351 s/^[^=]*=[ ]*$//
82718352 }'
82728353 fi
@@ -8278,7 +8359,7 @@ fi # test -n "$CONFIG_FILES" · 5 unmodified lines
82788359 # No need to generate them if there are no CONFIG_HEADERS.
82798360 # This happens for instance with `./config.status Makefile'.
82808361 if test -n "$CONFIG_HEADERS"; then
8281−cat >"$tmp/defines.awk" <<\_ACAWK ||
8362+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
82828363 BEGIN {
82838364 _ACEOF
82848365
@@ -8290,11 +8371,11 @@ _ACEOF · 5 unmodified lines
82908371 # handling of long lines.
82918372 ac_delim='%!_!# '
82928373 for ac_last_try in false false :; do
8293− ac_t=`sed -n "/$ac_delim/p" confdefs.h`
8294− if test -z "$ac_t"; then
8374+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
8375+ if test -z "$ac_tt"; then
82958376 break
82968377 elif $ac_last_try; then
8297− as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
8378+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
82988379 else
82998380 ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
83008381 fi
@@ -8379,7 +8460,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 · 78 unmodified lines
83798460 _ACAWK
83808461 _ACEOF
83818462 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
8382− as_fn_error "could not setup config headers machinery" "$LINENO" 5
8463+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
83838464 fi # test -n "$CONFIG_HEADERS"
83848465
83858466
@@ -8392,7 +8473,7 @@ do · 6 unmodified lines
83928473 esac
83938474 case $ac_mode$ac_tag in
83948475 :[FHL]*:*);;
8395− :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
8476+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
83968477 :[FH]-) ac_tag=-:-;;
83978478 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
83988479 esac
@@ -8411,7 +8492,7 @@ do · 12 unmodified lines
84118492 for ac_f
84128493 do
84138494 case $ac_f in
8414− -) ac_f="$tmp/stdin";;
8495+ -) ac_f="$ac_tmp/stdin";;
84158496 *) # Look for the file first in the build tree, then in the source tree
84168497 # (if the path is not absolute). The absolute path cannot be DOS-style,
84178498 # because $ac_f cannot contain `:'.
@@ -8420,7 +8501,7 @@ do · 2 unmodified lines
84208501 [\\/$]*) false;;
84218502 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
84228503 esac ||
8423− as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
8504+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
84248505 esac
84258506 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
84268507 as_fn_append ac_file_inputs " '$ac_f'"
@@ -8446,8 +8527,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} · 19 unmodified lines
84468527 esac
84478528
84488529 case $ac_tag in
8449− *:-:* | *:-) cat >"$tmp/stdin" \
8450− || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
8530+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
8531+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
84518532 esac
84528533 ;;
84538534 esac
@@ -8577,23 +8658,24 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t · 123 unmodified lines
85778658 s&@INSTALL@&$ac_INSTALL&;t t
85788659 $ac_datarootdir_hack
85798660 "
8580−eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
8581− || as_fn_error "could not create $ac_file" "$LINENO" 5
8661+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
8662+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
85828663
85838664 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
8584− { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
8585− { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
8665+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
8666+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
8667+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
85868668 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
8587−which seems to be undefined. Please make sure it is defined." >&5
8669+which seems to be undefined. Please make sure it is defined" >&5
85888670 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
8589−which seems to be undefined. Please make sure it is defined." >&2;}
8671+which seems to be undefined. Please make sure it is defined" >&2;}
85908672
8591− rm -f "$tmp/stdin"
8673+ rm -f "$ac_tmp/stdin"
85928674 case $ac_file in
8593− -) cat "$tmp/out" && rm -f "$tmp/out";;
8594− *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
8675+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
8676+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
85958677 esac \
8596− || as_fn_error "could not create $ac_file" "$LINENO" 5
8678+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
85978679 ;;
85988680 :H)
85998681 #
@@ -8602,21 +8684,21 @@ which seems to be undefined. Please make sure it is defined." >&2;} · 2 unmodified lines
86028684 if test x"$ac_file" != x-; then
86038685 {
86048686 $as_echo "/* $configure_input */" \
8605− && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
8606− } >"$tmp/config.h" \
8607− || as_fn_error "could not create $ac_file" "$LINENO" 5
8608− if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
8687+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
8688+ } >"$ac_tmp/config.h" \
8689+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
8690+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
86098691 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
86108692 $as_echo "$as_me: $ac_file is unchanged" >&6;}
86118693 else
86128694 rm -f "$ac_file"
8613− mv "$tmp/config.h" "$ac_file" \
8614− || as_fn_error "could not create $ac_file" "$LINENO" 5
8695+ mv "$ac_tmp/config.h" "$ac_file" \
8696+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
86158697 fi
86168698 else
86178699 $as_echo "/* $configure_input */" \
8618− && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
8619− || as_fn_error "could not create -" "$LINENO" 5
8700+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
8701+ || as_fn_error $? "could not create -" "$LINENO" 5
86208702 fi
86218703 ;;
86228704
@@ -8639,7 +8721,7 @@ _ACEOF · 16 unmodified lines
86398721 ac_clean_files=$ac_clean_files_save
86408722
86418723 test $ac_write_fail = 0 ||
8642− as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
8724+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
86438725
86448726
86458727 # configure is writing to config.log, and then calls config.status.
@@ -8660,7 +8742,7 @@ if test "$no_create" != yes; then · 14 unmodified lines
86608742 exec 5>>config.log
86618743 # Use ||, not &&, to avoid exiting from the if with $? = 1, which
86628744 # would make configure fail if this is the last instruction.
8663− $ac_cs_success || as_fn_exit $?
8745+ $ac_cs_success || as_fn_exit 1
86648746 fi
86658747 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
86668748 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
gcc/libcpp/configure.ac+1−2
@@ -1,7 +1,6 @@
11 # -*- Autoconf -*-
22 # Process this file with autoconf to produce a configure script.
33
4−AC_PREREQ(2.64)
54 AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib)
65 AC_CONFIG_SRCDIR(ucnid.h)
76 AC_CONFIG_MACRO_DIR(../config)
@@ -42,7 +41,7 @@ ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual]) · 34 unmodified lines
4241 # Dependency checking.
4342 ZW_CREATE_DEPDIR
4443 AC_LANG_PUSH([C++])
45−AC_COMPILE_IFELSE([[int i;]], [],
44+AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [],
4645 [AC_MSG_ERROR([C++ compiler missing or inoperational])])
4746 AC_LANG_POP([C++])
4847 ZW_PROG_COMPILER_DEPENDENCIES([CXX])
gcc/libcpp/directives-only.c+2−2
@@ -1,5 +1,5 @@
11 /* CPP Library - directive only preprocessing for distributed compilation.
2− Copyright (C) 2007-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2007-2019 Free Software Foundation, Inc.
33 Contributed by Ollie Wild <aaw@google.com>.
44
55 This program is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@ _cpp_preprocess_dir_only (cpp_reader *pfile, · 37 unmodified lines
4343 unsigned flags;
4444 linenum_type lines;
4545 int col;
46− source_location loc;
46+ location_t loc;
4747
4848 restart:
4949 /* Buffer initialization ala _cpp_clean_line(). */
gcc/libcpp/directives.c+142−209
@@ -1,5 +1,5 @@
11 /* CPP Library. (Directive handling.)
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Contributed by Per Bothner, 1994-95.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -30,7 +30,7 @@ along with this program; see the file COPYING3. If not see · 24 unmodified lines
3030 struct if_stack
3131 {
3232 struct if_stack *next;
33− source_location line; /* Line where condition started. */
33+ location_t line; /* Line where condition started. */
3434 const cpp_hashnode *mi_cmacro;/* macro name for #ifndef around entire file */
3535 bool skip_elses; /* Can future #else / #elif be skipped? */
3636 bool was_skipping; /* If were skipping on entry. */
@@ -98,11 +98,12 @@ static void directive_diagnostics (cpp_reader *, const directive *, int); · 61 unmodified lines
9898 static void run_directive (cpp_reader *, int, const char *, size_t);
9999 static char *glue_header_name (cpp_reader *);
100100 static const char *parse_include (cpp_reader *, int *, const cpp_token ***,
101− source_location *);
101+ location_t *);
102102 static void push_conditional (cpp_reader *, int, int, const cpp_hashnode *);
103103 static unsigned int read_flag (cpp_reader *, unsigned int);
104104 static bool strtolinenum (const uchar *, size_t, linenum_type *, bool *);
105−static void do_diagnostic (cpp_reader *, int, int, int);
105+static void do_diagnostic (cpp_reader *, enum cpp_diagnostic_level code,
106+ enum cpp_warning_reason reason, int);
106107 static cpp_hashnode *lex_macro_node (cpp_reader *, bool);
107108 static int undefine_macros (cpp_reader *, cpp_hashnode *, void *);
108109 static void do_include_common (cpp_reader *, enum include_type);
@@ -123,44 +124,39 @@ static void do_linemarker (cpp_reader *); · 14 unmodified lines
123124 static const cpp_token *get_token_no_padding (cpp_reader *);
124125 static const cpp_token *get__Pragma_string (cpp_reader *);
125126 static void destringize_and_run (cpp_reader *, const cpp_string *,
126− source_location);
127−static int parse_answer (cpp_reader *, struct answer **, int, source_location);
128−static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int);
129−static struct answer ** find_answer (cpp_hashnode *, const struct answer *);
127+ location_t);
128+static bool parse_answer (cpp_reader *, int, location_t, cpp_macro **);
129+static cpp_hashnode *parse_assertion (cpp_reader *, int, cpp_macro **);
130+static cpp_macro **find_answer (cpp_hashnode *, const cpp_macro *);
130131 static void handle_assertion (cpp_reader *, const char *, int);
131132 static void do_pragma_push_macro (cpp_reader *);
132133 static void do_pragma_pop_macro (cpp_reader *);
133134 static void cpp_pop_definition (cpp_reader *, struct def_pragma_macro *);
134135
135−/* This is the table of directive handlers. It is ordered by
136− frequency of occurrence; the numbers at the end are directive
137− counts from all the source code I have lying around (egcs and libc
138− CVS as of 1999-05-18, plus grub-0.5.91, linux-2.2.9, and
139− pcmcia-cs-3.0.9). This is no longer important as directive lookup
140− is now O(1). All extensions other than #warning, #include_next,
141− and #import are deprecated. The name is where the extension
142− appears to have come from. */
136+/* This is the table of directive handlers. All extensions other than
137+ #warning, #include_next, and #import are deprecated. The name is
138+ where the extension appears to have come from. */
143139
144140 #define DIRECTIVE_TABLE \
145−D(define, T_DEFINE = 0, KANDR, IN_I) /* 270554 */ \
146−D(include, T_INCLUDE, KANDR, INCL | EXPAND) /* 52262 */ \
147−D(endif, T_ENDIF, KANDR, COND) /* 45855 */ \
148−D(ifdef, T_IFDEF, KANDR, COND | IF_COND) /* 22000 */ \
149−D(if, T_IF, KANDR, COND | IF_COND | EXPAND) /* 18162 */ \
150−D(else, T_ELSE, KANDR, COND) /* 9863 */ \
151−D(ifndef, T_IFNDEF, KANDR, COND | IF_COND) /* 9675 */ \
152−D(undef, T_UNDEF, KANDR, IN_I) /* 4837 */ \
153−D(line, T_LINE, KANDR, EXPAND) /* 2465 */ \
154−D(elif, T_ELIF, STDC89, COND | EXPAND) /* 610 */ \
155−D(error, T_ERROR, STDC89, 0) /* 475 */ \
156−D(pragma, T_PRAGMA, STDC89, IN_I) /* 195 */ \
157−D(warning, T_WARNING, EXTENSION, 0) /* 22 */ \
158−D(include_next, T_INCLUDE_NEXT, EXTENSION, INCL | EXPAND) /* 19 */ \
159−D(ident, T_IDENT, EXTENSION, IN_I) /* 11 */ \
160−D(import, T_IMPORT, EXTENSION, INCL | EXPAND) /* 0 ObjC */ \
161−D(assert, T_ASSERT, EXTENSION, DEPRECATED) /* 0 SVR4 */ \
162−D(unassert, T_UNASSERT, EXTENSION, DEPRECATED) /* 0 SVR4 */ \
163−D(sccs, T_SCCS, EXTENSION, IN_I) /* 0 SVR4? */
141+ D(define, T_DEFINE = 0, KANDR, IN_I) \
142+ D(include, T_INCLUDE, KANDR, INCL | EXPAND) \
143+ D(endif, T_ENDIF, KANDR, COND) \
144+ D(ifdef, T_IFDEF, KANDR, COND | IF_COND) \
145+ D(if, T_IF, KANDR, COND | IF_COND | EXPAND) \
146+ D(else, T_ELSE, KANDR, COND) \
147+ D(ifndef, T_IFNDEF, KANDR, COND | IF_COND) \
148+ D(undef, T_UNDEF, KANDR, IN_I) \
149+ D(line, T_LINE, KANDR, EXPAND) \
150+ D(elif, T_ELIF, STDC89, COND | EXPAND) \
151+ D(error, T_ERROR, STDC89, 0) \
152+ D(pragma, T_PRAGMA, STDC89, IN_I) \
153+ D(warning, T_WARNING, EXTENSION, 0) \
154+ D(include_next, T_INCLUDE_NEXT, EXTENSION, INCL | EXPAND) \
155+ D(ident, T_IDENT, EXTENSION, IN_I) \
156+ D(import, T_IMPORT, EXTENSION, INCL | EXPAND) /* ObjC */ \
157+ D(assert, T_ASSERT, EXTENSION, DEPRECATED) /* SVR4 */ \
158+ D(unassert, T_UNASSERT, EXTENSION, DEPRECATED) /* SVR4 */ \
159+ D(sccs, T_SCCS, EXTENSION, IN_I) /* SVR4? */
164160
165161 /* #sccs is synonymous with #ident. */
166162 #define do_sccs do_ident
@@ -208,8 +204,6 @@ static const directive linemarker_dir = · 41 unmodified lines
208204 do_linemarker, UC"#", 1, KANDR, IN_I
209205 };
210206
211−#define SEEN_EOL() (pfile->cur_token[-1].type == CPP_EOF)
212−
213207 /* Skip any remaining tokens in a directive. */
214208 static void
215209 skip_rest_of_line (cpp_reader *pfile)
@@ -227,7 +221,7 @@ skip_rest_of_line (cpp_reader *pfile) · 11 unmodified lines
227221 /* Helper function for check_oel. */
228222
229223 static void
230−check_eol_1 (cpp_reader *pfile, bool expand, int reason)
224+check_eol_1 (cpp_reader *pfile, bool expand, enum cpp_warning_reason reason)
231225 {
232226 if (! SEEN_EOL () && (expand
233227 ? cpp_get_token (pfile)
@@ -665,12 +659,12 @@ do_undef (cpp_reader *pfile) · 431 unmodified lines
665659
666660 /* 6.10.3.5 paragraph 2: [#undef] is ignored if the specified
667661 identifier is not currently defined as a macro name. */
668− if (node->type == NT_MACRO)
662+ if (cpp_macro_p (node))
669663 {
670664 if (node->flags & NODE_WARN)
671665 cpp_error (pfile, CPP_DL_WARNING,
672666 "undefining \"%s\"", NODE_NAME (node));
673− else if ((node->flags & NODE_BUILTIN)
667+ else if (cpp_builtin_macro_p (node)
674668 && CPP_OPTION (pfile, warn_builtin_macro_redefined))
675669 cpp_warning_with_line (pfile, CPP_W_BUILTIN_MACRO_REDEFINED,
676670 pfile->directive_line, 0,
@@ -695,7 +689,8 @@ undefine_macros (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *h, · 18 unmodified lines
695689 /* Body of _cpp_free_definition inlined here for speed.
696690 Macros and assertions no longer have anything to free. */
697691 h->type = NT_VOID;
698− h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
692+ h->value.answers = NULL;
693+ h->flags &= ~(NODE_POISONED|NODE_DISABLED|NODE_USED);
699694 return 1;
700695 }
701696
@@ -759,7 +754,7 @@ glue_header_name (cpp_reader *pfile) · 57 unmodified lines
759754
760755 static const char *
761756 parse_include (cpp_reader *pfile, int *pangle_brackets,
762− const cpp_token ***buf, source_location *location)
757+ const cpp_token ***buf, location_t *location)
763758 {
764759 char *fname;
765760 const cpp_token *header;
@@ -817,7 +812,7 @@ do_include_common (cpp_reader *pfile, enum include_type type) · 51 unmodified lines
817812 const char *fname;
818813 int angle_brackets;
819814 const cpp_token **buf = NULL;
820− source_location location;
815+ location_t location;
821816
822817 /* Re-enable saving of comments if requested, so that the include
823818 callback can dump comments which follow #include. */
@@ -825,22 +820,15 @@ do_include_common (cpp_reader *pfile, enum include_type type) · 1 unmodified line
825820
826821 fname = parse_include (pfile, &angle_brackets, &buf, &location);
827822 if (!fname)
828− {
829− if (buf)
830− XDELETEVEC (buf);
831− return;
832− }
823+ goto done;
833824
834825 if (!*fname)
835− {
836− cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
837− "empty filename in #%s",
838− pfile->directive->name);
839− XDELETEVEC (fname);
840− if (buf)
841− XDELETEVEC (buf);
842− return;
843− }
826+ {
827+ cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
828+ "empty filename in #%s",
829+ pfile->directive->name);
830+ goto done;
831+ }
844832
845833 /* Prevent #include recursion. */
846834 if (pfile->line_table->depth >= CPP_STACK_MAX)
@@ -858,6 +846,7 @@ do_include_common (cpp_reader *pfile, enum include_type type) · 11 unmodified lines
858846 _cpp_stack_include (pfile, fname, angle_brackets, type, location);
859847 }
860848
849+ done:
861850 XDELETEVEC (fname);
862851 if (buf)
863852 XDELETEVEC (buf);
@@ -1088,10 +1077,10 @@ do_linemarker (cpp_reader *pfile) · 224 unmodified lines
10881077 /* Reread map since cpp_get_token can invalidate it with a
10891078 reallocation. */
10901079 map = LINEMAPS_LAST_ORDINARY_MAP (line_table);
1091− const line_map_ordinary *from;
1080+ const line_map_ordinary *from
1081+ = linemap_included_from_linemap (line_table, map);
10921082 if (MAIN_FILE_P (map)
1093− || (new_file
1094− && (from = INCLUDED_FROM (pfile->line_table, map)) != NULL
1083+ || (from
10951084 && filename_cmp (ORDINARY_MAP_FILE_NAME (from), new_file) != 0))
10961085 {
10971086 cpp_warning (pfile, CPP_W_NONE,
@@ -1102,7 +1091,7 @@ do_linemarker (cpp_reader *pfile) · 4 unmodified lines
11021091 }
11031092 /* Compensate for the increment in linemap_add that occurs in
11041093 _cpp_do_file_change. We're currently at the start of the line
1105− *following* the #line directive. A separate source_location for this
1094+ *following* the #line directive. A separate location_t for this
11061095 location makes no sense (until we do the LC_LEAVE), and
11071096 complicates LAST_SOURCE_LINE_LOCATION. */
11081097 pfile->line_table->highest_location--;
@@ -1139,11 +1128,12 @@ _cpp_do_file_change (cpp_reader *pfile, enum lc_reason reason, · 30 unmodified lines
11391128 /* Report a warning or error detected by the program we are
11401129 processing. Use the directive's tokens in the error message. */
11411130 static void
1142−do_diagnostic (cpp_reader *pfile, int code, int reason, int print_dir)
1131+do_diagnostic (cpp_reader *pfile, enum cpp_diagnostic_level code,
1132+ enum cpp_warning_reason reason, int print_dir)
11431133 {
11441134 const unsigned char *dir_name;
11451135 unsigned char *line;
1146− source_location src_loc = pfile->cur_token[-1].src_loc;
1136+ location_t src_loc = pfile->cur_token[-1].src_loc;
11471137
11481138 if (print_dir)
11491139 dir_name = pfile->directive->name;
@@ -1165,7 +1155,7 @@ do_diagnostic (cpp_reader *pfile, int code, int reason, int print_dir) · 15 unmodified lines
11651155 static void
11661156 do_error (cpp_reader *pfile)
11671157 {
1168− do_diagnostic (pfile, CPP_DL_ERROR, 0, 1);
1158+ do_diagnostic (pfile, CPP_DL_ERROR, CPP_W_NONE, 1);
11691159 }
11701160
11711161 static void
@@ -1440,7 +1430,7 @@ do_pragma (cpp_reader *pfile) · 268 unmodified lines
14401430 {
14411431 const struct pragma_entry *p = NULL;
14421432 const cpp_token *token, *pragma_token;
1443− source_location pragma_token_virt_loc = 0;
1433+ location_t pragma_token_virt_loc = 0;
14441434 cpp_token ns_token;
14451435 unsigned int count = 1;
14461436
@@ -1546,7 +1536,7 @@ do_pragma_push_macro (cpp_reader *pfile) · 99 unmodified lines
15461536 txt = get__Pragma_string (pfile);
15471537 if (!txt)
15481538 {
1549− source_location src_loc = pfile->cur_token[-1].src_loc;
1539+ location_t src_loc = pfile->cur_token[-1].src_loc;
15501540 cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
15511541 "invalid #pragma push_macro directive");
15521542 check_eol (pfile, false);
@@ -1601,7 +1591,7 @@ do_pragma_pop_macro (cpp_reader *pfile) · 48 unmodified lines
16011591 txt = get__Pragma_string (pfile);
16021592 if (!txt)
16031593 {
1604− source_location src_loc = pfile->cur_token[-1].src_loc;
1594+ location_t src_loc = pfile->cur_token[-1].src_loc;
16051595 cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
16061596 "invalid #pragma pop_macro directive");
16071597 check_eol (pfile, false);
@@ -1666,7 +1656,7 @@ do_pragma_poison (cpp_reader *pfile) · 58 unmodified lines
16661656 if (hp->flags & NODE_POISONED)
16671657 continue;
16681658
1669− if (hp->type == NT_MACRO)
1659+ if (cpp_macro_p (hp))
16701660 cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro \"%s\"",
16711661 NODE_NAME (hp));
16721662 _cpp_free_definition (hp);
@@ -1703,7 +1693,7 @@ do_pragma_dependency (cpp_reader *pfile) · 30 unmodified lines
17031693 {
17041694 const char *fname;
17051695 int angle_brackets, ordering;
1706− source_location location;
1696+ location_t location;
17071697
17081698 fname = parse_include (pfile, &angle_brackets, NULL, &location);
17091699 if (!fname)
@@ -1719,7 +1709,7 @@ do_pragma_dependency (cpp_reader *pfile) · 9 unmodified lines
17191709 if (cpp_get_token (pfile)->type != CPP_EOF)
17201710 {
17211711 _cpp_backup_tokens (pfile, 1);
1722− do_diagnostic (pfile, CPP_DL_WARNING, 0, 0);
1712+ do_diagnostic (pfile, CPP_DL_WARNING, CPP_W_NONE, 0);
17231713 }
17241714 }
17251715
@@ -1809,7 +1799,7 @@ get__Pragma_string (cpp_reader *pfile) · 83 unmodified lines
18091799 \" and \\ sequences, and process the result as a #pragma directive. */
18101800 static void
18111801 destringize_and_run (cpp_reader *pfile, const cpp_string *in,
1812− source_location expansion_loc)
1802+ location_t expansion_loc)
18131803 {
18141804 const unsigned char *src, *limit;
18151805 char *dest, *result;
@@ -1929,7 +1919,7 @@ destringize_and_run (cpp_reader *pfile, const cpp_string *in, · 113 unmodified lines
19291919
19301920 /* Handle the _Pragma operator. Return 0 on error, 1 if ok. */
19311921 int
1932−_cpp_do__Pragma (cpp_reader *pfile, source_location expansion_loc)
1922+_cpp_do__Pragma (cpp_reader *pfile, location_t expansion_loc)
19331923 {
19341924 const cpp_token *string = get__Pragma_string (pfile);
19351925 pfile->directive_result.type = CPP_PADDING;
@@ -1960,26 +1950,9 @@ do_ifdef (cpp_reader *pfile) · 24 unmodified lines
19601950 the powerpc and spu ports using conditional macros for 'vector',
19611951 'bool', and 'pixel' to act as conditional keywords. This messes
19621952 up tests like #ifndef bool. */
1963− skip = (node->type != NT_MACRO
1964− || ((node->flags & NODE_CONDITIONAL) != 0));
1953+ skip = !cpp_macro_p (node) || (node->flags & NODE_CONDITIONAL);
19651954 _cpp_mark_macro_used (node);
1966− if (!(node->flags & NODE_USED))
1967− {
1968− node->flags |= NODE_USED;
1969− if (node->type == NT_MACRO)
1970− {
1971− if ((node->flags & NODE_BUILTIN)
1972− && pfile->cb.user_builtin_macro)
1973− pfile->cb.user_builtin_macro (pfile, node);
1974− if (pfile->cb.used_define)
1975− pfile->cb.used_define (pfile, pfile->directive_line, node);
1976− }
1977− else
1978− {
1979− if (pfile->cb.used_undef)
1980− pfile->cb.used_undef (pfile, pfile->directive_line, node);
1981− }
1982− }
1955+ _cpp_maybe_notify_macro_use (pfile, node);
19831956 if (pfile->cb.used)
19841957 pfile->cb.used (pfile, pfile->directive_line, node);
19851958 check_eol (pfile, false);
@@ -2006,26 +1979,10 @@ do_ifndef (cpp_reader *pfile) · 20 unmodified lines
20061979 the powerpc and spu ports using conditional macros for 'vector',
20071980 'bool', and 'pixel' to act as conditional keywords. This messes
20081981 up tests like #ifndef bool. */
2009− skip = (node->type == NT_MACRO
2010− && ((node->flags & NODE_CONDITIONAL) == 0));
1982+ skip = (cpp_macro_p (node)
1983+ && !(node->flags & NODE_CONDITIONAL));
20111984 _cpp_mark_macro_used (node);
2012− if (!(node->flags & NODE_USED))
2013− {
2014− node->flags |= NODE_USED;
2015− if (node->type == NT_MACRO)
2016− {
2017− if ((node->flags & NODE_BUILTIN)
2018− && pfile->cb.user_builtin_macro)
2019− pfile->cb.user_builtin_macro (pfile, node);
2020− if (pfile->cb.used_define)
2021− pfile->cb.used_define (pfile, pfile->directive_line, node);
2022− }
2023− else
2024− {
2025− if (pfile->cb.used_undef)
2026− pfile->cb.used_undef (pfile, pfile->directive_line, node);
2027− }
2028− }
1985+ _cpp_maybe_notify_macro_use (pfile, node);
20291986 if (pfile->cb.used)
20301987 pfile->cb.used (pfile, pfile->directive_line, node);
20311988 check_eol (pfile, false);
@@ -2182,17 +2139,13 @@ push_conditional (cpp_reader *pfile, int skip, int type, · 150 unmodified lines
21822139 storage, i.e. the #assert case. Returns 0 on success, and sets
21832140 ANSWERP to point to the answer. PRED_LOC is the location of the
21842141 predicate. */
2185−static int
2186−parse_answer (cpp_reader *pfile, struct answer **answerp, int type,
2187− source_location pred_loc)
2142+static bool
2143+parse_answer (cpp_reader *pfile, int type, location_t pred_loc,
2144+ cpp_macro **answer_ptr)
21882145 {
2189− const cpp_token *paren;
2190− struct answer *answer;
2191− unsigned int acount;
2192−
21932146 /* In a conditional, it is legal to not have an open paren. We
21942147 should save the following token in this case. */
2195− paren = cpp_get_token (pfile);
2148+ const cpp_token *paren = cpp_get_token (pfile);
21962149
21972150 /* If not a paren, see if we're OK. */
21982151 if (paren->type != CPP_OPEN_PAREN)
@@ -2202,23 +2155,26 @@ parse_answer (cpp_reader *pfile, struct answer **answerp, int type, · 3 unmodified lines
22022155 if (type == T_IF)
22032156 {
22042157 _cpp_backup_tokens (pfile, 1);
2205− return 0;
2158+ return true;
22062159 }
22072160
22082161 /* #unassert with no answer is valid - it removes all answers. */
22092162 if (type == T_UNASSERT && paren->type == CPP_EOF)
2210− return 0;
2163+ return true;
22112164
22122165 cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0,
22132166 "missing '(' after predicate");
2214− return 1;
2167+ return false;
22152168 }
22162169
2217− for (acount = 0;; acount++)
2170+ cpp_macro *answer = _cpp_new_macro (pfile, cmk_assert,
2171+ _cpp_reserve_room (pfile, 0,
2172+ sizeof (cpp_macro)));
2173+ answer->parm.next = NULL;
2174+ unsigned count = 0;
2175+ for (;;)
22182176 {
2219− size_t room_needed;
22202177 const cpp_token *token = cpp_get_token (pfile);
2221− cpp_token *dest;
22222178
22232179 if (token->type == CPP_CLOSE_PAREN)
22242180 break;
@@ -2226,57 +2182,52 @@ parse_answer (cpp_reader *pfile, struct answer **answerp, int type, · 1 unmodified line
22262182 if (token->type == CPP_EOF)
22272183 {
22282184 cpp_error (pfile, CPP_DL_ERROR, "missing ')' to complete answer");
2229− return 1;
2185+ return false;
22302186 }
22312187
2232− /* struct answer includes the space for one token. */
2233− room_needed = (sizeof (struct answer) + acount * sizeof (cpp_token));
2234−
2235− if (BUFF_ROOM (pfile->a_buff) < room_needed)
2236− _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (struct answer));
2237−
2238− dest = &((struct answer *) BUFF_FRONT (pfile->a_buff))->first[acount];
2239− *dest = *token;
2240−
2241− /* Drop whitespace at start, for answer equivalence purposes. */
2242− if (acount == 0)
2243− dest->flags &= ~PREV_WHITE;
2188+ answer = (cpp_macro *)_cpp_reserve_room
2189+ (pfile, sizeof (cpp_macro) + count * sizeof (cpp_token),
2190+ sizeof (cpp_token));
2191+ answer->exp.tokens[count++] = *token;
22442192 }
22452193
2246− if (acount == 0)
2194+ if (!count)
22472195 {
22482196 cpp_error (pfile, CPP_DL_ERROR, "predicate's answer is empty");
2249− return 1;
2197+ return false;
22502198 }
22512199
2252− answer = (struct answer *) BUFF_FRONT (pfile->a_buff);
2253− answer->count = acount;
2254− answer->next = NULL;
2255− *answerp = answer;
2200+ /* Drop whitespace at start, for answer equivalence purposes. */
2201+ answer->exp.tokens[0].flags &= ~PREV_WHITE;
22562202
2257− return 0;
2203+ answer->count = count;
2204+ *answer_ptr = answer;
2205+
2206+ return true;
22582207 }
22592208
22602209 /* Parses an assertion directive of type TYPE, returning a pointer to
2261− the hash node of the predicate, or 0 on error. If an answer was
2262− supplied, it is placed in ANSWERP, otherwise it is set to 0. */
2210+ the hash node of the predicate, or 0 on error. The node is
2211+ guaranteed to be disjoint from the macro namespace, so can only
2212+ have type 'NT_VOID'. If an answer was supplied, it is placed in
2213+ *ANSWER_PTR, which is otherwise set to 0. */
22632214 static cpp_hashnode *
2264−parse_assertion (cpp_reader *pfile, struct answer **answerp, int type)
2215+parse_assertion (cpp_reader *pfile, int type, cpp_macro **answer_ptr)
22652216 {
22662217 cpp_hashnode *result = 0;
2267− const cpp_token *predicate;
22682218
22692219 /* We don't expand predicates or answers. */
22702220 pfile->state.prevent_expansion++;
22712221
2272− *answerp = 0;
2273− predicate = cpp_get_token (pfile);
2222+ *answer_ptr = NULL;
2223+
2224+ const cpp_token *predicate = cpp_get_token (pfile);
22742225 if (predicate->type == CPP_EOF)
22752226 cpp_error (pfile, CPP_DL_ERROR, "assertion without predicate");
22762227 else if (predicate->type != CPP_NAME)
22772228 cpp_error_with_line (pfile, CPP_DL_ERROR, predicate->src_loc, 0,
22782229 "predicate must be an identifier");
2279− else if (parse_answer (pfile, answerp, type, predicate->src_loc) == 0)
2230+ else if (parse_answer (pfile, type, predicate->src_loc, answer_ptr))
22802231 {
22812232 unsigned int len = NODE_LEN (predicate->val.node.node);
22822233 unsigned char *sym = (unsigned char *) alloca (len + 1);
@@ -2288,25 +2239,27 @@ parse_assertion (cpp_reader *pfile, struct answer **answerp, int type) · 5 unmodified lines
22882239 }
22892240
22902241 pfile->state.prevent_expansion--;
2242+
22912243 return result;
22922244 }
22932245
22942246 /* Returns a pointer to the pointer to CANDIDATE in the answer chain,
22952247 or a pointer to NULL if the answer is not in the chain. */
2296−static struct answer **
2297−find_answer (cpp_hashnode *node, const struct answer *candidate)
2248+static cpp_macro **
2249+find_answer (cpp_hashnode *node, const cpp_macro *candidate)
22982250 {
22992251 unsigned int i;
2300− struct answer **result;
2252+ cpp_macro **result = NULL;
23012253
2302− for (result = &node->value.answers; *result; result = &(*result)->next)
2254+ for (result = &node->value.answers; *result; result = &(*result)->parm.next)
23032255 {
2304− struct answer *answer = *result;
2256+ cpp_macro *answer = *result;
23052257
23062258 if (answer->count == candidate->count)
23072259 {
23082260 for (i = 0; i < answer->count; i++)
2309− if (! _cpp_equiv_tokens (&answer->first[i], &candidate->first[i]))
2261+ if (!_cpp_equiv_tokens (&answer->exp.tokens[i],
2262+ &candidate->exp.tokens[i]))
23102263 break;
23112264
23122265 if (i == answer->count)
@@ -2323,18 +2276,18 @@ find_answer (cpp_hashnode *node, const struct answer *candidate) · 10 unmodified lines
23232276 int
23242277 _cpp_test_assertion (cpp_reader *pfile, unsigned int *value)
23252278 {
2326− struct answer *answer;
2327− cpp_hashnode *node;
2328−
2329− node = parse_assertion (pfile, &answer, T_IF);
2279+ cpp_macro *answer;
2280+ cpp_hashnode *node = parse_assertion (pfile, T_IF, &answer);
23302281
23312282 /* For recovery, an erroneous assertion expression is handled as a
23322283 failing assertion. */
23332284 *value = 0;
23342285
23352286 if (node)
2336− *value = (node->type == NT_ASSERTION &&
2337− (answer == 0 || *find_answer (node, answer) != 0));
2287+ {
2288+ if (node->value.answers)
2289+ *value = !answer || *find_answer (node, answer);
2290+ }
23382291 else if (pfile->cur_token[-1].type == CPP_EOF)
23392292 _cpp_backup_tokens (pfile, 1);
23402293
@@ -2346,43 +2299,29 @@ _cpp_test_assertion (cpp_reader *pfile, unsigned int *value) · 5 unmodified lines
23462299 static void
23472300 do_assert (cpp_reader *pfile)
23482301 {
2349− struct answer *new_answer;
2350− cpp_hashnode *node;
2302+ cpp_macro *answer;
2303+ cpp_hashnode *node = parse_assertion (pfile, T_ASSERT, &answer);
23512304
2352− node = parse_assertion (pfile, &new_answer, T_ASSERT);
23532305 if (node)
23542306 {
2355− size_t answer_size;
2356−
23572307 /* Place the new answer in the answer list. First check there
23582308 is not a duplicate. */
2359− new_answer->next = 0;
2360− if (node->type == NT_ASSERTION)
2309+ if (*find_answer (node, answer))
23612310 {
2362− if (*find_answer (node, new_answer))
2363− {
2364− cpp_error (pfile, CPP_DL_WARNING, "\"%s\" re-asserted",
2365− NODE_NAME (node) + 1);
2366− return;
2367− }
2368− new_answer->next = node->value.answers;
2311+ cpp_error (pfile, CPP_DL_WARNING, "\"%s\" re-asserted",
2312+ NODE_NAME (node) + 1);
2313+ return;
23692314 }
23702315
2371− answer_size = sizeof (struct answer) + ((new_answer->count - 1)
2372− * sizeof (cpp_token));
2373− /* Commit or allocate storage for the object. */
2374− if (pfile->hash_table->alloc_subobject)
2375− {
2376− struct answer *temp_answer = new_answer;
2377− new_answer = (struct answer *) pfile->hash_table->alloc_subobject
2378− (answer_size);
2379− memcpy (new_answer, temp_answer, answer_size);
2380− }
2381− else
2382− BUFF_FRONT (pfile->a_buff) += answer_size;
2316+ /* Commit or allocate storage for the answer. */
2317+ answer = (cpp_macro *)_cpp_commit_buff
2318+ (pfile, sizeof (cpp_macro) - sizeof (cpp_token)
2319+ + sizeof (cpp_token) * answer->count);
2320+
2321+ /* Chain into the list. */
2322+ answer->parm.next = node->value.answers;
2323+ node->value.answers = answer;
23832324
2384− node->type = NT_ASSERTION;
2385− node->value.answers = new_answer;
23862325 check_eol (pfile, false);
23872326 }
23882327 }
@@ -2391,25 +2330,19 @@ do_assert (cpp_reader *pfile) · 2 unmodified lines
23912330 static void
23922331 do_unassert (cpp_reader *pfile)
23932332 {
2394− cpp_hashnode *node;
2395− struct answer *answer;
2333+ cpp_macro *answer;
2334+ cpp_hashnode *node = parse_assertion (pfile, T_UNASSERT, &answer);
23962335
2397− node = parse_assertion (pfile, &answer, T_UNASSERT);
23982336 /* It isn't an error to #unassert something that isn't asserted. */
2399− if (node && node->type == NT_ASSERTION)
2337+ if (node)
24002338 {
24012339 if (answer)
24022340 {
2403− struct answer **p = find_answer (node, answer), *temp;
2404−
2405− /* Remove the answer from the list. */
2406− temp = *p;
2407− if (temp)
2408− *p = temp->next;
2341+ cpp_macro **p = find_answer (node, answer);
24092342
2410− /* Did we free the last answer? */
2411− if (node->value.answers == 0)
2412− node->type = NT_VOID;
2343+ /* Remove the assert from the list. */
2344+ if (cpp_macro *temp = *p)
2345+ *p = temp->parm.next;
24132346
24142347 check_eol (pfile, false);
24152348 }
@@ -2508,18 +2441,18 @@ cpp_pop_definition (cpp_reader *pfile, struct def_pragma_macro *c) · 92 unmodified lines
25082441 if (pfile->cb.before_define)
25092442 pfile->cb.before_define (pfile);
25102443
2511− if (node->type == NT_MACRO)
2444+ if (cpp_macro_p (node))
25122445 {
25132446 if (pfile->cb.undef)
25142447 pfile->cb.undef (pfile, pfile->directive_line, node);
25152448 if (CPP_OPTION (pfile, warn_unused_macros))
25162449 _cpp_warn_if_unused_macro (pfile, node, NULL);
2450+ _cpp_free_definition (node);
25172451 }
2518− if (node->type != NT_VOID)
2519− _cpp_free_definition (node);
25202452
25212453 if (c->is_undef)
25222454 return;
2455+
25232456 {
25242457 size_t namelen;
25252458 const uchar *dn;
@@ -2530,8 +2463,6 @@ cpp_pop_definition (cpp_reader *pfile, struct def_pragma_macro *c) · 4 unmodified lines
25302463 h = cpp_lookup (pfile, c->definition, namelen);
25312464 dn = c->definition + namelen;
25322465
2533− h->type = NT_VOID;
2534− h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
25352466 nbuf = cpp_push_buffer (pfile, dn, ustrchr (dn, '\n') - dn, true);
25362467 if (nbuf != NULL)
25372468 {
@@ -2674,6 +2605,8 @@ _cpp_pop_buffer (cpp_reader *pfile) · 136 unmodified lines
26742605
26752606 _cpp_do_file_change (pfile, LC_LEAVE, 0, 0, 0);
26762607 }
2608+ else if (to_free)
2609+ free ((void *)to_free);
26772610 }
26782611
26792612 /* Enter all recognized directives in the hash table. */
gcc/libcpp/errors.c+42−34
@@ -1,5 +1,5 @@
11 /* Default error handlers for CPP Library.
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Written by Per Bothner, 1994.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -31,15 +31,15 @@ along with this program; see the file COPYING3. If not see · 25 unmodified lines
3131
3232 ATTRIBUTE_FPTR_PRINTF(5,0)
3333 static bool
34−cpp_diagnostic_at (cpp_reader * pfile, int level, int reason,
35− rich_location *richloc,
34+cpp_diagnostic_at (cpp_reader * pfile, enum cpp_diagnostic_level level,
35+ enum cpp_warning_reason reason, rich_location *richloc,
3636 const char *msgid, va_list *ap)
3737 {
3838 bool ret;
3939
40− if (!pfile->cb.error)
40+ if (!pfile->cb.diagnostic)
4141 abort ();
42− ret = pfile->cb.error (pfile, level, reason, richloc, _(msgid), ap);
42+ ret = pfile->cb.diagnostic (pfile, level, reason, richloc, _(msgid), ap);
4343
4444 return ret;
4545 }
@@ -48,10 +48,11 @@ cpp_diagnostic_at (cpp_reader * pfile, int level, int reason, · 2 unmodified lines
4848
4949 ATTRIBUTE_FPTR_PRINTF(4,0)
5050 static bool
51−cpp_diagnostic (cpp_reader * pfile, int level, int reason,
52− const char *msgid, va_list *ap)
51+cpp_diagnostic (cpp_reader * pfile, enum cpp_diagnostic_level level,
52+ enum cpp_warning_reason reason,
53+ const char *msgid, va_list *ap)
5354 {
54− source_location src_loc;
55+ location_t src_loc;
5556
5657 if (CPP_OPTION (pfile, traditional))
5758 {
@@ -77,7 +78,8 @@ cpp_diagnostic (cpp_reader * pfile, int level, int reason, · 19 unmodified lines
7778 /* Print a warning or error, depending on the value of LEVEL. */
7879
7980 bool
80−cpp_error (cpp_reader * pfile, int level, const char *msgid, ...)
81+cpp_error (cpp_reader * pfile, enum cpp_diagnostic_level level,
82+ const char *msgid, ...)
8183 {
8284 va_list ap;
8385 bool ret;
@@ -93,7 +95,8 @@ cpp_error (cpp_reader * pfile, int level, const char *msgid, ...) · 9 unmodified lines
9395 /* Print a warning. The warning reason may be given in REASON. */
9496
9597 bool
96−cpp_warning (cpp_reader * pfile, int reason, const char *msgid, ...)
98+cpp_warning (cpp_reader * pfile, enum cpp_warning_reason reason,
99+ const char *msgid, ...)
97100 {
98101 va_list ap;
99102 bool ret;
@@ -109,7 +112,8 @@ cpp_warning (cpp_reader * pfile, int reason, const char *msgid, ...) · 9 unmodified lines
109112 /* Print a pedantic warning. The warning reason may be given in REASON. */
110113
111114 bool
112−cpp_pedwarning (cpp_reader * pfile, int reason, const char *msgid, ...)
115+cpp_pedwarning (cpp_reader * pfile, enum cpp_warning_reason reason,
116+ const char *msgid, ...)
113117 {
114118 va_list ap;
115119 bool ret;
@@ -126,7 +130,8 @@ cpp_pedwarning (cpp_reader * pfile, int reason, const char *msgid, ...) · 10 unmodified lines
126130 given in REASON. */
127131
128132 bool
129−cpp_warning_syshdr (cpp_reader * pfile, int reason, const char *msgid, ...)
133+cpp_warning_syshdr (cpp_reader * pfile, enum cpp_warning_reason reason,
134+ const char *msgid, ...)
130135 {
131136 va_list ap;
132137 bool ret;
@@ -143,18 +148,19 @@ cpp_warning_syshdr (cpp_reader * pfile, int reason, const char *msgid, ...) · 10 unmodified lines
143148
144149 ATTRIBUTE_FPTR_PRINTF(6,0)
145150 static bool
146−cpp_diagnostic_with_line (cpp_reader * pfile, int level, int reason,
147− source_location src_loc, unsigned int column,
148− const char *msgid, va_list *ap)
151+cpp_diagnostic_with_line (cpp_reader * pfile, enum cpp_diagnostic_level level,
152+ enum cpp_warning_reason reason,
153+ location_t src_loc, unsigned int column,
154+ const char *msgid, va_list *ap)
149155 {
150156 bool ret;
151157
152− if (!pfile->cb.error)
158+ if (!pfile->cb.diagnostic)
153159 abort ();
154160 rich_location richloc (pfile->line_table, src_loc);
155161 if (column)
156162 richloc.override_column (column);
157− ret = pfile->cb.error (pfile, level, reason, &richloc, _(msgid), ap);
163+ ret = pfile->cb.diagnostic (pfile, level, reason, &richloc, _(msgid), ap);
158164
159165 return ret;
160166 }
@@ -162,8 +168,8 @@ cpp_diagnostic_with_line (cpp_reader * pfile, int level, int reason, · 1 unmodified line
162168 /* Print a warning or error, depending on the value of LEVEL. */
163169
164170 bool
165−cpp_error_with_line (cpp_reader *pfile, int level,
166− source_location src_loc, unsigned int column,
171+cpp_error_with_line (cpp_reader *pfile, enum cpp_diagnostic_level level,
172+ location_t src_loc, unsigned int column,
167173 const char *msgid, ...)
168174 {
169175 va_list ap;
@@ -181,8 +187,8 @@ cpp_error_with_line (cpp_reader *pfile, int level, · 11 unmodified lines
181187 /* Print a warning. The warning reason may be given in REASON. */
182188
183189 bool
184−cpp_warning_with_line (cpp_reader *pfile, int reason,
185− source_location src_loc, unsigned int column,
190+cpp_warning_with_line (cpp_reader *pfile, enum cpp_warning_reason reason,
191+ location_t src_loc, unsigned int column,
186192 const char *msgid, ...)
187193 {
188194 va_list ap;
@@ -200,9 +206,9 @@ cpp_warning_with_line (cpp_reader *pfile, int reason, · 11 unmodified lines
200206 /* Print a pedantic warning. The warning reason may be given in REASON. */
201207
202208 bool
203−cpp_pedwarning_with_line (cpp_reader *pfile, int reason,
204− source_location src_loc, unsigned int column,
205− const char *msgid, ...)
209+cpp_pedwarning_with_line (cpp_reader *pfile, enum cpp_warning_reason reason,
210+ location_t src_loc, unsigned int column,
211+ const char *msgid, ...)
206212 {
207213 va_list ap;
208214 bool ret;
@@ -220,9 +226,9 @@ cpp_pedwarning_with_line (cpp_reader *pfile, int reason, · 11 unmodified lines
220226 given in REASON. */
221227
222228 bool
223−cpp_warning_with_line_syshdr (cpp_reader *pfile, int reason,
224− source_location src_loc, unsigned int column,
225− const char *msgid, ...)
229+cpp_warning_with_line_syshdr (cpp_reader *pfile, enum cpp_warning_reason reason,
230+ location_t src_loc, unsigned int column,
231+ const char *msgid, ...)
226232 {
227233 va_list ap;
228234 bool ret;
@@ -240,8 +246,8 @@ cpp_warning_with_line_syshdr (cpp_reader *pfile, int reason, · 11 unmodified lines
240246 a column override. */
241247
242248 bool
243−cpp_error_at (cpp_reader * pfile, int level, source_location src_loc,
244− const char *msgid, ...)
249+cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level level,
250+ location_t src_loc, const char *msgid, ...)
245251 {
246252 va_list ap;
247253 bool ret;
@@ -260,8 +266,8 @@ cpp_error_at (cpp_reader * pfile, int level, source_location src_loc, · 12 unmodified lines
260266 a column override. */
261267
262268 bool
263−cpp_error_at (cpp_reader * pfile, int level, rich_location *richloc,
264− const char *msgid, ...)
269+cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level level,
270+ rich_location *richloc, const char *msgid, ...)
265271 {
266272 va_list ap;
267273 bool ret;
@@ -279,7 +285,8 @@ cpp_error_at (cpp_reader * pfile, int level, rich_location *richloc, · 11 unmodified lines
279285 information from errno. */
280286
281287 bool
282−cpp_errno (cpp_reader *pfile, int level, const char *msgid)
288+cpp_errno (cpp_reader *pfile, enum cpp_diagnostic_level level,
289+ const char *msgid)
283290 {
284291 return cpp_error (pfile, level, "%s: %s", _(msgid), xstrerror (errno));
285292 }
@@ -289,8 +296,9 @@ cpp_errno (cpp_reader *pfile, int level, const char *msgid) · 3 unmodified lines
289296 that is not localized, but "" is replaced with localized "stdout". */
290297
291298 bool
292−cpp_errno_filename (cpp_reader *pfile, int level, const char *filename,
293− source_location loc)
299+cpp_errno_filename (cpp_reader *pfile, enum cpp_diagnostic_level level,
300+ const char *filename,
301+ location_t loc)
294302 {
295303 if (filename[0] == '\0')
296304 filename = _("stdout");
gcc/libcpp/expr.c+12−28
@@ -1,5 +1,5 @@
11 /* Parse C expressions for cpplib.
2− Copyright (C) 1987-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1987-2019 Free Software Foundation, Inc.
33 Contributed by Per Bothner, 1994.
44
55 This program is free software; you can redistribute it and/or modify it
@@ -30,7 +30,7 @@ struct op · 24 unmodified lines
3030 {
3131 const cpp_token *token; /* The token forming op (for diagnostics). */
3232 cpp_num value; /* The value logically "right" of op. */
33− source_location loc; /* The location of this value. */
33+ location_t loc; /* The location of this value. */
3434 enum cpp_ttype op;
3535 };
3636
@@ -52,13 +52,13 @@ static cpp_num num_equality_op (cpp_reader *, cpp_num, cpp_num, · 15 unmodified lines
5252 enum cpp_ttype);
5353 static cpp_num num_mul (cpp_reader *, cpp_num, cpp_num);
5454 static cpp_num num_div_op (cpp_reader *, cpp_num, cpp_num, enum cpp_ttype,
55− source_location);
55+ location_t);
5656 static cpp_num num_lshift (cpp_num, size_t, size_t);
5757 static cpp_num num_rshift (cpp_num, size_t, size_t);
5858
5959 static cpp_num append_digit (cpp_num, int, int, size_t);
6060 static cpp_num parse_defined (cpp_reader *);
61−static cpp_num eval_token (cpp_reader *, const cpp_token *, source_location);
61+static cpp_num eval_token (cpp_reader *, const cpp_token *, location_t);
6262 static struct op *reduce (cpp_reader *, struct op *, enum cpp_ttype);
6363 static unsigned int interpret_float_suffix (cpp_reader *, const uchar *, size_t);
6464 static unsigned int interpret_int_suffix (cpp_reader *, const uchar *, size_t);
@@ -505,7 +505,7 @@ cpp_get_userdef_suffix (const cpp_token *tok) · 440 unmodified lines
505505 VIRTUAL_LOCATION is the virtual location for TOKEN. */
506506 unsigned int
507507 cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
508− const char **ud_suffix, source_location virtual_location)
508+ const char **ud_suffix, location_t virtual_location)
509509 {
510510 const uchar *str = token->val.str.text;
511511 const uchar *limit;
@@ -1065,23 +1065,7 @@ parse_defined (cpp_reader *pfile) · 553 unmodified lines
10651065 "this use of \"defined\" may not be portable");
10661066
10671067 _cpp_mark_macro_used (node);
1068− if (!(node->flags & NODE_USED))
1069− {
1070− node->flags |= NODE_USED;
1071− if (node->type == NT_MACRO)
1072− {
1073− if ((node->flags & NODE_BUILTIN)
1074− && pfile->cb.user_builtin_macro)
1075− pfile->cb.user_builtin_macro (pfile, node);
1076− if (pfile->cb.used_define)
1077− pfile->cb.used_define (pfile, pfile->directive_line, node);
1078− }
1079− else
1080− {
1081− if (pfile->cb.used_undef)
1082− pfile->cb.used_undef (pfile, pfile->directive_line, node);
1083− }
1084− }
1068+ _cpp_maybe_notify_macro_use (pfile, node);
10851069
10861070 /* A possible controlling macro of the form #if !defined ().
10871071 _cpp_parse_expr checks there was no other junk on the line. */
@@ -1097,8 +1081,8 @@ parse_defined (cpp_reader *pfile) · 9 unmodified lines
10971081 result.unsignedp = false;
10981082 result.high = 0;
10991083 result.overflow = false;
1100− result.low = (node && node->type == NT_MACRO
1101− && (node->flags & NODE_CONDITIONAL) == 0);
1084+ result.low = (node && cpp_macro_p (node)
1085+ && !(node->flags & NODE_CONDITIONAL));
11021086 return result;
11031087 }
11041088
@@ -1107,7 +1091,7 @@ parse_defined (cpp_reader *pfile) · 2 unmodified lines
11071091 operators). */
11081092 static cpp_num
11091093 eval_token (cpp_reader *pfile, const cpp_token *token,
1110− source_location virtual_location)
1094+ location_t virtual_location)
11111095 {
11121096 cpp_num result;
11131097 unsigned int temp;
@@ -1304,7 +1288,7 @@ _cpp_parse_expr (cpp_reader *pfile, bool is_if) · 190 unmodified lines
13041288 struct op *top = pfile->op_stack;
13051289 unsigned int lex_count;
13061290 bool saw_leading_not, want_value = true;
1307− source_location virtual_location = 0;
1291+ location_t virtual_location = 0;
13081292
13091293 pfile->state.skip_eval = 0;
13101294
@@ -2102,7 +2086,7 @@ num_mul (cpp_reader *pfile, cpp_num lhs, cpp_num rhs) · 791 unmodified lines
21022086
21032087 static cpp_num
21042088 num_div_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op,
2105− source_location location)
2089+ location_t location)
21062090 {
21072091 cpp_num result, sub;
21082092 cpp_num_part mask;
@@ -2254,7 +2238,7 @@ parse_has_include (cpp_reader *pfile, enum include_type type) · 145 unmodified lines
22542238 XDELETEVEC (fname);
22552239 }
22562240
2257− if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN)
2241+ if (paren && !SEEN_EOL () && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN)
22582242 cpp_error (pfile, CPP_DL_ERROR,
22592243 "missing ')' after \"__has_include__\"");
22602244
gcc/libcpp/files.c+42−28
@@ -1,5 +1,5 @@
11 /* Part of CPP library. File handling.
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Written by Per Bothner, 1994.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -144,7 +144,7 @@ struct cpp_file_hash_entry · 138 unmodified lines
144144 {
145145 struct cpp_file_hash_entry *next;
146146 cpp_dir *start_dir;
147− source_location location;
147+ location_t location;
148148 union
149149 {
150150 _cpp_file *file;
@@ -171,18 +171,18 @@ static bool open_file (_cpp_file *file); · 20 unmodified lines
171171 static bool pch_open_file (cpp_reader *pfile, _cpp_file *file,
172172 bool *invalid_pch);
173173 static bool find_file_in_dir (cpp_reader *pfile, _cpp_file *file,
174− bool *invalid_pch, source_location loc);
174+ bool *invalid_pch, location_t loc);
175175 static bool read_file_guts (cpp_reader *pfile, _cpp_file *file,
176− source_location loc);
176+ location_t loc);
177177 static bool read_file (cpp_reader *pfile, _cpp_file *file,
178− source_location loc);
178+ location_t loc);
179179 static bool should_stack_file (cpp_reader *, _cpp_file *file, bool import,
180− source_location loc);
180+ location_t loc);
181181 static struct cpp_dir *search_path_head (cpp_reader *, const char *fname,
182182 int angle_brackets, enum include_type);
183183 static const char *dir_name_of_file (_cpp_file *file);
184184 static void open_file_failed (cpp_reader *pfile, _cpp_file *file, int,
185− source_location);
185+ location_t);
186186 static struct cpp_file_hash_entry *search_cache (struct cpp_file_hash_entry *head,
187187 const cpp_dir *start_dir);
188188 static _cpp_file *make_cpp_file (cpp_reader *, cpp_dir *, const char *fname);
@@ -377,7 +377,7 @@ maybe_shorter_path (const char * file) · 188 unmodified lines
377377
378378 static bool
379379 find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch,
380− source_location loc)
380+ location_t loc)
381381 {
382382 char *path;
383383
@@ -455,7 +455,7 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch, · 71 unmodified lines
455455 return false;
456456 }
457457
458−/* Return tue iff the missing_header callback found the given HEADER. */
458+/* Return true iff the missing_header callback found the given HEADER. */
459459 static bool
460460 search_path_exhausted (cpp_reader *pfile, const char *header, _cpp_file *file)
461461 {
@@ -507,7 +507,7 @@ _cpp_find_failed (_cpp_file *file) · 45 unmodified lines
507507 _cpp_file *
508508 _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir,
509509 bool fake, int angle_brackets, bool implicit_preinclude,
510− source_location loc)
510+ location_t loc)
511511 {
512512 struct cpp_file_hash_entry *entry;
513513 void **hash_slot;
@@ -671,7 +671,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, · 157 unmodified lines
671671
672672 FIXME: Flush file cache and try again if we run out of memory. */
673673 static bool
674−read_file_guts (cpp_reader *pfile, _cpp_file *file, source_location loc)
674+read_file_guts (cpp_reader *pfile, _cpp_file *file, location_t loc)
675675 {
676676 ssize_t size, total, count;
677677 uchar *buf;
@@ -755,7 +755,7 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, source_location loc) · 77 unmodified lines
755755 have been passed through find_file() at some stage. Use LOC for
756756 any diagnostics. */
757757 static bool
758−read_file (cpp_reader *pfile, _cpp_file *file, source_location loc)
758+read_file (cpp_reader *pfile, _cpp_file *file, location_t loc)
759759 {
760760 /* If we already have its contents in memory, succeed immediately. */
761761 if (file->buffer_valid)
@@ -783,7 +783,7 @@ read_file (cpp_reader *pfile, _cpp_file *file, source_location loc) · 21 unmodified lines
783783 Use LOC for any diagnostics. */
784784 static bool
785785 should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import,
786− source_location loc)
786+ location_t loc)
787787 {
788788 _cpp_file *f;
789789
@@ -805,7 +805,7 @@ should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import, · 15 unmodified lines
805805
806806 /* Skip if the file had a header guard and the macro is defined.
807807 PCH relies on this appearing before the PCH handler below. */
808− if (file->cmacro && file->cmacro->type == NT_MACRO)
808+ if (file->cmacro && cpp_macro_p (file->cmacro))
809809 return false;
810810
811811 /* Handle PCH files immediately; don't stack them. */
@@ -892,13 +892,13 @@ should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import, · 80 unmodified lines
892892 stacked. Use LOC for any diagnostics. */
893893 bool
894894 _cpp_stack_file (cpp_reader *pfile, _cpp_file *file, bool import,
895− source_location loc)
895+ location_t loc)
896896 {
897897 cpp_buffer *buffer;
898898 int sysp;
899899
900900 if (!should_stack_file (pfile, file, import, loc))
901− return false;
901+ return false;
902902
903903 if (pfile->buffer == NULL || file->dir == NULL)
904904 sysp = 0;
@@ -1007,11 +1007,12 @@ dir_name_of_file (_cpp_file *file) · 102 unmodified lines
10071007 Returns true if a buffer was stacked. */
10081008 bool
10091009 _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets,
1010− enum include_type type, source_location loc)
1010+ enum include_type type, location_t loc)
10111011 {
10121012 struct cpp_dir *dir;
10131013 _cpp_file *file;
10141014 bool stacked;
1015+ bool decremented = false;
10151016
10161017 /* For -include command-line flags we have type == IT_CMDLINE.
10171018 When the first -include file is processed we have the case, where
@@ -1035,20 +1036,33 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets, · 17 unmodified lines
10351036 return false;
10361037
10371038 /* Compensate for the increment in linemap_add that occurs if
1038− _cpp_stack_file actually stacks the file. In the case of a
1039− normal #include, we're currently at the start of the line
1040− *following* the #include. A separate source_location for this
1041− location makes no sense (until we do the LC_LEAVE), and
1042− complicates LAST_SOURCE_LINE_LOCATION. This does not apply if we
1043− found a PCH file (in which case linemap_add is not called) or we
1044− were included from the command-line. */
1039+ _cpp_stack_file actually stacks the file. In the case of a normal
1040+ #include, we're currently at the start of the line *following* the
1041+ #include. A separate location_t for this location makes no
1042+ sense (until we do the LC_LEAVE), and complicates
1043+ LAST_SOURCE_LINE_LOCATION. This does not apply if we found a PCH
1044+ file (in which case linemap_add is not called) or we were included
1045+ from the command-line. In the case that the #include is the last
1046+ line in the file, highest_location still points to the current
1047+ line, not the start of the next line, so we do not decrement in
1048+ this case. See plugin/location-overflow-test-pr83173.h for an
1049+ example. */
10451050 if (file->pchname == NULL && file->err_no == 0
10461051 && type != IT_CMDLINE && type != IT_DEFAULT)
1047− pfile->line_table->highest_location--;
1052+ {
1053+ int highest_line = linemap_get_expansion_line (pfile->line_table,
1054+ pfile->line_table->highest_location);
1055+ int source_line = linemap_get_expansion_line (pfile->line_table, loc);
1056+ if (highest_line > source_line)
1057+ {
1058+ pfile->line_table->highest_location--;
1059+ decremented = true;
1060+ }
1061+ }
10481062
10491063 stacked = _cpp_stack_file (pfile, file, type == IT_IMPORT, loc);
10501064
1051− if (!stacked)
1065+ if (decremented && !stacked)
10521066 /* _cpp_stack_file didn't stack the file, so let's rollback the
10531067 compensation dance we performed above. */
10541068 pfile->line_table->highest_location++;
@@ -1059,7 +1073,7 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets, · 4 unmodified lines
10591073 /* Could not open FILE. The complication is dependency output. */
10601074 static void
10611075 open_file_failed (cpp_reader *pfile, _cpp_file *file, int angle_brackets,
1062− source_location loc)
1076+ location_t loc)
10631077 {
10641078 int sysp = pfile->line_table->highest_line > 1 && pfile->buffer ? pfile->buffer->sysp : 0;
10651079 bool print_dep = CPP_OPTION (pfile, deps.style) > (angle_brackets || !!sysp);
@@ -1247,7 +1261,7 @@ cpp_included (cpp_reader *pfile, const char *fname) · 181 unmodified lines
12471261 filenames aliased by links or redundant . or .. traversals etc. */
12481262 bool
12491263 cpp_included_before (cpp_reader *pfile, const char *fname,
1250− source_location location)
1264+ location_t location)
12511265 {
12521266 struct cpp_file_hash_entry *entry
12531267 = (struct cpp_file_hash_entry *)
gcc/libcpp/identifiers.c+3−3
@@ -1,5 +1,5 @@
11 /* Hash tables for the CPP library.
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Written by Per Bothner, 1994.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -104,8 +104,8 @@ cpp_defined (cpp_reader *pfile, const unsigned char *str, int len) · 98 unmodified lines
104104
105105 node = CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_NO_INSERT));
106106
107− /* If it's of type NT_MACRO, it cannot be poisoned. */
108− return node && node->type == NT_MACRO;
107+ /* If it's a macro, it cannot have been poisoned. */
108+ return node && cpp_macro_p (node);
109109 }
110110
111111 /* We don't need a proxy since the hash table's identifier comes first
gcc/libcpp/include/cpp-id-data.h+0−82
@@ -1,82 +0,0 @@
1−/* Structures that hang off cpp_identifier, for PCH.
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
3−
4−This program is free software; you can redistribute it and/or modify it
5−under the terms of the GNU General Public License as published by the
6−Free Software Foundation; either version 3, or (at your option) any
7−later version.
8−
9−This program is distributed in the hope that it will be useful,
10−but WITHOUT ANY WARRANTY; without even the implied warranty of
11−MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12−GNU General Public License for more details.
13−
14−You should have received a copy of the GNU General Public License
15−along with this program; see the file COPYING3. If not see
16−<http://www.gnu.org/licenses/>. */
17−
18−#include "cpplib.h"
19−
20−#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
21−typedef unsigned char uchar;
22−#endif
23−
24−#define UC (const unsigned char *) /* Intended use: UC"string" */
25−
26−/* Chained list of answers to an assertion. */
27−struct GTY(()) answer {
28− struct answer *next;
29− unsigned int count;
30− cpp_token GTY ((length ("%h.count"))) first[1];
31−};
32−
33−/* Each macro definition is recorded in a cpp_macro structure.
34− Variadic macros cannot occur with traditional cpp. */
35−struct GTY(()) cpp_macro {
36− /* Parameters, if any. If parameter names use extended identifiers,
37− the original spelling of those identifiers, not the canonical
38− UTF-8 spelling, goes here. */
39− cpp_hashnode ** GTY ((nested_ptr (union tree_node,
40− "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
41− "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
42− length ("%h.paramc")))
43− params;
44−
45− /* Replacement tokens (ISO) or replacement text (traditional). See
46− comment at top of cpptrad.c for how traditional function-like
47− macros are encoded. */
48− union cpp_macro_u
49− {
50− cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
51− const unsigned char * GTY ((tag ("1"))) text;
52− } GTY ((desc ("%1.traditional"))) exp;
53−
54− /* Definition line number. */
55− source_location line;
56−
57− /* Number of tokens in expansion, or bytes for traditional macros. */
58− unsigned int count;
59−
60− /* Number of parameters. */
61− unsigned short paramc;
62−
63− /* If a function-like macro. */
64− unsigned int fun_like : 1;
65−
66− /* If a variadic macro. */
67− unsigned int variadic : 1;
68−
69− /* If macro defined in system header. */
70− unsigned int syshdr : 1;
71−
72− /* Nonzero if it has been expanded or had its existence tested. */
73− unsigned int used : 1;
74−
75− /* Indicate which field of 'exp' is in use. */
76− unsigned int traditional : 1;
77−
78− /* Indicate whether the tokens include extra CPP_PASTE tokens at the
79− end to track invalid redefinitions with consecutive CPP_PASTE
80− tokens. */
81− unsigned int extra_tokens : 1;
82−};
gcc/libcpp/include/cpplib.h+238−150
@@ -1,5 +1,5 @@
11 /* Definitions for CPP library.
2− Copyright (C) 1995-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1995-2019 Free Software Foundation, Inc.
33 Written by Per Bothner, 1994-95.
44
55 This program is free software; you can redistribute it and/or modify it
@@ -36,7 +36,6 @@ typedef struct cpp_macro cpp_macro; · 30 unmodified lines
3636 typedef struct cpp_callbacks cpp_callbacks;
3737 typedef struct cpp_dir cpp_dir;
3838
39−struct answer;
4039 struct _cpp_file;
4140
4241 /* The first three groups, apart from '=', can appear in preprocessor
@@ -168,8 +167,9 @@ enum cpp_ttype · 125 unmodified lines
168167 #undef TK
169168
170169 /* C language kind, used when calling cpp_create_reader. */
171−enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17,
170+enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11, CLK_GNUC17, CLK_GNUC2X,
172171 CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11, CLK_STDC17,
172+ CLK_STDC2X,
173173 CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
174174 CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17,
175175 CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM};
@@ -240,8 +240,10 @@ struct GTY(()) cpp_identifier { · 64 unmodified lines
240240 /* A preprocessing token. This has been carefully packed and should
241241 occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
242242 struct GTY(()) cpp_token {
243− source_location src_loc; /* Location of first char of token,
244− together with range of full token. */
243+
244+ /* Location of first char of token, together with range of full token. */
245+ location_t src_loc;
246+
245247 ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
246248 unsigned short flags; /* flags - see above */
247249
@@ -550,6 +552,59 @@ struct cpp_options · 302 unmodified lines
550552 bool canonical_system_headers;
551553 };
552554
555+/* Diagnostic levels. To get a diagnostic without associating a
556+ position in the translation unit with it, use cpp_error_with_line
557+ with a line number of zero. */
558+
559+enum cpp_diagnostic_level {
560+ /* Warning, an error with -Werror. */
561+ CPP_DL_WARNING = 0,
562+ /* Same as CPP_DL_WARNING, except it is not suppressed in system headers. */
563+ CPP_DL_WARNING_SYSHDR,
564+ /* Warning, an error with -pedantic-errors or -Werror. */
565+ CPP_DL_PEDWARN,
566+ /* An error. */
567+ CPP_DL_ERROR,
568+ /* An internal consistency check failed. Prints "internal error: ",
569+ otherwise the same as CPP_DL_ERROR. */
570+ CPP_DL_ICE,
571+ /* An informative note following a warning. */
572+ CPP_DL_NOTE,
573+ /* A fatal error. */
574+ CPP_DL_FATAL
575+};
576+
577+/* Warning reason codes. Use a reason code of CPP_W_NONE for unclassified
578+ warnings and diagnostics that are not warnings. */
579+
580+enum cpp_warning_reason {
581+ CPP_W_NONE = 0,
582+ CPP_W_DEPRECATED,
583+ CPP_W_COMMENTS,
584+ CPP_W_MISSING_INCLUDE_DIRS,
585+ CPP_W_TRIGRAPHS,
586+ CPP_W_MULTICHAR,
587+ CPP_W_TRADITIONAL,
588+ CPP_W_LONG_LONG,
589+ CPP_W_ENDIF_LABELS,
590+ CPP_W_NUM_SIGN_CHANGE,
591+ CPP_W_VARIADIC_MACROS,
592+ CPP_W_BUILTIN_MACRO_REDEFINED,
593+ CPP_W_DOLLARS,
594+ CPP_W_UNDEF,
595+ CPP_W_UNUSED_MACROS,
596+ CPP_W_CXX_OPERATOR_NAMES,
597+ CPP_W_NORMALIZE,
598+ CPP_W_INVALID_PCH,
599+ CPP_W_WARNING_DIRECTIVE,
600+ CPP_W_LITERAL_SUFFIX,
601+ CPP_W_DATE_TIME,
602+ CPP_W_PEDANTIC,
603+ CPP_W_C90_C99_COMPAT,
604+ CPP_W_CXX11_COMPAT,
605+ CPP_W_EXPANSION_TO_DEFINED
606+};
607+
553608 /* Callback for header lookup for HEADER, which is the name of a
554609 source file. It is used as a method of last resort to find headers
555610 that are not otherwise found during the normal include processing.
@@ -571,12 +626,12 @@ struct cpp_callbacks · 15 unmodified lines
571626 void (*file_change) (cpp_reader *, const line_map_ordinary *);
572627
573628 void (*dir_change) (cpp_reader *, const char *);
574− void (*include) (cpp_reader *, source_location, const unsigned char *,
629+ void (*include) (cpp_reader *, location_t, const unsigned char *,
575630 const char *, int, const cpp_token **);
576− void (*define) (cpp_reader *, source_location, cpp_hashnode *);
577− void (*undef) (cpp_reader *, source_location, cpp_hashnode *);
578− void (*ident) (cpp_reader *, source_location, const cpp_string *);
579− void (*def_pragma) (cpp_reader *, source_location);
631+ void (*define) (cpp_reader *, location_t, cpp_hashnode *);
632+ void (*undef) (cpp_reader *, location_t, cpp_hashnode *);
633+ void (*ident) (cpp_reader *, location_t, const cpp_string *);
634+ void (*def_pragma) (cpp_reader *, location_t);
580635 int (*valid_pch) (cpp_reader *, const char *, int);
581636 void (*read_pch) (cpp_reader *, const char *, int, const char *);
582637 missing_header_cb missing_header;
@@ -587,26 +642,29 @@ struct cpp_callbacks · 4 unmodified lines
587642
588643 /* Called to emit a diagnostic. This callback receives the
589644 translated message. */
590− bool (*error) (cpp_reader *, int, int, rich_location *,
591− const char *, va_list *)
645+ bool (*diagnostic) (cpp_reader *,
646+ enum cpp_diagnostic_level,
647+ enum cpp_warning_reason,
648+ rich_location *,
649+ const char *, va_list *)
592650 ATTRIBUTE_FPTR_PRINTF(5,0);
593651
594652 /* Callbacks for when a macro is expanded, or tested (whether
595653 defined or not at the time) in #ifdef, #ifndef or "defined". */
596− void (*used_define) (cpp_reader *, source_location, cpp_hashnode *);
597− void (*used_undef) (cpp_reader *, source_location, cpp_hashnode *);
654+ void (*used_define) (cpp_reader *, location_t, cpp_hashnode *);
655+ void (*used_undef) (cpp_reader *, location_t, cpp_hashnode *);
598656 /* Called before #define and #undef or other macro definition
599657 changes are processed. */
600658 void (*before_define) (cpp_reader *);
601659 /* Called whenever a macro is expanded or tested.
602660 Second argument is the location of the start of the current expansion. */
603− void (*used) (cpp_reader *, source_location, cpp_hashnode *);
661+ void (*used) (cpp_reader *, location_t, cpp_hashnode *);
604662
605663 /* Callback to identify whether an attribute exists. */
606664 int (*has_attribute) (cpp_reader *);
607665
608− /* Callback that can change a user builtin into normal macro. */
609− bool (*user_builtin_macro) (cpp_reader *, cpp_hashnode *);
666+ /* Callback that can change a user lazy into normal macro. */
667+ void (*user_lazy_macro) (cpp_reader *, cpp_macro *, unsigned);
610668
611669 /* Callback to parse SOURCE_DATE_EPOCH from environment. */
612670 time_t (*get_source_date_epoch) (cpp_reader *);
@@ -620,7 +678,7 @@ struct cpp_callbacks · 7 unmodified lines
620678 The content contains the opening slash-star (or slash-slash),
621679 and for C-style comments contains the closing star-slash. For
622680 C++-style comments it does not include the terminating newline. */
623− void (*comment) (cpp_reader *, source_location, const unsigned char *,
681+ void (*comment) (cpp_reader *, location_t, const unsigned char *,
624682 size_t);
625683
626684 /* Callback for filename remapping in __FILE__ and __BASE_FILE__ macro
@@ -671,14 +729,81 @@ struct cpp_dir · 44 unmodified lines
671729 dev_t dev;
672730 };
673731
674−/* The structure of a node in the hash table. The hash table has
675− entries for all identifiers: either macros defined by #define
676− commands (type NT_MACRO), assertions created with #assert
677− (NT_ASSERTION), or neither of the above (NT_VOID). Builtin macros
678− like __LINE__ are flagged NODE_BUILTIN. Poisoned identifiers are
679− flagged NODE_POISONED. NODE_OPERATOR (C++ only) indicates an
680− identifier that behaves like an operator such as "xor".
681− NODE_DIAGNOSTIC is for speed in lex_token: it indicates a
732+/* The kind of the cpp_macro. */
733+enum cpp_macro_kind {
734+ cmk_macro, /* An ISO macro (token expansion). */
735+ cmk_assert, /* An assertion. */
736+ cmk_traditional /* A traditional macro (text expansion). */
737+};
738+
739+/* Each macro definition is recorded in a cpp_macro structure.
740+ Variadic macros cannot occur with traditional cpp. */
741+struct GTY(()) cpp_macro {
742+ union cpp_parm_u
743+ {
744+ /* Parameters, if any. If parameter names use extended identifiers,
745+ the original spelling of those identifiers, not the canonical
746+ UTF-8 spelling, goes here. */
747+ cpp_hashnode ** GTY ((tag ("false"),
748+ nested_ptr (union tree_node,
749+ "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
750+ "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
751+ length ("%1.paramc"))) params;
752+
753+ /* If this is an assertion, the next one in the chain. */
754+ cpp_macro *GTY ((tag ("true"))) next;
755+ } GTY ((desc ("%1.kind == cmk_assert"))) parm;
756+
757+ /* Definition line number. */
758+ location_t line;
759+
760+ /* Number of tokens in body, or bytes for traditional macros. */
761+ /* Do we really need 2^32-1 range here? */
762+ unsigned int count;
763+
764+ /* Number of parameters. */
765+ unsigned short paramc;
766+
767+ /* Non-zero if this is a user-lazy macro, value provided by user. */
768+ unsigned char lazy;
769+
770+ /* The kind of this macro (ISO, trad or assert) */
771+ unsigned kind : 2;
772+
773+ /* If a function-like macro. */
774+ unsigned int fun_like : 1;
775+
776+ /* If a variadic macro. */
777+ unsigned int variadic : 1;
778+
779+ /* If macro defined in system header. */
780+ unsigned int syshdr : 1;
781+
782+ /* Nonzero if it has been expanded or had its existence tested. */
783+ unsigned int used : 1;
784+
785+ /* Indicate whether the tokens include extra CPP_PASTE tokens at the
786+ end to track invalid redefinitions with consecutive CPP_PASTE
787+ tokens. */
788+ unsigned int extra_tokens : 1;
789+
790+ /* 1 bits spare (32-bit). 33 on 64-bit target. */
791+
792+ union cpp_exp_u
793+ {
794+ /* Trailing array of replacement tokens (ISO), or assertion body value. */
795+ cpp_token GTY ((tag ("false"), length ("%1.count"))) tokens[1];
796+
797+ /* Pointer to replacement text (traditional). See comment at top
798+ of cpptrad.c for how traditional function-like macros are
799+ encoded. */
800+ const unsigned char *GTY ((tag ("true"))) text;
801+ } GTY ((desc ("%1.kind == cmk_traditional"))) exp;
802+};
803+
804+/* Poisoned identifiers are flagged NODE_POISONED. NODE_OPERATOR (C++
805+ only) indicates an identifier that behaves like an operator such as
806+ "xor". NODE_DIAGNOSTIC is for speed in lex_token: it indicates a
682807 diagnostic may be required for this node. Currently this only
683808 applies to __VA_ARGS__, poisoned identifiers, and -Wc++-compat
684809 warnings about NODE_OPERATOR. */
@@ -686,21 +811,21 @@ struct cpp_dir · 1 unmodified line
686811 /* Hash node flags. */
687812 #define NODE_OPERATOR (1 << 0) /* C++ named operator. */
688813 #define NODE_POISONED (1 << 1) /* Poisoned identifier. */
689−#define NODE_BUILTIN (1 << 2) /* Builtin macro. */
690−#define NODE_DIAGNOSTIC (1 << 3) /* Possible diagnostic when lexed. */
691−#define NODE_WARN (1 << 4) /* Warn if redefined or undefined. */
692−#define NODE_DISABLED (1 << 5) /* A disabled macro. */
693−#define NODE_MACRO_ARG (1 << 6) /* Used during #define processing. */
694−#define NODE_USED (1 << 7) /* Dumped with -dU. */
695−#define NODE_CONDITIONAL (1 << 8) /* Conditional macro */
696−#define NODE_WARN_OPERATOR (1 << 9) /* Warn about C++ named operator. */
814+#define NODE_DIAGNOSTIC (1 << 2) /* Possible diagnostic when lexed. */
815+#define NODE_WARN (1 << 3) /* Warn if redefined or undefined. */
816+#define NODE_DISABLED (1 << 4) /* A disabled macro. */
817+#define NODE_USED (1 << 5) /* Dumped with -dU. */
818+#define NODE_CONDITIONAL (1 << 6) /* Conditional macro */
819+#define NODE_WARN_OPERATOR (1 << 7) /* Warn about C++ named operator. */
697820
698821 /* Different flavors of hash node. */
699822 enum node_type
700823 {
701− NT_VOID = 0, /* No definition yet. */
702− NT_MACRO, /* A macro of some form. */
703− NT_ASSERTION /* Predicate for #assert. */
824+ NT_VOID = 0, /* Maybe an assert? */
825+ NT_MACRO_ARG, /* A macro arg. */
826+ NT_USER_MACRO, /* A user macro. */
827+ NT_BUILTIN_MACRO, /* A builtin macro. */
828+ NT_MACRO_MASK = NT_USER_MACRO /* Mask for either macro kind. */
704829 };
705830
706831 /* Different flavors of builtin macro. _Pragma is an operator, but we
@@ -717,46 +842,27 @@ enum cpp_builtin_type · 10 unmodified lines
717842 BT_PRAGMA, /* `_Pragma' operator */
718843 BT_TIMESTAMP, /* `__TIMESTAMP__' */
719844 BT_COUNTER, /* `__COUNTER__' */
720− BT_HAS_ATTRIBUTE, /* `__has_attribute__(x)' */
721− BT_FIRST_USER, /* User defined builtin macros. */
722− BT_LAST_USER = BT_FIRST_USER + 63
845+ BT_HAS_ATTRIBUTE /* `__has_attribute__(x)' */
723846 };
724847
725848 #define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
726−#define HT_NODE(NODE) ((ht_identifier *) (NODE))
727−#define NODE_LEN(NODE) HT_LEN (&(NODE)->ident)
728−#define NODE_NAME(NODE) HT_STR (&(NODE)->ident)
729−
730−/* Specify which field, if any, of the union is used. */
731−
732−enum {
733− NTV_MACRO,
734− NTV_ANSWER,
735− NTV_BUILTIN,
736− NTV_ARGUMENT,
737− NTV_NONE
738−};
739−
740−#define CPP_HASHNODE_VALUE_IDX(HNODE) \
741− ((HNODE.flags & NODE_MACRO_ARG) ? NTV_ARGUMENT \
742− : HNODE.type == NT_MACRO ? ((HNODE.flags & NODE_BUILTIN) \
743− ? NTV_BUILTIN : NTV_MACRO) \
744− : HNODE.type == NT_ASSERTION ? NTV_ANSWER \
745− : NTV_NONE)
849+#define HT_NODE(NODE) (&(NODE)->ident)
850+#define NODE_LEN(NODE) HT_LEN (HT_NODE (NODE))
851+#define NODE_NAME(NODE) HT_STR (HT_NODE (NODE))
746852
747853 /* The common part of an identifier node shared amongst all 3 C front
748854 ends. Also used to store CPP identifiers, which are a superset of
749855 identifiers in the grammatical sense. */
750856
751857 union GTY(()) _cpp_hashnode_value {
752− /* If a macro. */
753− cpp_macro * GTY((tag ("NTV_MACRO"))) macro;
754− /* Answers to an assertion. */
755− struct answer * GTY ((tag ("NTV_ANSWER"))) answers;
858+ /* Assert (maybe NULL) */
859+ cpp_macro * GTY((tag ("NT_VOID"))) answers;
860+ /* Macro (never NULL) */
861+ cpp_macro * GTY((tag ("NT_USER_MACRO"))) macro;
756862 /* Code for a builtin macro. */
757− enum cpp_builtin_type GTY ((tag ("NTV_BUILTIN"))) builtin;
863+ enum cpp_builtin_type GTY ((tag ("NT_BUILTIN_MACRO"))) builtin;
758864 /* Macro argument index. */
759− unsigned short GTY ((tag ("NTV_ARGUMENT"))) arg_index;
865+ unsigned short GTY ((tag ("NT_MACRO_ARG"))) arg_index;
760866 };
761867
762868 struct GTY(()) cpp_hashnode {
@@ -766,10 +872,12 @@ struct GTY(()) cpp_hashnode { · 3 unmodified lines
766872 then index into directive table.
767873 Otherwise, a NODE_OPERATOR. */
768874 unsigned char rid_code; /* Rid code - for front ends. */
769− ENUM_BITFIELD(node_type) type : 6; /* CPP node type. */
770− unsigned int flags : 10; /* CPP flags. */
875+ ENUM_BITFIELD(node_type) type : 2; /* CPP node type. */
876+ unsigned int flags : 8; /* CPP flags. */
877+
878+ /* 6 bits spare (plus another 32 on 64-bit hosts). */
771879
772− union _cpp_hashnode_value GTY ((desc ("CPP_HASHNODE_VALUE_IDX (%1)"))) value;
880+ union _cpp_hashnode_value GTY ((desc ("%1.type"))) value;
773881 };
774882
775883 /* A class for iterating through the source locations within a
@@ -778,13 +886,13 @@ struct GTY(()) cpp_hashnode { · 2 unmodified lines
778886
779887 class cpp_string_location_reader {
780888 public:
781− cpp_string_location_reader (source_location src_loc,
889+ cpp_string_location_reader (location_t src_loc,
782890 line_maps *line_table);
783891
784892 source_range get_next ();
785893
786894 private:
787− source_location m_loc;
895+ location_t m_loc;
788896 int m_offset_per_column;
789897 line_maps *m_line_table;
790898 };
@@ -889,11 +997,32 @@ extern int cpp_avoid_paste (cpp_reader *, const cpp_token *, · 98 unmodified lines
889997 const cpp_token *);
890998 extern const cpp_token *cpp_get_token (cpp_reader *);
891999 extern const cpp_token *cpp_get_token_with_location (cpp_reader *,
892− source_location *);
893−extern bool cpp_fun_like_macro_p (cpp_hashnode *);
1000+ location_t *);
1001+inline bool cpp_user_macro_p (const cpp_hashnode *node)
1002+{
1003+ return node->type == NT_USER_MACRO;
1004+}
1005+inline bool cpp_builtin_macro_p (const cpp_hashnode *node)
1006+{
1007+ return node->type == NT_BUILTIN_MACRO;
1008+}
1009+inline bool cpp_macro_p (const cpp_hashnode *node)
1010+{
1011+ return node->type & NT_MACRO_MASK;
1012+}
1013+
1014+/* Returns true if NODE is a function-like user macro. */
1015+inline bool cpp_fun_like_macro_p (cpp_hashnode *node)
1016+{
1017+ return cpp_user_macro_p (node) && node->value.macro->fun_like;
1018+}
1019+
8941020 extern const unsigned char *cpp_macro_definition (cpp_reader *,
8951021 cpp_hashnode *);
896−extern source_location cpp_macro_definition_location (cpp_hashnode *);
1022+inline location_t cpp_macro_definition_location (cpp_hashnode *node)
1023+{
1024+ return node->value.macro->line;
1025+}
8971026 extern void _cpp_backup_tokens (cpp_reader *, unsigned int);
8981027 extern const cpp_token *cpp_peek_token (cpp_reader *, int);
8991028
@@ -926,6 +1055,9 @@ extern void cpp_assert (cpp_reader *, const char *); · 26 unmodified lines
9261055 extern void cpp_undef (cpp_reader *, const char *);
9271056 extern void cpp_unassert (cpp_reader *, const char *);
9281057
1058+/* Mark a node as a lazily defined macro. */
1059+extern void cpp_define_lazily (cpp_reader *, cpp_hashnode *node, unsigned N);
1060+
9291061 /* Undefine all macros and assertions. */
9301062 extern void cpp_undef_all (cpp_reader *);
9311063
@@ -996,7 +1128,7 @@ struct cpp_num · 64 unmodified lines
9961128 /* Classify a CPP_NUMBER token. The return value is a combination of
9971129 the flags from the above sets. */
9981130 extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *,
999− const char **, source_location);
1131+ const char **, location_t);
10001132
10011133 /* Return the classification flags for a float suffix. */
10021134 extern unsigned int cpp_interpret_float_suffix (cpp_reader *, const char *,
@@ -1014,99 +1146,55 @@ extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *, · 11 unmodified lines
10141146 others assumed clear, to fill out a cpp_num structure. */
10151147 cpp_num cpp_num_sign_extend (cpp_num, size_t);
10161148
1017−/* Diagnostic levels. To get a diagnostic without associating a
1018− position in the translation unit with it, use cpp_error_with_line
1019− with a line number of zero. */
1020−
1021−enum {
1022− /* Warning, an error with -Werror. */
1023− CPP_DL_WARNING = 0,
1024− /* Same as CPP_DL_WARNING, except it is not suppressed in system headers. */
1025− CPP_DL_WARNING_SYSHDR,
1026− /* Warning, an error with -pedantic-errors or -Werror. */
1027− CPP_DL_PEDWARN,
1028− /* An error. */
1029− CPP_DL_ERROR,
1030− /* An internal consistency check failed. Prints "internal error: ",
1031− otherwise the same as CPP_DL_ERROR. */
1032− CPP_DL_ICE,
1033− /* An informative note following a warning. */
1034− CPP_DL_NOTE,
1035− /* A fatal error. */
1036− CPP_DL_FATAL
1037−};
1038−
1039−/* Warning reason codes. Use a reason code of zero for unclassified warnings
1040− and errors that are not warnings. */
1041−enum {
1042− CPP_W_NONE = 0,
1043− CPP_W_DEPRECATED,
1044− CPP_W_COMMENTS,
1045− CPP_W_MISSING_INCLUDE_DIRS,
1046− CPP_W_TRIGRAPHS,
1047− CPP_W_MULTICHAR,
1048− CPP_W_TRADITIONAL,
1049− CPP_W_LONG_LONG,
1050− CPP_W_ENDIF_LABELS,
1051− CPP_W_NUM_SIGN_CHANGE,
1052− CPP_W_VARIADIC_MACROS,
1053− CPP_W_BUILTIN_MACRO_REDEFINED,
1054− CPP_W_DOLLARS,
1055− CPP_W_UNDEF,
1056− CPP_W_UNUSED_MACROS,
1057− CPP_W_CXX_OPERATOR_NAMES,
1058− CPP_W_NORMALIZE,
1059− CPP_W_INVALID_PCH,
1060− CPP_W_WARNING_DIRECTIVE,
1061− CPP_W_LITERAL_SUFFIX,
1062− CPP_W_DATE_TIME,
1063− CPP_W_PEDANTIC,
1064− CPP_W_C90_C99_COMPAT,
1065− CPP_W_CXX11_COMPAT,
1066− CPP_W_EXPANSION_TO_DEFINED
1067−};
1068−
10691149 /* Output a diagnostic of some kind. */
1070−extern bool cpp_error (cpp_reader *, int, const char *msgid, ...)
1150+extern bool cpp_error (cpp_reader *, enum cpp_diagnostic_level,
1151+ const char *msgid, ...)
10711152 ATTRIBUTE_PRINTF_3;
1072−extern bool cpp_warning (cpp_reader *, int, const char *msgid, ...)
1153+extern bool cpp_warning (cpp_reader *, enum cpp_warning_reason,
1154+ const char *msgid, ...)
10731155 ATTRIBUTE_PRINTF_3;
1074−extern bool cpp_pedwarning (cpp_reader *, int, const char *msgid, ...)
1156+extern bool cpp_pedwarning (cpp_reader *, enum cpp_warning_reason,
1157+ const char *msgid, ...)
10751158 ATTRIBUTE_PRINTF_3;
1076−extern bool cpp_warning_syshdr (cpp_reader *, int, const char *msgid, ...)
1159+extern bool cpp_warning_syshdr (cpp_reader *, enum cpp_warning_reason reason,
1160+ const char *msgid, ...)
10771161 ATTRIBUTE_PRINTF_3;
10781162
10791163 /* Output a diagnostic with "MSGID: " preceding the
10801164 error string of errno. No location is printed. */
1081−extern bool cpp_errno (cpp_reader *, int, const char *msgid);
1165+extern bool cpp_errno (cpp_reader *, enum cpp_diagnostic_level,
1166+ const char *msgid);
10821167 /* Similarly, but with "FILENAME: " instead of "MSGID: ", where
10831168 the filename is not localized. */
1084−extern bool cpp_errno_filename (cpp_reader *, int, const char *filename,
1085− source_location loc);
1169+extern bool cpp_errno_filename (cpp_reader *, enum cpp_diagnostic_level,
1170+ const char *filename, location_t loc);
10861171
10871172 /* Same as cpp_error, except additionally specifies a position as a
10881173 (translation unit) physical line and physical column. If the line is
10891174 zero, then no location is printed. */
1090−extern bool cpp_error_with_line (cpp_reader *, int, source_location,
1091− unsigned, const char *msgid, ...)
1175+extern bool cpp_error_with_line (cpp_reader *, enum cpp_diagnostic_level,
1176+ location_t, unsigned,
1177+ const char *msgid, ...)
10921178 ATTRIBUTE_PRINTF_5;
1093−extern bool cpp_warning_with_line (cpp_reader *, int, source_location,
1094− unsigned, const char *msgid, ...)
1179+extern bool cpp_warning_with_line (cpp_reader *, enum cpp_warning_reason,
1180+ location_t, unsigned,
1181+ const char *msgid, ...)
10951182 ATTRIBUTE_PRINTF_5;
1096−extern bool cpp_pedwarning_with_line (cpp_reader *, int, source_location,
1097− unsigned, const char *msgid, ...)
1183+extern bool cpp_pedwarning_with_line (cpp_reader *, enum cpp_warning_reason,
1184+ location_t, unsigned,
1185+ const char *msgid, ...)
10981186 ATTRIBUTE_PRINTF_5;
1099−extern bool cpp_warning_with_line_syshdr (cpp_reader *, int, source_location,
1100− unsigned, const char *msgid, ...)
1187+extern bool cpp_warning_with_line_syshdr (cpp_reader *, enum cpp_warning_reason,
1188+ location_t, unsigned,
1189+ const char *msgid, ...)
11011190 ATTRIBUTE_PRINTF_5;
11021191
1103−extern bool cpp_error_at (cpp_reader * pfile, int level,
1104− source_location src_loc, const char *msgid, ...)
1192+extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level,
1193+ location_t src_loc, const char *msgid, ...)
11051194 ATTRIBUTE_PRINTF_4;
11061195
1107−extern bool cpp_error_at (cpp_reader * pfile, int level,
1108− rich_location *richloc, const char *msgid,
1109− ...)
1196+extern bool cpp_error_at (cpp_reader * pfile, enum cpp_diagnostic_level,
1197+ rich_location *richloc, const char *msgid, ...)
11101198 ATTRIBUTE_PRINTF_4;
11111199
11121200 /* In lex.c */
@@ -1133,7 +1221,7 @@ typedef struct · 20 unmodified lines
11331221 char *comment;
11341222
11351223 /* source location for the given comment. */
1136− source_location sloc;
1224+ location_t sloc;
11371225 } cpp_comment;
11381226
11391227 /* Structure holding all comments for a given cpp_reader. */
@@ -1172,7 +1260,7 @@ extern unsigned char *cpp_quote_string (unsigned char *, const unsigned char *, · 32 unmodified lines
11721260
11731261 /* In files.c */
11741262 extern bool cpp_included (cpp_reader *, const char *);
1175−extern bool cpp_included_before (cpp_reader *, const char *, source_location);
1263+extern bool cpp_included_before (cpp_reader *, const char *, location_t);
11761264 extern void cpp_make_system_header (cpp_reader *, int, int);
11771265 extern bool cpp_push_include (cpp_reader *, const char *);
11781266 extern bool cpp_push_default_include (cpp_reader *, const char *);
@@ -1195,7 +1283,7 @@ extern int cpp_read_state (cpp_reader *, const char *, FILE *, · 16 unmodified lines
11951283 struct save_macro_data *);
11961284
11971285 /* In lex.c */
1198−extern void cpp_force_token_locations (cpp_reader *, source_location *);
1286+extern void cpp_force_token_locations (cpp_reader *, location_t);
11991287 extern void cpp_stop_forcing_token_locations (cpp_reader *);
12001288
12011289 /* In expr.c */
gcc/libcpp/include/line-map.h+310−210
@@ -1,5 +1,5 @@
11 /* Map (unsigned int) keys to (source file, line, column) triples.
2− Copyright (C) 2001-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
@@ -49,36 +49,34 @@ along with this program; see the file COPYING3. If not see · 43 unmodified lines
4949 /* The type of line numbers. */
5050 typedef unsigned int linenum_type;
5151
52+/* A type for doing arithmetic on line numbers. */
53+typedef long long linenum_arith_t;
54+
5255 /* A function for for use by qsort for comparing line numbers. */
5356
5457 inline int compare (linenum_type lhs, linenum_type rhs)
5558 {
56− /* Avoid truncation issues by using long long for the comparison,
59+ /* Avoid truncation issues by using linenum_arith_t for the comparison,
5760 and only consider the sign of the result. */
58− long long diff = (long long)lhs - (long long)rhs;
61+ linenum_arith_t diff = (linenum_arith_t)lhs - (linenum_arith_t)rhs;
5962 if (diff)
6063 return diff > 0 ? 1 : -1;
6164 return 0;
6265 }
6366
64−/* Reason for creating a new line map with linemap_add. LC_ENTER is
65− when including a new file, e.g. a #include directive in C.
66− LC_LEAVE is when reaching a file's end. LC_RENAME is when a file
67− name or line number changes for neither of the above reasons
68− (e.g. a #line directive in C); LC_RENAME_VERBATIM is like LC_RENAME
69− but a filename of "" is not specially interpreted as standard
70− input. LC_ENTER_MACRO is when a macro expansion is about to start. */
67+/* Reason for creating a new line map with linemap_add. */
7168 enum lc_reason
7269 {
73− LC_ENTER = 0,
74− LC_LEAVE,
75− LC_RENAME,
76− LC_RENAME_VERBATIM,
77− LC_ENTER_MACRO
70+ LC_ENTER = 0, /* Begin #include. */
71+ LC_LEAVE, /* Return to including file. */
72+ LC_RENAME, /* Other reason for name change. */
73+ LC_RENAME_VERBATIM, /* Likewise, but "" != stdin. */
74+ LC_ENTER_MACRO, /* Begin macro expansion. */
7875 /* FIXME: add support for stringize and paste. */
76+ LC_HWM /* High Water Mark. */
7977 };
8078
81−/* The typedef "source_location" is a key within the location database,
79+/* The typedef "location_t" is a key within the location database,
8280 identifying a source location or macro expansion, along with range
8381 information, and (optionally) a pointer for use by gcc.
8482
@@ -168,7 +166,7 @@ enum lc_reason · 83 unmodified lines
168166 | Beyond this point, ordinary linemaps have 0 bits per column:
169167 | each increment of the value corresponds to a new source line.
170168 |
171− 0x70000000 | LINE_MAP_MAX_SOURCE_LOCATION
169+ 0x70000000 | LINE_MAP_MAX_LOCATION
172170 | Beyond the point, we give up on ordinary maps; attempts to
173171 | create locations in them lead to UNKNOWN_LOCATION (0).
174172 |
@@ -187,7 +185,7 @@ enum lc_reason · 12 unmodified lines
187185 | macromap[1]->start_location | Start of macro map 1
188186 -----------+-------------------------------+-------------------------------
189187 | macromap[0]->start_location | Start of macro map 0
190− 0x7fffffff | MAX_SOURCE_LOCATION | Also used as a mask for
188+ 0x7fffffff | MAX_LOCATION_T | Also used as a mask for
191189 | | accessing the ad-hoc data table
192190 -----------+-------------------------------+-------------------------------
193191 0x80000000 | Start of ad-hoc values; the lower 31 bits are used as an index
@@ -288,9 +286,9 @@ enum lc_reason · 94 unmodified lines
288286 finish == ordmap->start + (23 << 12) + (19 << 5)
289287 == ordmap->start + 0x17260
290288
291− To further see how source_location works in practice, see the
289+ To further see how location_t works in practice, see the
292290 worked example in libcpp/location-example.txt. */
293−typedef unsigned int source_location;
291+typedef unsigned int location_t;
294292
295293 /* Do not track column numbers higher than this one. As a result, the
296294 range of column_bits is [12, 18] (or 0 if column numbers are
@@ -300,12 +298,15 @@ const unsigned int LINE_MAP_MAX_COLUMN_NUMBER = (1U << 12); · 3 unmodified lines
300298 /* Do not pack ranges if locations get higher than this.
301299 If you change this, update:
302300 gcc.dg/plugin/location-overflow-test-*.c. */
303−const source_location LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES = 0x50000000;
301+const location_t LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES = 0x50000000;
304302
305303 /* Do not track column numbers if locations get higher than this.
306304 If you change this, update:
307305 gcc.dg/plugin/location-overflow-test-*.c. */
308−const source_location LINE_MAP_MAX_LOCATION_WITH_COLS = 0x60000000;
306+const location_t LINE_MAP_MAX_LOCATION_WITH_COLS = 0x60000000;
307+
308+/* Highest possible source location encoded within an ordinary map. */
309+const location_t LINE_MAP_MAX_LOCATION = 0x70000000;
309310
310311 /* A range of source locations.
311312
@@ -317,15 +318,15 @@ const source_location LINE_MAP_MAX_LOCATION_WITH_COLS = 0x60000000; · 5 unmodified lines
317318 let's do it the simple way, as a pair. */
318319 struct GTY(()) source_range
319320 {
320− source_location m_start;
321− source_location m_finish;
321+ location_t m_start;
322+ location_t m_finish;
322323
323324 /* We avoid using constructors, since various structs that
324325 don't yet have constructors will embed instances of
325326 source_range. */
326327
327− /* Make a source_range from a source_location. */
328− static source_range from_location (source_location loc)
328+ /* Make a source_range from a location_t. */
329+ static source_range from_location (location_t loc)
329330 {
330331 source_range result;
331332 result.m_start = loc;
@@ -333,9 +334,9 @@ struct GTY(()) source_range · 1 unmodified line
333334 return result;
334335 }
335336
336− /* Make a source_range from a pair of source_location. */
337− static source_range from_locations (source_location start,
338− source_location finish)
337+ /* Make a source_range from a pair of location_t. */
338+ static source_range from_locations (location_t start,
339+ location_t finish)
339340 {
340341 source_range result;
341342 result.m_start = start;
@@ -377,11 +378,13 @@ typedef size_t (*line_map_round_alloc_size_func) (size_t); · 35 unmodified lines
377378 location of the expansion point of PLUS. That location is mapped in
378379 the map that is active right before the location of the invocation
379380 of PLUS. */
380−struct GTY((tag ("0"), desc ("%h.reason == LC_ENTER_MACRO ? 2 : 1"))) line_map {
381− source_location start_location;
382381
383− /* The reason for creation of this line map. */
384− ENUM_BITFIELD (lc_reason) reason : CHAR_BIT;
382+/* This contains GTY mark-up to support precompiled headers.
383+ line_map is an abstract class, only derived objects exist. */
384+struct GTY((tag ("0"), desc ("MAP_ORDINARY_P (&%h) ? 1 : 2"))) line_map {
385+ location_t start_location;
386+
387+ /* Size and alignment is (usually) 4 bytes. */
385388 };
386389
387390 /* An ordinary line map encodes physical source locations. Those
@@ -395,15 +398,14 @@ struct GTY((tag ("0"), desc ("%h.reason == LC_ENTER_MACRO ? 2 : 1"))) line_map { · 7 unmodified lines
395398 (The top line is line 1 and the leftmost column is column 1; line/column 0
396399 means "entire file/line" or "unknown line/column" or "not applicable".)
397400
398− The highest possible source location is MAX_SOURCE_LOCATION. */
401+ The highest possible source location is MAX_LOCATION_T. */
399402 struct GTY((tag ("1"))) line_map_ordinary : public line_map {
400− const char *to_file;
401− linenum_type to_line;
403+ /* Base class is 4 bytes. */
402404
403− /* An index into the set that gives the line mapping at whose end
404− the current one was included. File(s) at the bottom of the
405− include stack have this set to -1. */
406− int included_from;
405+ /* 4 bytes of integers, each 1 byte for easy extraction/insertion. */
406+
407+ /* The reason for creation of this line map. */
408+ ENUM_BITFIELD (lc_reason) reason : 8;
407409
408410 /* SYSP is one for a system header, two for a C system header file
409411 that therefore needs to be extern "C" protected in C++, and zero
@@ -411,7 +413,7 @@ struct GTY((tag ("1"))) line_map_ordinary : public line_map { · 1 unmodified line
411413 cpp_buffer. */
412414 unsigned char sysp;
413415
414− /* Number of the low-order source_location bits used for column numbers
416+ /* Number of the low-order location_t bits used for column numbers
415417 and ranges. */
416418 unsigned int m_column_and_range_bits : 8;
417419
@@ -429,11 +431,23 @@ struct GTY((tag ("1"))) line_map_ordinary : public line_map { · 11 unmodified lines
429431 | | (e.g. 7) | (e.g. 5) |
430432 +-------------------------+-----------------------+-------------------+ */
431433 unsigned int m_range_bits : 8;
434+
435+ /* Pointer alignment boundary on both 32 and 64-bit systems. */
436+
437+ const char *to_file;
438+ linenum_type to_line;
439+
440+ /* Location from whence this line map was included. For regular
441+ #includes, this location will be the last location of a map. For
442+ outermost file, this is 0. */
443+ location_t included_from;
444+
445+ /* Size is 20 or 24 bytes, no padding */
432446 };
433447
434448 /* This is the highest possible source location encoded within an
435449 ordinary or macro map. */
436−const source_location MAX_SOURCE_LOCATION = 0x7FFFFFFF;
450+const location_t MAX_LOCATION_T = 0x7FFFFFFF;
437451
438452 struct cpp_hashnode;
439453
@@ -443,15 +457,20 @@ struct cpp_hashnode; · 3 unmodified lines
443457 The offset from START_LOCATION is used to index into
444458 MACRO_LOCATIONS; this holds the original location of the token. */
445459 struct GTY((tag ("2"))) line_map_macro : public line_map {
446− /* The cpp macro which expansion gave birth to this macro map. */
447− struct cpp_hashnode * GTY ((nested_ptr (union tree_node,
448− "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
449− "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
450− macro;
460+ /* Base is 4 bytes. */
451461
452462 /* The number of tokens inside the replacement-list of MACRO. */
453463 unsigned int n_tokens;
454464
465+ /* Pointer alignment boundary. */
466+
467+ /* The cpp macro whose expansion gave birth to this macro map. */
468+ struct cpp_hashnode *
469+ GTY ((nested_ptr (union tree_node,
470+ "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
471+ "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
472+ macro;
473+
455474 /* This array of location is actually an array of pairs of
456475 locations. The elements inside it thus look like:
457476
@@ -505,14 +524,16 @@ struct GTY((tag ("2"))) line_map_macro : public line_map { · 47 unmodified lines
505524 In the example above x1 (for token "+") is going to be the same
506525 as y1. x0 is the spelling location for the argument token "1",
507526 and x2 is the spelling location for the argument token "2". */
508− source_location * GTY((atomic)) macro_locations;
527+ location_t * GTY((atomic)) macro_locations;
509528
510529 /* This is the location of the expansion point of the current macro
511530 map. It's the location of the macro name. That location is held
512531 by the map that was current right before the current one. It
513532 could have been either a macro or an ordinary map, depending on
514533 if we are in a nested expansion context not. */
515− source_location expansion;
534+ location_t expansion;
535+
536+ /* Size is 20 or 32 (4 bytes padding on 64-bit). */
516537 };
517538
518539 #if CHECKING_P && (GCC_VERSION >= 2007)
@@ -540,6 +561,34 @@ struct GTY((tag ("2"))) line_map_macro : public line_map { · 21 unmodified lines
540561 #define linemap_assert_fails(EXPR) (! (EXPR))
541562 #endif
542563
564+/* Get whether location LOC is an ad-hoc, ordinary or macro location. */
565+
566+inline bool
567+IS_ORDINARY_LOC (location_t loc)
568+{
569+ return loc < LINE_MAP_MAX_LOCATION;
570+}
571+
572+inline bool
573+IS_ADHOC_LOC (location_t loc)
574+{
575+ return loc > MAX_LOCATION_T;
576+}
577+
578+inline bool
579+IS_MACRO_LOC (location_t loc)
580+{
581+ return !IS_ORDINARY_LOC (loc) && !IS_ADHOC_LOC (loc);
582+}
583+
584+/* Categorize line map kinds. */
585+
586+inline bool
587+MAP_ORDINARY_P (const line_map *map)
588+{
589+ return IS_ORDINARY_LOC (map->start_location);
590+}
591+
543592 /* Return TRUE if MAP encodes locations coming from a macro
544593 replacement-list at macro expansion point. */
545594 bool
@@ -552,7 +601,7 @@ linemap_macro_expansion_map_p (const struct line_map *); · 6 unmodified lines
552601 inline line_map_ordinary *
553602 linemap_check_ordinary (struct line_map *map)
554603 {
555− linemap_assert (!linemap_macro_expansion_map_p (map));
604+ linemap_assert (MAP_ORDINARY_P (map));
556605 return (line_map_ordinary *)map;
557606 }
558607
@@ -563,7 +612,7 @@ linemap_check_ordinary (struct line_map *map) · 4 unmodified lines
563612 inline const line_map_ordinary *
564613 linemap_check_ordinary (const struct line_map *map)
565614 {
566− linemap_assert (!linemap_macro_expansion_map_p (map));
615+ linemap_assert (MAP_ORDINARY_P (map));
567616 return (const line_map_ordinary *)map;
568617 }
569618
@@ -572,7 +621,7 @@ linemap_check_ordinary (const struct line_map *map) · 2 unmodified lines
572621
573622 inline line_map_macro *linemap_check_macro (line_map *map)
574623 {
575− linemap_assert (linemap_macro_expansion_map_p (map));
624+ linemap_assert (!MAP_ORDINARY_P (map));
576625 return (line_map_macro *)map;
577626 }
578627
@@ -582,13 +631,13 @@ inline line_map_macro *linemap_check_macro (line_map *map) · 3 unmodified lines
582631 inline const line_map_macro *
583632 linemap_check_macro (const line_map *map)
584633 {
585− linemap_assert (linemap_macro_expansion_map_p (map));
634+ linemap_assert (!MAP_ORDINARY_P (map));
586635 return (const line_map_macro *)map;
587636 }
588637
589638 /* Read the start location of MAP. */
590639
591−inline source_location
640+inline location_t
592641 MAP_START_LOCATION (const line_map *map)
593642 {
594643 return map->start_location;
@@ -602,17 +651,6 @@ ORDINARY_MAP_STARTING_LINE_NUMBER (const line_map_ordinary *ord_map) · 7 unmodified lines
602651 return ord_map->to_line;
603652 }
604653
605−/* Get the index of the ordinary map at whose end
606− ordinary map MAP was included.
607−
608− File(s) at the bottom of the include stack have this set. */
609−
610−inline int
611−ORDINARY_MAP_INCLUDER_FILE_INDEX (const line_map_ordinary *ord_map)
612−{
613− return ord_map->included_from;
614−}
615−
616654 /* Return a positive value if map encodes locations from a system
617655 header, 0 otherwise. Returns 1 if ordinary map MAP encodes locations
618656 in a system header and 2 if it encodes locations in a C system header
@@ -652,7 +690,7 @@ MACRO_MAP_NUM_MACRO_TOKENS (const line_map_macro *macro_map) · 33 unmodified lines
652690 /* Get the array of pairs of locations within macro map MAP.
653691 See the declaration of line_map_macro for more information. */
654692
655−inline source_location *
693+inline location_t *
656694 MACRO_MAP_LOCATIONS (const line_map_macro *macro_map)
657695 {
658696 return macro_map->macro_locations;
@@ -660,7 +698,7 @@ MACRO_MAP_LOCATIONS (const line_map_macro *macro_map) · 1 unmodified line
660698
661699 /* Get the location of the expansion point of the macro map MAP. */
662700
663−inline source_location
701+inline location_t
664702 MACRO_MAP_EXPANSION_POINT_LOCATION (const line_map_macro *macro_map)
665703 {
666704 return macro_map->expansion;
@@ -707,7 +745,7 @@ struct GTY(()) maps_info_macro { · 40 unmodified lines
707745 /* Data structure to associate a source_range together with an arbitrary
708746 data pointer with a source location. */
709747 struct GTY(()) location_adhoc_data {
710− source_location locus;
748+ location_t locus;
711749 source_range src_range;
712750 void * GTY((skip)) data;
713751 };
@@ -726,7 +764,7 @@ struct htab; · 12 unmodified lines
726764
727765 struct GTY(()) location_adhoc_data_map {
728766 struct htab * GTY((skip)) htab;
729− source_location curr_loc;
767+ location_t curr_loc;
730768 unsigned int allocated;
731769 struct location_adhoc_data GTY((length ("%h.allocated"))) *data;
732770 };
@@ -746,18 +784,17 @@ struct GTY(()) line_maps { · 13 unmodified lines
746784 /* If true, prints an include trace a la -H. */
747785 bool trace_includes;
748786
749− /* Highest source_location "given out". */
750− source_location highest_location;
787+ /* Highest location_t "given out". */
788+ location_t highest_location;
751789
752− /* Start of line of highest source_location "given out". */
753− source_location highest_line;
790+ /* Start of line of highest location_t "given out". */
791+ location_t highest_line;
754792
755793 /* The maximum column number we can quickly allocate. Higher numbers
756794 may require allocating a new line_map. */
757795 unsigned int max_column_hint;
758796
759− /* If non-null, the allocator to use when resizing 'maps'. If null,
760− xrealloc is used. */
797+ /* The allocator to use when resizing 'maps', defaults to xrealloc. */
761798 line_map_realloc reallocator;
762799
763800 /* The allocators' function used to know the actual size it
@@ -768,7 +805,7 @@ struct GTY(()) line_maps { · 4 unmodified lines
768805
769806 /* The special location value that is used as spelling location for
770807 built-in tokens. */
771− source_location builtin_location;
808+ location_t builtin_location;
772809
773810 /* True if we've seen a #line or # 44 "file" directive. */
774811 bool seen_line_directive;
@@ -998,12 +1035,12 @@ LINEMAPS_LAST_MACRO_MAP (const line_maps *set) · 223 unmodified lines
9981035
9991036 /* Returns the lowest location [of a token resulting from macro
10001037 expansion] encoded in this line table. */
1001−inline source_location
1038+inline location_t
10021039 LINEMAPS_MACRO_LOWEST_LOCATION (const line_maps *set)
10031040 {
10041041 return LINEMAPS_MACRO_USED (set)
10051042 ? MAP_START_LOCATION (LINEMAPS_LAST_MACRO_MAP (set))
1006− : MAX_SOURCE_LOCATION;
1043+ : MAX_LOCATION_T + 1;
10071044 }
10081045
10091046 /* Returns the last macro map allocated in the line table SET. */
@@ -1013,41 +1050,33 @@ LINEMAPS_LAST_ALLOCATED_MACRO_MAP (const line_maps *set) · 3 unmodified lines
10131050 return (line_map_macro *)LINEMAPS_LAST_ALLOCATED_MAP (set, true);
10141051 }
10151052
1016−extern source_location get_combined_adhoc_loc (struct line_maps *,
1017− source_location,
1053+extern location_t get_combined_adhoc_loc (struct line_maps *,
1054+ location_t,
10181055 source_range,
10191056 void *);
1020−extern void *get_data_from_adhoc_loc (struct line_maps *, source_location);
1021−extern source_location get_location_from_adhoc_loc (struct line_maps *,
1022− source_location);
1057+extern void *get_data_from_adhoc_loc (struct line_maps *, location_t);
1058+extern location_t get_location_from_adhoc_loc (struct line_maps *,
1059+ location_t);
10231060
1024−extern source_range get_range_from_loc (line_maps *set, source_location loc);
1025−
1026−/* Get whether location LOC is an ad-hoc location. */
1027−
1028−inline bool
1029−IS_ADHOC_LOC (source_location loc)
1030−{
1031− return (loc & MAX_SOURCE_LOCATION) != loc;
1032−}
1061+extern source_range get_range_from_loc (line_maps *set, location_t loc);
10331062
10341063 /* Get whether location LOC is a "pure" location, or
10351064 whether it is an ad-hoc location, or embeds range information. */
10361065
10371066 bool
1038−pure_location_p (line_maps *set, source_location loc);
1067+pure_location_p (line_maps *set, location_t loc);
10391068
10401069 /* Given location LOC within SET, strip away any packed range information
10411070 or ad-hoc information. */
10421071
1043−extern source_location get_pure_location (line_maps *set,
1044− source_location loc);
1072+extern location_t get_pure_location (line_maps *set,
1073+ location_t loc);
10451074
10461075 /* Combine LOC and BLOCK, giving a combined adhoc location. */
10471076
1048−inline source_location
1077+inline location_t
10491078 COMBINE_LOCATION_DATA (struct line_maps *set,
1050− source_location loc,
1079+ location_t loc,
10511080 source_range src_range,
10521081 void *block)
10531082 {
@@ -1061,19 +1090,19 @@ extern void rebuild_location_adhoc_htab (struct line_maps *); · 7 unmodified lines
10611090 spelling location for built-in tokens. This BUILTIN_LOCATION has
10621091 to be strictly less than RESERVED_LOCATION_COUNT. */
10631092 extern void linemap_init (struct line_maps *set,
1064− source_location builtin_location);
1093+ location_t builtin_location);
10651094
10661095 /* Check for and warn about line_maps entered but not exited. */
10671096
10681097 extern void linemap_check_files_exited (struct line_maps *);
10691098
1070−/* Return a source_location for the start (i.e. column==0) of
1099+/* Return a location_t for the start (i.e. column==0) of
10711100 (physical) line TO_LINE in the current source file (as in the
10721101 most recent linemap_add). MAX_COLUMN_HINT is the highest column
10731102 number we expect to use in this line (but it does not change
10741103 the highest_location). */
10751104
1076−extern source_location linemap_line_start
1105+extern location_t linemap_line_start
10771106 (struct line_maps *set, linenum_type to_line, unsigned int max_column_hint);
10781107
10791108 /* Add a mapping of logical source line to physical source file and
@@ -1100,7 +1129,7 @@ extern const struct line_map *linemap_add · 20 unmodified lines
11001129 binary search. If no line map have been allocated yet, this
11011130 function returns NULL. */
11021131 extern const struct line_map *linemap_lookup
1103− (struct line_maps *, source_location);
1132+ (struct line_maps *, location_t);
11041133
11051134 /* Returns TRUE if the line table set tracks token locations across
11061135 macro expansion, FALSE otherwise. */
@@ -1119,114 +1148,86 @@ const char* linemap_map_get_macro_name (const line_map_macro *); · 12 unmodified lines
11191148 that is part of a macro replacement-list defined in a system
11201149 header, but expanded in a non-system file. */
11211150 int linemap_location_in_system_header_p (struct line_maps *,
1122− source_location);
1151+ location_t);
11231152
11241153 /* Return TRUE if LOCATION is a source code location of a token that is part of
11251154 a macro expansion, FALSE otherwise. */
11261155 bool linemap_location_from_macro_expansion_p (const struct line_maps *,
1127− source_location);
1156+ location_t);
11281157
11291158 /* TRUE if LOCATION is a source code location of a token that is part of the
11301159 definition of a macro, FALSE otherwise. */
11311160 bool linemap_location_from_macro_definition_p (struct line_maps *,
1132− source_location);
1161+ location_t);
11331162
11341163 /* With the precondition that LOCATION is the locus of a token that is
11351164 an argument of a function-like macro MACRO_MAP and appears in the
11361165 expansion of MACRO_MAP, return the locus of that argument in the
11371166 context of the caller of MACRO_MAP. */
11381167
1139−extern source_location linemap_macro_map_loc_unwind_toward_spelling
1140− (line_maps *set, const line_map_macro *macro_map, source_location location);
1168+extern location_t linemap_macro_map_loc_unwind_toward_spelling
1169+ (line_maps *set, const line_map_macro *macro_map, location_t location);
11411170
1142−/* source_location values from 0 to RESERVED_LOCATION_COUNT-1 will
1171+/* location_t values from 0 to RESERVED_LOCATION_COUNT-1 will
11431172 be reserved for libcpp user as special values, no token from libcpp
11441173 will contain any of those locations. */
1145−const source_location RESERVED_LOCATION_COUNT = 2;
1174+const location_t RESERVED_LOCATION_COUNT = 2;
11461175
1147−/* Converts a map and a source_location to source line. */
1176+/* Converts a map and a location_t to source line. */
11481177 inline linenum_type
1149−SOURCE_LINE (const line_map_ordinary *ord_map, source_location loc)
1178+SOURCE_LINE (const line_map_ordinary *ord_map, location_t loc)
11501179 {
11511180 return ((loc - ord_map->start_location)
11521181 >> ord_map->m_column_and_range_bits) + ord_map->to_line;
11531182 }
11541183
1155−/* Convert a map and source_location to source column number. */
1184+/* Convert a map and location_t to source column number. */
11561185 inline linenum_type
1157−SOURCE_COLUMN (const line_map_ordinary *ord_map, source_location loc)
1186+SOURCE_COLUMN (const line_map_ordinary *ord_map, location_t loc)
11581187 {
11591188 return ((loc - ord_map->start_location)
11601189 & ((1 << ord_map->m_column_and_range_bits) - 1)) >> ord_map->m_range_bits;
11611190 }
11621191
1163−/* Return the location of the last source line within an ordinary
1164− map. */
1165−inline source_location
1166−LAST_SOURCE_LINE_LOCATION (const line_map_ordinary *map)
1167−{
1168− return (((map[1].start_location - 1
1169− - map->start_location)
1170− & ~((1 << map->m_column_and_range_bits) - 1))
1171− + map->start_location);
1172−}
1173−
1174−/* Returns the last source line number within an ordinary map. This
1175− is the (last) line of the #include, or other directive, that caused
1176− a map change. */
1177−inline linenum_type
1178−LAST_SOURCE_LINE (const line_map_ordinary *map)
1179−{
1180− return SOURCE_LINE (map, LAST_SOURCE_LINE_LOCATION (map));
1181−}
1182−
1183−/* Return the last column number within an ordinary map. */
11841192
1185−inline linenum_type
1186−LAST_SOURCE_COLUMN (const line_map_ordinary *map)
1193+inline location_t
1194+linemap_included_from (const line_map_ordinary *ord_map)
11871195 {
1188− return SOURCE_COLUMN (map, LAST_SOURCE_LINE_LOCATION (map));
1196+ return ord_map->included_from;
11891197 }
11901198
1191−/* Returns the map a given map was included from, or NULL if the map
1192− belongs to the main file, i.e, a file that wasn't included by
1193− another one. */
1194−inline line_map_ordinary *
1195−INCLUDED_FROM (struct line_maps *set, const line_map_ordinary *ord_map)
1196−{
1197− return ((ord_map->included_from == -1)
1198− ? NULL
1199− : LINEMAPS_ORDINARY_MAP_AT (set, ord_map->included_from));
1200−}
1199+/* The linemap containing the included-from location of MAP. */
1200+const line_map_ordinary *linemap_included_from_linemap
1201+ (line_maps *set, const line_map_ordinary *map);
12011202
12021203 /* True if the map is at the bottom of the include stack. */
12031204
12041205 inline bool
12051206 MAIN_FILE_P (const line_map_ordinary *ord_map)
12061207 {
1207− return ord_map->included_from < 0;
1208+ return ord_map->included_from == 0;
12081209 }
12091210
1210−/* Encode and return a source_location from a column number. The
1211+/* Encode and return a location_t from a column number. The
12111212 source line considered is the last source line used to call
12121213 linemap_line_start, i.e, the last source line which a location was
12131214 encoded from. */
1214−extern source_location
1215+extern location_t
12151216 linemap_position_for_column (struct line_maps *, unsigned int);
12161217
12171218 /* Encode and return a source location from a given line and
12181219 column. */
1219−source_location
1220+location_t
12201221 linemap_position_for_line_and_column (line_maps *set,
12211222 const line_map_ordinary *,
12221223 linenum_type, unsigned int);
12231224
1224−/* Encode and return a source_location starting from location LOC and
1225+/* Encode and return a location_t starting from location LOC and
12251226 shifting it by OFFSET columns. This function does not support
12261227 virtual locations. */
1227−source_location
1228+location_t
12281229 linemap_position_for_loc_and_offset (struct line_maps *set,
1229− source_location loc,
1230+ location_t loc,
12301231 unsigned int offset);
12311232
12321233 /* Return the file this map is for. */
@@ -1258,16 +1259,16 @@ LINEMAP_SYSP (const line_map_ordinary *ord_map) · 25 unmodified lines
12581259 the same token as the token for POST, and a negative value
12591260 otherwise. */
12601261 int linemap_compare_locations (struct line_maps *set,
1261− source_location pre,
1262− source_location post);
1262+ location_t pre,
1263+ location_t post);
12631264
12641265 /* Return TRUE if LOC_A denotes the location a token that comes
12651266 topogically before the token denoted by location LOC_B, or if they
12661267 are equal. */
12671268 inline bool
12681269 linemap_location_before_p (struct line_maps *set,
1269− source_location loc_a,
1270− source_location loc_b)
1270+ location_t loc_a,
1271+ location_t loc_b)
12711272 {
12721273 return linemap_compare_locations (set, loc_a, loc_b) >= 0;
12731274 }
@@ -1288,23 +1289,50 @@ typedef struct · 14 unmodified lines
12881289 bool sysp;
12891290 } expanded_location;
12901291
1291−/* A location within a rich_location: a caret&range, with
1292− the caret potentially flagged for display. */
1292+class range_label;
12931293
1294−struct location_range
1295−{
1296− source_location m_loc;
1294+/* A hint to diagnostic_show_locus on how to print a source range within a
1295+ rich_location.
12971296
1298− /* Should a caret be drawn for this range? Typically this is
1299− true for the 0th range, and false for subsequent ranges,
1300− but the Fortran frontend overrides this for rendering things like:
1297+ Typically this is SHOW_RANGE_WITH_CARET for the 0th range, and
1298+ SHOW_RANGE_WITHOUT_CARET for subsequent ranges,
1299+ but the Fortran frontend uses SHOW_RANGE_WITH_CARET repeatedly for
1300+ printing things like:
13011301
13021302 x = x + y
13031303 1 2
13041304 Error: Shapes for operands at (1) and (2) are not conformable
13051305
1306− where "1" and "2" are notionally carets. */
1307− bool m_show_caret_p;
1306+ where "1" and "2" are notionally carets. */
1307+
1308+enum range_display_kind
1309+{
1310+ /* Show the pertinent source line(s), the caret, and underline(s). */
1311+ SHOW_RANGE_WITH_CARET,
1312+
1313+ /* Show the pertinent source line(s) and underline(s), but don't
1314+ show the caret (just an underline). */
1315+ SHOW_RANGE_WITHOUT_CARET,
1316+
1317+ /* Just show the source lines; don't show the range itself.
1318+ This is for use when displaying some line-insertion fix-it hints (for
1319+ showing the user context on the change, for when it doesn't make sense
1320+ to highlight the first column on the next line). */
1321+ SHOW_LINES_WITHOUT_RANGE
1322+};
1323+
1324+/* A location within a rich_location: a caret&range, with
1325+ the caret potentially flagged for display, and an optional
1326+ label. */
1327+
1328+struct location_range
1329+{
1330+ location_t m_loc;
1331+
1332+ enum range_display_kind m_range_display_kind;
1333+
1334+ /* If non-NULL, the label for this range. */
1335+ const range_label *m_label;
13081336 };
13091337
13101338 /* A partially-embedded vec for use within rich_location for storing
@@ -1446,6 +1474,8 @@ class fixit_hint; · 135 unmodified lines
14461474 Additional ranges may be added to help the user identify other
14471475 pertinent clauses in a diagnostic.
14481476
1477+ Ranges can (optionally) be given labels via class range_label.
1478+
14491479 rich_location instances are intended to be allocated on the stack
14501480 when generating diagnostics, and to be short-lived.
14511481
@@ -1491,18 +1521,22 @@ class fixit_hint; · 39 unmodified lines
14911521 equal to their caret point. The frontend overrides the diagnostic
14921522 context's default caret character for these ranges.
14931523
1494− Example E
1495− *********
1524+ Example E (range labels)
1525+ ************************
14961526 printf ("arg0: %i arg1: %s arg2: %i",
14971527 ^~
1528+ |
1529+ const char *
14981530 100, 101, 102);
14991531 ~~~
1532+ |
1533+ int
15001534 This rich location has two ranges:
15011535 - range 0 is at the "%s" with start = caret = "%" and finish at
1502− the "s".
1536+ the "s". It has a range_label ("const char *").
15031537 - range 1 has start/finish covering the "101" and is not flagged for
1504− caret printing; it is perhaps at the start of "101".
1505−
1538+ caret printing. The caret is at the start of "101", where its
1539+ range_label is printed ("int").
15061540
15071541 Fix-it hints
15081542 ------------
@@ -1562,9 +1596,21 @@ class fixit_hint; · 53 unmodified lines
15621596 added via
15631597 richloc.add_fixit_replace ("color");
15641598
1599+ Example J: fix-it hint: line insertion
1600+ **************************************
1601+
1602+ 3 | #include <stddef.h>
1603+ + |+#include <stdio.h>
1604+ 4 | int the_next_line;
1605+
1606+ This rich location has a single range at line 4 column 1, marked
1607+ with SHOW_LINES_WITHOUT_RANGE (to avoid printing a meaningless caret
1608+ on the "i" of int). It has a insertion fix-it hint of the string
1609+ "#include <stdio.h>\n".
1610+
15651611 Adding a fix-it hint can fail: for example, attempts to insert content
15661612 at the transition between two line maps may fail due to there being no
1567− source_location (aka location_t) value to express the new location.
1613+ location_t value to express the new location.
15681614
15691615 Attempts to add a fix-it hint within a macro expansion will fail.
15701616
@@ -1594,21 +1640,25 @@ class rich_location · 23 unmodified lines
15941640 /* Constructors. */
15951641
15961642 /* Constructing from a location. */
1597− rich_location (line_maps *set, source_location loc);
1643+ rich_location (line_maps *set, location_t loc,
1644+ const range_label *label = NULL);
15981645
15991646 /* Destructor. */
16001647 ~rich_location ();
16011648
16021649 /* Accessors. */
1603− source_location get_loc () const { return get_loc (0); }
1604− source_location get_loc (unsigned int idx) const;
1650+ location_t get_loc () const { return get_loc (0); }
1651+ location_t get_loc (unsigned int idx) const;
16051652
16061653 void
1607− add_range (source_location loc, bool show_caret_p);
1654+ add_range (location_t loc,
1655+ enum range_display_kind range_display_kind
1656+ = SHOW_RANGE_WITHOUT_CARET,
1657+ const range_label *label = NULL);
16081658
16091659 void
1610− set_range (line_maps *set, unsigned int idx, source_location loc,
1611− bool show_caret_p);
1660+ set_range (unsigned int idx, location_t loc,
1661+ enum range_display_kind range_display_kind);
16121662
16131663 unsigned int get_num_locations () const { return m_ranges.count (); }
16141664
@@ -1631,7 +1681,7 @@ class rich_location · 16 unmodified lines
16311681
16321682 /* Suggest inserting NEW_CONTENT immediately before the start of WHERE. */
16331683 void
1634− add_fixit_insert_before (source_location where,
1684+ add_fixit_insert_before (location_t where,
16351685 const char *new_content);
16361686
16371687 /* Suggest inserting NEW_CONTENT immediately after the end of the primary
@@ -1641,7 +1691,7 @@ class rich_location · 3 unmodified lines
16411691
16421692 /* Suggest inserting NEW_CONTENT immediately after the end of WHERE. */
16431693 void
1644− add_fixit_insert_after (source_location where,
1694+ add_fixit_insert_after (location_t where,
16451695 const char *new_content);
16461696
16471697 /* Methods for adding removal fix-it hints. */
@@ -1653,7 +1703,7 @@ class rich_location · 5 unmodified lines
16531703 /* Suggest removing the content covered between the start and finish
16541704 of WHERE. */
16551705 void
1656− add_fixit_remove (source_location where);
1706+ add_fixit_remove (location_t where);
16571707
16581708 /* Suggest removing the content covered by SRC_RANGE. */
16591709 void
@@ -1668,7 +1718,7 @@ class rich_location · 8 unmodified lines
16681718 /* Suggest replacing the content between the start and finish of
16691719 WHERE with NEW_CONTENT. */
16701720 void
1671− add_fixit_replace (source_location where,
1721+ add_fixit_replace (location_t where,
16721722 const char *new_content);
16731723
16741724 /* Suggest replacing the content covered by SRC_RANGE with
@@ -1704,10 +1754,10 @@ class rich_location · 29 unmodified lines
17041754 }
17051755
17061756 private:
1707− bool reject_impossible_fixit (source_location where);
1757+ bool reject_impossible_fixit (location_t where);
17081758 void stop_supporting_fixits ();
1709− void maybe_add_fixit (source_location start,
1710− source_location next_loc,
1759+ void maybe_add_fixit (location_t start,
1760+ location_t next_loc,
17111761 const char *new_content);
17121762
17131763 public:
@@ -1729,6 +1779,56 @@ protected: · 15 unmodified lines
17291779 bool m_fixits_cannot_be_auto_applied;
17301780 };
17311781
1782+/* A struct for the result of range_label::get_text: a NUL-terminated buffer
1783+ of localized text, and a flag to determine if the caller should "free" the
1784+ buffer. */
1785+
1786+struct label_text
1787+{
1788+ label_text ()
1789+ : m_buffer (NULL), m_caller_owned (false)
1790+ {}
1791+
1792+ label_text (char *buffer, bool caller_owned)
1793+ : m_buffer (buffer), m_caller_owned (caller_owned)
1794+ {}
1795+
1796+ void maybe_free ()
1797+ {
1798+ if (m_caller_owned)
1799+ free (m_buffer);
1800+ }
1801+
1802+ char *m_buffer;
1803+ bool m_caller_owned;
1804+};
1805+
1806+/* Abstract base class for labelling a range within a rich_location
1807+ (e.g. for labelling expressions with their type).
1808+
1809+ Generating the text could require non-trivial work, so this work
1810+ is delayed (via the "get_text" virtual function) until the diagnostic
1811+ printing code "knows" it needs it, thus avoiding doing it e.g. for
1812+ warnings that are filtered by command-line flags. This virtual
1813+ function also isolates libcpp and the diagnostics subsystem from
1814+ the front-end and middle-end-specific code for generating the text
1815+ for the labels.
1816+
1817+ Like the rich_location instances they annotate, range_label instances
1818+ are intended to be allocated on the stack when generating diagnostics,
1819+ and to be short-lived. */
1820+
1821+class range_label
1822+{
1823+ public:
1824+ virtual ~range_label () {}
1825+
1826+ /* Get localized text for the label.
1827+ The RANGE_IDX is provided, allowing for range_label instances to be
1828+ shared by multiple ranges if need be (the "flyweight" design pattern). */
1829+ virtual label_text get_text (unsigned range_idx) const = 0;
1830+};
1831+
17321832 /* A fix-it hint: a suggested insertion, replacement, or deletion of text.
17331833 We handle these three types of edit with one class, by representing
17341834 them as replacement of a half-open range:
@@ -1746,16 +1846,16 @@ protected: · 11 unmodified lines
17461846 class fixit_hint
17471847 {
17481848 public:
1749− fixit_hint (source_location start,
1750− source_location next_loc,
1849+ fixit_hint (location_t start,
1850+ location_t next_loc,
17511851 const char *new_content);
17521852 ~fixit_hint () { free (m_bytes); }
17531853
17541854 bool affects_line_p (const char *file, int line) const;
1755− source_location get_start_loc () const { return m_start; }
1756− source_location get_next_loc () const { return m_next_loc; }
1757− bool maybe_append (source_location start,
1758− source_location next_loc,
1855+ location_t get_start_loc () const { return m_start; }
1856+ location_t get_next_loc () const { return m_next_loc; }
1857+ bool maybe_append (location_t start,
1858+ location_t next_loc,
17591859 const char *new_content);
17601860
17611861 const char *get_string () const { return m_bytes; }
@@ -1770,8 +1870,8 @@ class fixit_hint · 8 unmodified lines
17701870 this is a half-open/half-closed range:
17711871 [start, next_loc)
17721872 so that we can support insertion via start == next_loc. */
1773− source_location m_start;
1774− source_location m_next_loc;
1873+ location_t m_start;
1874+ location_t m_next_loc;
17751875 char *m_bytes;
17761876 size_t m_len;
17771877 };
@@ -1835,10 +1935,10 @@ enum location_resolution_kind · 57 unmodified lines
18351935 resolves to a location reserved for the client code, like
18361936 UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */
18371937
1838−source_location linemap_resolve_location (struct line_maps *,
1839− source_location loc,
1840− enum location_resolution_kind lrk,
1841− const line_map_ordinary **loc_map);
1938+location_t linemap_resolve_location (struct line_maps *,
1939+ location_t loc,
1940+ enum location_resolution_kind lrk,
1941+ const line_map_ordinary **loc_map);
18421942
18431943 /* Suppose that LOC is the virtual location of a token coming from the
18441944 expansion of a macro M. This function then steps up to get the
@@ -1847,9 +1947,9 @@ source_location linemap_resolve_location (struct line_maps *, · 2 unmodified lines
18471947 the point where M' was expanded. LOC_MAP is an output parameter.
18481948 When non-NULL, *LOC_MAP is set to the map of the returned
18491949 location. */
1850−source_location linemap_unwind_toward_expansion (struct line_maps *,
1851− source_location loc,
1852− const struct line_map **loc_map);
1950+location_t linemap_unwind_toward_expansion (struct line_maps *,
1951+ location_t loc,
1952+ const struct line_map **loc_map);
18531953
18541954 /* If LOC is the virtual location of a token coming from the expansion
18551955 of a macro M and if its spelling location is reserved (e.g, a
@@ -1865,9 +1965,9 @@ source_location linemap_unwind_toward_expansion (struct line_maps *, · 9 unmodified lines
18651965
18661966 *MAP is set to the map of the returned location if the later is
18671967 different from LOC. */
1868−source_location linemap_unwind_to_first_non_reserved_loc (struct line_maps *,
1869− source_location loc,
1870− const struct line_map **map);
1968+location_t linemap_unwind_to_first_non_reserved_loc (struct line_maps *,
1969+ location_t loc,
1970+ const struct line_map **map);
18711971
18721972 /* Expand source code location LOC and return a user readable source
18731973 code location. LOC must be a spelling (non-virtual) location. If
@@ -1875,7 +1975,7 @@ source_location linemap_unwind_to_first_non_reserved_loc (struct line_maps *, · 1 unmodified line
18751975 location is returned. */
18761976 expanded_location linemap_expand_location (struct line_maps *,
18771977 const struct line_map *,
1878− source_location loc);
1978+ location_t loc);
18791979
18801980 /* Statistics about maps allocation and usage as returned by
18811981 linemap_get_statistics. */
@@ -1902,7 +2002,7 @@ struct linemap_stats · 20 unmodified lines
19022002 location emitted for that file. */
19032003 bool linemap_get_file_highest_location (struct line_maps * set,
19042004 const char *file_name,
1905− source_location *loc);
2005+ location_t *loc);
19062006
19072007 /* Compute and return statistics about the memory consumption of some
19082008 parts of the line table SET. */
@@ -1910,7 +2010,7 @@ void linemap_get_statistics (struct line_maps *, struct linemap_stats *); · 1 unmodified line
19102010
19112011 /* Dump debugging information about source location LOC into the file
19122012 stream STREAM. SET is the line map set LOC comes from. */
1913−void linemap_dump_location (struct line_maps *, source_location, FILE *);
2013+void linemap_dump_location (struct line_maps *, location_t, FILE *);
19142014
19152015 /* Dump line map at index IX in line table SET to STREAM. If STREAM
19162016 is NULL, use stderr. IS_MACRO is true if the caller wants to
@@ -1922,7 +2022,7 @@ void linemap_dump (FILE *, struct line_maps *, unsigned, bool); · 5 unmodified lines
19222022 specifies how many macro maps to dump. */
19232023 void line_table_dump (FILE *, struct line_maps *, unsigned int, unsigned int);
19242024
1925−/* An enum for distinguishing the various parts within a source_location. */
2025+/* An enum for distinguishing the various parts within a location_t. */
19262026
19272027 enum location_aspect
19282028 {
@@ -1931,14 +2031,14 @@ enum location_aspect · 2 unmodified lines
19312031 LOCATION_ASPECT_FINISH
19322032 };
19332033
1934−/* The rich_location class requires a way to expand source_location instances.
2034+/* The rich_location class requires a way to expand location_t instances.
19352035 We would directly use expand_location_to_spelling_point, which is
19362036 implemented in gcc/input.c, but we also need to use it for rich_location
19372037 within genmatch.c.
19382038 Hence we require client code of libcpp to implement the following
19392039 symbol. */
19402040 extern expanded_location
1941−linemap_client_expand_location_to_spelling_point (source_location,
2041+linemap_client_expand_location_to_spelling_point (location_t,
19422042 enum location_aspect);
19432043
19442044 #endif /* !LIBCPP_LINE_MAP_H */
gcc/libcpp/include/mkdeps.h+1−1
@@ -1,5 +1,5 @@
11 /* Dependency generator for Makefile fragments.
2− Copyright (C) 2000-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
33 Contributed by Zack Weinberg, Mar 2000
44
55 This program is free software; you can redistribute it and/or modify it
gcc/libcpp/include/symtab.h+1−1
@@ -1,5 +1,5 @@
11 /* Hash tables.
2− Copyright (C) 2000-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
gcc/libcpp/init.c+9−5
@@ -1,5 +1,5 @@
11 /* CPP Library.
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Contributed by Per Bothner, 1994-95.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -100,11 +100,13 @@ static const struct lang_flags lang_defaults[] = · 94 unmodified lines
100100 /* GNUC99 */ { 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 },
101101 /* GNUC11 */ { 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 },
102102 /* GNUC17 */ { 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 },
103+ /* GNUC2X */ { 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 },
103104 /* STDC89 */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 },
104105 /* STDC94 */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
105106 /* STDC99 */ { 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
106107 /* STDC11 */ { 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0 },
107108 /* STDC17 */ { 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0 },
109+ /* STDC2X */ { 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0 },
108110 /* GNUCXX */ { 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 },
109111 /* CXX98 */ { 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 },
110112 /* GNUCXX11 */ { 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1 },
@@ -262,7 +264,7 @@ cpp_create_reader (enum c_lang lang, cpp_hash_table *table, · 151 unmodified lines
262264 pfile->pushed_macros = 0;
263265
264266 /* Do not force token locations by default. */
265− pfile->forced_token_location_p = NULL;
267+ pfile->forced_token_location = 0;
266268
267269 /* Initialize source_date_epoch to -2 (not yet set). */
268270 pfile->source_date_epoch = (time_t) -2;
@@ -480,8 +482,7 @@ cpp_init_special_builtins (cpp_reader *pfile) · 211 unmodified lines
480482 || pfile->cb.has_attribute == NULL))
481483 continue;
482484 cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
483− hp->type = NT_MACRO;
484− hp->flags |= NODE_BUILTIN;
485+ hp->type = NT_BUILTIN_MACRO;
485486 if (b->always_warn_if_redefined)
486487 hp->flags |= NODE_WARN;
487488 hp->value.builtin = (enum cpp_builtin_type) b->value;
@@ -522,6 +523,9 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) · 34 unmodified lines
522523 _cpp_define_builtin (pfile, "__ASSEMBLER__ 1");
523524 else if (CPP_OPTION (pfile, lang) == CLK_STDC94)
524525 _cpp_define_builtin (pfile, "__STDC_VERSION__ 199409L");
526+ else if (CPP_OPTION (pfile, lang) == CLK_STDC2X
527+ || CPP_OPTION (pfile, lang) == CLK_GNUC2X)
528+ _cpp_define_builtin (pfile, "__STDC_VERSION__ 202000L");
525529 else if (CPP_OPTION (pfile, lang) == CLK_STDC17
526530 || CPP_OPTION (pfile, lang) == CLK_GNUC17)
527531 _cpp_define_builtin (pfile, "__STDC_VERSION__ 201710L");
@@ -629,7 +633,7 @@ cpp_post_options (cpp_reader *pfile) · 101 unmodified lines
629633 const char *
630634 cpp_read_main_file (cpp_reader *pfile, const char *fname)
631635 {
632− const source_location loc = 0;
636+ const location_t loc = 0;
633637
634638 if (CPP_OPTION (pfile, deps.style) != DEPS_NONE)
635639 {
gcc/libcpp/internal.h+51−28
@@ -1,5 +1,5 @@
11 /* Part of CPP library.
2− Copyright (C) 1997-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1997-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
@@ -23,7 +23,7 @@ along with this program; see the file COPYING3. If not see · 17 unmodified lines
2323 #define LIBCPP_INTERNAL_H
2424
2525 #include "symtab.h"
26−#include "cpp-id-data.h"
26+#include "cpplib.h"
2727
2828 #if HAVE_ICONV
2929 #include <iconv.h>
@@ -93,9 +93,8 @@ struct dummy · 63 unmodified lines
9393 #define CPP_ALIGN2(size, align) (((size) + ((align) - 1)) & ~((align) - 1))
9494 #define CPP_ALIGN(size) CPP_ALIGN2 (size, DEFAULT_ALIGNMENT)
9595
96−#define _cpp_mark_macro_used(NODE) do { \
97− if ((NODE)->type == NT_MACRO && !((NODE)->flags & NODE_BUILTIN)) \
98− (NODE)->value.macro->used = 1; } while (0)
96+#define _cpp_mark_macro_used(NODE) \
97+ (cpp_user_macro_p (NODE) ? (NODE)->value.macro->used = 1 : 0)
9998
10099 /* A generic memory buffer, and operations on it. */
101100 typedef struct _cpp_buff _cpp_buff;
@@ -151,11 +150,11 @@ typedef struct · 49 unmodified lines
151150 location at index 0 is the virtual location of the token at index
152151 0 in the current instance of cpp_context; similarly for all the
153152 other virtual locations. */
154− source_location *virt_locs;
153+ location_t *virt_locs;
155154 /* This is a pointer to the current virtual location. This is used
156155 to iterate over the virtual locations while we iterate over the
157156 tokens they belong to. */
158− source_location *cur_virt_loc;
157+ location_t *cur_virt_loc;
159158 } macro_context;
160159
161160 /* The kind of tokens carried by a cpp_context. */
@@ -373,7 +372,7 @@ struct def_pragma_macro { · 211 unmodified lines
373372 unsigned char *definition;
374373
375374 /* Definition line number. */
376− source_location line;
375+ location_t line;
377376 /* If macro defined in system header. */
378377 unsigned int syshdr : 1;
379378 /* Nonzero if it has been expanded or had its existence tested. */
@@ -401,7 +400,7 @@ struct cpp_reader · 21 unmodified lines
401400 struct line_maps *line_table;
402401
403402 /* The line of the '#' of the current directive. */
404− source_location directive_line;
403+ location_t directive_line;
405404
406405 /* Memory buffers. */
407406 _cpp_buff *a_buff; /* Aligned permanent storage. */
@@ -420,7 +419,7 @@ struct cpp_reader · 12 unmodified lines
420419
421420 /* When expanding a macro at top-level, this is the location of the
422421 macro invocation. */
423− source_location invocation_location;
422+ location_t invocation_location;
424423
425424 /* This is the node representing the macro being expanded at
426425 top-level. The value of this data member is valid iff
@@ -552,7 +551,7 @@ struct cpp_reader · 125 unmodified lines
552551 unsigned char *base;
553552 unsigned char *limit;
554553 unsigned char *cur;
555− source_location first_line;
554+ location_t first_line;
556555 } out;
557556
558557 /* Used for buffer overlays by traditional.c. */
@@ -571,9 +570,9 @@ struct cpp_reader · 12 unmodified lines
571570 /* List of saved macros by push_macro. */
572571 struct def_pragma_macro *pushed_macros;
573572
574− /* If non-null, the lexer will use this location for the next token
573+ /* If non-zero, the lexer will use this location for the next token
575574 instead of getting a location from the linemap. */
576− source_location *forced_token_location_p;
575+ location_t forced_token_location;
577576 };
578577
579578 /* Character classes. Based on the more primitive macros in safe-ctype.h.
@@ -594,6 +593,8 @@ struct cpp_reader · 14 unmodified lines
594593 #define is_nvspace(x) IS_NVSPACE(x)
595594 #define is_space(x) IS_SPACE_OR_NUL(x)
596595
596+#define SEEN_EOL() (pfile->cur_token[-1].type == CPP_EOF)
597+
597598 /* This table is constant if it can be initialized at compile time,
598599 which is the case if cpp was compiled with GCC >=2.7, or another
599600 compiler that supports C99. */
@@ -603,6 +604,12 @@ extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1]; · 3 unmodified lines
603604 extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
604605 #endif
605606
607+#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
608+typedef unsigned char uchar;
609+#endif
610+
611+#define UC (const uchar *) /* Intended use: UC"string" */
612+
606613 /* Macros. */
607614
608615 static inline int cpp_in_system_header (cpp_reader *);
@@ -622,18 +629,26 @@ cpp_in_primary_file (cpp_reader *pfile) · 13 unmodified lines
622629 }
623630
624631 /* In macro.c */
632+extern void _cpp_notify_macro_use (cpp_reader *pfile, cpp_hashnode *node);
633+inline void _cpp_maybe_notify_macro_use (cpp_reader *pfile, cpp_hashnode *node)
634+{
635+ if (!(node->flags & NODE_USED))
636+ _cpp_notify_macro_use (pfile, node);
637+}
638+extern cpp_macro *_cpp_new_macro (cpp_reader *, cpp_macro_kind, void *);
625639 extern void _cpp_free_definition (cpp_hashnode *);
626640 extern bool _cpp_create_definition (cpp_reader *, cpp_hashnode *);
627641 extern void _cpp_pop_context (cpp_reader *);
628642 extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *,
629643 const unsigned char *, size_t);
630−extern bool _cpp_save_parameter (cpp_reader *, cpp_macro *, cpp_hashnode *,
644+extern bool _cpp_save_parameter (cpp_reader *, unsigned, cpp_hashnode *,
631645 cpp_hashnode *);
646+extern void _cpp_unsave_parameters (cpp_reader *, unsigned);
632647 extern bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *,
633648 unsigned int);
634649 extern const unsigned char *_cpp_builtin_macro_text (cpp_reader *,
635650 cpp_hashnode *,
636− source_location = 0);
651+ location_t = 0);
637652 extern int _cpp_warn_if_unused_macro (cpp_reader *, cpp_hashnode *, void *);
638653 extern void _cpp_push_token_context (cpp_reader *, cpp_hashnode *,
639654 const cpp_token *, unsigned int);
@@ -646,14 +661,14 @@ extern void _cpp_destroy_hashtable (cpp_reader *); · 6 unmodified lines
646661 /* In files.c */
647662 typedef struct _cpp_file _cpp_file;
648663 extern _cpp_file *_cpp_find_file (cpp_reader *, const char *, cpp_dir *,
649− bool, int, bool, source_location);
664+ bool, int, bool, location_t);
650665 extern bool _cpp_find_failed (_cpp_file *);
651666 extern void _cpp_mark_file_once_only (cpp_reader *, struct _cpp_file *);
652667 extern void _cpp_fake_include (cpp_reader *, const char *);
653668 extern bool _cpp_stack_file (cpp_reader *, _cpp_file*, bool,
654− source_location);
669+ location_t);
655670 extern bool _cpp_stack_include (cpp_reader *, const char *, int,
656− enum include_type, source_location);
671+ enum include_type, location_t);
657672 extern int _cpp_compare_file_date (cpp_reader *, const char *, int);
658673 extern void _cpp_report_missing_guards (cpp_reader *);
659674 extern void _cpp_init_files (cpp_reader *);
@@ -685,6 +700,14 @@ extern void _cpp_init_tokenrun (tokenrun *, unsigned int); · 25 unmodified lines
685700 extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
686701 extern int _cpp_remaining_tokens_num_in_context (cpp_context *);
687702 extern void _cpp_init_lexer (void);
703+static inline void *_cpp_reserve_room (cpp_reader *pfile, size_t have,
704+ size_t extra)
705+{
706+ if (BUFF_ROOM (pfile->a_buff) < (have + extra))
707+ _cpp_extend_buff (pfile, &pfile->a_buff, extra);
708+ return BUFF_FRONT (pfile->a_buff);
709+}
710+extern void *_cpp_commit_buff (cpp_reader *pfile, size_t size);
688711
689712 /* In init.c. */
690713 extern void _cpp_maybe_push_include_file (cpp_reader *);
@@ -696,7 +719,7 @@ extern int _cpp_handle_directive (cpp_reader *, int); · 5 unmodified lines
696719 extern void _cpp_define_builtin (cpp_reader *, const char *);
697720 extern char ** _cpp_save_pragma_names (cpp_reader *);
698721 extern void _cpp_restore_pragma_names (cpp_reader *, char **);
699−extern int _cpp_do__Pragma (cpp_reader *, source_location);
722+extern int _cpp_do__Pragma (cpp_reader *, location_t);
700723 extern void _cpp_init_directives (cpp_reader *);
701724 extern void _cpp_init_internal_pragmas (cpp_reader *);
702725 extern void _cpp_do_file_change (cpp_reader *, enum lc_reason, const char *,
@@ -709,7 +732,7 @@ struct _cpp_dir_only_callbacks · 6 unmodified lines
709732 {
710733 /* Called to print a block of lines. */
711734 void (*print_lines) (int, const void *, size_t);
712− bool (*maybe_print_line) (source_location);
735+ bool (*maybe_print_line) (location_t);
713736 };
714737
715738 extern void _cpp_preprocess_dir_only (cpp_reader *,
@@ -721,7 +744,7 @@ extern bool _cpp_read_logical_line_trad (cpp_reader *); · 5 unmodified lines
721744 extern void _cpp_overlay_buffer (cpp_reader *pfile, const unsigned char *,
722745 size_t);
723746 extern void _cpp_remove_overlay (cpp_reader *);
724−extern bool _cpp_create_trad_definition (cpp_reader *, cpp_macro *);
747+extern cpp_macro *_cpp_create_trad_definition (cpp_reader *);
725748 extern bool _cpp_expansions_different_trad (const cpp_macro *,
726749 const cpp_macro *);
727750 extern unsigned char *_cpp_copy_replacement_text (const cpp_macro *,
@@ -846,7 +869,7 @@ ufputs (const unsigned char *s, FILE *f) · 118 unmodified lines
846869 the replacement-list of MACRO. */
847870 const line_map_macro *linemap_enter_macro (struct line_maps *,
848871 struct cpp_hashnode*,
849− source_location,
872+ location_t,
850873 unsigned int);
851874
852875 /* Create and return a virtual location for a token that is part of a
@@ -871,10 +894,10 @@ const line_map_macro *linemap_enter_macro (struct line_maps *, · 18 unmodified lines
871894 MACRO_DEFINITION_LOC is the location in the macro definition,
872895 either of the token itself or of a macro parameter that it
873896 replaces. */
874−source_location linemap_add_macro_token (const line_map_macro *,
875− unsigned int,
876− source_location,
877− source_location);
897+location_t linemap_add_macro_token (const line_map_macro *,
898+ unsigned int,
899+ location_t,
900+ location_t);
878901
879902 /* Return the source line number corresponding to source location
880903 LOCATION. SET is the line map set LOCATION comes from. If
@@ -882,7 +905,7 @@ source_location linemap_add_macro_token (const line_map_macro *, · 1 unmodified line
882905 expansion-list of a macro expansion return the line number of the
883906 macro expansion point. */
884907 int linemap_get_expansion_line (struct line_maps *,
885− source_location);
908+ location_t);
886909
887910 /* Return the path of the file corresponding to source code location
888911 LOCATION.
@@ -893,7 +916,7 @@ int linemap_get_expansion_line (struct line_maps *, · 4 unmodified lines
893916
894917 SET is the line map set LOCATION comes from. */
895918 const char* linemap_get_expansion_filename (struct line_maps *,
896− source_location);
919+ location_t);
897920
898921 #ifdef __cplusplus
899922 }
gcc/libcpp/lex.c+44−24
@@ -1,5 +1,5 @@
11 /* CPP Library - lexical analysis.
2− Copyright (C) 2000-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
33 Contributed by Per Bothner, 1994-95.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -1232,7 +1232,7 @@ static int · 1226 unmodified lines
12321232 skip_line_comment (cpp_reader *pfile)
12331233 {
12341234 cpp_buffer *buffer = pfile->buffer;
1235− source_location orig_line = pfile->line_table->highest_line;
1235+ location_t orig_line = pfile->line_table->highest_line;
12361236
12371237 while (*buffer->cur != '\n')
12381238 buffer->cur++;
@@ -1627,7 +1627,7 @@ is_macro(cpp_reader *pfile, const uchar *base) · 388 unmodified lines
16271627 cpp_hashnode *result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
16281628 base, cur - base, hash, HT_NO_INSERT));
16291629
1630− return !result ? false : (result->type == NT_MACRO);
1630+ return result && cpp_macro_p (result);
16311631 }
16321632
16331633 /* Returns true if a literal suffix does not have the expected form
@@ -1894,7 +1894,7 @@ lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base, · 260 unmodified lines
18941894 _cpp_process_line_notes (pfile, false);
18951895 if (!_cpp_get_fresh_line (pfile))
18961896 {
1897− source_location src_loc = token->src_loc;
1897+ location_t src_loc = token->src_loc;
18981898 token->type = CPP_EOF;
18991899 /* Tell the compiler the line number of the EOF token. */
19001900 token->src_loc = pfile->line_table->highest_line;
@@ -2757,8 +2757,8 @@ _cpp_lex_direct (cpp_reader *pfile) · 856 unmodified lines
27572757 }
27582758 c = *buffer->cur++;
27592759
2760− if (pfile->forced_token_location_p)
2761− result->src_loc = *pfile->forced_token_location_p;
2760+ if (pfile->forced_token_location)
2761+ result->src_loc = pfile->forced_token_location;
27622762 else
27632763 result->src_loc = linemap_position_for_column (pfile->line_table,
27642764 CPP_BUF_COLUMN (buffer, buffer->cur));
@@ -2872,10 +2872,10 @@ _cpp_lex_direct (cpp_reader *pfile) · 107 unmodified lines
28722872 && CPP_PEDANTIC (pfile)
28732873 && ! buffer->warned_cplusplus_comments)
28742874 {
2875− cpp_error (pfile, CPP_DL_PEDWARN,
2876− "C++ style comments are not allowed in ISO C90");
2877− cpp_error (pfile, CPP_DL_PEDWARN,
2878− "(this will be reported only once per input file)");
2875+ if (cpp_error (pfile, CPP_DL_PEDWARN,
2876+ "C++ style comments are not allowed in ISO C90"))
2877+ cpp_error (pfile, CPP_DL_NOTE,
2878+ "(this will be reported only once per input file)");
28792879 buffer->warned_cplusplus_comments = 1;
28802880 }
28812881 /* Or if specifically desired via -Wc90-c99-compat. */
@@ -2883,10 +2883,10 @@ _cpp_lex_direct (cpp_reader *pfile) · 1 unmodified line
28832883 && ! CPP_OPTION (pfile, cplusplus)
28842884 && ! buffer->warned_cplusplus_comments)
28852885 {
2886− cpp_error (pfile, CPP_DL_WARNING,
2887− "C++ style comments are incompatible with C90");
2888− cpp_error (pfile, CPP_DL_WARNING,
2889− "(this will be reported only once per input file)");
2886+ if (cpp_error (pfile, CPP_DL_WARNING,
2887+ "C++ style comments are incompatible with C90"))
2888+ cpp_error (pfile, CPP_DL_NOTE,
2889+ "(this will be reported only once per input file)");
28902890 buffer->warned_cplusplus_comments = 1;
28912891 }
28922892 /* In C89/C94, C++ style comments are forbidden. */
@@ -2906,11 +2906,12 @@ _cpp_lex_direct (cpp_reader *pfile) · 13 unmodified lines
29062906 }
29072907 else if (! buffer->warned_cplusplus_comments)
29082908 {
2909− cpp_error (pfile, CPP_DL_ERROR,
2910− "C++ style comments are not allowed in ISO C90");
2911− cpp_error (pfile, CPP_DL_ERROR,
2912− "(this will be reported only once per input "
2913− "file)");
2909+ if (cpp_error (pfile, CPP_DL_ERROR,
2910+ "C++ style comments are not allowed in "
2911+ "ISO C90"))
2912+ cpp_error (pfile, CPP_DL_NOTE,
2913+ "(this will be reported only once per input "
2914+ "file)");
29142915 buffer->warned_cplusplus_comments = 1;
29152916 }
29162917 }
@@ -3724,6 +3725,25 @@ _cpp_aligned_alloc (cpp_reader *pfile, size_t len) · 807 unmodified lines
37243725 return result;
37253726 }
37263727
3728+/* Commit or allocate storage from a buffer. */
3729+
3730+void *
3731+_cpp_commit_buff (cpp_reader *pfile, size_t size)
3732+{
3733+ void *ptr = BUFF_FRONT (pfile->a_buff);
3734+
3735+ if (pfile->hash_table->alloc_subobject)
3736+ {
3737+ void *copy = pfile->hash_table->alloc_subobject (size);
3738+ memcpy (copy, ptr, size);
3739+ ptr = copy;
3740+ }
3741+ else
3742+ BUFF_FRONT (pfile->a_buff) += size;
3743+
3744+ return ptr;
3745+}
3746+
37273747 /* Say which field of TOK is in use. */
37283748
37293749 enum cpp_token_fld_kind
@@ -3753,14 +3773,14 @@ cpp_token_val_index (const cpp_token *tok) · 23 unmodified lines
37533773 }
37543774 }
37553775
3756−/* All tokens lexed in R after calling this function will be forced to have
3757− their source_location the same as the location referenced by P, until
3776+/* All tokens lexed in R after calling this function will be forced to
3777+ have their location_t to be P, until
37583778 cpp_stop_forcing_token_locations is called for R. */
37593779
37603780 void
3761−cpp_force_token_locations (cpp_reader *r, source_location *p)
3781+cpp_force_token_locations (cpp_reader *r, location_t loc)
37623782 {
3763− r->forced_token_location_p = p;
3783+ r->forced_token_location = loc;
37643784 }
37653785
37663786 /* Go back to assigning locations naturally for lexed tokens. */
@@ -3768,5 +3788,5 @@ cpp_force_token_locations (cpp_reader *r, source_location *p) · 1 unmodified line
37683788 void
37693789 cpp_stop_forcing_token_locations (cpp_reader *r)
37703790 {
3771− r->forced_token_location_p = NULL;
3791+ r->forced_token_location = 0;
37723792 }
gcc/libcpp/line-map.c+293−305
@@ -1,5 +1,5 @@
11 /* Map (unsigned int) keys to (source file, line, column) triples.
2− Copyright (C) 2001-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2001-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
@@ -26,27 +26,23 @@ along with this program; see the file COPYING3. If not see · 20 unmodified lines
2626 #include "internal.h"
2727 #include "hashtab.h"
2828
29−/* Highest possible source location encoded within an ordinary or
30− macro map. */
31−const source_location LINE_MAP_MAX_SOURCE_LOCATION = 0x70000000;
32−
3329 static void trace_include (const struct line_maps *, const line_map_ordinary *);
3430 static const line_map_ordinary * linemap_ordinary_map_lookup (struct line_maps *,
35− source_location);
31+ location_t);
3632 static const line_map_macro* linemap_macro_map_lookup (struct line_maps *,
37− source_location);
38−static source_location linemap_macro_map_loc_to_def_point
39−(const line_map_macro *, source_location);
40−static source_location linemap_macro_map_loc_to_exp_point
41−(const line_map_macro *, source_location);
42−static source_location linemap_macro_loc_to_spelling_point
43−(struct line_maps *, source_location, const line_map_ordinary **);
44−static source_location linemap_macro_loc_to_def_point (struct line_maps *,
45− source_location,
46− const line_map_ordinary **);
47−static source_location linemap_macro_loc_to_exp_point (struct line_maps *,
48− source_location,
49− const line_map_ordinary **);
33+ location_t);
34+static location_t linemap_macro_map_loc_to_def_point
35+(const line_map_macro *, location_t);
36+static location_t linemap_macro_map_loc_to_exp_point
37+(const line_map_macro *, location_t);
38+static location_t linemap_macro_loc_to_spelling_point
39+(struct line_maps *, location_t, const line_map_ordinary **);
40+static location_t linemap_macro_loc_to_def_point (line_maps *,
41+ location_t,
42+ const line_map_ordinary **);
43+static location_t linemap_macro_loc_to_exp_point (line_maps *,
44+ location_t,
45+ const line_map_ordinary **);
5046
5147 /* Counters defined in macro.c. */
5248 extern unsigned num_expanded_macros_counter;
@@ -114,16 +110,16 @@ rebuild_location_adhoc_htab (struct line_maps *set) · 61 unmodified lines
114110
115111 /* Helper function for get_combined_adhoc_loc.
116112 Can the given LOCUS + SRC_RANGE and DATA pointer be stored compactly
117− within a source_location, without needing to use an ad-hoc location. */
113+ within a location_t, without needing to use an ad-hoc location. */
118114
119115 static bool
120116 can_be_stored_compactly_p (struct line_maps *set,
121− source_location locus,
117+ location_t locus,
122118 source_range src_range,
123119 void *data)
124120 {
125121 /* If there's an ad-hoc pointer, we can't store it directly in the
126− source_location, we need the lookaside. */
122+ location_t, we need the lookaside. */
127123 if (data)
128124 return false;
129125
@@ -143,7 +139,7 @@ can_be_stored_compactly_p (struct line_maps *set, · 13 unmodified lines
143139
144140 /* All 3 locations must be within ordinary maps, typically, the same
145141 ordinary map. */
146− source_location lowest_macro_loc = LINEMAPS_MACRO_LOWEST_LOCATION (set);
142+ location_t lowest_macro_loc = LINEMAPS_MACRO_LOWEST_LOCATION (set);
147143 if (locus >= lowest_macro_loc)
148144 return false;
149145 if (src_range.m_start >= lowest_macro_loc)
@@ -157,9 +153,9 @@ can_be_stored_compactly_p (struct line_maps *set, · 7 unmodified lines
157153
158154 /* Combine LOCUS and DATA to a combined adhoc loc. */
159155
160−source_location
156+location_t
161157 get_combined_adhoc_loc (struct line_maps *set,
162− source_location locus,
158+ location_t locus,
163159 source_range src_range,
164160 void *data)
165161 {
@@ -168,7 +164,7 @@ get_combined_adhoc_loc (struct line_maps *set, · 2 unmodified lines
168164
169165 if (IS_ADHOC_LOC (locus))
170166 locus
171− = set->location_adhoc_data_map.data[locus & MAX_SOURCE_LOCATION].locus;
167+ = set->location_adhoc_data_map.data[locus & MAX_LOCATION_T].locus;
172168 if (locus == 0 && data == NULL)
173169 return 0;
174170
@@ -190,7 +186,7 @@ get_combined_adhoc_loc (struct line_maps *set, · 15 unmodified lines
190186 unsigned int col_diff = (int_diff >> ordmap->m_range_bits);
191187 if (col_diff < (1U << ordmap->m_range_bits))
192188 {
193− source_location packed = locus | col_diff;
189+ location_t packed = locus | col_diff;
194190 set->num_optimized_ranges++;
195191 return packed;
196192 }
@@ -247,28 +243,28 @@ get_combined_adhoc_loc (struct line_maps *set, · 50 unmodified lines
247243 /* Return the data for the adhoc loc. */
248244
249245 void *
250−get_data_from_adhoc_loc (struct line_maps *set, source_location loc)
246+get_data_from_adhoc_loc (struct line_maps *set, location_t loc)
251247 {
252248 linemap_assert (IS_ADHOC_LOC (loc));
253− return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
249+ return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].data;
254250 }
255251
256252 /* Return the location for the adhoc loc. */
257253
258−source_location
259−get_location_from_adhoc_loc (struct line_maps *set, source_location loc)
254+location_t
255+get_location_from_adhoc_loc (struct line_maps *set, location_t loc)
260256 {
261257 linemap_assert (IS_ADHOC_LOC (loc));
262− return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
258+ return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
263259 }
264260
265261 /* Return the source_range for adhoc location LOC. */
266262
267263 static source_range
268−get_range_from_adhoc_loc (struct line_maps *set, source_location loc)
264+get_range_from_adhoc_loc (struct line_maps *set, location_t loc)
269265 {
270266 linemap_assert (IS_ADHOC_LOC (loc));
271− return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].src_range;
267+ return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].src_range;
272268 }
273269
274270 /* Get the source_range of location LOC, either from the ad-hoc
@@ -276,7 +272,7 @@ get_range_from_adhoc_loc (struct line_maps *set, source_location loc) · 1 unmodified line
276272
277273 source_range
278274 get_range_from_loc (struct line_maps *set,
279− source_location loc)
275+ location_t loc)
280276 {
281277 if (IS_ADHOC_LOC (loc))
282278 return get_range_from_adhoc_loc (set, loc);
@@ -302,12 +298,14 @@ get_range_from_loc (struct line_maps *set, · 19 unmodified lines
302298 whether it is an ad-hoc location, or embeds range information. */
303299
304300 bool
305−pure_location_p (line_maps *set, source_location loc)
301+pure_location_p (line_maps *set, location_t loc)
306302 {
307303 if (IS_ADHOC_LOC (loc))
308304 return false;
309305
310306 const line_map *map = linemap_lookup (set, loc);
307+ if (map == NULL)
308+ return true;
311309 const line_map_ordinary *ordmap = linemap_check_ordinary (map);
312310
313311 if (loc & ((1U << ordmap->m_range_bits) - 1))
@@ -319,12 +317,12 @@ pure_location_p (line_maps *set, source_location loc) · 5 unmodified lines
319317 /* Given location LOC within SET, strip away any packed range information
320318 or ad-hoc information. */
321319
322−source_location
323−get_pure_location (line_maps *set, source_location loc)
320+location_t
321+get_pure_location (line_maps *set, location_t loc)
324322 {
325323 if (IS_ADHOC_LOC (loc))
326324 loc
327− = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
325+ = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
328326
329327 if (loc >= LINEMAPS_MACRO_LOWEST_LOCATION (set))
330328 return loc;
@@ -342,14 +340,16 @@ get_pure_location (line_maps *set, source_location loc) · 11 unmodified lines
342340
343341 void
344342 linemap_init (struct line_maps *set,
345− source_location builtin_location)
343+ location_t builtin_location)
346344 {
347345 #if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && !defined (__clang__)
348346 /* PR33916, needed to fix PR82939. */
349347 memset (set, 0, sizeof (struct line_maps));
350348 #else
351− *set = line_maps ();
349+ new (set) line_maps();
352350 #endif
351+ /* Set default reallocator (used for initial alloc too). */
352+ set->reallocator = xrealloc;
353353 set->highest_location = RESERVED_LOCATION_COUNT - 1;
354354 set->highest_line = RESERVED_LOCATION_COUNT - 1;
355355 set->location_adhoc_data_map.htab =
@@ -357,17 +357,25 @@ linemap_init (struct line_maps *set, · 1 unmodified line
357357 set->builtin_location = builtin_location;
358358 }
359359
360+/* Return the ordinary line map from whence MAP was included. Returns
361+ NULL if MAP was not an include. */
362+
363+const line_map_ordinary *
364+linemap_included_from_linemap (line_maps *set, const line_map_ordinary *map)
365+{
366+ return linemap_ordinary_map_lookup (set, linemap_included_from (map));
367+}
368+
360369 /* Check for and warn about line_maps entered but not exited. */
361370
362371 void
363372 linemap_check_files_exited (struct line_maps *set)
364373 {
365− const line_map_ordinary *map;
366374 /* Depending upon whether we are handling preprocessed input or
367375 not, this can be a user error or an ICE. */
368− for (map = LINEMAPS_LAST_ORDINARY_MAP (set);
376+ for (const line_map_ordinary *map = LINEMAPS_LAST_ORDINARY_MAP (set);
369377 ! MAIN_FILE_P (map);
370− map = INCLUDED_FROM (set, map))
378+ map = linemap_included_from_linemap (set, map))
371379 fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n",
372380 ORDINARY_MAP_FILE_NAME (map));
373381 }
@@ -378,86 +386,62 @@ linemap_check_files_exited (struct line_maps *set) · 4 unmodified lines
378386 macro maps are allocated in different memory location. */
379387
380388 static struct line_map *
381−new_linemap (struct line_maps *set,
382− enum lc_reason reason)
389+new_linemap (struct line_maps *set, location_t start_location)
383390 {
384− /* Depending on this variable, a macro map would be allocated in a
385− different memory location than an ordinary map. */
386− bool macro_map_p = (reason == LC_ENTER_MACRO);
387− struct line_map *result;
391+ bool macro_p = start_location >= LINE_MAP_MAX_LOCATION;
392+ unsigned num_maps_allocated = LINEMAPS_ALLOCATED (set, macro_p);
393+ unsigned num_maps_used = LINEMAPS_USED (set, macro_p);
388394
389− if (LINEMAPS_USED (set, macro_map_p) == LINEMAPS_ALLOCATED (set, macro_map_p))
395+ if (num_maps_used == num_maps_allocated)
390396 {
391− /* We ran out of allocated line maps. Let's allocate more. */
392− size_t alloc_size;
393−
394− /* Cast away extern "C" from the type of xrealloc. */
395− line_map_realloc reallocator = (set->reallocator
396− ? set->reallocator
397− : (line_map_realloc) xrealloc);
398− line_map_round_alloc_size_func round_alloc_size =
399− set->round_alloc_size;
400−
401− size_t map_size = (macro_map_p
402− ? sizeof (line_map_macro)
403− : sizeof (line_map_ordinary));
397+ /* We need more space! */
398+ if (!num_maps_allocated)
399+ num_maps_allocated = 128;
400+ num_maps_allocated *= 2;
401+
402+ size_t size_of_a_map;
403+ void *buffer;
404+ if (macro_p)
405+ {
406+ size_of_a_map = sizeof (line_map_macro);
407+ buffer = set->info_macro.maps;
408+ }
409+ else
410+ {
411+ size_of_a_map = sizeof (line_map_ordinary);
412+ buffer = set->info_ordinary.maps;
413+ }
404414
405415 /* We are going to execute some dance to try to reduce the
406416 overhead of the memory allocator, in case we are using the
407417 ggc-page.c one.
408418
409419 The actual size of memory we are going to get back from the
410− allocator is the smallest power of 2 that is greater than the
411− size we requested. So let's consider that size then. */
412−
413− alloc_size =
414− (2 * LINEMAPS_ALLOCATED (set, macro_map_p) + 256)
415− * map_size;
416−
417− /* Get the actual size of memory that is going to be allocated
418− by the allocator. */
419− alloc_size = round_alloc_size (alloc_size);
420+ allocator may well be larger than what we ask for. Use this
421+ hook to find what that size is. */
422+ size_t alloc_size
423+ = set->round_alloc_size (num_maps_allocated * size_of_a_map);
420424
421425 /* Now alloc_size contains the exact memory size we would get if
422426 we have asked for the initial alloc_size amount of memory.
423− Let's get back to the number of macro map that amounts
424− to. */
425− LINEMAPS_ALLOCATED (set, macro_map_p) =
426− alloc_size / map_size;
427−
428− /* And now let's really do the re-allocation. */
429− if (macro_map_p)
430− {
431− set->info_macro.maps
432− = (line_map_macro *) (*reallocator) (set->info_macro.maps,
433− (LINEMAPS_ALLOCATED (set, macro_map_p)
434− * map_size));
435− result = &set->info_macro.maps[LINEMAPS_USED (set, macro_map_p)];
436− }
427+ Let's get back to the number of map that amounts to. */
428+ unsigned num_maps = alloc_size / size_of_a_map;
429+ buffer = set->reallocator (buffer, num_maps * size_of_a_map);
430+ memset ((char *)buffer + num_maps_used * size_of_a_map, 0,
431+ (num_maps - num_maps_used) * size_of_a_map);
432+ if (macro_p)
433+ set->info_macro.maps = (line_map_macro *)buffer;
437434 else
438− {
439− set->info_ordinary.maps =
440− (line_map_ordinary *) (*reallocator) (set->info_ordinary.maps,
441− (LINEMAPS_ALLOCATED (set, macro_map_p)
442− * map_size));
443− result = &set->info_ordinary.maps[LINEMAPS_USED (set, macro_map_p)];
444− }
445− memset (result, 0,
446− ((LINEMAPS_ALLOCATED (set, macro_map_p)
447− - LINEMAPS_USED (set, macro_map_p))
448− * map_size));
449− }
450− else
451− {
452− if (macro_map_p)
453− result = &set->info_macro.maps[LINEMAPS_USED (set, macro_map_p)];
454− else
455− result = &set->info_ordinary.maps[LINEMAPS_USED (set, macro_map_p)];
435+ set->info_ordinary.maps = (line_map_ordinary *)buffer;
436+ LINEMAPS_ALLOCATED (set, macro_p) = num_maps;
456437 }
457438
458− LINEMAPS_USED (set, macro_map_p)++;
439+ line_map *result = (macro_p ? (line_map *)&set->info_macro.maps[num_maps_used]
440+ : (line_map *)&set->info_ordinary.maps[num_maps_used]);
441+ LINEMAPS_USED (set, macro_p)++;
442+
443+ result->start_location = start_location;
459444
460− result->reason = reason;
461445 return result;
462446 }
463447
@@ -480,7 +464,7 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 16 unmodified lines
480464 {
481465 /* Generate a start_location above the current highest_location.
482466 If possible, make the low range bits be zero. */
483− source_location start_location;
467+ location_t start_location;
484468 if (set->highest_location < LINE_MAP_MAX_LOCATION_WITH_COLS)
485469 {
486470 start_location = set->highest_location + (1 << set->default_range_bits);
@@ -492,9 +476,9 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 5 unmodified lines
492476 else
493477 start_location = set->highest_location + 1;
494478
495− linemap_assert (!(LINEMAPS_ORDINARY_USED (set)
496− && (start_location
497− < MAP_START_LOCATION (LINEMAPS_LAST_ORDINARY_MAP (set)))));
479+ linemap_assert (!LINEMAPS_ORDINARY_USED (set)
480+ || (start_location
481+ >= MAP_START_LOCATION (LINEMAPS_LAST_ORDINARY_MAP (set))));
498482
499483 /* When we enter the file for the first time reason cannot be
500484 LC_RENAME. */
@@ -510,7 +494,14 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 9 unmodified lines
510494 }
511495
512496 linemap_assert (reason != LC_ENTER_MACRO);
513− line_map_ordinary *map = linemap_check_ordinary (new_linemap (set, reason));
497+
498+ if (start_location >= LINE_MAP_MAX_LOCATION)
499+ /* We ran out of line map space. */
500+ start_location = 0;
501+
502+ line_map_ordinary *map
503+ = linemap_check_ordinary (new_linemap (set, start_location));
504+ map->reason = reason;
514505
515506 if (to_file && *to_file == '\0' && reason != LC_RENAME_VERBATIM)
516507 to_file = "<stdin>";
@@ -518,19 +509,19 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 1 unmodified line
518509 if (reason == LC_RENAME_VERBATIM)
519510 reason = LC_RENAME;
520511
512+ const line_map_ordinary *from = NULL;
521513 if (reason == LC_LEAVE)
522514 {
523515 /* When we are just leaving an "included" file, and jump to the next
524516 location inside the "includer" right after the #include
525517 "included", this variable points the map in use right before the
526518 #include "included", inside the same "includer" file. */
527− line_map_ordinary *from;
528519
529520 linemap_assert (!MAIN_FILE_P (map - 1));
530521 /* (MAP - 1) points to the map we are leaving. The
531522 map from which (MAP - 1) got included should be the map
532523 that comes right before MAP in the same file. */
533− from = INCLUDED_FROM (set, map - 1);
524+ from = linemap_included_from_linemap (set, map - 1);
534525
535526 /* A TO_FILE of NULL is special - we use the natural values. */
536527 if (to_file == NULL)
@@ -545,7 +536,6 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 8 unmodified lines
545536 }
546537
547538 map->sysp = sysp;
548− map->start_location = start_location;
549539 map->to_file = to_file;
550540 map->to_line = to_line;
551541 LINEMAPS_ORDINARY_CACHE (set) = LINEMAPS_ORDINARY_USED (set) - 1;
@@ -563,19 +553,24 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 11 unmodified lines
563553
564554 if (reason == LC_ENTER)
565555 {
566− map->included_from =
567− set->depth == 0 ? -1 : (int) (LINEMAPS_ORDINARY_USED (set) - 2);
556+ if (set->depth == 0)
557+ map->included_from = 0;
558+ else
559+ /* The location of the end of the just-closed map. */
560+ map->included_from
561+ = (((map[0].start_location - 1 - map[-1].start_location)
562+ & ~((1 << map[-1].m_column_and_range_bits) - 1))
563+ + map[-1].start_location);
568564 set->depth++;
569565 if (set->trace_includes)
570566 trace_include (set, map);
571567 }
572568 else if (reason == LC_RENAME)
573− map->included_from = ORDINARY_MAP_INCLUDER_FILE_INDEX (&map[-1]);
569+ map->included_from = linemap_included_from (&map[-1]);
574570 else if (reason == LC_LEAVE)
575571 {
576572 set->depth--;
577− map->included_from =
578− ORDINARY_MAP_INCLUDER_FILE_INDEX (INCLUDED_FROM (set, map - 1));
573+ map->included_from = linemap_included_from (from);
579574 }
580575
581576 return map;
@@ -615,34 +610,26 @@ linemap_tracks_macro_expansion_locs_p (struct line_maps *set) · 33 unmodified lines
615610
616611 const line_map_macro *
617612 linemap_enter_macro (struct line_maps *set, struct cpp_hashnode *macro_node,
618− source_location expansion, unsigned int num_tokens)
613+ location_t expansion, unsigned int num_tokens)
619614 {
620− line_map_macro *map;
621− source_location start_location;
622− /* Cast away extern "C" from the type of xrealloc. */
623− line_map_realloc reallocator = (set->reallocator
624− ? set->reallocator
625− : (line_map_realloc) xrealloc);
615+ location_t start_location
616+ = LINEMAPS_MACRO_LOWEST_LOCATION (set) - num_tokens;
626617
627− start_location = LINEMAPS_MACRO_LOWEST_LOCATION (set) - num_tokens;
628−
629− if (start_location <= set->highest_line
630− || start_location > LINEMAPS_MACRO_LOWEST_LOCATION (set))
618+ if (start_location < LINE_MAP_MAX_LOCATION)
631619 /* We ran out of macro map space. */
632620 return NULL;
633621
634− map = linemap_check_macro (new_linemap (set, LC_ENTER_MACRO));
622+ line_map_macro *map = linemap_check_macro (new_linemap (set, start_location));
635623
636− map->start_location = start_location;
637624 map->macro = macro_node;
638625 map->n_tokens = num_tokens;
639626 map->macro_locations
640− = (source_location*) reallocator (NULL,
641− 2 * num_tokens
642− * sizeof (source_location));
627+ = (location_t*) set->reallocator (NULL,
628+ 2 * num_tokens
629+ * sizeof (location_t));
643630 map->expansion = expansion;
644631 memset (MACRO_MAP_LOCATIONS (map), 0,
645− num_tokens * sizeof (source_location));
632+ 2 * num_tokens * sizeof (location_t));
646633
647634 LINEMAPS_MACRO_CACHE (set) = LINEMAPS_MACRO_USED (set) - 1;
648635
@@ -672,13 +659,13 @@ linemap_enter_macro (struct line_maps *set, struct cpp_hashnode *macro_node, · 23 unmodified lines
672659 either of the token itself or of a macro parameter that it
673660 replaces. */
674661
675−source_location
662+location_t
676663 linemap_add_macro_token (const line_map_macro *map,
677664 unsigned int token_no,
678− source_location orig_loc,
679− source_location orig_parm_replacement_loc)
665+ location_t orig_loc,
666+ location_t orig_parm_replacement_loc)
680667 {
681− source_location result;
668+ location_t result;
682669
683670 linemap_assert (linemap_macro_expansion_map_p (map));
684671 linemap_assert (token_no < MACRO_MAP_NUM_MACRO_TOKENS (map));
@@ -690,19 +677,19 @@ linemap_add_macro_token (const line_map_macro *map, · 5 unmodified lines
690677 return result;
691678 }
692679
693−/* Return a source_location for the start (i.e. column==0) of
680+/* Return a location_t for the start (i.e. column==0) of
694681 (physical) line TO_LINE in the current source file (as in the
695682 most recent linemap_add). MAX_COLUMN_HINT is the highest column
696683 number we expect to use in this line (but it does not change
697684 the highest_location). */
698685
699−source_location
686+location_t
700687 linemap_line_start (struct line_maps *set, linenum_type to_line,
701688 unsigned int max_column_hint)
702689 {
703690 line_map_ordinary *map = LINEMAPS_LAST_ORDINARY_MAP (set);
704− source_location highest = set->highest_location;
705− source_location r;
691+ location_t highest = set->highest_location;
692+ location_t r;
706693 linenum_type last_line =
707694 SOURCE_LINE (map, set->highest_line);
708695 int line_delta = to_line - last_line;
@@ -718,7 +705,7 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 9 unmodified lines
718705 || (highest > LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES
719706 && map->m_range_bits > 0)
720707 || (highest > LINE_MAP_MAX_LOCATION_WITH_COLS
721− && (set->max_column_hint || highest >= LINE_MAP_MAX_SOURCE_LOCATION)))
708+ && (set->max_column_hint || highest >= LINE_MAP_MAX_LOCATION)))
722709 add_map = true;
723710 else
724711 max_column_hint = set->max_column_hint;
@@ -730,12 +717,12 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 5 unmodified lines
730717 || highest > LINE_MAP_MAX_LOCATION_WITH_COLS)
731718 {
732719 /* If the column number is ridiculous or we've allocated a huge
733− number of source_locations, give up on column numbers
720+ number of location_ts, give up on column numbers
734721 (and on packed ranges). */
735722 max_column_hint = 0;
736723 column_bits = 0;
737724 range_bits = 0;
738− if (highest > LINE_MAP_MAX_SOURCE_LOCATION)
725+ if (highest >= LINE_MAP_MAX_LOCATION)
739726 return 0;
740727 }
741728 else
@@ -755,6 +742,11 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 13 unmodified lines
755742 if (line_delta < 0
756743 || last_line != ORDINARY_MAP_STARTING_LINE_NUMBER (map)
757744 || SOURCE_COLUMN (map, highest) >= (1U << (column_bits - range_bits))
745+ || ( /* We can't reuse the map if the line offset is sufficiently
746+ large to cause overflow when computing location_t values. */
747+ (to_line - ORDINARY_MAP_STARTING_LINE_NUMBER (map))
748+ >= (((uint64_t) 1)
749+ << (CHAR_BIT * sizeof (linenum_type) - column_bits)))
758750 || range_bits < map->m_range_bits)
759751 map = linemap_check_ordinary
760752 (const_cast <line_map *>
@@ -773,7 +765,7 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 12 unmodified lines
773765
774766 /* Locations of ordinary tokens are always lower than locations of
775767 macro tokens. */
776− if (r >= LINEMAPS_MACRO_LOWEST_LOCATION (set))
768+ if (r >= LINE_MAP_MAX_LOCATION)
777769 return 0;
778770
779771 set->highest_line = r;
@@ -795,15 +787,15 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 15 unmodified lines
795787 return r;
796788 }
797789
798−/* Encode and return a source_location from a column number. The
790+/* Encode and return a location_t from a column number. The
799791 source line considered is the last source line used to call
800792 linemap_line_start, i.e, the last source line which a location was
801793 encoded from. */
802794
803−source_location
795+location_t
804796 linemap_position_for_column (struct line_maps *set, unsigned int to_column)
805797 {
806− source_location r = set->highest_line;
798+ location_t r = set->highest_line;
807799
808800 linemap_assert
809801 (!linemap_macro_expansion_map_p (LINEMAPS_LAST_ORDINARY_MAP (set)));
@@ -813,7 +805,7 @@ linemap_position_for_column (struct line_maps *set, unsigned int to_column) · 3 unmodified lines
813805 if (r > LINE_MAP_MAX_LOCATION_WITH_COLS
814806 || to_column > LINE_MAP_MAX_COLUMN_NUMBER)
815807 {
816− /* Running low on source_locations - disable column numbers. */
808+ /* Running low on location_ts - disable column numbers. */
817809 return r;
818810 }
819811 else
@@ -846,7 +838,7 @@ linemap_position_for_column (struct line_maps *set, unsigned int to_column) · 26 unmodified lines
846838 /* Encode and return a source location from a given line and
847839 column. */
848840
849−source_location
841+location_t
850842 linemap_position_for_line_and_column (line_maps *set,
851843 const line_map_ordinary *ord_map,
852844 linenum_type line,
@@ -854,13 +846,13 @@ linemap_position_for_line_and_column (line_maps *set, · 1 unmodified line
854846 {
855847 linemap_assert (ORDINARY_MAP_STARTING_LINE_NUMBER (ord_map) <= line);
856848
857− source_location r = MAP_START_LOCATION (ord_map);
849+ location_t r = MAP_START_LOCATION (ord_map);
858850 r += ((line - ORDINARY_MAP_STARTING_LINE_NUMBER (ord_map))
859851 << ord_map->m_column_and_range_bits);
860852 if (r <= LINE_MAP_MAX_LOCATION_WITH_COLS)
861853 r += ((column & ((1 << ord_map->m_column_and_range_bits) - 1))
862854 << ord_map->m_range_bits);
863− source_location upper_limit = LINEMAPS_MACRO_LOWEST_LOCATION (set);
855+ location_t upper_limit = LINEMAPS_MACRO_LOWEST_LOCATION (set);
864856 if (r >= upper_limit)
865857 r = upper_limit - 1;
866858 if (r > set->highest_location)
@@ -868,19 +860,19 @@ linemap_position_for_line_and_column (line_maps *set, · 1 unmodified line
868860 return r;
869861 }
870862
871−/* Encode and return a source_location starting from location LOC and
863+/* Encode and return a location_t starting from location LOC and
872864 shifting it by COLUMN_OFFSET columns. This function does not support
873865 virtual locations. */
874866
875−source_location
867+location_t
876868 linemap_position_for_loc_and_offset (struct line_maps *set,
877− source_location loc,
869+ location_t loc,
878870 unsigned int column_offset)
879871 {
880872 const line_map_ordinary * map = NULL;
881873
882874 if (IS_ADHOC_LOC (loc))
883− loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
875+ loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
884876
885877 /* This function does not support virtual locations yet. */
886878 if (linemap_location_from_macro_expansion_p (set, loc))
@@ -926,7 +918,7 @@ linemap_position_for_loc_and_offset (struct line_maps *set, · 39 unmodified lines
926918 if (column >= (1u << (map->m_column_and_range_bits - map->m_range_bits)))
927919 return loc;
928920
929− source_location r =
921+ location_t r =
930922 linemap_position_for_line_and_column (set, map, line, column);
931923 if (linemap_assert_fails (r <= set->highest_location)
932924 || linemap_assert_fails (map == linemap_lookup (set, r)))
@@ -939,10 +931,10 @@ linemap_position_for_loc_and_offset (struct line_maps *set, · 6 unmodified lines
939931 ordinary or a macro map), returns that map. */
940932
941933 const struct line_map*
942−linemap_lookup (struct line_maps *set, source_location line)
934+linemap_lookup (struct line_maps *set, location_t line)
943935 {
944936 if (IS_ADHOC_LOC (line))
945− line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
937+ line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
946938 if (linemap_location_from_macro_expansion_p (set, line))
947939 return linemap_macro_map_lookup (set, line);
948940 return linemap_ordinary_map_lookup (set, line);
@@ -954,13 +946,13 @@ linemap_lookup (struct line_maps *set, source_location line) · 5 unmodified lines
954946 binary search. */
955947
956948 static const line_map_ordinary *
957−linemap_ordinary_map_lookup (struct line_maps *set, source_location line)
949+linemap_ordinary_map_lookup (struct line_maps *set, location_t line)
958950 {
959951 unsigned int md, mn, mx;
960952 const line_map_ordinary *cached, *result;
961953
962954 if (IS_ADHOC_LOC (line))
963− line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
955+ line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
964956
965957 if (set == NULL || line < RESERVED_LOCATION_COUNT)
966958 return NULL;
@@ -1002,13 +994,13 @@ linemap_ordinary_map_lookup (struct line_maps *set, source_location line) · 35 unmodified lines
1002994 binary search. */
1003995
1004996 static const line_map_macro *
1005−linemap_macro_map_lookup (struct line_maps *set, source_location line)
997+linemap_macro_map_lookup (struct line_maps *set, location_t line)
1006998 {
1007999 unsigned int md, mn, mx;
10081000 const struct line_map_macro *cached, *result;
10091001
10101002 if (IS_ADHOC_LOC (line))
1011− line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
1003+ line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
10121004
10131005 linemap_assert (line >= LINEMAPS_MACRO_LOWEST_LOCATION (set));
10141006
@@ -1049,9 +1041,7 @@ linemap_macro_map_lookup (struct line_maps *set, source_location line) · 34 unmodified lines
10491041 bool
10501042 linemap_macro_expansion_map_p (const struct line_map *map)
10511043 {
1052− if (!map)
1053− return false;
1054− return (map->reason == LC_ENTER_MACRO);
1044+ return map && !MAP_ORDINARY_P (map);
10551045 }
10561046
10571047 /* If LOCATION is the locus of a token in a replacement-list of a
@@ -1060,9 +1050,9 @@ linemap_macro_expansion_map_p (const struct line_map *map) · 2 unmodified lines
10601050 Read the comments of struct line_map and struct line_map_macro in
10611051 line-map.h to understand what a macro expansion point is. */
10621052
1063−static source_location
1053+static location_t
10641054 linemap_macro_map_loc_to_exp_point (const line_map_macro *map,
1065− source_location location ATTRIBUTE_UNUSED)
1055+ location_t location ATTRIBUTE_UNUSED)
10661056 {
10671057 linemap_assert (linemap_macro_expansion_map_p (map)
10681058 && location >= MAP_START_LOCATION (map));
@@ -1080,9 +1070,9 @@ linemap_macro_map_loc_to_exp_point (const line_map_macro *map, · 11 unmodified lines
10801070 Return the location of the token at the definition point of the
10811071 macro. */
10821072
1083−static source_location
1073+static location_t
10841074 linemap_macro_map_loc_to_def_point (const line_map_macro *map,
1085− source_location location)
1075+ location_t location)
10861076 {
10871077 unsigned token_no;
10881078
@@ -1104,10 +1094,10 @@ linemap_macro_map_loc_to_def_point (const line_map_macro *map, · 15 unmodified lines
11041094
11051095 In other words, this returns the xI location presented in the
11061096 comments of line_map_macro above. */
1107−source_location
1097+location_t
11081098 linemap_macro_map_loc_unwind_toward_spelling (line_maps *set,
11091099 const line_map_macro* map,
1110− source_location location)
1100+ location_t location)
11111101 {
11121102 unsigned token_no;
11131103
@@ -1135,13 +1125,13 @@ linemap_macro_map_loc_unwind_toward_spelling (line_maps *set, · 21 unmodified lines
11351125
11361126 int
11371127 linemap_get_expansion_line (struct line_maps *set,
1138− source_location location)
1128+ location_t location)
11391129 {
11401130 const line_map_ordinary *map = NULL;
11411131
11421132 if (IS_ADHOC_LOC (location))
11431133 location = set->location_adhoc_data_map.data[location
1144− & MAX_SOURCE_LOCATION].locus;
1134+ & MAX_LOCATION_T].locus;
11451135
11461136 if (location < RESERVED_LOCATION_COUNT)
11471137 return 0;
@@ -1163,13 +1153,13 @@ linemap_get_expansion_line (struct line_maps *set, · 15 unmodified lines
11631153
11641154 const char*
11651155 linemap_get_expansion_filename (struct line_maps *set,
1166− source_location location)
1156+ location_t location)
11671157 {
11681158 const struct line_map_ordinary *map = NULL;
11691159
11701160 if (IS_ADHOC_LOC (location))
11711161 location = set->location_adhoc_data_map.data[location
1172− & MAX_SOURCE_LOCATION].locus;
1162+ & MAX_LOCATION_T].locus;
11731163
11741164 if (location < RESERVED_LOCATION_COUNT)
11751165 return NULL;
@@ -1201,13 +1191,13 @@ linemap_map_get_macro_name (const line_map_macro *macro_map) · 25 unmodified lines
12011191
12021192 int
12031193 linemap_location_in_system_header_p (struct line_maps *set,
1204− source_location location)
1194+ location_t location)
12051195 {
12061196 const struct line_map *map = NULL;
12071197
12081198 if (IS_ADHOC_LOC (location))
12091199 location = set->location_adhoc_data_map.data[location
1210− & MAX_SOURCE_LOCATION].locus;
1200+ & MAX_LOCATION_T].locus;
12111201
12121202 if (location < RESERVED_LOCATION_COUNT)
12131203 return false;
@@ -1226,7 +1216,7 @@ linemap_location_in_system_header_p (struct line_maps *set, · 12 unmodified lines
12261216 const line_map_macro *macro_map = linemap_check_macro (map);
12271217
12281218 /* It's a token resulting from a macro expansion. */
1229− source_location loc =
1219+ location_t loc =
12301220 linemap_macro_map_loc_unwind_toward_spelling (set, macro_map, location);
12311221 if (loc < RESERVED_LOCATION_COUNT)
12321222 /* This token might come from a built-in macro. Let's
@@ -1247,18 +1237,13 @@ linemap_location_in_system_header_p (struct line_maps *set, · 14 unmodified lines
12471237
12481238 bool
12491239 linemap_location_from_macro_expansion_p (const struct line_maps *set,
1250− source_location location)
1240+ location_t location)
12511241 {
12521242 if (IS_ADHOC_LOC (location))
12531243 location = set->location_adhoc_data_map.data[location
1254− & MAX_SOURCE_LOCATION].locus;
1244+ & MAX_LOCATION_T].locus;
12551245
1256− linemap_assert (location <= MAX_SOURCE_LOCATION
1257− && (set->highest_location
1258− < LINEMAPS_MACRO_LOWEST_LOCATION (set)));
1259− if (set == NULL)
1260− return false;
1261− return (location > set->highest_location);
1246+ return IS_MACRO_LOC (location);
12621247 }
12631248
12641249 /* Given two virtual locations *LOC0 and *LOC1, return the first
@@ -1268,10 +1253,10 @@ linemap_location_from_macro_expansion_p (const struct line_maps *set, · 3 unmodified lines
12681253
12691254 static const struct line_map*
12701255 first_map_in_common_1 (struct line_maps *set,
1271− source_location *loc0,
1272− source_location *loc1)
1256+ location_t *loc0,
1257+ location_t *loc1)
12731258 {
1274− source_location l0 = *loc0, l1 = *loc1;
1259+ location_t l0 = *loc0, l1 = *loc1;
12751260 const struct line_map *map0 = linemap_lookup (set, l0),
12761261 *map1 = linemap_lookup (set, l1);
12771262
@@ -1310,10 +1295,10 @@ first_map_in_common_1 (struct line_maps *set, · 32 unmodified lines
13101295
13111296 static const struct line_map*
13121297 first_map_in_common (struct line_maps *set,
1313− source_location loc0,
1314− source_location loc1,
1315− source_location *res_loc0,
1316− source_location *res_loc1)
1298+ location_t loc0,
1299+ location_t loc1,
1300+ location_t *res_loc0,
1301+ location_t *res_loc1)
13171302 {
13181303 *res_loc0 = loc0;
13191304 *res_loc1 = loc1;
@@ -1328,11 +1313,11 @@ first_map_in_common (struct line_maps *set, · 8 unmodified lines
13281313
13291314 int
13301315 linemap_compare_locations (struct line_maps *set,
1331− source_location pre,
1332− source_location post)
1316+ location_t pre,
1317+ location_t post)
13331318 {
13341319 bool pre_virtual_p, post_virtual_p;
1335− source_location l0 = pre, l1 = post;
1320+ location_t l0 = pre, l1 = post;
13361321
13371322 if (IS_ADHOC_LOC (l0))
13381323 l0 = get_location_from_adhoc_loc (set, l0);
@@ -1398,28 +1383,27 @@ trace_include (const struct line_maps *set, const line_map_ordinary *map) · 59 unmodified lines
13981383
13991384 This is a subroutine for linemap_resolve_location. */
14001385
1401−static source_location
1386+static location_t
14021387 linemap_macro_loc_to_spelling_point (struct line_maps *set,
1403− source_location location,
1388+ location_t location,
14041389 const line_map_ordinary **original_map)
14051390 {
1406− struct line_map *map;
14071391 linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
14081392
14091393 while (true)
14101394 {
1411− map = const_cast <line_map *> (linemap_lookup (set, location));
1412− if (!linemap_macro_expansion_map_p (map))
1413− break;
1395+ const struct line_map *map = linemap_lookup (set, location);
1396+ if (!map || MAP_ORDINARY_P (map))
1397+ {
1398+ if (original_map)
1399+ *original_map = (const line_map_ordinary *)map;
1400+ break;
1401+ }
14141402
1415− location
1416− = linemap_macro_map_loc_unwind_toward_spelling
1417− (set, linemap_check_macro (map),
1418− location);
1403+ location = linemap_macro_map_loc_unwind_toward_spelling
1404+ (set, linemap_check_macro (map), location);
14191405 }
14201406
1421− if (original_map)
1422− *original_map = linemap_check_ordinary (map);
14231407 return location;
14241408 }
14251409
@@ -1433,34 +1417,31 @@ linemap_macro_loc_to_spelling_point (struct line_maps *set, · 7 unmodified lines
14331417
14341418 This is a subroutine of linemap_resolve_location. */
14351419
1436−static source_location
1420+static location_t
14371421 linemap_macro_loc_to_def_point (struct line_maps *set,
1438− source_location location,
1422+ location_t location,
14391423 const line_map_ordinary **original_map)
14401424 {
1441− struct line_map *map;
1442−
14431425 linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
14441426
1445− while (true)
1427+ for (;;)
14461428 {
1447− source_location caret_loc;
1448− if (IS_ADHOC_LOC (location))
1449− caret_loc = get_location_from_adhoc_loc (set, location);
1450− else
1451− caret_loc = location;
1429+ location_t caret_loc = location;
1430+ if (IS_ADHOC_LOC (caret_loc))
1431+ caret_loc = get_location_from_adhoc_loc (set, caret_loc);
14521432
1453− map = const_cast <line_map *> (linemap_lookup (set, caret_loc));
1454− if (!linemap_macro_expansion_map_p (map))
1455− break;
1433+ const line_map *map = linemap_lookup (set, caret_loc);
1434+ if (!map || MAP_ORDINARY_P (map))
1435+ {
1436+ if (original_map)
1437+ *original_map = (const line_map_ordinary *)map;
1438+ break;
1439+ }
14561440
1457− location =
1458− linemap_macro_map_loc_to_def_point (linemap_check_macro (map),
1459− caret_loc);
1441+ location = linemap_macro_map_loc_to_def_point
1442+ (linemap_check_macro (map), caret_loc);
14601443 }
14611444
1462− if (original_map)
1463− *original_map = linemap_check_ordinary (map);
14641445 return location;
14651446 }
14661447
@@ -1478,16 +1459,16 @@ linemap_macro_loc_to_def_point (struct line_maps *set, · 11 unmodified lines
14781459
14791460 This is a subroutine of linemap_resolve_location. */
14801461
1481−static source_location
1462+static location_t
14821463 linemap_macro_loc_to_exp_point (struct line_maps *set,
1483− source_location location,
1464+ location_t location,
14841465 const line_map_ordinary **original_map)
14851466 {
14861467 struct line_map *map;
14871468
14881469 if (IS_ADHOC_LOC (location))
14891470 location = set->location_adhoc_data_map.data[location
1490− & MAX_SOURCE_LOCATION].locus;
1471+ & MAX_LOCATION_T].locus;
14911472
14921473 linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
14931474
@@ -1553,15 +1534,15 @@ linemap_macro_loc_to_exp_point (struct line_maps *set, · 59 unmodified lines
15531534 resolves to a location reserved for the client code, like
15541535 UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */
15551536
1556−source_location
1537+location_t
15571538 linemap_resolve_location (struct line_maps *set,
1558− source_location loc,
1539+ location_t loc,
15591540 enum location_resolution_kind lrk,
15601541 const line_map_ordinary **map)
15611542 {
1562− source_location locus = loc;
1543+ location_t locus = loc;
15631544 if (IS_ADHOC_LOC (loc))
1564− locus = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
1545+ locus = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
15651546
15661547 if (locus < RESERVED_LOCATION_COUNT)
15671548 {
@@ -1595,7 +1576,7 @@ linemap_resolve_location (struct line_maps *set, · 27 unmodified lines
15951576
15961577 bool
15971578 linemap_location_from_macro_definition_p (struct line_maps *set,
1598− source_location loc)
1579+ location_t loc)
15991580 {
16001581 if (IS_ADHOC_LOC (loc))
16011582 loc = get_location_from_adhoc_loc (set, loc);
@@ -1608,13 +1589,13 @@ linemap_location_from_macro_definition_p (struct line_maps *set, · 6 unmodified lines
16081589 const struct line_map_macro *map
16091590 = linemap_check_macro (linemap_lookup (set, loc));
16101591
1611− source_location s_loc
1592+ location_t s_loc
16121593 = linemap_macro_map_loc_unwind_toward_spelling (set, map, loc);
16131594 if (linemap_location_from_macro_expansion_p (set, s_loc))
16141595 loc = s_loc;
16151596 else
16161597 {
1617− source_location def_loc
1598+ location_t def_loc
16181599 = linemap_macro_map_loc_to_def_point (map, loc);
16191600 return s_loc == def_loc;
16201601 }
@@ -1633,17 +1614,17 @@ linemap_location_from_macro_definition_p (struct line_maps *set, · 12 unmodified lines
16331614 *LOC_MAP must be set to the map of LOC. This function then sets it
16341615 to the map of the returned location. */
16351616
1636−source_location
1617+location_t
16371618 linemap_unwind_toward_expansion (struct line_maps *set,
1638− source_location loc,
1619+ location_t loc,
16391620 const struct line_map **map)
16401621 {
1641− source_location resolved_location;
1622+ location_t resolved_location;
16421623 const line_map_macro *macro_map = linemap_check_macro (*map);
16431624 const struct line_map *resolved_map;
16441625
16451626 if (IS_ADHOC_LOC (loc))
1646− loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
1627+ loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
16471628
16481629 resolved_location =
16491630 linemap_macro_map_loc_unwind_toward_spelling (set, macro_map, loc);
@@ -1673,17 +1654,17 @@ linemap_unwind_toward_expansion (struct line_maps *set, · 23 unmodified lines
16731654
16741655 *MAP is set to the map of the returned location if the later is
16751656 different from LOC. */
1676−source_location
1657+location_t
16771658 linemap_unwind_to_first_non_reserved_loc (struct line_maps *set,
1678− source_location loc,
1659+ location_t loc,
16791660 const struct line_map **map)
16801661 {
1681− source_location resolved_loc;
1662+ location_t resolved_loc;
16821663 const struct line_map *map0 = NULL;
16831664 const line_map_ordinary *map1 = NULL;
16841665
16851666 if (IS_ADHOC_LOC (loc))
1686− loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
1667+ loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
16871668
16881669 map0 = linemap_lookup (set, loc);
16891670 if (!linemap_macro_expansion_map_p (map0))
@@ -1720,7 +1701,7 @@ linemap_unwind_to_first_non_reserved_loc (struct line_maps *set, · 30 unmodified lines
17201701 expanded_location
17211702 linemap_expand_location (struct line_maps *set,
17221703 const struct line_map *map,
1723− source_location loc)
1704+ location_t loc)
17241705
17251706 {
17261707 expanded_location xloc;
@@ -1729,8 +1710,8 @@ linemap_expand_location (struct line_maps *set, · 2 unmodified lines
17291710 if (IS_ADHOC_LOC (loc))
17301711 {
17311712 xloc.data
1732− = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
1733− loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
1713+ = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].data;
1714+ loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
17341715 }
17351716
17361717 if (loc < RESERVED_LOCATION_COUNT)
@@ -1770,41 +1751,42 @@ linemap_expand_location (struct line_maps *set, · 33 unmodified lines
17701751 void
17711752 linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro)
17721753 {
1773− const char *lc_reasons_v[LC_ENTER_MACRO + 1]
1754+ const char *const lc_reasons_v[LC_HWM]
17741755 = { "LC_ENTER", "LC_LEAVE", "LC_RENAME", "LC_RENAME_VERBATIM",
17751756 "LC_ENTER_MACRO" };
1776− const char *reason;
17771757 const line_map *map;
1758+ unsigned reason;
17781759
17791760 if (stream == NULL)
17801761 stream = stderr;
17811762
17821763 if (!is_macro)
1783− map = LINEMAPS_ORDINARY_MAP_AT (set, ix);
1764+ {
1765+ map = LINEMAPS_ORDINARY_MAP_AT (set, ix);
1766+ reason = linemap_check_ordinary (map)->reason;
1767+ }
17841768 else
1785− map = LINEMAPS_MACRO_MAP_AT (set, ix);
1786−
1787− reason = (map->reason <= LC_ENTER_MACRO) ? lc_reasons_v[map->reason] : "???";
1769+ {
1770+ map = LINEMAPS_MACRO_MAP_AT (set, ix);
1771+ reason = LC_ENTER_MACRO;
1772+ }
17881773
17891774 fprintf (stream, "Map #%u [%p] - LOC: %u - REASON: %s - SYSP: %s\n",
1790− ix, (void *) map, map->start_location, reason,
1775+ ix, (void *) map, map->start_location,
1776+ reason < LC_HWM ? lc_reasons_v[reason] : "???",
17911777 ((!is_macro
17921778 && ORDINARY_MAP_IN_SYSTEM_HEADER_P (linemap_check_ordinary (map)))
17931779 ? "yes" : "no"));
17941780 if (!is_macro)
17951781 {
17961782 const line_map_ordinary *ord_map = linemap_check_ordinary (map);
1797− unsigned includer_ix;
1798− const line_map_ordinary *includer_map;
1799−
1800− includer_ix = ORDINARY_MAP_INCLUDER_FILE_INDEX (ord_map);
1801− includer_map = includer_ix < LINEMAPS_ORDINARY_USED (set)
1802− ? LINEMAPS_ORDINARY_MAP_AT (set, includer_ix)
1803− : NULL;
1783+ const line_map_ordinary *includer_map
1784+ = linemap_included_from_linemap (set, ord_map);
18041785
18051786 fprintf (stream, "File: %s:%d\n", ORDINARY_MAP_FILE_NAME (ord_map),
18061787 ORDINARY_MAP_STARTING_LINE_NUMBER (ord_map));
1807− fprintf (stream, "Included from: [%d] %s\n", includer_ix,
1788+ fprintf (stream, "Included from: [%d] %s\n",
1789+ includer_map ? int (includer_map - set->info_ordinary.maps) : -1,
18081790 includer_map ? ORDINARY_MAP_FILE_NAME (includer_map) : "None");
18091791 }
18101792 else
@@ -1824,16 +1806,16 @@ linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro) · 13 unmodified lines
18241806
18251807 void
18261808 linemap_dump_location (struct line_maps *set,
1827− source_location loc,
1809+ location_t loc,
18281810 FILE *stream)
18291811 {
18301812 const line_map_ordinary *map;
1831− source_location location;
1813+ location_t location;
18321814 const char *path = "", *from = "";
18331815 int l = -1, c = -1, s = -1, e = -1;
18341816
18351817 if (IS_ADHOC_LOC (loc))
1836− loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
1818+ loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
18371819
18381820 if (loc == 0)
18391821 return;
@@ -1854,9 +1836,11 @@ linemap_dump_location (struct line_maps *set, · 14 unmodified lines
18541836 if (e)
18551837 from = "N/A";
18561838 else
1857− from = (INCLUDED_FROM (set, map))
1858− ? LINEMAP_FILE (INCLUDED_FROM (set, map))
1859− : "<NULL>";
1839+ {
1840+ const line_map_ordinary *from_map
1841+ = linemap_included_from_linemap (set, map);
1842+ from = from_map ? LINEMAP_FILE (from_map) : "<NULL>";
1843+ }
18601844 }
18611845
18621846 /* P: path, L: line, C: column, S: in-system-header, M: map address,
@@ -1873,7 +1857,7 @@ linemap_dump_location (struct line_maps *set, · 10 unmodified lines
18731857 bool
18741858 linemap_get_file_highest_location (struct line_maps *set,
18751859 const char *file_name,
1876− source_location *loc)
1860+ location_t *loc)
18771861 {
18781862 /* If the set is empty or no ordinary map has been created then
18791863 there is no file to look for ... */
@@ -1895,7 +1879,7 @@ linemap_get_file_highest_location (struct line_maps *set, · 15 unmodified lines
18951879 /* The highest location for a given map is either the starting
18961880 location of the next map minus one, or -- if the map is the
18971881 latest one -- the highest location of the set. */
1898− source_location result;
1882+ location_t result;
18991883 if (i == (int) set->info_ordinary.used - 1)
19001884 result = set->highest_location;
19011885 else
@@ -1936,14 +1920,14 @@ linemap_get_statistics (struct line_maps *set, · 34 unmodified lines
19361920 linemap_assert (linemap_macro_expansion_map_p (cur_map));
19371921
19381922 macro_maps_locations_size +=
1939− 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map) * sizeof (source_location);
1923+ 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map) * sizeof (location_t);
19401924
19411925 for (i = 0; i < 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map); i += 2)
19421926 {
19431927 if (MACRO_MAP_LOCATIONS (cur_map)[i] ==
19441928 MACRO_MAP_LOCATIONS (cur_map)[i + 1])
19451929 duplicated_macro_maps_locations_size +=
1946− sizeof (source_location);
1930+ sizeof (location_t);
19471931 }
19481932 }
19491933
@@ -2010,7 +1994,8 @@ line_table_dump (FILE *stream, struct line_maps *set, unsigned int num_ordinary, · 60 unmodified lines
20101994
20111995 /* Construct a rich_location with location LOC as its initial range. */
20121996
2013−rich_location::rich_location (line_maps *set, source_location loc) :
1997+rich_location::rich_location (line_maps *set, location_t loc,
1998+ const range_label *label) :
20141999 m_line_table (set),
20152000 m_ranges (),
20162001 m_column_override (0),
@@ -2019,7 +2004,7 @@ rich_location::rich_location (line_maps *set, source_location loc) : · 2 unmodified lines
20192004 m_seen_impossible_fixit (false),
20202005 m_fixits_cannot_be_auto_applied (false)
20212006 {
2022− add_range (loc, true);
2007+ add_range (loc, SHOW_RANGE_WITH_CARET, label);
20232008 }
20242009
20252010 /* The destructor for class rich_location. */
@@ -2032,7 +2017,7 @@ rich_location::~rich_location () · 6 unmodified lines
20322017
20332018 /* Get location IDX within this rich_location. */
20342019
2035−source_location
2020+location_t
20362021 rich_location::get_loc (unsigned int idx) const
20372022 {
20382023 const location_range *locrange = get_range (idx);
@@ -2095,16 +2080,19 @@ rich_location::override_column (int column) · 56 unmodified lines
20952080 /* Add the given range. */
20962081
20972082 void
2098−rich_location::add_range (source_location loc, bool show_caret_p)
2083+rich_location::add_range (location_t loc,
2084+ enum range_display_kind range_display_kind,
2085+ const range_label *label)
20992086 {
21002087 location_range range;
21012088 range.m_loc = loc;
2102− range.m_show_caret_p = show_caret_p;
2089+ range.m_range_display_kind = range_display_kind;
2090+ range.m_label = label;
21032091 m_ranges.push (range);
21042092 }
21052093
21062094 /* Add or overwrite the location given by IDX, setting its location to LOC,
2107− and setting its "should my caret be printed" flag to SHOW_CARET_P.
2095+ and setting its m_range_display_kind to RANGE_DISPLAY_KIND.
21082096
21092097 It must either overwrite an existing location, or add one *exactly* on
21102098 the end of the array.
@@ -2117,20 +2105,20 @@ rich_location::add_range (source_location loc, bool show_caret_p) · 6 unmodified lines
21172105 - the "%C" and "%L" format codes in the Fortran frontend. */
21182106
21192107 void
2120−rich_location::set_range (line_maps * /*set*/, unsigned int idx,
2121− source_location loc, bool show_caret_p)
2108+rich_location::set_range (unsigned int idx, location_t loc,
2109+ enum range_display_kind range_display_kind)
21222110 {
21232111 /* We can either overwrite an existing range, or add one exactly
21242112 on the end of the array. */
21252113 linemap_assert (idx <= m_ranges.count ());
21262114
21272115 if (idx == m_ranges.count ())
2128− add_range (loc, show_caret_p);
2116+ add_range (loc, range_display_kind);
21292117 else
21302118 {
21312119 location_range *locrange = get_range (idx);
21322120 locrange->m_loc = loc;
2133− locrange->m_show_caret_p = show_caret_p;
2121+ locrange->m_range_display_kind = range_display_kind;
21342122 }
21352123
21362124 if (idx == 0)
@@ -2153,10 +2141,10 @@ rich_location::add_fixit_insert_before (const char *new_content) · 16 unmodified lines
21532141 immediately before the start of WHERE. */
21542142
21552143 void
2156−rich_location::add_fixit_insert_before (source_location where,
2144+rich_location::add_fixit_insert_before (location_t where,
21572145 const char *new_content)
21582146 {
2159− source_location start = get_range_from_loc (m_line_table, where).m_start;
2147+ location_t start = get_range_from_loc (m_line_table, where).m_start;
21602148 maybe_add_fixit (start, start, new_content);
21612149 }
21622150
@@ -2173,11 +2161,11 @@ rich_location::add_fixit_insert_after (const char *new_content) · 10 unmodified lines
21732161 immediately after the end-point of WHERE. */
21742162
21752163 void
2176−rich_location::add_fixit_insert_after (source_location where,
2164+rich_location::add_fixit_insert_after (location_t where,
21772165 const char *new_content)
21782166 {
2179− source_location finish = get_range_from_loc (m_line_table, where).m_finish;
2180− source_location next_loc
2167+ location_t finish = get_range_from_loc (m_line_table, where).m_finish;
2168+ location_t next_loc
21812169 = linemap_position_for_loc_and_offset (m_line_table, finish, 1);
21822170
21832171 /* linemap_position_for_loc_and_offset can fail, if so, it returns
@@ -2206,7 +2194,7 @@ rich_location::add_fixit_remove () · 22 unmodified lines
22062194 the start and finish of WHERE. */
22072195
22082196 void
2209−rich_location::add_fixit_remove (source_location where)
2197+rich_location::add_fixit_remove (location_t where)
22102198 {
22112199 source_range range = get_range_from_loc (m_line_table, where);
22122200 add_fixit_remove (range);
@@ -2236,7 +2224,7 @@ rich_location::add_fixit_replace (const char *new_content) · 23 unmodified lines
22362224 the start and finish of WHERE with NEW_CONTENT. */
22372225
22382226 void
2239−rich_location::add_fixit_replace (source_location where,
2227+rich_location::add_fixit_replace (location_t where,
22402228 const char *new_content)
22412229 {
22422230 source_range range = get_range_from_loc (m_line_table, where);
@@ -2250,11 +2238,11 @@ void · 7 unmodified lines
22502238 rich_location::add_fixit_replace (source_range src_range,
22512239 const char *new_content)
22522240 {
2253− source_location start = get_pure_location (m_line_table, src_range.m_start);
2254− source_location finish = get_pure_location (m_line_table, src_range.m_finish);
2241+ location_t start = get_pure_location (m_line_table, src_range.m_start);
2242+ location_t finish = get_pure_location (m_line_table, src_range.m_finish);
22552243
22562244 /* Fix-it hints use half-closed ranges, so attempt to offset the endpoint. */
2257− source_location next_loc
2245+ location_t next_loc
22582246 = linemap_position_for_loc_and_offset (m_line_table, finish, 1);
22592247 /* linemap_position_for_loc_and_offset can fail, if so, it returns
22602248 its input value. */
@@ -2285,7 +2273,7 @@ rich_location::get_last_fixit_hint () const · 24 unmodified lines
22852273 Otherwise (the common case), return false. */
22862274
22872275 bool
2288−rich_location::reject_impossible_fixit (source_location where)
2276+rich_location::reject_impossible_fixit (location_t where)
22892277 {
22902278 /* Fix-its within a rich_location should either all be suggested, or
22912279 none of them should be suggested.
@@ -2323,8 +2311,8 @@ rich_location::stop_supporting_fixits () · 31 unmodified lines
23232311 consolidating into the prior fixit if possible. */
23242312
23252313 void
2326−rich_location::maybe_add_fixit (source_location start,
2327− source_location next_loc,
2314+rich_location::maybe_add_fixit (location_t start,
2315+ location_t next_loc,
23282316 const char *new_content)
23292317 {
23302318 if (reject_impossible_fixit (start))
@@ -2405,8 +2393,8 @@ rich_location::maybe_add_fixit (source_location start, · 74 unmodified lines
24052393
24062394 /* class fixit_hint. */
24072395
2408−fixit_hint::fixit_hint (source_location start,
2409− source_location next_loc,
2396+fixit_hint::fixit_hint (location_t start,
2397+ location_t next_loc,
24102398 const char *new_content)
24112399 : m_start (start),
24122400 m_next_loc (next_loc),
@@ -2444,8 +2432,8 @@ fixit_hint::affects_line_p (const char *file, int line) const · 31 unmodified lines
24442432 Otherwise return false. */
24452433
24462434 bool
2447−fixit_hint::maybe_append (source_location start,
2448− source_location next_loc,
2435+fixit_hint::maybe_append (location_t start,
2436+ location_t next_loc,
24492437 const char *new_content)
24502438 {
24512439 /* For consolidation to be possible, START must be at this hint's
gcc/libcpp/location-example.txt+196−151
@@ -20,213 +20,258 @@ extern int foo (); · 19 unmodified lines
2020
2121
2222 The undocumented -fdump-internal-locations option outputs this information
23−to stderr, showing what each source_location value means. Source code
24−lines are quoted, showing both per-line source_location values and
25−per-line&column source_location values (written vertically under the
23+to stderr, showing what each location_t value means. Source code
24+lines are quoted, showing both per-line location_t values and
25+per-line&column location_t values (written vertically under the
2626 corresponding character of source code).
2727
2828 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
2929 RESERVED LOCATIONS
30− source_location interval: 0 <= loc < 2
30+ location_t interval: 0 <= loc < 2
3131
3232 ORDINARY MAP: 0
33− source_location interval: 32 <= loc < 64
33+ location_t interval: 32 <= loc < 64
3434 file: test.c
3535 starting at line: 1
36− column bits: 12
36+ column and range bits: 12
37+ column bits: 7
3738 range bits: 5
39+ reason: 0 (LC_ENTER)
40+ included from location: 0
3841 test.c: 1|loc: 32|#include "test.h"
3942 |69269258258148147
4043 |46802468024680246
4144
4245 ORDINARY MAP: 1
43− source_location interval: 64 <= loc < 96
46+ location_t interval: 64 <= loc < 96
4447 file: <built-in>
4548 starting at line: 0
49+ column and range bits: 0
4650 column bits: 0
4751 range bits: 0
52+ reason: 2 (LC_RENAME)
53+ included from location: 0
4854
4955 ORDINARY MAP: 2
50− source_location interval: 96 <= loc < 128
56+ location_t interval: 96 <= loc < 128
5157 file: <command-line>
5258 starting at line: 0
59+ column and range bits: 0
5360 column bits: 0
5461 range bits: 0
62+ reason: 2 (LC_RENAME)
63+ included from location: 0
5564
5665 ORDINARY MAP: 3
57− source_location interval: 128 <= loc < 160128
66+ location_t interval: 128 <= loc < 250240
5867 file: /usr/include/stdc-predef.h
5968 starting at line: 1
60− column bits: 12
69+ column and range bits: 12
70+ column bits: 7
6171 range bits: 5
72+ reason: 0 (LC_ENTER)
73+ included from location: 127 (in ordinary map 2)
6274 (contents of /usr/include/stdc-predef.h snipped for brevity)
6375
6476 ORDINARY MAP: 4
65− source_location interval: 160128 <= loc < 160160
77+ location_t interval: 250240 <= loc < 250272
6678 file: <command-line>
6779 starting at line: 32
68− column bits: 12
80+ column and range bits: 12
81+ column bits: 7
6982 range bits: 5
83+ reason: 1 (LC_LEAVE)
84+ included from location: 0
7085
7186 ORDINARY MAP: 5
72− source_location interval: 160160 <= loc < 164256
87+ location_t interval: 250272 <= loc < 254368
7388 file: test.c
7489 starting at line: 1
75− column bits: 12
90+ column and range bits: 12
91+ column bits: 7
7692 range bits: 5
77−test.c: 1|loc:160160|#include "test.h"
78− |00000000000000000
79− |12223334445556667
80− |92582581481470470
81− |24680246802468024
93+ reason: 2 (LC_RENAME)
94+ included from location: 0
95+test.c: 1|loc:250272|#include "test.h"
96+ |00000000000000000
97+ |33344445556667778
98+ |03603692692582581
99+ |46802468024680246
82100
83101 ORDINARY MAP: 6
84− source_location interval: 164256 <= loc < 173280
102+ location_t interval: 254368 <= loc < 266720
85103 file: test.h
86104 starting at line: 1
87− column bits: 12
105+ column and range bits: 12
106+ column bits: 7
88107 range bits: 5
89−test.h: 1|loc:164256|extern int foo ();
90− |444444444444444444
91− |233344455566677788
92− |825814814704703603
93− |802468024680246802
94−test.h: 2|loc:168352|
95− |
96− |
97− |
98− |
99−test.h: 3|loc:172448|#define PLUS(A, B) A + B
100− |222222222222222223333333
101− |455566677788889990001112
102− |814704703603692692582581
103− |024680246802468024680246
108+ reason: 0 (LC_ENTER)
109+ included from location: 250272 (in ordinary map 5)
110+test.h: 1|loc:254368|extern int foo ();
111+ |444444444444444444
112+ |444455566677788899
113+ |036926925825814814
114+ |024680246802468024
115+test.h: 2|loc:258464|
116+ |
117+ |
118+ |
119+ |
120+test.h: 3|loc:262560|#define PLUS(A, B) A + B
121+ |222222222222233333333333
122+ |566677788899900011122223
123+ |925825814814704703603692
124+ |246802468024680246802468
125+test.h: 4|loc:266656|
126+ |
127+ |
128+ |
129+ |
104130
105131 ORDINARY MAP: 7
106− source_location interval: 173280 <= loc < 202016
132+ location_t interval: 266720 <= loc < 299520
107133 file: test.c
108134 starting at line: 2
109− column bits: 12
135+ column and range bits: 12
136+ column bits: 7
110137 range bits: 5
111−test.c: 2|loc:173280|
112− |
113− |
114− |
115− |
116−test.c: 3|loc:177376|int
117− |777
118− |444
119− |047
120− |802
121−test.c: 4|loc:181472|main (int argc, char **argv)
122− |1111111111111111222222222222
123− |5556666777888999000111222333
124− |0360369269258258148147047036
125− |4680246802468024680246802468
126−test.c: 5|loc:185568|{
127− |5
128− |6
129− |0
130− |0
131−test.c: 6|loc:189664| int a = PLUS (1,2);
132− |999999999900000000000
133− |677788899900011122233
134− |926925825814814704703
135− |680246802468024680246
136−test.c: 7|loc:193760| int b = PLUS (3,4);
137− |333333344444444444444
138− |788899900011122233344
139− |925825814814704703603
140− |246802468024680246802
141−test.c: 8|loc:197856| return 0;
142− |77778888888
143− |89990001112
144− |82581481470
145− |80246802468
146−test.c: 9|loc:201952|}
147− |1
148− |9
149− |8
150− |4
138+ reason: 1 (LC_LEAVE)
139+ included from location: 0
140+test.c: 2|loc:266720|
141+ |
142+ |
143+ |
144+ |
145+test.c: 3|loc:270816|int
146+ |000
147+ |889
148+ |481
149+ |802
150+test.c: 4|loc:274912|main (int argc, char **argv)
151+ |4455555555555555555555555555
152+ |9900011122223334445556667778
153+ |4704703603692692582581481470
154+ |4680246802468024680246802468
155+test.c: 5|loc:279008|{
156+ |9
157+ |0
158+ |4
159+ |0
160+test.c: 6|loc:283104| int a = PLUS (1,2);
161+ |333333333333333333333
162+ |112222333444555666777
163+ |360369269258258148147
164+ |680246802468024680246
165+test.c: 7|loc:287200| int b = PLUS (3,4);
166+ |777777777777777777777
167+ |222333444555666777888
168+ |369269258258148147047
169+ |246802468024680246802
170+test.c: 8|loc:291296| return 0;
171+ |11111111111
172+ |33344455566
173+ |26925825814
174+ |80246802468
175+test.c: 9|loc:295392|}
176+ |5
177+ |4
178+ |2
179+ |4
180+test.c: 10|loc:299488|
181+ |
182+ |
183+ |
184+ |
151185
152186 UNALLOCATED LOCATIONS
153− source_location interval: 202016 <= loc < 2147483633
187+ location_t interval: 299520 <= loc < 2147483632
154188
155−MACRO 1: PLUS (7 tokens)
156− source_location interval: 2147483633 <= loc < 2147483640
157−test.c:7:11: note: expansion point is location 194115
158− int b = PLUS (3,4);
159− ^~~~
189+MACRO 3: PLUS (7 tokens)
190+ location_t interval: 2147483632 <= loc < 2147483639
191+test.c:7:11: note: expansion point is location 287555
192+ 7 | int b = PLUS (3,4);
193+ | ^~~~
194+ map->start_location: 2147483632
195+ macro_locations:
196+ 0: 287744, 263200
197+test.c:7:17: note: token 0 has x-location == 287744
198+ 7 | int b = PLUS (3,4);
199+ | ^
200+test.c:7:17: note: token 0 has y-location == 263200
201+ 1: 263264, 263264
202+In file included from test.c:1:
203+test.h:3:22: note: token 1 has x-location == y-location == 263264
204+ 3 | #define PLUS(A, B) A + B
205+ | ^
206+ 2: 287808, 263328
207+test.c:7:19: note: token 2 has x-location == 287808
208+ 7 | int b = PLUS (3,4);
209+ | ^
210+test.c:7:19: note: token 2 has y-location == 263328
211+ 3: 0, 0
212+cc1: note: token 3 has x-location == y-location == 0
213+ 4: 0, 0
214+cc1: note: token 4 has x-location == y-location == 0
215+ 5: 0, 0
216+cc1: note: token 5 has x-location == y-location == 0
217+ 6: 0, 0
218+cc1: note: token 6 has x-location == y-location == 0
160219
161− map->start_location: 2147483633
220+MACRO 2: PLUS (7 tokens)
221+ location_t interval: 2147483639 <= loc < 2147483646
222+test.c:6:11: note: expansion point is location 283459
223+ 6 | int a = PLUS (1,2);
224+ | ^~~~
225+ map->start_location: 2147483639
162226 macro_locations:
163− 0: 194304, 173088
164−test.c:7:17: note: token 0 has x-location == 194304
165− int b = PLUS (3,4);
166− ^
167−
168−test.c:7:17: note: token 0 has y-location == 173088
169− 1: 173152, 173152
170−In file included from test.c:1:0:
171−test.h:3:22: note: token 1 has x-location == y-location == 173152
172− #define PLUS(A, B) A + B
173− ^
174−
175− 2: 194368, 173216
176−test.c:7:19: note: token 2 has x-location == 194368
177− int b = PLUS (3,4);
178− ^
179−
180−test.c:7:19: note: token 2 has y-location == 173216
181− 3: 0, 2947526575
182−cc1: note: token 3 has x-location == 0
183−cc1: note: token 3 has y-location == 2947526575
184− 4: 2947526575, 2947526575
185−x-location == y-location == 2947526575 encodes token # 800042942
186− 5: 2947526575, 2947526575
187−x-location == y-location == 2947526575 encodes token # 800042942
188− 6: 2947526575, 2947526575
189−x-location == y-location == 2947526575 encodes token # 800042942
190−
191−MACRO 0: PLUS (7 tokens)
192− source_location interval: 2147483640 <= loc < 2147483647
193−test.c:6:11: note: expansion point is location 190019
194− int a = PLUS (1,2);
195− ^~~~
196−
197− map->start_location: 2147483640
227+ 0: 283648, 263200
228+test.c:6:17: note: token 0 has x-location == 283648
229+ 6 | int a = PLUS (1,2);
230+ | ^
231+test.c:6:17: note: token 0 has y-location == 263200
232+ 1: 263264, 263264
233+In file included from test.c:1:
234+test.h:3:22: note: token 1 has x-location == y-location == 263264
235+ 3 | #define PLUS(A, B) A + B
236+ | ^
237+ 2: 283712, 263328
238+test.c:6:19: note: token 2 has x-location == 283712
239+ 6 | int a = PLUS (1,2);
240+ | ^
241+test.c:6:19: note: token 2 has y-location == 263328
242+ 3: 0, 0
243+cc1: note: token 3 has x-location == y-location == 0
244+ 4: 0, 0
245+cc1: note: token 4 has x-location == y-location == 0
246+ 5: 0, 0
247+cc1: note: token 5 has x-location == y-location == 0
248+ 6: 0, 0
249+cc1: note: token 6 has x-location == y-location == 0
250+
251+MACRO 1: __GCC_IEC_559_COMPLEX (1 tokens)
252+ location_t interval: 2147483646 <= loc < 2147483647
253+In file included from <command-line>:31:
254+/usr/include/stdc-predef.h:45:6: note: expansion point is location 180564
255+ 45 | # if __GCC_IEC_559_COMPLEX > 0
256+ | ^~~~~~~~~~~~~~~~~~~~~
257+ map->start_location: 2147483646
198258 macro_locations:
199− 0: 190208, 173088
200−test.c:6:17: note: token 0 has x-location == 190208
201− int a = PLUS (1,2);
202− ^
203−
204−test.c:6:17: note: token 0 has y-location == 173088
205− 1: 173152, 173152
206−In file included from test.c:1:0:
207−test.h:3:22: note: token 1 has x-location == y-location == 173152
208− #define PLUS(A, B) A + B
209− ^
210−
211− 2: 190272, 173216
212−test.c:6:19: note: token 2 has x-location == 190272
213− int a = PLUS (1,2);
214− ^
215−
216−test.c:6:19: note: token 2 has y-location == 173216
217− 3: 0, 2947526575
218−cc1: note: token 3 has x-location == 0
219−cc1: note: token 3 has y-location == 2947526575
220− 4: 2947526575, 2947526575
221−x-location == y-location == 2947526575 encodes token # 800042935
222− 5: 2947526575, 2947526575
223−x-location == y-location == 2947526575 encodes token # 800042935
224− 6: 2947526575, 2947526575
225−x-location == y-location == 2947526575 encodes token # 800042935
226−
227−MAX_SOURCE_LOCATION
228− source_location interval: 2147483647 <= loc < 2147483648
259+ 0: 1, 1
260+<built-in>: note: token 0 has x-location == y-location == 1
261+
262+MACRO 0: __GCC_IEC_559 (1 tokens)
263+ location_t interval: 2147483647 <= loc < 2147483648
264+/usr/include/stdc-predef.h:37:6: note: expansion point is location 147788
265+ 37 | # if __GCC_IEC_559 > 0
266+ | ^~~~~~~~~~~~~
267+ map->start_location: 2147483647
268+ macro_locations:
269+ 0: 1, 1
270+<built-in>: note: token 0 has x-location == y-location == 1
271+
272+MAX_LOCATION_T
273+ location_t interval: 2147483647 <= loc < 2147483648
229274
230275 AD-HOC LOCATIONS
231− source_location interval: 2147483648 <= loc < 4294967295
276+ location_t interval: 2147483648 <= loc < 4294967295
232277 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gcc/libcpp/macro.c+429−409
@@ -1,5 +1,5 @@
11 /* Part of CPP library. (Macro and #define handling.)
2− Copyright (C) 1986-2018 Free Software Foundation, Inc.
2+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
33 Written by Per Bothner, 1994.
44 Based on CCCP program by Paul Rubin, June 1986
55 Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -39,9 +39,9 @@ struct macro_arg · 33 unmodified lines
3939 const cpp_token *stringified; /* Stringified argument. */
4040 unsigned int count; /* # of tokens in argument. */
4141 unsigned int expanded_count; /* # of tokens in expanded argument. */
42− source_location *virt_locs; /* Where virtual locations for
42+ location_t *virt_locs; /* Where virtual locations for
4343 unexpanded tokens are stored. */
44− source_location *expanded_virt_locs; /* Where virtual locations for
44+ location_t *expanded_virt_locs; /* Where virtual locations for
4545 expanded tokens are
4646 stored. */
4747 };
@@ -72,7 +72,7 @@ struct macro_arg_token_iter · 24 unmodified lines
7272 /* A pointer to the "full" location of the current token. If
7373 -ftrack-macro-expansion is used this location tracks loci across
7474 macro expansion. */
75− const source_location *location_ptr;
75+ const location_t *location_ptr;
7676 #if CHECKING_P
7777 /* The number of times the iterator went forward. This useful only
7878 when checking is enabled. */
@@ -85,8 +85,9 @@ struct macro_arg_token_iter · 6 unmodified lines
8585 struct macro_arg_saved_data {
8686 /* The canonical (UTF-8) spelling of this identifier. */
8787 cpp_hashnode *canonical_node;
88− /* The previous value of this identifier. */
88+ /* The previous value & type of this identifier. */
8989 union _cpp_hashnode_value value;
90+ node_type type;
9091 };
9192
9293 static const char *vaopt_paste_error =
@@ -234,22 +235,22 @@ class vaopt_state { · 141 unmodified lines
234235 int m_state;
235236
236237 /* The location of the paste token. */
237− source_location m_paste_location;
238+ location_t m_paste_location;
238239
239240 /* Location of the __VA_OPT__ token. */
240− source_location m_location;
241+ location_t m_location;
241242 };
242243
243244 /* Macro expansion. */
244245
245246 static int enter_macro_context (cpp_reader *, cpp_hashnode *,
246− const cpp_token *, source_location);
247+ const cpp_token *, location_t);
247248 static int builtin_macro (cpp_reader *, cpp_hashnode *,
248− source_location, source_location);
249+ location_t, location_t);
249250 static void push_ptoken_context (cpp_reader *, cpp_hashnode *, _cpp_buff *,
250251 const cpp_token **, unsigned int);
251252 static void push_extended_tokens_context (cpp_reader *, cpp_hashnode *,
252− _cpp_buff *, source_location *,
253+ _cpp_buff *, location_t *,
253254 const cpp_token **, unsigned int);
254255 static _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *,
255256 _cpp_buff **, unsigned *);
@@ -259,21 +260,21 @@ static void expand_arg (cpp_reader *, macro_arg *); · 3 unmodified lines
259260 static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int);
260261 static const cpp_token *stringify_arg (cpp_reader *, macro_arg *);
261262 static void paste_all_tokens (cpp_reader *, const cpp_token *);
262−static bool paste_tokens (cpp_reader *, source_location,
263+static bool paste_tokens (cpp_reader *, location_t,
263264 const cpp_token **, const cpp_token *);
264265 static void alloc_expanded_arg_mem (cpp_reader *, macro_arg *, size_t);
265266 static void ensure_expanded_arg_room (cpp_reader *, macro_arg *, size_t, size_t *);
266267 static void delete_macro_args (_cpp_buff*, unsigned num_args);
267268 static void set_arg_token (macro_arg *, const cpp_token *,
268− source_location, size_t,
269+ location_t, size_t,
269270 enum macro_arg_token_kind,
270271 bool);
271−static const source_location *get_arg_token_location (const macro_arg *,
272+static const location_t *get_arg_token_location (const macro_arg *,
272273 enum macro_arg_token_kind);
273274 static const cpp_token **arg_token_ptr_at (const macro_arg *,
274275 size_t,
275276 enum macro_arg_token_kind,
276− source_location **virt_location);
277+ location_t **virt_location);
277278
278279 static void macro_arg_token_iter_init (macro_arg_token_iter *, bool,
279280 enum macro_arg_token_kind,
@@ -281,49 +282,48 @@ static void macro_arg_token_iter_init (macro_arg_token_iter *, bool, · 1 unmodified line
281282 const cpp_token **);
282283 static const cpp_token *macro_arg_token_iter_get_token
283284 (const macro_arg_token_iter *it);
284−static source_location macro_arg_token_iter_get_location
285+static location_t macro_arg_token_iter_get_location
285286 (const macro_arg_token_iter *);
286287 static void macro_arg_token_iter_forward (macro_arg_token_iter *);
287288 static _cpp_buff *tokens_buff_new (cpp_reader *, size_t,
288− source_location **);
289+ location_t **);
289290 static size_t tokens_buff_count (_cpp_buff *);
290291 static const cpp_token **tokens_buff_last_token_ptr (_cpp_buff *);
291292 static inline const cpp_token **tokens_buff_put_token_to (const cpp_token **,
292− source_location *,
293+ location_t *,
293294 const cpp_token *,
294− source_location,
295− source_location,
295+ location_t,
296+ location_t,
296297 const line_map_macro *,
297298 unsigned int);
298299
299300 static const cpp_token **tokens_buff_add_token (_cpp_buff *,
300− source_location *,
301+ location_t *,
301302 const cpp_token *,
302− source_location,
303− source_location,
303+ location_t,
304+ location_t,
304305 const line_map_macro *,
305306 unsigned int);
306307 static inline void tokens_buff_remove_last_token (_cpp_buff *);
307308 static void replace_args (cpp_reader *, cpp_hashnode *, cpp_macro *,
308− macro_arg *, source_location);
309+ macro_arg *, location_t);
309310 static _cpp_buff *funlike_invocation_p (cpp_reader *, cpp_hashnode *,
310311 _cpp_buff **, unsigned *);
311−static bool create_iso_definition (cpp_reader *, cpp_macro *);
312+static cpp_macro *create_iso_definition (cpp_reader *);
312313
313314 /* #define directive parsing and handling. */
314315
315−static cpp_token *alloc_expansion_token (cpp_reader *, cpp_macro *);
316−static cpp_token *lex_expansion_token (cpp_reader *, cpp_macro *);
316+static cpp_macro *lex_expansion_token (cpp_reader *, cpp_macro *);
317317 static bool warn_of_redefinition (cpp_reader *, cpp_hashnode *,
318318 const cpp_macro *);
319−static bool parse_params (cpp_reader *, cpp_macro *);
319+static bool parse_params (cpp_reader *, unsigned *, bool *);
320320 static void check_trad_stringification (cpp_reader *, const cpp_macro *,
321321 const cpp_string *);
322322 static bool reached_end_of_context (cpp_context *);
323323 static void consume_next_token_from_context (cpp_reader *pfile,
324324 const cpp_token **,
325− source_location *);
326−static const cpp_token* cpp_get_token_1 (cpp_reader *, source_location *);
325+ location_t *);
326+static const cpp_token* cpp_get_token_1 (cpp_reader *, location_t *);
327327
328328 static cpp_hashnode* macro_of_context (cpp_context *context);
329329
@@ -342,7 +342,7 @@ int · 12 unmodified lines
342342 _cpp_warn_if_unused_macro (cpp_reader *pfile, cpp_hashnode *node,
343343 void *v ATTRIBUTE_UNUSED)
344344 {
345− if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
345+ if (cpp_user_macro_p (node))
346346 {
347347 cpp_macro *macro = node->value.macro;
348348
@@ -382,7 +382,7 @@ static const char * const monthnames[] = · 33 unmodified lines
382382 a builtin macro. */
383383 const uchar *
384384 _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
385− source_location loc)
385+ location_t loc)
386386 {
387387 const uchar *result = NULL;
388388 linenum_type number = 1;
@@ -587,7 +587,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, · 198 unmodified lines
587587 point of the macro. */
588588 static int
589589 builtin_macro (cpp_reader *pfile, cpp_hashnode *node,
590− source_location loc, source_location expand_loc)
590+ location_t loc, location_t expand_loc)
591591 {
592592 const uchar *buf;
593593 size_t len;
@@ -623,7 +623,7 @@ builtin_macro (cpp_reader *pfile, cpp_hashnode *node, · 29 unmodified lines
623623 Create a macro line map and generate a virtual location for
624624 the token resulting from the expansion of the built-in
625625 macro. */
626− source_location *virt_locs = NULL;
626+ location_t *virt_locs = NULL;
627627 _cpp_buff *token_buf = tokens_buff_new (pfile, 1, &virt_locs);
628628 const line_map_macro * map =
629629 linemap_enter_macro (pfile->line_table, node, loc, 1);
@@ -773,7 +773,7 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg) · 143 unmodified lines
773773 guaranteed to not have the PASTE_LEFT flag set. LOCATION is
774774 the virtual location used for error reporting. */
775775 static bool
776−paste_tokens (cpp_reader *pfile, source_location location,
776+paste_tokens (cpp_reader *pfile, location_t location,
777777 const cpp_token **plhs, const cpp_token *rhs)
778778 {
779779 unsigned char *buf, *end, *lhsend;
@@ -803,7 +803,7 @@ paste_tokens (cpp_reader *pfile, source_location location, · 23 unmodified lines
803803 lhs = _cpp_lex_direct (pfile);
804804 if (pfile->buffer->cur != pfile->buffer->rlimit)
805805 {
806− source_location saved_loc = lhs->src_loc;
806+ location_t saved_loc = lhs->src_loc;
807807
808808 _cpp_pop_buffer (pfile);
809809 _cpp_backup_tokens (pfile, 1);
@@ -841,7 +841,7 @@ paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs) · 31 unmodified lines
841841 {
842842 const cpp_token *rhs = NULL;
843843 cpp_context *context = pfile->context;
844− source_location virt_loc = 0;
844+ location_t virt_loc = 0;
845845
846846 /* We are expanding a macro and we must have been called on a token
847847 that appears at the left hand side of a ## operator. */
@@ -903,7 +903,7 @@ paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs) · 55 unmodified lines
903903 /* Put the resulting token in its own context. */
904904 if (context->tokens_kind == TOKENS_KIND_EXTENDED)
905905 {
906− source_location *virt_locs = NULL;
906+ location_t *virt_locs = NULL;
907907 _cpp_buff *token_buf = tokens_buff_new (pfile, 1, &virt_locs);
908908 tokens_buff_add_token (token_buf, virt_locs, lhs,
909909 virt_loc, 0, NULL, 0);
@@ -964,6 +964,10 @@ _cpp_arguments_ok (cpp_reader *pfile, cpp_macro *macro, const cpp_hashnode *node · 54 unmodified lines
964964 "macro \"%s\" passed %u arguments, but takes just %u",
965965 NODE_NAME (node), argc, macro->paramc);
966966
967+ if (macro->line > RESERVED_LOCATION_COUNT)
968+ cpp_error_at (pfile, CPP_DL_NOTE, macro->line, "macro \"%s\" defined here",
969+ NODE_NAME (node));
970+
967971 return false;
968972 }
969973
@@ -989,7 +993,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 19 unmodified lines
989993 macro_arg *args, *arg;
990994 const cpp_token *token;
991995 unsigned int argc;
992− source_location virt_loc;
996+ location_t virt_loc;
993997 bool track_macro_expansion_p = CPP_OPTION (pfile, track_macro_expansion);
994998 unsigned num_args_alloced = 0;
995999
@@ -1026,7 +1030,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 30 unmodified lines
10261030 if (track_macro_expansion_p)
10271031 {
10281032 virt_locs_capacity = DEFAULT_NUM_TOKENS_PER_MACRO_ARG;
1029− arg->virt_locs = XNEWVEC (source_location,
1033+ arg->virt_locs = XNEWVEC (location_t,
10301034 virt_locs_capacity);
10311035 }
10321036
@@ -1044,7 +1048,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 11 unmodified lines
10441048 && (ntokens + 2 > virt_locs_capacity))
10451049 {
10461050 virt_locs_capacity += ARG_TOKENS_EXTENT;
1047− arg->virt_locs = XRESIZEVEC (source_location,
1051+ arg->virt_locs = XRESIZEVEC (location_t,
10481052 arg->virt_locs,
10491053 virt_locs_capacity);
10501054 }
@@ -1235,13 +1239,14 @@ funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node, · 184 unmodified lines
12351239 static inline unsigned int
12361240 macro_real_token_count (const cpp_macro *macro)
12371241 {
1238− unsigned int i;
12391242 if (__builtin_expect (!macro->extra_tokens, true))
12401243 return macro->count;
1241− for (i = 0; i < macro->count; i++)
1242− if (macro->exp.tokens[i].type == CPP_PASTE)
1243− return i;
1244− abort ();
1244+
1245+ for (unsigned i = macro->count; i--;)
1246+ if (macro->exp.tokens[i].type != CPP_PASTE)
1247+ return i + 1;
1248+
1249+ return 0;
12451250 }
12461251
12471252 /* Push the context of a macro with hash entry NODE onto the context
@@ -1255,7 +1260,7 @@ macro_real_token_count (const cpp_macro *macro) · 7 unmodified lines
12551260 macro. */
12561261 static int
12571262 enter_macro_context (cpp_reader *pfile, cpp_hashnode *node,
1258− const cpp_token *result, source_location location)
1263+ const cpp_token *result, location_t location)
12591264 {
12601265 /* The presence of a macro invalidates a file's controlling macro. */
12611266 pfile->mi_valid = false;
@@ -1273,17 +1278,7 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 11 unmodified lines
12731278 function where set this flag to FALSE. */
12741279 pfile->about_to_expand_macro_p = true;
12751280
1276− if ((node->flags & NODE_BUILTIN) && !(node->flags & NODE_USED))
1277− {
1278− node->flags |= NODE_USED;
1279− if ((!pfile->cb.user_builtin_macro
1280− || !pfile->cb.user_builtin_macro (pfile, node))
1281− && pfile->cb.used_define)
1282− pfile->cb.used_define (pfile, pfile->directive_line, node);
1283− }
1284−
1285− /* Handle standard macros. */
1286− if (! (node->flags & NODE_BUILTIN))
1281+ if (cpp_user_macro_p (node))
12871282 {
12881283 cpp_macro *macro = node->value.macro;
12891284 _cpp_buff *pragma_buff = NULL;
@@ -1329,13 +1324,9 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 39 unmodified lines
13291324 /* Disable the macro within its expansion. */
13301325 node->flags |= NODE_DISABLED;
13311326
1332− if (!(node->flags & NODE_USED))
1333− {
1334− node->flags |= NODE_USED;
1335− if (pfile->cb.used_define)
1336− pfile->cb.used_define (pfile, pfile->directive_line, node);
1337− }
1338−
1327+ /* Laziness can only affect the expansion tokens of the macro,
1328+ not its fun-likeness or parameters. */
1329+ _cpp_maybe_notify_macro_use (pfile, node);
13391330 if (pfile->cb.used)
13401331 pfile->cb.used (pfile, location, node);
13411332
@@ -1349,7 +1340,7 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 7 unmodified lines
13491340 unsigned int i;
13501341 const cpp_token *src = macro->exp.tokens;
13511342 const line_map_macro *map;
1352− source_location *virt_locs = NULL;
1343+ location_t *virt_locs = NULL;
13531344 _cpp_buff *macro_tokens
13541345 = tokens_buff_new (pfile, tokens_count, &virt_locs);
13551346
@@ -1410,29 +1401,23 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 54 unmodified lines
14101401 pfile->about_to_expand_macro_p = false;
14111402 /* Handle built-in macros and the _Pragma operator. */
14121403 {
1413− source_location loc, expand_loc;
1404+ location_t expand_loc;
14141405
14151406 if (/* The top-level macro invocation that triggered the expansion
1416− we are looking at is with a standard macro ...*/
1417− !(pfile->top_most_macro_node->flags & NODE_BUILTIN)
1418− /* ... and it's a function-like macro invocation. */
1419− && pfile->top_most_macro_node->value.macro->fun_like)
1420− {
1421− /* Then the location of the end of the macro invocation is the
1422− location of the closing parenthesis. */
1423− loc = pfile->cur_token[-1].src_loc;
1424− expand_loc = loc;
1425− }
1407+ we are looking at is with a function-like user macro ... */
1408+ cpp_fun_like_macro_p (pfile->top_most_macro_node)
1409+ /* ... and we are tracking the macro expansion. */
1410+ && CPP_OPTION (pfile, track_macro_expansion))
1411+ /* Then the location of the end of the macro invocation is the
1412+ location of the expansion point of this macro. */
1413+ expand_loc = location;
14261414 else
1427− {
1428− /* Otherwise, the location of the end of the macro invocation is
1429− the location of the expansion point of that top-level macro
1430− invocation. */
1431− loc = location;
1432− expand_loc = pfile->invocation_location;
1433− }
1415+ /* Otherwise, the location of the end of the macro invocation is
1416+ the location of the expansion point of that top-level macro
1417+ invocation. */
1418+ expand_loc = pfile->invocation_location;
14341419
1435− return builtin_macro (pfile, node, loc, expand_loc);
1420+ return builtin_macro (pfile, node, location, expand_loc);
14361421 }
14371422 }
14381423
@@ -1482,12 +1467,12 @@ delete_macro_args (_cpp_buff *buff, unsigned num_args) · 43 unmodified lines
14821467 tokens, at least. */
14831468 static void
14841469 set_arg_token (macro_arg *arg, const cpp_token *token,
1485− source_location location, size_t index,
1470+ location_t location, size_t index,
14861471 enum macro_arg_token_kind kind,
14871472 bool track_macro_exp_p)
14881473 {
14891474 const cpp_token **token_ptr;
1490− source_location *loc = NULL;
1475+ location_t *loc = NULL;
14911476
14921477 token_ptr =
14931478 arg_token_ptr_at (arg, index, kind,
@@ -1508,13 +1493,13 @@ set_arg_token (macro_arg *arg, const cpp_token *token, · 14 unmodified lines
15081493 /* Get the pointer to the location of the argument token of the
15091494 function-like macro argument ARG. This function must be called
15101495 only when we -ftrack-macro-expansion is on. */
1511−static const source_location *
1496+static const location_t *
15121497 get_arg_token_location (const macro_arg *arg,
15131498 enum macro_arg_token_kind kind)
15141499 {
1515− const source_location *loc = NULL;
1500+ const location_t *loc = NULL;
15161501 const cpp_token **token_ptr =
1517− arg_token_ptr_at (arg, 0, kind, (source_location **) &loc);
1502+ arg_token_ptr_at (arg, 0, kind, (location_t **) &loc);
15181503
15191504 if (token_ptr == NULL)
15201505 return NULL;
@@ -1531,7 +1516,7 @@ get_arg_token_location (const macro_arg *arg, · 10 unmodified lines
15311516 static const cpp_token **
15321517 arg_token_ptr_at (const macro_arg *arg, size_t index,
15331518 enum macro_arg_token_kind kind,
1534− source_location **virt_location)
1519+ location_t **virt_location)
15351520 {
15361521 const cpp_token **tokens_ptr = NULL;
15371522
@@ -1561,7 +1546,7 @@ arg_token_ptr_at (const macro_arg *arg, size_t index, · 23 unmodified lines
15611546 *virt_location = &arg->expanded_virt_locs[index];
15621547 else if (kind == MACRO_ARG_TOKEN_STRINGIFIED)
15631548 *virt_location =
1564− (source_location *) &tokens_ptr[index]->src_loc;
1549+ (location_t *) &tokens_ptr[index]->src_loc;
15651550 }
15661551 return &tokens_ptr[index];
15671552 }
@@ -1638,7 +1623,7 @@ macro_arg_token_iter_get_token (const macro_arg_token_iter *it) · 70 unmodified lines
16381623 }
16391624
16401625 /* Return the location of the token pointed to by the iterator.*/
1641−static source_location
1626+static location_t
16421627 macro_arg_token_iter_get_location (const macro_arg_token_iter *it)
16431628 {
16441629 #if CHECKING_P
@@ -1735,14 +1720,14 @@ last_token_is (_cpp_buff *buff, const cpp_token **ptr) · 90 unmodified lines
17351720 function-like macro invocation. */
17361721 static void
17371722 replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
1738− macro_arg *args, source_location expansion_point_loc)
1723+ macro_arg *args, location_t expansion_point_loc)
17391724 {
17401725 unsigned int i, total;
17411726 const cpp_token *src, *limit;
17421727 const cpp_token **first = NULL;
17431728 macro_arg *arg;
17441729 _cpp_buff *buff = NULL;
1745− source_location *virt_locs = NULL;
1730+ location_t *virt_locs = NULL;
17461731 unsigned int exp_count;
17471732 const line_map_macro *map = NULL;
17481733 int track_macro_exp;
@@ -1780,7 +1765,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, · 31 unmodified lines
17801765 arg->stringified = stringify_arg (pfile, arg);
17811766 }
17821767 else if ((src->flags & PASTE_LEFT)
1783− || (src > macro->exp.tokens && (src[-1].flags & PASTE_LEFT)))
1768+ || (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT)))
17841769 total += arg->count - 1;
17851770 else
17861771 {
@@ -1812,7 +1797,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, · 25 unmodified lines
18121797
18131798 As far as tokens are concerned, the memory overhead of
18141799 -ftrack-macro-expansion is proportional to the number of
1815− macros that get expanded multiplied by sizeof (source_location).
1800+ macros that get expanded multiplied by sizeof (location_t).
18161801 The good news is that extra memory gets freed when the macro
18171802 context is freed, i.e shortly after the macro got expanded. */
18181803
@@ -2231,7 +2216,7 @@ static void · 412 unmodified lines
22312216 push_extended_tokens_context (cpp_reader *pfile,
22322217 cpp_hashnode *macro,
22332218 _cpp_buff *token_buff,
2234− source_location *virt_locs,
2219+ location_t *virt_locs,
22352220 const cpp_token **first,
22362221 unsigned int count)
22372222 {
@@ -2277,13 +2262,13 @@ _cpp_push_text_context (cpp_reader *pfile, cpp_hashnode *macro, · 39 unmodified lines
22772262 expansion. */
22782263 static _cpp_buff*
22792264 tokens_buff_new (cpp_reader *pfile, size_t len,
2280− source_location **virt_locs)
2265+ location_t **virt_locs)
22812266 {
22822267 size_t tokens_size = len * sizeof (cpp_token *);
2283− size_t locs_size = len * sizeof (source_location);
2268+ size_t locs_size = len * sizeof (location_t);
22842269
22852270 if (virt_locs != NULL)
2286− *virt_locs = XNEWVEC (source_location, locs_size);
2271+ *virt_locs = XNEWVEC (location_t, locs_size);
22872272 return _cpp_get_buff (pfile, tokens_size);
22882273 }
22892274
@@ -2340,14 +2325,14 @@ tokens_buff_remove_last_token (_cpp_buff *tokens_buff) · 50 unmodified lines
23402325 point. */
23412326 static inline const cpp_token **
23422327 tokens_buff_put_token_to (const cpp_token **dest,
2343− source_location *virt_loc_dest,
2328+ location_t *virt_loc_dest,
23442329 const cpp_token *token,
2345− source_location virt_loc,
2346− source_location parm_def_loc,
2330+ location_t virt_loc,
2331+ location_t parm_def_loc,
23472332 const line_map_macro *map,
23482333 unsigned int macro_token_index)
23492334 {
2350− source_location macro_loc = virt_loc;
2335+ location_t macro_loc = virt_loc;
23512336 const cpp_token **result;
23522337
23532338 if (virt_loc_dest)
@@ -2385,15 +2370,15 @@ tokens_buff_put_token_to (const cpp_token **dest, · 31 unmodified lines
23852370 position of the token coming right after the insertion point. */
23862371 static const cpp_token **
23872372 tokens_buff_add_token (_cpp_buff *buffer,
2388− source_location *virt_locs,
2373+ location_t *virt_locs,
23892374 const cpp_token *token,
2390− source_location virt_loc,
2391− source_location parm_def_loc,
2375+ location_t virt_loc,
2376+ location_t parm_def_loc,
23922377 const line_map_macro *map,
23932378 unsigned int macro_token_index)
23942379 {
23952380 const cpp_token **result;
2396− source_location *virt_loc_dest = NULL;
2381+ location_t *virt_loc_dest = NULL;
23972382 unsigned token_index =
23982383 (BUFF_FRONT (buffer) - buffer->base) / sizeof (cpp_token *);
23992384
@@ -2425,7 +2410,7 @@ alloc_expanded_arg_mem (cpp_reader *pfile, macro_arg *arg, size_t capacity) · 25 unmodified lines
24252410
24262411 arg->expanded = XNEWVEC (const cpp_token *, capacity);
24272412 if (CPP_OPTION (pfile, track_macro_expansion))
2428− arg->expanded_virt_locs = XNEWVEC (source_location, capacity);
2413+ arg->expanded_virt_locs = XNEWVEC (location_t, capacity);
24292414
24302415 }
24312416
@@ -2447,9 +2432,9 @@ ensure_expanded_arg_room (cpp_reader *pfile, macro_arg *arg, · 15 unmodified lines
24472432 if (CPP_OPTION (pfile, track_macro_expansion))
24482433 {
24492434 if (arg->expanded_virt_locs == NULL)
2450− arg->expanded_virt_locs = XNEWVEC (source_location, size);
2435+ arg->expanded_virt_locs = XNEWVEC (location_t, size);
24512436 else
2452− arg->expanded_virt_locs = XRESIZEVEC (source_location,
2437+ arg->expanded_virt_locs = XRESIZEVEC (location_t,
24532438 arg->expanded_virt_locs,
24542439 size);
24552440 }
@@ -2492,7 +2477,7 @@ expand_arg (cpp_reader *pfile, macro_arg *arg) · 36 unmodified lines
24922477 for (;;)
24932478 {
24942479 const cpp_token *token;
2495− source_location location;
2480+ location_t location;
24962481
24972482 ensure_expanded_arg_room (pfile, arg, arg->expanded_count + 1,
24982483 &capacity);
@@ -2631,7 +2616,7 @@ reached_end_of_context (cpp_context *context) · 132 unmodified lines
26312616 static inline void
26322617 consume_next_token_from_context (cpp_reader *pfile,
26332618 const cpp_token ** token,
2634− source_location *location)
2619+ location_t *location)
26352620 {
26362621 cpp_context *c = pfile->context;
26372622
@@ -2670,8 +2655,8 @@ consume_next_token_from_context (cpp_reader *pfile, · 32 unmodified lines
26702655 location if we are in the traditional mode, and just returns
26712656 LOCATION otherwise. */
26722657
2673−static inline source_location
2674−maybe_adjust_loc_for_trad_cpp (cpp_reader *pfile, source_location location)
2658+static inline location_t
2659+maybe_adjust_loc_for_trad_cpp (cpp_reader *pfile, location_t location)
26752660 {
26762661 if (CPP_OPTION (pfile, traditional))
26772662 {
@@ -2696,12 +2681,12 @@ maybe_adjust_loc_for_trad_cpp (cpp_reader *pfile, source_location location) · 18 unmodified lines
26962681 cpp_get_token_with_location to learn more about the meaning of this
26972682 location. */
26982683 static const cpp_token*
2699−cpp_get_token_1 (cpp_reader *pfile, source_location *location)
2684+cpp_get_token_1 (cpp_reader *pfile, location_t *location)
27002685 {
27012686 const cpp_token *result;
27022687 /* This token is a virtual token that either encodes a location
27032688 related to macro expansion or a spelling location. */
2704− source_location virt_loc = 0;
2689+ location_t virt_loc = 0;
27052690 /* pfile->about_to_expand_macro_p can be overriden by indirect calls
27062691 to functions that push macro contexts. So let's save it so that
27072692 we can restore it when we are about to leave this routine. */
@@ -2750,7 +2735,7 @@ cpp_get_token_1 (cpp_reader *pfile, source_location *location) · 42 unmodified lines
27502735
27512736 node = result->val.node.node;
27522737
2753− if (node->type != NT_MACRO || (result->flags & NO_EXPAND))
2738+ if (node->type == NT_VOID || (result->flags & NO_EXPAND))
27542739 break;
27552740
27562741 if (!(node->flags & NODE_DISABLED))
@@ -2899,7 +2884,7 @@ cpp_get_token (cpp_reader *pfile) · 142 unmodified lines
28992884 location is just the same thing as its spelling location. */
29002885
29012886 const cpp_token *
2902−cpp_get_token_with_location (cpp_reader *pfile, source_location *loc)
2887+cpp_get_token_with_location (cpp_reader *pfile, location_t *loc)
29032888 {
29042889 return cpp_get_token_1 (pfile, loc);
29052890 }
@@ -2995,23 +2980,18 @@ _cpp_backup_tokens (cpp_reader *pfile, unsigned int count) · 89 unmodified lines
29952980
29962981 /* #define directive parsing and handling. */
29972982
2998−/* Returns nonzero if a macro redefinition warning is required. */
2983+/* Returns true if a macro redefinition warning is required. */
29992984 static bool
30002985 warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node,
30012986 const cpp_macro *macro2)
30022987 {
3003− const cpp_macro *macro1;
3004− unsigned int i;
3005−
30062988 /* Some redefinitions need to be warned about regardless. */
30072989 if (node->flags & NODE_WARN)
30082990 return true;
30092991
30102992 /* Suppress warnings for builtins that lack the NODE_WARN flag,
30112993 unless Wbuiltin-macro-redefined. */
3012− if (node->flags & NODE_BUILTIN
3013− && (!pfile->cb.user_builtin_macro
3014− || !pfile->cb.user_builtin_macro (pfile, node)))
2994+ if (cpp_builtin_macro_p (node))
30152995 return CPP_OPTION (pfile, warn_builtin_macro_redefined);
30162996
30172997 /* Redefinitions of conditional (context-sensitive) macros, on
@@ -3019,9 +2999,17 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, · 1 unmodified line
30192999 if (node->flags & NODE_CONDITIONAL)
30203000 return false;
30213001
3002+ cpp_macro *macro1 = node->value.macro;
3003+ if (macro1->lazy)
3004+ {
3005+ /* We don't want to mark MACRO as used, but do need to finalize
3006+ its laziness. */
3007+ pfile->cb.user_lazy_macro (pfile, macro1, macro1->lazy - 1);
3008+ macro1->lazy = 0;
3009+ }
3010+
30223011 /* Redefinition of a macro is allowed if and only if the old and new
30233012 definitions are the same. (6.10.3 paragraph 2). */
3024− macro1 = node->value.macro;
30253013
30263014 /* Don't check count here as it can be different in valid
30273015 traditional redefinitions with just whitespace differences. */
@@ -3031,18 +3019,18 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, · 3 unmodified lines
30313019 return true;
30323020
30333021 /* Check parameter spellings. */
3034− for (i = 0; i < macro1->paramc; i++)
3035− if (macro1->params[i] != macro2->params[i])
3022+ for (unsigned i = macro1->paramc; i--; )
3023+ if (macro1->parm.params[i] != macro2->parm.params[i])
30363024 return true;
30373025
30383026 /* Check the replacement text or tokens. */
3039− if (CPP_OPTION (pfile, traditional))
3027+ if (macro1->kind == cmk_traditional)
30403028 return _cpp_expansions_different_trad (macro1, macro2);
30413029
30423030 if (macro1->count != macro2->count)
30433031 return true;
30443032
3045− for (i = 0; i < macro1->count; i++)
3033+ for (unsigned i= macro1->count; i--; )
30463034 if (!_cpp_equiv_tokens (&macro1->exp.tokens[i], &macro2->exp.tokens[i]))
30473035 return true;
30483036
@@ -3055,124 +3043,164 @@ _cpp_free_definition (cpp_hashnode *h) · 6 unmodified lines
30553043 {
30563044 /* Macros and assertions no longer have anything to free. */
30573045 h->type = NT_VOID;
3058− /* Clear builtin flag in case of redefinition. */
3059− h->flags &= ~(NODE_BUILTIN | NODE_DISABLED | NODE_USED);
3046+ h->value.answers = NULL;
3047+ h->flags &= ~(NODE_DISABLED | NODE_USED);
30603048 }
30613049
30623050 /* Save parameter NODE (spelling SPELLING) to the parameter list of
3063− macro MACRO. Returns zero on success, nonzero if the parameter is
3064− a duplicate. */
3051+ macro MACRO. Returns true on success, false on failure. */
30653052 bool
3066−_cpp_save_parameter (cpp_reader *pfile, cpp_macro *macro, cpp_hashnode *node,
3053+_cpp_save_parameter (cpp_reader *pfile, unsigned n, cpp_hashnode *node,
30673054 cpp_hashnode *spelling)
30683055 {
3069− unsigned int len;
30703056 /* Constraint 6.10.3.6 - duplicate parameter names. */
3071− if (node->flags & NODE_MACRO_ARG)
3057+ if (node->type == NT_MACRO_ARG)
30723058 {
30733059 cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter \"%s\"",
30743060 NODE_NAME (node));
3075− return true;
3061+ return false;
30763062 }
30773063
3078− if (BUFF_ROOM (pfile->a_buff)
3079− < (macro->paramc + 1) * sizeof (cpp_hashnode *))
3080− _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (cpp_hashnode *));
3081−
3082− ((cpp_hashnode **) BUFF_FRONT (pfile->a_buff))[macro->paramc++] = spelling;
3083− node->flags |= NODE_MACRO_ARG;
3084− len = macro->paramc * sizeof (struct macro_arg_saved_data);
3064+ unsigned len = (n + 1) * sizeof (struct macro_arg_saved_data);
30853065 if (len > pfile->macro_buffer_len)
30863066 {
3087− pfile->macro_buffer = XRESIZEVEC (unsigned char, pfile->macro_buffer,
3088− len);
3067+ pfile->macro_buffer
3068+ = XRESIZEVEC (unsigned char, pfile->macro_buffer, len);
30893069 pfile->macro_buffer_len = len;
30903070 }
3091− struct macro_arg_saved_data save;
3092− save.value = node->value;
3093− save.canonical_node = node;
3094− ((struct macro_arg_saved_data *) pfile->macro_buffer)[macro->paramc - 1]
3095− = save;
30963071
3097− node->value.arg_index = macro->paramc;
3098− return false;
3072+ macro_arg_saved_data *saved = (macro_arg_saved_data *)pfile->macro_buffer;
3073+ saved[n].canonical_node = node;
3074+ saved[n].value = node->value;
3075+ saved[n].type = node->type;
3076+
3077+ void *base = _cpp_reserve_room (pfile, n * sizeof (cpp_hashnode *),
3078+ sizeof (cpp_hashnode *));
3079+ ((cpp_hashnode **)base)[n] = spelling;
3080+
3081+ /* Morph into a macro arg. */
3082+ node->type = NT_MACRO_ARG;
3083+ /* Index is 1 based. */
3084+ node->value.arg_index = n + 1;
3085+
3086+ return true;
30993087 }
31003088
3101−/* Check the syntax of the parameters in a MACRO definition. Returns
3102− false if an error occurs. */
3089+/* Restore the parameters to their previous state. */
3090+void
3091+_cpp_unsave_parameters (cpp_reader *pfile, unsigned n)
3092+{
3093+ /* Clear the fast argument lookup indices. */
3094+ while (n--)
3095+ {
3096+ struct macro_arg_saved_data *save =
3097+ &((struct macro_arg_saved_data *) pfile->macro_buffer)[n];
3098+
3099+ struct cpp_hashnode *node = save->canonical_node;
3100+ node->type = save->type;
3101+ node->value = save->value;
3102+ }
3103+}
3104+
3105+/* Check the syntax of the parameters in a MACRO definition. Return
3106+ false on failure. Set *N_PTR and *VARADIC_PTR as appropriate.
3107+ '(' ')'
3108+ '(' parm-list ',' last-parm ')'
3109+ '(' last-parm ')'
3110+ parm-list: name
3111+ | parm-list, name
3112+ last-parm: name
3113+ | name '...'
3114+ | '...'
3115+*/
3116+
31033117 static bool
3104−parse_params (cpp_reader *pfile, cpp_macro *macro)
3118+parse_params (cpp_reader *pfile, unsigned *n_ptr, bool *varadic_ptr)
31053119 {
3106− unsigned int prev_ident = 0;
3120+ unsigned nparms = 0;
3121+ bool ok = false;
31073122
3108− for (;;)
3123+ for (bool prev_ident = false;;)
31093124 {
31103125 const cpp_token *token = _cpp_lex_token (pfile);
31113126
31123127 switch (token->type)
31133128 {
3114− default:
3129+ case CPP_COMMENT:
31153130 /* Allow/ignore comments in parameter lists if we are
31163131 preserving comments in macro expansions. */
3117− if (token->type == CPP_COMMENT
3118− && ! CPP_OPTION (pfile, discard_comments_in_macro_exp))
3119− continue;
3132+ if (!CPP_OPTION (pfile, discard_comments_in_macro_exp))
3133+ break;
31203134
3121− cpp_error (pfile, CPP_DL_ERROR,
3122− "\"%s\" may not appear in macro parameter list",
3123− cpp_token_as_text (pfile, token));
3124− return false;
3135+ /* FALLTHRU */
3136+ default:
3137+ bad:
3138+ {
3139+ const char *const msgs[5] =
3140+ {
3141+ N_("expected parameter name, found \"%s\""),
3142+ N_("expected ',' or ')', found \"%s\""),
3143+ N_("expected parameter name before end of line"),
3144+ N_("expected ')' before end of line"),
3145+ N_("expected ')' after \"...\"")
3146+ };
3147+ unsigned ix = prev_ident;
3148+ const unsigned char *as_text = NULL;
3149+ if (*varadic_ptr)
3150+ ix = 4;
3151+ else if (token->type == CPP_EOF)
3152+ ix += 2;
3153+ else
3154+ as_text = cpp_token_as_text (pfile, token);
3155+ cpp_error (pfile, CPP_DL_ERROR, msgs[ix], as_text);
3156+ }
3157+ goto out;
31253158
31263159 case CPP_NAME:
3127− if (prev_ident)
3128− {
3129− cpp_error (pfile, CPP_DL_ERROR,
3130− "macro parameters must be comma-separated");
3131− return false;
3132− }
3133− prev_ident = 1;
3134−
3135− if (_cpp_save_parameter (pfile, macro, token->val.node.node,
3136− token->val.node.spelling))
3137− return false;
3138− continue;
3160+ if (prev_ident || *varadic_ptr)
3161+ goto bad;
3162+ prev_ident = true;
3163+
3164+ if (!_cpp_save_parameter (pfile, nparms, token->val.node.node,
3165+ token->val.node.spelling))
3166+ goto out;
3167+ nparms++;
3168+ break;
31393169
31403170 case CPP_CLOSE_PAREN:
3141− if (prev_ident || macro->paramc == 0)
3142− return true;
3171+ if (prev_ident || !nparms || *varadic_ptr)
3172+ {
3173+ ok = true;
3174+ goto out;
3175+ }
31433176
3144− /* Fall through to pick up the error. */
31453177 /* FALLTHRU */
31463178 case CPP_COMMA:
3147− if (!prev_ident)
3148− {
3149− cpp_error (pfile, CPP_DL_ERROR, "parameter name missing");
3150− return false;
3151− }
3152− prev_ident = 0;
3153− continue;
3179+ if (!prev_ident || *varadic_ptr)
3180+ goto bad;
3181+ prev_ident = false;
3182+ break;
31543183
31553184 case CPP_ELLIPSIS:
3156− macro->variadic = 1;
3185+ if (*varadic_ptr)
3186+ goto bad;
3187+ *varadic_ptr = true;
31573188 if (!prev_ident)
31583189 {
3159− _cpp_save_parameter (pfile, macro,
3190+ /* An ISO bare ellipsis. */
3191+ _cpp_save_parameter (pfile, nparms,
31603192 pfile->spec_nodes.n__VA_ARGS__,
31613193 pfile->spec_nodes.n__VA_ARGS__);
3194+ nparms++;
31623195 pfile->state.va_args_ok = 1;
31633196 if (! CPP_OPTION (pfile, c99)
31643197 && CPP_OPTION (pfile, cpp_pedantic)
31653198 && CPP_OPTION (pfile, warn_variadic_macros))
3166− {
3167− if (CPP_OPTION (pfile, cplusplus))
3168− cpp_pedwarning
3169− (pfile, CPP_W_VARIADIC_MACROS,
3170− "anonymous variadic macros were introduced in C++11");
3171− else
3172− cpp_pedwarning
3173− (pfile, CPP_W_VARIADIC_MACROS,
3174− "anonymous variadic macros were introduced in C99");
3175− }
3199+ cpp_pedwarning
3200+ (pfile, CPP_W_VARIADIC_MACROS,
3201+ CPP_OPTION (pfile, cplusplus)
3202+ ? N_("anonymous variadic macros were introduced in C++11")
3203+ : N_("anonymous variadic macros were introduced in C99"));
31763204 else if (CPP_OPTION (pfile, cpp_warn_c90_c99_compat) > 0
31773205 && ! CPP_OPTION (pfile, cplusplus))
31783206 cpp_error (pfile, CPP_DL_WARNING,
@@ -3180,54 +3208,38 @@ parse_params (cpp_reader *pfile, cpp_macro *macro) · 1 unmodified line
31803208 }
31813209 else if (CPP_OPTION (pfile, cpp_pedantic)
31823210 && CPP_OPTION (pfile, warn_variadic_macros))
3183− {
3184− if (CPP_OPTION (pfile, cplusplus))
3185− cpp_pedwarning (pfile, CPP_W_VARIADIC_MACROS,
3186− "ISO C++ does not permit named variadic macros");
3187− else
3188− cpp_pedwarning (pfile, CPP_W_VARIADIC_MACROS,
3189− "ISO C does not permit named variadic macros");
3190− }
3191−
3192− /* We're at the end, and just expect a closing parenthesis. */
3193− token = _cpp_lex_token (pfile);
3194− if (token->type == CPP_CLOSE_PAREN)
3195− return true;
3196− /* Fall through. */
3197−
3198− case CPP_EOF:
3199− cpp_error (pfile, CPP_DL_ERROR, "missing ')' in macro parameter list");
3200− return false;
3211+ cpp_pedwarning (pfile, CPP_W_VARIADIC_MACROS,
3212+ CPP_OPTION (pfile, cplusplus)
3213+ ? N_("ISO C++ does not permit named variadic macros")
3214+ : N_("ISO C does not permit named variadic macros"));
3215+ break;
32013216 }
32023217 }
3203−}
32043218
3205−/* Allocate room for a token from a macro's replacement list. */
3206−static cpp_token *
3207−alloc_expansion_token (cpp_reader *pfile, cpp_macro *macro)
3208−{
3209− if (BUFF_ROOM (pfile->a_buff) < (macro->count + 1) * sizeof (cpp_token))
3210− _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (cpp_token));
3219+ out:
3220+ *n_ptr = nparms;
32113221
3212− return &((cpp_token *) BUFF_FRONT (pfile->a_buff))[macro->count++];
3222+ return ok;
32133223 }
32143224
32153225 /* Lex a token from the expansion of MACRO, but mark parameters as we
32163226 find them and warn of traditional stringification. */
3217−static cpp_token *
3227+static cpp_macro *
32183228 lex_expansion_token (cpp_reader *pfile, cpp_macro *macro)
32193229 {
3220− cpp_token *token, *saved_cur_token;
3221−
3222− saved_cur_token = pfile->cur_token;
3223− pfile->cur_token = alloc_expansion_token (pfile, macro);
3224− token = _cpp_lex_direct (pfile);
3230+ macro = (cpp_macro *)_cpp_reserve_room (pfile,
3231+ sizeof (cpp_macro) - sizeof (cpp_token)
3232+ + macro->count * sizeof (cpp_token),
3233+ sizeof (cpp_token));
3234+ cpp_token *saved_cur_token = pfile->cur_token;
3235+ pfile->cur_token = &macro->exp.tokens[macro->count];
3236+ cpp_token *token = _cpp_lex_direct (pfile);
32253237 pfile->cur_token = saved_cur_token;
32263238
32273239 /* Is this a parameter? */
3228− if (token->type == CPP_NAME
3229− && (token->val.node.node->flags & NODE_MACRO_ARG) != 0)
3240+ if (token->type == CPP_NAME && token->val.node.node->type == NT_MACRO_ARG)
32303241 {
3242+ /* Morph into a parameter reference. */
32313243 cpp_hashnode *spelling = token->val.node.spelling;
32323244 token->type = CPP_MACRO_ARG;
32333245 token->val.macro_arg.arg_no = token->val.node.node->value.arg_index;
@@ -3237,62 +3249,58 @@ lex_expansion_token (cpp_reader *pfile, cpp_macro *macro) · 3 unmodified lines
32373249 && (token->type == CPP_STRING || token->type == CPP_CHAR))
32383250 check_trad_stringification (pfile, macro, &token->val.str);
32393251
3240− return token;
3252+ return macro;
32413253 }
32423254
3243−static bool
3244−create_iso_definition (cpp_reader *pfile, cpp_macro *macro)
3255+static cpp_macro *
3256+create_iso_definition (cpp_reader *pfile)
32453257 {
3246− cpp_token *token;
3247− const cpp_token *ctoken;
32483258 bool following_paste_op = false;
32493259 const char *paste_op_error_msg =
32503260 N_("'##' cannot appear at either end of a macro expansion");
32513261 unsigned int num_extra_tokens = 0;
3262+ unsigned nparms = 0;
3263+ cpp_hashnode **params = NULL;
3264+ bool varadic = false;
3265+ bool ok = false;
3266+ cpp_macro *macro = NULL;
3267+
3268+ /* Look at the first token, to see if this is a function-like
3269+ macro. */
3270+ cpp_token first;
3271+ cpp_token *saved_cur_token = pfile->cur_token;
3272+ pfile->cur_token = &first;
3273+ cpp_token *token = _cpp_lex_direct (pfile);
3274+ pfile->cur_token = saved_cur_token;
32523275
3253− /* Get the first token of the expansion (or the '(' of a
3254− function-like macro). */
3255− ctoken = _cpp_lex_token (pfile);
3256−
3257− if (ctoken->type == CPP_OPEN_PAREN && !(ctoken->flags & PREV_WHITE))
3276+ if (token->flags & PREV_WHITE)
3277+ /* Preceeded by space, must be part of expansion. */;
3278+ else if (token->type == CPP_OPEN_PAREN)
32583279 {
3259− bool ok = parse_params (pfile, macro);
3260− macro->params = (cpp_hashnode **) BUFF_FRONT (pfile->a_buff);
3261− if (!ok)
3262− return false;
3280+ /* An open-paren, get a parameter list. */
3281+ if (!parse_params (pfile, &nparms, &varadic))
3282+ goto out;
32633283
3264− /* Success. Commit or allocate the parameter array. */
3265− if (pfile->hash_table->alloc_subobject)
3266− {
3267− cpp_hashnode **params =
3268− (cpp_hashnode **) pfile->hash_table->alloc_subobject
3269− (sizeof (cpp_hashnode *) * macro->paramc);
3270− memcpy (params, macro->params,
3271− sizeof (cpp_hashnode *) * macro->paramc);
3272− macro->params = params;
3273− }
3274− else
3275− BUFF_FRONT (pfile->a_buff) = (uchar *) &macro->params[macro->paramc];
3276− macro->fun_like = 1;
3284+ params = (cpp_hashnode **)_cpp_commit_buff
3285+ (pfile, sizeof (cpp_hashnode *) * nparms);
3286+ token = NULL;
32773287 }
3278− else if (ctoken->type != CPP_EOF && !(ctoken->flags & PREV_WHITE))
3288+ else if (token->type != CPP_EOF
3289+ && !(token->type == CPP_COMMENT
3290+ && ! CPP_OPTION (pfile, discard_comments_in_macro_exp)))
32793291 {
32803292 /* While ISO C99 requires whitespace before replacement text
32813293 in a macro definition, ISO C90 with TC1 allows characters
32823294 from the basic source character set there. */
32833295 if (CPP_OPTION (pfile, c99))
3284− {
3285− if (CPP_OPTION (pfile, cplusplus))
3286− cpp_error (pfile, CPP_DL_PEDWARN,
3287− "ISO C++11 requires whitespace after the macro name");
3288− else
3289− cpp_error (pfile, CPP_DL_PEDWARN,
3290− "ISO C99 requires whitespace after the macro name");
3291− }
3296+ cpp_error (pfile, CPP_DL_PEDWARN,
3297+ CPP_OPTION (pfile, cplusplus)
3298+ ? N_("ISO C++11 requires whitespace after the macro name")
3299+ : N_("ISO C99 requires whitespace after the macro name"));
32923300 else
32933301 {
3294− int warntype = CPP_DL_WARNING;
3295− switch (ctoken->type)
3302+ enum cpp_diagnostic_level warntype = CPP_DL_WARNING;
3303+ switch (token->type)
32963304 {
32973305 case CPP_ATSIGN:
32983306 case CPP_AT_NAME:
@@ -3303,7 +3311,7 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 4 unmodified lines
33033311 case CPP_OTHER:
33043312 /* Basic character set sans letters, digits and _. */
33053313 if (strchr ("!\"#%&'()*+,-./:;<=>?[\\]^{|}~",
3306− ctoken->val.str.text[0]) == NULL)
3314+ token->val.str.text[0]) == NULL)
33073315 warntype = CPP_DL_PEDWARN;
33083316 break;
33093317 default:
@@ -3316,19 +3324,32 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 6 unmodified lines
33163324 }
33173325 }
33183326
3319− if (macro->fun_like)
3320− token = lex_expansion_token (pfile, macro);
3327+ macro = _cpp_new_macro (pfile, cmk_macro,
3328+ _cpp_reserve_room (pfile, 0, sizeof (cpp_macro)));
3329+
3330+ if (!token)
3331+ {
3332+ macro->variadic = varadic;
3333+ macro->paramc = nparms;
3334+ macro->parm.params = params;
3335+ macro->fun_like = true;
3336+ }
33213337 else
33223338 {
3323− token = alloc_expansion_token (pfile, macro);
3324− *token = *ctoken;
3339+ /* Preserve the token we peeked, there is already a single slot for it. */
3340+ macro->exp.tokens[0] = *token;
3341+ token = &macro->exp.tokens[0];
3342+ macro->count = 1;
33253343 }
33263344
3327− /* The argument doesn't matter here. */
3328− vaopt_state vaopt_tracker (pfile, macro->variadic, true);
3329−
3330− for (;;)
3345+ for (vaopt_state vaopt_tracker (pfile, macro->variadic, true);; token = NULL)
33313346 {
3347+ if (!token)
3348+ {
3349+ macro = lex_expansion_token (pfile, macro);
3350+ token = &macro->exp.tokens[macro->count++];
3351+ }
3352+
33323353 /* Check the stringifying # constraint 6.10.3.2.1 of
33333354 function-like macros when lexing the subsequent token. */
33343355 if (macro->count > 1 && token[-1].type == CPP_HASH && macro->fun_like)
@@ -3350,7 +3371,7 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 15 unmodified lines
33503371 {
33513372 cpp_error (pfile, CPP_DL_ERROR,
33523373 "'#' is not followed by a macro parameter");
3353− return false;
3374+ goto out;
33543375 }
33553376 }
33563377
@@ -3362,8 +3383,10 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 5 unmodified lines
33623383 if (following_paste_op)
33633384 {
33643385 cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
3365− return false;
3386+ goto out;
33663387 }
3388+ if (!vaopt_tracker.completed ())
3389+ goto out;
33673390 break;
33683391 }
33693392
@@ -3375,17 +3398,19 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 5 unmodified lines
33753398 if (macro->count == 1)
33763399 {
33773400 cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
3378− return false;
3401+ goto out;
33793402 }
33803403
3381− if (token[-1].flags & PASTE_LEFT)
3404+ if (following_paste_op)
33823405 {
3383− macro->extra_tokens = 1;
3406+ /* Consecutive paste operators. This one will be moved
3407+ to the end. */
33843408 num_extra_tokens++;
33853409 token->val.token_no = macro->count - 1;
33863410 }
33873411 else
33883412 {
3413+ /* Drop the paste operator. */
33893414 --macro->count;
33903415 token[-1].flags |= PASTE_LEFT;
33913416 if (token->flags & DIGRAPH)
@@ -3393,78 +3418,67 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 1 unmodified line
33933418 if (token->flags & PREV_WHITE)
33943419 token[-1].flags |= SP_PREV_WHITE;
33953420 }
3421+ following_paste_op = true;
33963422 }
3423+ else
3424+ following_paste_op = false;
33973425
33983426 if (vaopt_tracker.update (token) == vaopt_state::ERROR)
3399− return false;
3400−
3401− following_paste_op = (token->type == CPP_PASTE);
3402− token = lex_expansion_token (pfile, macro);
3427+ goto out;
34033428 }
34043429
3405− if (!vaopt_tracker.completed ())
3406− return false;
3407−
3408− macro->exp.tokens = (cpp_token *) BUFF_FRONT (pfile->a_buff);
3409− macro->traditional = 0;
3430+ /* We're committed to winning now. */
3431+ ok = true;
34103432
34113433 /* Don't count the CPP_EOF. */
34123434 macro->count--;
34133435
3414− /* Clear whitespace on first token for warn_of_redefinition(). */
3436+ macro = (cpp_macro *)_cpp_commit_buff
3437+ (pfile, sizeof (cpp_macro) - sizeof (cpp_token)
3438+ + sizeof (cpp_token) * macro->count);
3439+
3440+ /* Clear whitespace on first token. */
34153441 if (macro->count)
34163442 macro->exp.tokens[0].flags &= ~PREV_WHITE;
34173443
3418− /* Commit or allocate the memory. */
3419− if (pfile->hash_table->alloc_subobject)
3444+ if (num_extra_tokens)
34203445 {
3421− cpp_token *tokns =
3422− (cpp_token *) pfile->hash_table->alloc_subobject (sizeof (cpp_token)
3423− * macro->count);
3424− if (num_extra_tokens)
3425− {
3426− /* Place second and subsequent ## or %:%: tokens in
3427− sequences of consecutive such tokens at the end of the
3428− list to preserve information about where they appear, how
3429− they are spelt and whether they are preceded by
3430− whitespace without otherwise interfering with macro
3431− expansion. */
3432− cpp_token *normal_dest = tokns;
3433− cpp_token *extra_dest = tokns + macro->count - num_extra_tokens;
3434− unsigned int i;
3435− for (i = 0; i < macro->count; i++)
3436− {
3437− if (macro->exp.tokens[i].type == CPP_PASTE)
3438− *extra_dest++ = macro->exp.tokens[i];
3439− else
3440− *normal_dest++ = macro->exp.tokens[i];
3441− }
3442− }
3443− else
3444− memcpy (tokns, macro->exp.tokens, sizeof (cpp_token) * macro->count);
3445− macro->exp.tokens = tokns;
3446+ /* Place second and subsequent ## or %:%: tokens in sequences of
3447+ consecutive such tokens at the end of the list to preserve
3448+ information about where they appear, how they are spelt and
3449+ whether they are preceded by whitespace without otherwise
3450+ interfering with macro expansion. Remember, this is
3451+ extremely rare, so efficiency is not a priority. */
3452+ cpp_token *temp = (cpp_token *)_cpp_reserve_room
3453+ (pfile, 0, num_extra_tokens * sizeof (cpp_token));
3454+ unsigned extra_ix = 0, norm_ix = 0;
3455+ cpp_token *exp = macro->exp.tokens;
3456+ for (unsigned ix = 0; ix != macro->count; ix++)
3457+ if (exp[ix].type == CPP_PASTE)
3458+ temp[extra_ix++] = exp[ix];
3459+ else
3460+ exp[norm_ix++] = exp[ix];
3461+ memcpy (&exp[norm_ix], temp, num_extra_tokens * sizeof (cpp_token));
3462+
3463+ /* Record there are extra tokens. */
3464+ macro->extra_tokens = 1;
34463465 }
3447− else
3448− BUFF_FRONT (pfile->a_buff) = (uchar *) &macro->exp.tokens[macro->count];
34493466
3450− return true;
3467+ out:
3468+ pfile->state.va_args_ok = 0;
3469+ _cpp_unsave_parameters (pfile, nparms);
3470+
3471+ return ok ? macro : NULL;
34513472 }
34523473
3453−/* Parse a macro and save its expansion. Returns nonzero on success. */
3454−bool
3455−_cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node)
3474+cpp_macro *
3475+_cpp_new_macro (cpp_reader *pfile, cpp_macro_kind kind, void *placement)
34563476 {
3457− cpp_macro *macro;
3458− unsigned int i;
3459− bool ok;
3477+ cpp_macro *macro = (cpp_macro *) placement;
34603478
3461− if (pfile->hash_table->alloc_subobject)
3462− macro = (cpp_macro *) pfile->hash_table->alloc_subobject
3463− (sizeof (cpp_macro));
3464− else
3465− macro = (cpp_macro *) _cpp_aligned_alloc (pfile, sizeof (cpp_macro));
34663479 macro->line = pfile->directive_line;
3467− macro->params = 0;
3480+ macro->parm.params = 0;
3481+ macro->lazy = 0;
34683482 macro->paramc = 0;
34693483 macro->variadic = 0;
34703484 macro->used = !CPP_OPTION (pfile, warn_unused_macros);
@@ -3474,62 +3488,51 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node) · 3 unmodified lines
34743488 /* To suppress some diagnostics. */
34753489 macro->syshdr = pfile->buffer && pfile->buffer->sysp != 0;
34763490
3477− if (CPP_OPTION (pfile, traditional))
3478− ok = _cpp_create_trad_definition (pfile, macro);
3479− else
3480− {
3481− ok = create_iso_definition (pfile, macro);
3482−
3483− /* We set the type for SEEN_EOL() in directives.c.
3491+ macro->kind = kind;
34843492
3485− Longer term we should lex the whole line before coming here,
3486− and just copy the expansion. */
3493+ return macro;
3494+}
34873495
3488− /* Stop the lexer accepting __VA_ARGS__. */
3489− pfile->state.va_args_ok = 0;
3490− }
3496+/* Parse a macro and save its expansion. Returns nonzero on success. */
3497+bool
3498+_cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node)
3499+{
3500+ cpp_macro *macro;
34913501
3492− /* Clear the fast argument lookup indices. */
3493− for (i = macro->paramc; i-- > 0; )
3494− {
3495− struct macro_arg_saved_data *save =
3496− &((struct macro_arg_saved_data *) pfile->macro_buffer)[i];
3497− struct cpp_hashnode *node = save->canonical_node;
3498− node->flags &= ~ NODE_MACRO_ARG;
3499− node->value = save->value;
3500− }
3502+ if (CPP_OPTION (pfile, traditional))
3503+ macro = _cpp_create_trad_definition (pfile);
3504+ else
3505+ macro = create_iso_definition (pfile);
35013506
3502− if (!ok)
3503− return ok;
3507+ if (!macro)
3508+ return false;
35043509
3505− if (node->type == NT_MACRO)
3510+ if (cpp_macro_p (node))
35063511 {
35073512 if (CPP_OPTION (pfile, warn_unused_macros))
35083513 _cpp_warn_if_unused_macro (pfile, node, NULL);
35093514
35103515 if (warn_of_redefinition (pfile, node, macro))
35113516 {
3512− const int reason = ((node->flags & NODE_BUILTIN)
3513− && !(node->flags & NODE_WARN))
3514− ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE;
3517+ const enum cpp_warning_reason reason
3518+ = (cpp_builtin_macro_p (node) && !(node->flags & NODE_WARN))
3519+ ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE;
35153520
35163521 bool warned =
35173522 cpp_pedwarning_with_line (pfile, reason,
35183523 pfile->directive_line, 0,
35193524 "\"%s\" redefined", NODE_NAME (node));
35203525
3521− if (warned && node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
3526+ if (warned && cpp_user_macro_p (node))
35223527 cpp_error_with_line (pfile, CPP_DL_NOTE,
35233528 node->value.macro->line, 0,
35243529 "this is the location of the previous definition");
35253530 }
3531+ _cpp_free_definition (node);
35263532 }
35273533
3528− if (node->type != NT_VOID)
3529− _cpp_free_definition (node);
3530−
35313534 /* Enter definition in hash table. */
3532− node->type = NT_MACRO;
3535+ node->type = NT_USER_MACRO;
35333536 node->value.macro = macro;
35343537 if (! ustrncmp (NODE_NAME (node), DSC ("__STDC_"))
35353538 && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_FORMAT_MACROS")
@@ -3545,7 +3548,52 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node) · 9 unmodified lines
35453548 conditional flag */
35463549 node->flags &= ~NODE_CONDITIONAL;
35473550
3548− return ok;
3551+ return true;
3552+}
3553+
3554+extern void
3555+cpp_define_lazily (cpp_reader *pfile, cpp_hashnode *node, unsigned num)
3556+{
3557+ cpp_macro *macro = node->value.macro;
3558+
3559+ gcc_checking_assert (pfile->cb.user_lazy_macro && macro && num < UCHAR_MAX);
3560+
3561+ macro->lazy = num + 1;
3562+}
3563+
3564+/* Notify the use of NODE in a macro-aware context (i.e. expanding it,
3565+ or testing its existance). Also applies any lazy definition. */
3566+
3567+extern void
3568+_cpp_notify_macro_use (cpp_reader *pfile, cpp_hashnode *node)
3569+{
3570+ node->flags |= NODE_USED;
3571+ switch (node->type)
3572+ {
3573+ case NT_USER_MACRO:
3574+ {
3575+ cpp_macro *macro = node->value.macro;
3576+ if (macro->lazy)
3577+ {
3578+ pfile->cb.user_lazy_macro (pfile, macro, macro->lazy - 1);
3579+ macro->lazy = 0;
3580+ }
3581+ }
3582+ /* FALLTHROUGH. */
3583+
3584+ case NT_BUILTIN_MACRO:
3585+ if (pfile->cb.used_define)
3586+ pfile->cb.used_define (pfile, pfile->directive_line, node);
3587+ break;
3588+
3589+ case NT_VOID:
3590+ if (pfile->cb.used_undef)
3591+ pfile->cb.used_undef (pfile, pfile->directive_line, node);
3592+ break;
3593+
3594+ default:
3595+ abort ();
3596+ }
35493597 }
35503598
35513599 /* Warn if a token in STRING matches one of a function-like MACRO's
@@ -3576,7 +3624,7 @@ check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro, · 24 unmodified lines
35763624 identifier inside the string matches one of them. */
35773625 for (i = 0; i < macro->paramc; i++)
35783626 {
3579− const cpp_hashnode *node = macro->params[i];
3627+ const cpp_hashnode *node = macro->parm.params[i];
35803628
35813629 if (NODE_LEN (node) == len
35823630 && !memcmp (p, NODE_NAME (node), len))
@@ -3590,15 +3638,6 @@ check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro, · 7 unmodified lines
35903638 }
35913639 }
35923640
3593−/* Returns true of NODE is a function-like macro. */
3594−bool
3595−cpp_fun_like_macro_p (cpp_hashnode *node)
3596−{
3597− return (node->type == NT_MACRO
3598− && (node->flags & (NODE_BUILTIN | NODE_MACRO_ARG)) == 0
3599− && node->value.macro->fun_like);
3600−}
3601−
36023641 /* Returns the name, arguments and expansion of a macro, in a format
36033642 suitable to be read back in again, and therefore also for DWARF 2
36043643 debugging info. e.g. "PASTE(X, Y) X ## Y", or "MACNAME EXPANSION".
@@ -3608,23 +3647,12 @@ const unsigned char * · 3 unmodified lines
36083647 cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node)
36093648 {
36103649 unsigned int i, len;
3611− const cpp_macro *macro;
36123650 unsigned char *buffer;
36133651
3614− if (node->type != NT_MACRO || (node->flags & NODE_BUILTIN))
3615− {
3616− if (node->type != NT_MACRO
3617− || !pfile->cb.user_builtin_macro
3618− || !pfile->cb.user_builtin_macro (pfile, node))
3619− {
3620− cpp_error (pfile, CPP_DL_ICE,
3621− "invalid hash type %d in cpp_macro_definition",
3622− node->type);
3623− return 0;
3624− }
3625− }
3652+ gcc_checking_assert (cpp_user_macro_p (node));
3653+
3654+ const cpp_macro *macro = node->value.macro;
36263655
3627− macro = node->value.macro;
36283656 /* Calculate length. */
36293657 len = NODE_LEN (node) * 10 + 2; /* ' ' and NUL. */
36303658 if (macro->fun_like)
@@ -3632,7 +3660,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 1 unmodified line
36323660 len += 4; /* "()" plus possible final ".." of named
36333661 varargs (we have + 1 below). */
36343662 for (i = 0; i < macro->paramc; i++)
3635− len += NODE_LEN (macro->params[i]) + 1; /* "," */
3663+ len += NODE_LEN (macro->parm.params[i]) + 1; /* "," */
36363664 }
36373665
36383666 /* This should match below where we fill in the buffer. */
@@ -3643,7 +3671,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 4 unmodified lines
36433671 unsigned int count = macro_real_token_count (macro);
36443672 for (i = 0; i < count; i++)
36453673 {
3646− cpp_token *token = &macro->exp.tokens[i];
3674+ const cpp_token *token = &macro->exp.tokens[i];
36473675
36483676 if (token->type == CPP_MACRO_ARG)
36493677 len += NODE_LEN (token->val.macro_arg.spelling);
@@ -3676,7 +3704,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 26 unmodified lines
36763704 *buffer++ = '(';
36773705 for (i = 0; i < macro->paramc; i++)
36783706 {
3679− cpp_hashnode *param = macro->params[i];
3707+ cpp_hashnode *param = macro->parm.params[i];
36803708
36813709 if (param != pfile->spec_nodes.n__VA_ARGS__)
36823710 {
@@ -3707,7 +3735,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 24 unmodified lines
37073735 unsigned int count = macro_real_token_count (macro);
37083736 for (i = 0; i < count; i++)
37093737 {
3710− cpp_token *token = &macro->exp.tokens[i];
3738+ const cpp_token *token = &macro->exp.tokens[i];
37113739
37123740 if (token->flags & PREV_WHITE)
37133741 *buffer++ = ' ';
@@ -3737,11 +3765,3 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 23 unmodified lines
37373765 *buffer = '\0';
37383766 return pfile->macro_buffer;
37393767 }
3740−
3741−/* Get the line at which the macro was defined. */
3742−
3743−source_location
3744−cpp_macro_definition_location (cpp_hashnode *node)
3745−{
3746− return node->value.macro->line;
3747−}
gcc/libcpp/makeucnid.c+2−2
@@ -1,5 +1,5 @@
11 /* Make ucnid.h from various sources.
2− Copyright (C) 2005-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
@@ -378,7 +378,7 @@ write_copyright (void) · 372 unmodified lines
378378 {
379379 static const char copyright[] = "\
380380 /* Unicode characters and various properties.\n\
381− Copyright (C) 2003-2018 Free Software Foundation, Inc.\n\
381+ Copyright (C) 2003-2019 Free Software Foundation, Inc.\n\
382382 \n\
383383 This program is free software; you can redistribute it and/or modify it\n\
384384 under the terms of the GNU General Public License as published by the\n\
gcc/libcpp/mkdeps.c+1−1
@@ -1,5 +1,5 @@
11 /* Dependency generator for Makefile fragments.
2− Copyright (C) 2000-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
33 Contributed by Zack Weinberg, Mar 2000
44
55 This program is free software; you can redistribute it and/or modify it
gcc/libcpp/pch.c+51−76
@@ -1,5 +1,5 @@
11 /* Part of CPP library. (Precompiled header reading/writing.)
2− Copyright (C) 2000-2018 Free Software Foundation, Inc.
2+ Copyright (C) 2000-2019 Free Software Foundation, Inc.
33
44 This program is free software; you can redistribute it and/or modify it
55 under the terms of the GNU General Public License as published by the
@@ -50,50 +50,47 @@ static int · 44 unmodified lines
5050 write_macdef (cpp_reader *pfile, cpp_hashnode *hn, void *file_p)
5151 {
5252 FILE *f = (FILE *) file_p;
53+ bool is_void = false;
5354 switch (hn->type)
5455 {
5556 case NT_VOID:
5657 if (! (hn->flags & NODE_POISONED))
5758 return 1;
58− /* XXX Really fallthru? */
59− /* FALLTHRU */
59+ is_void = true;
60+ goto poisoned;
6061
61− case NT_MACRO:
62− if ((hn->flags & NODE_BUILTIN)
63− && (!pfile->cb.user_builtin_macro
64− || !pfile->cb.user_builtin_macro (pfile, hn)))
65− return 1;
66−
67− {
68− struct macrodef_struct s;
69− const unsigned char *defn;
62+ case NT_BUILTIN_MACRO:
63+ return 1;
7064
71− s.name_length = NODE_LEN (hn);
72− s.flags = hn->flags & NODE_POISONED;
65+ case NT_USER_MACRO:
66+ if (hn->value.macro->kind != cmk_assert)
67+ {
68+ poisoned:
69+ struct macrodef_struct s;
70+ const unsigned char *defn;
7371
74− if (hn->type == NT_MACRO)
75− {
76− defn = cpp_macro_definition (pfile, hn);
77− s.definition_length = ustrlen (defn);
78− }
79− else
80− {
81− defn = NODE_NAME (hn);
82− s.definition_length = s.name_length;
83− }
72+ s.name_length = NODE_LEN (hn);
73+ s.flags = hn->flags & NODE_POISONED;
8474
85− if (fwrite (&s, sizeof (s), 1, f) != 1
86− || fwrite (defn, 1, s.definition_length, f) != s.definition_length)
87− {
88− cpp_errno (pfile, CPP_DL_ERROR,
89− "while writing precompiled header");
90− return 0;
91− }
92− }
93− return 1;
75+ if (is_void)
76+ {
77+ defn = NODE_NAME (hn);
78+ s.definition_length = s.name_length;
79+ }
80+ else
81+ {
82+ defn = cpp_macro_definition (pfile, hn);
83+ s.definition_length = ustrlen (defn);
84+ }
9485
95− case NT_ASSERTION:
96− /* Not currently implemented. */
86+ if (fwrite (&s, sizeof (s), 1, f) != 1
87+ || fwrite (defn, 1, s.definition_length, f) != s.definition_length)
88+ {
89+ cpp_errno (pfile, CPP_DL_ERROR,
90+ "while writing precompiled header");
91+ return 0;
92+ }
93+ }
9794 return 1;
9895
9996 default:
@@ -228,8 +225,11 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 128 unmodified lines
228225
229226 switch (hn->type)
230227 {
231− case NT_MACRO:
232− if (hn->flags & NODE_BUILTIN)
228+ case NT_BUILTIN_MACRO:
229+ return 1;
230+
231+ case NT_USER_MACRO:
232+ if (hn->value.macro->kind == cmk_assert)
233233 return 1;
234234
235235 /* fall through. */
@@ -250,10 +250,6 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 14 unmodified lines
250250 }
251251 return 1;
252252
253− case NT_ASSERTION:
254− /* Not currently implemented. */
255− return 1;
256−
257253 default:
258254 abort ();
259255 }
@@ -267,8 +263,11 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 7 unmodified lines
267263
268264 switch (hn->type)
269265 {
270− case NT_MACRO:
271− if (hn->flags & NODE_BUILTIN)
266+ case NT_BUILTIN_MACRO:
267+ return 1;
268+
269+ case NT_USER_MACRO:
270+ if (hn->value.macro->kind == cmk_assert)
272271 return 1;
273272
274273 /* fall through. */
@@ -289,10 +288,6 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 14 unmodified lines
289288 }
290289 return 1;
291290
292− case NT_ASSERTION:
293− /* Not currently implemented. */
294− return 1;
295−
296291 default:
297292 abort ();
298293 }
@@ -442,7 +437,7 @@ _cpp_restore_pushed_macros (cpp_reader *r, FILE *f) · 143 unmodified lines
442437 return 0;
443438
444439 p->definition = defn;
445− if (fread (&(p->line), sizeof (source_location), 1, f) != 1)
440+ if (fread (&(p->line), sizeof (location_t), 1, f) != 1)
446441 return 0;
447442 defnlen = 0;
448443 if (fread (&defnlen, sizeof (defnlen), 1, f) != 1)
@@ -506,7 +501,7 @@ _cpp_save_pushed_macros (cpp_reader *r, FILE *f) · 57 unmodified lines
506501 if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
507502 || fwrite (pp[i]->definition, defnlen, 1, f) != 1)
508503 return 0;
509− if (fwrite (&(pp[i]->line), sizeof (source_location), 1, f) != 1)
504+ if (fwrite (&(pp[i]->line), sizeof (location_t), 1, f) != 1)
510505 return 0;
511506 defnlen = 0;
512507 defnlen |= (pp[i]->syshdr != 0 ? 1 : 0);
@@ -623,7 +618,7 @@ cpp_valid_state (cpp_reader *r, const char *name, int fd) · 110 unmodified lines
623618 goto fail;
624619 }
625620
626− if (h->type != NT_MACRO)
621+ if (h->type == NT_VOID)
627622 {
628623 /* It's ok if __GCC_HAVE_DWARF2_CFI_ASM becomes undefined,
629624 as in, when the PCH file is created with -g and we're
@@ -760,13 +755,7 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) · 130 unmodified lines
760755 {
761756 struct save_macro_data *data = (struct save_macro_data *)data_p;
762757
763− if ((h->flags & NODE_BUILTIN)
764− && h->type == NT_MACRO
765− && r->cb.user_builtin_macro)
766− r->cb.user_builtin_macro (r, h);
767−
768− if (h->type != NT_VOID
769− && (h->flags & NODE_BUILTIN) == 0)
758+ if (cpp_user_macro_p (h))
770759 {
771760 if (data->count == data->array_size)
772761 {
@@ -774,28 +763,14 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) · 1 unmodified line
774763 data->defns = XRESIZEVEC (uchar *, data->defns, (data->array_size));
775764 }
776765
777− switch (h->type)
778− {
779− case NT_ASSERTION:
780− /* Not currently implemented. */
781− return 1;
782−
783− case NT_MACRO:
784− {
785− const uchar * defn = cpp_macro_definition (r, h);
786− size_t defnlen = ustrlen (defn);
766+ const uchar * defn = cpp_macro_definition (r, h);
767+ size_t defnlen = ustrlen (defn);
787768
788− data->defns[data->count] = (uchar *) xmemdup (defn, defnlen,
789− defnlen + 2);
790− data->defns[data->count][defnlen] = '\n';
791− }
792− break;
793−
794− default:
795− abort ();
796− }
769+ data->defns[data->count] = (uchar *) xmemdup (defn, defnlen, defnlen + 2);
770+ data->defns[data->count][defnlen] = '\n';
797771 data->count++;
798772 }
773+
799774 return 1;
800775 }
801776
gcc/libcpp/po/ChangeLog+32−6
@@ -1,6 +1,36 @@
1−2018-07-26 Release Manager
1+2019-05-03 Release Manager
22
3− * GCC 8.2.0 released.
3+ * GCC 9.1.0 released.
4+
5+2019-03-08 Joseph Myers <joseph@codesourcery.com>
6+
7+ * sv.po: Update.
8+
9+2019-02-14 Joseph Myers <joseph@codesourcery.com>
10+
11+ * da.po: Update.
12+
13+2019-02-06 Joseph Myers <joseph@codesourcery.com>
14+
15+ * eo.po: Update.
16+
17+2019-02-06 Joseph Myers <joseph@codesourcery.com>
18+
19+ * ru.po: Update.
20+
21+2019-02-05 Joseph Myers <joseph@codesourcery.com>
22+
23+ * be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
24+ id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
25+ vi.po, zh_CN.po, zh_TW.po: Update.
26+
27+2019-02-01 Joseph Myers <joseph@codesourcery.com>
28+
29+ * cpplib.pot: Regenerate.
30+
31+2018-07-25 Joseph Myers <joseph@codesourcery.com>
32+
33+ * cpplib.pot: Regenerate.
434
535 2018-06-11 Joseph Myers <joseph@codesourcery.com>
636
@@ -10,10 +40,6 @@ · 3 unmodified lines
1040
1141 * eo.po: Update.
1242
13−2018-05-02 Release Manager
14−
15− * GCC 8.1.0 released.
16−
1743 2018-04-23 Joseph Myers <joseph@codesourcery.com>
1844
1945 * cpplib.pot: Regenerate.
gcc/libcpp/po/be.gmo+0−0

Binary file not shown.

gcc/libcpp/po/be.po+163−166
@@ -6,7 +6,7 @@ msgid "" · 5 unmodified lines
66 msgstr ""
77 "Project-Id-Version: gcc 3.1\n"
88 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
9−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
9+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1010 "PO-Revision-Date: 2002-05-17 15:54+0200\n"
1111 "Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n"
1212 "Language-Team: Belarusian <i18n@tut.by>\n"
@@ -85,7 +85,7 @@ msgstr "" · 72 unmodified lines
8585 msgid "universal character %.*s is not valid at the start of an identifier"
8686 msgstr ""
8787
88−#: charset.c:1181 charset.c:2000
88+#: charset.c:1181 charset.c:2002
8989 msgid "converting UCN to source character set"
9090 msgstr ""
9191
@@ -140,299 +140,299 @@ msgstr "" · 48 unmodified lines
140140 msgid "missing open quote"
141141 msgstr "Прапушчан ідэнтыфікатар"
142142
143−#: charset.c:1827 charset.c:1891
143+#: charset.c:1829 charset.c:1893
144144 #, fuzzy
145145 #| msgid "character constant too long"
146146 msgid "character constant too long for its type"
147147 msgstr "сімвальная канстанта вельмі доўгая"
148148
149−#: charset.c:1830
149+#: charset.c:1832
150150 msgid "multi-character character constant"
151151 msgstr "мнагасімвальная сімвальная канстанта"
152152
153−#: charset.c:1931
153+#: charset.c:1933
154154 msgid "empty character constant"
155155 msgstr "пустая сімвальная канстанта"
156156
157−#: charset.c:2047
157+#: charset.c:2049
158158 #, c-format
159159 msgid "failure to convert %s to %s"
160160 msgstr ""
161161
162−#: directives.c:235 directives.c:278
162+#: directives.c:229 directives.c:272
163163 #, c-format
164164 msgid "extra tokens at end of #%s directive"
165165 msgstr ""
166166
167−#: directives.c:385
167+#: directives.c:379
168168 #, c-format
169169 msgid "#%s is a GCC extension"
170170 msgstr ""
171171
172−#: directives.c:390
172+#: directives.c:384
173173 #, c-format
174174 msgid "#%s is a deprecated GCC extension"
175175 msgstr ""
176176
177−#: directives.c:403
177+#: directives.c:397
178178 msgid "suggest not using #elif in traditional C"
179179 msgstr ""
180180
181−#: directives.c:406
181+#: directives.c:400
182182 #, c-format
183183 msgid "traditional C ignores #%s with the # indented"
184184 msgstr ""
185185
186−#: directives.c:410
186+#: directives.c:404
187187 #, c-format
188188 msgid "suggest hiding #%s from traditional C with an indented #"
189189 msgstr ""
190190
191−#: directives.c:436
191+#: directives.c:430
192192 msgid "embedding a directive within macro arguments is not portable"
193193 msgstr ""
194194
195−#: directives.c:456
195+#: directives.c:450
196196 msgid "style of line directive is a GCC extension"
197197 msgstr ""
198198
199−#: directives.c:537
199+#: directives.c:531
200200 #, c-format
201201 msgid "invalid preprocessing directive #%s"
202202 msgstr ""
203203
204−#: directives.c:606
204+#: directives.c:600
205205 msgid "\"defined\" cannot be used as a macro name"
206206 msgstr ""
207207
208−#: directives.c:611
208+#: directives.c:605
209209 msgid "\"__has_include__\" cannot be used as a macro name"
210210 msgstr ""
211211
212−#: directives.c:617
212+#: directives.c:611
213213 #, c-format
214214 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
215215 msgstr ""
216216
217−#: directives.c:620
217+#: directives.c:614
218218 #, c-format
219219 msgid "no macro name given in #%s directive"
220220 msgstr ""
221221
222−#: directives.c:623
222+#: directives.c:617
223223 msgid "macro names must be identifiers"
224224 msgstr ""
225225
226−#: directives.c:672 directives.c:677
226+#: directives.c:666 directives.c:671
227227 #, c-format
228228 msgid "undefining \"%s\""
229229 msgstr ""
230230
231−#: directives.c:732
231+#: directives.c:727
232232 msgid "missing terminating > character"
233233 msgstr ""
234234
235−#: directives.c:791
235+#: directives.c:786
236236 #, c-format
237237 msgid "#%s expects \"FILENAME\" or <FILENAME>"
238238 msgstr ""
239239
240−#: directives.c:837
240+#: directives.c:828
241241 #, c-format
242242 msgid "empty filename in #%s"
243243 msgstr ""
244244
245−#: directives.c:847
245+#: directives.c:835
246246 msgid "#include nested too deeply"
247247 msgstr ""
248248
249−#: directives.c:888
249+#: directives.c:877
250250 msgid "#include_next in primary source file"
251251 msgstr ""
252252
253−#: directives.c:914
253+#: directives.c:903
254254 #, c-format
255255 msgid "invalid flag \"%s\" in line directive"
256256 msgstr ""
257257
258−#: directives.c:974
258+#: directives.c:963
259259 msgid "unexpected end of file after #line"
260260 msgstr ""
261261
262−#: directives.c:977
262+#: directives.c:966
263263 #, c-format
264264 msgid "\"%s\" after #line is not a positive integer"
265265 msgstr ""
266266
267−#: directives.c:983 directives.c:985
267+#: directives.c:972 directives.c:974
268268 msgid "line number out of range"
269269 msgstr ""
270270
271−#: directives.c:998 directives.c:1079
271+#: directives.c:987 directives.c:1068
272272 #, c-format
273273 msgid "\"%s\" is not a valid filename"
274274 msgstr ""
275275
276−#: directives.c:1039
276+#: directives.c:1028
277277 #, c-format
278278 msgid "\"%s\" after # is not a positive integer"
279279 msgstr ""
280280
281−#: directives.c:1098
281+#: directives.c:1087
282282 #, c-format
283283 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
284284 msgstr ""
285285
286−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
286+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
287287 #, c-format
288288 msgid "%s"
289289 msgstr ""
290290
291−#: directives.c:1185
291+#: directives.c:1175
292292 #, fuzzy, c-format
293293 msgid "invalid #%s directive"
294294 msgstr "нерэчаісны ініцыялізатар"
295295
296−#: directives.c:1248
296+#: directives.c:1238
297297 #, c-format
298298 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
299299 msgstr ""
300300
301−#: directives.c:1257
301+#: directives.c:1247
302302 #, c-format
303303 msgid "registering pragma \"%s\" with name expansion and no namespace"
304304 msgstr ""
305305
306−#: directives.c:1275
306+#: directives.c:1265
307307 #, c-format
308308 msgid "registering \"%s\" as both a pragma and a pragma namespace"
309309 msgstr ""
310310
311−#: directives.c:1278
311+#: directives.c:1268
312312 #, fuzzy, c-format
313313 msgid "#pragma %s %s is already registered"
314314 msgstr "Клас \"%s\" ужо існуе"
315315
316−#: directives.c:1281
316+#: directives.c:1271
317317 #, c-format
318318 msgid "#pragma %s is already registered"
319319 msgstr ""
320320
321−#: directives.c:1311
321+#: directives.c:1301
322322 msgid "registering pragma with NULL handler"
323323 msgstr ""
324324
325−#: directives.c:1528
325+#: directives.c:1518
326326 msgid "#pragma once in main file"
327327 msgstr ""
328328
329−#: directives.c:1551
329+#: directives.c:1541
330330 #, fuzzy
331331 msgid "invalid #pragma push_macro directive"
332332 msgstr "нерэчаісны ініцыялізатар"
333333
334−#: directives.c:1606
334+#: directives.c:1596
335335 #, fuzzy
336336 msgid "invalid #pragma pop_macro directive"
337337 msgstr "нерэчаісны ініцыялізатар"
338338
339−#: directives.c:1661
339+#: directives.c:1651
340340 msgid "invalid #pragma GCC poison directive"
341341 msgstr ""
342342
343−#: directives.c:1670
343+#: directives.c:1660
344344 #, c-format
345345 msgid "poisoning existing macro \"%s\""
346346 msgstr ""
347347
348−#: directives.c:1689
348+#: directives.c:1679
349349 msgid "#pragma system_header ignored outside include file"
350350 msgstr ""
351351
352−#: directives.c:1714
352+#: directives.c:1704
353353 #, fuzzy, c-format
354354 #| msgid "cannot find source %s"
355355 msgid "cannot find source file %s"
356356 msgstr "не магу знайсці крыніцу %s"
357357
358−#: directives.c:1718
358+#: directives.c:1708
359359 #, c-format
360360 msgid "current file is older than %s"
361361 msgstr ""
362362
363−#: directives.c:1742
363+#: directives.c:1732
364364 #, fuzzy, c-format
365365 msgid "invalid \"#pragma GCC %s\" directive"
366366 msgstr "нерэчаісны ініцыялізатар"
367367
368−#: directives.c:1943
368+#: directives.c:1933
369369 msgid "_Pragma takes a parenthesized string literal"
370370 msgstr ""
371371
372−#: directives.c:2064
372+#: directives.c:2021
373373 msgid "#else without #if"
374374 msgstr ""
375375
376−#: directives.c:2069
376+#: directives.c:2026
377377 msgid "#else after #else"
378378 msgstr ""
379379
380−#: directives.c:2071 directives.c:2104
380+#: directives.c:2028 directives.c:2061
381381 msgid "the conditional began here"
382382 msgstr ""
383383
384−#: directives.c:2097
384+#: directives.c:2054
385385 msgid "#elif without #if"
386386 msgstr ""
387387
388−#: directives.c:2102
388+#: directives.c:2059
389389 msgid "#elif after #else"
390390 msgstr ""
391391
392−#: directives.c:2133
392+#: directives.c:2090
393393 msgid "#endif without #if"
394394 msgstr ""
395395
396−#: directives.c:2213
396+#: directives.c:2166
397397 msgid "missing '(' after predicate"
398398 msgstr ""
399399
400−#: directives.c:2228
400+#: directives.c:2184
401401 msgid "missing ')' to complete answer"
402402 msgstr ""
403403
404−#: directives.c:2248
404+#: directives.c:2196
405405 msgid "predicate's answer is empty"
406406 msgstr ""
407407
408−#: directives.c:2275
408+#: directives.c:2226
409409 msgid "assertion without predicate"
410410 msgstr ""
411411
412−#: directives.c:2278
412+#: directives.c:2229
413413 msgid "predicate must be an identifier"
414414 msgstr ""
415415
416−#: directives.c:2364
416+#: directives.c:2311
417417 #, c-format
418418 msgid "\"%s\" re-asserted"
419419 msgstr ""
420420
421−#: directives.c:2656
421+#: directives.c:2587
422422 #, c-format
423423 msgid "unterminated #%s"
424424 msgstr ""
425425
426−#: directives-only.c:221 lex.c:2851 traditional.c:167
426+#: directives-only.c:221 lex.c:2862 traditional.c:175
427427 msgid "unterminated comment"
428428 msgstr "незавершаныя каментарыі"
429429
430−#: errors.c:284
430+#: errors.c:291
431431 #, c-format
432432 msgid "%s: %s"
433433 msgstr ""
434434
435−#: errors.c:296
435+#: errors.c:304
436436 msgid "stdout"
437437 msgstr ""
438438
@@ -529,86 +529,86 @@ msgstr "" · 90 unmodified lines
529529 msgid "this use of \"defined\" may not be portable"
530530 msgstr ""
531531
532−#: expr.c:1125
532+#: expr.c:1109
533533 msgid "user-defined literal in preprocessor expression"
534534 msgstr ""
535535
536−#: expr.c:1130
536+#: expr.c:1114
537537 msgid "floating constant in preprocessor expression"
538538 msgstr ""
539539
540−#: expr.c:1136
540+#: expr.c:1120
541541 msgid "imaginary number in preprocessor expression"
542542 msgstr ""
543543
544−#: expr.c:1189
544+#: expr.c:1173
545545 #, c-format
546546 msgid "\"%s\" is not defined, evaluates to 0"
547547 msgstr ""
548548
549−#: expr.c:1202
549+#: expr.c:1186
550550 msgid "assertions are a GCC extension"
551551 msgstr ""
552552
553−#: expr.c:1205
553+#: expr.c:1189
554554 msgid "assertions are a deprecated extension"
555555 msgstr ""
556556
557−#: expr.c:1451
557+#: expr.c:1435
558558 #, fuzzy, c-format
559559 #| msgid "unbalanced #endif"
560560 msgid "unbalanced stack in %s"
561561 msgstr "незбалансаваны #endif"
562562
563−#: expr.c:1471
563+#: expr.c:1455
564564 #, fuzzy, c-format
565565 #| msgid "impossible operator '%s'"
566566 msgid "impossible operator '%u'"
567567 msgstr "немагчымы апэратар '%s'"
568568
569−#: expr.c:1572
569+#: expr.c:1556
570570 msgid "missing ')' in expression"
571571 msgstr ""
572572
573−#: expr.c:1601
573+#: expr.c:1585
574574 msgid "'?' without following ':'"
575575 msgstr ""
576576
577−#: expr.c:1611
577+#: expr.c:1595
578578 msgid "integer overflow in preprocessor expression"
579579 msgstr ""
580580
581−#: expr.c:1616
581+#: expr.c:1600
582582 msgid "missing '(' in expression"
583583 msgstr ""
584584
585−#: expr.c:1648
585+#: expr.c:1632
586586 #, c-format
587587 msgid "the left operand of \"%s\" changes sign when promoted"
588588 msgstr ""
589589
590−#: expr.c:1653
590+#: expr.c:1637
591591 #, c-format
592592 msgid "the right operand of \"%s\" changes sign when promoted"
593593 msgstr ""
594594
595−#: expr.c:1912
595+#: expr.c:1896
596596 msgid "traditional C rejects the unary plus operator"
597597 msgstr ""
598598
599−#: expr.c:2010
599+#: expr.c:1994
600600 msgid "comma operator in operand of #if"
601601 msgstr ""
602602
603−#: expr.c:2146
603+#: expr.c:2130
604604 msgid "division by zero in #if"
605605 msgstr ""
606606
607−#: expr.c:2243
607+#: expr.c:2227
608608 msgid "operator \"__has_include__\" requires a header string"
609609 msgstr ""
610610
611−#: expr.c:2259
611+#: expr.c:2243
612612 msgid "missing ')' after \"__has_include__\""
613613 msgstr ""
614614
@@ -625,40 +625,40 @@ msgstr "" · 10 unmodified lines
625625 msgid "no include path in which to search for %s"
626626 msgstr ""
627627
628−#: files.c:1441
628+#: files.c:1455
629629 msgid "Multiple include guards may be useful for:\n"
630630 msgstr ""
631631
632−#: init.c:565
632+#: init.c:569
633633 msgid "cppchar_t must be an unsigned type"
634634 msgstr ""
635635
636−#: init.c:569
636+#: init.c:573
637637 #, c-format
638638 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
639639 msgstr ""
640640
641−#: init.c:576
641+#: init.c:580
642642 msgid "CPP arithmetic must be at least as precise as a target int"
643643 msgstr ""
644644
645−#: init.c:579
645+#: init.c:583
646646 msgid "target char is less than 8 bits wide"
647647 msgstr ""
648648
649−#: init.c:583
649+#: init.c:587
650650 msgid "target wchar_t is narrower than target char"
651651 msgstr ""
652652
653−#: init.c:587
653+#: init.c:591
654654 msgid "target int is narrower than target char"
655655 msgstr ""
656656
657−#: init.c:592
657+#: init.c:596
658658 msgid "CPP half-integer narrower than CPP character"
659659 msgstr ""
660660
661−#: init.c:596
661+#: init.c:600
662662 #, c-format
663663 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
664664 msgstr ""
@@ -731,264 +731,265 @@ msgstr "" · 66 unmodified lines
731731 msgid "identifier \"%s\" is a special operator name in C++"
732732 msgstr ""
733733
734−#: lex.c:1811
734+#: lex.c:1826
735735 msgid "raw string delimiter longer than 16 characters"
736736 msgstr ""
737737
738−#: lex.c:1815
738+#: lex.c:1830
739739 msgid "invalid new-line in raw string delimiter"
740740 msgstr ""
741741
742−#: lex.c:1819
742+#: lex.c:1834
743743 #, fuzzy, c-format
744744 msgid "invalid character '%c' in raw string delimiter"
745745 msgstr "сімвальная канстанта вельмі доўгая"
746746
747−#: lex.c:1868 lex.c:1890
747+#: lex.c:1883 lex.c:1905
748748 #, fuzzy
749749 #| msgid "unterminated comment"
750750 msgid "unterminated raw string"
751751 msgstr "незавершаныя каментарыі"
752752
753−#: lex.c:1912 lex.c:2043
753+#: lex.c:1925 lex.c:2054
754754 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
755755 msgstr ""
756756
757−#: lex.c:2024
757+#: lex.c:2037
758758 msgid "null character(s) preserved in literal"
759759 msgstr ""
760760
761−#: lex.c:2027
761+#: lex.c:2040
762762 #, c-format
763763 msgid "missing terminating %c character"
764764 msgstr "прапушчан завяршаючы сімвал %c"
765765
766−#: lex.c:2061
766+#: lex.c:2072
767767 msgid "C++11 requires a space between string literal and macro"
768768 msgstr ""
769769
770−#: lex.c:2865 lex.c:2899
770+#: lex.c:2876 lex.c:2910
771771 msgid "C++ style comments are not allowed in ISO C90"
772772 msgstr ""
773773
774−#: lex.c:2867 lex.c:2878 lex.c:2901
774+#: lex.c:2878 lex.c:2889 lex.c:2913
775775 msgid "(this will be reported only once per input file)"
776776 msgstr ""
777777
778−#: lex.c:2876
778+#: lex.c:2887
779779 msgid "C++ style comments are incompatible with C90"
780780 msgstr ""
781781
782−#: lex.c:2907
782+#: lex.c:2919
783783 msgid "multi-line comment"
784784 msgstr ""
785785
786−#: lex.c:3287
786+#: lex.c:3299
787787 #, fuzzy, c-format
788788 msgid "unspellable token %s"
789789 msgstr "немагу адчыніць файл \"%s\""
790790
791−#: macro.c:93
791+#: macro.c:94
792792 msgid "'##' cannot appear at either end of __VA_OPT__"
793793 msgstr ""
794794
795−#: macro.c:352
795+#: macro.c:354
796796 #, c-format
797797 msgid "macro \"%s\" is not used"
798798 msgstr ""
799799
800−#: macro.c:391 macro.c:639
800+#: macro.c:393 macro.c:641
801801 #, c-format
802802 msgid "invalid built-in macro \"%s\""
803803 msgstr ""
804804
805−#: macro.c:398 macro.c:500
805+#: macro.c:400 macro.c:502
806806 #, c-format
807807 msgid "macro \"%s\" might prevent reproducible builds"
808808 msgstr ""
809809
810−#: macro.c:429
810+#: macro.c:431
811811 #, fuzzy
812812 msgid "could not determine file timestamp"
813813 msgstr "не магу знайсці крыніцу %s\n"
814814
815−#: macro.c:546
815+#: macro.c:548
816816 #, fuzzy
817817 #| msgid "Could not open data file %s.\n"
818818 msgid "could not determine date and time"
819819 msgstr "Немагчыма адчыніць файл з дадзенымі %s.\n"
820820
821−#: macro.c:562
821+#: macro.c:564
822822 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
823823 msgstr ""
824824
825−#: macro.c:758
825+#: macro.c:760
826826 msgid "invalid string literal, ignoring final '\\'"
827827 msgstr ""
828828
829−#: macro.c:820
829+#: macro.c:822
830830 #, c-format
831831 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
832832 msgstr ""
833833
834−#: macro.c:946
834+#: macro.c:948
835835 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
836836 msgstr ""
837837
838−#: macro.c:950
838+#: macro.c:952
839839 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
840840 msgstr ""
841841
842−#: macro.c:957
842+#: macro.c:959
843843 #, c-format
844844 msgid "macro \"%s\" requires %u arguments, but only %u given"
845845 msgstr ""
846846
847−#: macro.c:962
847+#: macro.c:964
848848 #, c-format
849849 msgid "macro \"%s\" passed %u arguments, but takes just %u"
850850 msgstr ""
851851
852−#: macro.c:1156 traditional.c:819
852+#: macro.c:1162 traditional.c:827
853853 #, c-format
854854 msgid "unterminated argument list invoking macro \"%s\""
855855 msgstr ""
856856
857−#: macro.c:1307
857+#: macro.c:1304
858858 #, c-format
859859 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
860860 msgstr ""
861861
862−#: macro.c:2003
862+#: macro.c:2083
863863 #, c-format
864864 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
865865 msgstr ""
866866
867−#: macro.c:2011 macro.c:2020
867+#: macro.c:2091 macro.c:2100
868868 #, c-format
869869 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
870870 msgstr ""
871871
872−#: macro.c:2984
872+#: macro.c:3059
873873 #, c-format
874874 msgid "duplicate macro parameter \"%s\""
875875 msgstr ""
876876
877−#: macro.c:3033
877+#: macro.c:3141
878+#, fuzzy, c-format
879+msgid "expected parameter name, found \"%s\""
880+msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
881+
882+#: macro.c:3142
878883 #, c-format
879−msgid "\"%s\" may not appear in macro parameter list"
884+msgid "expected ',' or ')', found \"%s\""
880885 msgstr ""
881886
882−#: macro.c:3041
883−msgid "macro parameters must be comma-separated"
887+#: macro.c:3143
888+#, fuzzy
889+msgid "expected parameter name before end of line"
890+msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
891+
892+#: macro.c:3144
893+msgid "expected ')' before end of line"
884894 msgstr ""
885895
886−#: macro.c:3060
887−msgid "parameter name missing"
896+#: macro.c:3145
897+msgid "expected ')' after \"...\""
888898 msgstr ""
889899
890−#: macro.c:3081
900+#: macro.c:3202
891901 msgid "anonymous variadic macros were introduced in C++11"
892902 msgstr ""
893903
894−#: macro.c:3085 macro.c:3090
904+#: macro.c:3203 macro.c:3207
895905 msgid "anonymous variadic macros were introduced in C99"
896906 msgstr ""
897907
898−#: macro.c:3097
908+#: macro.c:3213
899909 #, fuzzy
900910 msgid "ISO C++ does not permit named variadic macros"
901911 msgstr "ISO C89 не падтрымлівае \"long long\""
902912
903−#: macro.c:3100
913+#: macro.c:3214
904914 msgid "ISO C does not permit named variadic macros"
905915 msgstr ""
906916
907−#: macro.c:3110
908−msgid "missing ')' in macro parameter list"
909−msgstr ""
910−
911−#: macro.c:3161
917+#: macro.c:3260
912918 msgid "'##' cannot appear at either end of a macro expansion"
913919 msgstr ""
914920
915−#: macro.c:3198
921+#: macro.c:3298
916922 msgid "ISO C++11 requires whitespace after the macro name"
917923 msgstr ""
918924
919−#: macro.c:3201
925+#: macro.c:3299
920926 msgid "ISO C99 requires whitespace after the macro name"
921927 msgstr ""
922928
923−#: macro.c:3226
929+#: macro.c:3323
924930 #, fuzzy
925931 #| msgid "missing white space after number '%.*s'"
926932 msgid "missing whitespace after the macro name"
927933 msgstr "прапушчан прабел пасля нумара \"%.*s\""
928934
929−#: macro.c:3263
935+#: macro.c:3373
930936 msgid "'#' is not followed by a macro parameter"
931937 msgstr ""
932938
933−#: macro.c:3430
939+#: macro.c:3524
934940 #, c-format
935941 msgid "\"%s\" redefined"
936942 msgstr ""
937943
938−#: macro.c:3435
944+#: macro.c:3529
939945 msgid "this is the location of the previous definition"
940946 msgstr ""
941947
942−#: macro.c:3496
948+#: macro.c:3633
943949 #, c-format
944950 msgid "macro argument \"%s\" would be stringified in traditional C"
945951 msgstr ""
946952
947−#: macro.c:3532
948−#, c-format
949−msgid "invalid hash type %d in cpp_macro_definition"
950−msgstr ""
951−
952−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
953+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
953954 msgid "while writing precompiled header"
954955 msgstr ""
955956
956−#: pch.c:621
957+#: pch.c:616
957958 #, c-format
958959 msgid "%s: not used because `%.*s' is poisoned"
959960 msgstr ""
960961
961−#: pch.c:643
962+#: pch.c:638
962963 #, fuzzy, c-format
963964 #| msgid "label `%s' used but not defined"
964965 msgid "%s: not used because `%.*s' not defined"
965966 msgstr "адмеціна `%s' выкарыстоўвываецца, але ня вызначана"
966967
967−#: pch.c:655
968+#: pch.c:650
968969 #, c-format
969970 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
970971 msgstr ""
971972
972−#: pch.c:696
973+#: pch.c:691
973974 #, c-format
974975 msgid "%s: not used because `%s' is defined"
975976 msgstr ""
976977
977−#: pch.c:716
978+#: pch.c:711
978979 #, c-format
979980 msgid "%s: not used because `__COUNTER__' is invalid"
980981 msgstr ""
981982
982−#: pch.c:725 pch.c:903
983+#: pch.c:720 pch.c:878
983984 msgid "while reading precompiled header"
984985 msgstr ""
985986
986−#: traditional.c:889
987+#: traditional.c:896
987988 #, c-format
988989 msgid "detected recursion whilst expanding macro \"%s\""
989990 msgstr ""
990991
991−#: traditional.c:1108
992+#: traditional.c:1119
992993 msgid "syntax error in macro parameter list"
993994 msgstr ""
994995
@@ -2541,10 +2542,6 @@ msgstr "" · 1546 unmodified lines
25412542 #~ msgid "can't define friend function `%s' in a local class definition"
25422543 #~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
25432544
2544−#, fuzzy
2545−#~ msgid "template parameters cannot be friends"
2546−#~ msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
2547−
25482545 #~ msgid "invalid use of `::'"
25492546 #~ msgstr "нерэчаіснае выкарыстаньне `::'"
25502547
gcc/libcpp/po/ca.gmo+0−0

Binary file not shown.

gcc/libcpp/po/ca.po+180−165
@@ -11,7 +11,7 @@ msgid "" · 10 unmodified lines
1111 msgstr ""
1212 "Project-Id-Version: cpplib-4.0.1\n"
1313 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
14−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
14+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1515 "PO-Revision-Date: 2005-11-25 22:56+0100\n"
1616 "Last-Translator: Mateu Gilles <gilles@mateu.org>\n"
1717 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -92,7 +92,7 @@ msgstr "el nom de car · 74 unmodified lines
9292 msgid "universal character %.*s is not valid at the start of an identifier"
9393 msgstr "el nom de car�cter universal %.*s no �s v�lid a l'inici d'un identificador"
9494
95−#: charset.c:1181 charset.c:2000
95+#: charset.c:1181 charset.c:2002
9696 msgid "converting UCN to source character set"
9797 msgstr "convertint UCN al joc font de car�cters"
9898
@@ -145,304 +145,304 @@ msgstr "convertint una seq · 46 unmodified lines
145145 msgid "missing open quote"
146146 msgstr ""
147147
148−#: charset.c:1827 charset.c:1891
148+#: charset.c:1829 charset.c:1893
149149 msgid "character constant too long for its type"
150150 msgstr "constant de car�cter massa gran pel seu tipus"
151151
152−#: charset.c:1830
152+#: charset.c:1832
153153 msgid "multi-character character constant"
154154 msgstr "constant de car�cter amb m�ltiples car�cters"
155155
156−#: charset.c:1931
156+#: charset.c:1933
157157 msgid "empty character constant"
158158 msgstr "constant de car�ter buida"
159159
160−#: charset.c:2047
160+#: charset.c:2049
161161 #, c-format
162162 msgid "failure to convert %s to %s"
163163 msgstr "fallada convertint %s a %s"
164164
165−#: directives.c:235 directives.c:278
165+#: directives.c:229 directives.c:272
166166 #, c-format
167167 msgid "extra tokens at end of #%s directive"
168168 msgstr "elements superflus al final de la directiva #%s"
169169
170−#: directives.c:385
170+#: directives.c:379
171171 #, c-format
172172 msgid "#%s is a GCC extension"
173173 msgstr "#%s �s una extenci� del GCC"
174174
175−#: directives.c:390
175+#: directives.c:384
176176 #, fuzzy, c-format
177177 #| msgid "#%s is a GCC extension"
178178 msgid "#%s is a deprecated GCC extension"
179179 msgstr "#%s �s una extenci� del GCC"
180180
181−#: directives.c:403
181+#: directives.c:397
182182 msgid "suggest not using #elif in traditional C"
183183 msgstr "es suggereix no usar #elif en C tradicional"
184184
185−#: directives.c:406
185+#: directives.c:400
186186 #, c-format
187187 msgid "traditional C ignores #%s with the # indented"
188188 msgstr "C tradicional ignora #%s amb el # indentat"
189189
190−#: directives.c:410
190+#: directives.c:404
191191 #, c-format
192192 msgid "suggest hiding #%s from traditional C with an indented #"
193193 msgstr "es suggereix ocultar #%s del C tradicional amb el # indentat"
194194
195−#: directives.c:436
195+#: directives.c:430
196196 msgid "embedding a directive within macro arguments is not portable"
197197 msgstr "l'incrustaci� d'una directiva entre arguments de macro no �s portable"
198198
199−#: directives.c:456
199+#: directives.c:450
200200 msgid "style of line directive is a GCC extension"
201201 msgstr "la directiva d'estil de l�nia �s una extenci� del GCC"
202202
203−#: directives.c:537
203+#: directives.c:531
204204 #, c-format
205205 msgid "invalid preprocessing directive #%s"
206206 msgstr "directiva de preprocessament #%s inv�lida"
207207
208−#: directives.c:606
208+#: directives.c:600
209209 msgid "\"defined\" cannot be used as a macro name"
210210 msgstr "\"defined\" no es pot usar com un nom de macro"
211211
212−#: directives.c:611
212+#: directives.c:605
213213 #, fuzzy
214214 #| msgid "\"defined\" cannot be used as a macro name"
215215 msgid "\"__has_include__\" cannot be used as a macro name"
216216 msgstr "\"defined\" no es pot usar com un nom de macro"
217217
218−#: directives.c:617
218+#: directives.c:611
219219 #, c-format
220220 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
221221 msgstr "no es pot usar \"%s\" com un nom de macro perqu� �s un operador en C++"
222222
223−#: directives.c:620
223+#: directives.c:614
224224 #, c-format
225225 msgid "no macro name given in #%s directive"
226226 msgstr "no es va donar un nom de macro en la directiva #%s"
227227
228−#: directives.c:623
228+#: directives.c:617
229229 msgid "macro names must be identifiers"
230230 msgstr "els noms de macro han de ser identificadors"
231231
232−#: directives.c:672 directives.c:677
232+#: directives.c:666 directives.c:671
233233 #, c-format
234234 msgid "undefining \"%s\""
235235 msgstr "esborrant la definici� de \"%s\""
236236
237−#: directives.c:732
237+#: directives.c:727
238238 msgid "missing terminating > character"
239239 msgstr "falta el car�cter de terminaci� >"
240240
241−#: directives.c:791
241+#: directives.c:786
242242 #, c-format
243243 msgid "#%s expects \"FILENAME\" or <FILENAME>"
244244 msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
245245
246−#: directives.c:837
246+#: directives.c:828
247247 #, c-format
248248 msgid "empty filename in #%s"
249249 msgstr "nom de fitxer buit en #%s"
250250
251−#: directives.c:847
251+#: directives.c:835
252252 msgid "#include nested too deeply"
253253 msgstr "#include niat amb massa profunditat"
254254
255−#: directives.c:888
255+#: directives.c:877
256256 msgid "#include_next in primary source file"
257257 msgstr "#include_next en el fitxer font primari"
258258
259−#: directives.c:914
259+#: directives.c:903
260260 #, c-format
261261 msgid "invalid flag \"%s\" in line directive"
262262 msgstr "indicador \"%s\" inv�lid en la directiva de l�nia"
263263
264−#: directives.c:974
264+#: directives.c:963
265265 msgid "unexpected end of file after #line"
266266 msgstr ""
267267
268−#: directives.c:977
268+#: directives.c:966
269269 #, c-format
270270 msgid "\"%s\" after #line is not a positive integer"
271271 msgstr "\"%s\" despr�s de #line no �s un enter positiu"
272272
273−#: directives.c:983 directives.c:985
273+#: directives.c:972 directives.c:974
274274 msgid "line number out of range"
275275 msgstr "nombre de l�nia fora de rang"
276276
277−#: directives.c:998 directives.c:1079
277+#: directives.c:987 directives.c:1068
278278 #, c-format
279279 msgid "\"%s\" is not a valid filename"
280280 msgstr "\"%s\" no �s un nom de fitxer v�lid"
281281
282−#: directives.c:1039
282+#: directives.c:1028
283283 #, c-format
284284 msgid "\"%s\" after # is not a positive integer"
285285 msgstr "\"%s\" despr�s de # no �s un enter positiu"
286286
287−#: directives.c:1098
287+#: directives.c:1087
288288 #, c-format
289289 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
290290 msgstr ""
291291
292−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
292+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
293293 #, c-format
294294 msgid "%s"
295295 msgstr ""
296296
297−#: directives.c:1185
297+#: directives.c:1175
298298 #, fuzzy, c-format
299299 #| msgid "invalid #ident directive"
300300 msgid "invalid #%s directive"
301301 msgstr "directiva #ident inv�lida"
302302
303−#: directives.c:1248
303+#: directives.c:1238
304304 #, c-format
305305 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
306306 msgstr ""
307307
308−#: directives.c:1257
308+#: directives.c:1247
309309 #, fuzzy, c-format
310310 #| msgid "registering \"%s\" as both a pragma and a pragma namespace"
311311 msgid "registering pragma \"%s\" with name expansion and no namespace"
312312 msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
313313
314−#: directives.c:1275
314+#: directives.c:1265
315315 #, c-format
316316 msgid "registering \"%s\" as both a pragma and a pragma namespace"
317317 msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
318318
319−#: directives.c:1278
319+#: directives.c:1268
320320 #, c-format
321321 msgid "#pragma %s %s is already registered"
322322 msgstr "ja s'ha desat #pragma %s %s"
323323
324−#: directives.c:1281
324+#: directives.c:1271
325325 #, c-format
326326 msgid "#pragma %s is already registered"
327327 msgstr "ja s'ha desat #pragma %s"
328328
329−#: directives.c:1311
329+#: directives.c:1301
330330 msgid "registering pragma with NULL handler"
331331 msgstr ""
332332
333−#: directives.c:1528
333+#: directives.c:1518
334334 msgid "#pragma once in main file"
335335 msgstr "#pragma una vegada en el fitxer principal"
336336
337−#: directives.c:1551
337+#: directives.c:1541
338338 #, fuzzy
339339 #| msgid "invalid #pragma GCC poison directive"
340340 msgid "invalid #pragma push_macro directive"
341341 msgstr "directiva #pragma de GCC enverinada inv�lida"
342342
343−#: directives.c:1606
343+#: directives.c:1596
344344 #, fuzzy
345345 #| msgid "invalid #pragma GCC poison directive"
346346 msgid "invalid #pragma pop_macro directive"
347347 msgstr "directiva #pragma de GCC enverinada inv�lida"
348348
349−#: directives.c:1661
349+#: directives.c:1651
350350 msgid "invalid #pragma GCC poison directive"
351351 msgstr "directiva #pragma de GCC enverinada inv�lida"
352352
353−#: directives.c:1670
353+#: directives.c:1660
354354 #, c-format
355355 msgid "poisoning existing macro \"%s\""
356356 msgstr "enverinant la macro existent \"%s\""
357357
358−#: directives.c:1689
358+#: directives.c:1679
359359 msgid "#pragma system_header ignored outside include file"
360360 msgstr "#pragma system_header ignorat fora del fitxer d'inclusi�"
361361
362−#: directives.c:1714
362+#: directives.c:1704
363363 #, c-format
364364 msgid "cannot find source file %s"
365365 msgstr "no es pot trobar la font %s"
366366
367−#: directives.c:1718
367+#: directives.c:1708
368368 #, c-format
369369 msgid "current file is older than %s"
370370 msgstr "el fitxer actual �s m�s vell que %s"
371371
372−#: directives.c:1742
372+#: directives.c:1732
373373 #, fuzzy, c-format
374374 #| msgid "invalid #pragma GCC poison directive"
375375 msgid "invalid \"#pragma GCC %s\" directive"
376376 msgstr "directiva #pragma de GCC enverinada inv�lida"
377377
378−#: directives.c:1943
378+#: directives.c:1933
379379 msgid "_Pragma takes a parenthesized string literal"
380380 msgstr "_Pragma pren una cadena literal entre par�ntesis"
381381
382−#: directives.c:2064
382+#: directives.c:2021
383383 msgid "#else without #if"
384384 msgstr "#else sense #if"
385385
386−#: directives.c:2069
386+#: directives.c:2026
387387 msgid "#else after #else"
388388 msgstr "#else despr�s de #else"
389389
390−#: directives.c:2071 directives.c:2104
390+#: directives.c:2028 directives.c:2061
391391 msgid "the conditional began here"
392392 msgstr "el condicional va comen�ar aqu�"
393393
394−#: directives.c:2097
394+#: directives.c:2054
395395 msgid "#elif without #if"
396396 msgstr "#elif sense #if"
397397
398−#: directives.c:2102
398+#: directives.c:2059
399399 msgid "#elif after #else"
400400 msgstr "#elif despr�s de #else"
401401
402−#: directives.c:2133
402+#: directives.c:2090
403403 msgid "#endif without #if"
404404 msgstr "#endif sense #if"
405405
406−#: directives.c:2213
406+#: directives.c:2166
407407 msgid "missing '(' after predicate"
408408 msgstr "falta \"(\" abans del predicat"
409409
410−#: directives.c:2228
410+#: directives.c:2184
411411 msgid "missing ')' to complete answer"
412412 msgstr "falta \")\" per a completar la resposta"
413413
414−#: directives.c:2248
414+#: directives.c:2196
415415 msgid "predicate's answer is empty"
416416 msgstr "el predicat de la resposta est� buit"
417417
418−#: directives.c:2275
418+#: directives.c:2226
419419 msgid "assertion without predicate"
420420 msgstr "afirmaci� sense predicat"
421421
422−#: directives.c:2278
422+#: directives.c:2229
423423 msgid "predicate must be an identifier"
424424 msgstr "el predicat ha de ser un identificador"
425425
426−#: directives.c:2364
426+#: directives.c:2311
427427 #, c-format
428428 msgid "\"%s\" re-asserted"
429429 msgstr "\"%s\" reafirmat"
430430
431−#: directives.c:2656
431+#: directives.c:2587
432432 #, c-format
433433 msgid "unterminated #%s"
434434 msgstr "#%s sense acabar"
435435
436−#: directives-only.c:221 lex.c:2851 traditional.c:167
436+#: directives-only.c:221 lex.c:2862 traditional.c:175
437437 msgid "unterminated comment"
438438 msgstr "comentari sense acabar"
439439
440−#: errors.c:284
440+#: errors.c:291
441441 #, c-format
442442 msgid "%s: %s"
443443 msgstr "%s: %s"
444444
445−#: errors.c:296
445+#: errors.c:304
446446 msgid "stdout"
447447 msgstr "stdout"
448448
@@ -552,92 +552,92 @@ msgstr "(\"%s\" · 103 unmodified lines
552552 msgid "this use of \"defined\" may not be portable"
553553 msgstr "aquest �s de \"defined\" podria no ser portable"
554554
555−#: expr.c:1125
555+#: expr.c:1109
556556 #, fuzzy
557557 #| msgid "integer overflow in preprocessor expression"
558558 msgid "user-defined literal in preprocessor expression"
559559 msgstr "desbordament d'enter en l'expressi� del preprocessador"
560560
561−#: expr.c:1130
561+#: expr.c:1114
562562 msgid "floating constant in preprocessor expression"
563563 msgstr "constant de coma flotant en l'expressi� del preprocessador"
564564
565−#: expr.c:1136
565+#: expr.c:1120
566566 msgid "imaginary number in preprocessor expression"
567567 msgstr "nombre imaginari en l'expressi� del preprocessador"
568568
569−#: expr.c:1189
569+#: expr.c:1173
570570 #, fuzzy, c-format
571571 #| msgid "\"%s\" is not defined"
572572 msgid "\"%s\" is not defined, evaluates to 0"
573573 msgstr "\"%s\" no �s definit"
574574
575−#: expr.c:1202
575+#: expr.c:1186
576576 #, fuzzy
577577 #| msgid "#%s is a GCC extension"
578578 msgid "assertions are a GCC extension"
579579 msgstr "#%s �s una extenci� del GCC"
580580
581−#: expr.c:1205
581+#: expr.c:1189
582582 msgid "assertions are a deprecated extension"
583583 msgstr ""
584584
585−#: expr.c:1451
585+#: expr.c:1435
586586 #, fuzzy, c-format
587587 #| msgid "unbalanced stack in #if"
588588 msgid "unbalanced stack in %s"
589589 msgstr "pila desequilibrada en #if"
590590
591−#: expr.c:1471
591+#: expr.c:1455
592592 #, c-format
593593 msgid "impossible operator '%u'"
594594 msgstr "operador \"%u\" impossible"
595595
596−#: expr.c:1572
596+#: expr.c:1556
597597 msgid "missing ')' in expression"
598598 msgstr "\")\" faltant en l'expressi�"
599599
600−#: expr.c:1601
600+#: expr.c:1585
601601 msgid "'?' without following ':'"
602602 msgstr " \"?\" sense el \":\" seg�ent"
603603
604−#: expr.c:1611
604+#: expr.c:1595
605605 msgid "integer overflow in preprocessor expression"
606606 msgstr "desbordament d'enter en l'expressi� del preprocessador"
607607
608−#: expr.c:1616
608+#: expr.c:1600
609609 msgid "missing '(' in expression"
610610 msgstr "\"(\" faltant en l'expressi�"
611611
612−#: expr.c:1648
612+#: expr.c:1632
613613 #, c-format
614614 msgid "the left operand of \"%s\" changes sign when promoted"
615615 msgstr "l'operant esquera de \"%s\" canvia el signe quan �s promogut"
616616
617−#: expr.c:1653
617+#: expr.c:1637
618618 #, c-format
619619 msgid "the right operand of \"%s\" changes sign when promoted"
620620 msgstr "l'operant dreta de \"%s\" canvia el signe quan �s promogut"
621621
622−#: expr.c:1912
622+#: expr.c:1896
623623 msgid "traditional C rejects the unary plus operator"
624624 msgstr "C tradicional rebutja l'operador unari m�s"
625625
626−#: expr.c:2010
626+#: expr.c:1994
627627 msgid "comma operator in operand of #if"
628628 msgstr "operador coma en operant de #if"
629629
630−#: expr.c:2146
630+#: expr.c:2130
631631 msgid "division by zero in #if"
632632 msgstr "divisi� per zero en #if"
633633
634−#: expr.c:2243
634+#: expr.c:2227
635635 #, fuzzy
636636 #| msgid "operator \"defined\" requires an identifier"
637637 msgid "operator \"__has_include__\" requires a header string"
638638 msgstr "l'operador \"defined\" requereix un identificador"
639639
640−#: expr.c:2259
640+#: expr.c:2243
641641 #, fuzzy
642642 #| msgid "missing ')' after \"defined\""
643643 msgid "missing ')' after \"__has_include__\""
@@ -656,40 +656,40 @@ msgstr "usi -Winvalid-pch per a m · 12 unmodified lines
656656 msgid "no include path in which to search for %s"
657657 msgstr "no hi ha ruta d'inclusi� en la qual cercar %s"
658658
659−#: files.c:1441
659+#: files.c:1455
660660 msgid "Multiple include guards may be useful for:\n"
661661 msgstr "M�ltiples gu�rdies d'inclusi� poden ser �tils per a:\n"
662662
663−#: init.c:565
663+#: init.c:569
664664 msgid "cppchar_t must be an unsigned type"
665665 msgstr "cppchar_t ha de ser d'un tipus unsigned"
666666
667−#: init.c:569
667+#: init.c:573
668668 #, c-format
669669 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
670670 msgstr "l'aritm�tica del preprocesador t� una precisi� m�xima de %lu bits; l'objectiu requereix %lu bits"
671671
672−#: init.c:576
672+#: init.c:580
673673 msgid "CPP arithmetic must be at least as precise as a target int"
674674 msgstr "l'aritm�tica de CPP ha de ser almenys tan precisa com un int de l'objectiu"
675675
676−#: init.c:579
676+#: init.c:583
677677 msgid "target char is less than 8 bits wide"
678678 msgstr "el char de l'objectiu t� menys de 8 bits d'ampliaria"
679679
680−#: init.c:583
680+#: init.c:587
681681 msgid "target wchar_t is narrower than target char"
682682 msgstr "el wchar_t de l'objectiu �s m�s estret qu'el char de l'objectiu"
683683
684−#: init.c:587
684+#: init.c:591
685685 msgid "target int is narrower than target char"
686686 msgstr "el int de l'objectiu �s m�s estret qu'el char de l'objectiu"
687687
688−#: init.c:592
688+#: init.c:596
689689 msgid "CPP half-integer narrower than CPP character"
690690 msgstr "el half-integer de CPP �s m�s estret que el car�cter de CPP"
691691
692−#: init.c:596
692+#: init.c:600
693693 #, c-format
694694 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
695695 msgstr "CPP no pot manejar constants de car�cter amples m�s enll� de %lu bits en aquest ordinador, per� l'objectiu requereix %lu bits"
@@ -767,275 +767,275 @@ msgstr "__VA_ARGS__ solament pot apar · 71 unmodified lines
767767 msgid "identifier \"%s\" is a special operator name in C++"
768768 msgstr ""
769769
770−#: lex.c:1811
770+#: lex.c:1826
771771 msgid "raw string delimiter longer than 16 characters"
772772 msgstr ""
773773
774−#: lex.c:1815
774+#: lex.c:1830
775775 msgid "invalid new-line in raw string delimiter"
776776 msgstr ""
777777
778−#: lex.c:1819
778+#: lex.c:1834
779779 #, fuzzy, c-format
780780 #| msgid "universal character %.*s is not valid in an identifier"
781781 msgid "invalid character '%c' in raw string delimiter"
782782 msgstr "el nom de car�cter universal %.*s no �s v�lid en un identificador"
783783
784−#: lex.c:1868 lex.c:1890
784+#: lex.c:1883 lex.c:1905
785785 #, fuzzy
786786 #| msgid "unterminated #%s"
787787 msgid "unterminated raw string"
788788 msgstr "#%s sense acabar"
789789
790−#: lex.c:1912 lex.c:2043
790+#: lex.c:1925 lex.c:2054
791791 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
792792 msgstr ""
793793
794−#: lex.c:2024
794+#: lex.c:2037
795795 msgid "null character(s) preserved in literal"
796796 msgstr "car�cter(es) nul(s) preservats en la literal"
797797
798−#: lex.c:2027
798+#: lex.c:2040
799799 #, fuzzy, c-format
800800 #| msgid "missing terminating > character"
801801 msgid "missing terminating %c character"
802802 msgstr "falta el car�cter de terminaci� >"
803803
804−#: lex.c:2061
804+#: lex.c:2072
805805 msgid "C++11 requires a space between string literal and macro"
806806 msgstr ""
807807
808−#: lex.c:2865 lex.c:2899
808+#: lex.c:2876 lex.c:2910
809809 msgid "C++ style comments are not allowed in ISO C90"
810810 msgstr "els comentaris d'estil C++ no s�n permesos en ISO C90"
811811
812−#: lex.c:2867 lex.c:2878 lex.c:2901
812+#: lex.c:2878 lex.c:2889 lex.c:2913
813813 msgid "(this will be reported only once per input file)"
814814 msgstr "(aix� es reportar� solament una vegada per cada fitxer d'entrada)"
815815
816−#: lex.c:2876
816+#: lex.c:2887
817817 #, fuzzy
818818 #| msgid "C++ style comments are not allowed in ISO C90"
819819 msgid "C++ style comments are incompatible with C90"
820820 msgstr "els comentaris d'estil C++ no s�n permesos en ISO C90"
821821
822−#: lex.c:2907
822+#: lex.c:2919
823823 msgid "multi-line comment"
824824 msgstr "comentari en m�ltiples l�nies"
825825
826−#: lex.c:3287
826+#: lex.c:3299
827827 #, c-format
828828 msgid "unspellable token %s"
829829 msgstr "Element %s impronunciable"
830830
831−#: macro.c:93
831+#: macro.c:94
832832 #, fuzzy
833833 #| msgid "'##' cannot appear at either end of a macro expansion"
834834 msgid "'##' cannot appear at either end of __VA_OPT__"
835835 msgstr "\"##\" no pot apareixer en o al final d'una expansi� de macro"
836836
837−#: macro.c:352
837+#: macro.c:354
838838 #, c-format
839839 msgid "macro \"%s\" is not used"
840840 msgstr "no s'usa la macro \"%s\""
841841
842−#: macro.c:391 macro.c:639
842+#: macro.c:393 macro.c:641
843843 #, c-format
844844 msgid "invalid built-in macro \"%s\""
845845 msgstr "macro interna \"%s\" inv�lida"
846846
847−#: macro.c:398 macro.c:500
847+#: macro.c:400 macro.c:502
848848 #, c-format
849849 msgid "macro \"%s\" might prevent reproducible builds"
850850 msgstr ""
851851
852−#: macro.c:429
852+#: macro.c:431
853853 #, fuzzy
854854 #| msgid "could not determine date and time"
855855 msgid "could not determine file timestamp"
856856 msgstr "no es pot determinar la data i l'hora"
857857
858−#: macro.c:546
858+#: macro.c:548
859859 msgid "could not determine date and time"
860860 msgstr "no es pot determinar la data i l'hora"
861861
862−#: macro.c:562
862+#: macro.c:564
863863 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
864864 msgstr ""
865865
866−#: macro.c:758
866+#: macro.c:760
867867 msgid "invalid string literal, ignoring final '\\'"
868868 msgstr "cadena literal inv�lida, s'ignora el \"\\\" final"
869869
870−#: macro.c:820
870+#: macro.c:822
871871 #, c-format
872872 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
873873 msgstr "enganxar \"%s\" i \"%s\" no d�na un element de preprocessament v�lid"
874874
875−#: macro.c:946
875+#: macro.c:948
876876 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
877877 msgstr ""
878878
879−#: macro.c:950
879+#: macro.c:952
880880 #, fuzzy
881881 #| msgid "ISO C99 requires rest arguments to be used"
882882 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
883883 msgstr "ISO C99 requereix que la resta dels arguments sigui usat"
884884
885−#: macro.c:957
885+#: macro.c:959
886886 #, c-format
887887 msgid "macro \"%s\" requires %u arguments, but only %u given"
888888 msgstr "la macro \"%s\" requereix %u arguments, per� nom�s %u passats"
889889
890−#: macro.c:962
890+#: macro.c:964
891891 #, c-format
892892 msgid "macro \"%s\" passed %u arguments, but takes just %u"
893893 msgstr "la macro \"%s\" va rebre %u arguments, per� en va prendre solament %u"
894894
895−#: macro.c:1156 traditional.c:819
895+#: macro.c:1162 traditional.c:827
896896 #, c-format
897897 msgid "unterminated argument list invoking macro \"%s\""
898898 msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
899899
900−#: macro.c:1307
900+#: macro.c:1304
901901 #, c-format
902902 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
903903 msgstr "la funci� de macro \"%s\" s'ha d'usar amb arguments en C tradicional"
904904
905−#: macro.c:2003
905+#: macro.c:2083
906906 #, c-format
907907 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
908908 msgstr ""
909909
910−#: macro.c:2011 macro.c:2020
910+#: macro.c:2091 macro.c:2100
911911 #, c-format
912912 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
913913 msgstr ""
914914
915−#: macro.c:2984
915+#: macro.c:3059
916916 #, c-format
917917 msgid "duplicate macro parameter \"%s\""
918918 msgstr "par�metre de macro \"%s\" duplicat"
919919
920−#: macro.c:3033
920+#: macro.c:3141
921921 #, c-format
922−msgid "\"%s\" may not appear in macro parameter list"
923−msgstr "\"%s\" podria faltar en la llista de par�metre de macro"
922+msgid "expected parameter name, found \"%s\""
923+msgstr ""
924+
925+#: macro.c:3142
926+#, c-format
927+msgid "expected ',' or ')', found \"%s\""
928+msgstr ""
924929
925−#: macro.c:3041
926−msgid "macro parameters must be comma-separated"
927−msgstr "els par�metres de macro han de ser separats per comes"
930+#: macro.c:3143
931+msgid "expected parameter name before end of line"
932+msgstr ""
933+
934+#: macro.c:3144
935+msgid "expected ')' before end of line"
936+msgstr ""
928937
929−#: macro.c:3060
930−msgid "parameter name missing"
931−msgstr "falta el nom del par�metre"
938+#: macro.c:3145
939+msgid "expected ')' after \"...\""
940+msgstr ""
932941
933−#: macro.c:3081
942+#: macro.c:3202
934943 #, fuzzy
935944 #| msgid "anonymous variadic macros were introduced in C99"
936945 msgid "anonymous variadic macros were introduced in C++11"
937946 msgstr "els macros variadic an�nims es van introduir en C99"
938947
939−#: macro.c:3085 macro.c:3090
948+#: macro.c:3203 macro.c:3207
940949 msgid "anonymous variadic macros were introduced in C99"
941950 msgstr "els macros variadic an�nims es van introduir en C99"
942951
943−#: macro.c:3097
952+#: macro.c:3213
944953 #, fuzzy
945954 #| msgid "ISO C does not permit named variadic macros"
946955 msgid "ISO C++ does not permit named variadic macros"
947956 msgstr "ISO C no permet macros variadic nomenats"
948957
949−#: macro.c:3100
958+#: macro.c:3214
950959 msgid "ISO C does not permit named variadic macros"
951960 msgstr "ISO C no permet macros variadic nomenats"
952961
953−#: macro.c:3110
954−msgid "missing ')' in macro parameter list"
955−msgstr "\")\" faltant en la llista de par�metres de macro"
956−
957−#: macro.c:3161
962+#: macro.c:3260
958963 msgid "'##' cannot appear at either end of a macro expansion"
959964 msgstr "\"##\" no pot apareixer en o al final d'una expansi� de macro"
960965
961−#: macro.c:3198
966+#: macro.c:3298
962967 #, fuzzy
963968 #| msgid "ISO C99 requires whitespace after the macro name"
964969 msgid "ISO C++11 requires whitespace after the macro name"
965970 msgstr "ISO C99 requereix espais en blanc despr�s del nom de macro"
966971
967−#: macro.c:3201
972+#: macro.c:3299
968973 msgid "ISO C99 requires whitespace after the macro name"
969974 msgstr "ISO C99 requereix espais en blanc despr�s del nom de macro"
970975
971−#: macro.c:3226
976+#: macro.c:3323
972977 msgid "missing whitespace after the macro name"
973978 msgstr "espais en blanc faltant despr�s del nom de macro"
974979
975−#: macro.c:3263
980+#: macro.c:3373
976981 msgid "'#' is not followed by a macro parameter"
977982 msgstr "\"#\" no �s seguit per un par�metre de macro"
978983
979−#: macro.c:3430
984+#: macro.c:3524
980985 #, c-format
981986 msgid "\"%s\" redefined"
982987 msgstr "\"%s\" re-definit"
983988
984−#: macro.c:3435
989+#: macro.c:3529
985990 msgid "this is the location of the previous definition"
986991 msgstr "aquesta �s la ubicaci� de la definici� pr�via"
987992
988−#: macro.c:3496
993+#: macro.c:3633
989994 #, c-format
990995 msgid "macro argument \"%s\" would be stringified in traditional C"
991996 msgstr "l'argument de macro \"%s\" hauria de ser convertit en cadena en C traditional"
992997
993−#: macro.c:3532
994−#, c-format
995−msgid "invalid hash type %d in cpp_macro_definition"
996−msgstr "tipus de hash %d inv�lid en cpp_macro_definition"
997−
998−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
998+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
999999 msgid "while writing precompiled header"
10001000 msgstr "mentre escrivint cap�alera precompilada"
10011001
1002−#: pch.c:621
1002+#: pch.c:616
10031003 #, fuzzy, c-format
10041004 #| msgid "%s: not used because `%s' is defined"
10051005 msgid "%s: not used because `%.*s' is poisoned"
10061006 msgstr "%s: no utilitzat perqu� \"%s\" �s definit"
10071007
1008−#: pch.c:643
1008+#: pch.c:638
10091009 #, c-format
10101010 msgid "%s: not used because `%.*s' not defined"
10111011 msgstr "%s: no utilitzat perqu� \"%.*s\" no est� definit"
10121012
1013−#: pch.c:655
1013+#: pch.c:650
10141014 #, c-format
10151015 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
10161016 msgstr "%s: no utilitzat perqu� \"%.*s\" est� definit com a \"%s\" i no com a \"%.*s\""
10171017
1018−#: pch.c:696
1018+#: pch.c:691
10191019 #, c-format
10201020 msgid "%s: not used because `%s' is defined"
10211021 msgstr "%s: no utilitzat perqu� \"%s\" �s definit"
10221022
1023−#: pch.c:716
1023+#: pch.c:711
10241024 #, fuzzy, c-format
10251025 #| msgid "%s: not used because `%s' is defined"
10261026 msgid "%s: not used because `__COUNTER__' is invalid"
10271027 msgstr "%s: no utilitzat perqu� \"%s\" �s definit"
10281028
1029−#: pch.c:725 pch.c:903
1029+#: pch.c:720 pch.c:878
10301030 msgid "while reading precompiled header"
10311031 msgstr "mentre llegint cap�alera precompilada"
10321032
1033−#: traditional.c:889
1033+#: traditional.c:896
10341034 #, c-format
10351035 msgid "detected recursion whilst expanding macro \"%s\""
10361036 msgstr "whilst recursiu detectat en expandint la macro \"%s\""
10371037
1038−#: traditional.c:1108
1038+#: traditional.c:1119
10391039 msgid "syntax error in macro parameter list"
10401040 msgstr "error sint�ctic en la llista de par�metre de macro"
10411041
@@ -1108,3 +1108,18 @@ msgstr "error sint · 66 unmodified lines
11081108 #~ msgstr ""
11091109 #~ ",\n"
11101110 #~ " d�s de %s:%u"
1111+
1112+#~ msgid "\"%s\" may not appear in macro parameter list"
1113+#~ msgstr "\"%s\" podria faltar en la llista de par�metre de macro"
1114+
1115+#~ msgid "macro parameters must be comma-separated"
1116+#~ msgstr "els par�metres de macro han de ser separats per comes"
1117+
1118+#~ msgid "parameter name missing"
1119+#~ msgstr "falta el nom del par�metre"
1120+
1121+#~ msgid "missing ')' in macro parameter list"
1122+#~ msgstr "\")\" faltant en la llista de par�metres de macro"
1123+
1124+#~ msgid "invalid hash type %d in cpp_macro_definition"
1125+#~ msgstr "tipus de hash %d inv�lid en cpp_macro_definition"
gcc/libcpp/po/cpplib.pot+157−157
@@ -8,7 +8,7 @@ msgid "" · 7 unmodified lines
88 msgstr ""
99 "Project-Id-Version: PACKAGE VERSION\n"
1010 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
11−"POT-Creation-Date: 2018-04-23 20:24+0000\n"
11+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1212 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -89,7 +89,7 @@ msgid "universal character %.*s is not valid at the start of an identifier" · 74 unmodified lines
8989 msgstr ""
9090
9191 #: charset.c:1181
92−#: charset.c:2000
92+#: charset.c:2002
9393 msgid "converting UCN to source character set"
9494 msgstr ""
9595
@@ -140,289 +140,289 @@ msgstr "" · 44 unmodified lines
140140 msgid "missing open quote"
141141 msgstr ""
142142
143−#: charset.c:1827
144−#: charset.c:1891
143+#: charset.c:1829
144+#: charset.c:1893
145145 msgid "character constant too long for its type"
146146 msgstr ""
147147
148−#: charset.c:1830
148+#: charset.c:1832
149149 msgid "multi-character character constant"
150150 msgstr ""
151151
152−#: charset.c:1931
152+#: charset.c:1933
153153 msgid "empty character constant"
154154 msgstr ""
155155
156−#: charset.c:2047
156+#: charset.c:2049
157157 #, c-format
158158 msgid "failure to convert %s to %s"
159159 msgstr ""
160160
161−#: directives.c:235
162−#: directives.c:278
161+#: directives.c:229
162+#: directives.c:272
163163 #, c-format
164164 msgid "extra tokens at end of #%s directive"
165165 msgstr ""
166166
167−#: directives.c:385
167+#: directives.c:379
168168 #, c-format
169169 msgid "#%s is a GCC extension"
170170 msgstr ""
171171
172−#: directives.c:390
172+#: directives.c:384
173173 #, c-format
174174 msgid "#%s is a deprecated GCC extension"
175175 msgstr ""
176176
177−#: directives.c:403
177+#: directives.c:397
178178 msgid "suggest not using #elif in traditional C"
179179 msgstr ""
180180
181−#: directives.c:406
181+#: directives.c:400
182182 #, c-format
183183 msgid "traditional C ignores #%s with the # indented"
184184 msgstr ""
185185
186−#: directives.c:410
186+#: directives.c:404
187187 #, c-format
188188 msgid "suggest hiding #%s from traditional C with an indented #"
189189 msgstr ""
190190
191−#: directives.c:436
191+#: directives.c:430
192192 msgid "embedding a directive within macro arguments is not portable"
193193 msgstr ""
194194
195−#: directives.c:456
195+#: directives.c:450
196196 msgid "style of line directive is a GCC extension"
197197 msgstr ""
198198
199−#: directives.c:537
199+#: directives.c:531
200200 #, c-format
201201 msgid "invalid preprocessing directive #%s"
202202 msgstr ""
203203
204−#: directives.c:606
204+#: directives.c:600
205205 msgid "\"defined\" cannot be used as a macro name"
206206 msgstr ""
207207
208−#: directives.c:611
208+#: directives.c:605
209209 msgid "\"__has_include__\" cannot be used as a macro name"
210210 msgstr ""
211211
212−#: directives.c:617
212+#: directives.c:611
213213 #, c-format
214214 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
215215 msgstr ""
216216
217−#: directives.c:620
217+#: directives.c:614
218218 #, c-format
219219 msgid "no macro name given in #%s directive"
220220 msgstr ""
221221
222−#: directives.c:623
222+#: directives.c:617
223223 msgid "macro names must be identifiers"
224224 msgstr ""
225225
226−#: directives.c:672
227−#: directives.c:677
226+#: directives.c:666
227+#: directives.c:671
228228 #, c-format
229229 msgid "undefining \"%s\""
230230 msgstr ""
231231
232−#: directives.c:732
232+#: directives.c:727
233233 msgid "missing terminating > character"
234234 msgstr ""
235235
236−#: directives.c:791
236+#: directives.c:786
237237 #, c-format
238238 msgid "#%s expects \"FILENAME\" or <FILENAME>"
239239 msgstr ""
240240
241−#: directives.c:837
241+#: directives.c:828
242242 #, c-format
243243 msgid "empty filename in #%s"
244244 msgstr ""
245245
246−#: directives.c:847
246+#: directives.c:835
247247 msgid "#include nested too deeply"
248248 msgstr ""
249249
250−#: directives.c:888
250+#: directives.c:877
251251 msgid "#include_next in primary source file"
252252 msgstr ""
253253
254−#: directives.c:914
254+#: directives.c:903
255255 #, c-format
256256 msgid "invalid flag \"%s\" in line directive"
257257 msgstr ""
258258
259−#: directives.c:974
259+#: directives.c:963
260260 msgid "unexpected end of file after #line"
261261 msgstr ""
262262
263−#: directives.c:977
263+#: directives.c:966
264264 #, c-format
265265 msgid "\"%s\" after #line is not a positive integer"
266266 msgstr ""
267267
268−#: directives.c:983
269−#: directives.c:985
268+#: directives.c:972
269+#: directives.c:974
270270 msgid "line number out of range"
271271 msgstr ""
272272
273−#: directives.c:998
274−#: directives.c:1079
273+#: directives.c:987
274+#: directives.c:1068
275275 #, c-format
276276 msgid "\"%s\" is not a valid filename"
277277 msgstr ""
278278
279−#: directives.c:1039
279+#: directives.c:1028
280280 #, c-format
281281 msgid "\"%s\" after # is not a positive integer"
282282 msgstr ""
283283
284−#: directives.c:1098
284+#: directives.c:1087
285285 #, c-format
286286 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
287287 msgstr ""
288288
289−#: directives.c:1157
290−#: directives.c:1159
291−#: directives.c:1161
292−#: directives.c:1747
289+#: directives.c:1147
290+#: directives.c:1149
291+#: directives.c:1151
292+#: directives.c:1737
293293 #, c-format
294294 msgid "%s"
295295 msgstr ""
296296
297−#: directives.c:1185
297+#: directives.c:1175
298298 #, c-format
299299 msgid "invalid #%s directive"
300300 msgstr ""
301301
302−#: directives.c:1248
302+#: directives.c:1238
303303 #, c-format
304304 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
305305 msgstr ""
306306
307−#: directives.c:1257
307+#: directives.c:1247
308308 #, c-format
309309 msgid "registering pragma \"%s\" with name expansion and no namespace"
310310 msgstr ""
311311
312−#: directives.c:1275
312+#: directives.c:1265
313313 #, c-format
314314 msgid "registering \"%s\" as both a pragma and a pragma namespace"
315315 msgstr ""
316316
317−#: directives.c:1278
317+#: directives.c:1268
318318 #, c-format
319319 msgid "#pragma %s %s is already registered"
320320 msgstr ""
321321
322−#: directives.c:1281
322+#: directives.c:1271
323323 #, c-format
324324 msgid "#pragma %s is already registered"
325325 msgstr ""
326326
327−#: directives.c:1311
327+#: directives.c:1301
328328 msgid "registering pragma with NULL handler"
329329 msgstr ""
330330
331−#: directives.c:1528
331+#: directives.c:1518
332332 msgid "#pragma once in main file"
333333 msgstr ""
334334
335−#: directives.c:1551
335+#: directives.c:1541
336336 msgid "invalid #pragma push_macro directive"
337337 msgstr ""
338338
339−#: directives.c:1606
339+#: directives.c:1596
340340 msgid "invalid #pragma pop_macro directive"
341341 msgstr ""
342342
343−#: directives.c:1661
343+#: directives.c:1651
344344 msgid "invalid #pragma GCC poison directive"
345345 msgstr ""
346346
347−#: directives.c:1670
347+#: directives.c:1660
348348 #, c-format
349349 msgid "poisoning existing macro \"%s\""
350350 msgstr ""
351351
352−#: directives.c:1689
352+#: directives.c:1679
353353 msgid "#pragma system_header ignored outside include file"
354354 msgstr ""
355355
356−#: directives.c:1714
356+#: directives.c:1704
357357 #, c-format
358358 msgid "cannot find source file %s"
359359 msgstr ""
360360
361−#: directives.c:1718
361+#: directives.c:1708
362362 #, c-format
363363 msgid "current file is older than %s"
364364 msgstr ""
365365
366−#: directives.c:1742
366+#: directives.c:1732
367367 #, c-format
368368 msgid "invalid \"#pragma GCC %s\" directive"
369369 msgstr ""
370370
371−#: directives.c:1943
371+#: directives.c:1933
372372 msgid "_Pragma takes a parenthesized string literal"
373373 msgstr ""
374374
375−#: directives.c:2064
375+#: directives.c:2021
376376 msgid "#else without #if"
377377 msgstr ""
378378
379−#: directives.c:2069
379+#: directives.c:2026
380380 msgid "#else after #else"
381381 msgstr ""
382382
383−#: directives.c:2071
384−#: directives.c:2104
383+#: directives.c:2028
384+#: directives.c:2061
385385 msgid "the conditional began here"
386386 msgstr ""
387387
388−#: directives.c:2097
388+#: directives.c:2054
389389 msgid "#elif without #if"
390390 msgstr ""
391391
392−#: directives.c:2102
392+#: directives.c:2059
393393 msgid "#elif after #else"
394394 msgstr ""
395395
396−#: directives.c:2133
396+#: directives.c:2090
397397 msgid "#endif without #if"
398398 msgstr ""
399399
400−#: directives.c:2213
400+#: directives.c:2166
401401 msgid "missing '(' after predicate"
402402 msgstr ""
403403
404−#: directives.c:2228
404+#: directives.c:2184
405405 msgid "missing ')' to complete answer"
406406 msgstr ""
407407
408−#: directives.c:2248
408+#: directives.c:2196
409409 msgid "predicate's answer is empty"
410410 msgstr ""
411411
412−#: directives.c:2275
412+#: directives.c:2226
413413 msgid "assertion without predicate"
414414 msgstr ""
415415
416−#: directives.c:2278
416+#: directives.c:2229
417417 msgid "predicate must be an identifier"
418418 msgstr ""
419419
420−#: directives.c:2364
420+#: directives.c:2311
421421 #, c-format
422422 msgid "\"%s\" re-asserted"
423423 msgstr ""
424424
425−#: directives.c:2656
425+#: directives.c:2587
426426 #, c-format
427427 msgid "unterminated #%s"
428428 msgstr ""
@@ -433,12 +433,12 @@ msgstr "" · 4 unmodified lines
433433 msgid "unterminated comment"
434434 msgstr ""
435435
436−#: errors.c:284
436+#: errors.c:291
437437 #, c-format
438438 msgid "%s: %s"
439439 msgstr ""
440440
441−#: errors.c:296
441+#: errors.c:304
442442 msgid "stdout"
443443 msgstr ""
444444
@@ -533,84 +533,84 @@ msgstr "" · 88 unmodified lines
533533 msgid "this use of \"defined\" may not be portable"
534534 msgstr ""
535535
536−#: expr.c:1125
536+#: expr.c:1109
537537 msgid "user-defined literal in preprocessor expression"
538538 msgstr ""
539539
540−#: expr.c:1130
540+#: expr.c:1114
541541 msgid "floating constant in preprocessor expression"
542542 msgstr ""
543543
544−#: expr.c:1136
544+#: expr.c:1120
545545 msgid "imaginary number in preprocessor expression"
546546 msgstr ""
547547
548−#: expr.c:1189
548+#: expr.c:1173
549549 #, c-format
550550 msgid "\"%s\" is not defined, evaluates to 0"
551551 msgstr ""
552552
553−#: expr.c:1202
553+#: expr.c:1186
554554 msgid "assertions are a GCC extension"
555555 msgstr ""
556556
557−#: expr.c:1205
557+#: expr.c:1189
558558 msgid "assertions are a deprecated extension"
559559 msgstr ""
560560
561−#: expr.c:1451
561+#: expr.c:1435
562562 #, c-format
563563 msgid "unbalanced stack in %s"
564564 msgstr ""
565565
566−#: expr.c:1471
566+#: expr.c:1455
567567 #, c-format
568568 msgid "impossible operator '%u'"
569569 msgstr ""
570570
571−#: expr.c:1572
571+#: expr.c:1556
572572 msgid "missing ')' in expression"
573573 msgstr ""
574574
575−#: expr.c:1601
575+#: expr.c:1585
576576 msgid "'?' without following ':'"
577577 msgstr ""
578578
579−#: expr.c:1611
579+#: expr.c:1595
580580 msgid "integer overflow in preprocessor expression"
581581 msgstr ""
582582
583−#: expr.c:1616
583+#: expr.c:1600
584584 msgid "missing '(' in expression"
585585 msgstr ""
586586
587−#: expr.c:1648
587+#: expr.c:1632
588588 #, c-format
589589 msgid "the left operand of \"%s\" changes sign when promoted"
590590 msgstr ""
591591
592−#: expr.c:1653
592+#: expr.c:1637
593593 #, c-format
594594 msgid "the right operand of \"%s\" changes sign when promoted"
595595 msgstr ""
596596
597−#: expr.c:1912
597+#: expr.c:1896
598598 msgid "traditional C rejects the unary plus operator"
599599 msgstr ""
600600
601−#: expr.c:2010
601+#: expr.c:1994
602602 msgid "comma operator in operand of #if"
603603 msgstr ""
604604
605−#: expr.c:2146
605+#: expr.c:2130
606606 msgid "division by zero in #if"
607607 msgstr ""
608608
609−#: expr.c:2243
609+#: expr.c:2227
610610 msgid "operator \"__has_include__\" requires a header string"
611611 msgstr ""
612612
613−#: expr.c:2259
613+#: expr.c:2243
614614 msgid "missing ')' after \"__has_include__\""
615615 msgstr ""
616616
@@ -627,42 +627,42 @@ msgstr "" · 10 unmodified lines
627627 msgid "no include path in which to search for %s"
628628 msgstr ""
629629
630−#: files.c:1441
630+#: files.c:1455
631631 msgid "Multiple include guards may be useful for:\n"
632632 msgstr ""
633633
634−#: init.c:565
634+#: init.c:569
635635 msgid "cppchar_t must be an unsigned type"
636636 msgstr ""
637637
638−#: init.c:569
638+#: init.c:573
639639 #, c-format
640640 msgid ""
641641 "preprocessor arithmetic has maximum precision of %lu bits; target requires "
642642 "%lu bits"
643643 msgstr ""
644644
645−#: init.c:576
645+#: init.c:580
646646 msgid "CPP arithmetic must be at least as precise as a target int"
647647 msgstr ""
648648
649−#: init.c:579
649+#: init.c:583
650650 msgid "target char is less than 8 bits wide"
651651 msgstr ""
652652
653−#: init.c:583
653+#: init.c:587
654654 msgid "target wchar_t is narrower than target char"
655655 msgstr ""
656656
657−#: init.c:587
657+#: init.c:591
658658 msgid "target int is narrower than target char"
659659 msgstr ""
660660
661−#: init.c:592
661+#: init.c:596
662662 msgid "CPP half-integer narrower than CPP character"
663663 msgstr ""
664664
665−#: init.c:596
665+#: init.c:600
666666 #, c-format
667667 msgid ""
668668 "CPP on this host cannot handle wide character constants over %lu bits, but "
@@ -785,7 +785,7 @@ msgstr "" · 116 unmodified lines
785785
786786 #: lex.c:2878
787787 #: lex.c:2889
788−#: lex.c:2912
788+#: lex.c:2913
789789 msgid "(this will be reported only once per input file)"
790790 msgstr ""
791791
@@ -793,16 +793,16 @@ msgstr "" · 1 unmodified line
793793 msgid "C++ style comments are incompatible with C90"
794794 msgstr ""
795795
796−#: lex.c:2918
796+#: lex.c:2919
797797 msgid "multi-line comment"
798798 msgstr ""
799799
800−#: lex.c:3298
800+#: lex.c:3299
801801 #, c-format
802802 msgid "unspellable token %s"
803803 msgstr ""
804804
805−#: macro.c:93
805+#: macro.c:94
806806 msgid "'##' cannot appear at either end of __VA_OPT__"
807807 msgstr ""
808808
@@ -864,154 +864,154 @@ msgstr "" · 55 unmodified lines
864864 msgid "macro \"%s\" passed %u arguments, but takes just %u"
865865 msgstr ""
866866
867−#: macro.c:1158
867+#: macro.c:1162
868868 #: traditional.c:827
869869 #, c-format
870870 msgid "unterminated argument list invoking macro \"%s\""
871871 msgstr ""
872872
873−#: macro.c:1309
873+#: macro.c:1304
874874 #, c-format
875875 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
876876 msgstr ""
877877
878−#: macro.c:2098
878+#: macro.c:2083
879879 #, c-format
880880 msgid ""
881881 "invoking macro %s argument %d: empty macro arguments are undefined in ISO C+"
882882 "+98"
883883 msgstr ""
884884
885−#: macro.c:2106
886−#: macro.c:2115
885+#: macro.c:2091
886+#: macro.c:2100
887887 #, c-format
888888 msgid ""
889889 "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
890890 msgstr ""
891891
892−#: macro.c:3073
892+#: macro.c:3059
893893 #, c-format
894894 msgid "duplicate macro parameter \"%s\""
895895 msgstr ""
896896
897−#: macro.c:3122
897+#: macro.c:3141
898+#, c-format
899+msgid "expected parameter name, found \"%s\""
900+msgstr ""
901+
902+#: macro.c:3142
898903 #, c-format
899−msgid "\"%s\" may not appear in macro parameter list"
904+msgid "expected ',' or ')', found \"%s\""
905+msgstr ""
906+
907+#: macro.c:3143
908+msgid "expected parameter name before end of line"
900909 msgstr ""
901910
902−#: macro.c:3130
903−msgid "macro parameters must be comma-separated"
911+#: macro.c:3144
912+msgid "expected ')' before end of line"
904913 msgstr ""
905914
906−#: macro.c:3149
907−msgid "parameter name missing"
915+#: macro.c:3145
916+msgid "expected ')' after \"...\""
908917 msgstr ""
909918
910−#: macro.c:3170
919+#: macro.c:3202
911920 msgid "anonymous variadic macros were introduced in C++11"
912921 msgstr ""
913922
914−#: macro.c:3174
915−#: macro.c:3179
923+#: macro.c:3203
924+#: macro.c:3207
916925 msgid "anonymous variadic macros were introduced in C99"
917926 msgstr ""
918927
919−#: macro.c:3186
928+#: macro.c:3213
920929 msgid "ISO C++ does not permit named variadic macros"
921930 msgstr ""
922931
923−#: macro.c:3189
932+#: macro.c:3214
924933 msgid "ISO C does not permit named variadic macros"
925934 msgstr ""
926935
927−#: macro.c:3199
928−msgid "missing ')' in macro parameter list"
929−msgstr ""
930−
931−#: macro.c:3250
936+#: macro.c:3260
932937 msgid "'##' cannot appear at either end of a macro expansion"
933938 msgstr ""
934939
935−#: macro.c:3287
940+#: macro.c:3298
936941 msgid "ISO C++11 requires whitespace after the macro name"
937942 msgstr ""
938943
939−#: macro.c:3290
944+#: macro.c:3299
940945 msgid "ISO C99 requires whitespace after the macro name"
941946 msgstr ""
942947
943−#: macro.c:3315
948+#: macro.c:3323
944949 msgid "missing whitespace after the macro name"
945950 msgstr ""
946951
947−#: macro.c:3352
952+#: macro.c:3373
948953 msgid "'#' is not followed by a macro parameter"
949954 msgstr ""
950955
951−#: macro.c:3519
956+#: macro.c:3524
952957 #, c-format
953958 msgid "\"%s\" redefined"
954959 msgstr ""
955960
956−#: macro.c:3524
961+#: macro.c:3529
957962 msgid "this is the location of the previous definition"
958963 msgstr ""
959964
960−#: macro.c:3585
965+#: macro.c:3633
961966 #, c-format
962967 msgid "macro argument \"%s\" would be stringified in traditional C"
963968 msgstr ""
964969
965−#: macro.c:3621
966−#, c-format
967−msgid "invalid hash type %d in cpp_macro_definition"
968−msgstr ""
969−
970−#: pch.c:89
971−#: pch.c:347
972−#: pch.c:361
973−#: pch.c:379
974−#: pch.c:385
975−#: pch.c:394
976−#: pch.c:401
970+#: pch.c:90
971+#: pch.c:342
972+#: pch.c:356
973+#: pch.c:374
974+#: pch.c:380
975+#: pch.c:389
976+#: pch.c:396
977977 msgid "while writing precompiled header"
978978 msgstr ""
979979
980−#: pch.c:621
980+#: pch.c:616
981981 #, c-format
982982 msgid "%s: not used because `%.*s' is poisoned"
983983 msgstr ""
984984
985−#: pch.c:643
985+#: pch.c:638
986986 #, c-format
987987 msgid "%s: not used because `%.*s' not defined"
988988 msgstr ""
989989
990−#: pch.c:655
990+#: pch.c:650
991991 #, c-format
992992 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
993993 msgstr ""
994994
995−#: pch.c:696
995+#: pch.c:691
996996 #, c-format
997997 msgid "%s: not used because `%s' is defined"
998998 msgstr ""
999999
1000−#: pch.c:716
1000+#: pch.c:711
10011001 #, c-format
10021002 msgid "%s: not used because `__COUNTER__' is invalid"
10031003 msgstr ""
10041004
1005−#: pch.c:725
1006−#: pch.c:903
1005+#: pch.c:720
1006+#: pch.c:878
10071007 msgid "while reading precompiled header"
10081008 msgstr ""
10091009
1010−#: traditional.c:897
1010+#: traditional.c:896
10111011 #, c-format
10121012 msgid "detected recursion whilst expanding macro \"%s\""
10131013 msgstr ""
10141014
1015−#: traditional.c:1116
1015+#: traditional.c:1119
10161016 msgid "syntax error in macro parameter list"
10171017 msgstr ""
gcc/libcpp/po/da.gmo+0−0

Binary file not shown.

gcc/libcpp/po/da.po+184−169
@@ -1,8 +1,8 @@
11 # Danish version of cpplib.
2−# Copyright (C) 2018 Free Software Foundation, Inc.
2+# Copyright (C) 2019 Free Software Foundation, Inc.
33 # This file is distributed under the same license as the gcc package.
44 # Ole Laursen <olau@hardworking.dk>, 2001, 02, 03.
5−# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016, 2017, 2018.
5+# Joe Hansen <joedalton2@yahoo.dk>, 2015, 2016, 2017, 2018, 2019.
66 #
77 # Konventioner:
88 #
@@ -128,10 +128,10 @@ · 119 unmodified lines
128128 #
129129 msgid ""
130130 msgstr ""
131−"Project-Id-Version: cpplib 8.1-b20180128\n"
131+"Project-Id-Version: cpplib 9.1-b20190203\n"
132132 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
133−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
134−"PO-Revision-Date: 2018-03-03 18:00+0200\n"
133+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
134+"PO-Revision-Date: 2019-02-14 18:00+0200\n"
135135 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
136136 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
137137 "Language: da\n"
@@ -209,7 +209,7 @@ msgstr "universelt tegn %.*s er ikke gyldigt i et kaldenavn" · 71 unmodified lines
209209 msgid "universal character %.*s is not valid at the start of an identifier"
210210 msgstr "universelt tegn %.*s er ikke gyldigt i starten af et kaldenavn"
211211
212−#: charset.c:1181 charset.c:2000
212+#: charset.c:1181 charset.c:2002
213213 msgid "converting UCN to source character set"
214214 msgstr "konverterer UCN til et kildetegnsæt"
215215
@@ -260,294 +260,294 @@ msgstr "konverterer undvigesekvens til kørselstegnsæt" · 44 unmodified lines
260260 msgid "missing open quote"
261261 msgstr "manglende indledende citationstegn"
262262
263−#: charset.c:1827 charset.c:1891
263+#: charset.c:1829 charset.c:1893
264264 msgid "character constant too long for its type"
265265 msgstr "tegnkonstanten er for lang for dens type"
266266
267−#: charset.c:1830
267+#: charset.c:1832
268268 msgid "multi-character character constant"
269269 msgstr "flerbyte-tegnkonstant"
270270
271−#: charset.c:1931
271+#: charset.c:1933
272272 msgid "empty character constant"
273273 msgstr "tom tegnkonstant"
274274
275−#: charset.c:2047
275+#: charset.c:2049
276276 #, c-format
277277 msgid "failure to convert %s to %s"
278278 msgstr "kunne ikke konvertere %s til %s"
279279
280−#: directives.c:235 directives.c:278
280+#: directives.c:229 directives.c:272
281281 #, c-format
282282 msgid "extra tokens at end of #%s directive"
283283 msgstr "ekstra symboler i slutningen af #%s-direktiv"
284284
285−#: directives.c:385
285+#: directives.c:379
286286 #, c-format
287287 msgid "#%s is a GCC extension"
288288 msgstr "#%s er en GCC-udvidelse"
289289
290−#: directives.c:390
290+#: directives.c:384
291291 #, c-format
292292 msgid "#%s is a deprecated GCC extension"
293293 msgstr "#%s er en forældet GCC-udvidelse"
294294
295−#: directives.c:403
295+#: directives.c:397
296296 msgid "suggest not using #elif in traditional C"
297297 msgstr "foreslår undladelse af brug af #elif i traditionel C"
298298
299−#: directives.c:406
299+#: directives.c:400
300300 #, c-format
301301 msgid "traditional C ignores #%s with the # indented"
302302 msgstr "traditionel C ignorerer #%s når # er indrykket"
303303
304−#: directives.c:410
304+#: directives.c:404
305305 #, c-format
306306 msgid "suggest hiding #%s from traditional C with an indented #"
307307 msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket #"
308308
309−#: directives.c:436
309+#: directives.c:430
310310 msgid "embedding a directive within macro arguments is not portable"
311311 msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt"
312312
313−#: directives.c:456
313+#: directives.c:450
314314 msgid "style of line directive is a GCC extension"
315315 msgstr "linjestilsdirektiv er en GCC-udvidelse"
316316
317−#: directives.c:537
317+#: directives.c:531
318318 #, c-format
319319 msgid "invalid preprocessing directive #%s"
320320 msgstr "ugyldigt præprocessordirektiv #%s"
321321
322−#: directives.c:606
322+#: directives.c:600
323323 msgid "\"defined\" cannot be used as a macro name"
324324 msgstr "»defined« kan ikke bruges som makronavn"
325325
326−#: directives.c:611
326+#: directives.c:605
327327 msgid "\"__has_include__\" cannot be used as a macro name"
328328 msgstr "»__has_include__« kan ikke bruges som et makronavn"
329329
330−#: directives.c:617
330+#: directives.c:611
331331 #, c-format
332332 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
333333 msgstr "»%s« kan ikke bruges som et makronavn, da det er en operator i C++"
334334
335−#: directives.c:620
335+#: directives.c:614
336336 #, c-format
337337 msgid "no macro name given in #%s directive"
338338 msgstr "intet makronavn angivet i direktivet #%s"
339339
340−#: directives.c:623
340+#: directives.c:617
341341 msgid "macro names must be identifiers"
342342 msgstr "makronavne skal være kaldenavne"
343343
344−#: directives.c:672 directives.c:677
344+#: directives.c:666 directives.c:671
345345 #, c-format
346346 msgid "undefining \"%s\""
347347 msgstr "fjerner definitionen af »%s«"
348348
349−#: directives.c:732
349+#: directives.c:727
350350 msgid "missing terminating > character"
351351 msgstr "manglende afsluttende >-tegn"
352352
353−#: directives.c:791
353+#: directives.c:786
354354 #, c-format
355355 msgid "#%s expects \"FILENAME\" or <FILENAME>"
356356 msgstr "#%s forventer »FILNAVN« eller <FILNAVN>"
357357
358−#: directives.c:837
358+#: directives.c:828
359359 #, c-format
360360 msgid "empty filename in #%s"
361361 msgstr "tomt filnavn i #%s"
362362
363−#: directives.c:847
363+#: directives.c:835
364364 msgid "#include nested too deeply"
365365 msgstr "#include indlejret for dybt"
366366
367−#: directives.c:888
367+#: directives.c:877
368368 msgid "#include_next in primary source file"
369369 msgstr "#include_next i den primære kildekodefil"
370370
371−#: directives.c:914
371+#: directives.c:903
372372 #, c-format
373373 msgid "invalid flag \"%s\" in line directive"
374374 msgstr "ugyldigt flag »%s« i linjedirektiv"
375375
376−#: directives.c:974
376+#: directives.c:963
377377 msgid "unexpected end of file after #line"
378378 msgstr "uventet filafslutning efter #line"
379379
380−#: directives.c:977
380+#: directives.c:966
381381 #, c-format
382382 msgid "\"%s\" after #line is not a positive integer"
383383 msgstr "»%s« efter #line er ikke et positivt heltal"
384384
385−#: directives.c:983 directives.c:985
385+#: directives.c:972 directives.c:974
386386 msgid "line number out of range"
387387 msgstr "linjenummer er uden for det gyldige interval"
388388
389−#: directives.c:998 directives.c:1079
389+#: directives.c:987 directives.c:1068
390390 #, c-format
391391 msgid "\"%s\" is not a valid filename"
392392 msgstr "»%s« er ikke et gyldigt filnavn"
393393
394−#: directives.c:1039
394+#: directives.c:1028
395395 #, c-format
396396 msgid "\"%s\" after # is not a positive integer"
397397 msgstr "»%s« efter # er ikke et positivt heltal"
398398
399−#: directives.c:1098
399+#: directives.c:1087
400400 #, c-format
401401 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
402402 msgstr "filen »%s« linjemarkør ignoreret på grund af ukorrekt indlejring"
403403
404−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
404+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
405405 #, c-format
406406 msgid "%s"
407407 msgstr "%s"
408408
409−#: directives.c:1185
409+#: directives.c:1175
410410 #, c-format
411411 msgid "invalid #%s directive"
412412 msgstr "ugyldig #%s-direktiv"
413413
414−#: directives.c:1248
414+#: directives.c:1238
415415 #, c-format
416416 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
417417 msgstr "registrerer pragmaer i navnerum »%s« med fejlmatchede navneudvidelse"
418418
419−#: directives.c:1257
419+#: directives.c:1247
420420 #, c-format
421421 msgid "registering pragma \"%s\" with name expansion and no namespace"
422422 msgstr "registrerer pragma »%s« med navneudvidelse og intet navnerum"
423423
424−#: directives.c:1275
424+#: directives.c:1265
425425 #, c-format
426426 msgid "registering \"%s\" as both a pragma and a pragma namespace"
427427 msgstr "registrerer »%s« som både et pragma og et pragmanavnerum"
428428
429−#: directives.c:1278
429+#: directives.c:1268
430430 #, c-format
431431 msgid "#pragma %s %s is already registered"
432432 msgstr "#pragma %s %s er allerede registreret"
433433
434−#: directives.c:1281
434+#: directives.c:1271
435435 #, c-format
436436 msgid "#pragma %s is already registered"
437437 msgstr "#pragma %s er allerede registreret"
438438
439−#: directives.c:1311
439+#: directives.c:1301
440440 msgid "registering pragma with NULL handler"
441441 msgstr "registrerer pragma med NULL-håndtering"
442442
443−#: directives.c:1528
443+#: directives.c:1518
444444 msgid "#pragma once in main file"
445445 msgstr "#pragma once i hovedfil"
446446
447−#: directives.c:1551
447+#: directives.c:1541
448448 msgid "invalid #pragma push_macro directive"
449449 msgstr "ugyldigt #pragma push_macro-direktiv"
450450
451−#: directives.c:1606
451+#: directives.c:1596
452452 msgid "invalid #pragma pop_macro directive"
453453 msgstr "ugyldigt #pragma pop_macro-direktiv"
454454
455−#: directives.c:1661
455+#: directives.c:1651
456456 msgid "invalid #pragma GCC poison directive"
457457 msgstr "ugyldigt #pragma GCC poison-direktiv"
458458
459−#: directives.c:1670
459+#: directives.c:1660
460460 #, c-format
461461 msgid "poisoning existing macro \"%s\""
462462 msgstr "forgifter eksisterende makro »%s«"
463463
464−#: directives.c:1689
464+#: directives.c:1679
465465 msgid "#pragma system_header ignored outside include file"
466466 msgstr "#pragma system_header ignoreret uden for inkluderingsfil"
467467
468−#: directives.c:1714
468+#: directives.c:1704
469469 #, c-format
470470 msgid "cannot find source file %s"
471471 msgstr "kan ikke finde kildefilen %s"
472472
473−#: directives.c:1718
473+#: directives.c:1708
474474 #, c-format
475475 msgid "current file is older than %s"
476476 msgstr "aktuel fil er ældre end %s"
477477
478−#: directives.c:1742
478+#: directives.c:1732
479479 #, c-format
480480 msgid "invalid \"#pragma GCC %s\" directive"
481481 msgstr "ugyldigt »#pragma GCC %s«-direktiv"
482482
483−#: directives.c:1943
483+#: directives.c:1933
484484 msgid "_Pragma takes a parenthesized string literal"
485485 msgstr "_Pragma tager en strengkonstant med paranteser omkring"
486486
487−#: directives.c:2064
487+#: directives.c:2021
488488 msgid "#else without #if"
489489 msgstr "#else uden #if"
490490
491−#: directives.c:2069
491+#: directives.c:2026
492492 msgid "#else after #else"
493493 msgstr "#else efter #else"
494494
495−#: directives.c:2071 directives.c:2104
495+#: directives.c:2028 directives.c:2061
496496 msgid "the conditional began here"
497497 msgstr "betingelsen begyndte her"
498498
499−#: directives.c:2097
499+#: directives.c:2054
500500 msgid "#elif without #if"
501501 msgstr "#elif uden #if"
502502
503−#: directives.c:2102
503+#: directives.c:2059
504504 msgid "#elif after #else"
505505 msgstr "#elif efter #else"
506506
507−#: directives.c:2133
507+#: directives.c:2090
508508 msgid "#endif without #if"
509509 msgstr "#endif uden #if"
510510
511−#: directives.c:2213
511+#: directives.c:2166
512512 msgid "missing '(' after predicate"
513513 msgstr "manglende »(« efter udsagn"
514514
515−#: directives.c:2228
515+#: directives.c:2184
516516 msgid "missing ')' to complete answer"
517517 msgstr "manglende »)« til at fuldføre svar"
518518
519−#: directives.c:2248
519+#: directives.c:2196
520520 msgid "predicate's answer is empty"
521521 msgstr "udsagnets svar er tomt"
522522
523−#: directives.c:2275
523+#: directives.c:2226
524524 msgid "assertion without predicate"
525525 msgstr "postulat uden udsagn"
526526
527−#: directives.c:2278
527+#: directives.c:2229
528528 msgid "predicate must be an identifier"
529529 msgstr "udsagn skal være et kaldenavn"
530530
531−#: directives.c:2364
531+#: directives.c:2311
532532 #, c-format
533533 msgid "\"%s\" re-asserted"
534534 msgstr "»%s« genpostuleret"
535535
536−#: directives.c:2656
536+#: directives.c:2587
537537 #, c-format
538538 msgid "unterminated #%s"
539539 msgstr "uafsluttet #%s"
540540
541−#: directives-only.c:221 lex.c:2851 traditional.c:167
541+#: directives-only.c:221 lex.c:2862 traditional.c:175
542542 msgid "unterminated comment"
543543 msgstr "uafsluttet kommentar"
544544
545−#: errors.c:284
545+#: errors.c:291
546546 #, c-format
547547 msgid "%s: %s"
548548 msgstr "%s: %s"
549549
550−#: errors.c:296
550+#: errors.c:304
551551 msgid "stdout"
552552 msgstr "standardud"
553553
@@ -640,84 +640,84 @@ msgstr "(»%s« er et alternativt symbol for »%s« i C++)" · 86 unmodified lines
640640 msgid "this use of \"defined\" may not be portable"
641641 msgstr "denne brug af »defined« er muligvis ikke portabel"
642642
643−#: expr.c:1125
643+#: expr.c:1109
644644 msgid "user-defined literal in preprocessor expression"
645645 msgstr "brugerdefineret ordret i præprocessorudtrykket"
646646
647−#: expr.c:1130
647+#: expr.c:1114
648648 msgid "floating constant in preprocessor expression"
649649 msgstr "kommatalskonstant i præprocessorudtryk"
650650
651−#: expr.c:1136
651+#: expr.c:1120
652652 msgid "imaginary number in preprocessor expression"
653653 msgstr "imaginært tal i præprocessorudtryk"
654654
655−#: expr.c:1189
655+#: expr.c:1173
656656 #, c-format
657657 msgid "\"%s\" is not defined, evaluates to 0"
658658 msgstr "»%s« er ikke defineret, evaluerer til 0"
659659
660−#: expr.c:1202
660+#: expr.c:1186
661661 msgid "assertions are a GCC extension"
662662 msgstr "påstande er en GCC-udvidelse"
663663
664−#: expr.c:1205
664+#: expr.c:1189
665665 msgid "assertions are a deprecated extension"
666666 msgstr "påstande er en forældet udvidelse"
667667
668−#: expr.c:1451
668+#: expr.c:1435
669669 #, c-format
670670 msgid "unbalanced stack in %s"
671671 msgstr "ubalanceret stak i %s"
672672
673−#: expr.c:1471
673+#: expr.c:1455
674674 #, c-format
675675 msgid "impossible operator '%u'"
676676 msgstr "umulig operator »%u«"
677677
678−#: expr.c:1572
678+#: expr.c:1556
679679 msgid "missing ')' in expression"
680680 msgstr "manglende »)« i udtryk"
681681
682−#: expr.c:1601
682+#: expr.c:1585
683683 msgid "'?' without following ':'"
684684 msgstr "»?« uden efterfølgende »:«"
685685
686−#: expr.c:1611
686+#: expr.c:1595
687687 msgid "integer overflow in preprocessor expression"
688688 msgstr "heltallet løber over i præprocessorudtrykket"
689689
690−#: expr.c:1616
690+#: expr.c:1600
691691 msgid "missing '(' in expression"
692692 msgstr "manglende »(« i udtryk"
693693
694−#: expr.c:1648
694+#: expr.c:1632
695695 #, c-format
696696 msgid "the left operand of \"%s\" changes sign when promoted"
697697 msgstr "den venstre operand til »%s« ændrer fortegn ved forfremmelse"
698698
699−#: expr.c:1653
699+#: expr.c:1637
700700 #, c-format
701701 msgid "the right operand of \"%s\" changes sign when promoted"
702702 msgstr "den højre operand til »%s« ændrer fortegn ved forfremmelse"
703703
704−#: expr.c:1912
704+#: expr.c:1896
705705 msgid "traditional C rejects the unary plus operator"
706706 msgstr "traditionel C tillader ikke operatoren unær plus"
707707
708−#: expr.c:2010
708+#: expr.c:1994
709709 msgid "comma operator in operand of #if"
710710 msgstr "kommaoperator i en operand til #if"
711711
712−#: expr.c:2146
712+#: expr.c:2130
713713 msgid "division by zero in #if"
714714 msgstr "division med nul i #if"
715715
716−#: expr.c:2243
716+#: expr.c:2227
717717 msgid "operator \"__has_include__\" requires a header string"
718718 msgstr "operatoren »__has_include__« kræver en teksthovedstreng"
719719
720−#: expr.c:2259
720+#: expr.c:2243
721721 msgid "missing ')' after \"__has_include__\""
722722 msgstr "manglende »)« efter »__has_include__«"
723723
@@ -734,40 +734,40 @@ msgstr "brug -Winvalid-pch for yderligere information" · 10 unmodified lines
734734 msgid "no include path in which to search for %s"
735735 msgstr "der er ingen inkluderingssti at søge efter %s i"
736736
737−#: files.c:1441
737+#: files.c:1455
738738 msgid "Multiple include guards may be useful for:\n"
739739 msgstr "Flere inkluderingsvagter kan være nyttige til:\n"
740740
741−#: init.c:565
741+#: init.c:569
742742 msgid "cppchar_t must be an unsigned type"
743743 msgstr "cppchar_t skal være en usigneret type"
744744
745−#: init.c:569
745+#: init.c:573
746746 #, c-format
747747 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
748748 msgstr "præprocessorberegning har en maksimal præcision på %lu bit; målarkitektur kræver %lu bit"
749749
750−#: init.c:576
750+#: init.c:580
751751 msgid "CPP arithmetic must be at least as precise as a target int"
752752 msgstr "CPP-beregning skal være mindst lige så præcis som en målarkitekturs int"
753753
754−#: init.c:579
754+#: init.c:583
755755 msgid "target char is less than 8 bits wide"
756756 msgstr "målarkitekturs char er mindre end 8 bit bred"
757757
758−#: init.c:583
758+#: init.c:587
759759 msgid "target wchar_t is narrower than target char"
760760 msgstr "målarkitekturs wchar_t er mindre end målarkitekturs char"
761761
762−#: init.c:587
762+#: init.c:591
763763 msgid "target int is narrower than target char"
764764 msgstr "målarkitekturs int er mindre end målarkitekturs char"
765765
766−#: init.c:592
766+#: init.c:596
767767 msgid "CPP half-integer narrower than CPP character"
768768 msgstr "CPP-halvheltal er mindre end CPP-tegn"
769769
770−#: init.c:596
770+#: init.c:600
771771 #, c-format
772772 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
773773 msgstr "CPP på denne vært kan ikke håndtere bredtegnkonstanter over %lu bit, men målarkitekturen kræver %lu bit"
@@ -839,258 +839,273 @@ msgstr "__VA_ARGS__ kan kun optræde i udfoldelsen af en C99-makro med vilkårli · 65 unmodified lines
839839 msgid "identifier \"%s\" is a special operator name in C++"
840840 msgstr "kaldenavn »%s« er et specielt operatornavn i C++"
841841
842−#: lex.c:1811
842+#: lex.c:1826
843843 msgid "raw string delimiter longer than 16 characters"
844844 msgstr "rå strengafgrænser længere end 16 tegn"
845845
846−#: lex.c:1815
846+#: lex.c:1830
847847 msgid "invalid new-line in raw string delimiter"
848848 msgstr "ugyldig nylinje i rå strengafgrænser"
849849
850−#: lex.c:1819
850+#: lex.c:1834
851851 #, c-format
852852 msgid "invalid character '%c' in raw string delimiter"
853853 msgstr "ugyldigt tegn »%c« i rå strengafgrænser"
854854
855−#: lex.c:1868 lex.c:1890
855+#: lex.c:1883 lex.c:1905
856856 msgid "unterminated raw string"
857857 msgstr "uafsluttet rå streng"
858858
859−#: lex.c:1912 lex.c:2043
859+#: lex.c:1925 lex.c:2054
860860 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
861861 msgstr "ugyldig suffiks på ordret; C++11 kræver et mellemrum mellem ordret og strengmakro"
862862
863−#: lex.c:2024
863+#: lex.c:2037
864864 msgid "null character(s) preserved in literal"
865865 msgstr "nultegn bevaret i strengkonstant"
866866
867−#: lex.c:2027
867+#: lex.c:2040
868868 #, c-format
869869 msgid "missing terminating %c character"
870870 msgstr "manglende afsluttende %c-tegn"
871871
872−#: lex.c:2061
872+#: lex.c:2072
873873 msgid "C++11 requires a space between string literal and macro"
874874 msgstr "C++11 kræver et mellemrum mellem ordret og strengmakro"
875875
876−#: lex.c:2865 lex.c:2899
876+#: lex.c:2876 lex.c:2910
877877 msgid "C++ style comments are not allowed in ISO C90"
878878 msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90"
879879
880−#: lex.c:2867 lex.c:2878 lex.c:2901
880+#: lex.c:2878 lex.c:2889 lex.c:2913
881881 msgid "(this will be reported only once per input file)"
882882 msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
883883
884−#: lex.c:2876
884+#: lex.c:2887
885885 msgid "C++ style comments are incompatible with C90"
886886 msgstr "kommentarer i C++-stil er ikke kompatible med C90"
887887
888−#: lex.c:2907
888+#: lex.c:2919
889889 msgid "multi-line comment"
890890 msgstr "flerlinjekommentar"
891891
892−#: lex.c:3287
892+#: lex.c:3299
893893 #, c-format
894894 msgid "unspellable token %s"
895895 msgstr "symbol %s kan ikke staves"
896896
897−#: macro.c:93
897+#: macro.c:94
898898 msgid "'##' cannot appear at either end of __VA_OPT__"
899899 msgstr "»##« må ikke optræde ved nogen af enderne i __VA_OPT__"
900900
901−#: macro.c:352
901+#: macro.c:354
902902 #, c-format
903903 msgid "macro \"%s\" is not used"
904904 msgstr "makroen »%s« bliver ikke brugt"
905905
906−#: macro.c:391 macro.c:639
906+#: macro.c:393 macro.c:641
907907 #, c-format
908908 msgid "invalid built-in macro \"%s\""
909909 msgstr "ugyldig indbygget makro »%s«"
910910
911−#: macro.c:398 macro.c:500
911+#: macro.c:400 macro.c:502
912912 #, c-format
913913 msgid "macro \"%s\" might prevent reproducible builds"
914914 msgstr "makroen »%s« kan forhindre reproducerbare bygninger"
915915
916−#: macro.c:429
916+#: macro.c:431
917917 msgid "could not determine file timestamp"
918918 msgstr "kunne ikke bestemme filtidsstempel"
919919
920−#: macro.c:546
920+#: macro.c:548
921921 msgid "could not determine date and time"
922922 msgstr "kunne ikke bestemme dato og tid"
923923
924−#: macro.c:562
924+#: macro.c:564
925925 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
926926 msgstr "__COUNTER__ udvidet inden i direktiv med -fdirectives-only"
927927
928−#: macro.c:758
928+#: macro.c:760
929929 msgid "invalid string literal, ignoring final '\\'"
930930 msgstr "ugyldig strengkonstant, ignorerer afsluttende »\\«"
931931
932−#: macro.c:820
932+#: macro.c:822
933933 #, c-format
934934 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
935935 msgstr "indsættelse af »%s« og »%s« giver ikke et gyldigt præprocessorsymbol"
936936
937−#: macro.c:946
937+#: macro.c:948
938938 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
939939 msgstr "ISO C++11 kræver mindst en parameter for »...« i en makro med vilkårligt antal parametre"
940940
941−#: macro.c:950
941+#: macro.c:952
942942 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
943943 msgstr "ISO C99 kræver mindst en parameter for »...« i en makro med vilkårligt antal parametre"
944944
945−#: macro.c:957
945+#: macro.c:959
946946 #, c-format
947947 msgid "macro \"%s\" requires %u arguments, but only %u given"
948948 msgstr "makroen »%s« kræver %u parametre, men modtager kun %u"
949949
950−#: macro.c:962
950+#: macro.c:964
951951 #, c-format
952952 msgid "macro \"%s\" passed %u arguments, but takes just %u"
953953 msgstr "makroen »%s« viderebragte %u parametre, men tager kun mod %u"
954954
955−#: macro.c:1156 traditional.c:819
955+#: macro.c:1162 traditional.c:827
956956 #, c-format
957957 msgid "unterminated argument list invoking macro \"%s\""
958958 msgstr "uafsluttet parameterliste ved kald af makroen »%s«"
959959
960−#: macro.c:1307
960+#: macro.c:1304
961961 #, c-format
962962 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
963963 msgstr "funktionsagtig makro »%s« skal bruges med parametre i traditionel C"
964964
965−#: macro.c:2003
965+#: macro.c:2083
966966 #, c-format
967967 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
968968 msgstr "starter makroen %s parameter %d: tomme makroparametre er ikke defineret i ISO C+98"
969969
970−#: macro.c:2011 macro.c:2020
970+#: macro.c:2091 macro.c:2100
971971 #, c-format
972972 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
973973 msgstr "starter makroen %s parameter %d: tomme makroparametre er ikke defineret i ISO C90"
974974
975−#: macro.c:2984
975+#: macro.c:3059
976976 #, c-format
977977 msgid "duplicate macro parameter \"%s\""
978978 msgstr "makroparameternavnet »%s« optræder mere end en gang"
979979
980−#: macro.c:3033
980+#: macro.c:3141
981+#, c-format
982+msgid "expected parameter name, found \"%s\""
983+msgstr "forventede parameternavn, fandt »%s«"
984+
985+#: macro.c:3142
981986 #, c-format
982−msgid "\"%s\" may not appear in macro parameter list"
983−msgstr "»%s« må ikke optræde i makroparameterliste"
987+msgid "expected ',' or ')', found \"%s\""
988+msgstr "forventede »,« eller »)«, fandt »%s«"
984989
985−#: macro.c:3041
986−msgid "macro parameters must be comma-separated"
987−msgstr "makroparametre skal være kommaadskilte"
990+#: macro.c:3143
991+msgid "expected parameter name before end of line"
992+msgstr "forventede parameternavn før linjeafslutning"
988993
989−#: macro.c:3060
990−msgid "parameter name missing"
991−msgstr "parameternavn mangler"
994+#: macro.c:3144
995+msgid "expected ')' before end of line"
996+msgstr "forventede »)« før linjeafslutning"
992997
993−#: macro.c:3081
998+#: macro.c:3145
999+msgid "expected ')' after \"...\""
1000+msgstr "forventede »)« efter »...«"
1001+
1002+#: macro.c:3202
9941003 msgid "anonymous variadic macros were introduced in C++11"
9951004 msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C++11"
9961005
997−#: macro.c:3085 macro.c:3090
1006+#: macro.c:3203 macro.c:3207
9981007 msgid "anonymous variadic macros were introduced in C99"
9991008 msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99"
10001009
1001−#: macro.c:3097
1010+#: macro.c:3213
10021011 msgid "ISO C++ does not permit named variadic macros"
10031012 msgstr "ISO C++ tillader ikke navngivne makroer med vilkårligt antal parametre"
10041013
1005−#: macro.c:3100
1014+#: macro.c:3214
10061015 msgid "ISO C does not permit named variadic macros"
10071016 msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre"
10081017
1009−#: macro.c:3110
1010−msgid "missing ')' in macro parameter list"
1011−msgstr "manglende »)« i makroparameterliste"
1012−
1013−#: macro.c:3161
1018+#: macro.c:3260
10141019 msgid "'##' cannot appear at either end of a macro expansion"
10151020 msgstr "»##« må ikke optræde ved nogen af enderne i en makrokrop"
10161021
1017−#: macro.c:3198
1022+#: macro.c:3298
10181023 msgid "ISO C++11 requires whitespace after the macro name"
10191024 msgstr "ISO C++11 kræver mellemrum efter makronavnet"
10201025
1021−#: macro.c:3201
1026+#: macro.c:3299
10221027 msgid "ISO C99 requires whitespace after the macro name"
10231028 msgstr "ISO C99 kræver mellemrum efter makronavnet"
10241029
1025−#: macro.c:3226
1030+#: macro.c:3323
10261031 msgid "missing whitespace after the macro name"
10271032 msgstr "manglende mellemrum efter makronavnet"
10281033
1029−#: macro.c:3263
1034+#: macro.c:3373
10301035 msgid "'#' is not followed by a macro parameter"
10311036 msgstr "»#« efterfølges ikke af en makroparameter"
10321037
1033−#: macro.c:3430
1038+#: macro.c:3524
10341039 #, c-format
10351040 msgid "\"%s\" redefined"
10361041 msgstr "»%s« omdefineret"
10371042
1038−#: macro.c:3435
1043+#: macro.c:3529
10391044 msgid "this is the location of the previous definition"
10401045 msgstr "den foregående definition er her"
10411046
1042−#: macro.c:3496
1047+#: macro.c:3633
10431048 #, c-format
10441049 msgid "macro argument \"%s\" would be stringified in traditional C"
10451050 msgstr "makroparameteren »%s« ville blive gjort til en streng i traditionel C"
10461051
1047−#: macro.c:3532
1048−#, c-format
1049−msgid "invalid hash type %d in cpp_macro_definition"
1050−msgstr "ugyldig hashtype %d i cpp_macro_definition"
1051−
1052−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
1052+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
10531053 msgid "while writing precompiled header"
10541054 msgstr "under skrivning af prækompileret teksthoved"
10551055
1056−#: pch.c:621
1056+#: pch.c:616
10571057 #, c-format
10581058 msgid "%s: not used because `%.*s' is poisoned"
10591059 msgstr "%s: ikke brugt da »%.*s« er forgiftet"
10601060
1061−#: pch.c:643
1061+#: pch.c:638
10621062 #, c-format
10631063 msgid "%s: not used because `%.*s' not defined"
10641064 msgstr "%s: ikke brugt da »%.*s« ikke er defineret"
10651065
1066−#: pch.c:655
1066+#: pch.c:650
10671067 #, c-format
10681068 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
10691069 msgstr "%s: ikke brugt da »%.*s« er defineret som »%s« ikke »%.*s«"
10701070
1071−#: pch.c:696
1071+#: pch.c:691
10721072 #, c-format
10731073 msgid "%s: not used because `%s' is defined"
10741074 msgstr "%s ikke brugt da »%s« er defineret"
10751075
1076−#: pch.c:716
1076+#: pch.c:711
10771077 #, c-format
10781078 msgid "%s: not used because `__COUNTER__' is invalid"
10791079 msgstr "%s: ikke brugt da »__COUNTER__« er ugyldig"
10801080
1081−#: pch.c:725 pch.c:903
1081+#: pch.c:720 pch.c:878
10821082 msgid "while reading precompiled header"
10831083 msgstr "under læsning af prækompileret teksthoved"
10841084
1085−#: traditional.c:889
1085+#: traditional.c:896
10861086 #, c-format
10871087 msgid "detected recursion whilst expanding macro \"%s\""
10881088 msgstr "opdagede rekursion ved udfoldelse af makroen »%s«"
10891089
1090−#: traditional.c:1108
1090+#: traditional.c:1119
10911091 msgid "syntax error in macro parameter list"
10921092 msgstr "syntaksfejl i makroparameterliste"
10931093
1094+#~ msgid "\"%s\" may not appear in macro parameter list"
1095+#~ msgstr "»%s« må ikke optræde i makroparameterliste"
1096+
1097+#~ msgid "macro parameters must be comma-separated"
1098+#~ msgstr "makroparametre skal være kommaadskilte"
1099+
1100+#~ msgid "parameter name missing"
1101+#~ msgstr "parameternavn mangler"
1102+
1103+#~ msgid "missing ')' in macro parameter list"
1104+#~ msgstr "manglende »)« i makroparameterliste"
1105+
1106+#~ msgid "invalid hash type %d in cpp_macro_definition"
1107+#~ msgstr "ugyldig hashtype %d i cpp_macro_definition"
1108+
10941109 #~ msgid "NULL directory in find_file"
10951110 #~ msgstr "NULL-mappe i find_file"
10961111
gcc/libcpp/po/de.gmo+0−0

Binary file not shown.

gcc/libcpp/po/de.po+183−168
@@ -9,10 +9,10 @@ · 8 unmodified lines
99 #
1010 msgid ""
1111 msgstr ""
12−"Project-Id-Version: cpplib 8.1-b20180128\n"
12+"Project-Id-Version: cpplib 9.1-b20190203\n"
1313 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
14−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
15−"PO-Revision-Date: 2018-01-30 01:58+0100\n"
14+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
15+"PO-Revision-Date: 2019-02-05 19:15+0100\n"
1616 "Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
1717 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
1818 "Language: de\n"
@@ -20,7 +20,7 @@ msgstr "" · 1 unmodified line
2020 "Content-Type: text/plain; charset=UTF-8\n"
2121 "Content-Transfer-Encoding: 8bit\n"
2222 "X-Bugs: Report translation errors to the Language-Team address.\n"
23−"X-Generator: Poedit 2.0.6\n"
23+"X-Generator: Poedit 2.2.1\n"
2424
2525 #: charset.c:674
2626 #, c-format
@@ -91,7 +91,7 @@ msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner" · 64 unmodified lines
9191 msgid "universal character %.*s is not valid at the start of an identifier"
9292 msgstr "universelles Zeichen %.*s ist nicht gültig am Anfang eines Bezeichners"
9393
94−#: charset.c:1181 charset.c:2000
94+#: charset.c:1181 charset.c:2002
9595 msgid "converting UCN to source character set"
9696 msgstr "UCN wird in Quellzeichensatz konvertiert"
9797
@@ -144,294 +144,294 @@ msgstr "Escape-Sequenz wird in Zeichensatz der Ausführung konvertiert" · 46 unmodified lines
144144 msgid "missing open quote"
145145 msgstr "Fehlendes öffnendes Anführungszeichen"
146146
147−#: charset.c:1827 charset.c:1891
147+#: charset.c:1829 charset.c:1893
148148 msgid "character constant too long for its type"
149149 msgstr "Zeichenkonstante zu lang für ihren Typ"
150150
151−#: charset.c:1830
151+#: charset.c:1832
152152 msgid "multi-character character constant"
153153 msgstr "Zeichenkonstante mit mehreren Zeichen"
154154
155−#: charset.c:1931
155+#: charset.c:1933
156156 msgid "empty character constant"
157157 msgstr "Leere Zeichenkonstante"
158158
159−#: charset.c:2047
159+#: charset.c:2049
160160 #, c-format
161161 msgid "failure to convert %s to %s"
162162 msgstr "Fehler beim Konvertieren von %s nach %s"
163163
164−#: directives.c:235 directives.c:278
164+#: directives.c:229 directives.c:272
165165 #, c-format
166166 msgid "extra tokens at end of #%s directive"
167167 msgstr "mehrere Token am Ende der Direktive #%s"
168168
169−#: directives.c:385
169+#: directives.c:379
170170 #, c-format
171171 msgid "#%s is a GCC extension"
172172 msgstr "#%s ist eine GCC-Erweiterung"
173173
174−#: directives.c:390
174+#: directives.c:384
175175 #, c-format
176176 msgid "#%s is a deprecated GCC extension"
177177 msgstr "#%s ist eine veraltete GCC-Erweiterung"
178178
179−#: directives.c:403
179+#: directives.c:397
180180 msgid "suggest not using #elif in traditional C"
181181 msgstr "es wird empfohlen, in traditionellem C nicht #elif zu verwenden"
182182
183−#: directives.c:406
183+#: directives.c:400
184184 #, c-format
185185 msgid "traditional C ignores #%s with the # indented"
186186 msgstr "traditionelles C ignoriert #%s mit eingerücktem #"
187187
188−#: directives.c:410
188+#: directives.c:404
189189 #, c-format
190190 msgid "suggest hiding #%s from traditional C with an indented #"
191191 msgstr "es wird empfohlen, #%s vor traditionellem C mit # zu verbergen"
192192
193−#: directives.c:436
193+#: directives.c:430
194194 msgid "embedding a directive within macro arguments is not portable"
195195 msgstr "das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht portierbar"
196196
197−#: directives.c:456
197+#: directives.c:450
198198 msgid "style of line directive is a GCC extension"
199199 msgstr "der Stil der line-Direktive ist eine GCC-Erweiterung"
200200
201−#: directives.c:537
201+#: directives.c:531
202202 #, c-format
203203 msgid "invalid preprocessing directive #%s"
204204 msgstr "ungültige Präprozessordirektive #%s"
205205
206−#: directives.c:606
206+#: directives.c:600
207207 msgid "\"defined\" cannot be used as a macro name"
208208 msgstr "»defined« kann nicht als Makroname verwendet werden"
209209
210−#: directives.c:611
210+#: directives.c:605
211211 msgid "\"__has_include__\" cannot be used as a macro name"
212212 msgstr "»__has_include__« kann nicht als Makroname verwendet werden"
213213
214−#: directives.c:617
214+#: directives.c:611
215215 #, c-format
216216 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
217217 msgstr "»%s« kann nicht als Makroname verwendet werden, da es ein Operator in C++ ist"
218218
219−#: directives.c:620
219+#: directives.c:614
220220 #, c-format
221221 msgid "no macro name given in #%s directive"
222222 msgstr "kein Makroname in Direktive #%s angegeben"
223223
224−#: directives.c:623
224+#: directives.c:617
225225 msgid "macro names must be identifiers"
226226 msgstr "Makronamen müssen Bezeichner sein"
227227
228−#: directives.c:672 directives.c:677
228+#: directives.c:666 directives.c:671
229229 #, c-format
230230 msgid "undefining \"%s\""
231231 msgstr "»%s« wird un-definiert"
232232
233−#: directives.c:732
233+#: directives.c:727
234234 msgid "missing terminating > character"
235235 msgstr "fehlendes abschließendes »>«-Zeichen"
236236
237−#: directives.c:791
237+#: directives.c:786
238238 #, c-format
239239 msgid "#%s expects \"FILENAME\" or <FILENAME>"
240240 msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
241241
242−#: directives.c:837
242+#: directives.c:828
243243 #, c-format
244244 msgid "empty filename in #%s"
245245 msgstr "leerer Dateiname in #%s"
246246
247−#: directives.c:847
247+#: directives.c:835
248248 msgid "#include nested too deeply"
249249 msgstr "#include ist zu tief geschachtelt"
250250
251−#: directives.c:888
251+#: directives.c:877
252252 msgid "#include_next in primary source file"
253253 msgstr "#include_next in erster Quelldatei"
254254
255−#: directives.c:914
255+#: directives.c:903
256256 #, c-format
257257 msgid "invalid flag \"%s\" in line directive"
258258 msgstr "ungültiges Kennzeichen »%s« in line-Direktive"
259259
260−#: directives.c:974
260+#: directives.c:963
261261 msgid "unexpected end of file after #line"
262262 msgstr "unerwartetes Dateiende nach #line"
263263
264−#: directives.c:977
264+#: directives.c:966
265265 #, c-format
266266 msgid "\"%s\" after #line is not a positive integer"
267267 msgstr "»%s« hinter #line ist keine positive Ganzzahl"
268268
269−#: directives.c:983 directives.c:985
269+#: directives.c:972 directives.c:974
270270 msgid "line number out of range"
271271 msgstr "Zeilennummer ist außerhalb des Wertebereiches"
272272
273−#: directives.c:998 directives.c:1079
273+#: directives.c:987 directives.c:1068
274274 #, c-format
275275 msgid "\"%s\" is not a valid filename"
276276 msgstr "»%s« ist kein gültiger Dateiname"
277277
278−#: directives.c:1039
278+#: directives.c:1028
279279 #, c-format
280280 msgid "\"%s\" after # is not a positive integer"
281281 msgstr "»%s« hinter # ist keine positive Ganzzahl"
282282
283−#: directives.c:1098
283+#: directives.c:1087
284284 #, c-format
285285 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
286286 msgstr "der Zeilenmarker in der Datei »%s« wird aufgrung falscher Schachtelung ignoriert"
287287
288−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
288+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
289289 #, c-format
290290 msgid "%s"
291291 msgstr "%s"
292292
293−#: directives.c:1185
293+#: directives.c:1175
294294 #, c-format
295295 msgid "invalid #%s directive"
296296 msgstr "ungültige #%s-Direktive"
297297
298−#: directives.c:1248
298+#: directives.c:1238
299299 #, c-format
300300 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
301301 msgstr "Pragmas im Namensraum »%s« werden ohne passende Namensauflösung registriert"
302302
303−#: directives.c:1257
303+#: directives.c:1247
304304 #, c-format
305305 msgid "registering pragma \"%s\" with name expansion and no namespace"
306306 msgstr "Pragma »%s« wird mit Namensauflösung und ohne Namensraum registriert"
307307
308−#: directives.c:1275
308+#: directives.c:1265
309309 #, c-format
310310 msgid "registering \"%s\" as both a pragma and a pragma namespace"
311311 msgstr "»%s« wird sowohl als Pragma als auch als Pragma-Namensraum registriert"
312312
313−#: directives.c:1278
313+#: directives.c:1268
314314 #, c-format
315315 msgid "#pragma %s %s is already registered"
316316 msgstr "#pragma %s %s ist bereits registriert"
317317
318−#: directives.c:1281
318+#: directives.c:1271
319319 #, c-format
320320 msgid "#pragma %s is already registered"
321321 msgstr "#pragma %s ist bereits registriert"
322322
323−#: directives.c:1311
323+#: directives.c:1301
324324 msgid "registering pragma with NULL handler"
325325 msgstr "Pragma mit NULL-Handler wird registriert"
326326
327−#: directives.c:1528
327+#: directives.c:1518
328328 msgid "#pragma once in main file"
329329 msgstr "#pragma once in Hauptdatei"
330330
331−#: directives.c:1551
331+#: directives.c:1541
332332 msgid "invalid #pragma push_macro directive"
333333 msgstr "ungültige #pragma push_macro Direktive"
334334
335−#: directives.c:1606
335+#: directives.c:1596
336336 msgid "invalid #pragma pop_macro directive"
337337 msgstr "ungültige #pragma pop_macro Direktive"
338338
339−#: directives.c:1661
339+#: directives.c:1651
340340 msgid "invalid #pragma GCC poison directive"
341341 msgstr "ungültige #pragma GCC Poison Direktive"
342342
343−#: directives.c:1670
343+#: directives.c:1660
344344 #, c-format
345345 msgid "poisoning existing macro \"%s\""
346346 msgstr "schlechtes existierendes Makro »%s«"
347347
348−#: directives.c:1689
348+#: directives.c:1679
349349 msgid "#pragma system_header ignored outside include file"
350350 msgstr "#pragma system_header außerhalb include-Datei ignoriert"
351351
352−#: directives.c:1714
352+#: directives.c:1704
353353 #, c-format
354354 msgid "cannot find source file %s"
355355 msgstr "Quelldatei %s kann nicht gefunden werden"
356356
357−#: directives.c:1718
357+#: directives.c:1708
358358 #, c-format
359359 msgid "current file is older than %s"
360360 msgstr "aktuelle Datei ist älter als %s"
361361
362−#: directives.c:1742
362+#: directives.c:1732
363363 #, c-format
364364 msgid "invalid \"#pragma GCC %s\" directive"
365365 msgstr "ungültige »#pragma GCC %s« Direktive"
366366
367−#: directives.c:1943
367+#: directives.c:1933
368368 msgid "_Pragma takes a parenthesized string literal"
369369 msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
370370
371−#: directives.c:2064
371+#: directives.c:2021
372372 msgid "#else without #if"
373373 msgstr "#else ohne #if"
374374
375−#: directives.c:2069
375+#: directives.c:2026
376376 msgid "#else after #else"
377377 msgstr "#else hinter #else"
378378
379−#: directives.c:2071 directives.c:2104
379+#: directives.c:2028 directives.c:2061
380380 msgid "the conditional began here"
381381 msgstr "die Bedingung begann hier"
382382
383−#: directives.c:2097
383+#: directives.c:2054
384384 msgid "#elif without #if"
385385 msgstr "#elif ohne #if"
386386
387−#: directives.c:2102
387+#: directives.c:2059
388388 msgid "#elif after #else"
389389 msgstr "#elif hinter #else"
390390
391−#: directives.c:2133
391+#: directives.c:2090
392392 msgid "#endif without #if"
393393 msgstr "#endif ohne #if"
394394
395−#: directives.c:2213
395+#: directives.c:2166
396396 msgid "missing '(' after predicate"
397397 msgstr "fehlende »(« hinter Prädikat"
398398
399−#: directives.c:2228
399+#: directives.c:2184
400400 msgid "missing ')' to complete answer"
401401 msgstr "fehlende »)«, um Antwort abzuschließen"
402402
403−#: directives.c:2248
403+#: directives.c:2196
404404 msgid "predicate's answer is empty"
405405 msgstr "Prädikatantwort ist leer"
406406
407−#: directives.c:2275
407+#: directives.c:2226
408408 msgid "assertion without predicate"
409409 msgstr "Behauptung ohne Prädikat"
410410
411−#: directives.c:2278
411+#: directives.c:2229
412412 msgid "predicate must be an identifier"
413413 msgstr "Prädikat muss ein Bezeichner sein"
414414
415−#: directives.c:2364
415+#: directives.c:2311
416416 #, c-format
417417 msgid "\"%s\" re-asserted"
418418 msgstr "»%s« wieder behauptet"
419419
420−#: directives.c:2656
420+#: directives.c:2587
421421 #, c-format
422422 msgid "unterminated #%s"
423423 msgstr "unbeendetes #%s"
424424
425−#: directives-only.c:221 lex.c:2851 traditional.c:167
425+#: directives-only.c:221 lex.c:2862 traditional.c:175
426426 msgid "unterminated comment"
427427 msgstr "nicht beendeter Kommentar"
428428
429−#: errors.c:284
429+#: errors.c:291
430430 #, c-format
431431 msgid "%s: %s"
432432 msgstr "%s: %s"
433433
434−#: errors.c:296
434+#: errors.c:304
435435 msgid "stdout"
436436 msgstr "Standardausgabe"
437437
@@ -524,84 +524,84 @@ msgstr "(»%s« ist ein alternatives Token for »%s« in C++)" · 86 unmodified lines
524524 msgid "this use of \"defined\" may not be portable"
525525 msgstr "diese Verwendung von »defined« könnte nicht portierbar sein"
526526
527−#: expr.c:1125
527+#: expr.c:1109
528528 msgid "user-defined literal in preprocessor expression"
529529 msgstr "benutzerdefiniertes Symbol in Präprozessorausdruck"
530530
531−#: expr.c:1130
531+#: expr.c:1114
532532 msgid "floating constant in preprocessor expression"
533533 msgstr "Gleitkommakonstante in Präprozessorausdruck"
534534
535−#: expr.c:1136
535+#: expr.c:1120
536536 msgid "imaginary number in preprocessor expression"
537537 msgstr "imaginäre Zahl in Präprozessorausdruck"
538538
539−#: expr.c:1189
539+#: expr.c:1173
540540 #, c-format
541541 msgid "\"%s\" is not defined, evaluates to 0"
542542 msgstr "»%s« ist nicht definiert, wird zu 0 ausgewertet"
543543
544−#: expr.c:1202
544+#: expr.c:1186
545545 msgid "assertions are a GCC extension"
546546 msgstr "Assertions sind eine GCC-Erweiterung"
547547
548−#: expr.c:1205
548+#: expr.c:1189
549549 msgid "assertions are a deprecated extension"
550550 msgstr "Assertions sind eine veraltete Erweiterung"
551551
552−#: expr.c:1451
552+#: expr.c:1435
553553 #, c-format
554554 msgid "unbalanced stack in %s"
555555 msgstr "unausgeglichener Keller in %s"
556556
557−#: expr.c:1471
557+#: expr.c:1455
558558 #, c-format
559559 msgid "impossible operator '%u'"
560560 msgstr "unmöglicher Operator »%u«"
561561
562−#: expr.c:1572
562+#: expr.c:1556
563563 msgid "missing ')' in expression"
564564 msgstr "fehlende »)« in Ausdruck"
565565
566−#: expr.c:1601
566+#: expr.c:1585
567567 msgid "'?' without following ':'"
568568 msgstr "»?« ohne folgenden »:«"
569569
570−#: expr.c:1611
570+#: expr.c:1595
571571 msgid "integer overflow in preprocessor expression"
572572 msgstr "Ganzzahlüberlauf in Präprozessorausdruck"
573573
574−#: expr.c:1616
574+#: expr.c:1600
575575 msgid "missing '(' in expression"
576576 msgstr "fehlende »(« in Ausdruck"
577577
578−#: expr.c:1648
578+#: expr.c:1632
579579 #, c-format
580580 msgid "the left operand of \"%s\" changes sign when promoted"
581581 msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
582582
583−#: expr.c:1653
583+#: expr.c:1637
584584 #, c-format
585585 msgid "the right operand of \"%s\" changes sign when promoted"
586586 msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
587587
588−#: expr.c:1912
588+#: expr.c:1896
589589 msgid "traditional C rejects the unary plus operator"
590590 msgstr "traditionelles C weist den unären Plus-Operator zurück"
591591
592−#: expr.c:2010
592+#: expr.c:1994
593593 msgid "comma operator in operand of #if"
594594 msgstr "Kommaoperator in Operand von #if"
595595
596−#: expr.c:2146
596+#: expr.c:2130
597597 msgid "division by zero in #if"
598598 msgstr "Division durch Null in #if"
599599
600−#: expr.c:2243
600+#: expr.c:2227
601601 msgid "operator \"__has_include__\" requires a header string"
602602 msgstr "Operator »__has_include__« erfordert eine Header-Zeichenkette"
603603
604−#: expr.c:2259
604+#: expr.c:2243
605605 msgid "missing ')' after \"__has_include__\""
606606 msgstr "fehlende »)« hinter »__has_include__«"
607607
@@ -618,40 +618,40 @@ msgstr "-Winvalid-pch für mehr Informationen verwenden" · 10 unmodified lines
618618 msgid "no include path in which to search for %s"
619619 msgstr "kein Include-Pfad, um %s zu finden"
620620
621−#: files.c:1441
621+#: files.c:1455
622622 msgid "Multiple include guards may be useful for:\n"
623623 msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
624624
625−#: init.c:565
625+#: init.c:569
626626 msgid "cppchar_t must be an unsigned type"
627627 msgstr "cppchar_t muss ein vorzeichenloser Typ sein"
628628
629−#: init.c:569
629+#: init.c:573
630630 #, c-format
631631 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
632632 msgstr "Präprozessorarithmetik hat maximale Präzision von %lu Bits; Ziel erfordert %lu Bits"
633633
634−#: init.c:576
634+#: init.c:580
635635 msgid "CPP arithmetic must be at least as precise as a target int"
636636 msgstr "CPP-Arithmetik muss mindestens so genau sein wie das Ziel int"
637637
638−#: init.c:579
638+#: init.c:583
639639 msgid "target char is less than 8 bits wide"
640640 msgstr "Ziel-char ist weniger als 8 Bits breit"
641641
642−#: init.c:583
642+#: init.c:587
643643 msgid "target wchar_t is narrower than target char"
644644 msgstr "Ziel-wchar_t ist schmaler als Ziel-char"
645645
646−#: init.c:587
646+#: init.c:591
647647 msgid "target int is narrower than target char"
648648 msgstr "Ziel-int ist schmaler als Ziel-char"
649649
650−#: init.c:592
650+#: init.c:596
651651 msgid "CPP half-integer narrower than CPP character"
652652 msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen"
653653
654−#: init.c:596
654+#: init.c:600
655655 #, c-format
656656 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
657657 msgstr "CPP kann auf diesem Computer keine Wide-Zeichenkonstanten über %lu Bits Breite behandeln, das Ziel benötigt %lu Bits"
@@ -723,258 +723,273 @@ msgstr "__VA_ARGS__ kann nur in Erweiterung eines variadischen C99-Makros auftre · 65 unmodified lines
723723 msgid "identifier \"%s\" is a special operator name in C++"
724724 msgstr "Bezeichner »%s« ist ein besonderer Operatorname in C++"
725725
726−#: lex.c:1811
726+#: lex.c:1826
727727 msgid "raw string delimiter longer than 16 characters"
728728 msgstr "Roh-Zeichenketten-Trennsymbol länger als 16 Zeichen"
729729
730−#: lex.c:1815
730+#: lex.c:1830
731731 msgid "invalid new-line in raw string delimiter"
732732 msgstr "ungültiger Zeilenumbruch (neue Zeile) in Roh-Zeichenketten-Trennsymbol"
733733
734−#: lex.c:1819
734+#: lex.c:1834
735735 #, c-format
736736 msgid "invalid character '%c' in raw string delimiter"
737737 msgstr "ungültiges Zeichen »%c« in Roh-Zeichenketten-Trennsymbol"
738738
739−#: lex.c:1868 lex.c:1890
739+#: lex.c:1883 lex.c:1905
740740 msgid "unterminated raw string"
741741 msgstr "unbeendete Roh-Zeichenkette"
742742
743−#: lex.c:1912 lex.c:2043
743+#: lex.c:1925 lex.c:2054
744744 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
745745 msgstr "ungültiges Suffix an Literal; C++11 erfordert Leerzeichen zwischen Literal und Zeichenketten-Makro"
746746
747−#: lex.c:2024
747+#: lex.c:2037
748748 msgid "null character(s) preserved in literal"
749749 msgstr "Null-Zeichen im Literal erhalten"
750750
751−#: lex.c:2027
751+#: lex.c:2040
752752 #, c-format
753753 msgid "missing terminating %c character"
754754 msgstr "fehlendes abschließendes Zeichen %c"
755755
756−#: lex.c:2061
756+#: lex.c:2072
757757 msgid "C++11 requires a space between string literal and macro"
758758 msgstr "C++11 erfordert Leerzeichen zwischen Zeichenketten-Literal und Makro"
759759
760−#: lex.c:2865 lex.c:2899
760+#: lex.c:2876 lex.c:2910
761761 msgid "C++ style comments are not allowed in ISO C90"
762762 msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt"
763763
764−#: lex.c:2867 lex.c:2878 lex.c:2901
764+#: lex.c:2878 lex.c:2889 lex.c:2913
765765 msgid "(this will be reported only once per input file)"
766766 msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)"
767767
768−#: lex.c:2876
768+#: lex.c:2887
769769 msgid "C++ style comments are incompatible with C90"
770770 msgstr "C++-Stil-Kommentare sind zu C90 inkompatibel"
771771
772−#: lex.c:2907
772+#: lex.c:2919
773773 msgid "multi-line comment"
774774 msgstr "mehrzeiliger Kommentar"
775775
776−#: lex.c:3287
776+#: lex.c:3299
777777 #, c-format
778778 msgid "unspellable token %s"
779779 msgstr "nicht buchstabierbares Token %s"
780780
781−#: macro.c:93
781+#: macro.c:94
782782 msgid "'##' cannot appear at either end of __VA_OPT__"
783783 msgstr "»##« kann an einem beliebigen Enden von __VA_OPT__ auftreten"
784784
785−#: macro.c:352
785+#: macro.c:354
786786 #, c-format
787787 msgid "macro \"%s\" is not used"
788788 msgstr "Makro »%s« wird nicht benutzt"
789789
790−#: macro.c:391 macro.c:639
790+#: macro.c:393 macro.c:641
791791 #, c-format
792792 msgid "invalid built-in macro \"%s\""
793793 msgstr "ungültiges eingebautes Makro »%s«"
794794
795−#: macro.c:398 macro.c:500
795+#: macro.c:400 macro.c:502
796796 #, c-format
797797 msgid "macro \"%s\" might prevent reproducible builds"
798798 msgstr "Das Makro »%s« könnte reproduzierbare Builds verhindern"
799799
800−#: macro.c:429
800+#: macro.c:431
801801 msgid "could not determine file timestamp"
802802 msgstr "Zeitstempel der Datei konnte nicht ermittelt werden"
803803
804−#: macro.c:546
804+#: macro.c:548
805805 msgid "could not determine date and time"
806806 msgstr "Datum und Zeit konnten nicht bestimmt werden"
807807
808−#: macro.c:562
808+#: macro.c:564
809809 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
810810 msgstr "__COUNTER__ innerhalb von Anweisung mit -fdirectives-only expandiert"
811811
812−#: macro.c:758
812+#: macro.c:760
813813 msgid "invalid string literal, ignoring final '\\'"
814814 msgstr "ungültiges Zeichenkettenliteral, abschließendes »\\« wird ignoriert"
815815
816−#: macro.c:820
816+#: macro.c:822
817817 #, c-format
818818 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
819819 msgstr "das Einfügen von »%s« und »%s« ergibt kein gültiges Präprozessor-Token"
820820
821−#: macro.c:946
821+#: macro.c:948
822822 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
823823 msgstr "ISO-C++11 erfordert mindestens ein Argument für »...« in einem variadischen Makro"
824824
825−#: macro.c:950
825+#: macro.c:952
826826 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
827827 msgstr "ISO-C99 erfordert mindestens ein Argument für »...« in einem variadischen Makro"
828828
829−#: macro.c:957
829+#: macro.c:959
830830 #, c-format
831831 msgid "macro \"%s\" requires %u arguments, but only %u given"
832832 msgstr "Makro »%s« erfordert %u Argumente, aber nur %u wurden angegeben"
833833
834−#: macro.c:962
834+#: macro.c:964
835835 #, c-format
836836 msgid "macro \"%s\" passed %u arguments, but takes just %u"
837837 msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es akzeptiert nur %u"
838838
839−#: macro.c:1156 traditional.c:819
839+#: macro.c:1162 traditional.c:827
840840 #, c-format
841841 msgid "unterminated argument list invoking macro \"%s\""
842842 msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
843843
844−#: macro.c:1307
844+#: macro.c:1304
845845 #, c-format
846846 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
847847 msgstr "funktionsähnliches Makro »%s« muss mit Argumenten in traditionellem C verwendet werden"
848848
849−#: macro.c:2003
849+#: macro.c:2083
850850 #, c-format
851851 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
852852 msgstr "Beim Ausführen des Arguments %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C++98 unbestimmt"
853853
854−#: macro.c:2011 macro.c:2020
854+#: macro.c:2091 macro.c:2100
855855 #, c-format
856856 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
857857 msgstr "Beim Ausführen des Arguments %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C90 unbestimmt"
858858
859−#: macro.c:2984
859+#: macro.c:3059
860860 #, c-format
861861 msgid "duplicate macro parameter \"%s\""
862862 msgstr "doppelter Makroparameter »%s«"
863863
864−#: macro.c:3033
864+#: macro.c:3141
865+#, c-format
866+msgid "expected parameter name, found \"%s\""
867+msgstr "Parametername erwartet, aber »%s« gefunden"
868+
869+#: macro.c:3142
865870 #, c-format
866−msgid "\"%s\" may not appear in macro parameter list"
867−msgstr "»%s« darf nicht in Makroparameterliste auftreten"
871+msgid "expected ',' or ')', found \"%s\""
872+msgstr "»,« oder »)« erwartet, aber »%s« gefunden"
868873
869−#: macro.c:3041
870−msgid "macro parameters must be comma-separated"
871−msgstr "Makroparameter müssen mit Komma getrennt sein"
874+#: macro.c:3143
875+msgid "expected parameter name before end of line"
876+msgstr "Parametername vor dem Zeilenende erwartet"
872877
873−#: macro.c:3060
874−msgid "parameter name missing"
875−msgstr "Parametername fehlt"
878+#: macro.c:3144
879+msgid "expected ')' before end of line"
880+msgstr "»)« vor dem Zeilenende erwartet"
876881
877−#: macro.c:3081
882+#: macro.c:3145
883+msgid "expected ')' after \"...\""
884+msgstr "»)« nach »...« erwartet"
885+
886+#: macro.c:3202
878887 msgid "anonymous variadic macros were introduced in C++11"
879888 msgstr "anonyme variadische Makros wurden in C++11 eingeführt"
880889
881−#: macro.c:3085 macro.c:3090
890+#: macro.c:3203 macro.c:3207
882891 msgid "anonymous variadic macros were introduced in C99"
883892 msgstr "anonyme variadische Makros wurden in C99 eingeführt"
884893
885−#: macro.c:3097
894+#: macro.c:3213
886895 msgid "ISO C++ does not permit named variadic macros"
887896 msgstr "ISO-C++ erlaubt keine benannten variadischen Makros"
888897
889−#: macro.c:3100
898+#: macro.c:3214
890899 msgid "ISO C does not permit named variadic macros"
891900 msgstr "ISO-C erlaubt keine benannten variadischen Makros"
892901
893−#: macro.c:3110
894−msgid "missing ')' in macro parameter list"
895−msgstr "fehlendes »)« in Makroparameterliste"
896−
897−#: macro.c:3161
902+#: macro.c:3260
898903 msgid "'##' cannot appear at either end of a macro expansion"
899904 msgstr "»##« kann nicht an den Enden einer Makroexpansion auftreten"
900905
901−#: macro.c:3198
906+#: macro.c:3298
902907 msgid "ISO C++11 requires whitespace after the macro name"
903908 msgstr "ISO-C++11 erfordert Leerzeichen hinter Makroname"
904909
905−#: macro.c:3201
910+#: macro.c:3299
906911 msgid "ISO C99 requires whitespace after the macro name"
907912 msgstr "ISO-C99 erfordert Leerzeichen hinter Makroname"
908913
909−#: macro.c:3226
914+#: macro.c:3323
910915 msgid "missing whitespace after the macro name"
911916 msgstr "Leerzeichen hinter Makroname fehlt"
912917
913−#: macro.c:3263
918+#: macro.c:3373
914919 msgid "'#' is not followed by a macro parameter"
915920 msgstr "»#« wird nicht von einem Makroparameter gefolgt"
916921
917−#: macro.c:3430
922+#: macro.c:3524
918923 #, c-format
919924 msgid "\"%s\" redefined"
920925 msgstr "»%s« redefiniert"
921926
922−#: macro.c:3435
927+#: macro.c:3529
923928 msgid "this is the location of the previous definition"
924929 msgstr "dies ist die Stelle der vorherigen Definition"
925930
926−#: macro.c:3496
931+#: macro.c:3633
927932 #, c-format
928933 msgid "macro argument \"%s\" would be stringified in traditional C"
929934 msgstr "Makroargument »%s« würde in traditionellem C zur Zeichenkette umgewandelt werden"
930935
931−#: macro.c:3532
932−#, c-format
933−msgid "invalid hash type %d in cpp_macro_definition"
934−msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
935−
936−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
936+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
937937 msgid "while writing precompiled header"
938938 msgstr "beim Schreiben des vorkompilierten Headers"
939939
940−#: pch.c:621
940+#: pch.c:616
941941 #, c-format
942942 msgid "%s: not used because `%.*s' is poisoned"
943943 msgstr "%s: nicht verwendet, da »%.*s« vergiftet ist"
944944
945−#: pch.c:643
945+#: pch.c:638
946946 #, c-format
947947 msgid "%s: not used because `%.*s' not defined"
948948 msgstr "%s: nicht verwendet, da »%.*s« nicht definiert"
949949
950−#: pch.c:655
950+#: pch.c:650
951951 #, c-format
952952 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
953953 msgstr "%s: nicht verwendet, da »%.*s« als »%s« statt als »%.*s« definiert wurde"
954954
955−#: pch.c:696
955+#: pch.c:691
956956 #, c-format
957957 msgid "%s: not used because `%s' is defined"
958958 msgstr "%s: nicht verwendet, da »%s« definiert ist"
959959
960−#: pch.c:716
960+#: pch.c:711
961961 #, c-format
962962 msgid "%s: not used because `__COUNTER__' is invalid"
963963 msgstr "%s: nicht verwendet, da »__COUNTER__« ungültig ist"
964964
965−#: pch.c:725 pch.c:903
965+#: pch.c:720 pch.c:878
966966 msgid "while reading precompiled header"
967967 msgstr "beim Lesen des vorkompilierten Headers"
968968
969−#: traditional.c:889
969+#: traditional.c:896
970970 #, c-format
971971 msgid "detected recursion whilst expanding macro \"%s\""
972972 msgstr "Rekursion bei Expansion des Makros »%s« entdeckt"
973973
974−#: traditional.c:1108
974+#: traditional.c:1119
975975 msgid "syntax error in macro parameter list"
976976 msgstr "Syntaxfehler in Makroparameterliste"
977977
978+#~ msgid "\"%s\" may not appear in macro parameter list"
979+#~ msgstr "»%s« darf nicht in Makroparameterliste auftreten"
980+
981+#~ msgid "macro parameters must be comma-separated"
982+#~ msgstr "Makroparameter müssen mit Komma getrennt sein"
983+
984+#~ msgid "parameter name missing"
985+#~ msgstr "Parametername fehlt"
986+
987+#~ msgid "missing ')' in macro parameter list"
988+#~ msgstr "fehlendes »)« in Makroparameterliste"
989+
990+#~ msgid "invalid hash type %d in cpp_macro_definition"
991+#~ msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
992+
978993 #~ msgid "NULL directory in find_file"
979994 #~ msgstr "NULL-Verzeichnis in find_file"
980995
gcc/libcpp/po/el.gmo+0−0

Binary file not shown.

gcc/libcpp/po/el.po+163−170
@@ -6,7 +6,7 @@ msgid "" · 5 unmodified lines
66 msgstr ""
77 "Project-Id-Version: gcc 3.2\n"
88 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
9−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
9+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1010 "PO-Revision-Date: 2002-08-18 15:46+0100\n"
1111 "Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
1212 "Language-Team: Greek <nls@tux.hellug.gr>\n"
@@ -86,7 +86,7 @@ msgstr "" · 73 unmodified lines
8686 msgid "universal character %.*s is not valid at the start of an identifier"
8787 msgstr ""
8888
89−#: charset.c:1181 charset.c:2000
89+#: charset.c:1181 charset.c:2002
9090 msgid "converting UCN to source character set"
9191 msgstr ""
9292
@@ -143,306 +143,306 @@ msgstr " · 50 unmodified lines
143143 msgid "missing open quote"
144144 msgstr "������� � ���������������� ��������"
145145
146−#: charset.c:1827 charset.c:1891
146+#: charset.c:1829 charset.c:1893
147147 #, fuzzy
148148 msgid "character constant too long for its type"
149149 msgstr "�� ������� �������� ���������� ��� �������������"
150150
151−#: charset.c:1830
151+#: charset.c:1832
152152 #, fuzzy
153153 msgid "multi-character character constant"
154154 msgstr "����� ����� ��������� `%s'"
155155
156−#: charset.c:1931
156+#: charset.c:1933
157157 #, fuzzy
158158 msgid "empty character constant"
159159 msgstr "���� �������������"
160160
161−#: charset.c:2047
161+#: charset.c:2049
162162 #, fuzzy, c-format
163163 msgid "failure to convert %s to %s"
164164 msgstr "��� ����� ������ �� ������������ �� %s `%s' ��� `%s'"
165165
166−#: directives.c:235 directives.c:278
166+#: directives.c:229 directives.c:272
167167 #, c-format
168168 msgid "extra tokens at end of #%s directive"
169169 msgstr ""
170170
171−#: directives.c:385
171+#: directives.c:379
172172 #, c-format
173173 msgid "#%s is a GCC extension"
174174 msgstr ""
175175
176−#: directives.c:390
176+#: directives.c:384
177177 #, fuzzy, c-format
178178 msgid "#%s is a deprecated GCC extension"
179179 msgstr "�� `%s' ��� ����� �������� ������"
180180
181−#: directives.c:403
181+#: directives.c:397
182182 msgid "suggest not using #elif in traditional C"
183183 msgstr ""
184184
185−#: directives.c:406
185+#: directives.c:400
186186 #, c-format
187187 msgid "traditional C ignores #%s with the # indented"
188188 msgstr ""
189189
190−#: directives.c:410
190+#: directives.c:404
191191 #, c-format
192192 msgid "suggest hiding #%s from traditional C with an indented #"
193193 msgstr ""
194194
195−#: directives.c:436
195+#: directives.c:430
196196 msgid "embedding a directive within macro arguments is not portable"
197197 msgstr ""
198198
199−#: directives.c:456
199+#: directives.c:450
200200 msgid "style of line directive is a GCC extension"
201201 msgstr ""
202202
203−#: directives.c:537
203+#: directives.c:531
204204 #, c-format
205205 msgid "invalid preprocessing directive #%s"
206206 msgstr ""
207207
208−#: directives.c:606
208+#: directives.c:600
209209 msgid "\"defined\" cannot be used as a macro name"
210210 msgstr ""
211211
212−#: directives.c:611
212+#: directives.c:605
213213 msgid "\"__has_include__\" cannot be used as a macro name"
214214 msgstr ""
215215
216−#: directives.c:617
216+#: directives.c:611
217217 #, c-format
218218 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
219219 msgstr ""
220220
221−#: directives.c:620
221+#: directives.c:614
222222 #, c-format
223223 msgid "no macro name given in #%s directive"
224224 msgstr ""
225225
226−#: directives.c:623
226+#: directives.c:617
227227 #, fuzzy
228228 msgid "macro names must be identifiers"
229229 msgstr "������ ������������� ���������"
230230
231−#: directives.c:672 directives.c:677
231+#: directives.c:666 directives.c:671
232232 #, fuzzy, c-format
233233 msgid "undefining \"%s\""
234234 msgstr "�� �������� ����� %s"
235235
236−#: directives.c:732
236+#: directives.c:727
237237 #, fuzzy
238238 msgid "missing terminating > character"
239239 msgstr "���� ���������� �� ������ ����������"
240240
241−#: directives.c:791
241+#: directives.c:786
242242 #, c-format
243243 msgid "#%s expects \"FILENAME\" or <FILENAME>"
244244 msgstr ""
245245
246−#: directives.c:837
246+#: directives.c:828
247247 #, fuzzy, c-format
248248 msgid "empty filename in #%s"
249249 msgstr "�� �������� ����� %s"
250250
251−#: directives.c:847
251+#: directives.c:835
252252 msgid "#include nested too deeply"
253253 msgstr ""
254254
255−#: directives.c:888
255+#: directives.c:877
256256 msgid "#include_next in primary source file"
257257 msgstr ""
258258
259−#: directives.c:914
259+#: directives.c:903
260260 #, c-format
261261 msgid "invalid flag \"%s\" in line directive"
262262 msgstr ""
263263
264−#: directives.c:974
264+#: directives.c:963
265265 msgid "unexpected end of file after #line"
266266 msgstr ""
267267
268−#: directives.c:977
268+#: directives.c:966
269269 #, fuzzy, c-format
270270 msgid "\"%s\" after #line is not a positive integer"
271271 msgstr "%s' ��� ����� ������ ������� ��������."
272272
273−#: directives.c:983 directives.c:985
273+#: directives.c:972 directives.c:974
274274 #, fuzzy
275275 msgid "line number out of range"
276276 msgstr "%s: ������� ������� ��� ��� �� ����"
277277
278−#: directives.c:998 directives.c:1079
278+#: directives.c:987 directives.c:1068
279279 #, fuzzy, c-format
280280 msgid "\"%s\" is not a valid filename"
281281 msgstr "%s' ��� ����� ������ ������� ��������."
282282
283−#: directives.c:1039
283+#: directives.c:1028
284284 #, fuzzy, c-format
285285 msgid "\"%s\" after # is not a positive integer"
286286 msgstr "%s' ��� ����� ������ ������� ��������."
287287
288−#: directives.c:1098
288+#: directives.c:1087
289289 #, c-format
290290 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
291291 msgstr ""
292292
293−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
293+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
294294 #, c-format
295295 msgid "%s"
296296 msgstr "%s"
297297
298−#: directives.c:1185
298+#: directives.c:1175
299299 #, fuzzy, c-format
300300 msgid "invalid #%s directive"
301301 msgstr "%%%c: �������������� ������ �� ������."
302302
303−#: directives.c:1248
303+#: directives.c:1238
304304 #, c-format
305305 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
306306 msgstr ""
307307
308−#: directives.c:1257
308+#: directives.c:1247
309309 #, c-format
310310 msgid "registering pragma \"%s\" with name expansion and no namespace"
311311 msgstr ""
312312
313−#: directives.c:1275
313+#: directives.c:1265
314314 #, c-format
315315 msgid "registering \"%s\" as both a pragma and a pragma namespace"
316316 msgstr ""
317317
318−#: directives.c:1278
318+#: directives.c:1268
319319 #, c-format
320320 msgid "#pragma %s %s is already registered"
321321 msgstr ""
322322
323−#: directives.c:1281
323+#: directives.c:1271
324324 #, fuzzy, c-format
325325 msgid "#pragma %s is already registered"
326326 msgstr "� ������ ���������� `%s' �������� ���"
327327
328−#: directives.c:1311
328+#: directives.c:1301
329329 msgid "registering pragma with NULL handler"
330330 msgstr ""
331331
332−#: directives.c:1528
332+#: directives.c:1518
333333 msgid "#pragma once in main file"
334334 msgstr ""
335335
336−#: directives.c:1551
336+#: directives.c:1541
337337 #, fuzzy
338338 msgid "invalid #pragma push_macro directive"
339339 msgstr "%%%c: �������������� ������ �� ������."
340340
341−#: directives.c:1606
341+#: directives.c:1596
342342 #, fuzzy
343343 msgid "invalid #pragma pop_macro directive"
344344 msgstr "%%%c: �������������� ������ �� ������."
345345
346−#: directives.c:1661
346+#: directives.c:1651
347347 msgid "invalid #pragma GCC poison directive"
348348 msgstr ""
349349
350−#: directives.c:1670
350+#: directives.c:1660
351351 #, c-format
352352 msgid "poisoning existing macro \"%s\""
353353 msgstr ""
354354
355−#: directives.c:1689
355+#: directives.c:1679
356356 msgid "#pragma system_header ignored outside include file"
357357 msgstr ""
358358
359−#: directives.c:1714
359+#: directives.c:1704
360360 #, fuzzy, c-format
361361 msgid "cannot find source file %s"
362362 msgstr "�������� ���������� ��������: %s"
363363
364−#: directives.c:1718
364+#: directives.c:1708
365365 #, c-format
366366 msgid "current file is older than %s"
367367 msgstr ""
368368
369−#: directives.c:1742
369+#: directives.c:1732
370370 #, fuzzy, c-format
371371 msgid "invalid \"#pragma GCC %s\" directive"
372372 msgstr "� ���������� `%s' ��� ����� ������."
373373
374−#: directives.c:1943
374+#: directives.c:1933
375375 msgid "_Pragma takes a parenthesized string literal"
376376 msgstr ""
377377
378−#: directives.c:2064
378+#: directives.c:2021
379379 msgid "#else without #if"
380380 msgstr ""
381381
382−#: directives.c:2069
382+#: directives.c:2026
383383 msgid "#else after #else"
384384 msgstr "#else ���� ��� #else"
385385
386−#: directives.c:2071 directives.c:2104
386+#: directives.c:2028 directives.c:2061
387387 msgid "the conditional began here"
388388 msgstr ""
389389
390−#: directives.c:2097
390+#: directives.c:2054
391391 msgid "#elif without #if"
392392 msgstr ""
393393
394−#: directives.c:2102
394+#: directives.c:2059
395395 msgid "#elif after #else"
396396 msgstr "#elif ���� ��� #else"
397397
398−#: directives.c:2133
398+#: directives.c:2090
399399 msgid "#endif without #if"
400400 msgstr ""
401401
402−#: directives.c:2213
402+#: directives.c:2166
403403 msgid "missing '(' after predicate"
404404 msgstr ""
405405
406−#: directives.c:2228
406+#: directives.c:2184
407407 msgid "missing ')' to complete answer"
408408 msgstr ""
409409
410−#: directives.c:2248
410+#: directives.c:2196
411411 msgid "predicate's answer is empty"
412412 msgstr ""
413413
414−#: directives.c:2275
414+#: directives.c:2226
415415 #, fuzzy
416416 msgid "assertion without predicate"
417417 msgstr "� ���������� ��� �����������"
418418
419−#: directives.c:2278
419+#: directives.c:2229
420420 #, fuzzy
421421 msgid "predicate must be an identifier"
422422 msgstr "������ ������������� ���������"
423423
424−#: directives.c:2364
424+#: directives.c:2311
425425 #, c-format
426426 msgid "\"%s\" re-asserted"
427427 msgstr ""
428428
429−#: directives.c:2656
429+#: directives.c:2587
430430 #, fuzzy, c-format
431431 msgid "unterminated #%s"
432432 msgstr "�� ������������o �������������"
433433
434−#: directives-only.c:221 lex.c:2851 traditional.c:167
434+#: directives-only.c:221 lex.c:2862 traditional.c:175
435435 #, fuzzy
436436 msgid "unterminated comment"
437437 msgstr "�� ������������ ������ `s'"
438438
439439 # src/request.c:37
440−#: errors.c:284
440+#: errors.c:291
441441 #, c-format
442442 msgid "%s: %s"
443443 msgstr "%s: %s"
444444
445−#: errors.c:296
445+#: errors.c:304
446446 msgid "stdout"
447447 msgstr ""
448448
@@ -542,30 +542,30 @@ msgstr "" · 93 unmodified lines
542542 msgid "this use of \"defined\" may not be portable"
543543 msgstr ""
544544
545−#: expr.c:1125
545+#: expr.c:1109
546546 msgid "user-defined literal in preprocessor expression"
547547 msgstr ""
548548
549−#: expr.c:1130
549+#: expr.c:1114
550550 #, fuzzy
551551 msgid "floating constant in preprocessor expression"
552552 msgstr "�������� ������� ������������"
553553
554−#: expr.c:1136
554+#: expr.c:1120
555555 #, fuzzy
556556 msgid "imaginary number in preprocessor expression"
557557 msgstr "�� ������� ������� ��� �������"
558558
559−#: expr.c:1189
559+#: expr.c:1173
560560 #, fuzzy, c-format
561561 msgid "\"%s\" is not defined, evaluates to 0"
562562 msgstr "�� `%s' ��� ����� �������� ������"
563563
564−#: expr.c:1202
564+#: expr.c:1186
565565 msgid "assertions are a GCC extension"
566566 msgstr ""
567567
568−#: expr.c:1205
568+#: expr.c:1189
569569 msgid "assertions are a deprecated extension"
570570 msgstr ""
571571
@@ -573,63 +573,63 @@ msgstr "" · 1 unmodified line
573573 # src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
574574 # src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
575575 # src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
576−#: expr.c:1451
576+#: expr.c:1435
577577 #, fuzzy, c-format
578578 msgid "unbalanced stack in %s"
579579 msgstr "�� ������������ ["
580580
581−#: expr.c:1471
581+#: expr.c:1455
582582 #, fuzzy, c-format
583583 msgid "impossible operator '%u'"
584584 msgstr "RPC: �� �������� �������� ��� RPC"
585585
586−#: expr.c:1572
586+#: expr.c:1556
587587 #, fuzzy
588588 msgid "missing ')' in expression"
589589 msgstr "���� ���������� � ����� �� ��� ������"
590590
591−#: expr.c:1601
591+#: expr.c:1585
592592 #, fuzzy
593593 msgid "'?' without following ':'"
594594 msgstr "���������� ������ ���� �������: %s"
595595
596−#: expr.c:1611
596+#: expr.c:1595
597597 msgid "integer overflow in preprocessor expression"
598598 msgstr ""
599599
600−#: expr.c:1616
600+#: expr.c:1600
601601 #, fuzzy
602602 msgid "missing '(' in expression"
603603 msgstr "���� ���������� � ����� �� ��� ������"
604604
605−#: expr.c:1648
605+#: expr.c:1632
606606 #, c-format
607607 msgid "the left operand of \"%s\" changes sign when promoted"
608608 msgstr ""
609609
610−#: expr.c:1653
610+#: expr.c:1637
611611 #, c-format
612612 msgid "the right operand of \"%s\" changes sign when promoted"
613613 msgstr ""
614614
615−#: expr.c:1912
615+#: expr.c:1896
616616 msgid "traditional C rejects the unary plus operator"
617617 msgstr ""
618618
619−#: expr.c:2010
619+#: expr.c:1994
620620 msgid "comma operator in operand of #if"
621621 msgstr ""
622622
623−#: expr.c:2146
623+#: expr.c:2130
624624 #, fuzzy
625625 msgid "division by zero in #if"
626626 msgstr "�������� �� ����� ���� ���������: %s"
627627
628−#: expr.c:2243
628+#: expr.c:2227
629629 msgid "operator \"__has_include__\" requires a header string"
630630 msgstr ""
631631
632−#: expr.c:2259
632+#: expr.c:2243
633633 #, fuzzy
634634 msgid "missing ')' after \"__has_include__\""
635635 msgstr "���� ���������� � ����� �� �� �����"
@@ -647,41 +647,41 @@ msgstr "" · 11 unmodified lines
647647 msgid "no include path in which to search for %s"
648648 msgstr ""
649649
650−#: files.c:1441
650+#: files.c:1455
651651 msgid "Multiple include guards may be useful for:\n"
652652 msgstr ""
653653
654−#: init.c:565
654+#: init.c:569
655655 #, fuzzy
656656 msgid "cppchar_t must be an unsigned type"
657657 msgstr "������ ������������� ���������"
658658
659−#: init.c:569
659+#: init.c:573
660660 #, c-format
661661 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
662662 msgstr ""
663663
664−#: init.c:576
664+#: init.c:580
665665 msgid "CPP arithmetic must be at least as precise as a target int"
666666 msgstr ""
667667
668−#: init.c:579
668+#: init.c:583
669669 msgid "target char is less than 8 bits wide"
670670 msgstr ""
671671
672−#: init.c:583
672+#: init.c:587
673673 msgid "target wchar_t is narrower than target char"
674674 msgstr ""
675675
676−#: init.c:587
676+#: init.c:591
677677 msgid "target int is narrower than target char"
678678 msgstr ""
679679
680−#: init.c:592
680+#: init.c:596
681681 msgid "CPP half-integer narrower than CPP character"
682682 msgstr ""
683683
684−#: init.c:596
684+#: init.c:600
685685 #, c-format
686686 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
687687 msgstr ""
@@ -755,262 +755,263 @@ msgstr "" · 67 unmodified lines
755755 msgid "identifier \"%s\" is a special operator name in C++"
756756 msgstr ""
757757
758−#: lex.c:1811
758+#: lex.c:1826
759759 msgid "raw string delimiter longer than 16 characters"
760760 msgstr ""
761761
762−#: lex.c:1815
762+#: lex.c:1830
763763 msgid "invalid new-line in raw string delimiter"
764764 msgstr ""
765765
766−#: lex.c:1819
766+#: lex.c:1834
767767 #, fuzzy, c-format
768768 msgid "invalid character '%c' in raw string delimiter"
769769 msgstr "�� ������� ���������� `%c' ��� ���� �������������� `%s'"
770770
771−#: lex.c:1868 lex.c:1890
771+#: lex.c:1883 lex.c:1905
772772 #, fuzzy
773773 msgid "unterminated raw string"
774774 msgstr "�� ������������o �������������"
775775
776−#: lex.c:1912 lex.c:2043
776+#: lex.c:1925 lex.c:2054
777777 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
778778 msgstr ""
779779
780−#: lex.c:2024
780+#: lex.c:2037
781781 msgid "null character(s) preserved in literal"
782782 msgstr ""
783783
784−#: lex.c:2027
784+#: lex.c:2040
785785 #, c-format
786786 msgid "missing terminating %c character"
787787 msgstr "���� ���������� ���������� ���������� %c"
788788
789−#: lex.c:2061
789+#: lex.c:2072
790790 msgid "C++11 requires a space between string literal and macro"
791791 msgstr ""
792792
793−#: lex.c:2865 lex.c:2899
793+#: lex.c:2876 lex.c:2910
794794 msgid "C++ style comments are not allowed in ISO C90"
795795 msgstr ""
796796
797−#: lex.c:2867 lex.c:2878 lex.c:2901
797+#: lex.c:2878 lex.c:2889 lex.c:2913
798798 msgid "(this will be reported only once per input file)"
799799 msgstr ""
800800
801−#: lex.c:2876
801+#: lex.c:2887
802802 msgid "C++ style comments are incompatible with C90"
803803 msgstr ""
804804
805−#: lex.c:2907
805+#: lex.c:2919
806806 msgid "multi-line comment"
807807 msgstr ""
808808
809−#: lex.c:3287
809+#: lex.c:3299
810810 #, fuzzy, c-format
811811 msgid "unspellable token %s"
812812 msgstr "%s: ������� �� ������� ��� %s: %m\n"
813813
814−#: macro.c:93
814+#: macro.c:94
815815 msgid "'##' cannot appear at either end of __VA_OPT__"
816816 msgstr ""
817817
818−#: macro.c:352
818+#: macro.c:354
819819 #, fuzzy, c-format
820820 msgid "macro \"%s\" is not used"
821821 msgstr "�� `%s' ��� ����� �������� ������"
822822
823−#: macro.c:391 macro.c:639
823+#: macro.c:393 macro.c:641
824824 #, fuzzy, c-format
825825 msgid "invalid built-in macro \"%s\""
826826 msgstr "�� ������ ����� �������: %s"
827827
828−#: macro.c:398 macro.c:500
828+#: macro.c:400 macro.c:502
829829 #, c-format
830830 msgid "macro \"%s\" might prevent reproducible builds"
831831 msgstr ""
832832
833−#: macro.c:429
833+#: macro.c:431
834834 #, fuzzy
835835 msgid "could not determine file timestamp"
836836 msgstr "��� ������� �� ������ �� ������ %s"
837837
838−#: macro.c:546
838+#: macro.c:548
839839 #, fuzzy
840840 msgid "could not determine date and time"
841841 msgstr "��� ������� �� ������ �� ������ %s"
842842
843−#: macro.c:562
843+#: macro.c:564
844844 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
845845 msgstr ""
846846
847−#: macro.c:758
847+#: macro.c:760
848848 #, fuzzy
849849 msgid "invalid string literal, ignoring final '\\'"
850850 msgstr "�� ������� ������� ������� �������: `%s'"
851851
852−#: macro.c:820
852+#: macro.c:822
853853 #, c-format
854854 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
855855 msgstr ""
856856
857−#: macro.c:946
857+#: macro.c:948
858858 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
859859 msgstr ""
860860
861−#: macro.c:950
861+#: macro.c:952
862862 #, fuzzy
863863 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
864864 msgstr "���� ������ ����������"
865865
866−#: macro.c:957
866+#: macro.c:959
867867 #, c-format
868868 msgid "macro \"%s\" requires %u arguments, but only %u given"
869869 msgstr ""
870870
871−#: macro.c:962
871+#: macro.c:964
872872 #, c-format
873873 msgid "macro \"%s\" passed %u arguments, but takes just %u"
874874 msgstr ""
875875
876−#: macro.c:1156 traditional.c:819
876+#: macro.c:1162 traditional.c:827
877877 #, c-format
878878 msgid "unterminated argument list invoking macro \"%s\""
879879 msgstr ""
880880
881−#: macro.c:1307
881+#: macro.c:1304
882882 #, c-format
883883 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
884884 msgstr ""
885885
886−#: macro.c:2003
886+#: macro.c:2083
887887 #, c-format
888888 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
889889 msgstr ""
890890
891−#: macro.c:2011 macro.c:2020
891+#: macro.c:2091 macro.c:2100
892892 #, c-format
893893 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
894894 msgstr ""
895895
896−#: macro.c:2984
896+#: macro.c:3059
897897 #, fuzzy, c-format
898898 msgid "duplicate macro parameter \"%s\""
899899 msgstr "����� ����� ��������� `%s'"
900900
901−#: macro.c:3033
901+#: macro.c:3141
902+#, fuzzy, c-format
903+msgid "expected parameter name, found \"%s\""
904+msgstr "����� ����� ��������� `%s'"
905+
906+#: macro.c:3142
902907 #, c-format
903−msgid "\"%s\" may not appear in macro parameter list"
908+msgid "expected ',' or ')', found \"%s\""
904909 msgstr ""
905910
906−#: macro.c:3041
907−msgid "macro parameters must be comma-separated"
911+#: macro.c:3143
912+#, fuzzy
913+msgid "expected parameter name before end of line"
914+msgstr "%s: ���������� ���������� ����."
915+
916+#: macro.c:3144
917+msgid "expected ')' before end of line"
908918 msgstr ""
909919
910−#: macro.c:3060
911−msgid "parameter name missing"
920+#: macro.c:3145
921+msgid "expected ')' after \"...\""
912922 msgstr ""
913923
914−#: macro.c:3081
924+#: macro.c:3202
915925 msgid "anonymous variadic macros were introduced in C++11"
916926 msgstr ""
917927
918−#: macro.c:3085 macro.c:3090
928+#: macro.c:3203 macro.c:3207
919929 msgid "anonymous variadic macros were introduced in C99"
920930 msgstr ""
921931
922−#: macro.c:3097
932+#: macro.c:3213
923933 msgid "ISO C++ does not permit named variadic macros"
924934 msgstr ""
925935
926−#: macro.c:3100
936+#: macro.c:3214
927937 msgid "ISO C does not permit named variadic macros"
928938 msgstr ""
929939
930−#: macro.c:3110
931−msgid "missing ')' in macro parameter list"
932−msgstr ""
933−
934−#: macro.c:3161
940+#: macro.c:3260
935941 msgid "'##' cannot appear at either end of a macro expansion"
936942 msgstr ""
937943
938−#: macro.c:3198
944+#: macro.c:3298
939945 msgid "ISO C++11 requires whitespace after the macro name"
940946 msgstr ""
941947
942−#: macro.c:3201
948+#: macro.c:3299
943949 #, fuzzy
944950 msgid "ISO C99 requires whitespace after the macro name"
945951 msgstr "���� ������ ����������"
946952
947−#: macro.c:3226
953+#: macro.c:3323
948954 msgid "missing whitespace after the macro name"
949955 msgstr ""
950956
951−#: macro.c:3263
957+#: macro.c:3373
952958 msgid "'#' is not followed by a macro parameter"
953959 msgstr ""
954960
955−#: macro.c:3430
961+#: macro.c:3524
956962 #, fuzzy, c-format
957963 msgid "\"%s\" redefined"
958964 msgstr "�������"
959965
960−#: macro.c:3435
966+#: macro.c:3529
961967 #, fuzzy
962968 msgid "this is the location of the previous definition"
963969 msgstr "���� ����� � ���� ��� ������ �������"
964970
965−#: macro.c:3496
971+#: macro.c:3633
966972 #, c-format
967973 msgid "macro argument \"%s\" would be stringified in traditional C"
968974 msgstr ""
969975
970−#: macro.c:3532
971−#, c-format
972−msgid "invalid hash type %d in cpp_macro_definition"
973−msgstr ""
974−
975−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
976+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
976977 msgid "while writing precompiled header"
977978 msgstr ""
978979
979−#: pch.c:621
980+#: pch.c:616
980981 #, c-format
981982 msgid "%s: not used because `%.*s' is poisoned"
982983 msgstr ""
983984
984−#: pch.c:643
985+#: pch.c:638
985986 #, c-format
986987 msgid "%s: not used because `%.*s' not defined"
987988 msgstr ""
988989
989−#: pch.c:655
990+#: pch.c:650
990991 #, c-format
991992 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
992993 msgstr ""
993994
994−#: pch.c:696
995+#: pch.c:691
995996 #, c-format
996997 msgid "%s: not used because `%s' is defined"
997998 msgstr ""
998999
999−#: pch.c:716
1000+#: pch.c:711
10001001 #, c-format
10011002 msgid "%s: not used because `__COUNTER__' is invalid"
10021003 msgstr ""
10031004
1004−#: pch.c:725 pch.c:903
1005+#: pch.c:720 pch.c:878
10051006 msgid "while reading precompiled header"
10061007 msgstr ""
10071008
1008−#: traditional.c:889
1009+#: traditional.c:896
10091010 #, c-format
10101011 msgid "detected recursion whilst expanding macro \"%s\""
10111012 msgstr ""
10121013
1013−#: traditional.c:1108
1014+#: traditional.c:1119
10141015 #, fuzzy
10151016 msgid "syntax error in macro parameter list"
10161017 msgstr "���������� ������ ���� ������ ������ ����������"
@@ -1280,10 +1281,6 @@ msgstr " · 263 unmodified lines
12801281 #~ msgid "parameter `%s' declared void"
12811282 #~ msgstr "� ������ ���������� `%s' �������� ���"
12821283
1283−#, fuzzy
1284−#~ msgid "multiple parameters named `%s'"
1285−#~ msgstr "����� ����� ��������� `%s'"
1286−
12871284 #, fuzzy
12881285 #~ msgid "no return statement in function returning non-void"
12891286 #~ msgstr "`return' ����� ����, �� ��������� ��� ���������� ��-����"
@@ -5179,10 +5176,6 @@ msgstr " · 3889 unmodified lines
51795176 #~ msgid "start label '%s' does not match end label '%s'"
51805177 #~ msgstr "�� ������ ��������� ������ `%s' ��� ��������� �� �� �������������� ����������� `%s'"
51815178
5182−#, fuzzy
5183−#~ msgid "expected a name here"
5184−#~ msgstr "%s: ���������� ���������� ����."
5185−
51865179 #, fuzzy
51875180 #~ msgid "expected a name string here"
51885181 #~ msgstr "%s: ���������� ���������� ����."
gcc/libcpp/po/eo.po+185−170
@@ -1,14 +1,14 @@
11 # Translation of cpplib to Esperanto
2−# Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Free Software Foundation, Inc.
2+# Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc.
33 # This file is distributed under the same license as the gcc package.
4−# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015, 2016, 2017, 2018.
4+# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2015, 2016, 2017, 2018, 2019.
55 #
66 msgid ""
77 msgstr ""
8−"Project-Id-Version: cpplib 8.1-b20180128\n"
8+"Project-Id-Version: cpplib 9.1-b20190203\n"
99 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
10−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
11−"PO-Revision-Date: 2018-06-06 16:53-0300\n"
10+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
11+"PO-Revision-Date: 2019-02-06 20:15+0100\n"
1212 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
1313 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
1414 "Language: eo\n"
@@ -16,7 +16,7 @@ msgstr "" · 1 unmodified line
1616 "Content-Type: text/plain; charset=utf-8\n"
1717 "Content-Transfer-Encoding: 8bit\n"
1818 "X-Bugs: Report translation errors to the Language-Team address.\n"
19−"X-Generator: Poedit 1.5.4\n"
19+"X-Generator: Poedit 2.0.7\n"
2020
2121 #: charset.c:674
2222 #, c-format
@@ -87,7 +87,7 @@ msgstr "la universala signo %.*s ne estas valida en identiganto" · 64 unmodified lines
8787 msgid "universal character %.*s is not valid at the start of an identifier"
8888 msgstr "la universala signo %.*s ne estas valida en komenco de identiganto"
8989
90−#: charset.c:1181 charset.c:2000
90+#: charset.c:1181 charset.c:2002
9191 msgid "converting UCN to source character set"
9292 msgstr "konverto de UCN al la fonta signaro"
9393
@@ -138,294 +138,294 @@ msgstr "konverto de eskapa sekvo al plenumiga signaro" · 44 unmodified lines
138138 msgid "missing open quote"
139139 msgstr "mankas komenca citilo"
140140
141−#: charset.c:1827 charset.c:1891
141+#: charset.c:1829 charset.c:1893
142142 msgid "character constant too long for its type"
143143 msgstr "signa konstanto tro longas por ties tipo"
144144
145−#: charset.c:1830
145+#: charset.c:1832
146146 msgid "multi-character character constant"
147147 msgstr "plursigna signa konstanto"
148148
149−#: charset.c:1931
149+#: charset.c:1933
150150 msgid "empty character constant"
151151 msgstr "malplena signa konstanto"
152152
153−#: charset.c:2047
153+#: charset.c:2049
154154 #, c-format
155155 msgid "failure to convert %s to %s"
156156 msgstr "problemo por konverti %s al %s"
157157
158−#: directives.c:235 directives.c:278
158+#: directives.c:229 directives.c:272
159159 #, c-format
160160 msgid "extra tokens at end of #%s directive"
161161 msgstr "kromaj ĵetonoj ĉe la fino de la instrukcio #%s"
162162
163−#: directives.c:385
163+#: directives.c:379
164164 #, c-format
165165 msgid "#%s is a GCC extension"
166166 msgstr "#%s estas aldono de GCC"
167167
168−#: directives.c:390
168+#: directives.c:384
169169 #, c-format
170170 msgid "#%s is a deprecated GCC extension"
171171 msgstr "#%s estas evitinda aldono de GCC"
172172
173−#: directives.c:403
173+#: directives.c:397
174174 msgid "suggest not using #elif in traditional C"
175175 msgstr "sugesti ne uzi #elif en tradicia C"
176176
177−#: directives.c:406
177+#: directives.c:400
178178 #, c-format
179179 msgid "traditional C ignores #%s with the # indented"
180180 msgstr "tradicia C preteratentas #%s kun la # krommarĝenita"
181181
182−#: directives.c:410
182+#: directives.c:404
183183 #, c-format
184184 msgid "suggest hiding #%s from traditional C with an indented #"
185185 msgstr "sugesti kaŝi #%s el tradicia C per krommarĝenigo de #"
186186
187−#: directives.c:436
187+#: directives.c:430
188188 msgid "embedding a directive within macro arguments is not portable"
189189 msgstr "enkorpigi instrukcion ene de makroaj argumentoj ne estas portebla"
190190
191−#: directives.c:456
191+#: directives.c:450
192192 msgid "style of line directive is a GCC extension"
193193 msgstr "stilo de lini-instrukcioj estas aldono de GCC"
194194
195−#: directives.c:537
195+#: directives.c:531
196196 #, c-format
197197 msgid "invalid preprocessing directive #%s"
198198 msgstr "malvalida antaŭproceza instrukcio #%s"
199199
200−#: directives.c:606
200+#: directives.c:600
201201 msgid "\"defined\" cannot be used as a macro name"
202202 msgstr "\"defined\" ne povas estis uzata kiel makroa nomo"
203203
204−#: directives.c:611
204+#: directives.c:605
205205 msgid "\"__has_include__\" cannot be used as a macro name"
206206 msgstr "\"__has_include__\" ne povas estis uzata kiel makroa nomo"
207207
208−#: directives.c:617
208+#: directives.c:611
209209 #, c-format
210210 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
211211 msgstr "\"%s\" ne povas esti uzata kiel makroa nomo ĉar ĝi estas operatoro en C++"
212212
213−#: directives.c:620
213+#: directives.c:614
214214 #, c-format
215215 msgid "no macro name given in #%s directive"
216216 msgstr "neniu makroa nomo estas indikita en la instrukcio #%s"
217217
218−#: directives.c:623
218+#: directives.c:617
219219 msgid "macro names must be identifiers"
220220 msgstr "makroaj nomoj devas esti identigantoj"
221221
222−#: directives.c:672 directives.c:677
222+#: directives.c:666 directives.c:671
223223 #, c-format
224224 msgid "undefining \"%s\""
225225 msgstr "ni maldifinas \"%s\""
226226
227−#: directives.c:732
227+#: directives.c:727
228228 msgid "missing terminating > character"
229229 msgstr "mankas finiganta signo >"
230230
231−#: directives.c:791
231+#: directives.c:786
232232 #, c-format
233233 msgid "#%s expects \"FILENAME\" or <FILENAME>"
234234 msgstr "#%s atendas \"DOSIERNOMO\" aŭ <DOSIERNOMO>"
235235
236−#: directives.c:837
236+#: directives.c:828
237237 #, c-format
238238 msgid "empty filename in #%s"
239239 msgstr "malplena dosiernomo en #%s"
240240
241−#: directives.c:847
241+#: directives.c:835
242242 msgid "#include nested too deeply"
243243 msgstr "#include estas ingita tro profunde"
244244
245−#: directives.c:888
245+#: directives.c:877
246246 msgid "#include_next in primary source file"
247247 msgstr "#include_next en ĉefa fonta dosiero"
248248
249−#: directives.c:914
249+#: directives.c:903
250250 #, c-format
251251 msgid "invalid flag \"%s\" in line directive"
252252 msgstr "malvalida flago \"%s\" en lini-instrukcio"
253253
254−#: directives.c:974
254+#: directives.c:963
255255 msgid "unexpected end of file after #line"
256256 msgstr "neatendita dosierfino post #line"
257257
258−#: directives.c:977
258+#: directives.c:966
259259 #, c-format
260260 msgid "\"%s\" after #line is not a positive integer"
261261 msgstr "\"%s\" post #line ne estas pozitiva entjero"
262262
263−#: directives.c:983 directives.c:985
263+#: directives.c:972 directives.c:974
264264 msgid "line number out of range"
265265 msgstr "lininumero estas for de intervalo"
266266
267−#: directives.c:998 directives.c:1079
267+#: directives.c:987 directives.c:1068
268268 #, c-format
269269 msgid "\"%s\" is not a valid filename"
270270 msgstr "\"%s\" ne estas valida dosiernomo"
271271
272−#: directives.c:1039
272+#: directives.c:1028
273273 #, c-format
274274 msgid "\"%s\" after # is not a positive integer"
275275 msgstr "\"%s\" post # ne estas pozitiva entjero"
276276
277−#: directives.c:1098
277+#: directives.c:1087
278278 #, c-format
279279 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
280280 msgstr "linimarkilo de dosiero \"%s\" estis preteratentata pro malkorekta nesto"
281281
282−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
282+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
283283 #, c-format
284284 msgid "%s"
285285 msgstr "%s"
286286
287−#: directives.c:1185
287+#: directives.c:1175
288288 #, c-format
289289 msgid "invalid #%s directive"
290290 msgstr "malvalida instrukcio #%s"
291291
292−#: directives.c:1248
292+#: directives.c:1238
293293 #, c-format
294294 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
295295 msgstr "registro de pragma en nomspaco \"%s\" kun nekongrua nom-disvolviĝo"
296296
297−#: directives.c:1257
297+#: directives.c:1247
298298 #, c-format
299299 msgid "registering pragma \"%s\" with name expansion and no namespace"
300300 msgstr "registro de pragma \"%s\" kun nom-disvolviĝo kaj sen nomspaco"
301301
302−#: directives.c:1275
302+#: directives.c:1265
303303 #, c-format
304304 msgid "registering \"%s\" as both a pragma and a pragma namespace"
305305 msgstr "registro de \"%s\" kaj kiel pragma kaj kiel pragma-nomspaco"
306306
307−#: directives.c:1278
307+#: directives.c:1268
308308 #, c-format
309309 msgid "#pragma %s %s is already registered"
310310 msgstr "#pragma %s %s jam estas registrita"
311311
312−#: directives.c:1281
312+#: directives.c:1271
313313 #, c-format
314314 msgid "#pragma %s is already registered"
315315 msgstr "#pragma %s jam estas registrita"
316316
317−#: directives.c:1311
317+#: directives.c:1301
318318 msgid "registering pragma with NULL handler"
319319 msgstr "registro de pragma kun traktilo de NULL"
320320
321−#: directives.c:1528
321+#: directives.c:1518
322322 msgid "#pragma once in main file"
323323 msgstr "#pragma unufoje en ĉefdosiero"
324324
325−#: directives.c:1551
325+#: directives.c:1541
326326 msgid "invalid #pragma push_macro directive"
327327 msgstr "malvalida instrukcio #pragma push_macro"
328328
329−#: directives.c:1606
329+#: directives.c:1596
330330 msgid "invalid #pragma pop_macro directive"
331331 msgstr "malvalida instrukcio #pragma pop_macro"
332332
333−#: directives.c:1661
333+#: directives.c:1651
334334 msgid "invalid #pragma GCC poison directive"
335335 msgstr "malvalida instrukcio #pragma GCC poison"
336336
337−#: directives.c:1670
337+#: directives.c:1660
338338 #, c-format
339339 msgid "poisoning existing macro \"%s\""
340340 msgstr "venenigo de ekzistanta makroo \"%s\""
341341
342−#: directives.c:1689
342+#: directives.c:1679
343343 msgid "#pragma system_header ignored outside include file"
344344 msgstr "#pragma system_header estis preteratentata for de inkluziv-dosiero"
345345
346−#: directives.c:1714
346+#: directives.c:1704
347347 #, c-format
348348 msgid "cannot find source file %s"
349349 msgstr "ne eblas trovi la fontan dosieron %s"
350350
351−#: directives.c:1718
351+#: directives.c:1708
352352 #, c-format
353353 msgid "current file is older than %s"
354354 msgstr "nuna dosiero estas pli malnova ol %s"
355355
356−#: directives.c:1742
356+#: directives.c:1732
357357 #, c-format
358358 msgid "invalid \"#pragma GCC %s\" directive"
359359 msgstr "malvalida instrukcio \"#pragma GCC %s\""
360360
361−#: directives.c:1943
361+#: directives.c:1933
362362 msgid "_Pragma takes a parenthesized string literal"
363363 msgstr "_Pragma prenas kurbkrampitan ĉenan literaĵon"
364364
365−#: directives.c:2064
365+#: directives.c:2021
366366 msgid "#else without #if"
367367 msgstr "#else sen #if"
368368
369−#: directives.c:2069
369+#: directives.c:2026
370370 msgid "#else after #else"
371371 msgstr "#else post #else"
372372
373−#: directives.c:2071 directives.c:2104
373+#: directives.c:2028 directives.c:2061
374374 msgid "the conditional began here"
375375 msgstr "la kondiĉo komencis ĉi tie"
376376
377−#: directives.c:2097
377+#: directives.c:2054
378378 msgid "#elif without #if"
379379 msgstr "#elif sen #if"
380380
381−#: directives.c:2102
381+#: directives.c:2059
382382 msgid "#elif after #else"
383383 msgstr "#elif post #else"
384384
385−#: directives.c:2133
385+#: directives.c:2090
386386 msgid "#endif without #if"
387387 msgstr "#endif sen #if"
388388
389−#: directives.c:2213
389+#: directives.c:2166
390390 msgid "missing '(' after predicate"
391391 msgstr "mankas '(' post predikato"
392392
393−#: directives.c:2228
393+#: directives.c:2184
394394 msgid "missing ')' to complete answer"
395395 msgstr "mankas ')' por kompletigi respondon"
396396
397−#: directives.c:2248
397+#: directives.c:2196
398398 msgid "predicate's answer is empty"
399399 msgstr "respondo de predikato estas malplena"
400400
401−#: directives.c:2275
401+#: directives.c:2226
402402 msgid "assertion without predicate"
403403 msgstr "aserto sen predikato"
404404
405−#: directives.c:2278
405+#: directives.c:2229
406406 msgid "predicate must be an identifier"
407407 msgstr "predikato devas esti identiganto"
408408
409−#: directives.c:2364
409+#: directives.c:2311
410410 #, c-format
411411 msgid "\"%s\" re-asserted"
412412 msgstr "\"%s\" estas re-asertita"
413413
414−#: directives.c:2656
414+#: directives.c:2587
415415 #, c-format
416416 msgid "unterminated #%s"
417417 msgstr "nefinigita #%s"
418418
419−#: directives-only.c:221 lex.c:2851 traditional.c:167
419+#: directives-only.c:221 lex.c:2862 traditional.c:175
420420 msgid "unterminated comment"
421421 msgstr "nefinigita komento"
422422
423−#: errors.c:284
423+#: errors.c:291
424424 #, c-format
425425 msgid "%s: %s"
426426 msgstr "%s: %s"
427427
428−#: errors.c:296
428+#: errors.c:304
429429 msgid "stdout"
430430 msgstr "ĉefeligujo"
431431
@@ -518,84 +518,84 @@ msgstr "(\"%s\" estas alternativa ĵetono por \"%s\" en C++)" · 86 unmodified lines
518518 msgid "this use of \"defined\" may not be portable"
519519 msgstr "tiu ĉi uzo de \"defined\" eble ne estas portebla"
520520
521−#: expr.c:1125
521+#: expr.c:1109
522522 msgid "user-defined literal in preprocessor expression"
523523 msgstr "uzant-difinita literaĵo en antaŭproceza esprimo"
524524
525−#: expr.c:1130
525+#: expr.c:1114
526526 msgid "floating constant in preprocessor expression"
527527 msgstr "glitkoma konstanto en antaŭproceza esprimo"
528528
529−#: expr.c:1136
529+#: expr.c:1120
530530 msgid "imaginary number in preprocessor expression"
531531 msgstr "imaginara numero en antaŭproceza esprimo"
532532
533−#: expr.c:1189
533+#: expr.c:1173
534534 #, c-format
535535 msgid "\"%s\" is not defined, evaluates to 0"
536536 msgstr "\"%s\" ne estas difinita, rezultas al 0"
537537
538−#: expr.c:1202
538+#: expr.c:1186
539539 msgid "assertions are a GCC extension"
540540 msgstr "asertoj estas aldono de GCC"
541541
542−#: expr.c:1205
542+#: expr.c:1189
543543 msgid "assertions are a deprecated extension"
544544 msgstr "asertoj estas evitinda aldono"
545545
546−#: expr.c:1451
546+#: expr.c:1435
547547 #, c-format
548548 msgid "unbalanced stack in %s"
549549 msgstr "neekvilibrita stako en %s"
550550
551−#: expr.c:1471
551+#: expr.c:1455
552552 #, c-format
553553 msgid "impossible operator '%u'"
554554 msgstr "neebla operatoro '%u'"
555555
556−#: expr.c:1572
556+#: expr.c:1556
557557 msgid "missing ')' in expression"
558558 msgstr "mankas ')' en esprimo"
559559
560−#: expr.c:1601
560+#: expr.c:1585
561561 msgid "'?' without following ':'"
562562 msgstr "'?' sen sekvanta ':'"
563563
564−#: expr.c:1611
564+#: expr.c:1595
565565 msgid "integer overflow in preprocessor expression"
566566 msgstr "entjera troigo en antaŭproceza esprimo"
567567
568−#: expr.c:1616
568+#: expr.c:1600
569569 msgid "missing '(' in expression"
570570 msgstr "mankas '(' en esprimo"
571571
572−#: expr.c:1648
572+#: expr.c:1632
573573 #, c-format
574574 msgid "the left operand of \"%s\" changes sign when promoted"
575575 msgstr "la maldekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita"
576576
577−#: expr.c:1653
577+#: expr.c:1637
578578 #, c-format
579579 msgid "the right operand of \"%s\" changes sign when promoted"
580580 msgstr "la dekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita"
581581
582−#: expr.c:1912
582+#: expr.c:1896
583583 msgid "traditional C rejects the unary plus operator"
584584 msgstr "tradicia C rifuzas la unuloka plusan operatoron"
585585
586−#: expr.c:2010
586+#: expr.c:1994
587587 msgid "comma operator in operand of #if"
588588 msgstr "koma operatoro en operaciado de #if"
589589
590−#: expr.c:2146
590+#: expr.c:2130
591591 msgid "division by zero in #if"
592592 msgstr "divido per nulo en #if"
593593
594−#: expr.c:2243
594+#: expr.c:2227
595595 msgid "operator \"__has_include__\" requires a header string"
596596 msgstr "la operatoro \"__has_include__\" postulas kapan ĉenon"
597597
598−#: expr.c:2259
598+#: expr.c:2243
599599 msgid "missing ')' after \"__has_include__\""
600600 msgstr "mankas ')' post \"__has_include__\""
601601
@@ -612,40 +612,40 @@ msgstr "uzu -Winvalid-pch por pli da informo" · 10 unmodified lines
612612 msgid "no include path in which to search for %s"
613613 msgstr "estas neniu inkluziva vojo por serĉi %s"
614614
615−#: files.c:1441
615+#: files.c:1455
616616 msgid "Multiple include guards may be useful for:\n"
617617 msgstr "Multoblaj inkluzivaj gardnodoj povas esti utilaj por:\n"
618618
619−#: init.c:565
619+#: init.c:569
620620 msgid "cppchar_t must be an unsigned type"
621621 msgstr "cppchar_t devas esti sensignuma tipo"
622622
623−#: init.c:569
623+#: init.c:573
624624 #, c-format
625625 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
626626 msgstr "antaŭproceza aritmetiko havas maksimuman precizecon de %lu bitoj; la celo postulas %lu bitojn"
627627
628−#: init.c:576
628+#: init.c:580
629629 msgid "CPP arithmetic must be at least as precise as a target int"
630630 msgstr "Aritmetiko de CPP devas esti minimue tiel preciza kiel la celata int"
631631
632−#: init.c:579
632+#: init.c:583
633633 msgid "target char is less than 8 bits wide"
634634 msgstr "la celata char estas pli eta ol 8 bitoj"
635635
636−#: init.c:583
636+#: init.c:587
637637 msgid "target wchar_t is narrower than target char"
638638 msgstr "la celata wchar_t estas pli mallarĝa ol la celata char"
639639
640−#: init.c:587
640+#: init.c:591
641641 msgid "target int is narrower than target char"
642642 msgstr "la celata int estas pli mallarĝa ol la celata char"
643643
644−#: init.c:592
644+#: init.c:596
645645 msgid "CPP half-integer narrower than CPP character"
646646 msgstr "duon-entjero de CPP estas pli mallarĝa ol la signo de CPP"
647647
648−#: init.c:596
648+#: init.c:600
649649 #, c-format
650650 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
651651 msgstr "CPP en tiu ĉi komputilo ne povas trakti larĝ-signajn konstantoj plilarĝaj ol %lu bitoj, sed la celato postulas %lu bitojn"
@@ -717,258 +717,273 @@ msgstr "__VA_ARGS__ nur povas aperi en la disvolviĝo de variebl-argumenta makro · 65 unmodified lines
717717 msgid "identifier \"%s\" is a special operator name in C++"
718718 msgstr "la identiganto \"%s\" estas speciala operator-nomo en C++"
719719
720−#: lex.c:1811
720+#: lex.c:1826
721721 msgid "raw string delimiter longer than 16 characters"
722722 msgstr "kruda ĉen-apartigilo pli longas ol 16 signoj"
723723
724−#: lex.c:1815
724+#: lex.c:1830
725725 msgid "invalid new-line in raw string delimiter"
726726 msgstr "malvalida nov-linio en kruda ĉen-apartigilo"
727727
728−#: lex.c:1819
728+#: lex.c:1834
729729 #, c-format
730730 msgid "invalid character '%c' in raw string delimiter"
731731 msgstr "malvalida signo '%c' en kruda ĉen-apartigilo"
732732
733−#: lex.c:1868 lex.c:1890
733+#: lex.c:1883 lex.c:1905
734734 msgid "unterminated raw string"
735735 msgstr "nefinigita kruda ĉeno"
736736
737−#: lex.c:1912 lex.c:2043
737+#: lex.c:1925 lex.c:2054
738738 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
739739 msgstr "malvalida sufikso en literaĵo; C++11 postulas spacon inter literaĵo kaj ĉena makroo"
740740
741−#: lex.c:2024
741+#: lex.c:2037
742742 msgid "null character(s) preserved in literal"
743743 msgstr "nul-signo(j) tenitaj en literaĵo"
744744
745−#: lex.c:2027
745+#: lex.c:2040
746746 #, c-format
747747 msgid "missing terminating %c character"
748748 msgstr "mankas finigantan signon %c"
749749
750−#: lex.c:2061
750+#: lex.c:2072
751751 msgid "C++11 requires a space between string literal and macro"
752752 msgstr "C++11 postulas spacon inter ĉena literaĵo kaj makroo"
753753
754−#: lex.c:2865 lex.c:2899
754+#: lex.c:2876 lex.c:2910
755755 msgid "C++ style comments are not allowed in ISO C90"
756756 msgstr "Komentoj laŭ estilo de C++ ne estas permesataj en ISO C90"
757757
758−#: lex.c:2867 lex.c:2878 lex.c:2901
758+#: lex.c:2878 lex.c:2889 lex.c:2913
759759 msgid "(this will be reported only once per input file)"
760760 msgstr "(tio ĉi estos raportata nur po unu foje por ĉiu enigdosiero)"
761761
762−#: lex.c:2876
762+#: lex.c:2887
763763 msgid "C++ style comments are incompatible with C90"
764764 msgstr "Komentoj laŭ estilo de C++ ne interakordas kun C90"
765765
766−#: lex.c:2907
766+#: lex.c:2919
767767 msgid "multi-line comment"
768768 msgstr "plurlinia komento"
769769
770−#: lex.c:3287
770+#: lex.c:3299
771771 #, c-format
772772 msgid "unspellable token %s"
773773 msgstr "neliterumebla ĵetono %s"
774774
775−#: macro.c:93
775+#: macro.c:94
776776 msgid "'##' cannot appear at either end of __VA_OPT__"
777777 msgstr "'##' ne povas aperi ĉe iu ajn flanko de __VA_OPT__"
778778
779−#: macro.c:352
779+#: macro.c:354
780780 #, c-format
781781 msgid "macro \"%s\" is not used"
782782 msgstr "makroo \"%s\" ne estas uzata"
783783
784−#: macro.c:391 macro.c:639
784+#: macro.c:393 macro.c:641
785785 #, c-format
786786 msgid "invalid built-in macro \"%s\""
787787 msgstr "malvalida enkonstruita makroo \"%s\""
788788
789−#: macro.c:398 macro.c:500
789+#: macro.c:400 macro.c:502
790790 #, c-format
791791 msgid "macro \"%s\" might prevent reproducible builds"
792792 msgstr "la makroo \"%s\" povos malebligi reprodukteblajn konstruojn"
793793
794−#: macro.c:429
794+#: macro.c:431
795795 msgid "could not determine file timestamp"
796796 msgstr "ne eblis determini la dosieran tempomarkon"
797797
798−#: macro.c:546
798+#: macro.c:548
799799 msgid "could not determine date and time"
800800 msgstr "ne eblis determini la daton kaj horon"
801801
802−#: macro.c:562
802+#: macro.c:564
803803 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
804804 msgstr "__COUNTER__ estas etendigata interne de instrukcio per -fdirectives-only"
805805
806−#: macro.c:758
806+#: macro.c:760
807807 msgid "invalid string literal, ignoring final '\\'"
808808 msgstr "malvalida ĉena literaĵo, ni preterpasas finan '\\'"
809809
810−#: macro.c:820
810+#: macro.c:822
811811 #, c-format
812812 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
813813 msgstr "algluo de \"%s\" kaj \"%s\" ne rezultas en valida antaŭproceza ĵetono"
814814
815−#: macro.c:946
815+#: macro.c:948
816816 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
817817 msgstr "ISO C++11 postulas minimume unu argumenton por la \"...\" en variebl-argumenta makroo"
818818
819−#: macro.c:950
819+#: macro.c:952
820820 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
821821 msgstr "ISO C99 postulas minimume unu argumenton por la \"...\" en variebl-argumenta makroo"
822822
823−#: macro.c:957
823+#: macro.c:959
824824 #, c-format
825825 msgid "macro \"%s\" requires %u arguments, but only %u given"
826826 msgstr "la makroo \"%s\" postulas %u argumentojn, sed nur %u estis indikataj"
827827
828−#: macro.c:962
828+#: macro.c:964
829829 #, c-format
830830 msgid "macro \"%s\" passed %u arguments, but takes just %u"
831831 msgstr "la makroo \"%s\" pasis %u argumentojn, sed ĝi prenas nur %u"
832832
833−#: macro.c:1156 traditional.c:819
833+#: macro.c:1162 traditional.c:827
834834 #, c-format
835835 msgid "unterminated argument list invoking macro \"%s\""
836836 msgstr "nefinigita argumentlisto alvokanta la makroon \"%s\""
837837
838−#: macro.c:1307
838+#: macro.c:1304
839839 #, c-format
840840 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
841841 msgstr "funkci-simila makroo \"%s\" devas esti uzata kun argumentoj laŭ tradicia C"
842842
843−#: macro.c:2003
843+#: macro.c:2083
844844 #, c-format
845845 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
846846 msgstr "alvoko de makroo %s, argumento %d: malplenaj makro-argumentoj estas nedifinitaj en ISO C++98"
847847
848−#: macro.c:2011 macro.c:2020
848+#: macro.c:2091 macro.c:2100
849849 #, c-format
850850 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
851851 msgstr "alvoko de makroo %s, argumento %d: malplenaj makro-argumentoj estas nedifinitaj en ISO C90"
852852
853−#: macro.c:2984
853+#: macro.c:3059
854854 #, c-format
855855 msgid "duplicate macro parameter \"%s\""
856856 msgstr "duobligata makro-parametro \"%s\""
857857
858−#: macro.c:3033
858+#: macro.c:3141
859+#, c-format
860+msgid "expected parameter name, found \"%s\""
861+msgstr "atendinte parametran nomon, ni trovis \"%s\""
862+
863+#: macro.c:3142
859864 #, c-format
860−msgid "\"%s\" may not appear in macro parameter list"
861−msgstr "\"%s\" ne povas aperi en makroa parametro-listo"
865+msgid "expected ',' or ')', found \"%s\""
866+msgstr "atendinte ',' aŭ ')', ni trovis \"%s\""
862867
863−#: macro.c:3041
864−msgid "macro parameters must be comma-separated"
865−msgstr "makro-parametroj devas esti apartitaj per komoj"
868+#: macro.c:3143
869+msgid "expected parameter name before end of line"
870+msgstr "ni atendis parametran nomon antaŭ lini-fino"
866871
867−#: macro.c:3060
868−msgid "parameter name missing"
869−msgstr "mankas parametra nomo"
872+#: macro.c:3144
873+msgid "expected ')' before end of line"
874+msgstr "ni atendis ')' antaŭ lini-fino"
870875
871−#: macro.c:3081
876+#: macro.c:3145
877+msgid "expected ')' after \"...\""
878+msgstr "ni atendis ')' post \"...\""
879+
880+#: macro.c:3202
872881 msgid "anonymous variadic macros were introduced in C++11"
873882 msgstr "sennomaj variebl-argumentaj makrooj estis enkondukataj en C++11"
874883
875−#: macro.c:3085 macro.c:3090
884+#: macro.c:3203 macro.c:3207
876885 msgid "anonymous variadic macros were introduced in C99"
877886 msgstr "sennomaj variebl-argumentaj makrooj estis enkondukataj en C99"
878887
879−#: macro.c:3097
888+#: macro.c:3213
880889 msgid "ISO C++ does not permit named variadic macros"
881890 msgstr "ISO C++ ne permesas nomitajn variebl-argumentajn makroojn"
882891
883−#: macro.c:3100
892+#: macro.c:3214
884893 msgid "ISO C does not permit named variadic macros"
885894 msgstr "ISO C ne permesas nomitajn variebl-argumentajn makroojn"
886895
887−#: macro.c:3110
888−msgid "missing ')' in macro parameter list"
889−msgstr "mankas ')' en makroa parametro-listo"
890−
891−#: macro.c:3161
896+#: macro.c:3260
892897 msgid "'##' cannot appear at either end of a macro expansion"
893898 msgstr "'##' ne povas aperi ĉe iu ajn flanko de makroa disvolviĝo"
894899
895−#: macro.c:3198
900+#: macro.c:3298
896901 msgid "ISO C++11 requires whitespace after the macro name"
897902 msgstr "ISO C++11 postulas blankspacon post la makroa nomo"
898903
899−#: macro.c:3201
904+#: macro.c:3299
900905 msgid "ISO C99 requires whitespace after the macro name"
901906 msgstr "ISO C99 postulas blankspacon post la makroa nomo"
902907
903−#: macro.c:3226
908+#: macro.c:3323
904909 msgid "missing whitespace after the macro name"
905910 msgstr "mankas blankspacon post la makroa nomo"
906911
907−#: macro.c:3263
912+#: macro.c:3373
908913 msgid "'#' is not followed by a macro parameter"
909914 msgstr "'#' ne estas sekvata de makroa parametro"
910915
911−#: macro.c:3430
916+#: macro.c:3524
912917 #, c-format
913918 msgid "\"%s\" redefined"
914919 msgstr "\"%s\" estas redifinita"
915920
916−#: macro.c:3435
921+#: macro.c:3529
917922 msgid "this is the location of the previous definition"
918923 msgstr "tiu ĉi estas la loko de la antaŭa difino"
919924
920−#: macro.c:3496
925+#: macro.c:3633
921926 #, c-format
922927 msgid "macro argument \"%s\" would be stringified in traditional C"
923928 msgstr "makroa argumento \"%s\" devus esti ĉenigita laŭ tradicia C"
924929
925−#: macro.c:3532
926−#, c-format
927−msgid "invalid hash type %d in cpp_macro_definition"
928−msgstr "malvalida haketa tipo %d en cpp_macro_definition"
929−
930−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
930+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
931931 msgid "while writing precompiled header"
932932 msgstr "dum skribo de antaŭkompilita kapo"
933933
934−#: pch.c:621
934+#: pch.c:616
935935 #, c-format
936936 msgid "%s: not used because `%.*s' is poisoned"
937937 msgstr "%s: ne uzata ĉar '%.*s' estas venenita"
938938
939−#: pch.c:643
939+#: pch.c:638
940940 #, c-format
941941 msgid "%s: not used because `%.*s' not defined"
942942 msgstr "%s: ne uzata ĉar '%.*s' ne estas difinita"
943943
944−#: pch.c:655
944+#: pch.c:650
945945 #, c-format
946946 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
947947 msgstr "%s: ne uzata ĉar '%.*s' estas difinita kiel '%s', ne '%.*s'"
948948
949−#: pch.c:696
949+#: pch.c:691
950950 #, c-format
951951 msgid "%s: not used because `%s' is defined"
952952 msgstr "%s: ne uzata ĉar '%s' estas difinita"
953953
954−#: pch.c:716
954+#: pch.c:711
955955 #, c-format
956956 msgid "%s: not used because `__COUNTER__' is invalid"
957957 msgstr "%s: ne uzata ĉar '__COUNTER__' estas malvalida"
958958
959−#: pch.c:725 pch.c:903
959+#: pch.c:720 pch.c:878
960960 msgid "while reading precompiled header"
961961 msgstr "dum lego de antaŭkompilita kapo"
962962
963−#: traditional.c:889
963+#: traditional.c:896
964964 #, c-format
965965 msgid "detected recursion whilst expanding macro \"%s\""
966966 msgstr "estis detektata rekursigo dum etendigo de la makroo \"%s\""
967967
968−#: traditional.c:1108
968+#: traditional.c:1119
969969 msgid "syntax error in macro parameter list"
970970 msgstr "sintaksa eraro en makroa parametro-listo"
971971
972+#~ msgid "\"%s\" may not appear in macro parameter list"
973+#~ msgstr "\"%s\" ne povas aperi en makroa parametro-listo"
974+
975+#~ msgid "macro parameters must be comma-separated"
976+#~ msgstr "makro-parametroj devas esti apartitaj per komoj"
977+
978+#~ msgid "parameter name missing"
979+#~ msgstr "mankas parametra nomo"
980+
981+#~ msgid "missing ')' in macro parameter list"
982+#~ msgstr "mankas ')' en makroa parametro-listo"
983+
984+#~ msgid "invalid hash type %d in cpp_macro_definition"
985+#~ msgstr "malvalida haketa tipo %d en cpp_macro_definition"
986+
972987 #~ msgid "NULL directory in find_file"
973988 #~ msgstr "NULL-dosierujo en find_file"
974989
gcc/libcpp/po/es.gmo+0−0

Binary file not shown.

gcc/libcpp/po/es.po+182−165
@@ -7,7 +7,7 @@ msgid "" · 6 unmodified lines
77 msgstr ""
88 "Project-Id-Version: cpplib 8.1-b20180128\n"
99 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
10−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
10+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1111 "PO-Revision-Date: 2018-03-23 19:16+0100\n"
1212 "Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n"
1313 "Language-Team: Spanish <es@tp.org.es>\n"
@@ -87,7 +87,7 @@ msgstr "el carácter universal %.*s no es válido en un identificador" · 73 unmodified lines
8787 msgid "universal character %.*s is not valid at the start of an identifier"
8888 msgstr "el carácter universal %.*s no es válido al inicio de un identificador"
8989
90−#: charset.c:1181 charset.c:2000
90+#: charset.c:1181 charset.c:2002
9191 msgid "converting UCN to source character set"
9292 msgstr "convirtiendo un NUC al conjunto de caracteres fuente"
9393
@@ -138,294 +138,294 @@ msgstr "convirtiendo una secuencia de escape al conjunto de caracteres de ejecuc · 44 unmodified lines
138138 msgid "missing open quote"
139139 msgstr "falta comilla abierta"
140140
141−#: charset.c:1827 charset.c:1891
141+#: charset.c:1829 charset.c:1893
142142 msgid "character constant too long for its type"
143143 msgstr "constante de carácter demasiado grande para su tipo"
144144
145−#: charset.c:1830
145+#: charset.c:1832
146146 msgid "multi-character character constant"
147147 msgstr "constante de carácter con múltiples caracteres"
148148
149−#: charset.c:1931
149+#: charset.c:1933
150150 msgid "empty character constant"
151151 msgstr "constante de carácter vacía"
152152
153−#: charset.c:2047
153+#: charset.c:2049
154154 #, c-format
155155 msgid "failure to convert %s to %s"
156156 msgstr "no se puede convertir %s a %s"
157157
158−#: directives.c:235 directives.c:278
158+#: directives.c:229 directives.c:272
159159 #, c-format
160160 msgid "extra tokens at end of #%s directive"
161161 msgstr "elementos extra al final de la directiva #%s"
162162
163−#: directives.c:385
163+#: directives.c:379
164164 #, c-format
165165 msgid "#%s is a GCC extension"
166166 msgstr "#%s es una extensión de GCC"
167167
168−#: directives.c:390
168+#: directives.c:384
169169 #, c-format
170170 msgid "#%s is a deprecated GCC extension"
171171 msgstr "#%s es una extensión de GCC obsoleta"
172172
173−#: directives.c:403
173+#: directives.c:397
174174 msgid "suggest not using #elif in traditional C"
175175 msgstr "se sugiere no usar #elif en C tradicional"
176176
177−#: directives.c:406
177+#: directives.c:400
178178 #, c-format
179179 msgid "traditional C ignores #%s with the # indented"
180180 msgstr "C tradicional ignora #%s con el # indentado"
181181
182−#: directives.c:410
182+#: directives.c:404
183183 #, c-format
184184 msgid "suggest hiding #%s from traditional C with an indented #"
185185 msgstr "se sugiere ocultar #%s de C tradicional con un # indentado"
186186
187−#: directives.c:436
187+#: directives.c:430
188188 msgid "embedding a directive within macro arguments is not portable"
189189 msgstr "imbuir una directiva dentro de los argumentos de una macro no es transportable"
190190
191−#: directives.c:456
191+#: directives.c:450
192192 msgid "style of line directive is a GCC extension"
193193 msgstr "la directiva de estilo de línea es una extensión de GCC"
194194
195−#: directives.c:537
195+#: directives.c:531
196196 #, c-format
197197 msgid "invalid preprocessing directive #%s"
198198 msgstr "directiva de preprocesamiento #%s inválida"
199199
200−#: directives.c:606
200+#: directives.c:600
201201 msgid "\"defined\" cannot be used as a macro name"
202202 msgstr "«defined» no se puede utilizarse como un nombre de macro"
203203
204−#: directives.c:611
204+#: directives.c:605
205205 msgid "\"__has_include__\" cannot be used as a macro name"
206206 msgstr "\"__has_include__\" no puede ser usado como un nombre de macro"
207207
208−#: directives.c:617
208+#: directives.c:611
209209 #, c-format
210210 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
211211 msgstr "no se puede usar «%s» como un nombre de macro porque es un operador en C++"
212212
213−#: directives.c:620
213+#: directives.c:614
214214 #, c-format
215215 msgid "no macro name given in #%s directive"
216216 msgstr "no se dio un nombre de macro en la directiva #%s"
217217
218−#: directives.c:623
218+#: directives.c:617
219219 msgid "macro names must be identifiers"
220220 msgstr "los nombres de macro deben ser identificadores"
221221
222−#: directives.c:672 directives.c:677
222+#: directives.c:666 directives.c:671
223223 #, c-format
224224 msgid "undefining \"%s\""
225225 msgstr "borrando la definición de «%s»"
226226
227−#: directives.c:732
227+#: directives.c:727
228228 msgid "missing terminating > character"
229229 msgstr "falta el carácter de terminación >"
230230
231−#: directives.c:791
231+#: directives.c:786
232232 #, c-format
233233 msgid "#%s expects \"FILENAME\" or <FILENAME>"
234234 msgstr "#%s espera «NOMBREFICHERO» o <NOMBREFICHERO>"
235235
236−#: directives.c:837
236+#: directives.c:828
237237 #, c-format
238238 msgid "empty filename in #%s"
239239 msgstr "nombre de fichero vacío en #%s"
240240
241−#: directives.c:847
241+#: directives.c:835
242242 msgid "#include nested too deeply"
243243 msgstr "#include anidado con demasiada profundidad"
244244
245−#: directives.c:888
245+#: directives.c:877
246246 msgid "#include_next in primary source file"
247247 msgstr "#include_next en fichero primario de código fuente"
248248
249−#: directives.c:914
249+#: directives.c:903
250250 #, c-format
251251 msgid "invalid flag \"%s\" in line directive"
252252 msgstr "indicador «%s» inválido en la línea de la directiva"
253253
254−#: directives.c:974
254+#: directives.c:963
255255 msgid "unexpected end of file after #line"
256256 msgstr "fin de fichero inesperado después de #line"
257257
258−#: directives.c:977
258+#: directives.c:966
259259 #, c-format
260260 msgid "\"%s\" after #line is not a positive integer"
261261 msgstr "«%s» después de #line no es un entero positivo"
262262
263−#: directives.c:983 directives.c:985
263+#: directives.c:972 directives.c:974
264264 msgid "line number out of range"
265265 msgstr "número de línea fuera de rango"
266266
267−#: directives.c:998 directives.c:1079
267+#: directives.c:987 directives.c:1068
268268 #, c-format
269269 msgid "\"%s\" is not a valid filename"
270270 msgstr "«%s» no es un nombre de fichero válido"
271271
272−#: directives.c:1039
272+#: directives.c:1028
273273 #, c-format
274274 msgid "\"%s\" after # is not a positive integer"
275275 msgstr "«%s» después de # no es un entero positivo"
276276
277−#: directives.c:1098
277+#: directives.c:1087
278278 #, c-format
279279 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
280280 msgstr "marca lineal de fichero «%s» ignorada debido a anidación incorrecta"
281281
282−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
282+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
283283 #, c-format
284284 msgid "%s"
285285 msgstr "%s"
286286
287−#: directives.c:1185
287+#: directives.c:1175
288288 #, c-format
289289 msgid "invalid #%s directive"
290290 msgstr "directiva #%s inválida"
291291
292−#: directives.c:1248
292+#: directives.c:1238
293293 #, c-format
294294 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
295295 msgstr "se registran pragmas en el espacio de nombres «%s» con una expansión de nombre que no coincide"
296296
297−#: directives.c:1257
297+#: directives.c:1247
298298 #, c-format
299299 msgid "registering pragma \"%s\" with name expansion and no namespace"
300300 msgstr "se registra el pragma «%s» con expansión de nombre y sin un espacio de nombres"
301301
302−#: directives.c:1275
302+#: directives.c:1265
303303 #, c-format
304304 msgid "registering \"%s\" as both a pragma and a pragma namespace"
305305 msgstr "se registra «%s» como un pragma y como un espacio de nombres de pragma"
306306
307−#: directives.c:1278
307+#: directives.c:1268
308308 #, c-format
309309 msgid "#pragma %s %s is already registered"
310310 msgstr "#pragma %s %s ya está registrado"
311311
312−#: directives.c:1281
312+#: directives.c:1271
313313 #, c-format
314314 msgid "#pragma %s is already registered"
315315 msgstr "#pragma %s ya está registrado"
316316
317−#: directives.c:1311
317+#: directives.c:1301
318318 msgid "registering pragma with NULL handler"
319319 msgstr "se registra un pragma con manejador NULL"
320320
321−#: directives.c:1528
321+#: directives.c:1518
322322 msgid "#pragma once in main file"
323323 msgstr "#pragma una vez en el fichero principal"
324324
325−#: directives.c:1551
325+#: directives.c:1541
326326 msgid "invalid #pragma push_macro directive"
327327 msgstr "directiva #pragma push_macro inválida"
328328
329−#: directives.c:1606
329+#: directives.c:1596
330330 msgid "invalid #pragma pop_macro directive"
331331 msgstr "directiva #pragma pop_macro inválida"
332332
333−#: directives.c:1661
333+#: directives.c:1651
334334 msgid "invalid #pragma GCC poison directive"
335335 msgstr "directiva #pragma de GCC envenenada inválida"
336336
337−#: directives.c:1670
337+#: directives.c:1660
338338 #, c-format
339339 msgid "poisoning existing macro \"%s\""
340340 msgstr "se envenena la macro existente «%s»"
341341
342−#: directives.c:1689
342+#: directives.c:1679
343343 msgid "#pragma system_header ignored outside include file"
344344 msgstr "#pragma system_header ignorado fuera del fichero a incluir"
345345
346−#: directives.c:1714
346+#: directives.c:1704
347347 #, c-format
348348 msgid "cannot find source file %s"
349349 msgstr "no se puede encontrar el fichero fuente %s"
350350
351−#: directives.c:1718
351+#: directives.c:1708
352352 #, c-format
353353 msgid "current file is older than %s"
354354 msgstr "el fichero actual es más antiguo que %s"
355355
356−#: directives.c:1742
356+#: directives.c:1732
357357 #, c-format
358358 msgid "invalid \"#pragma GCC %s\" directive"
359359 msgstr "directiva \"#pragma GCC %s\" inválida"
360360
361−#: directives.c:1943
361+#: directives.c:1933
362362 msgid "_Pragma takes a parenthesized string literal"
363363 msgstr "_Pragma lleva una cadena literal entre paréntesis"
364364
365−#: directives.c:2064
365+#: directives.c:2021
366366 msgid "#else without #if"
367367 msgstr "#else sin #if"
368368
369−#: directives.c:2069
369+#: directives.c:2026
370370 msgid "#else after #else"
371371 msgstr "#else tras #else"
372372
373−#: directives.c:2071 directives.c:2104
373+#: directives.c:2028 directives.c:2061
374374 msgid "the conditional began here"
375375 msgstr "el condicional empezó aquí"
376376
377−#: directives.c:2097
377+#: directives.c:2054
378378 msgid "#elif without #if"
379379 msgstr "#elif sin #if"
380380
381−#: directives.c:2102
381+#: directives.c:2059
382382 msgid "#elif after #else"
383383 msgstr "#elif después de #else"
384384
385−#: directives.c:2133
385+#: directives.c:2090
386386 msgid "#endif without #if"
387387 msgstr "#endif sin #if"
388388
389−#: directives.c:2213
389+#: directives.c:2166
390390 msgid "missing '(' after predicate"
391391 msgstr "falta '(' antes del predicado"
392392
393−#: directives.c:2228
393+#: directives.c:2184
394394 msgid "missing ')' to complete answer"
395395 msgstr "falta ')' para completar la respuesta"
396396
397−#: directives.c:2248
397+#: directives.c:2196
398398 msgid "predicate's answer is empty"
399399 msgstr "la respuesta del predicado está vacía"
400400
401−#: directives.c:2275
401+#: directives.c:2226
402402 msgid "assertion without predicate"
403403 msgstr "afirmación sin predicado"
404404
405−#: directives.c:2278
405+#: directives.c:2229
406406 msgid "predicate must be an identifier"
407407 msgstr "el predicado debe ser un identificador"
408408
409−#: directives.c:2364
409+#: directives.c:2311
410410 #, c-format
411411 msgid "\"%s\" re-asserted"
412412 msgstr "«%s» reafirmado"
413413
414−#: directives.c:2656
414+#: directives.c:2587
415415 #, c-format
416416 msgid "unterminated #%s"
417417 msgstr "#%s sin terminar"
418418
419−#: directives-only.c:221 lex.c:2851 traditional.c:167
419+#: directives-only.c:221 lex.c:2862 traditional.c:175
420420 msgid "unterminated comment"
421421 msgstr "comentario sin terminar"
422422
423−#: errors.c:284
423+#: errors.c:291
424424 #, c-format
425425 msgid "%s: %s"
426426 msgstr "%s: %s"
427427
428−#: errors.c:296
428+#: errors.c:304
429429 msgid "stdout"
430430 msgstr "salida estándard"
431431
@@ -518,84 +518,84 @@ msgstr "(«%s» es una marca alternativa para «%s» en C++)" · 86 unmodified lines
518518 msgid "this use of \"defined\" may not be portable"
519519 msgstr "este uso de \"defined\" puede no ser transportable"
520520
521−#: expr.c:1125
521+#: expr.c:1109
522522 msgid "user-defined literal in preprocessor expression"
523523 msgstr "literal definida por el usuario en una expresión del preprocesador"
524524
525−#: expr.c:1130
525+#: expr.c:1114
526526 msgid "floating constant in preprocessor expression"
527527 msgstr "constante de coma flotante en una expresión del preprocesador"
528528
529−#: expr.c:1136
529+#: expr.c:1120
530530 msgid "imaginary number in preprocessor expression"
531531 msgstr "número imaginario en una expresión del preprocesador"
532532
533−#: expr.c:1189
533+#: expr.c:1173
534534 #, c-format
535535 msgid "\"%s\" is not defined, evaluates to 0"
536536 msgstr "«%s» no está definido, evalúa a 0"
537537
538−#: expr.c:1202
538+#: expr.c:1186
539539 msgid "assertions are a GCC extension"
540540 msgstr "las aserciones son una extensión GCC"
541541
542−#: expr.c:1205
542+#: expr.c:1189
543543 msgid "assertions are a deprecated extension"
544544 msgstr "las aserciones son una extensión obsoleta"
545545
546−#: expr.c:1451
546+#: expr.c:1435
547547 #, c-format
548548 msgid "unbalanced stack in %s"
549549 msgstr "pila desbalanceada en %s"
550550
551−#: expr.c:1471
551+#: expr.c:1455
552552 #, c-format
553553 msgid "impossible operator '%u'"
554554 msgstr "operador '%u' imposible"
555555
556−#: expr.c:1572
556+#: expr.c:1556
557557 msgid "missing ')' in expression"
558558 msgstr "falta ')' en la expresión"
559559
560−#: expr.c:1601
560+#: expr.c:1585
561561 msgid "'?' without following ':'"
562562 msgstr "'?' sin ':' a continuación"
563563
564−#: expr.c:1611
564+#: expr.c:1595
565565 msgid "integer overflow in preprocessor expression"
566566 msgstr "desbordamiento entero en expresión del preprocesador"
567567
568−#: expr.c:1616
568+#: expr.c:1600
569569 msgid "missing '(' in expression"
570570 msgstr "falta '(' en la expresión"
571571
572−#: expr.c:1648
572+#: expr.c:1632
573573 #, c-format
574574 msgid "the left operand of \"%s\" changes sign when promoted"
575575 msgstr "el operando izquierdo de «%s» cambia de signo cuando es promovido"
576576
577−#: expr.c:1653
577+#: expr.c:1637
578578 #, c-format
579579 msgid "the right operand of \"%s\" changes sign when promoted"
580580 msgstr "el operando derecho de «%s» cambia de signo cuando es promovido"
581581
582−#: expr.c:1912
582+#: expr.c:1896
583583 msgid "traditional C rejects the unary plus operator"
584584 msgstr "C tradicional rechaza el operador unario mas"
585585
586−#: expr.c:2010
586+#: expr.c:1994
587587 msgid "comma operator in operand of #if"
588588 msgstr "operador coma en operando de #if"
589589
590−#: expr.c:2146
590+#: expr.c:2130
591591 msgid "division by zero in #if"
592592 msgstr "división por cero en #if"
593593
594−#: expr.c:2243
594+#: expr.c:2227
595595 msgid "operator \"__has_include__\" requires a header string"
596596 msgstr "el operador \"__has_include__\" requiere una cadena cabecera"
597597
598−#: expr.c:2259
598+#: expr.c:2243
599599 msgid "missing ')' after \"__has_include__\""
600600 msgstr "falta ')' tras \"__has_include__\""
601601
@@ -612,40 +612,40 @@ msgstr "use -Winvalid-pch para más información" · 10 unmodified lines
612612 msgid "no include path in which to search for %s"
613613 msgstr "no hay ruta de inclusión en la cual se pueda buscar %s"
614614
615−#: files.c:1441
615+#: files.c:1455
616616 msgid "Multiple include guards may be useful for:\n"
617617 msgstr "Guardias múltiples de include pueden ser útiles para:\n"
618618
619−#: init.c:565
619+#: init.c:569
620620 msgid "cppchar_t must be an unsigned type"
621621 msgstr "cppchar_t debe ser de un tipo unsigned"
622622
623−#: init.c:569
623+#: init.c:573
624624 #, c-format
625625 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
626626 msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bits; el objetivo requiere de %lu bits"
627627
628−#: init.c:576
628+#: init.c:580
629629 msgid "CPP arithmetic must be at least as precise as a target int"
630630 msgstr "la aritmética de CPP debe se al menos tan precisa como un int del objetivo"
631631
632−#: init.c:579
632+#: init.c:583
633633 msgid "target char is less than 8 bits wide"
634634 msgstr "el char del objetivo tiene menos de 8 bits de ancho"
635635
636−#: init.c:583
636+#: init.c:587
637637 msgid "target wchar_t is narrower than target char"
638638 msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo"
639639
640−#: init.c:587
640+#: init.c:591
641641 msgid "target int is narrower than target char"
642642 msgstr "el int del objetivo es más estrecho que el char del objetivo"
643643
644−#: init.c:592
644+#: init.c:596
645645 msgid "CPP half-integer narrower than CPP character"
646646 msgstr "el medio-entero de CPP es más estrecho que el carácter de CPP"
647647
648−#: init.c:596
648+#: init.c:600
649649 #, c-format
650650 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
651651 msgstr "CPP no puede manejar constantes de carácter anchas más allá de %lu bits en este objetivo, pero el objetivo requiere %lu bits"
@@ -717,258 +717,275 @@ msgstr "__VA_ARGS__ solamente puede aparecer en la expansión de una macro varia · 65 unmodified lines
717717 msgid "identifier \"%s\" is a special operator name in C++"
718718 msgstr "el identificador «%s» es un nombre de operador especial en C++"
719719
720−#: lex.c:1811
720+#: lex.c:1826
721721 msgid "raw string delimiter longer than 16 characters"
722722 msgstr "el delimitador de cadena cruda es más largo que 16 caracteres"
723723
724−#: lex.c:1815
724+#: lex.c:1830
725725 msgid "invalid new-line in raw string delimiter"
726726 msgstr "carácter inválido nueva línea en un delimitador de cadena cruda"
727727
728−#: lex.c:1819
728+#: lex.c:1834
729729 #, c-format
730730 msgid "invalid character '%c' in raw string delimiter"
731731 msgstr "carácter inválido '%c' en un delimitador de cadena cruda"
732732
733−#: lex.c:1868 lex.c:1890
733+#: lex.c:1883 lex.c:1905
734734 msgid "unterminated raw string"
735735 msgstr "cadena cruda sin terminar"
736736
737−#: lex.c:1912 lex.c:2043
737+#: lex.c:1925 lex.c:2054
738738 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
739739 msgstr "sufijo inválido en literal; C++11 requiere un espacio entre literal y cadena macro"
740740
741−#: lex.c:2024
741+#: lex.c:2037
742742 msgid "null character(s) preserved in literal"
743743 msgstr "caracter(es) nulo(s) preservados en la literal"
744744
745−#: lex.c:2027
745+#: lex.c:2040
746746 #, c-format
747747 msgid "missing terminating %c character"
748748 msgstr "falta el carácter de terminación %c"
749749
750−#: lex.c:2061
750+#: lex.c:2072
751751 msgid "C++11 requires a space between string literal and macro"
752752 msgstr "C++11 requiere un espacio entre cadena literal y macro"
753753
754−#: lex.c:2865 lex.c:2899
754+#: lex.c:2876 lex.c:2910
755755 msgid "C++ style comments are not allowed in ISO C90"
756756 msgstr "los comentarios de estilo C++ no se permiten en ISO C90"
757757
758−#: lex.c:2867 lex.c:2878 lex.c:2901
758+#: lex.c:2878 lex.c:2889 lex.c:2913
759759 msgid "(this will be reported only once per input file)"
760760 msgstr "(esto se reportará solamente una vez por cada fichero de entrada)"
761761
762−#: lex.c:2876
762+#: lex.c:2887
763763 msgid "C++ style comments are incompatible with C90"
764764 msgstr "los comentarios de estilo C++ son incompatibles con C90"
765765
766−#: lex.c:2907
766+#: lex.c:2919
767767 msgid "multi-line comment"
768768 msgstr "comentario en múltiples líneas"
769769
770−#: lex.c:3287
770+#: lex.c:3299
771771 #, c-format
772772 msgid "unspellable token %s"
773773 msgstr "elemento %s impronunciable"
774774
775−#: macro.c:93
775+#: macro.c:94
776776 msgid "'##' cannot appear at either end of __VA_OPT__"
777777 msgstr "'##' no puede aparecer o en el final de una __VA_OPT__"
778778
779−#: macro.c:352
779+#: macro.c:354
780780 #, c-format
781781 msgid "macro \"%s\" is not used"
782782 msgstr "la macro «%s» no se utiliza"
783783
784−#: macro.c:391 macro.c:639
784+#: macro.c:393 macro.c:641
785785 #, c-format
786786 msgid "invalid built-in macro \"%s\""
787787 msgstr "macro interna «%s» inválida"
788788
789−#: macro.c:398 macro.c:500
789+#: macro.c:400 macro.c:502
790790 #, c-format
791791 msgid "macro \"%s\" might prevent reproducible builds"
792792 msgstr "macro «%s» quizá previene compilaciones reproducibles"
793793
794−#: macro.c:429
794+#: macro.c:431
795795 msgid "could not determine file timestamp"
796796 msgstr "no se puede determinar la marca de fecha del fichero"
797797
798−#: macro.c:546
798+#: macro.c:548
799799 msgid "could not determine date and time"
800800 msgstr "no se puede determinar la fecha y la hora"
801801
802−#: macro.c:562
802+#: macro.c:564
803803 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
804804 msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only"
805805
806−#: macro.c:758
806+#: macro.c:760
807807 msgid "invalid string literal, ignoring final '\\'"
808808 msgstr "cadena literal inválida, se ignora el '\\' final"
809809
810−#: macro.c:820
810+#: macro.c:822
811811 #, c-format
812812 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
813813 msgstr "pegar «%s» y «%s» no da un elemento válido de preprocesamiento"
814814
815−#: macro.c:946
815+#: macro.c:948
816816 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
817817 msgstr "ISO C++ requiere al menos un argumento: para la \"...\" en una macro variadic"
818818
819−#: macro.c:950
819+#: macro.c:952
820820 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
821821 msgstr "ISO C99 requiere al menos un argumento para la \"...\" en una macro variadic"
822822
823−#: macro.c:957
823+#: macro.c:959
824824 #, c-format
825825 msgid "macro \"%s\" requires %u arguments, but only %u given"
826826 msgstr "la macro «%s» requiere %u argumentos, pero solo se proporcionan %u"
827827
828−#: macro.c:962
828+#: macro.c:964
829829 #, c-format
830830 msgid "macro \"%s\" passed %u arguments, but takes just %u"
831831 msgstr "la macro «%s» pasó %u argumentos, pero solamente toma %u"
832832
833−#: macro.c:1156 traditional.c:819
833+#: macro.c:1162 traditional.c:827
834834 #, c-format
835835 msgid "unterminated argument list invoking macro \"%s\""
836836 msgstr "lista de argumentos sin terminar al invocar la macro «%s»"
837837
838−#: macro.c:1307
838+#: macro.c:1304
839839 #, c-format
840840 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
841841 msgstr "la función de macro «%s» se debe usar con argumentos en C tradicional"
842842
843−#: macro.c:2003
843+#: macro.c:2083
844844 #, c-format
845845 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
846846 msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos están indefinidos en ISO C++98"
847847
848−#: macro.c:2011 macro.c:2020
848+#: macro.c:2091 macro.c:2100
849849 #, c-format
850850 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
851851 msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos están indefinidos en ISO C90"
852852
853−#: macro.c:2984
853+#: macro.c:3059
854854 #, c-format
855855 msgid "duplicate macro parameter \"%s\""
856856 msgstr "parámetro de macro «%s» duplicado"
857857
858−#: macro.c:3033
858+#: macro.c:3141
859859 #, c-format
860−msgid "\"%s\" may not appear in macro parameter list"
861−msgstr "«%s» podría faltar en la lista de parámetro de macro"
860+msgid "expected parameter name, found \"%s\""
861+msgstr ""
862+
863+#: macro.c:3142
864+#, c-format
865+msgid "expected ',' or ')', found \"%s\""
866+msgstr ""
862867
863−#: macro.c:3041
864−msgid "macro parameters must be comma-separated"
865−msgstr "los parámetros de macro deben ser separados por comas"
868+#: macro.c:3143
869+msgid "expected parameter name before end of line"
870+msgstr ""
871+
872+#: macro.c:3144
873+#, fuzzy
874+#| msgid "unexpected end of file after #line"
875+msgid "expected ')' before end of line"
876+msgstr "fin de fichero inesperado después de #line"
866877
867−#: macro.c:3060
868−msgid "parameter name missing"
869−msgstr "falta el nombre del parámetro"
878+#: macro.c:3145
879+msgid "expected ')' after \"...\""
880+msgstr ""
870881
871−#: macro.c:3081
882+#: macro.c:3202
872883 msgid "anonymous variadic macros were introduced in C++11"
873884 msgstr "las macros variadic anónimas se introdujeron en C++11"
874885
875−#: macro.c:3085 macro.c:3090
886+#: macro.c:3203 macro.c:3207
876887 msgid "anonymous variadic macros were introduced in C99"
877888 msgstr "los macros variadic anónimos se introdujeron en C99"
878889
879−#: macro.c:3097
890+#: macro.c:3213
880891 msgid "ISO C++ does not permit named variadic macros"
881892 msgstr "ISO C++ no permite macros variadic nombrados"
882893
883−#: macro.c:3100
894+#: macro.c:3214
884895 msgid "ISO C does not permit named variadic macros"
885896 msgstr "ISO C no permite macros variadic nombrados"
886897
887−#: macro.c:3110
888−msgid "missing ')' in macro parameter list"
889−msgstr "falta ')' en la lista de parámetros de macro"
890−
891−#: macro.c:3161
898+#: macro.c:3260
892899 msgid "'##' cannot appear at either end of a macro expansion"
893900 msgstr "'##' no puede aparece en o al final de una expansión de macro"
894901
895−#: macro.c:3198
902+#: macro.c:3298
896903 msgid "ISO C++11 requires whitespace after the macro name"
897904 msgstr "ISO C++11 requiere espacios en blanco tras del nombre de macro"
898905
899−#: macro.c:3201
906+#: macro.c:3299
900907 msgid "ISO C99 requires whitespace after the macro name"
901908 msgstr "ISO C99 requiere espacios en blanco después del nombre de macro"
902909
903−#: macro.c:3226
910+#: macro.c:3323
904911 msgid "missing whitespace after the macro name"
905912 msgstr "faltan espacios en blanco después del nombre de macro"
906913
907−#: macro.c:3263
914+#: macro.c:3373
908915 msgid "'#' is not followed by a macro parameter"
909916 msgstr "'#' no es seguido por un parámetro de macro"
910917
911−#: macro.c:3430
918+#: macro.c:3524
912919 #, c-format
913920 msgid "\"%s\" redefined"
914921 msgstr "«%s» redefinido"
915922
916−#: macro.c:3435
923+#: macro.c:3529
917924 msgid "this is the location of the previous definition"
918925 msgstr "esta es la ubicación de la definición previa"
919926
920−#: macro.c:3496
927+#: macro.c:3633
921928 #, c-format
922929 msgid "macro argument \"%s\" would be stringified in traditional C"
923930 msgstr "el argumento de macro «%s» debería ser convertido a cadena en C tradicional"
924931
925−#: macro.c:3532
926−#, c-format
927−msgid "invalid hash type %d in cpp_macro_definition"
928−msgstr "tipo de hash %d inválido en cpp_macro_definition"
929−
930−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
932+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
931933 msgid "while writing precompiled header"
932934 msgstr "al escribir el encabezado precompilado"
933935
934−#: pch.c:621
936+#: pch.c:616
935937 #, c-format
936938 msgid "%s: not used because `%.*s' is poisoned"
937939 msgstr "%s: no se usa porque `%.*s' está envenenado"
938940
939−#: pch.c:643
941+#: pch.c:638
940942 #, c-format
941943 msgid "%s: not used because `%.*s' not defined"
942944 msgstr "%s: no se usa porque `%.*s' no está definido"
943945
944−#: pch.c:655
946+#: pch.c:650
945947 #, c-format
946948 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
947949 msgstr "%s: no se usa porque `%.*s' está definido como `%s' no como `%.*s'"
948950
949−#: pch.c:696
951+#: pch.c:691
950952 #, c-format
951953 msgid "%s: not used because `%s' is defined"
952954 msgstr "%s: no se usa porque `%s' está definido"
953955
954−#: pch.c:716
956+#: pch.c:711
955957 #, c-format
956958 msgid "%s: not used because `__COUNTER__' is invalid"
957959 msgstr "%s: no se usa porque `__COUNTER__' es inválido"
958960
959−#: pch.c:725 pch.c:903
961+#: pch.c:720 pch.c:878
960962 msgid "while reading precompiled header"
961963 msgstr "al leer el encabezado precompilado"
962964
963−#: traditional.c:889
965+#: traditional.c:896
964966 #, c-format
965967 msgid "detected recursion whilst expanding macro \"%s\""
966968 msgstr "se detectó recursión al expandir la macro «%s»"
967969
968−#: traditional.c:1108
970+#: traditional.c:1119
969971 msgid "syntax error in macro parameter list"
970972 msgstr "error de sintaxis en la lista de parámetros de macro"
971973
974+#~ msgid "\"%s\" may not appear in macro parameter list"
975+#~ msgstr "«%s» podría faltar en la lista de parámetro de macro"
976+
977+#~ msgid "macro parameters must be comma-separated"
978+#~ msgstr "los parámetros de macro deben ser separados por comas"
979+
980+#~ msgid "parameter name missing"
981+#~ msgstr "falta el nombre del parámetro"
982+
983+#~ msgid "missing ')' in macro parameter list"
984+#~ msgstr "falta ')' en la lista de parámetros de macro"
985+
986+#~ msgid "invalid hash type %d in cpp_macro_definition"
987+#~ msgstr "tipo de hash %d inválido en cpp_macro_definition"
988+
972989 #~ msgid "Character %x might not be NFKC"
973990 #~ msgstr "El carácter %x puede no ser NFKC"
974991
gcc/libcpp/po/fi.gmo+0−0

Binary file not shown.

gcc/libcpp/po/fi.po+185−170
@@ -1,15 +1,15 @@
11 # Finnish messages for cpplib.
2−# Copyright © 2010, 2012, 2013, 2014, 2015, 2016, 2018 Free Software Foundation, Inc.
2+# Copyright © 2010, 2012, 2013, 2014, 2015, 2016, 2018, 2019 Free Software Foundation, Inc.
33 # This file is distributed under the same license as the gcc package.
44 # Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 2012-2015.
5−# Lauri Nurmi <lanurmi@iki.fi>, 2016, 2018.
5+# Lauri Nurmi <lanurmi@iki.fi>, 2016, 2018, 2019.
66 #
77 msgid ""
88 msgstr ""
9−"Project-Id-Version: cpplib 8.1-b20180128\n"
9+"Project-Id-Version: cpplib 9.1-b20190203\n"
1010 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
11−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
12−"PO-Revision-Date: 2018-01-31 01:28+0200\n"
11+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
12+"PO-Revision-Date: 2019-02-05 20:41+0200\n"
1313 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
1414 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
1515 "Language: fi\n"
@@ -18,7 +18,7 @@ msgstr "" · 2 unmodified lines
1818 "Content-Transfer-Encoding: 8bit\n"
1919 "X-Bugs: Report translation errors to the Language-Team address.\n"
2020 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21−"X-Generator: Poedit 2.0.6\n"
21+"X-Generator: Poedit 2.2.1\n"
2222
2323 #: charset.c:674
2424 #, c-format
@@ -90,7 +90,7 @@ msgstr "universaali merkki %.*s ei ole kelvollinen tunniste" · 65 unmodified lines
9090 msgid "universal character %.*s is not valid at the start of an identifier"
9191 msgstr "universaali merkki %.*s ei ole kelvollinen tunnisteen alussa"
9292
93−#: charset.c:1181 charset.c:2000
93+#: charset.c:1181 charset.c:2002
9494 msgid "converting UCN to source character set"
9595 msgstr "muunnetaan UCN lähdemerkistöön"
9696
@@ -141,295 +141,295 @@ msgstr "muunnetaan ohjaussarja suoritusmerkistöön" · 44 unmodified lines
141141 msgid "missing open quote"
142142 msgstr "avautuva sulje puuttuu"
143143
144−#: charset.c:1827 charset.c:1891
144+#: charset.c:1829 charset.c:1893
145145 msgid "character constant too long for its type"
146146 msgstr "merkkivakio on liian pitkä tyypilleen"
147147
148−#: charset.c:1830
148+#: charset.c:1832
149149 msgid "multi-character character constant"
150150 msgstr "monimerkkinen merkkivakio"
151151
152−#: charset.c:1931
152+#: charset.c:1933
153153 msgid "empty character constant"
154154 msgstr "tyhjä merkkivakio"
155155
156−#: charset.c:2047
156+#: charset.c:2049
157157 #, c-format
158158 msgid "failure to convert %s to %s"
159159 msgstr "muunnos %s -> %s epäonnistui"
160160
161−#: directives.c:235 directives.c:278
161+#: directives.c:229 directives.c:272
162162 #, c-format
163163 msgid "extra tokens at end of #%s directive"
164164 msgstr "ylimääräisiä merkkejä #%s-direktiivin lopussa"
165165
166−#: directives.c:385
166+#: directives.c:379
167167 #, c-format
168168 msgid "#%s is a GCC extension"
169169 msgstr "#%s on GCC-laajennos"
170170
171−#: directives.c:390
171+#: directives.c:384
172172 #, c-format
173173 msgid "#%s is a deprecated GCC extension"
174174 msgstr "#%s on vanhentunut GCC-laajennos"
175175
176−#: directives.c:403
176+#: directives.c:397
177177 msgid "suggest not using #elif in traditional C"
178178 msgstr "ehdotetaan #elif:in käytön välttämistä perinteisessä C:ssä"
179179
180−#: directives.c:406
180+#: directives.c:400
181181 #, c-format
182182 msgid "traditional C ignores #%s with the # indented"
183183 msgstr "#%s ohitetaan perinteisessä C:ssä kun # on sisennetty"
184184
185−#: directives.c:410
185+#: directives.c:404
186186 #, c-format
187187 msgid "suggest hiding #%s from traditional C with an indented #"
188188 msgstr "ehdotetaan #%s:n piilottamista perinteiseltä C:ltä sisentämällä #"
189189
190−#: directives.c:436
190+#: directives.c:430
191191 msgid "embedding a directive within macro arguments is not portable"
192192 msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävää"
193193
194−#: directives.c:456
194+#: directives.c:450
195195 msgid "style of line directive is a GCC extension"
196196 msgstr "rividirektiivin tyyli on GCC-laajennos"
197197
198−#: directives.c:537
198+#: directives.c:531
199199 #, c-format
200200 msgid "invalid preprocessing directive #%s"
201201 msgstr "virheellinen esikääntäjän direktiivi #%s"
202202
203−#: directives.c:606
203+#: directives.c:600
204204 msgid "\"defined\" cannot be used as a macro name"
205205 msgstr "”defined” ei ole kelvollinen makron nimi"
206206
207−#: directives.c:611
207+#: directives.c:605
208208 msgid "\"__has_include__\" cannot be used as a macro name"
209209 msgstr "”__has_include__” ei ole kelvollinen makron nimi"
210210
211−#: directives.c:617
211+#: directives.c:611
212212 #, c-format
213213 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
214214 msgstr "”%s” ei ole kelvollinen makron nimi, sillä se on C++:n operaattori"
215215
216−#: directives.c:620
216+#: directives.c:614
217217 #, c-format
218218 msgid "no macro name given in #%s directive"
219219 msgstr "makron nimeä ei ole annettu #%s-direktiivissä"
220220
221−#: directives.c:623
221+#: directives.c:617
222222 msgid "macro names must be identifiers"
223223 msgstr "makrojen nimien on oltava tunnisteita"
224224
225−#: directives.c:672 directives.c:677
225+#: directives.c:666 directives.c:671
226226 #, c-format
227227 msgid "undefining \"%s\""
228228 msgstr "kumotaan määrittely ”%s”"
229229
230−#: directives.c:732
230+#: directives.c:727
231231 msgid "missing terminating > character"
232232 msgstr "päättävä >-merkki puuttuu"
233233
234−#: directives.c:791
234+#: directives.c:786
235235 #, c-format
236236 msgid "#%s expects \"FILENAME\" or <FILENAME>"
237237 msgstr "#%s odottaa argumenttia \"TIEDOSTONIMI\" tai <TIEDOSTONIMI>"
238238
239−#: directives.c:837
239+#: directives.c:828
240240 #, c-format
241241 msgid "empty filename in #%s"
242242 msgstr "tyhjä tiedostonimi direktiivissä #%s"
243243
244−#: directives.c:847
244+#: directives.c:835
245245 msgid "#include nested too deeply"
246246 msgstr "liikaa sisäkkäisiä #include:ja"
247247
248−#: directives.c:888
248+#: directives.c:877
249249 msgid "#include_next in primary source file"
250250 msgstr "#include_next ensisijaisessa lähdetiedostossa"
251251
252−#: directives.c:914
252+#: directives.c:903
253253 #, c-format
254254 msgid "invalid flag \"%s\" in line directive"
255255 msgstr "virheellinen lippu ”%s” rividirektiivissä"
256256
257−#: directives.c:974
257+#: directives.c:963
258258 msgid "unexpected end of file after #line"
259259 msgstr "odottamaton tiedoston loppu #line-direktiivin jälkeen"
260260
261−#: directives.c:977
261+#: directives.c:966
262262 #, c-format
263263 msgid "\"%s\" after #line is not a positive integer"
264264 msgstr "#line:n jälkeinen ”%s” ei ole positiivinen kokonaisluku"
265265
266−#: directives.c:983 directives.c:985
266+#: directives.c:972 directives.c:974
267267 msgid "line number out of range"
268268 msgstr "rivinumero sallitun välin ulkopuolella"
269269
270−#: directives.c:998 directives.c:1079
270+#: directives.c:987 directives.c:1068
271271 #, c-format
272272 msgid "\"%s\" is not a valid filename"
273273 msgstr "”%s” ei ole kelvollinen tiedostonimi"
274274
275−#: directives.c:1039
275+#: directives.c:1028
276276 #, c-format
277277 msgid "\"%s\" after # is not a positive integer"
278278 msgstr "#:n jälkeinen ”%s” ei ole positiivinen kokonaisluku"
279279
280−#: directives.c:1098
280+#: directives.c:1087
281281 #, c-format
282282 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
283283 msgstr "tiedoston ”%s” rivinmerkitsin jätetään huomiotta virheellisen sisäkkäisyyden vuoksi"
284284
285−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
285+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
286286 #, c-format
287287 msgid "%s"
288288 msgstr "%s"
289289
290−#: directives.c:1185
290+#: directives.c:1175
291291 #, c-format
292292 msgid "invalid #%s directive"
293293 msgstr "virheellinen #%s-direktiivi"
294294
295−#: directives.c:1248
295+#: directives.c:1238
296296 #, c-format
297297 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
298298 msgstr "rekisteröidään pragmat nimiavaruudessa ”%s” epäsopivalla nimenlavennuksella"
299299
300−#: directives.c:1257
300+#: directives.c:1247
301301 #, c-format
302302 msgid "registering pragma \"%s\" with name expansion and no namespace"
303303 msgstr "rekisteröidään pragma ”%s” nimenlavennuksella ja ilman nimiavaruutta"
304304
305−#: directives.c:1275
305+#: directives.c:1265
306306 #, c-format
307307 msgid "registering \"%s\" as both a pragma and a pragma namespace"
308308 msgstr "rekisteröidään ”%s” sekä pragmana että pragma-nimiavaruutena"
309309
310−#: directives.c:1278
310+#: directives.c:1268
311311 #, c-format
312312 msgid "#pragma %s %s is already registered"
313313 msgstr "#pragma %s %s on jo rekisteröity"
314314
315−#: directives.c:1281
315+#: directives.c:1271
316316 #, c-format
317317 msgid "#pragma %s is already registered"
318318 msgstr "#pragma %s on jo rekisteröity"
319319
320−#: directives.c:1311
320+#: directives.c:1301
321321 msgid "registering pragma with NULL handler"
322322 msgstr "rekisteröidään pragma NULL-käsittelijällä"
323323
324−#: directives.c:1528
324+#: directives.c:1518
325325 msgid "#pragma once in main file"
326326 msgstr "#pragma once päätiedostossa"
327327
328−#: directives.c:1551
328+#: directives.c:1541
329329 msgid "invalid #pragma push_macro directive"
330330 msgstr "virheellinen #pragma push_macro -direktiivi"
331331
332−#: directives.c:1606
332+#: directives.c:1596
333333 msgid "invalid #pragma pop_macro directive"
334334 msgstr "virheellinen #pragma pop_macro -direktiivi"
335335
336336 # poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
337−#: directives.c:1661
337+#: directives.c:1651
338338 msgid "invalid #pragma GCC poison directive"
339339 msgstr "virheellinen #pragma GCC poison -direktiivi"
340340
341−#: directives.c:1670
341+#: directives.c:1660
342342 #, c-format
343343 msgid "poisoning existing macro \"%s\""
344344 msgstr "myrkytetään olemassa oleva makro ”%s”"
345345
346−#: directives.c:1689
346+#: directives.c:1679
347347 msgid "#pragma system_header ignored outside include file"
348348 msgstr "#pragma system_header ohitetaan otsaketiedoston ulkopuolella"
349349
350−#: directives.c:1714
350+#: directives.c:1704
351351 #, c-format
352352 msgid "cannot find source file %s"
353353 msgstr "lähdetiedostoa %s ei löydy"
354354
355−#: directives.c:1718
355+#: directives.c:1708
356356 #, c-format
357357 msgid "current file is older than %s"
358358 msgstr "nykyinen tiedosto on vanhempi kuin %s"
359359
360−#: directives.c:1742
360+#: directives.c:1732
361361 #, c-format
362362 msgid "invalid \"#pragma GCC %s\" directive"
363363 msgstr "virheellinen ”#pragma GCC %s” -direktiivi"
364364
365−#: directives.c:1943
365+#: directives.c:1933
366366 msgid "_Pragma takes a parenthesized string literal"
367367 msgstr "_Pragma ottaa sulkeilla ympäröidyn merkkijonoliteraalin"
368368
369−#: directives.c:2064
369+#: directives.c:2021
370370 msgid "#else without #if"
371371 msgstr "#else ilman #if:iä"
372372
373−#: directives.c:2069
373+#: directives.c:2026
374374 msgid "#else after #else"
375375 msgstr "#else #else:n jälkeen"
376376
377−#: directives.c:2071 directives.c:2104
377+#: directives.c:2028 directives.c:2061
378378 msgid "the conditional began here"
379379 msgstr "ehtolause alkoi tästä"
380380
381−#: directives.c:2097
381+#: directives.c:2054
382382 msgid "#elif without #if"
383383 msgstr "#elif ilman #if:iä"
384384
385−#: directives.c:2102
385+#: directives.c:2059
386386 msgid "#elif after #else"
387387 msgstr "#elif #else:n jälkeen"
388388
389−#: directives.c:2133
389+#: directives.c:2090
390390 msgid "#endif without #if"
391391 msgstr "#endif ilman #if:iä"
392392
393−#: directives.c:2213
393+#: directives.c:2166
394394 msgid "missing '(' after predicate"
395395 msgstr "’(’ puuttuu predikaatin jäljestä"
396396
397−#: directives.c:2228
397+#: directives.c:2184
398398 msgid "missing ')' to complete answer"
399399 msgstr "’)’ puuttuu vastauksen täydentämisestä"
400400
401−#: directives.c:2248
401+#: directives.c:2196
402402 msgid "predicate's answer is empty"
403403 msgstr "predikaatin vastaus on tyhjä"
404404
405−#: directives.c:2275
405+#: directives.c:2226
406406 msgid "assertion without predicate"
407407 msgstr "väite ilman predikaattia"
408408
409−#: directives.c:2278
409+#: directives.c:2229
410410 msgid "predicate must be an identifier"
411411 msgstr "predikaatin on oltava tunniste"
412412
413−#: directives.c:2364
413+#: directives.c:2311
414414 #, c-format
415415 msgid "\"%s\" re-asserted"
416416 msgstr "”%s” väitetty uudelleen"
417417
418−#: directives.c:2656
418+#: directives.c:2587
419419 #, c-format
420420 msgid "unterminated #%s"
421421 msgstr "päättämätön #%s"
422422
423−#: directives-only.c:221 lex.c:2851 traditional.c:167
423+#: directives-only.c:221 lex.c:2862 traditional.c:175
424424 msgid "unterminated comment"
425425 msgstr "päättämätön kommentti"
426426
427−#: errors.c:284
427+#: errors.c:291
428428 #, c-format
429429 msgid "%s: %s"
430430 msgstr "%s: %s"
431431
432−#: errors.c:296
432+#: errors.c:304
433433 msgid "stdout"
434434 msgstr "vakiotuloste"
435435
@@ -522,85 +522,85 @@ msgstr "(”%s” on vaihtoehtoinen symboli ”%s”:lle C++:ssa)" · 86 unmodified lines
522522 msgid "this use of \"defined\" may not be portable"
523523 msgstr "tämä ”defined”-sanan käyttö ei ehkä ole siirrettävää"
524524
525−#: expr.c:1125
525+#: expr.c:1109
526526 msgid "user-defined literal in preprocessor expression"
527527 msgstr "käyttäjän määrittelemä literaali esikääntäjän lausekkeessa"
528528
529−#: expr.c:1130
529+#: expr.c:1114
530530 msgid "floating constant in preprocessor expression"
531531 msgstr "liukulukuvakio esikääntäjän lausekkeessa"
532532
533−#: expr.c:1136
533+#: expr.c:1120
534534 msgid "imaginary number in preprocessor expression"
535535 msgstr "imaginääriluku esikääntäjän lausekkeessa"
536536
537−#: expr.c:1189
537+#: expr.c:1173
538538 #, c-format
539539 msgid "\"%s\" is not defined, evaluates to 0"
540540 msgstr "”%s” on määrittelemättä, evaluoituu 0:ksi"
541541
542−#: expr.c:1202
542+#: expr.c:1186
543543 msgid "assertions are a GCC extension"
544544 msgstr "väitteet ovat GCC-laajennos"
545545
546−#: expr.c:1205
546+#: expr.c:1189
547547 msgid "assertions are a deprecated extension"
548548 msgstr "väitteet ovat vanhentunut laajennos"
549549
550550 # %s on #if tai #elif
551−#: expr.c:1451
551+#: expr.c:1435
552552 #, c-format
553553 msgid "unbalanced stack in %s"
554554 msgstr "tasapainoton pino %s:ssä"
555555
556−#: expr.c:1471
556+#: expr.c:1455
557557 #, c-format
558558 msgid "impossible operator '%u'"
559559 msgstr "mahdoton operaattori ’%u’"
560560
561−#: expr.c:1572
561+#: expr.c:1556
562562 msgid "missing ')' in expression"
563563 msgstr "’)’ puuttuu lausekkeesta"
564564
565−#: expr.c:1601
565+#: expr.c:1585
566566 msgid "'?' without following ':'"
567567 msgstr "’?’ ilman sitä seuraavaa ’:’-merkkiä"
568568
569−#: expr.c:1611
569+#: expr.c:1595
570570 msgid "integer overflow in preprocessor expression"
571571 msgstr "kokonaislukuylivuoto esikääntäjän lausekkeessa"
572572
573−#: expr.c:1616
573+#: expr.c:1600
574574 msgid "missing '(' in expression"
575575 msgstr "’(’ puuttuu lausekkeesta"
576576
577−#: expr.c:1648
577+#: expr.c:1632
578578 #, c-format
579579 msgid "the left operand of \"%s\" changes sign when promoted"
580580 msgstr "”%s”:n vasen operandi vaihtaa ylennettäessä etumerkkiään"
581581
582−#: expr.c:1653
582+#: expr.c:1637
583583 #, c-format
584584 msgid "the right operand of \"%s\" changes sign when promoted"
585585 msgstr "”%s”:n oikea operandi vaihtaa ylennettäessä etumerkkiään"
586586
587−#: expr.c:1912
587+#: expr.c:1896
588588 msgid "traditional C rejects the unary plus operator"
589589 msgstr "perinteinen C ei salli unaarista plus-operaattoria"
590590
591−#: expr.c:2010
591+#: expr.c:1994
592592 msgid "comma operator in operand of #if"
593593 msgstr "pilkkuoperaattori #if:in operandissa"
594594
595−#: expr.c:2146
595+#: expr.c:2130
596596 msgid "division by zero in #if"
597597 msgstr "jako nollalla #if-ehdossa"
598598
599−#: expr.c:2243
599+#: expr.c:2227
600600 msgid "operator \"__has_include__\" requires a header string"
601601 msgstr "operaattori ”__has_include__” vaatii otsakemerkkijonon"
602602
603−#: expr.c:2259
603+#: expr.c:2243
604604 msgid "missing ')' after \"__has_include__\""
605605 msgstr "’)’ puuttuu ”__has_include__”-sanan jäljestä"
606606
@@ -617,40 +617,40 @@ msgstr "käytä valitsinta -Winvalid-pch lisätietojen saamiseksi" · 10 unmodified lines
617617 msgid "no include path in which to search for %s"
618618 msgstr "ei include-polkua, josta etsiä tiedostoa %s"
619619
620−#: files.c:1441
620+#: files.c:1455
621621 msgid "Multiple include guards may be useful for:\n"
622622 msgstr "Monen includen estimet voivat olla hyödyllisiä tiedostoille:\n"
623623
624−#: init.c:565
624+#: init.c:569
625625 msgid "cppchar_t must be an unsigned type"
626626 msgstr "cppchar_t:n on oltava etumerkitön tyyppi"
627627
628−#: init.c:569
628+#: init.c:573
629629 #, c-format
630630 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
631631 msgstr "esikääntäjäaritmetiikan enimmäistarkkuus on %lu bittiä; kohde vaatii %lu bittiä"
632632
633−#: init.c:576
633+#: init.c:580
634634 msgid "CPP arithmetic must be at least as precise as a target int"
635635 msgstr "CPP-aritmetiikan on oltava vähintään yhtä tarkka kuin kohteen int-tyypin"
636636
637−#: init.c:579
637+#: init.c:583
638638 msgid "target char is less than 8 bits wide"
639639 msgstr "kohteen char-tyyppi on alle 8 bittiä leveä"
640640
641−#: init.c:583
641+#: init.c:587
642642 msgid "target wchar_t is narrower than target char"
643643 msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi"
644644
645−#: init.c:587
645+#: init.c:591
646646 msgid "target int is narrower than target char"
647647 msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi"
648648
649−#: init.c:592
649+#: init.c:596
650650 msgid "CPP half-integer narrower than CPP character"
651651 msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki"
652652
653−#: init.c:596
653+#: init.c:600
654654 #, c-format
655655 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
656656 msgstr "tämän koneen CPP ei pysty käsittelemään yli %lu-bittisiä leveämerkkivakioita, mutta kohde vaatii %lu bittiä"
@@ -729,260 +729,275 @@ msgstr "__VA_ARGS__ voi esiintyä vain C99:n variadisen makron lavennoksessa" · 72 unmodified lines
729729 msgid "identifier \"%s\" is a special operator name in C++"
730730 msgstr "tunniste ”%s” on operaattorin nimi C++:ssa"
731731
732−#: lex.c:1811
732+#: lex.c:1826
733733 msgid "raw string delimiter longer than 16 characters"
734734 msgstr "raa’an merkkijonon erotin pitempi kuin 16 merkkiä"
735735
736−#: lex.c:1815
736+#: lex.c:1830
737737 msgid "invalid new-line in raw string delimiter"
738738 msgstr "virheellinen rivinvaihto raa’an merkkijonon erottimessa"
739739
740−#: lex.c:1819
740+#: lex.c:1834
741741 #, c-format
742742 msgid "invalid character '%c' in raw string delimiter"
743743 msgstr "virheellinen merkki ’%c’ raa’an merkkijonon erottimessa"
744744
745−#: lex.c:1868 lex.c:1890
745+#: lex.c:1883 lex.c:1905
746746 msgid "unterminated raw string"
747747 msgstr "päättämätön raaka merkkijono"
748748
749−#: lex.c:1912 lex.c:2043
749+#: lex.c:1925 lex.c:2054
750750 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
751751 msgstr "literaalissa virheellinen jälkiliite; C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin"
752752
753−#: lex.c:2024
753+#: lex.c:2037
754754 msgid "null character(s) preserved in literal"
755755 msgstr "null-merkit säilytetään literaalissa"
756756
757−#: lex.c:2027
757+#: lex.c:2040
758758 #, c-format
759759 msgid "missing terminating %c character"
760760 msgstr "päättävä merkki %c puuttuu"
761761
762−#: lex.c:2061
762+#: lex.c:2072
763763 msgid "C++11 requires a space between string literal and macro"
764764 msgstr "C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin"
765765
766−#: lex.c:2865 lex.c:2899
766+#: lex.c:2876 lex.c:2910
767767 msgid "C++ style comments are not allowed in ISO C90"
768768 msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90:ssä"
769769
770−#: lex.c:2867 lex.c:2878 lex.c:2901
770+#: lex.c:2878 lex.c:2889 lex.c:2913
771771 msgid "(this will be reported only once per input file)"
772772 msgstr "(tästä ilmoitetaan vain kerran syötetiedostoa kohden)"
773773
774−#: lex.c:2876
774+#: lex.c:2887
775775 msgid "C++ style comments are incompatible with C90"
776776 msgstr "C++-tyyliset kommentit ovat epäyhteensopivia C90:n kanssa"
777777
778−#: lex.c:2907
778+#: lex.c:2919
779779 msgid "multi-line comment"
780780 msgstr "monirivinen kommentti"
781781
782−#: lex.c:3287
782+#: lex.c:3299
783783 #, c-format
784784 msgid "unspellable token %s"
785785 msgstr "kirjoitusasuton symboli %s"
786786
787−#: macro.c:93
787+#: macro.c:94
788788 msgid "'##' cannot appear at either end of __VA_OPT__"
789789 msgstr "”##” ei voi esiintyä __VA_OPT__-makron kummassakaan päässä"
790790
791−#: macro.c:352
791+#: macro.c:354
792792 #, c-format
793793 msgid "macro \"%s\" is not used"
794794 msgstr "makroa ”%s” ei käytetä"
795795
796−#: macro.c:391 macro.c:639
796+#: macro.c:393 macro.c:641
797797 #, c-format
798798 msgid "invalid built-in macro \"%s\""
799799 msgstr "virheellinen sisäinen makro ”%s”"
800800
801−#: macro.c:398 macro.c:500
801+#: macro.c:400 macro.c:502
802802 #, c-format
803803 msgid "macro \"%s\" might prevent reproducible builds"
804804 msgstr "makro ”%s” saattaa estää toistettavat käännökset"
805805
806−#: macro.c:429
806+#: macro.c:431
807807 msgid "could not determine file timestamp"
808808 msgstr "ei voitu selvittää tiedoston aikaleimaa"
809809
810−#: macro.c:546
810+#: macro.c:548
811811 msgid "could not determine date and time"
812812 msgstr "ei voitu selvittää päivämäärää ja aikaa"
813813
814−#: macro.c:562
814+#: macro.c:564
815815 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
816816 msgstr "__COUNTER__ lavennettu direktiivin sisällä valitsimella -fdirectives-only"
817817
818−#: macro.c:758
818+#: macro.c:760
819819 msgid "invalid string literal, ignoring final '\\'"
820820 msgstr "virheellinen merkijonoliteraali, ohitetaan viimeinen ’\\’"
821821
822−#: macro.c:820
822+#: macro.c:822
823823 #, c-format
824824 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
825825 msgstr "liittämällä ”%s” ja ”%s” ei saada kelvollista esikääntäjän symbolia"
826826
827827 # Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
828−#: macro.c:946
828+#: macro.c:948
829829 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
830830 msgstr "ISO C++11 vaatii vähintään yhden argumentin variadisen makron ”...”:lle"
831831
832832 # Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
833−#: macro.c:950
833+#: macro.c:952
834834 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
835835 msgstr "ISO C99 vaatii vähintään yhden argumentin variadisen makron ”...”:lle"
836836
837−#: macro.c:957
837+#: macro.c:959
838838 #, c-format
839839 msgid "macro \"%s\" requires %u arguments, but only %u given"
840840 msgstr "makro ”%s” vaatii %u argumenttia, mutta vain %u on annettu"
841841
842−#: macro.c:962
842+#: macro.c:964
843843 #, c-format
844844 msgid "macro \"%s\" passed %u arguments, but takes just %u"
845845 msgstr "makrolle ”%s” annettu %u argumenttia, mutta se ottaa vain %u"
846846
847−#: macro.c:1156 traditional.c:819
847+#: macro.c:1162 traditional.c:827
848848 #, c-format
849849 msgid "unterminated argument list invoking macro \"%s\""
850850 msgstr "päättämätön argumenttiluettelo ”%s”-makron kutsussa"
851851
852−#: macro.c:1307
852+#: macro.c:1304
853853 #, c-format
854854 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
855855 msgstr "funktion kaltaista makroa ”%s” on käytettävä argumenttien kanssa perinteisessä C:ssä"
856856
857−#: macro.c:2003
857+#: macro.c:2083
858858 #, c-format
859859 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
860860 msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C++98:ssa"
861861
862−#: macro.c:2011 macro.c:2020
862+#: macro.c:2091 macro.c:2100
863863 #, c-format
864864 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
865865 msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C90:ssä"
866866
867−#: macro.c:2984
867+#: macro.c:3059
868868 #, c-format
869869 msgid "duplicate macro parameter \"%s\""
870870 msgstr "kahdenkertainen makroparametri ”%s”"
871871
872−#: macro.c:3033
872+#: macro.c:3141
873+#, c-format
874+msgid "expected parameter name, found \"%s\""
875+msgstr "odotettiin parametrin nimeä, löytyi ”%s”"
876+
877+#: macro.c:3142
873878 #, c-format
874−msgid "\"%s\" may not appear in macro parameter list"
875−msgstr "”%s” ei saa esiintyä makron parametriluettelossa"
879+msgid "expected ',' or ')', found \"%s\""
880+msgstr "odotettiin ”,” tai ”)”, löytyi ”%s”"
876881
877−#: macro.c:3041
878−msgid "macro parameters must be comma-separated"
879−msgstr "makron parametrien on oltava pilkuin eroteltuja"
882+#: macro.c:3143
883+msgid "expected parameter name before end of line"
884+msgstr "odotettiin parametrin nimeä ennen rivin loppua"
880885
881−#: macro.c:3060
882−msgid "parameter name missing"
883−msgstr "parametrin nimi puuttuu"
886+#: macro.c:3144
887+msgid "expected ')' before end of line"
888+msgstr "odotettiin tulevan ”)” ennen rivin loppua"
884889
885−#: macro.c:3081
890+#: macro.c:3145
891+msgid "expected ')' after \"...\""
892+msgstr "odotettiin ”...”:n jälkeen tulevan ”)”"
893+
894+#: macro.c:3202
886895 msgid "anonymous variadic macros were introduced in C++11"
887896 msgstr "anonyymit variadiset makrot esiteltiin C++11:ssä"
888897
889−#: macro.c:3085 macro.c:3090
898+#: macro.c:3203 macro.c:3207
890899 msgid "anonymous variadic macros were introduced in C99"
891900 msgstr "anonyymit variadiset makrot esiteltiin C99:ssä"
892901
893−#: macro.c:3097
902+#: macro.c:3213
894903 msgid "ISO C++ does not permit named variadic macros"
895904 msgstr "ISO C++ ei salli nimettyjä variadisia makroja"
896905
897−#: macro.c:3100
906+#: macro.c:3214
898907 msgid "ISO C does not permit named variadic macros"
899908 msgstr "ISO C ei salli nimettyjä variadisia makroja"
900909
901−#: macro.c:3110
902−msgid "missing ')' in macro parameter list"
903−msgstr "’)’ puuttuu makron parametriluettelosta"
904−
905−#: macro.c:3161
910+#: macro.c:3260
906911 msgid "'##' cannot appear at either end of a macro expansion"
907912 msgstr "”##” ei voi esiintyä makrolavennuksen kummassakaan päässä"
908913
909−#: macro.c:3198
914+#: macro.c:3298
910915 msgid "ISO C++11 requires whitespace after the macro name"
911916 msgstr "ISO C++11 vaatii tyhjemerkin makron nimen jälkeen"
912917
913−#: macro.c:3201
918+#: macro.c:3299
914919 msgid "ISO C99 requires whitespace after the macro name"
915920 msgstr "ISO C99 vaatii tyhjemerkin makron nimen jälkeen"
916921
917−#: macro.c:3226
922+#: macro.c:3323
918923 msgid "missing whitespace after the macro name"
919924 msgstr "tyhjemerkki puuttuu makron nimen jäljestä"
920925
921−#: macro.c:3263
926+#: macro.c:3373
922927 msgid "'#' is not followed by a macro parameter"
923928 msgstr "”#” ilman sitä seuraavaa makroparametria"
924929
925−#: macro.c:3430
930+#: macro.c:3524
926931 #, c-format
927932 msgid "\"%s\" redefined"
928933 msgstr "”%s” määritelty uudelleen"
929934
930−#: macro.c:3435
935+#: macro.c:3529
931936 msgid "this is the location of the previous definition"
932937 msgstr "tämä on edellisen määrittelyn sijainti"
933938
934−#: macro.c:3496
939+#: macro.c:3633
935940 #, c-format
936941 msgid "macro argument \"%s\" would be stringified in traditional C"
937942 msgstr "makron argumentti ”%s” merkkijonostettaisiin perinteisessä C:ssä"
938943
939−#: macro.c:3532
940−#, c-format
941−msgid "invalid hash type %d in cpp_macro_definition"
942−msgstr "virheellinen hash-tyyppi %d funktiossa cpp_macro_definition"
943−
944−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
944+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
945945 msgid "while writing precompiled header"
946946 msgstr "kirjoitettaessa esikäännettyä otsaketta"
947947
948−#: pch.c:621
948+#: pch.c:616
949949 #, c-format
950950 msgid "%s: not used because `%.*s' is poisoned"
951951 msgstr "%s: ei käytetä, koska ”%.*s” on myrkytetty"
952952
953−#: pch.c:643
953+#: pch.c:638
954954 #, c-format
955955 msgid "%s: not used because `%.*s' not defined"
956956 msgstr "%s: ei käytetä, koska ”%.*s” on määrittelemättä"
957957
958−#: pch.c:655
958+#: pch.c:650
959959 #, c-format
960960 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
961961 msgstr "%s: ei käytetä, koska ”%.*s” on määritelty arvoon ”%s” eikä ”%.*s”"
962962
963−#: pch.c:696
963+#: pch.c:691
964964 #, c-format
965965 msgid "%s: not used because `%s' is defined"
966966 msgstr "%s: ei käytetä, koska ”%s” on määritelty"
967967
968−#: pch.c:716
968+#: pch.c:711
969969 #, c-format
970970 msgid "%s: not used because `__COUNTER__' is invalid"
971971 msgstr "%s: ei käytetä, koska ”__COUNTER__” on virheellinen"
972972
973−#: pch.c:725 pch.c:903
973+#: pch.c:720 pch.c:878
974974 msgid "while reading precompiled header"
975975 msgstr "luettaessa esikäännettyä otsaketta"
976976
977−#: traditional.c:889
977+#: traditional.c:896
978978 #, c-format
979979 msgid "detected recursion whilst expanding macro \"%s\""
980980 msgstr "havaittiin rekursio lavennettaessa makroa ”%s”"
981981
982−#: traditional.c:1108
982+#: traditional.c:1119
983983 msgid "syntax error in macro parameter list"
984984 msgstr "syntaksivirhe makron parameteriluettelossa"
985985
986+#~ msgid "\"%s\" may not appear in macro parameter list"
987+#~ msgstr "”%s” ei saa esiintyä makron parametriluettelossa"
988+
989+#~ msgid "macro parameters must be comma-separated"
990+#~ msgstr "makron parametrien on oltava pilkuin eroteltuja"
991+
992+#~ msgid "parameter name missing"
993+#~ msgstr "parametrin nimi puuttuu"
994+
995+#~ msgid "missing ')' in macro parameter list"
996+#~ msgstr "’)’ puuttuu makron parametriluettelosta"
997+
998+#~ msgid "invalid hash type %d in cpp_macro_definition"
999+#~ msgstr "virheellinen hash-tyyppi %d funktiossa cpp_macro_definition"
1000+
9861001 #~ msgid "NULL directory in find_file"
9871002 #~ msgstr "NULL-hakemisto funktiossa find_file"
9881003
gcc/libcpp/po/fr.gmo+0−0

Binary file not shown.

gcc/libcpp/po/fr.po+183−168
@@ -4,7 +4,7 @@ · 3 unmodified lines
44 # Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
55 # François-Xavier Coudert <fxcoudert@gcc.gnu.org>, 2008.
66 # Stéphane Aulery <lkppo@free.fr>, 2015, 2016, 2017.
7−# Frédéric Marchal <fmarchal@perso.be>, 2018.
7+# Frédéric Marchal <fmarchal@perso.be>, 2019.
88 #
99 # Vocabulaire utilisé
1010 # lvalue = membre gauche
@@ -120,10 +120,10 @@ · 109 unmodified lines
120120 #
121121 msgid ""
122122 msgstr ""
123−"Project-Id-Version: GNU cpplib 8.1-b20180128\n"
123+"Project-Id-Version: GNU cpplib 9.1-b20190203\n"
124124 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
125−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
126−"PO-Revision-Date: 2018-06-10 14:01+0200\n"
125+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
126+"PO-Revision-Date: 2019-02-05 20:35+0100\n"
127127 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
128128 "Language-Team: French <traduc@traduc.org>\n"
129129 "Language: fr\n"
@@ -203,7 +203,7 @@ msgstr "le caractère universel %.*s n’est pas valide dans un identificateur" · 73 unmodified lines
203203 msgid "universal character %.*s is not valid at the start of an identifier"
204204 msgstr "le caractère universel %.*s n’est pas valide au début d’un identificateur"
205205
206−#: charset.c:1181 charset.c:2000
206+#: charset.c:1181 charset.c:2002
207207 msgid "converting UCN to source character set"
208208 msgstr "conversion d'un UCN vers le jeu de caractères source"
209209
@@ -254,294 +254,294 @@ msgstr "conversion d’une séquence d’échappement vers le jeu de caractères · 44 unmodified lines
254254 msgid "missing open quote"
255255 msgstr "guillemet ouvrant de chaîne de caractères manquant"
256256
257−#: charset.c:1827 charset.c:1891
257+#: charset.c:1829 charset.c:1893
258258 msgid "character constant too long for its type"
259259 msgstr "constante caractère trop longue pour son type"
260260
261−#: charset.c:1830
261+#: charset.c:1832
262262 msgid "multi-character character constant"
263263 msgstr "constante caractère multi-caractères"
264264
265−#: charset.c:1931
265+#: charset.c:1933
266266 msgid "empty character constant"
267267 msgstr "constante caractère vide"
268268
269−#: charset.c:2047
269+#: charset.c:2049
270270 #, c-format
271271 msgid "failure to convert %s to %s"
272272 msgstr "échec de conversion de %s vers %s"
273273
274−#: directives.c:235 directives.c:278
274+#: directives.c:229 directives.c:272
275275 #, c-format
276276 msgid "extra tokens at end of #%s directive"
277277 msgstr "éléments lexicaux superflus à la fin de la directive #%s"
278278
279−#: directives.c:385
279+#: directives.c:379
280280 #, c-format
281281 msgid "#%s is a GCC extension"
282282 msgstr "#%s est une extension GCC"
283283
284−#: directives.c:390
284+#: directives.c:384
285285 #, c-format
286286 msgid "#%s is a deprecated GCC extension"
287287 msgstr "#%s est une extension obsolète de GCC"
288288
289−#: directives.c:403
289+#: directives.c:397
290290 msgid "suggest not using #elif in traditional C"
291291 msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel"
292292
293−#: directives.c:406
293+#: directives.c:400
294294 #, c-format
295295 msgid "traditional C ignores #%s with the # indented"
296296 msgstr "le C traditionnel ignore la directive #%s si le caractère # est indenté"
297297
298−#: directives.c:410
298+#: directives.c:404
299299 #, c-format
300300 msgid "suggest hiding #%s from traditional C with an indented #"
301301 msgstr "il est suggéré de cacher #%s au C traditionnel en indentant le « # »"
302302
303−#: directives.c:436
303+#: directives.c:430
304304 msgid "embedding a directive within macro arguments is not portable"
305305 msgstr "placer une directive dans les arguments d’une macro n’est pas portable"
306306
307−#: directives.c:456
307+#: directives.c:450
308308 msgid "style of line directive is a GCC extension"
309309 msgstr "la directive de style de ligne est une extension GCC"
310310
311−#: directives.c:537
311+#: directives.c:531
312312 #, c-format
313313 msgid "invalid preprocessing directive #%s"
314314 msgstr "la directive de pré-traitement #%s invalide"
315315
316−#: directives.c:606
316+#: directives.c:600
317317 msgid "\"defined\" cannot be used as a macro name"
318318 msgstr "« defined » ne peut être utilisé comme nom de macro"
319319
320−#: directives.c:611
320+#: directives.c:605
321321 msgid "\"__has_include__\" cannot be used as a macro name"
322322 msgstr "« __has_include__ » ne peut être utilisé comme nom de macro"
323323
324−#: directives.c:617
324+#: directives.c:611
325325 #, c-format
326326 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
327327 msgstr "« %s » ne peut être utilisé comme nom de macro car c’est un opérateur C++"
328328
329−#: directives.c:620
329+#: directives.c:614
330330 #, c-format
331331 msgid "no macro name given in #%s directive"
332332 msgstr "aucun nom de macro donné dans la directive #%s"
333333
334−#: directives.c:623
334+#: directives.c:617
335335 msgid "macro names must be identifiers"
336336 msgstr "les noms de macro doivent être des identificateurs"
337337
338−#: directives.c:672 directives.c:677
338+#: directives.c:666 directives.c:671
339339 #, c-format
340340 msgid "undefining \"%s\""
341341 msgstr "suppression de la définition de « %s »"
342342
343−#: directives.c:732
343+#: directives.c:727
344344 msgid "missing terminating > character"
345345 msgstr "caractère > de terminaison manquant"
346346
347−#: directives.c:791
347+#: directives.c:786
348348 #, c-format
349349 msgid "#%s expects \"FILENAME\" or <FILENAME>"
350350 msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
351351
352−#: directives.c:837
352+#: directives.c:828
353353 #, c-format
354354 msgid "empty filename in #%s"
355355 msgstr "nom de fichier vide dans #%s"
356356
357−#: directives.c:847
357+#: directives.c:835
358358 msgid "#include nested too deeply"
359359 msgstr "#include imbriqué trop profondément"
360360
361−#: directives.c:888
361+#: directives.c:877
362362 msgid "#include_next in primary source file"
363363 msgstr "#include_next dans un fichier source primaire"
364364
365−#: directives.c:914
365+#: directives.c:903
366366 #, c-format
367367 msgid "invalid flag \"%s\" in line directive"
368368 msgstr "drapeau « %s » invalide dans la ligne de directive"
369369
370−#: directives.c:974
370+#: directives.c:963
371371 msgid "unexpected end of file after #line"
372372 msgstr "fin de fichier inattendue après #line"
373373
374−#: directives.c:977
374+#: directives.c:966
375375 #, c-format
376376 msgid "\"%s\" after #line is not a positive integer"
377377 msgstr "« %s » après #line n’est pas un nombre entier positif"
378378
379−#: directives.c:983 directives.c:985
379+#: directives.c:972 directives.c:974
380380 msgid "line number out of range"
381381 msgstr "numéro de ligne hors intervalle"
382382
383−#: directives.c:998 directives.c:1079
383+#: directives.c:987 directives.c:1068
384384 #, c-format
385385 msgid "\"%s\" is not a valid filename"
386386 msgstr "« %s » n’est pas un nom de fichier valide"
387387
388−#: directives.c:1039
388+#: directives.c:1028
389389 #, c-format
390390 msgid "\"%s\" after # is not a positive integer"
391391 msgstr "« %s » après # n’est pas un nombre entier positif"
392392
393−#: directives.c:1098
393+#: directives.c:1087
394394 #, c-format
395395 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
396396 msgstr "le marqueur de ligne du fichier « %s » est ignoré à cause d’une imbrication incorrecte"
397397
398−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
398+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
399399 #, c-format
400400 msgid "%s"
401401 msgstr "%s"
402402
403−#: directives.c:1185
403+#: directives.c:1175
404404 #, c-format
405405 msgid "invalid #%s directive"
406406 msgstr "directive #%s invalide"
407407
408−#: directives.c:1248
408+#: directives.c:1238
409409 #, c-format
410410 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
411411 msgstr "enregistrement des pragmas dans l'espace de nom « %s » avec une expansion de nom ne correspondant pas"
412412
413−#: directives.c:1257
413+#: directives.c:1247
414414 #, c-format
415415 msgid "registering pragma \"%s\" with name expansion and no namespace"
416416 msgstr "enregistrement du pragma « %s » avec une expansion de nom mais pas d’espace de nom"
417417
418−#: directives.c:1275
418+#: directives.c:1265
419419 #, c-format
420420 msgid "registering \"%s\" as both a pragma and a pragma namespace"
421421 msgstr "enregistrement de « %s » à la fois comme un pragma et un espace de nom de pragma"
422422
423−#: directives.c:1278
423+#: directives.c:1268
424424 #, c-format
425425 msgid "#pragma %s %s is already registered"
426426 msgstr "le #pragma %s %s est déjà enregistré"
427427
428−#: directives.c:1281
428+#: directives.c:1271
429429 #, c-format
430430 msgid "#pragma %s is already registered"
431431 msgstr "le #pragma %s est déjà enregistré"
432432
433−#: directives.c:1311
433+#: directives.c:1301
434434 msgid "registering pragma with NULL handler"
435435 msgstr "enregistrement d’un pragma avec un handler NULL"
436436
437−#: directives.c:1528
437+#: directives.c:1518
438438 msgid "#pragma once in main file"
439439 msgstr "#pragma once utilisé une seule fois dans le fichier principal"
440440
441−#: directives.c:1551
441+#: directives.c:1541
442442 msgid "invalid #pragma push_macro directive"
443443 msgstr "directive #pragma push_macro invalide"
444444
445−#: directives.c:1606
445+#: directives.c:1596
446446 msgid "invalid #pragma pop_macro directive"
447447 msgstr "directive #pragma pop_macro invalide"
448448
449−#: directives.c:1661
449+#: directives.c:1651
450450 msgid "invalid #pragma GCC poison directive"
451451 msgstr "directive #pragma GCC poison invalide"
452452
453−#: directives.c:1670
453+#: directives.c:1660
454454 #, c-format
455455 msgid "poisoning existing macro \"%s\""
456456 msgstr "empoisonnement de la macro existante « %s »"
457457
458−#: directives.c:1689
458+#: directives.c:1679
459459 msgid "#pragma system_header ignored outside include file"
460460 msgstr "#pragma system_header ignoré en dehors du fichier d'inclusion"
461461
462−#: directives.c:1714
462+#: directives.c:1704
463463 #, c-format
464464 msgid "cannot find source file %s"
465465 msgstr "impossible de trouver le fichier source %s"
466466
467−#: directives.c:1718
467+#: directives.c:1708
468468 #, c-format
469469 msgid "current file is older than %s"
470470 msgstr "le fichier courant est plus vieux que %s"
471471
472−#: directives.c:1742
472+#: directives.c:1732
473473 #, c-format
474474 msgid "invalid \"#pragma GCC %s\" directive"
475475 msgstr "directive « #pragma GCC %s » invalide"
476476
477−#: directives.c:1943
477+#: directives.c:1933
478478 msgid "_Pragma takes a parenthesized string literal"
479479 msgstr "_Pragma attend une chaîne entourée de parenthèses"
480480
481−#: directives.c:2064
481+#: directives.c:2021
482482 msgid "#else without #if"
483483 msgstr "#else sans #if"
484484
485−#: directives.c:2069
485+#: directives.c:2026
486486 msgid "#else after #else"
487487 msgstr "#else après #else"
488488
489−#: directives.c:2071 directives.c:2104
489+#: directives.c:2028 directives.c:2061
490490 msgid "the conditional began here"
491491 msgstr "la condition débute ici"
492492
493−#: directives.c:2097
493+#: directives.c:2054
494494 msgid "#elif without #if"
495495 msgstr "#elif sans #if"
496496
497−#: directives.c:2102
497+#: directives.c:2059
498498 msgid "#elif after #else"
499499 msgstr "#elif après #else"
500500
501−#: directives.c:2133
501+#: directives.c:2090
502502 msgid "#endif without #if"
503503 msgstr "#endif sans #if"
504504
505−#: directives.c:2213
505+#: directives.c:2166
506506 msgid "missing '(' after predicate"
507507 msgstr "« ( » manquante après le prédicat"
508508
509−#: directives.c:2228
509+#: directives.c:2184
510510 msgid "missing ')' to complete answer"
511511 msgstr "« ) » manquante pour compléter la réponse"
512512
513−#: directives.c:2248
513+#: directives.c:2196
514514 msgid "predicate's answer is empty"
515515 msgstr "la réponse du prédicat est vide"
516516
517−#: directives.c:2275
517+#: directives.c:2226
518518 msgid "assertion without predicate"
519519 msgstr "assertion sans prédicat"
520520
521−#: directives.c:2278
521+#: directives.c:2229
522522 msgid "predicate must be an identifier"
523523 msgstr "le prédicat doit être un identificateur"
524524
525−#: directives.c:2364
525+#: directives.c:2311
526526 #, c-format
527527 msgid "\"%s\" re-asserted"
528528 msgstr "assertion « %s » redondante"
529529
530−#: directives.c:2656
530+#: directives.c:2587
531531 #, c-format
532532 msgid "unterminated #%s"
533533 msgstr "#%s non terminé"
534534
535−#: directives-only.c:221 lex.c:2851 traditional.c:167
535+#: directives-only.c:221 lex.c:2862 traditional.c:175
536536 msgid "unterminated comment"
537537 msgstr "commentaire non terminé"
538538
539−#: errors.c:284
539+#: errors.c:291
540540 #, c-format
541541 msgid "%s: %s"
542542 msgstr "%s : %s"
543543
544−#: errors.c:296
544+#: errors.c:304
545545 msgid "stdout"
546546 msgstr "sortie standard"
547547
@@ -634,84 +634,84 @@ msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)" · 86 unmodified lines
634634 msgid "this use of \"defined\" may not be portable"
635635 msgstr "cette utilisation de « defined » peut ne pas être portable"
636636
637−#: expr.c:1125
637+#: expr.c:1109
638638 msgid "user-defined literal in preprocessor expression"
639639 msgstr "chaîne définie par l'utilisateur dans une expression pour le préprocesseur"
640640
641−#: expr.c:1130
641+#: expr.c:1114
642642 msgid "floating constant in preprocessor expression"
643643 msgstr "constante flottante dans une expression pour le préprocesseur"
644644
645−#: expr.c:1136
645+#: expr.c:1120
646646 msgid "imaginary number in preprocessor expression"
647647 msgstr "constante complexe dans une expression pour le préprocesseur"
648648
649−#: expr.c:1189
649+#: expr.c:1173
650650 #, c-format
651651 msgid "\"%s\" is not defined, evaluates to 0"
652652 msgstr "« %s » n’est pas défini, évalué à 0"
653653
654−#: expr.c:1202
654+#: expr.c:1186
655655 msgid "assertions are a GCC extension"
656656 msgstr "les assertions sont une extension GCC"
657657
658−#: expr.c:1205
658+#: expr.c:1189
659659 msgid "assertions are a deprecated extension"
660660 msgstr "les assertions sont une extension obsolète"
661661
662−#: expr.c:1451
662+#: expr.c:1435
663663 #, c-format
664664 msgid "unbalanced stack in %s"
665665 msgstr "pile non balancée dans %s"
666666
667−#: expr.c:1471
667+#: expr.c:1455
668668 #, c-format
669669 msgid "impossible operator '%u'"
670670 msgstr "opérateur « %u » impossible"
671671
672−#: expr.c:1572
672+#: expr.c:1556
673673 msgid "missing ')' in expression"
674674 msgstr "« ) » manquante dans l'expression"
675675
676−#: expr.c:1601
676+#: expr.c:1585
677677 msgid "'?' without following ':'"
678678 msgstr "« ? » n’est pas suivi de « : »"
679679
680−#: expr.c:1611
680+#: expr.c:1595
681681 msgid "integer overflow in preprocessor expression"
682682 msgstr "débordement d’entier dans l'expression pour le préprocesseur"
683683
684−#: expr.c:1616
684+#: expr.c:1600
685685 msgid "missing '(' in expression"
686686 msgstr "« ( » manquante dans l'expression"
687687
688−#: expr.c:1648
688+#: expr.c:1632
689689 #, c-format
690690 msgid "the left operand of \"%s\" changes sign when promoted"
691691 msgstr "L'opérande de gauche de « %s » change de signe lors de sa promotion"
692692
693−#: expr.c:1653
693+#: expr.c:1637
694694 #, c-format
695695 msgid "the right operand of \"%s\" changes sign when promoted"
696696 msgstr "L'opérande de droite de « %s » change de signe lors de sa promotion"
697697
698−#: expr.c:1912
698+#: expr.c:1896
699699 msgid "traditional C rejects the unary plus operator"
700700 msgstr "le C traditionnel rejette l'opérateur d'addition unaire"
701701
702−#: expr.c:2010
702+#: expr.c:1994
703703 msgid "comma operator in operand of #if"
704704 msgstr "opérateur virgule dans l'opérande de #if"
705705
706−#: expr.c:2146
706+#: expr.c:2130
707707 msgid "division by zero in #if"
708708 msgstr "division par zéro dans #if"
709709
710−#: expr.c:2243
710+#: expr.c:2227
711711 msgid "operator \"__has_include__\" requires a header string"
712712 msgstr "l'opérateur « __has_include__ » requiert un chaîne d'entête"
713713
714−#: expr.c:2259
714+#: expr.c:2243
715715 msgid "missing ')' after \"__has_include__\""
716716 msgstr "« ) » manquante après « __has_include__ »"
717717
@@ -728,40 +728,40 @@ msgstr "utilisez -Winvalid-pch pour plus d’informations" · 10 unmodified lines
728728 msgid "no include path in which to search for %s"
729729 msgstr "aucun chemin d’inclusion dans lequel on pourrait rechercher %s"
730730
731−#: files.c:1441
731+#: files.c:1455
732732 msgid "Multiple include guards may be useful for:\n"
733733 msgstr "Des garde-fous contre les inclusions multiples peuvent être utiles pour :\n"
734734
735−#: init.c:565
735+#: init.c:569
736736 msgid "cppchar_t must be an unsigned type"
737737 msgstr "cppchar_t doit être d’un type non signé"
738738
739−#: init.c:569
739+#: init.c:573
740740 #, c-format
741741 msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
742742 msgstr "l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la cible requière %lu bits"
743743
744−#: init.c:576
744+#: init.c:580
745745 msgid "CPP arithmetic must be at least as precise as a target int"
746746 msgstr "l'arithmétique du CPP doit être au moins aussi précise que le type int de la cible"
747747
748−#: init.c:579
748+#: init.c:583
749749 msgid "target char is less than 8 bits wide"
750750 msgstr "sur la cible, char fait moins de 8 bits"
751751
752−#: init.c:583
752+#: init.c:587
753753 msgid "target wchar_t is narrower than target char"
754754 msgstr "sur la cible, wchar_t est plus petit que char"
755755
756−#: init.c:587
756+#: init.c:591
757757 msgid "target int is narrower than target char"
758758 msgstr "sur la cible, int est plus petit que char"
759759
760−#: init.c:592
760+#: init.c:596
761761 msgid "CPP half-integer narrower than CPP character"
762762 msgstr "les demi-entiers de CPP sont plus petits que les caractères de CPP"
763763
764−#: init.c:596
764+#: init.c:600
765765 #, c-format
766766 msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
767767 msgstr "CPP sur cette machine ne peut gérer les constantes de caractères larges de plus de %lu bits, mais la cible requière %lu bits"
@@ -834,254 +834,269 @@ msgstr "« __VA_ARGS__ » peut seulement apparaître dans l'expansion des macr · 66 unmodified lines
834834 msgid "identifier \"%s\" is a special operator name in C++"
835835 msgstr "l'identifiant « %s » est un nom d’opérateur spécial en C++"
836836
837−#: lex.c:1811
837+#: lex.c:1826
838838 msgid "raw string delimiter longer than 16 characters"
839839 msgstr "délimiteur de chaîne brute plus long que 16 caractères"
840840
841−#: lex.c:1815
841+#: lex.c:1830
842842 msgid "invalid new-line in raw string delimiter"
843843 msgstr "caractère de nouvelle ligne invalide dans un délimiteur de chaîne brute"
844844
845−#: lex.c:1819
845+#: lex.c:1834
846846 #, c-format
847847 msgid "invalid character '%c' in raw string delimiter"
848848 msgstr "caractère « %c » invalide dans un délimiteur de chaîne brute"
849849
850−#: lex.c:1868 lex.c:1890
850+#: lex.c:1883 lex.c:1905
851851 msgid "unterminated raw string"
852852 msgstr "chaîne brute non terminée"
853853
854−#: lex.c:1912 lex.c:2043
854+#: lex.c:1925 lex.c:2054
855855 msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
856856 msgstr "suffixe de chaîne invalide ; C++11 requière un espace entre une chaîne et une macro de chaîne"
857857
858−#: lex.c:2024
858+#: lex.c:2037
859859 msgid "null character(s) preserved in literal"
860860 msgstr "caractère(s) nul préservé(s) dans la chaîne"
861861
862−#: lex.c:2027
862+#: lex.c:2040
863863 #, c-format
864864 msgid "missing terminating %c character"
865865 msgstr "caractère %c de terminaison manquant"
866866
867−#: lex.c:2061
867+#: lex.c:2072
868868 msgid "C++11 requires a space between string literal and macro"
869869 msgstr "C++11 requière un espace entre une chaîne et une macro"
870870
871−#: lex.c:2865 lex.c:2899
871+#: lex.c:2876 lex.c:2910
872872 msgid "C++ style comments are not allowed in ISO C90"
873873 msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90 ISO"
874874
875−#: lex.c:2867 lex.c:2878 lex.c:2901
875+#: lex.c:2878 lex.c:2889 lex.c:2913
876876 msgid "(this will be reported only once per input file)"
877877 msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)"
878878
879−#: lex.c:2876
879+#: lex.c:2887
880880 msgid "C++ style comments are incompatible with C90"
881881 msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90"
882882
883−#: lex.c:2907
883+#: lex.c:2919
884884 msgid "multi-line comment"
885885 msgstr "commentaire multi-lignes"
886886
887−#: lex.c:3287
887+#: lex.c:3299
888888 #, c-format
889889 msgid "unspellable token %s"
890890 msgstr "l'élément lexical %s ne peut être épelé"
891891
892−#: macro.c:93
892+#: macro.c:94
893893 msgid "'##' cannot appear at either end of __VA_OPT__"
894894 msgstr "« ## » ne peut apparaître à aucune extrémité de __VA_OPT__"
895895
896−#: macro.c:352
896+#: macro.c:354
897897 #, c-format
898898 msgid "macro \"%s\" is not used"
899899 msgstr "la macro « %s » n’est pas utilisée"
900900
901−#: macro.c:391 macro.c:639
901+#: macro.c:393 macro.c:641
902902 #, c-format
903903 msgid "invalid built-in macro \"%s\""
904904 msgstr "macro interne « %s » invalide"
905905
906−#: macro.c:398 macro.c:500
906+#: macro.c:400 macro.c:502
907907 #, c-format
908908 msgid "macro \"%s\" might prevent reproducible builds"
909909 msgstr "la macro « %s » pourrait empêcher les compilations reproductibles"
910910
911−#: macro.c:429
911+#: macro.c:431
912912 msgid "could not determine file timestamp"
913913 msgstr "date de modification du fichier indéterminable"
914914
915−#: macro.c:546
915+#: macro.c:548
916916 msgid "could not determine date and time"
917917 msgstr "date et heure indéterminable"
918918
919−#: macro.c:562
919+#: macro.c:564
920920 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
921921 msgstr "Expansion de __COUNTER__ à l'intérieur d’une directive avec -fdirectives-only"
922922
923−#: macro.c:758
923+#: macro.c:760
924924 msgid "invalid string literal, ignoring final '\\'"
925925 msgstr "chaîne invalide, le « \\ » final est ignoré"
926926
927−#: macro.c:820
927+#: macro.c:822
928928 #, c-format
929929 msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
930930 msgstr "le collage de « %s » et de « %s » ne donne pas un élément lexical de pré-traitement valide"
931931
932−#: macro.c:946
932+#: macro.c:948
933933 msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro"
934934 msgstr "ISO C++11 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments"
935935
936−#: macro.c:950
936+#: macro.c:952
937937 msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro"
938938 msgstr "ISO C99 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments"
939939
940−#: macro.c:957
940+#: macro.c:959
941941 #, c-format
942942 msgid "macro \"%s\" requires %u arguments, but only %u given"
943943 msgstr "la macro « %s » requiert %u arguments, mais seulement %u ont été passés"
944944
945−#: macro.c:962
945+#: macro.c:964
946946 #, c-format
947947 msgid "macro \"%s\" passed %u arguments, but takes just %u"
948948 msgstr "la macro « %s » a reçu %u arguments, mais elle n’en prend que %u"
949949
950−#: macro.c:1156 traditional.c:819
950+#: macro.c:1162 traditional.c:827
951951 #, c-format
952952 msgid "unterminated argument list invoking macro \"%s\""
953953 msgstr "liste d'arguments non terminée en invoquant la macro « %s »"
954954
955−#: macro.c:1307
955+#: macro.c:1304
956956 #, c-format
957957 msgid "function-like macro \"%s\" must be used with arguments in traditional C"
958958 msgstr "la macro « %s » ressemblant à une fonction doit être utilisée avec des arguments en C traditionnel"
959959
960−#: macro.c:2003
960+#: macro.c:2083
961961 #, c-format
962962 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98"
963963 msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++98"
964964
965−#: macro.c:2011 macro.c:2020
965+#: macro.c:2091 macro.c:2100
966966 #, c-format
967967 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90"
968968 msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++90"
969969
970−#: macro.c:2984
970+#: macro.c:3059
971971 #, c-format
972972 msgid "duplicate macro parameter \"%s\""
973973 msgstr "paramètre de macro « %s » dupliqués"
974974
975−#: macro.c:3033
975+#: macro.c:3141
976+#, c-format
977+msgid "expected parameter name, found \"%s\""
978+msgstr "nom de paramètre attendu, « %s » rencontré"
979+
980+#: macro.c:3142
976981 #, c-format
977−msgid "\"%s\" may not appear in macro parameter list"
978−msgstr "« %s » ne peut pas apparaître parmi la liste des paramètres de macro"
982+msgid "expected ',' or ')', found \"%s\""
983+msgstr "« , » ou « ) » attendue, « %s » rencontré"
979984
980−#: macro.c:3041
981−msgid "macro parameters must be comma-separated"
982−msgstr "les paramètres de macro doivent être séparés par des virgules"
985+#: macro.c:3143
986+msgid "expected parameter name before end of line"
987+msgstr "nom de paramètre attendu avant la fin de la ligne"
983988
984−#: macro.c:3060
985−msgid "parameter name missing"
986−msgstr "nom de paramètre manquant"
989+#: macro.c:3144
990+msgid "expected ')' before end of line"
991+msgstr "« ) » attendue avant la fin de la ligne"
987992
988−#: macro.c:3081
993+#: macro.c:3145
994+msgid "expected ')' after \"...\""
995+msgstr "« ) » attendue après « ... »"
996+
997+#: macro.c:3202
989998 msgid "anonymous variadic macros were introduced in C++11"
990999 msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C++11"
9911000
992−#: macro.c:3085 macro.c:3090
1001+#: macro.c:3203 macro.c:3207
9931002 msgid "anonymous variadic macros were introduced in C99"
9941003 msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C99"
9951004
996−#: macro.c:3097
1005+#: macro.c:3213
9971006 msgid "ISO C++ does not permit named variadic macros"
9981007 msgstr "ISO C++ ne permet pas les macros nommées à nombre variable d’arguments"
9991008
1000−#: macro.c:3100
1009+#: macro.c:3214
10011010 msgid "ISO C does not permit named variadic macros"
10021011 msgstr "ISO C ne permet pas les macros nommées à nombre variable d’arguments"
10031012
1004−#: macro.c:3110
1005−msgid "missing ')' in macro parameter list"
1006−msgstr "« ) » manquante dans la liste des paramètres de macro"
1007−
1008−#: macro.c:3161
1013+#: macro.c:3260
10091014 msgid "'##' cannot appear at either end of a macro expansion"
10101015 msgstr "« ## » ne peut apparaître à aucune des extrémités d’une expansion de macro"
10111016
1012−#: macro.c:3198
1017+#: macro.c:3298
10131018 msgid "ISO C++11 requires whitespace after the macro name"
10141019 msgstr "ISO C++11 requiert un blanc après le nom de la macro"
10151020
1016−#: macro.c:3201
1021+#: macro.c:3299
10171022 msgid "ISO C99 requires whitespace after the macro name"
10181023 msgstr "ISO C99 requiert un blanc après le nom de la macro"
10191024
1020−#: macro.c:3226
1025+#: macro.c:3323
10211026 msgid "missing whitespace after the macro name"
10221027 msgstr "espacement manquant après le nom de la macro"
10231028
1024−#: macro.c:3263
1029+#: macro.c:3373
10251030 msgid "'#' is not followed by a macro parameter"
10261031 msgstr "« # » n'est pas suivi d’un paramètre de macro"
10271032
1028−#: macro.c:3430
1033+#: macro.c:3524
10291034 #, c-format
10301035 msgid "\"%s\" redefined"
10311036 msgstr "« %s » redéfini"
10321037
1033−#: macro.c:3435
1038+#: macro.c:3529
10341039 msgid "this is the location of the previous definition"
10351040 msgstr "ceci est l'emplacement d’une précédente définition"
10361041
1037−#: macro.c:3496
1042+#: macro.c:3633
10381043 #, c-format
10391044 msgid "macro argument \"%s\" would be stringified in traditional C"
10401045 msgstr "l'argument de macro « %s » serait changé en chaine dans le C traditionnel"
10411046
1042−#: macro.c:3532
1043−#, c-format
1044−msgid "invalid hash type %d in cpp_macro_definition"
1045−msgstr "type de hachage %d invalide dans cpp_macro_definition"
1046−
1047−#: pch.c:89 pch.c:347 pch.c:361 pch.c:379 pch.c:385 pch.c:394 pch.c:401
1047+#: pch.c:90 pch.c:342 pch.c:356 pch.c:374 pch.c:380 pch.c:389 pch.c:396
10481048 msgid "while writing precompiled header"
10491049 msgstr "lors de l'écriture de l'en-tête pré-compilée"
10501050
1051−#: pch.c:621
1051+#: pch.c:616
10521052 #, c-format
10531053 msgid "%s: not used because `%.*s' is poisoned"
10541054 msgstr "%s: n'est pas utilisé parce que « %.*s » est empoisonné"
10551055
1056−#: pch.c:643
1056+#: pch.c:638
10571057 #, c-format
10581058 msgid "%s: not used because `%.*s' not defined"
10591059 msgstr "%s: n'est pas utilisé parce que « %.*s » n’est pas défini"
10601060
1061−#: pch.c:655
1061+#: pch.c:650
10621062 #, c-format
10631063 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
10641064 msgstr "%s: n’est pas utilisé parce que « %.*s » est défini en tant « %s » et non pas « %.*s »"
10651065
1066−#: pch.c:696
1066+#: pch.c:691
10671067 #, c-format
10681068 msgid "%s: not used because `%s' is defined"
10691069 msgstr "%s: n'est pas utilisé parce que « %s » est défini"
10701070
1071−#: pch.c:716
1071+#: pch.c:711
10721072 #, c-format
10731073 msgid "%s: not used because `__COUNTER__' is invalid"
10741074 msgstr "%s: non utilisé parce que « __COUNTER__ » est invalide"
10751075
1076−#: pch.c:725 pch.c:903
1076+#: pch.c:720 pch.c:878
10771077 msgid "while reading precompiled header"
10781078 msgstr "lors de la lecture d’un entête pré-compilée"
10791079
1080−#: traditional.c:889
1080+#: traditional.c:896
10811081 #, c-format
10821082 msgid "detected recursion whilst expanding macro \"%s\""
10831083 msgstr "récursion détectée lors de l'expansion de la macro « %s »"
10841084
1085−#: traditional.c:1108
1085+#: traditional.c:1119
10861086 msgid "syntax error in macro parameter list"
10871087 msgstr "erreur de syntaxe dans la liste des paramètres de macro"
1088+
1089+#~ msgid "\"%s\" may not appear in macro parameter list"
1090+#~ msgstr "« %s » ne peut pas apparaître parmi la liste des paramètres de macro"
1091+
1092+#~ msgid "macro parameters must be comma-separated"
1093+#~ msgstr "les paramètres de macro doivent être séparés par des virgules"
1094+
1095+#~ msgid "parameter name missing"
1096+#~ msgstr "nom de paramètre manquant"
1097+
1098+#~ msgid "missing ')' in macro parameter list"
1099+#~ msgstr "« ) » manquante dans la liste des paramètres de macro"
1100+
1101+#~ msgid "invalid hash type %d in cpp_macro_definition"
1102+#~ msgstr "type de hachage %d invalide dans cpp_macro_definition"
gcc/libcpp/po/id.gmo+0−0

Binary file not shown.

gcc/libcpp/po/id.po+182−165
@@ -7,7 +7,7 @@ msgid "" · 6 unmodified lines
77 msgstr ""
88 "Project-Id-Version: cpplib 4.5-b20100204\n"
99 "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
10−"POT-Creation-Date: 2018-01-26 22:47+0000\n"
10+"POT-Creation-Date: 2019-02-01 23:01+0000\n"
1111 "PO-Revision-Date: 2010-02-05 19:00+0700\n"
1212 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
1313 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -88,7 +88,7 @@ msgstr "karakter universal %.*s tidak valid dalam sebuah pengidentifikasi" · 74 unmodified lines
8888 msgid "universal character %.*s is not valid at the start of an identifier"
8989 msgstr "karakter universal %.*s tidak valid di awal dari sebuah pengidentifikasi"
9090
91−#: charset.c:1181 charset.c:2000
91+#: charset.c:1181 charset.c:2002
9292 msgid "converting UCN to source character set"
9393 msgstr "mengubah UCN ke set karakter asal"
9494
@@ -139,297 +139,297 @@ msgstr "mengubah escape sequence ke set karakter eksekusi" · 44 unmodified lines
139139 msgid "missing open quote"
140140 msgstr ""
141141
142−#: charset.c:1827 charset.c:1891
142+#: charset.c:1829 charset.c:1893
143143 msgid "character constant too long for its type"
144144 msgstr "konstanta karakter terlalu panjang untuk tipenya"
145145
146−#: charset.c:1830
146+#: charset.c:1832
147147 msgid "multi-character character constant"
148148 msgstr "konstanta karakter multi-karakter"
149149
150−#: charset.c:1931
150+#: charset.c:1933
151151 msgid "empty character constant"
152152 msgstr "konstanta karakter kosong"
153153
154−#: charset.c:2047
154+#: charset.c:2049
155155 #, c-format
156156 msgid "failure to convert %s to %s"
157157 msgstr "gagal untuk mengubah %s ke %s"
158158
159−#: directives.c:235 directives.c:278
159+#: directives.c:229 directives.c:272
160160 #, c-format
161161 msgid "extra tokens at end of #%s directive"
162162 msgstr "ekstra token di akhir dari #%s direktif"
163163
164−#: directives.c:385
164+#: directives.c:379
165165 #, c-format
166166 msgid "#%s is a GCC extension"
167167 msgstr "#%s adalah sebuah ekstensi GCC"
168168
169−#: directives.c:390
169+#: directives.c:384
170170 #, c-format
171171 msgid "#%s is a deprecated GCC extension"
172172 msgstr "#%s adalah sebuah ekstensi GCC yang sudah ditinggalkan"
173173
174−#: directives.c:403
174+#: directives.c:397
175175 msgid "suggest not using #elif in traditional C"
176176 msgstr "disarankan tidak menggunakan #elif dalam tradisional C"
177177
178−#: directives.c:406
178+#: directives.c:400
179179 #, c-format
180180 msgid "traditional C ignores #%s with the # indented"
181181 msgstr "tradisional C mengabaikan #%s dengan # terindentasi"
182182
183−#: directives.c:410
183+#: directives.c:404
184184 #, c-format
185185 msgid "suggest hiding #%s from traditional C with an indented #"
186186 msgstr "disarankan menyembunyikan #%s dari tradisional C dengan sebuah indentasi #"
187187
188−#: directives.c:436
188+#: directives.c:430
189189 msgid "embedding a directive within macro arguments is not portable"
190190 msgstr "embedding sebuah direktif didalam argumen makro yang bukan portabel"
191191
192−#: directives.c:456
192+#: directives.c:450
193193 msgid "style of line directive is a GCC extension"
194194 msgstr "gaya dari baris direktif bukan sebuah ekstensi GCC"
195195
196−#: directives.c:537
196+#: directives.c:531
197197 #, c-format
198198 msgid "invalid preprocessing directive #%s"
199199 msgstr "preprosesing direktif #%s tidak valid"
200200
201−#: directives.c:606
201+#: directives.c:600
202202 msgid "\"defined\" cannot be used as a macro name"
203203 msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro"
204204
205−#: directives.c:611
205+#: directives.c:605
206206 #, fuzzy
207207 #| msgid "\"defined\" cannot be used as a macro name"
208208 msgid "\"__has_include__\" cannot be used as a macro name"
209209 msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro"
210210
211−#: directives.c:617
211+#: directives.c:611
212212 #, c-format
213213 msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
214214 msgstr "\"%s\" tidak dapat digunakan sebagai sebuah nama makro karena ini adalah sebuah operator dalam C++"
215215
216−#: directives.c:620
216+#: directives.c:614
217217 #, c-format
218218 msgid "no macro name given in #%s directive"
219219 msgstr "tidak ada nama makro yang diberikan dalam direktif #%s"
220220
221−#: directives.c:623
221+#: directives.c:617
222222 msgid "macro names must be identifiers"
223223 msgstr "nama makro harus berupa pengidentifikasi"
224224
225−#: directives.c:672 directives.c:677
225+#: directives.c:666 directives.c:671
226226 #, c-format
227227 msgid "undefining \"%s\""
228228 msgstr "tidak terdefinisi \"%s\""
229229
230−#: directives.c:732
230+#: directives.c:727
231231 msgid "missing terminating > character"
232232 msgstr "hilang karakter pengakhir >"
233233
234−#: directives.c:791
234+#: directives.c:786
235235 #, c-format
236236 msgid "#%s expects \"FILENAME\" or <FILENAME>"
237237 msgstr "#%s diduga \"NAMA BERKAS\" atau <NAMA BERKAS>"
238238
239−#: directives.c:837
239+#: directives.c:828
240240 #, c-format
241241 msgid "empty filename in #%s"
242242 msgstr "nama berkas kosong dalam #%s"
243243
244−#: directives.c:847
244+#: directives.c:835
245245 msgid "#include nested too deeply"
246246 msgstr "#include nested terlalu dalam"
247247
248−#: directives.c:888
248+#: directives.c:877
249249 msgid "#include_next in primary source file"
250250 msgstr "#include_next dalam berkas kode program utama"
251251
252−#: directives.c:914
252+#: directives.c:903
253253 #, c-format
254254 msgid "invalid flag \"%s\" in line directive"
255255 msgstr "tanda \"%s\" tidak valid dalam baris direktif"
256256
257−#: directives.c:974
257+#: directives.c:963
258258 msgid "unexpected end of file after #line"
259259 msgstr "tidak terduga akhir dari berkas setelah #line"
260260
261−#: directives.c:977
261+#: directives.c:966
262262 #, c-format
263263 msgid "\"%s\" after #line is not a positive integer"
264264 msgstr "\"%s\" setelah #line bukan sebuah integer positif"
265265
266−#: directives.c:983 directives.c:985
266+#: directives.c:972 directives.c:974
267267 msgid "line number out of range"
268268 msgstr "nomor baris diluar dari jangkauan"
269269
270−#: directives.c:998 directives.c:1079
270+#: directives.c:987 directives.c:1068
271271 #, c-format
272272 msgid "\"%s\" is not a valid filename"
273273 msgstr "\"%s\" bukan sebuah nama berkas yang valid"
274274
275−#: directives.c:1039
275+#: directives.c:1028
276276 #, c-format
277277 msgid "\"%s\" after # is not a positive integer"
278278 msgstr "\"%s\" setelah # bukan sebuah integer positif"
279279
280−#: directives.c:1098
280+#: directives.c:1087
281281 #, c-format
282282 msgid "file \"%s\" linemarker ignored due to incorrect nesting"
283283 msgstr ""
284284
285−#: directives.c:1157 directives.c:1159 directives.c:1161 directives.c:1747
285+#: directives.c:1147 directives.c:1149 directives.c:1151 directives.c:1737
286286 #, c-format
287287 msgid "%s"
288288 msgstr "%s"
289289
290−#: directives.c:1185
290+#: directives.c:1175
291291 #, c-format
292292 msgid "invalid #%s directive"
293293 msgstr "direktif #%s tidak valid"
294294
295−#: directives.c:1248
295+#: directives.c:1238
296296 #, c-format
297297 msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
298298 msgstr "mendaftarkan pragma dalam ruang-nama \"%s\" dengan ekspansi nama yang tidak cocok"
299299
300−#: directives.c:1257
300+#: directives.c:1247
301301 #, c-format
302302 msgid "registering pragma \"%s\" with name expansion and no namespace"
303303 msgstr "mendaftarkan pragma \"%s\" dengan ekspansi nama dan tidak ada ruang-nama"
304304
305−#: directives.c:1275
305+#: directives.c:1265
306306 #, c-format
307307 msgid "registering \"%s\" as both a pragma and a pragma namespace"
308308 msgstr "mendaftarkan \"%s\" sebagai baik sebuah pragma dan sebuah ruang-nama"
309309
310−#: directives.c:1278
310+#: directives.c:1268
311311 #, c-format
312312 msgid "#pragma %s %s is already registered"
313313 msgstr "#pragma %s %s telah terdaftar"
314314
315−#: directives.c:1281
315+#: directives.c:1271
316316 #, c-format
317317 msgid "#pragma %s is already registered"
318318 msgstr "#pragma %s telah terdaftar"
319319
320−#: directives.c:1311
320+#: directives.c:1301
321321 msgid "registering pragma with NULL handler"
322322 msgstr "mendaftarkan pragma dengan penanganan KOSONG"
323323
324−#: directives.c:1528
324+#: directives.c:1518
325325 msgid "#pragma once in main file"
326326 msgstr "#pragma sekali dalam berkas utama"
327327
328−#: directives.c:1551
328+#: directives.c:1541
329329 msgid "invalid #pragma push_macro directive"
330330 msgstr "#pragma push_macro direktif tidak valid"
331331
332−#: directives.c:1606
332+#: directives.c:1596
333333 msgid "invalid #pragma pop_macro directive"
334334 msgstr "#pragma pop_macro direktif tidak valid"
335335
336−#: directives.c:1661
336+#: directives.c:1651
337337 msgid "invalid #pragma GCC poison directive"
338338 msgstr "#pragma GCC tidak valid merusak direktif"
339339
340−#: directives.c:1670
340+#: directives.c:1660
341341 #, c-format
342342 msgid "poisoning existing macro \"%s\""
343343 msgstr "merusak makro \"%s\" yang sudah ada"
344344
345−#: directives.c:1689
345+#: directives.c:1679
346346 msgid "#pragma system_header ignored outside include file"
347347 msgstr "#pragma system_header diabaikan diluar berkas include"
348348
349−#: directives.c:1714
349+#: directives.c:1704
350350 #, c-format
351351 msgid "cannot find source file %s"
352352 msgstr "tidak dapat menemukan berkas sumber %s"
353353
354−#: directives.c:1718
354+#: directives.c:1708
355355 #, c-format
356356 msgid "current file is older than %s"
357357 msgstr "berkas ini lebih lama daripada %s"
358358
359−#: directives.c:1742
359+#: directives.c:1732
360360 #, fuzzy, c-format
361361 #| msgid "invalid #pragma GCC poison directive"
362362 msgid "invalid \"#pragma GCC %s\" directive"
363363 msgstr "#pragma GCC tidak valid merusak direktif"
364364
365−#: directives.c:1943
365+#: directives.c:1933
366366 msgid "_Pragma takes a parenthesized string literal"
367367 msgstr "_Pragma mengambil sebuah string literal tanda kurung"
368368
369−#: directives.c:2064
369+#: directives.c:2021
370370 msgid "#else without #if"
371371 msgstr "#else tanpa #if"
372372
373−#: directives.c:2069
373+#: directives.c:2026
374374 msgid "#else after #else"
375375 msgstr "#else setelah #else"
376376
377−#: directives.c:2071 directives.c:2104
377+#: directives.c:2028 directives.c:2061
378378 msgid "the conditional began here"
379379 msgstr "kondisional berawal disini"
380380
381−#: directives.c:2097
381+#: directives.c:2054
382382 msgid "#elif without #if"
383383 msgstr "#elif tanpa #if"
384384
385−#: directives.c:2102
385+#: directives.c:2059
386386 msgid "#elif after #else"
387387 msgstr "#elif setelah #else"
388388
389−#: directives.c:2133
389+#: directives.c:2090
390390 msgid "#endif without #if"
391391 msgstr "#endif tanpa #if"
392392
393−#: directives.c:2213
393+#: directives.c:2166
394394 msgid "missing '(' after predicate"
395395 msgstr "hilang '(' setelah predikat"
396396
397−#: directives.c:2228
397+#: directives.c:2184
398398 msgid "missing ')' to complete answer"
399399 msgstr "hilang ')' untuk melengkapi jawaban"
400400
401−#: directives.c:2248
401+#: directives.c:2196
402402 msgid "predicate's answer is empty"
403403 msgstr "jawaban predikat kosong"
404404
405−#: directives.c:2275
405+#: directives.c:2226
406406 msgid "assertion without predicate"
407407 msgstr "assertion tanpa predikat"
408408
409−#: directives.c:2278
409+#: directives.c:2229
410410 msgid "predicate must be an identifier"
411411 msgstr "predikat harus berupa sebuah pengidentifikasi"
412412
413−#: directives.c:2364
413+#: directives.c:2311
414414 #, c-format
415415 msgid "\"%s\" re-asserted"
416416 msgstr "\"%s\" re-asserted"
417417
418−#: directives.c:2656
418+#: directives.c:2587
419419 #, c-format
420420 msgid "unterminated #%s"
421421 msgstr "tidak terakhiri #%s"
422422
423−#: directives-only.c:221 lex.c:2851 traditional.c:167
423+#: directives-only.c:221 lex.c:2862 traditional.c:175
424424 msgid "unterminated comment"
425425 msgstr "komentar tidak terakhiri"
426426
427−#: errors.c:284
427+#: errors.c:291
428428 #, c-format
429429 msgid "%s: %s"
430430 msgstr "%s: %s"
431431
432−#: errors.c:296
432+#: errors.c:304
433433 msgid "stdout"
434434 msgstr "stdout"
435435
@@ -530,89 +530,89 @@ msgstr "(\"%s\" adalah sebuah tanda alternatif untuk \"%s\" dalam C++)" · 94 unmodified lines
530530 msgid "this use of \"defined\" may not be portable"
531531 msgstr "penggunaan ini dari \"defined\" mungkin tidak portabel"
532532
533−#: expr.c:1125
533+#: expr.c:1109
534534 #, fuzzy
535535 #| msgid "integer overflow in preprocessor expression"
536536 msgid "user-defined literal in preprocessor expression"
537537 msgstr "integer overflow dalam ekspresi preprosesor"
538538
539−#: expr.c:1130
539+#: expr.c:1114
540540 msgid "floating constant in preprocessor expression"
541541 msgstr "konstanta pecahan dalam ekspresi preprosesor"
542542
543−#: expr.c:1136
543+#: expr.c:1120
544544 msgid "imaginary number in preprocessor expression"
545545 msgstr "angka imaginari dalam ekspresi preprosesor"
546546
547−#: expr.c:1189
547+#: expr.c:1173
548548 #, fuzzy, c-format
549549 #| msgid "\"%s\" is not defined"
550550 msgid "\"%s\" is not defined, evaluates to 0"
551551 msgstr "\"%s\" tidak didefinisikan"
552552
553−#: expr.c:1202
553+#: expr.c:1186
554554 msgid "assertions are a GCC extension"
555555 msgstr "assertions adalah sebuah ekstensi GCC"
556556
557−#: expr.c:1205
557+#: expr.c:1189
558558 msgid "assertions are a deprecated extension"
559559 msgstr "assertions adalah sebuah ekstensi yang sudah ditinggalkan"
560560
561−#: expr.c:1451
561+#: expr.c:1435
562562 #, c-format
563563 msgid "unbalanced stack in %s"
564564 msgstr "stack dalam %s tidak seimbang"
565565
566−#: expr.c:1471
566+#: expr.c:1455
567567 #, c-format
568568 msgid "impossible operator '%u'"
569569 msgstr "operator '%u' tidak mungkin"
570570
571−#: expr.c:1572
571+#: expr.c:1556
572572 msgid "missing ')' in expression"
573573 msgstr "hilang ')' dalam ekspresi"
574574
575−#: expr.c:1601
575+#: expr.c:1585
576576 msgid "'?' without following ':'"
577577 msgstr "'?' tanpa diikuti ':'"
578578
579−#: expr.c:1611
579+#: expr.c:1595
580580 msgid "integer overflow in preprocessor expression"
581581 msgstr "integer overflow dalam ekspresi preprosesor"
582582
583−#: expr.c:1616
583+#: expr.c:1600
584584 msgid "missing '(' in expression"
585585 msgstr "hilang '(' dalam ekspresi"
586586
587−#: expr.c:1648
587+#: expr.c:1632
588588 #, c-format
589589 msgid "the left operand of \"%s\" changes sign when promoted"
590590 msgstr "operan kiri dari \"%s\" berubah tanda ketika dipromosikan"
591591
592−#: expr.c:1653
592+#: expr.c:1637
593593 #, c-format
594594 msgid "the right operand of \"%s\" changes sign when promoted"
595595 msgstr "operan kanan dari \"%s\" berubah tanda ketika dipromosikan"
596596
597−#: expr.c:1912
597+#: expr.c:1896
598598 msgid "traditional C rejects the unary plus operator"
599599 msgstr "tradisional C menolak operator unary plus"
600600
601−#: expr.c:2010
601+#: expr.c:1994
602602 msgid "comma operator in operand of #if"
603603 msgstr "operator koma dalam operator dari #if"
604604
605−#: expr.c:2146
605+#: expr.c:2130
606606 msgid "division by zero in #if"
607607 msgstr "pembagian oleh nol dalam #if"
608608
609−#: expr.c:2243
609+#: expr.c:2227
610610 #, fuzzy
611611 #| msgid "operator \"defined\" requires an identifier"
612612 msgid "operator \"__has_include__\" requires a header string"
613613 msgstr "operator \"defined\" membutuhkan sebuah pengidentifikasi"
614614
615−#: expr.c:2259
615+#: expr.c:2243
616616 #, fuzzy
617617 #| msgid "missing ')' after \"defined\""
618618 msgid "missing ')' after \"__has_include__\""
@@ -631,40 +631,40 @@ msgstr "gunakan -Winvalid-pch untuk informasi lebih lanjut" · 12 unmodified lines
631631 msgid "no include path in which to search for %s"
632632 msgstr "tidak ada jalur include yang biasa digunakan untuk pencarian untuk %s"

413 more lines aren’t shown here.

gcc/libcpp/po/ja.gmo+0−0

Binary file not shown.

gcc/libcpp/po/ja.po+182−165

This diff is large: its 903 lines aren’t shown here.

gcc/libcpp/po/nl.gmo+0−0

Binary file not shown.

gcc/libcpp/po/nl.po+182−165

This diff is large: its 901 lines aren’t shown here.

gcc/libcpp/po/pt_BR.po+184−169

This diff is large: its 888 lines aren’t shown here.

gcc/libcpp/po/ru.gmo+0−0

Binary file not shown.

gcc/libcpp/po/ru.po+183−168

This diff is large: its 885 lines aren’t shown here.

gcc/libcpp/po/sr.po+182−165

This diff is large: its 880 lines aren’t shown here.

gcc/libcpp/po/sv.gmo+0−0

Binary file not shown.

gcc/libcpp/po/sv.po+169−169

This diff is large: its 871 lines aren’t shown here.

gcc/libcpp/po/tr.gmo+0−0

Binary file not shown.

gcc/libcpp/po/tr.po+182−165

This diff is large: its 907 lines aren’t shown here.

gcc/libcpp/po/uk.gmo+0−0

Binary file not shown.

gcc/libcpp/po/uk.po+184−169

This diff is large: its 894 lines aren’t shown here.

gcc/libcpp/po/vi.gmo+0−0

Binary file not shown.

gcc/libcpp/po/vi.po+183−166

This diff is large: its 887 lines aren’t shown here.

gcc/libcpp/po/zh_CN.gmo+0−0

Binary file not shown.

gcc/libcpp/po/zh_CN.po+182−165

This diff is large: its 906 lines aren’t shown here.

gcc/libcpp/po/zh_TW.gmo+0−0

Binary file not shown.

gcc/libcpp/po/zh_TW.po+182−165

This diff is large: its 886 lines aren’t shown here.

gcc/libcpp/symtab.c+23−14

This diff is large: its 64 lines aren’t shown here.

gcc/libcpp/system.h+5−1

This diff is large: its 19 lines aren’t shown here.

gcc/libcpp/traditional.c+51−42

This diff is large: its 254 lines aren’t shown here.

gcc/libcpp/ucnid.h+1−1

This diff is large: its 7 lines aren’t shown here.

gcc/libcpp/ucnid.tab+1−1

This diff is large: its 7 lines aren’t shown here.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t