Showing the changes to gcc/libcpp (73 of 31387 files). Show all
Unified · Split
| @@ -1,10 +1,458 @@ | ||
| 1 | −2018-07-26 Release Manager | |
| 1 | +2019-05-03 Release Manager | |
| 2 | 2 | |
| 3 | − * GCC 8.2.0 released. | |
| 3 | + * GCC 9.1.0 released. | |
| 4 | 4 | |
| 5 | −2018-05-02 Release Manager | |
| 5 | +2019-04-03 Jonathan Wakely <jwakely@redhat.com> | |
| 6 | 6 | |
| 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>. | |
| 8 | 456 | |
| 9 | 457 | 2018-03-14 David Malcolm <dmalcolm@redhat.com> |
| 10 | 458 | |
| @@ -52,10 +500,10 @@ · 41 unmodified lines | ||
| 52 | 500 | |
| 53 | 501 | 2018-01-18 Boris Kolpackov <boris@codesynthesis.com> |
| 54 | 502 | |
| 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__. | |
| 59 | 507 | |
| 60 | 508 | 2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> |
| 61 | 509 | |
| @@ -5312,7 +5760,7 @@ · 5250 unmodified lines | ||
| 5312 | 5760 | * include/symtab.h: Moved from gcc/hashtable.h. Change header |
| 5313 | 5761 | guard name. |
| 5314 | 5762 | |
| 5315 | −Copyright (C) 2004-2018 Free Software Foundation, Inc. | |
| 5763 | +Copyright (C) 2004-2019 Free Software Foundation, Inc. | |
| 5316 | 5764 | |
| 5317 | 5765 | Copying and distribution of this file, with or without modification, |
| 5318 | 5766 | are permitted in any medium without royalty provided the copyright |
| @@ -1,7 +1,7 @@ | ||
| 1 | 1 | # @configure_input@ |
| 2 | 2 | # Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in |
| 3 | 3 | |
| 4 | −# Copyright (C) 2004-2018 Free Software Foundation, Inc. | |
| 4 | +# Copyright (C) 2004-2019 Free Software Foundation, Inc. | |
| 5 | 5 | |
| 6 | 6 | #This file is part of libcpp. |
| 7 | 7 | |
| @@ -261,9 +261,8 @@ po/$(PACKAGE).pot: $(libcpp_a_SOURCES) · 253 unmodified lines | ||
| 261 | 261 | sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot |
| 262 | 262 | rm po/$(PACKAGE).pot.tmp |
| 263 | 263 | |
| 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 | |
| 267 | 266 | |
| 268 | 267 | TAGS: $(TAGS_SOURCES) |
| 269 | 268 | cd $(srcdir) && etags $(TAGS_SOURCES) |
| @@ -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. | |
| 2 | 4 | |
| 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. | |
| 6 | 5 | # This file is free software; the Free Software Foundation |
| 7 | 6 | # gives unlimited permission to copy and/or distribute it, |
| 8 | 7 | # with or without modifications, as long as this notice is preserved. |
| @@ -12,6 +11,7 @@ · 3 unmodified lines | ||
| 12 | 11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
| 13 | 12 | # PARTICULAR PURPOSE. |
| 14 | 13 | |
| 14 | +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) | |
| 15 | 15 | m4_include([../config/acx.m4]) |
| 16 | 16 | m4_include([../config/codeset.m4]) |
| 17 | 17 | m4_include([../config/depstand.m4]) |
| @@ -21,5 +21,4 @@ m4_include([../config/lead-dot.m4]) · 3 unmodified lines | ||
| 21 | 21 | m4_include([../config/lib-ld.m4]) |
| 22 | 22 | m4_include([../config/lib-link.m4]) |
| 23 | 23 | m4_include([../config/lib-prefix.m4]) |
| 24 | −m4_include([../config/override.m4]) | |
| 25 | 24 | m4_include([../config/warnings.m4]) |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* CPP Library - charsets |
| 2 | − Copyright (C) 1998-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1998-2019 Free Software Foundation, Inc. | |
| 3 | 3 | |
| 4 | 4 | Broken out of c-lex.c Apr 2003, adding valid C99 UCN ranges. |
| 5 | 5 | |
| @@ -1693,13 +1693,14 @@ cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count, · 1687 unmodified lines | ||
| 1693 | 1693 | return cpp_interpret_string_1 (pfile, from, count, to, type, NULL, NULL); |
| 1694 | 1694 | } |
| 1695 | 1695 | |
| 1696 | −/* A "do nothing" error-handling callback for use by | |
| 1696 | +/* A "do nothing" diagnostic-handling callback for use by | |
| 1697 | 1697 | cpp_interpret_string_ranges, so that it can temporarily suppress |
| 1698 | − error-handling. */ | |
| 1698 | + diagnostic-handling. */ | |
| 1699 | 1699 | |
| 1700 | 1700 | 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 *) | |
| 1703 | 1704 | { |
| 1704 | 1705 | /* no-op. */ |
| 1705 | 1706 | return true; |
| @@ -1737,25 +1738,26 @@ cpp_interpret_string_ranges (cpp_reader *pfile, const cpp_string *from, · 31 unmodified lines | ||
| 1737 | 1738 | return "execution character set != source character set"; |
| 1738 | 1739 | |
| 1739 | 1740 | /* 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 | |
| 1741 | 1742 | 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 | |
| 1744 | 1745 | 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 | |
| 1746 | 1747 | 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 *) | |
| 1749 | 1751 | ATTRIBUTE_FPTR_PRINTF(5,0); |
| 1750 | 1752 | |
| 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; | |
| 1753 | 1755 | |
| 1754 | 1756 | bool result = cpp_interpret_string_1 (pfile, from, count, NULL, type, |
| 1755 | 1757 | loc_readers, out); |
| 1756 | 1758 | |
| 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; | |
| 1759 | 1761 | |
| 1760 | 1762 | if (!result) |
| 1761 | 1763 | return "cpp_interpret_string_1 failed"; |
| @@ -2133,7 +2135,7 @@ _cpp_default_encoding (void) · 371 unmodified lines | ||
| 2133 | 2135 | /* Constructor for cpp_string_location_reader. */ |
| 2134 | 2136 | |
| 2135 | 2137 | cpp_string_location_reader:: |
| 2136 | −cpp_string_location_reader (source_location src_loc, | |
| 2138 | +cpp_string_location_reader (location_t src_loc, | |
| 2137 | 2139 | line_maps *line_table) |
| 2138 | 2140 | : m_line_table (line_table) |
| 2139 | 2141 | { |
| @@ -318,6 +318,11 @@ · 317 unmodified lines | ||
| 318 | 318 | # endif |
| 319 | 319 | #endif |
| 320 | 320 | |
| 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 | + | |
| 321 | 326 | /* Number of bits in a file offset, on hosts where this is settable. */ |
| 322 | 327 | #undef _FILE_OFFSET_BITS |
| 323 | 328 | |
| @@ -1,12 +1,12 @@ | ||
| 1 | 1 | #! /bin/sh |
| 2 | 2 | # 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 . | |
| 4 | 4 | # |
| 5 | 5 | # Report bugs to <gcc-bugs@gcc.gnu.org>. |
| 6 | 6 | # |
| 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 | +# | |
| 10 | 10 | # |
| 11 | 11 | # This configure script is free software; the Free Software Foundation |
| 12 | 12 | # gives unlimited permission to copy, distribute and modify it. |
| @@ -89,6 +89,7 @@ fi · 76 unmodified lines | ||
| 89 | 89 | IFS=" "" $as_nl" |
| 90 | 90 | |
| 91 | 91 | # Find who we are. Look in the path if we contain no directory separator. |
| 92 | +as_myself= | |
| 92 | 93 | case $0 in #(( |
| 93 | 94 | *[\\/]* ) as_myself=$0 ;; |
| 94 | 95 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
| @@ -133,6 +134,31 @@ export LANGUAGE · 38 unmodified lines | ||
| 133 | 134 | # CDPATH. |
| 134 | 135 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH |
| 135 | 136 | |
| 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;} | |
| 136 | 162 | if test "x$CONFIG_SHELL" = x; then |
| 137 | 163 | as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : |
| 138 | 164 | emulate sh |
| @@ -166,7 +192,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : · 27 unmodified lines | ||
| 166 | 192 | else |
| 167 | 193 | exitcode=1; echo positional parameters were not saved. |
| 168 | 194 | fi |
| 169 | −test x\$exitcode = x0 || exit 1" | |
| 195 | +test x\$exitcode = x0 || exit 1 | |
| 196 | +test -x / || exit 1" | |
| 170 | 197 | as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO |
| 171 | 198 | as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO |
| 172 | 199 | 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 | ||
| 211 | 238 | |
| 212 | 239 | |
| 213 | 240 | 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 | |
| 222 | 260 | fi |
| 223 | 261 | |
| 224 | 262 | if test x$as_have_required = xno; then : |
| @@ -317,10 +355,18 @@ $as_echo X"$as_dir" | · 92 unmodified lines | ||
| 317 | 355 | test -d "$as_dir" && break |
| 318 | 356 | done |
| 319 | 357 | 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" | |
| 321 | 359 | |
| 322 | 360 | |
| 323 | 361 | } # 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 | |
| 324 | 370 | # as_fn_append VAR VALUE |
| 325 | 371 | # ---------------------- |
| 326 | 372 | # Append the text in VALUE to the end of the definition contained in VAR. Take |
| @@ -357,19 +403,19 @@ else · 30 unmodified lines | ||
| 357 | 403 | fi # as_fn_arith |
| 358 | 404 | |
| 359 | 405 | |
| 360 | −# as_fn_error ERROR [LINENO LOG_FD] | |
| 361 | −# --------------------------------- | |
| 406 | +# as_fn_error STATUS ERROR [LINENO LOG_FD] | |
| 407 | +# ---------------------------------------- | |
| 362 | 408 | # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are |
| 363 | 409 | # 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. | |
| 365 | 411 | as_fn_error () |
| 366 | 412 | { |
| 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 | |
| 371 | 417 | fi |
| 372 | − $as_echo "$as_me: error: $1" >&2 | |
| 418 | + $as_echo "$as_me: error: $2" >&2 | |
| 373 | 419 | as_fn_exit $as_status |
| 374 | 420 | } # as_fn_error |
| 375 | 421 | |
| @@ -442,6 +488,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits · 66 unmodified lines | ||
| 442 | 488 | chmod +x "$as_me.lineno" || |
| 443 | 489 | { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } |
| 444 | 490 | |
| 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 | |
| 445 | 495 | # Don't try to exec as it changes $[0], causing all sort of problems |
| 446 | 496 | # (the dirname of $[0] is not the place where we might find the |
| 447 | 497 | # 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 | ||
| 476 | 526 | # ... but there are two gotchas: |
| 477 | 527 | # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. |
| 478 | 528 | # 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'. | |
| 480 | 530 | 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' | |
| 482 | 532 | elif ln conf$$.file conf$$ 2>/dev/null; then |
| 483 | 533 | as_ln_s=ln |
| 484 | 534 | else |
| 485 | − as_ln_s='cp -p' | |
| 535 | + as_ln_s='cp -pR' | |
| 486 | 536 | fi |
| 487 | 537 | else |
| 488 | − as_ln_s='cp -p' | |
| 538 | + as_ln_s='cp -pR' | |
| 489 | 539 | fi |
| 490 | 540 | rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file |
| 491 | 541 | rmdir conf$$.dir 2>/dev/null |
| @@ -497,28 +547,8 @@ else · 5 unmodified lines | ||
| 497 | 547 | as_mkdir_p=false |
| 498 | 548 | fi |
| 499 | 549 | |
| 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 | |
| 522 | 552 | |
| 523 | 553 | # Sed expression to map a string onto a valid CPP name. |
| 524 | 554 | 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 | ||
| 527 | 557 | as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" |
| 528 | 558 | |
| 529 | 559 | |
| 530 | −exec 7<&0 </dev/null 6>&1 | |
| 560 | +test -n "$DJDIR" || exec 7<&0 </dev/null | |
| 561 | +exec 6>&1 | |
| 531 | 562 | |
| 532 | 563 | # 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, | |
| 534 | 565 | # so uname gets run too. |
| 535 | 566 | ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` |
| 536 | 567 | |
| @@ -779,8 +810,9 @@ do · 242 unmodified lines | ||
| 779 | 810 | fi |
| 780 | 811 | |
| 781 | 812 | 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 ;; | |
| 784 | 816 | esac |
| 785 | 817 | |
| 786 | 818 | # Accept the important Cygnus configure options, so we can diagnose typos. |
| @@ -825,7 +857,7 @@ do · 38 unmodified lines | ||
| 825 | 857 | ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` |
| 826 | 858 | # Reject names that are not valid shell variable names. |
| 827 | 859 | 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" | |
| 829 | 861 | ac_useropt_orig=$ac_useropt |
| 830 | 862 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` |
| 831 | 863 | case $ac_user_opts in |
| @@ -851,7 +883,7 @@ do · 19 unmodified lines | ||
| 851 | 883 | ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` |
| 852 | 884 | # Reject names that are not valid shell variable names. |
| 853 | 885 | 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" | |
| 855 | 887 | ac_useropt_orig=$ac_useropt |
| 856 | 888 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` |
| 857 | 889 | case $ac_user_opts in |
| @@ -1055,7 +1087,7 @@ do · 197 unmodified lines | ||
| 1055 | 1087 | ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` |
| 1056 | 1088 | # Reject names that are not valid shell variable names. |
| 1057 | 1089 | 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" | |
| 1059 | 1091 | ac_useropt_orig=$ac_useropt |
| 1060 | 1092 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` |
| 1061 | 1093 | case $ac_user_opts in |
| @@ -1071,7 +1103,7 @@ do · 9 unmodified lines | ||
| 1071 | 1103 | ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` |
| 1072 | 1104 | # Reject names that are not valid shell variable names. |
| 1073 | 1105 | 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" | |
| 1075 | 1107 | ac_useropt_orig=$ac_useropt |
| 1076 | 1108 | ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` |
| 1077 | 1109 | case $ac_user_opts in |
| @@ -1101,8 +1133,8 @@ do · 23 unmodified lines | ||
| 1101 | 1133 | | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) |
| 1102 | 1134 | x_libraries=$ac_optarg ;; |
| 1103 | 1135 | |
| 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" | |
| 1106 | 1138 | ;; |
| 1107 | 1139 | |
| 1108 | 1140 | *=*) |
| @@ -1110,7 +1142,7 @@ Try \`$0 --help' for more information." · 1 unmodified line | ||
| 1110 | 1142 | # Reject names that are not valid shell variable names. |
| 1111 | 1143 | case $ac_envvar in #( |
| 1112 | 1144 | '' | [0-9]* | *[!_$as_cr_alnum]* ) |
| 1113 | − as_fn_error "invalid variable name: \`$ac_envvar'" ;; | |
| 1145 | + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; | |
| 1114 | 1146 | esac |
| 1115 | 1147 | eval $ac_envvar=\$ac_optarg |
| 1116 | 1148 | export $ac_envvar ;; |
| @@ -1120,7 +1152,7 @@ Try \`$0 --help' for more information." · 3 unmodified lines | ||
| 1120 | 1152 | $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 |
| 1121 | 1153 | expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && |
| 1122 | 1154 | $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}" | |
| 1124 | 1156 | ;; |
| 1125 | 1157 | |
| 1126 | 1158 | esac |
| @@ -1128,13 +1160,13 @@ done · 1 unmodified line | ||
| 1128 | 1160 | |
| 1129 | 1161 | if test -n "$ac_prev"; then |
| 1130 | 1162 | 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" | |
| 1132 | 1164 | fi |
| 1133 | 1165 | |
| 1134 | 1166 | if test -n "$ac_unrecognized_opts"; then |
| 1135 | 1167 | case $enable_option_checking in |
| 1136 | 1168 | no) ;; |
| 1137 | − fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; | |
| 1169 | + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; | |
| 1138 | 1170 | *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; |
| 1139 | 1171 | esac |
| 1140 | 1172 | fi |
| @@ -1157,7 +1189,7 @@ do · 16 unmodified lines | ||
| 1157 | 1189 | [\\/$]* | ?:[\\/]* ) continue;; |
| 1158 | 1190 | NONE | '' ) case $ac_var in *prefix ) continue;; esac;; |
| 1159 | 1191 | 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" | |
| 1161 | 1193 | done |
| 1162 | 1194 | |
| 1163 | 1195 | # There might be people who depend on the old broken behavior: `$host' |
| @@ -1171,8 +1203,6 @@ target=$target_alias · 7 unmodified lines | ||
| 1171 | 1203 | if test "x$host_alias" != x; then |
| 1172 | 1204 | if test "x$build_alias" = x; then |
| 1173 | 1205 | 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 | |
| 1176 | 1206 | elif test "x$build_alias" != "x$host_alias"; then |
| 1177 | 1207 | cross_compiling=yes |
| 1178 | 1208 | fi |
| @@ -1187,9 +1217,9 @@ test "$silent" = yes && exec 6>/dev/null · 8 unmodified lines | ||
| 1187 | 1217 | ac_pwd=`pwd` && test -n "$ac_pwd" && |
| 1188 | 1218 | ac_ls_di=`ls -di .` && |
| 1189 | 1219 | 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" | |
| 1191 | 1221 | 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" | |
| 1193 | 1223 | |
| 1194 | 1224 | |
| 1195 | 1225 | # Find the source files, if location was not specified. |
| @@ -1228,11 +1258,11 @@ else · 32 unmodified lines | ||
| 1228 | 1258 | fi |
| 1229 | 1259 | if test ! -r "$srcdir/$ac_unique_file"; then |
| 1230 | 1260 | 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" | |
| 1232 | 1262 | fi |
| 1233 | 1263 | ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" |
| 1234 | 1264 | 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" | |
| 1236 | 1266 | pwd)` |
| 1237 | 1267 | # When building in place, set srcdir=. |
| 1238 | 1268 | if test "$ac_abs_confdir" = "$ac_pwd"; then |
| @@ -1272,7 +1302,7 @@ Configuration: · 33 unmodified lines | ||
| 1272 | 1302 | --help=short display options specific to this package |
| 1273 | 1303 | --help=recursive display the short help of all the included packages |
| 1274 | 1304 | -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 | |
| 1276 | 1306 | --cache-file=FILE cache test results in FILE [disabled] |
| 1277 | 1307 | -C, --config-cache alias for \`--cache-file=config.cache' |
| 1278 | 1308 | -n, --no-create do not create output files |
| @@ -1360,7 +1390,7 @@ Some influential environment variables: · 81 unmodified lines | ||
| 1360 | 1390 | LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a |
| 1361 | 1391 | nonstandard directory <lib dir> |
| 1362 | 1392 | 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 | |
| 1364 | 1394 | you have headers in a nonstandard directory <include dir> |
| 1365 | 1395 | CXX C++ compiler command |
| 1366 | 1396 | CXXFLAGS C++ compiler flags |
| @@ -1433,9 +1463,9 @@ test -n "$ac_init_help" && exit $ac_status · 66 unmodified lines | ||
| 1433 | 1463 | if $ac_init_version; then |
| 1434 | 1464 | cat <<\_ACEOF |
| 1435 | 1465 | cpplib configure |
| 1436 | −generated by GNU Autoconf 2.64 | |
| 1466 | +generated by GNU Autoconf 2.69 | |
| 1437 | 1467 | |
| 1438 | −Copyright (C) 2009 Free Software Foundation, Inc. | |
| 1468 | +Copyright (C) 2012 Free Software Foundation, Inc. | |
| 1439 | 1469 | This configure script is free software; the Free Software Foundation |
| 1440 | 1470 | gives unlimited permission to copy, distribute and modify it. |
| 1441 | 1471 | _ACEOF |
| @@ -1479,8 +1509,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 37 unmodified lines | ||
| 1479 | 1509 | |
| 1480 | 1510 | ac_retval=1 |
| 1481 | 1511 | 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 | |
| 1484 | 1514 | |
| 1485 | 1515 | } # ac_fn_c_try_compile |
| 1486 | 1516 | |
| @@ -1517,8 +1547,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 30 unmodified lines | ||
| 1517 | 1547 | |
| 1518 | 1548 | ac_retval=1 |
| 1519 | 1549 | 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 | |
| 1522 | 1552 | |
| 1523 | 1553 | } # ac_fn_cxx_try_compile |
| 1524 | 1554 | |
| @@ -1543,7 +1573,7 @@ $as_echo "$ac_try_echo"; } >&5 · 18 unmodified lines | ||
| 1543 | 1573 | mv -f conftest.er1 conftest.err |
| 1544 | 1574 | fi |
| 1545 | 1575 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
| 1546 | − test $ac_status = 0; } >/dev/null && { | |
| 1576 | + test $ac_status = 0; } > conftest.i && { | |
| 1547 | 1577 | test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || |
| 1548 | 1578 | test ! -s conftest.err |
| 1549 | 1579 | }; then : |
| @@ -1554,8 +1584,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 4 unmodified lines | ||
| 1554 | 1584 | |
| 1555 | 1585 | ac_retval=1 |
| 1556 | 1586 | 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 | |
| 1559 | 1589 | |
| 1560 | 1590 | } # ac_fn_c_try_cpp |
| 1561 | 1591 | |
| @@ -1567,10 +1597,10 @@ fi · 5 unmodified lines | ||
| 1567 | 1597 | ac_fn_c_check_header_mongrel () |
| 1568 | 1598 | { |
| 1569 | 1599 | 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 : | |
| 1571 | 1601 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 |
| 1572 | 1602 | $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 : | |
| 1574 | 1604 | $as_echo_n "(cached) " >&6 |
| 1575 | 1605 | fi |
| 1576 | 1606 | eval ac_res=\$$3 |
| @@ -1606,7 +1636,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : · 29 unmodified lines | ||
| 1606 | 1636 | else |
| 1607 | 1637 | ac_header_preproc=no |
| 1608 | 1638 | fi |
| 1609 | −rm -f conftest.err conftest.$ac_ext | |
| 1639 | +rm -f conftest.err conftest.i conftest.$ac_ext | |
| 1610 | 1640 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 |
| 1611 | 1641 | $as_echo "$ac_header_preproc" >&6; } |
| 1612 | 1642 | |
| @@ -1629,17 +1659,15 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} · 16 unmodified lines | ||
| 1629 | 1659 | $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} |
| 1630 | 1660 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 |
| 1631 | 1661 | $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} |
| 1632 | −( cat <<\_ASBOX | |
| 1633 | −## ----------------------------------- ## | |
| 1662 | +( $as_echo "## ----------------------------------- ## | |
| 1634 | 1663 | ## Report this to gcc-bugs@gcc.gnu.org ## |
| 1635 | −## ----------------------------------- ## | |
| 1636 | −_ASBOX | |
| 1664 | +## ----------------------------------- ##" | |
| 1637 | 1665 | ) | sed "s/^/$as_me: WARNING: /" >&2 |
| 1638 | 1666 | ;; |
| 1639 | 1667 | esac |
| 1640 | 1668 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 |
| 1641 | 1669 | $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 : | |
| 1643 | 1671 | $as_echo_n "(cached) " >&6 |
| 1644 | 1672 | else |
| 1645 | 1673 | eval "$3=\$ac_header_compiler" |
| @@ -1648,7 +1676,7 @@ eval ac_res=\$$3 · 2 unmodified lines | ||
| 1648 | 1676 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 1649 | 1677 | $as_echo "$ac_res" >&6; } |
| 1650 | 1678 | 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 | |
| 1652 | 1680 | |
| 1653 | 1681 | } # ac_fn_c_check_header_mongrel |
| 1654 | 1682 | |
| @@ -1689,8 +1717,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 34 unmodified lines | ||
| 1689 | 1717 | ac_retval=$ac_status |
| 1690 | 1718 | fi |
| 1691 | 1719 | 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 | |
| 1694 | 1722 | |
| 1695 | 1723 | } # ac_fn_c_try_run |
| 1696 | 1724 | |
| @@ -1703,7 +1731,7 @@ ac_fn_c_check_header_compile () · 6 unmodified lines | ||
| 1703 | 1731 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
| 1704 | 1732 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 |
| 1705 | 1733 | $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 : | |
| 1707 | 1735 | $as_echo_n "(cached) " >&6 |
| 1708 | 1736 | else |
| 1709 | 1737 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -1721,7 +1749,7 @@ fi · 11 unmodified lines | ||
| 1721 | 1749 | eval ac_res=\$$3 |
| 1722 | 1750 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 1723 | 1751 | $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 | |
| 1725 | 1753 | |
| 1726 | 1754 | } # ac_fn_c_check_header_compile |
| 1727 | 1755 | |
| @@ -1752,7 +1780,7 @@ $as_echo "$ac_try_echo"; } >&5 · 24 unmodified lines | ||
| 1752 | 1780 | test ! -s conftest.err |
| 1753 | 1781 | } && test -s conftest$ac_exeext && { |
| 1754 | 1782 | test "$cross_compiling" = yes || |
| 1755 | − $as_test_x conftest$ac_exeext | |
| 1783 | + test -x conftest$ac_exeext | |
| 1756 | 1784 | }; then : |
| 1757 | 1785 | ac_retval=0 |
| 1758 | 1786 | else |
| @@ -1766,8 +1794,8 @@ fi · 7 unmodified lines | ||
| 1766 | 1794 | # interfere with the next link command; also delete a directory that is |
| 1767 | 1795 | # left behind by Apple's compiler. We do this before executing the actions. |
| 1768 | 1796 | 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 | |
| 1771 | 1799 | |
| 1772 | 1800 | } # ac_fn_c_try_link |
| 1773 | 1801 | |
| @@ -1780,7 +1808,7 @@ ac_fn_c_check_type () · 6 unmodified lines | ||
| 1780 | 1808 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
| 1781 | 1809 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 |
| 1782 | 1810 | $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 : | |
| 1784 | 1812 | $as_echo_n "(cached) " >&6 |
| 1785 | 1813 | else |
| 1786 | 1814 | eval "$3=no" |
| @@ -1821,7 +1849,7 @@ fi · 34 unmodified lines | ||
| 1821 | 1849 | eval ac_res=\$$3 |
| 1822 | 1850 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 1823 | 1851 | $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 | |
| 1825 | 1853 | |
| 1826 | 1854 | } # ac_fn_c_check_type |
| 1827 | 1855 | |
| @@ -1834,10 +1862,12 @@ ac_fn_c_find_uintX_t () · 6 unmodified lines | ||
| 1834 | 1862 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
| 1835 | 1863 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 |
| 1836 | 1864 | $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 : | |
| 1838 | 1866 | $as_echo_n "(cached) " >&6 |
| 1839 | 1867 | else |
| 1840 | 1868 | eval "$3=no" |
| 1869 | + # Order is important - never check a type that is potentially smaller | |
| 1870 | + # than half of the expected target width. | |
| 1841 | 1871 | for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ |
| 1842 | 1872 | 'unsigned long long int' 'unsigned short int' 'unsigned char'; do |
| 1843 | 1873 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -1846,8 +1876,9 @@ $ac_includes_default · 2 unmodified lines | ||
| 1846 | 1876 | int |
| 1847 | 1877 | main () |
| 1848 | 1878 | { |
| 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]; | |
| 1851 | 1882 | |
| 1852 | 1883 | ; |
| 1853 | 1884 | return 0; |
| @@ -1862,8 +1893,7 @@ if ac_fn_c_try_compile "$LINENO"; then : · 8 unmodified lines | ||
| 1862 | 1893 | esac |
| 1863 | 1894 | fi |
| 1864 | 1895 | 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 : | |
| 1867 | 1897 | |
| 1868 | 1898 | else |
| 1869 | 1899 | break |
| @@ -1873,7 +1903,7 @@ fi · 3 unmodified lines | ||
| 1873 | 1903 | eval ac_res=\$$3 |
| 1874 | 1904 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 1875 | 1905 | $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 | |
| 1877 | 1907 | |
| 1878 | 1908 | } # ac_fn_c_find_uintX_t |
| 1879 | 1909 | |
| @@ -1894,7 +1924,8 @@ int · 14 unmodified lines | ||
| 1894 | 1924 | main () |
| 1895 | 1925 | { |
| 1896 | 1926 | static int test_array [1 - 2 * !(($2) >= 0)]; |
| 1897 | −test_array [0] = 0 | |
| 1927 | +test_array [0] = 0; | |
| 1928 | +return test_array [0]; | |
| 1898 | 1929 | |
| 1899 | 1930 | ; |
| 1900 | 1931 | return 0; |
| @@ -1910,7 +1941,8 @@ int · 9 unmodified lines | ||
| 1910 | 1941 | main () |
| 1911 | 1942 | { |
| 1912 | 1943 | static int test_array [1 - 2 * !(($2) <= $ac_mid)]; |
| 1913 | −test_array [0] = 0 | |
| 1944 | +test_array [0] = 0; | |
| 1945 | +return test_array [0]; | |
| 1914 | 1946 | |
| 1915 | 1947 | ; |
| 1916 | 1948 | return 0; |
| @@ -1936,7 +1968,8 @@ int · 19 unmodified lines | ||
| 1936 | 1968 | main () |
| 1937 | 1969 | { |
| 1938 | 1970 | static int test_array [1 - 2 * !(($2) < 0)]; |
| 1939 | −test_array [0] = 0 | |
| 1971 | +test_array [0] = 0; | |
| 1972 | +return test_array [0]; | |
| 1940 | 1973 | |
| 1941 | 1974 | ; |
| 1942 | 1975 | return 0; |
| @@ -1952,7 +1985,8 @@ int · 9 unmodified lines | ||
| 1952 | 1985 | main () |
| 1953 | 1986 | { |
| 1954 | 1987 | static int test_array [1 - 2 * !(($2) >= $ac_mid)]; |
| 1955 | −test_array [0] = 0 | |
| 1988 | +test_array [0] = 0; | |
| 1989 | +return test_array [0]; | |
| 1956 | 1990 | |
| 1957 | 1991 | ; |
| 1958 | 1992 | return 0; |
| @@ -1986,7 +2020,8 @@ int · 27 unmodified lines | ||
| 1986 | 2020 | main () |
| 1987 | 2021 | { |
| 1988 | 2022 | static int test_array [1 - 2 * !(($2) <= $ac_mid)]; |
| 1989 | −test_array [0] = 0 | |
| 2023 | +test_array [0] = 0; | |
| 2024 | +return test_array [0]; | |
| 1990 | 2025 | |
| 1991 | 2026 | ; |
| 1992 | 2027 | return 0; |
| @@ -2050,8 +2085,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ · 57 unmodified lines | ||
| 2050 | 2085 | rm -f conftest.val |
| 2051 | 2086 | |
| 2052 | 2087 | 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 | |
| 2055 | 2090 | |
| 2056 | 2091 | } # ac_fn_c_compute_int |
| 2057 | 2092 | |
| @@ -2063,7 +2098,7 @@ ac_fn_c_check_func () · 5 unmodified lines | ||
| 2063 | 2098 | as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack |
| 2064 | 2099 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 |
| 2065 | 2100 | $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 : | |
| 2067 | 2102 | $as_echo_n "(cached) " >&6 |
| 2068 | 2103 | else |
| 2069 | 2104 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -2118,13 +2153,14 @@ fi · 48 unmodified lines | ||
| 2118 | 2153 | eval ac_res=\$$3 |
| 2119 | 2154 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 2120 | 2155 | $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 | |
| 2122 | 2157 | |
| 2123 | 2158 | } # ac_fn_c_check_func |
| 2124 | 2159 | |
| 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. | |
| 2128 | 2164 | ac_fn_c_check_decl () |
| 2129 | 2165 | { |
| 2130 | 2166 | 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 | ||
| 2132 | 2168 | as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` |
| 2133 | 2169 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 |
| 2134 | 2170 | $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 : | |
| 2136 | 2172 | $as_echo_n "(cached) " >&6 |
| 2137 | 2173 | else |
| 2138 | 2174 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -2163,7 +2199,7 @@ fi · 24 unmodified lines | ||
| 2163 | 2199 | eval ac_res=\$$3 |
| 2164 | 2200 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 |
| 2165 | 2201 | $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 | |
| 2167 | 2203 | |
| 2168 | 2204 | } # ac_fn_c_check_decl |
| 2169 | 2205 | |
| @@ -2194,7 +2230,7 @@ $as_echo "$ac_try_echo"; } >&5 · 24 unmodified lines | ||
| 2194 | 2230 | test ! -s conftest.err |
| 2195 | 2231 | } && test -s conftest$ac_exeext && { |
| 2196 | 2232 | test "$cross_compiling" = yes || |
| 2197 | − $as_test_x conftest$ac_exeext | |
| 2233 | + test -x conftest$ac_exeext | |
| 2198 | 2234 | }; then : |
| 2199 | 2235 | ac_retval=0 |
| 2200 | 2236 | else |
| @@ -2208,8 +2244,8 @@ fi · 7 unmodified lines | ||
| 2208 | 2244 | # interfere with the next link command; also delete a directory that is |
| 2209 | 2245 | # left behind by Apple's compiler. We do this before executing the actions. |
| 2210 | 2246 | 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 | |
| 2213 | 2249 | |
| 2214 | 2250 | } # ac_fn_cxx_try_link |
| 2215 | 2251 | cat >config.log <<_ACEOF |
| @@ -2217,7 +2253,7 @@ This file contains any messages produced by compilers while · 1 unmodified line | ||
| 2217 | 2253 | running configure, to aid debugging if configure makes a mistake. |
| 2218 | 2254 | |
| 2219 | 2255 | 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 | |
| 2221 | 2257 | |
| 2222 | 2258 | $ $0 $@ |
| 2223 | 2259 | |
| @@ -2327,11 +2363,9 @@ trap 'exit_status=$? · 103 unmodified lines | ||
| 2327 | 2363 | { |
| 2328 | 2364 | echo |
| 2329 | 2365 | |
| 2330 | − cat <<\_ASBOX | |
| 2331 | −## ---------------- ## | |
| 2366 | + $as_echo "## ---------------- ## | |
| 2332 | 2367 | ## Cache variables. ## |
| 2333 | −## ---------------- ## | |
| 2334 | −_ASBOX | |
| 2368 | +## ---------------- ##" | |
| 2335 | 2369 | echo |
| 2336 | 2370 | # The following way of writing the cache mishandles newlines in values, |
| 2337 | 2371 | ( |
| @@ -2365,11 +2399,9 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; · 27 unmodified lines | ||
| 2365 | 2399 | ) |
| 2366 | 2400 | echo |
| 2367 | 2401 | |
| 2368 | − cat <<\_ASBOX | |
| 2369 | −## ----------------- ## | |
| 2402 | + $as_echo "## ----------------- ## | |
| 2370 | 2403 | ## Output variables. ## |
| 2371 | −## ----------------- ## | |
| 2372 | −_ASBOX | |
| 2404 | +## ----------------- ##" | |
| 2373 | 2405 | echo |
| 2374 | 2406 | for ac_var in $ac_subst_vars |
| 2375 | 2407 | do |
| @@ -2382,11 +2414,9 @@ _ASBOX · 6 unmodified lines | ||
| 2382 | 2414 | echo |
| 2383 | 2415 | |
| 2384 | 2416 | if test -n "$ac_subst_files"; then |
| 2385 | − cat <<\_ASBOX | |
| 2386 | −## ------------------- ## | |
| 2417 | + $as_echo "## ------------------- ## | |
| 2387 | 2418 | ## File substitutions. ## |
| 2388 | −## ------------------- ## | |
| 2389 | −_ASBOX | |
| 2419 | +## ------------------- ##" | |
| 2390 | 2420 | echo |
| 2391 | 2421 | for ac_var in $ac_subst_files |
| 2392 | 2422 | do |
| @@ -2400,11 +2430,9 @@ _ASBOX · 7 unmodified lines | ||
| 2400 | 2430 | fi |
| 2401 | 2431 | |
| 2402 | 2432 | if test -s confdefs.h; then |
| 2403 | − cat <<\_ASBOX | |
| 2404 | −## ----------- ## | |
| 2433 | + $as_echo "## ----------- ## | |
| 2405 | 2434 | ## confdefs.h. ## |
| 2406 | −## ----------- ## | |
| 2407 | −_ASBOX | |
| 2435 | +## ----------- ##" | |
| 2408 | 2436 | echo |
| 2409 | 2437 | cat confdefs.h |
| 2410 | 2438 | echo |
| @@ -2459,7 +2487,12 @@ _ACEOF · 48 unmodified lines | ||
| 2459 | 2487 | ac_site_file1=NONE |
| 2460 | 2488 | ac_site_file2=NONE |
| 2461 | 2489 | 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 | |
| 2463 | 2496 | elif test "x$prefix" != xNONE; then |
| 2464 | 2497 | ac_site_file1=$prefix/share/config.site |
| 2465 | 2498 | ac_site_file2=$prefix/etc/config.site |
| @@ -2470,18 +2503,22 @@ fi · 4 unmodified lines | ||
| 2470 | 2503 | for ac_site_file in "$ac_site_file1" "$ac_site_file2" |
| 2471 | 2504 | do |
| 2472 | 2505 | 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 | |
| 2474 | 2507 | { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 |
| 2475 | 2508 | $as_echo "$as_me: loading site script $ac_site_file" >&6;} |
| 2476 | 2509 | 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; } | |
| 2478 | 2515 | fi |
| 2479 | 2516 | done |
| 2480 | 2517 | |
| 2481 | 2518 | 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 | |
| 2485 | 2522 | { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 |
| 2486 | 2523 | $as_echo "$as_me: loading cache $cache_file" >&6;} |
| 2487 | 2524 | case $cache_file in |
| @@ -2550,7 +2587,7 @@ if $ac_cache_corrupted; then · 62 unmodified lines | ||
| 2550 | 2587 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
| 2551 | 2588 | { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 |
| 2552 | 2589 | $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 | |
| 2554 | 2591 | fi |
| 2555 | 2592 | ## -------------------- ## |
| 2556 | 2593 | ## Main body of script. ## |
| @@ -2565,21 +2602,24 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu · 8 unmodified lines | ||
| 2565 | 2602 | |
| 2566 | 2603 | |
| 2567 | 2604 | |
| 2568 | − | |
| 2569 | − | |
| 2570 | − | |
| 2571 | 2605 | ac_aux_dir= |
| 2572 | 2606 | 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 | |
| 2580 | 2620 | done |
| 2581 | 2621 | 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 | |
| 2583 | 2623 | fi |
| 2584 | 2624 | |
| 2585 | 2625 | # 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 | ||
| 2593 | 2633 | |
| 2594 | 2634 | # Make sure we can run config.sub. |
| 2595 | 2635 | $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 | |
| 2597 | 2637 | |
| 2598 | 2638 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 |
| 2599 | 2639 | $as_echo_n "checking build system type... " >&6; } |
| 2600 | −if test "${ac_cv_build+set}" = set; then : | |
| 2640 | +if ${ac_cv_build+:} false; then : | |
| 2601 | 2641 | $as_echo_n "(cached) " >&6 |
| 2602 | 2642 | else |
| 2603 | 2643 | ac_build_alias=$build_alias |
| 2604 | 2644 | test "x$ac_build_alias" = x && |
| 2605 | 2645 | ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` |
| 2606 | 2646 | 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 | |
| 2608 | 2648 | 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 | |
| 2610 | 2650 | |
| 2611 | 2651 | fi |
| 2612 | 2652 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 |
| 2613 | 2653 | $as_echo "$ac_cv_build" >&6; } |
| 2614 | 2654 | case $ac_cv_build in |
| 2615 | 2655 | *-*-*) ;; |
| 2616 | −*) as_fn_error "invalid value of canonical build" "$LINENO" 5;; | |
| 2656 | +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; | |
| 2617 | 2657 | esac |
| 2618 | 2658 | build=$ac_cv_build |
| 2619 | 2659 | 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 | ||
| 2631 | 2671 | |
| 2632 | 2672 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 |
| 2633 | 2673 | $as_echo_n "checking host system type... " >&6; } |
| 2634 | −if test "${ac_cv_host+set}" = set; then : | |
| 2674 | +if ${ac_cv_host+:} false; then : | |
| 2635 | 2675 | $as_echo_n "(cached) " >&6 |
| 2636 | 2676 | else |
| 2637 | 2677 | if test "x$host_alias" = x; then |
| 2638 | 2678 | ac_cv_host=$ac_cv_build |
| 2639 | 2679 | else |
| 2640 | 2680 | 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 | |
| 2642 | 2682 | fi |
| 2643 | 2683 | |
| 2644 | 2684 | fi |
| @@ -2646,7 +2686,7 @@ fi · 1 unmodified line | ||
| 2646 | 2686 | $as_echo "$ac_cv_host" >&6; } |
| 2647 | 2687 | case $ac_cv_host in |
| 2648 | 2688 | *-*-*) ;; |
| 2649 | −*) as_fn_error "invalid value of canonical host" "$LINENO" 5;; | |
| 2689 | +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; | |
| 2650 | 2690 | esac |
| 2651 | 2691 | host=$ac_cv_host |
| 2652 | 2692 | 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 | ||
| 2664 | 2704 | |
| 2665 | 2705 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 |
| 2666 | 2706 | $as_echo_n "checking target system type... " >&6; } |
| 2667 | −if test "${ac_cv_target+set}" = set; then : | |
| 2707 | +if ${ac_cv_target+:} false; then : | |
| 2668 | 2708 | $as_echo_n "(cached) " >&6 |
| 2669 | 2709 | else |
| 2670 | 2710 | if test "x$target_alias" = x; then |
| 2671 | 2711 | ac_cv_target=$ac_cv_host |
| 2672 | 2712 | else |
| 2673 | 2713 | 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 | |
| 2675 | 2715 | fi |
| 2676 | 2716 | |
| 2677 | 2717 | fi |
| @@ -2679,7 +2719,7 @@ fi · 1 unmodified line | ||
| 2679 | 2719 | $as_echo "$ac_cv_target" >&6; } |
| 2680 | 2720 | case $ac_cv_target in |
| 2681 | 2721 | *-*-*) ;; |
| 2682 | −*) as_fn_error "invalid value of canonical target" "$LINENO" 5;; | |
| 2722 | +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; | |
| 2683 | 2723 | esac |
| 2684 | 2724 | target=$ac_cv_target |
| 2685 | 2725 | ac_save_IFS=$IFS; IFS='-' |
| @@ -2708,7 +2748,7 @@ test -n "$target_alias" && · 22 unmodified lines | ||
| 2708 | 2748 | $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } |
| 2709 | 2749 | set x ${MAKE-make} |
| 2710 | 2750 | 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 : | |
| 2712 | 2752 | $as_echo_n "(cached) " >&6 |
| 2713 | 2753 | else |
| 2714 | 2754 | cat >conftest.make <<\_ACEOF |
| @@ -2716,7 +2756,7 @@ SHELL = /bin/sh · 1 unmodified line | ||
| 2716 | 2756 | all: |
| 2717 | 2757 | @echo '@@@%%%=$(MAKE)=@@@%%%' |
| 2718 | 2758 | _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. | |
| 2720 | 2760 | case `${MAKE-make} -f conftest.make 2>/dev/null` in |
| 2721 | 2761 | *@@@%%%=?*=@@@%%%*) |
| 2722 | 2762 | eval ac_cv_prog_make_${ac_make}_set=yes;; |
| @@ -2752,7 +2792,7 @@ fi · 29 unmodified lines | ||
| 2752 | 2792 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 |
| 2753 | 2793 | $as_echo_n "checking for a BSD-compatible install... " >&6; } |
| 2754 | 2794 | if test -z "$INSTALL"; then |
| 2755 | −if test "${ac_cv_path_install+set}" = set; then : | |
| 2795 | +if ${ac_cv_path_install+:} false; then : | |
| 2756 | 2796 | $as_echo_n "(cached) " >&6 |
| 2757 | 2797 | else |
| 2758 | 2798 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
| @@ -2772,7 +2812,7 @@ case $as_dir/ in #(( · 13 unmodified lines | ||
| 2772 | 2812 | # by default. |
| 2773 | 2813 | for ac_prog in ginstall scoinst install; do |
| 2774 | 2814 | 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 | |
| 2776 | 2816 | if test $ac_prog = install && |
| 2777 | 2817 | grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then |
| 2778 | 2818 | # AIX install. It has an incompatible calling convention. |
| @@ -2838,7 +2878,7 @@ if test -n "$ac_tool_prefix"; then · 59 unmodified lines | ||
| 2838 | 2878 | set dummy ${ac_tool_prefix}gcc; ac_word=$2 |
| 2839 | 2879 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 2840 | 2880 | $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 : | |
| 2842 | 2882 | $as_echo_n "(cached) " >&6 |
| 2843 | 2883 | else |
| 2844 | 2884 | if test -n "$CC"; then |
| @@ -2850,7 +2890,7 @@ do · 5 unmodified lines | ||
| 2850 | 2890 | IFS=$as_save_IFS |
| 2851 | 2891 | test -z "$as_dir" && as_dir=. |
| 2852 | 2892 | 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 | |
| 2854 | 2894 | ac_cv_prog_CC="${ac_tool_prefix}gcc" |
| 2855 | 2895 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 2856 | 2896 | break 2 |
| @@ -2878,7 +2918,7 @@ if test -z "$ac_cv_prog_CC"; then · 21 unmodified lines | ||
| 2878 | 2918 | set dummy gcc; ac_word=$2 |
| 2879 | 2919 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 2880 | 2920 | $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 : | |
| 2882 | 2922 | $as_echo_n "(cached) " >&6 |
| 2883 | 2923 | else |
| 2884 | 2924 | if test -n "$ac_ct_CC"; then |
| @@ -2890,7 +2930,7 @@ do · 5 unmodified lines | ||
| 2890 | 2930 | IFS=$as_save_IFS |
| 2891 | 2931 | test -z "$as_dir" && as_dir=. |
| 2892 | 2932 | 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 | |
| 2894 | 2934 | ac_cv_prog_ac_ct_CC="gcc" |
| 2895 | 2935 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 2896 | 2936 | break 2 |
| @@ -2931,7 +2971,7 @@ if test -z "$CC"; then · 34 unmodified lines | ||
| 2931 | 2971 | set dummy ${ac_tool_prefix}cc; ac_word=$2 |
| 2932 | 2972 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 2933 | 2973 | $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 : | |
| 2935 | 2975 | $as_echo_n "(cached) " >&6 |
| 2936 | 2976 | else |
| 2937 | 2977 | if test -n "$CC"; then |
| @@ -2943,7 +2983,7 @@ do · 5 unmodified lines | ||
| 2943 | 2983 | IFS=$as_save_IFS |
| 2944 | 2984 | test -z "$as_dir" && as_dir=. |
| 2945 | 2985 | 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 | |
| 2947 | 2987 | ac_cv_prog_CC="${ac_tool_prefix}cc" |
| 2948 | 2988 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 2949 | 2989 | break 2 |
| @@ -2971,7 +3011,7 @@ if test -z "$CC"; then · 21 unmodified lines | ||
| 2971 | 3011 | set dummy cc; ac_word=$2 |
| 2972 | 3012 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 2973 | 3013 | $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 : | |
| 2975 | 3015 | $as_echo_n "(cached) " >&6 |
| 2976 | 3016 | else |
| 2977 | 3017 | if test -n "$CC"; then |
| @@ -2984,7 +3024,7 @@ do · 6 unmodified lines | ||
| 2984 | 3024 | IFS=$as_save_IFS |
| 2985 | 3025 | test -z "$as_dir" && as_dir=. |
| 2986 | 3026 | 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 | |
| 2988 | 3028 | if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then |
| 2989 | 3029 | ac_prog_rejected=yes |
| 2990 | 3030 | continue |
| @@ -3030,7 +3070,7 @@ if test -z "$CC"; then · 39 unmodified lines | ||
| 3030 | 3070 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 |
| 3031 | 3071 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3032 | 3072 | $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 : | |
| 3034 | 3074 | $as_echo_n "(cached) " >&6 |
| 3035 | 3075 | else |
| 3036 | 3076 | if test -n "$CC"; then |
| @@ -3042,7 +3082,7 @@ do · 5 unmodified lines | ||
| 3042 | 3082 | IFS=$as_save_IFS |
| 3043 | 3083 | test -z "$as_dir" && as_dir=. |
| 3044 | 3084 | 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 | |
| 3046 | 3086 | ac_cv_prog_CC="$ac_tool_prefix$ac_prog" |
| 3047 | 3087 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3048 | 3088 | break 2 |
| @@ -3074,7 +3114,7 @@ do · 25 unmodified lines | ||
| 3074 | 3114 | set dummy $ac_prog; ac_word=$2 |
| 3075 | 3115 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3076 | 3116 | $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 : | |
| 3078 | 3118 | $as_echo_n "(cached) " >&6 |
| 3079 | 3119 | else |
| 3080 | 3120 | if test -n "$ac_ct_CC"; then |
| @@ -3086,7 +3126,7 @@ do · 5 unmodified lines | ||
| 3086 | 3126 | IFS=$as_save_IFS |
| 3087 | 3127 | test -z "$as_dir" && as_dir=. |
| 3088 | 3128 | 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 | |
| 3090 | 3130 | ac_cv_prog_ac_ct_CC="$ac_prog" |
| 3091 | 3131 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3092 | 3132 | break 2 |
| @@ -3128,8 +3168,8 @@ fi · 35 unmodified lines | ||
| 3128 | 3168 | |
| 3129 | 3169 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 3130 | 3170 | $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; } | |
| 3133 | 3173 | |
| 3134 | 3174 | # Provide some information about the compiler. |
| 3135 | 3175 | $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 | ||
| 3150 | 3190 | ... rest of stderr output deleted ... |
| 3151 | 3191 | 10q' conftest.err >conftest.er1 |
| 3152 | 3192 | cat conftest.er1 >&5 |
| 3153 | − rm -f conftest.er1 conftest.err | |
| 3154 | 3193 | fi |
| 3194 | + rm -f conftest.er1 conftest.err | |
| 3155 | 3195 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
| 3156 | 3196 | test $ac_status = 0; } |
| 3157 | 3197 | done |
| @@ -3168,12 +3208,12 @@ main () · 10 unmodified lines | ||
| 3168 | 3208 | } |
| 3169 | 3209 | _ACEOF |
| 3170 | 3210 | 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" | |
| 3172 | 3212 | # Try to create an executable without -o first, disregard a.out. |
| 3173 | 3213 | # It will help us diagnose broken compilers, and finding out an intuition |
| 3174 | 3214 | # 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; } | |
| 3177 | 3217 | ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` |
| 3178 | 3218 | |
| 3179 | 3219 | # The possible output files: |
| @@ -3235,62 +3275,28 @@ test "$ac_cv_exeext" = no && ac_cv_exeext= · 55 unmodified lines | ||
| 3235 | 3275 | else |
| 3236 | 3276 | ac_file='' |
| 3237 | 3277 | fi |
| 3238 | −{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 | |
| 3239 | −$as_echo "$ac_file" >&6; } | |
| 3240 | 3278 | 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 | |
| 3242 | 3282 | sed 's/^/| /' conftest.$ac_ext >&5 |
| 3243 | 3283 | |
| 3244 | 3284 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 3245 | 3285 | $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; } | |
| 3249 | 3291 | 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; } | |
| 3250 | 3296 | ac_exeext=$ac_cv_exeext |
| 3251 | 3297 | |
| 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 | |
| 3286 | 3299 | 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 | − | |
| 3294 | 3300 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 |
| 3295 | 3301 | $as_echo_n "checking for suffix of executables... " >&6; } |
| 3296 | 3302 | if { { ac_try="$ac_link" |
| @@ -3320,19 +3326,78 @@ done · 23 unmodified lines | ||
| 3320 | 3326 | else |
| 3321 | 3327 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 3322 | 3328 | $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; } | |
| 3325 | 3331 | fi |
| 3326 | −rm -f conftest$ac_cv_exeext | |
| 3332 | +rm -f conftest conftest$ac_cv_exeext | |
| 3327 | 3333 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 |
| 3328 | 3334 | $as_echo "$ac_cv_exeext" >&6; } |
| 3329 | 3335 | |
| 3330 | 3336 | rm -f conftest.$ac_ext |
| 3331 | 3337 | EXEEXT=$ac_cv_exeext |
| 3332 | 3338 | 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 | |
| 3333 | 3398 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 |
| 3334 | 3399 | $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 : | |
| 3336 | 3401 | $as_echo_n "(cached) " >&6 |
| 3337 | 3402 | else |
| 3338 | 3403 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -3372,8 +3437,8 @@ sed 's/^/| /' conftest.$ac_ext >&5 · 33 unmodified lines | ||
| 3372 | 3437 | |
| 3373 | 3438 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 3374 | 3439 | $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; } | |
| 3377 | 3442 | fi |
| 3378 | 3443 | rm -f conftest.$ac_cv_objext conftest.$ac_ext |
| 3379 | 3444 | fi |
| @@ -3383,7 +3448,7 @@ OBJEXT=$ac_cv_objext · 3 unmodified lines | ||
| 3383 | 3448 | ac_objext=$OBJEXT |
| 3384 | 3449 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 |
| 3385 | 3450 | $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 : | |
| 3387 | 3452 | $as_echo_n "(cached) " >&6 |
| 3388 | 3453 | else |
| 3389 | 3454 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -3420,7 +3485,7 @@ ac_test_CFLAGS=${CFLAGS+set} · 30 unmodified lines | ||
| 3420 | 3485 | ac_save_CFLAGS=$CFLAGS |
| 3421 | 3486 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 |
| 3422 | 3487 | $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 : | |
| 3424 | 3489 | $as_echo_n "(cached) " >&6 |
| 3425 | 3490 | else |
| 3426 | 3491 | ac_save_c_werror_flag=$ac_c_werror_flag |
| @@ -3498,7 +3563,7 @@ else · 71 unmodified lines | ||
| 3498 | 3563 | fi |
| 3499 | 3564 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 |
| 3500 | 3565 | $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 : | |
| 3502 | 3567 | $as_echo_n "(cached) " >&6 |
| 3503 | 3568 | else |
| 3504 | 3569 | ac_cv_prog_cc_c89=no |
| @@ -3507,8 +3572,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext · 2 unmodified lines | ||
| 3507 | 3572 | /* end confdefs.h. */ |
| 3508 | 3573 | #include <stdarg.h> |
| 3509 | 3574 | #include <stdio.h> |
| 3510 | −#include <sys/types.h> | |
| 3511 | −#include <sys/stat.h> | |
| 3575 | +struct stat; | |
| 3512 | 3576 | /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ |
| 3513 | 3577 | struct buf { int x; }; |
| 3514 | 3578 | FILE * (*rcsopen) (struct buf *, struct stat *, int); |
| @@ -3609,7 +3673,7 @@ if test -z "$CXX"; then · 94 unmodified lines | ||
| 3609 | 3673 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 |
| 3610 | 3674 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3611 | 3675 | $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 : | |
| 3613 | 3677 | $as_echo_n "(cached) " >&6 |
| 3614 | 3678 | else |
| 3615 | 3679 | if test -n "$CXX"; then |
| @@ -3621,7 +3685,7 @@ do · 5 unmodified lines | ||
| 3621 | 3685 | IFS=$as_save_IFS |
| 3622 | 3686 | test -z "$as_dir" && as_dir=. |
| 3623 | 3687 | 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 | |
| 3625 | 3689 | ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" |
| 3626 | 3690 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3627 | 3691 | break 2 |
| @@ -3653,7 +3717,7 @@ do · 25 unmodified lines | ||
| 3653 | 3717 | set dummy $ac_prog; ac_word=$2 |
| 3654 | 3718 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3655 | 3719 | $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 : | |
| 3657 | 3721 | $as_echo_n "(cached) " >&6 |
| 3658 | 3722 | else |
| 3659 | 3723 | if test -n "$ac_ct_CXX"; then |
| @@ -3665,7 +3729,7 @@ do · 5 unmodified lines | ||
| 3665 | 3729 | IFS=$as_save_IFS |
| 3666 | 3730 | test -z "$as_dir" && as_dir=. |
| 3667 | 3731 | 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 | |
| 3669 | 3733 | ac_cv_prog_ac_ct_CXX="$ac_prog" |
| 3670 | 3734 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3671 | 3735 | break 2 |
| @@ -3723,15 +3787,15 @@ $as_echo "$ac_try_echo"; } >&5 · 51 unmodified lines | ||
| 3723 | 3787 | ... rest of stderr output deleted ... |
| 3724 | 3788 | 10q' conftest.err >conftest.er1 |
| 3725 | 3789 | cat conftest.er1 >&5 |
| 3726 | − rm -f conftest.er1 conftest.err | |
| 3727 | 3790 | fi |
| 3791 | + rm -f conftest.er1 conftest.err | |
| 3728 | 3792 | $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 |
| 3729 | 3793 | test $ac_status = 0; } |
| 3730 | 3794 | done |
| 3731 | 3795 | |
| 3732 | 3796 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 |
| 3733 | 3797 | $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 : | |
| 3735 | 3799 | $as_echo_n "(cached) " >&6 |
| 3736 | 3800 | else |
| 3737 | 3801 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -3768,7 +3832,7 @@ ac_test_CXXFLAGS=${CXXFLAGS+set} · 30 unmodified lines | ||
| 3768 | 3832 | ac_save_CXXFLAGS=$CXXFLAGS |
| 3769 | 3833 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 |
| 3770 | 3834 | $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 : | |
| 3772 | 3836 | $as_echo_n "(cached) " >&6 |
| 3773 | 3837 | else |
| 3774 | 3838 | ac_save_cxx_werror_flag=$ac_cxx_werror_flag |
| @@ -3855,7 +3919,7 @@ if test -n "$ac_tool_prefix"; then · 80 unmodified lines | ||
| 3855 | 3919 | set dummy ${ac_tool_prefix}ranlib; ac_word=$2 |
| 3856 | 3920 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3857 | 3921 | $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 : | |
| 3859 | 3923 | $as_echo_n "(cached) " >&6 |
| 3860 | 3924 | else |
| 3861 | 3925 | if test -n "$RANLIB"; then |
| @@ -3867,7 +3931,7 @@ do · 5 unmodified lines | ||
| 3867 | 3931 | IFS=$as_save_IFS |
| 3868 | 3932 | test -z "$as_dir" && as_dir=. |
| 3869 | 3933 | 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 | |
| 3871 | 3935 | ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" |
| 3872 | 3936 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3873 | 3937 | break 2 |
| @@ -3895,7 +3959,7 @@ if test -z "$ac_cv_prog_RANLIB"; then · 21 unmodified lines | ||
| 3895 | 3959 | set dummy ranlib; ac_word=$2 |
| 3896 | 3960 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 3897 | 3961 | $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 : | |
| 3899 | 3963 | $as_echo_n "(cached) " >&6 |
| 3900 | 3964 | else |
| 3901 | 3965 | if test -n "$ac_ct_RANLIB"; then |
| @@ -3907,7 +3971,7 @@ do · 5 unmodified lines | ||
| 3907 | 3971 | IFS=$as_save_IFS |
| 3908 | 3972 | test -z "$as_dir" && as_dir=. |
| 3909 | 3973 | 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 | |
| 3911 | 3975 | ac_cv_prog_ac_ct_RANLIB="ranlib" |
| 3912 | 3976 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 3913 | 3977 | break 2 |
| @@ -3956,7 +4020,7 @@ if test -n "$CPP" && test -d "$CPP"; then · 42 unmodified lines | ||
| 3956 | 4020 | CPP= |
| 3957 | 4021 | fi |
| 3958 | 4022 | if test -z "$CPP"; then |
| 3959 | − if test "${ac_cv_prog_CPP+set}" = set; then : | |
| 4023 | + if ${ac_cv_prog_CPP+:} false; then : | |
| 3960 | 4024 | $as_echo_n "(cached) " >&6 |
| 3961 | 4025 | else |
| 3962 | 4026 | # Double quotes because CPP needs to be expanded |
| @@ -3986,7 +4050,7 @@ else · 23 unmodified lines | ||
| 3986 | 4050 | # Broken: fails on valid input. |
| 3987 | 4051 | continue |
| 3988 | 4052 | fi |
| 3989 | −rm -f conftest.err conftest.$ac_ext | |
| 4053 | +rm -f conftest.err conftest.i conftest.$ac_ext | |
| 3990 | 4054 | |
| 3991 | 4055 | # OK, works on sane cases. Now check whether nonexistent headers |
| 3992 | 4056 | # can be detected and how. |
| @@ -4002,11 +4066,11 @@ else · 9 unmodified lines | ||
| 4002 | 4066 | ac_preproc_ok=: |
| 4003 | 4067 | break |
| 4004 | 4068 | fi |
| 4005 | −rm -f conftest.err conftest.$ac_ext | |
| 4069 | +rm -f conftest.err conftest.i conftest.$ac_ext | |
| 4006 | 4070 | |
| 4007 | 4071 | done |
| 4008 | 4072 | # 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 | |
| 4010 | 4074 | if $ac_preproc_ok; then : |
| 4011 | 4075 | break |
| 4012 | 4076 | fi |
| @@ -4045,7 +4109,7 @@ else · 32 unmodified lines | ||
| 4045 | 4109 | # Broken: fails on valid input. |
| 4046 | 4110 | continue |
| 4047 | 4111 | fi |
| 4048 | −rm -f conftest.err conftest.$ac_ext | |
| 4112 | +rm -f conftest.err conftest.i conftest.$ac_ext | |
| 4049 | 4113 | |
| 4050 | 4114 | # OK, works on sane cases. Now check whether nonexistent headers |
| 4051 | 4115 | # can be detected and how. |
| @@ -4061,18 +4125,18 @@ else · 9 unmodified lines | ||
| 4061 | 4125 | ac_preproc_ok=: |
| 4062 | 4126 | break |
| 4063 | 4127 | fi |
| 4064 | −rm -f conftest.err conftest.$ac_ext | |
| 4128 | +rm -f conftest.err conftest.i conftest.$ac_ext | |
| 4065 | 4129 | |
| 4066 | 4130 | done |
| 4067 | 4131 | # 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 | |
| 4069 | 4133 | if $ac_preproc_ok; then : |
| 4070 | 4134 | |
| 4071 | 4135 | else |
| 4072 | 4136 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 4073 | 4137 | $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; } | |
| 4076 | 4140 | fi |
| 4077 | 4141 | |
| 4078 | 4142 | ac_ext=c |
| @@ -4084,7 +4148,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu · 5 unmodified lines | ||
| 4084 | 4148 | |
| 4085 | 4149 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 |
| 4086 | 4150 | $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 : | |
| 4088 | 4152 | $as_echo_n "(cached) " >&6 |
| 4089 | 4153 | else |
| 4090 | 4154 | if test -z "$GREP"; then |
| @@ -4098,7 +4162,7 @@ do · 7 unmodified lines | ||
| 4098 | 4162 | for ac_prog in grep ggrep; do |
| 4099 | 4163 | for ac_exec_ext in '' $ac_executable_extensions; do |
| 4100 | 4164 | 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 | |
| 4102 | 4166 | # Check for GNU ac_path_GREP and select it if it is found. |
| 4103 | 4167 | # Check for GNU $ac_path_GREP |
| 4104 | 4168 | case `"$ac_path_GREP" --version 2>&1` in |
| @@ -4133,7 +4197,7 @@ esac · 28 unmodified lines | ||
| 4133 | 4197 | done |
| 4134 | 4198 | IFS=$as_save_IFS |
| 4135 | 4199 | 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 | |
| 4137 | 4201 | fi |
| 4138 | 4202 | else |
| 4139 | 4203 | ac_cv_path_GREP=$GREP |
| @@ -4147,7 +4211,7 @@ $as_echo "$ac_cv_path_GREP" >&6; } · 7 unmodified lines | ||
| 4147 | 4211 | |
| 4148 | 4212 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 |
| 4149 | 4213 | $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 : | |
| 4151 | 4215 | $as_echo_n "(cached) " >&6 |
| 4152 | 4216 | else |
| 4153 | 4217 | if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 |
| @@ -4164,7 +4228,7 @@ do · 10 unmodified lines | ||
| 4164 | 4228 | for ac_prog in egrep; do |
| 4165 | 4229 | for ac_exec_ext in '' $ac_executable_extensions; do |
| 4166 | 4230 | 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 | |
| 4168 | 4232 | # Check for GNU ac_path_EGREP and select it if it is found. |
| 4169 | 4233 | # Check for GNU $ac_path_EGREP |
| 4170 | 4234 | case `"$ac_path_EGREP" --version 2>&1` in |
| @@ -4199,7 +4263,7 @@ esac · 28 unmodified lines | ||
| 4199 | 4263 | done |
| 4200 | 4264 | IFS=$as_save_IFS |
| 4201 | 4265 | 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 | |
| 4203 | 4267 | fi |
| 4204 | 4268 | else |
| 4205 | 4269 | ac_cv_path_EGREP=$EGREP |
| @@ -4214,7 +4278,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; } · 8 unmodified lines | ||
| 4214 | 4278 | |
| 4215 | 4279 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 |
| 4216 | 4280 | $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 : | |
| 4218 | 4282 | $as_echo_n "(cached) " >&6 |
| 4219 | 4283 | else |
| 4220 | 4284 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -4331,8 +4395,7 @@ do : · 110 unmodified lines | ||
| 4331 | 4395 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` |
| 4332 | 4396 | ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default |
| 4333 | 4397 | " |
| 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 : | |
| 4336 | 4399 | cat >>confdefs.h <<_ACEOF |
| 4337 | 4400 | #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 |
| 4338 | 4401 | _ACEOF |
| @@ -4344,7 +4407,7 @@ done · 5 unmodified lines | ||
| 4344 | 4407 | |
| 4345 | 4408 | |
| 4346 | 4409 | 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 : | |
| 4348 | 4411 | MINIX=yes |
| 4349 | 4412 | else |
| 4350 | 4413 | MINIX= |
| @@ -4366,14 +4429,14 @@ $as_echo "#define _MINIX 1" >>confdefs.h · 15 unmodified lines | ||
| 4366 | 4429 | |
| 4367 | 4430 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 |
| 4368 | 4431 | $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 : | |
| 4370 | 4433 | $as_echo_n "(cached) " >&6 |
| 4371 | 4434 | else |
| 4372 | 4435 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 4373 | 4436 | /* end confdefs.h. */ |
| 4374 | 4437 | |
| 4375 | −# define __EXTENSIONS__ 1 | |
| 4376 | − $ac_includes_default | |
| 4438 | +# define __EXTENSIONS__ 1 | |
| 4439 | + $ac_includes_default | |
| 4377 | 4440 | int |
| 4378 | 4441 | main () |
| 4379 | 4442 | { |
| @@ -4412,7 +4475,7 @@ if test "$enable_largefile" != no; then · 32 unmodified lines | ||
| 4412 | 4475 | |
| 4413 | 4476 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 |
| 4414 | 4477 | $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 : | |
| 4416 | 4479 | $as_echo_n "(cached) " >&6 |
| 4417 | 4480 | else |
| 4418 | 4481 | ac_cv_sys_largefile_CC=no |
| @@ -4463,7 +4526,7 @@ $as_echo "$ac_cv_sys_largefile_CC" >&6; } · 44 unmodified lines | ||
| 4463 | 4526 | |
| 4464 | 4527 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 |
| 4465 | 4528 | $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 : | |
| 4467 | 4530 | $as_echo_n "(cached) " >&6 |
| 4468 | 4531 | else |
| 4469 | 4532 | while :; do |
| @@ -4532,7 +4595,7 @@ rm -rf conftest* · 62 unmodified lines | ||
| 4532 | 4595 | if test $ac_cv_sys_file_offset_bits = unknown; then |
| 4533 | 4596 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 |
| 4534 | 4597 | $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 : | |
| 4536 | 4599 | $as_echo_n "(cached) " >&6 |
| 4537 | 4600 | else |
| 4538 | 4601 | while :; do |
| @@ -4599,6 +4662,8 @@ _ACEOF · 60 unmodified lines | ||
| 4599 | 4662 | esac |
| 4600 | 4663 | rm -rf conftest* |
| 4601 | 4664 | fi |
| 4665 | + | |
| 4666 | + | |
| 4602 | 4667 | fi |
| 4603 | 4668 | |
| 4604 | 4669 | |
| @@ -4609,7 +4674,7 @@ do · 4 unmodified lines | ||
| 4609 | 4674 | set dummy $ac_prog; ac_word=$2 |
| 4610 | 4675 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 4611 | 4676 | $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 : | |
| 4613 | 4678 | $as_echo_n "(cached) " >&6 |
| 4614 | 4679 | else |
| 4615 | 4680 | if test -n "$ACLOCAL"; then |
| @@ -4621,7 +4686,7 @@ do · 5 unmodified lines | ||
| 4621 | 4686 | IFS=$as_save_IFS |
| 4622 | 4687 | test -z "$as_dir" && as_dir=. |
| 4623 | 4688 | 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 | |
| 4625 | 4690 | ac_cv_prog_ACLOCAL="$ac_prog" |
| 4626 | 4691 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 4627 | 4692 | break 2 |
| @@ -4652,7 +4717,7 @@ do · 24 unmodified lines | ||
| 4652 | 4717 | set dummy $ac_prog; ac_word=$2 |
| 4653 | 4718 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 4654 | 4719 | $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 : | |
| 4656 | 4721 | $as_echo_n "(cached) " >&6 |
| 4657 | 4722 | else |
| 4658 | 4723 | if test -n "$AUTOCONF"; then |
| @@ -4664,7 +4729,7 @@ do · 5 unmodified lines | ||
| 4664 | 4729 | IFS=$as_save_IFS |
| 4665 | 4730 | test -z "$as_dir" && as_dir=. |
| 4666 | 4731 | 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 | |
| 4668 | 4733 | ac_cv_prog_AUTOCONF="$ac_prog" |
| 4669 | 4734 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 4670 | 4735 | break 2 |
| @@ -4695,7 +4760,7 @@ do · 24 unmodified lines | ||
| 4695 | 4760 | set dummy $ac_prog; ac_word=$2 |
| 4696 | 4761 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
| 4697 | 4762 | $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 : | |
| 4699 | 4764 | $as_echo_n "(cached) " >&6 |
| 4700 | 4765 | else |
| 4701 | 4766 | if test -n "$AUTOHEADER"; then |
| @@ -4707,7 +4772,7 @@ do · 5 unmodified lines | ||
| 4707 | 4772 | IFS=$as_save_IFS |
| 4708 | 4773 | test -z "$as_dir" && as_dir=. |
| 4709 | 4774 | 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 | |
| 4711 | 4776 | ac_cv_prog_AUTOHEADER="$ac_prog" |
| 4712 | 4777 | $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 |
| 4713 | 4778 | break 2 |
| @@ -4756,7 +4821,7 @@ for real_option in -W -Wall -Wno-narrowing -Wwrite-strings \ · 42 unmodified lines | ||
| 4756 | 4821 | |
| 4757 | 4822 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5 |
| 4758 | 4823 | $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 : | |
| 4760 | 4825 | $as_echo_n "(cached) " >&6 |
| 4761 | 4826 | else |
| 4762 | 4827 | CFLAGS="$option" |
| @@ -4814,7 +4879,7 @@ for real_option in -Wstrict-prototypes -Wmissing-prototypes \ · 51 unmodified lines | ||
| 4814 | 4879 | |
| 4815 | 4880 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5 |
| 4816 | 4881 | $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 : | |
| 4818 | 4883 | $as_echo_n "(cached) " >&6 |
| 4819 | 4884 | else |
| 4820 | 4885 | CFLAGS="$option" |
| @@ -4864,7 +4929,7 @@ WARN_PEDANTIC= · 43 unmodified lines | ||
| 4864 | 4929 | if test "$GCC" = yes; then : |
| 4865 | 4930 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long" >&5 |
| 4866 | 4931 | $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 : | |
| 4868 | 4933 | $as_echo_n "(cached) " >&6 |
| 4869 | 4934 | else |
| 4870 | 4935 | save_CFLAGS="$CFLAGS" |
| @@ -4923,7 +4988,7 @@ for real_option in -fno-exceptions -fno-rtti; do · 52 unmodified lines | ||
| 4923 | 4988 | |
| 4924 | 4989 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5 |
| 4925 | 4990 | $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 : | |
| 4927 | 4992 | $as_echo_n "(cached) " >&6 |
| 4928 | 4993 | else |
| 4929 | 4994 | CFLAGS="$option" |
| @@ -5019,7 +5084,7 @@ _ACEOF · 89 unmodified lines | ||
| 5019 | 5084 | if ac_fn_cxx_try_compile "$LINENO"; then : |
| 5020 | 5085 | |
| 5021 | 5086 | else |
| 5022 | − as_fn_error "C++ compiler missing or inoperational" "$LINENO" 5 | |
| 5087 | + as_fn_error $? "C++ compiler missing or inoperational" "$LINENO" 5 | |
| 5023 | 5088 | fi |
| 5024 | 5089 | rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext |
| 5025 | 5090 | ac_ext=c |
| @@ -5033,7 +5098,7 @@ depcc="$CXX" am_compiler_list= · 7 unmodified lines | ||
| 5033 | 5098 | am_depcomp=$ac_aux_dir/depcomp |
| 5034 | 5099 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 |
| 5035 | 5100 | $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 : | |
| 5037 | 5102 | $as_echo_n "(cached) " >&6 |
| 5038 | 5103 | else |
| 5039 | 5104 | if test -f "$am_depcomp"; then |
| @@ -5119,7 +5184,7 @@ fi · 79 unmodified lines | ||
| 5119 | 5184 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 |
| 5120 | 5185 | $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } |
| 5121 | 5186 | 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 | |
| 5123 | 5188 | else CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type |
| 5124 | 5189 | |
| 5125 | 5190 | fi |
| @@ -5128,7 +5193,7 @@ fi · 2 unmodified lines | ||
| 5128 | 5193 | # Checks for header files. |
| 5129 | 5194 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 |
| 5130 | 5195 | $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 : | |
| 5132 | 5197 | $as_echo_n "(cached) " >&6 |
| 5133 | 5198 | else |
| 5134 | 5199 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -5163,7 +5228,7 @@ fi · 28 unmodified lines | ||
| 5163 | 5228 | |
| 5164 | 5229 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5 |
| 5165 | 5230 | $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 : | |
| 5167 | 5232 | $as_echo_n "(cached) " >&6 |
| 5168 | 5233 | else |
| 5169 | 5234 | 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 | ||
| 5199 | 5264 | do : |
| 5200 | 5265 | as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` |
| 5201 | 5266 | 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 : | |
| 5204 | 5268 | cat >>confdefs.h <<_ACEOF |
| 5205 | 5269 | #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 |
| 5206 | 5270 | _ACEOF |
| @@ -5213,7 +5277,7 @@ done · 6 unmodified lines | ||
| 5213 | 5277 | # Checks for typedefs, structures, and compiler characteristics. |
| 5214 | 5278 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 |
| 5215 | 5279 | $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 : | |
| 5217 | 5281 | $as_echo_n "(cached) " >&6 |
| 5218 | 5282 | else |
| 5219 | 5283 | ac_cv_c_bigendian=unknown |
| @@ -5431,13 +5495,13 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h · 211 unmodified lines | ||
| 5431 | 5495 | |
| 5432 | 5496 | ;; #( |
| 5433 | 5497 | *) |
| 5434 | − as_fn_error "unknown endianness | |
| 5498 | + as_fn_error $? "unknown endianness | |
| 5435 | 5499 | presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; |
| 5436 | 5500 | esac |
| 5437 | 5501 | |
| 5438 | 5502 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 |
| 5439 | 5503 | $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 : | |
| 5441 | 5505 | $as_echo_n "(cached) " >&6 |
| 5442 | 5506 | else |
| 5443 | 5507 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -5446,11 +5510,11 @@ else · 2 unmodified lines | ||
| 5446 | 5510 | int |
| 5447 | 5511 | main () |
| 5448 | 5512 | { |
| 5449 | −/* FIXME: Include the comments suggested by Paul. */ | |
| 5513 | + | |
| 5450 | 5514 | #ifndef __cplusplus |
| 5451 | − /* Ultrix mips cc rejects this. */ | |
| 5515 | + /* Ultrix mips cc rejects this sort of thing. */ | |
| 5452 | 5516 | typedef int charset[2]; |
| 5453 | − const charset cs; | |
| 5517 | + const charset cs = { 0, 0 }; | |
| 5454 | 5518 | /* SunOS 4.1.1 cc rejects this. */ |
| 5455 | 5519 | char const *const *pcpcc; |
| 5456 | 5520 | char **ppc; |
| @@ -5467,8 +5531,9 @@ main () · 10 unmodified lines | ||
| 5467 | 5531 | ++pcpcc; |
| 5468 | 5532 | ppc = (char**) pcpcc; |
| 5469 | 5533 | 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; | |
| 5472 | 5537 | char const *s = 0 ? (char *) 0 : (char const *) 0; |
| 5473 | 5538 | |
| 5474 | 5539 | *t++ = 0; |
| @@ -5484,10 +5549,10 @@ main () · 9 unmodified lines | ||
| 5484 | 5549 | iptr p = 0; |
| 5485 | 5550 | ++p; |
| 5486 | 5551 | } |
| 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 | |
| 5488 | 5553 | "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; | |
| 5491 | 5556 | } |
| 5492 | 5557 | { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ |
| 5493 | 5558 | const int foo = 10; |
| @@ -5517,7 +5582,7 @@ fi · 23 unmodified lines | ||
| 5517 | 5582 | |
| 5518 | 5583 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 |
| 5519 | 5584 | $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 : | |
| 5521 | 5586 | $as_echo_n "(cached) " >&6 |
| 5522 | 5587 | else |
| 5523 | 5588 | ac_cv_c_inline=no |
| @@ -5559,7 +5624,7 @@ esac · 35 unmodified lines | ||
| 5559 | 5624 | |
| 5560 | 5625 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5 |
| 5561 | 5626 | $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 : | |
| 5563 | 5628 | $as_echo_n "(cached) " >&6 |
| 5564 | 5629 | else |
| 5565 | 5630 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -5602,7 +5667,7 @@ esac · 36 unmodified lines | ||
| 5602 | 5667 | fi |
| 5603 | 5668 | |
| 5604 | 5669 | 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 : | |
| 5606 | 5671 | |
| 5607 | 5672 | else |
| 5608 | 5673 | |
| @@ -5613,7 +5678,7 @@ _ACEOF · 4 unmodified lines | ||
| 5613 | 5678 | fi |
| 5614 | 5679 | |
| 5615 | 5680 | 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 : | |
| 5617 | 5682 | |
| 5618 | 5683 | else |
| 5619 | 5684 | |
| @@ -5624,7 +5689,7 @@ _ACEOF · 4 unmodified lines | ||
| 5624 | 5689 | fi |
| 5625 | 5690 | |
| 5626 | 5691 | 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 : | |
| 5628 | 5693 | |
| 5629 | 5694 | else |
| 5630 | 5695 | |
| @@ -5636,7 +5701,7 @@ fi · 5 unmodified lines | ||
| 5636 | 5701 | |
| 5637 | 5702 | |
| 5638 | 5703 | 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 : | |
| 5640 | 5705 | |
| 5641 | 5706 | $as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h |
| 5642 | 5707 | |
| @@ -5650,7 +5715,8 @@ int · 7 unmodified lines | ||
| 5650 | 5715 | main () |
| 5651 | 5716 | { |
| 5652 | 5717 | 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]; | |
| 5654 | 5720 | |
| 5655 | 5721 | ; |
| 5656 | 5722 | return 0; |
| @@ -5671,7 +5737,7 @@ fi · 14 unmodified lines | ||
| 5671 | 5737 | |
| 5672 | 5738 | |
| 5673 | 5739 | 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 : | |
| 5675 | 5741 | |
| 5676 | 5742 | else |
| 5677 | 5743 | |
| @@ -5696,11 +5762,11 @@ _ACEOF · 18 unmodified lines | ||
| 5696 | 5762 | esac |
| 5697 | 5763 | |
| 5698 | 5764 | 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 | |
| 5700 | 5766 | fi |
| 5701 | 5767 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 |
| 5702 | 5768 | $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 : | |
| 5704 | 5770 | $as_echo_n "(cached) " >&6 |
| 5705 | 5771 | else |
| 5706 | 5772 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -5739,7 +5805,7 @@ fi · 32 unmodified lines | ||
| 5739 | 5805 | # This bug is HP SR number 8606223364. |
| 5740 | 5806 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 |
| 5741 | 5807 | $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 : | |
| 5743 | 5809 | $as_echo_n "(cached) " >&6 |
| 5744 | 5810 | else |
| 5745 | 5811 | 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 | ||
| 5748 | 5814 | if test "$ac_cv_type_int" = yes; then |
| 5749 | 5815 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 5750 | 5816 | $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; } | |
| 5754 | 5819 | else |
| 5755 | 5820 | ac_cv_sizeof_int=0 |
| 5756 | 5821 | fi |
| @@ -5773,7 +5838,7 @@ _ACEOF · 16 unmodified lines | ||
| 5773 | 5838 | # This bug is HP SR number 8606223364. |
| 5774 | 5839 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 |
| 5775 | 5840 | $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 : | |
| 5777 | 5842 | $as_echo_n "(cached) " >&6 |
| 5778 | 5843 | else |
| 5779 | 5844 | 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 | ||
| 5782 | 5847 | if test "$ac_cv_type_long" = yes; then |
| 5783 | 5848 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
| 5784 | 5849 | $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; } | |
| 5788 | 5852 | else |
| 5789 | 5853 | ac_cv_sizeof_long=0 |
| 5790 | 5854 | fi |
| @@ -5806,8 +5870,7 @@ for ac_func in clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked · 15 unmodified lines | ||
| 5806 | 5870 | do : |
| 5807 | 5871 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` |
| 5808 | 5872 | 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 : | |
| 5811 | 5874 | cat >>confdefs.h <<_ACEOF |
| 5812 | 5875 | #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 |
| 5813 | 5876 | _ACEOF |
| @@ -5816,7 +5879,7 @@ fi · 2 unmodified lines | ||
| 5816 | 5879 | done |
| 5817 | 5880 | |
| 5818 | 5881 | 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 : | |
| 5820 | 5883 | ac_have_decl=1 |
| 5821 | 5884 | else |
| 5822 | 5885 | ac_have_decl=0 |
| @@ -5826,7 +5889,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5826 | 5889 | #define HAVE_DECL_ABORT $ac_have_decl |
| 5827 | 5890 | _ACEOF |
| 5828 | 5891 | 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 : | |
| 5830 | 5893 | ac_have_decl=1 |
| 5831 | 5894 | else |
| 5832 | 5895 | ac_have_decl=0 |
| @@ -5835,8 +5898,9 @@ fi · 2 unmodified lines | ||
| 5835 | 5898 | cat >>confdefs.h <<_ACEOF |
| 5836 | 5899 | #define HAVE_DECL_ASPRINTF $ac_have_decl |
| 5837 | 5900 | _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 : | |
| 5840 | 5904 | ac_have_decl=1 |
| 5841 | 5905 | else |
| 5842 | 5906 | ac_have_decl=0 |
| @@ -5846,7 +5910,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5846 | 5910 | #define HAVE_DECL_BASENAME $ac_have_decl |
| 5847 | 5911 | _ACEOF |
| 5848 | 5912 | 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 : | |
| 5850 | 5914 | ac_have_decl=1 |
| 5851 | 5915 | else |
| 5852 | 5916 | ac_have_decl=0 |
| @@ -5856,7 +5920,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5856 | 5920 | #define HAVE_DECL_ERRNO $ac_have_decl |
| 5857 | 5921 | _ACEOF |
| 5858 | 5922 | 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 : | |
| 5860 | 5924 | ac_have_decl=1 |
| 5861 | 5925 | else |
| 5862 | 5926 | ac_have_decl=0 |
| @@ -5866,7 +5930,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5866 | 5930 | #define HAVE_DECL_GETOPT $ac_have_decl |
| 5867 | 5931 | _ACEOF |
| 5868 | 5932 | 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 : | |
| 5870 | 5934 | ac_have_decl=1 |
| 5871 | 5935 | else |
| 5872 | 5936 | ac_have_decl=0 |
| @@ -5877,7 +5941,7 @@ cat >>confdefs.h <<_ACEOF · 4 unmodified lines | ||
| 5877 | 5941 | _ACEOF |
| 5878 | 5942 | |
| 5879 | 5943 | 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 : | |
| 5881 | 5945 | ac_have_decl=1 |
| 5882 | 5946 | else |
| 5883 | 5947 | ac_have_decl=0 |
| @@ -5887,7 +5951,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5887 | 5951 | #define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl |
| 5888 | 5952 | _ACEOF |
| 5889 | 5953 | 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 : | |
| 5891 | 5955 | ac_have_decl=1 |
| 5892 | 5956 | else |
| 5893 | 5957 | ac_have_decl=0 |
| @@ -5897,7 +5961,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5897 | 5961 | #define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl |
| 5898 | 5962 | _ACEOF |
| 5899 | 5963 | 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 : | |
| 5901 | 5965 | ac_have_decl=1 |
| 5902 | 5966 | else |
| 5903 | 5967 | ac_have_decl=0 |
| @@ -5907,7 +5971,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5907 | 5971 | #define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl |
| 5908 | 5972 | _ACEOF |
| 5909 | 5973 | 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 : | |
| 5911 | 5975 | ac_have_decl=1 |
| 5912 | 5976 | else |
| 5913 | 5977 | ac_have_decl=0 |
| @@ -5917,7 +5981,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5917 | 5981 | #define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl |
| 5918 | 5982 | _ACEOF |
| 5919 | 5983 | 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 : | |
| 5921 | 5985 | ac_have_decl=1 |
| 5922 | 5986 | else |
| 5923 | 5987 | ac_have_decl=0 |
| @@ -5927,7 +5991,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5927 | 5991 | #define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl |
| 5928 | 5992 | _ACEOF |
| 5929 | 5993 | 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 : | |
| 5931 | 5995 | ac_have_decl=1 |
| 5932 | 5996 | else |
| 5933 | 5997 | ac_have_decl=0 |
| @@ -5937,7 +6001,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5937 | 6001 | #define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl |
| 5938 | 6002 | _ACEOF |
| 5939 | 6003 | 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 : | |
| 5941 | 6005 | ac_have_decl=1 |
| 5942 | 6006 | else |
| 5943 | 6007 | ac_have_decl=0 |
| @@ -5947,7 +6011,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5947 | 6011 | #define HAVE_DECL_FILENO_UNLOCKED $ac_have_decl |
| 5948 | 6012 | _ACEOF |
| 5949 | 6013 | 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 : | |
| 5951 | 6015 | ac_have_decl=1 |
| 5952 | 6016 | else |
| 5953 | 6017 | ac_have_decl=0 |
| @@ -5957,7 +6021,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5957 | 6021 | #define HAVE_DECL_FPRINTF_UNLOCKED $ac_have_decl |
| 5958 | 6022 | _ACEOF |
| 5959 | 6023 | 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 : | |
| 5961 | 6025 | ac_have_decl=1 |
| 5962 | 6026 | else |
| 5963 | 6027 | ac_have_decl=0 |
| @@ -5967,7 +6031,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5967 | 6031 | #define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl |
| 5968 | 6032 | _ACEOF |
| 5969 | 6033 | 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 : | |
| 5971 | 6035 | ac_have_decl=1 |
| 5972 | 6036 | else |
| 5973 | 6037 | ac_have_decl=0 |
| @@ -5977,7 +6041,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5977 | 6041 | #define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl |
| 5978 | 6042 | _ACEOF |
| 5979 | 6043 | 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 : | |
| 5981 | 6045 | ac_have_decl=1 |
| 5982 | 6046 | else |
| 5983 | 6047 | ac_have_decl=0 |
| @@ -5987,7 +6051,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5987 | 6051 | #define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl |
| 5988 | 6052 | _ACEOF |
| 5989 | 6053 | 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 : | |
| 5991 | 6055 | ac_have_decl=1 |
| 5992 | 6056 | else |
| 5993 | 6057 | ac_have_decl=0 |
| @@ -5997,7 +6061,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 5997 | 6061 | #define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl |
| 5998 | 6062 | _ACEOF |
| 5999 | 6063 | 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 : | |
| 6001 | 6065 | ac_have_decl=1 |
| 6002 | 6066 | else |
| 6003 | 6067 | ac_have_decl=0 |
| @@ -6007,7 +6071,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 6007 | 6071 | #define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl |
| 6008 | 6072 | _ACEOF |
| 6009 | 6073 | 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 : | |
| 6011 | 6075 | ac_have_decl=1 |
| 6012 | 6076 | else |
| 6013 | 6077 | ac_have_decl=0 |
| @@ -6017,7 +6081,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 6017 | 6081 | #define HAVE_DECL_GETC_UNLOCKED $ac_have_decl |
| 6018 | 6082 | _ACEOF |
| 6019 | 6083 | 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 : | |
| 6021 | 6085 | ac_have_decl=1 |
| 6022 | 6086 | else |
| 6023 | 6087 | ac_have_decl=0 |
| @@ -6027,7 +6091,7 @@ cat >>confdefs.h <<_ACEOF · 3 unmodified lines | ||
| 6027 | 6091 | #define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl |
| 6028 | 6092 | _ACEOF |
| 6029 | 6093 | 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 : | |
| 6031 | 6095 | ac_have_decl=1 |
| 6032 | 6096 | else |
| 6033 | 6097 | ac_have_decl=0 |
| @@ -6043,7 +6107,7 @@ _ACEOF · 9 unmodified lines | ||
| 6043 | 6107 | # for constant arguments. Useless! |
| 6044 | 6108 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 |
| 6045 | 6109 | $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 : | |
| 6047 | 6111 | $as_echo_n "(cached) " >&6 |
| 6048 | 6112 | else |
| 6049 | 6113 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6076,7 +6140,7 @@ fi · 26 unmodified lines | ||
| 6076 | 6140 | |
| 6077 | 6141 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 |
| 6078 | 6142 | $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 : | |
| 6080 | 6144 | $as_echo_n "(cached) " >&6 |
| 6081 | 6145 | else |
| 6082 | 6146 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6095,7 +6159,7 @@ else · 12 unmodified lines | ||
| 6095 | 6159 | #pragma alloca |
| 6096 | 6160 | # else |
| 6097 | 6161 | # ifndef alloca /* predefined by HP cc +Olibcalls */ |
| 6098 | −char *alloca (); | |
| 6162 | +void *alloca (size_t); | |
| 6099 | 6163 | # endif |
| 6100 | 6164 | # endif |
| 6101 | 6165 | # endif |
| @@ -6139,7 +6203,7 @@ $as_echo "#define C_ALLOCA 1" >>confdefs.h · 37 unmodified lines | ||
| 6139 | 6203 | |
| 6140 | 6204 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 |
| 6141 | 6205 | $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 : | |
| 6143 | 6207 | $as_echo_n "(cached) " >&6 |
| 6144 | 6208 | else |
| 6145 | 6209 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6166,8 +6230,7 @@ if test $ac_cv_os_cray = yes; then · 20 unmodified lines | ||
| 6166 | 6230 | for ac_func in _getb67 GETB67 getb67; do |
| 6167 | 6231 | as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` |
| 6168 | 6232 | 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 : | |
| 6171 | 6234 | |
| 6172 | 6235 | cat >>confdefs.h <<_ACEOF |
| 6173 | 6236 | #define CRAY_STACKSEG_END $ac_func |
| @@ -6181,7 +6244,7 @@ fi · 7 unmodified lines | ||
| 6181 | 6244 | |
| 6182 | 6245 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 |
| 6183 | 6246 | $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 : | |
| 6185 | 6248 | $as_echo_n "(cached) " >&6 |
| 6186 | 6249 | else |
| 6187 | 6250 | if test "$cross_compiling" = yes; then : |
| @@ -6191,23 +6254,20 @@ else · 3 unmodified lines | ||
| 6191 | 6254 | /* end confdefs.h. */ |
| 6192 | 6255 | $ac_includes_default |
| 6193 | 6256 | int |
| 6194 | −find_stack_direction () | |
| 6257 | +find_stack_direction (int *addr, int depth) | |
| 6195 | 6258 | { |
| 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; | |
| 6205 | 6265 | } |
| 6206 | 6266 | |
| 6207 | 6267 | int |
| 6208 | −main () | |
| 6268 | +main (int argc, char **argv) | |
| 6209 | 6269 | { |
| 6210 | − return find_stack_direction () < 0; | |
| 6270 | + return find_stack_direction (0, argc + !argv + 20) < 0; | |
| 6211 | 6271 | } |
| 6212 | 6272 | _ACEOF |
| 6213 | 6273 | if ac_fn_c_try_run "$LINENO"; then : |
| @@ -6231,7 +6291,7 @@ fi · 17 unmodified lines | ||
| 6231 | 6291 | |
| 6232 | 6292 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 |
| 6233 | 6293 | $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 : | |
| 6235 | 6295 | $as_echo_n "(cached) " >&6 |
| 6236 | 6296 | else |
| 6237 | 6297 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6344,7 +6404,7 @@ fi · 106 unmodified lines | ||
| 6344 | 6404 | |
| 6345 | 6405 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 |
| 6346 | 6406 | $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 : | |
| 6348 | 6408 | $as_echo_n "(cached) " >&6 |
| 6349 | 6409 | else |
| 6350 | 6410 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6448,7 +6508,7 @@ fi · 97 unmodified lines | ||
| 6448 | 6508 | |
| 6449 | 6509 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uchar" >&5 |
| 6450 | 6510 | $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 : | |
| 6452 | 6512 | $as_echo_n "(cached) " >&6 |
| 6453 | 6513 | else |
| 6454 | 6514 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| @@ -6564,7 +6624,7 @@ else · 109 unmodified lines | ||
| 6564 | 6624 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 |
| 6565 | 6625 | $as_echo_n "checking for non-GNU ld... " >&6; } |
| 6566 | 6626 | fi |
| 6567 | −if test "${acl_cv_path_LD+set}" = set; then : | |
| 6627 | +if ${acl_cv_path_LD+:} false; then : | |
| 6568 | 6628 | $as_echo_n "(cached) " >&6 |
| 6569 | 6629 | else |
| 6570 | 6630 | if test -z "$LD"; then |
| @@ -6597,10 +6657,10 @@ else · 26 unmodified lines | ||
| 6597 | 6657 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
| 6598 | 6658 | $as_echo "no" >&6; } |
| 6599 | 6659 | 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 | |
| 6601 | 6661 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 |
| 6602 | 6662 | $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 : | |
| 6604 | 6664 | $as_echo_n "(cached) " >&6 |
| 6605 | 6665 | else |
| 6606 | 6666 | # 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 | ||
| 6618 | 6678 | |
| 6619 | 6679 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 |
| 6620 | 6680 | $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 : | |
| 6622 | 6682 | $as_echo_n "(cached) " >&6 |
| 6623 | 6683 | else |
| 6624 | 6684 | |
| @@ -7036,7 +7096,7 @@ fi · 411 unmodified lines | ||
| 7036 | 7096 | |
| 7037 | 7097 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 |
| 7038 | 7098 | $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 : | |
| 7040 | 7100 | $as_echo_n "(cached) " >&6 |
| 7041 | 7101 | else |
| 7042 | 7102 | |
| @@ -7105,7 +7165,7 @@ rm -f core conftest.err conftest.$ac_objext \ · 62 unmodified lines | ||
| 7105 | 7165 | if test "$am_cv_func_iconv" != yes; then |
| 7106 | 7166 | am_save_CPPFLAGS="$CPPFLAGS" |
| 7107 | 7167 | am_save_LIBS="$LIBS" |
| 7108 | − CPPFLAGS="$LIBS $INCICONV" | |
| 7168 | + CPPFLAGS="$CPPFLAGS $INCICONV" | |
| 7109 | 7169 | LIBS="$LIBS $LIBICONV" |
| 7110 | 7170 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
| 7111 | 7171 | /* end confdefs.h. */ |
| @@ -7177,7 +7237,7 @@ $as_echo "$LIBICONV" >&6; } · 65 unmodified lines | ||
| 7177 | 7237 | if test "$am_cv_func_iconv" = yes; then |
| 7178 | 7238 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 |
| 7179 | 7239 | $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 : | |
| 7181 | 7241 | $as_echo_n "(cached) " >&6 |
| 7182 | 7242 | else |
| 7183 | 7243 | |
| @@ -7378,7 +7438,7 @@ if test x$enable_valgrind_annotations != xno \ · 194 unmodified lines | ||
| 7378 | 7438 | if (test $have_valgrind_h = no \ |
| 7379 | 7439 | && test $gcc_cv_header_memcheck_h = no \ |
| 7380 | 7440 | && 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 | |
| 7382 | 7442 | fi |
| 7383 | 7443 | |
| 7384 | 7444 | $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 | ||
| 7455 | 7515 | :end' >>confcache |
| 7456 | 7516 | if diff "$cache_file" confcache >/dev/null 2>&1; then :; else |
| 7457 | 7517 | if test -w "$cache_file"; then |
| 7458 | − test "x$cache_file" != "x/dev/null" && | |
| 7518 | + if test "x$cache_file" != "x/dev/null"; then | |
| 7459 | 7519 | { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 |
| 7460 | 7520 | $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 | |
| 7462 | 7533 | else |
| 7463 | 7534 | { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 |
| 7464 | 7535 | $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} |
| @@ -7474,6 +7545,7 @@ DEFS=-DHAVE_CONFIG_H · 9 unmodified lines | ||
| 7474 | 7545 | |
| 7475 | 7546 | ac_libobjs= |
| 7476 | 7547 | ac_ltlibobjs= |
| 7548 | +U= | |
| 7477 | 7549 | for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue |
| 7478 | 7550 | # 1. Remove the extension, and $U if already installed. |
| 7479 | 7551 | ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' |
| @@ -7490,7 +7562,7 @@ LTLIBOBJS=$ac_ltlibobjs · 10 unmodified lines | ||
| 7490 | 7562 | |
| 7491 | 7563 | |
| 7492 | 7564 | |
| 7493 | −: ${CONFIG_STATUS=./config.status} | |
| 7565 | +: "${CONFIG_STATUS=./config.status}" | |
| 7494 | 7566 | ac_write_fail=0 |
| 7495 | 7567 | ac_clean_files_save=$ac_clean_files |
| 7496 | 7568 | ac_clean_files="$ac_clean_files $CONFIG_STATUS" |
| @@ -7591,6 +7663,7 @@ fi · 94 unmodified lines | ||
| 7591 | 7663 | IFS=" "" $as_nl" |
| 7592 | 7664 | |
| 7593 | 7665 | # Find who we are. Look in the path if we contain no directory separator. |
| 7666 | +as_myself= | |
| 7594 | 7667 | case $0 in #(( |
| 7595 | 7668 | *[\\/]* ) as_myself=$0 ;; |
| 7596 | 7669 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
| @@ -7636,19 +7709,19 @@ export LANGUAGE · 39 unmodified lines | ||
| 7636 | 7709 | (unset CDPATH) >/dev/null 2>&1 && unset CDPATH |
| 7637 | 7710 | |
| 7638 | 7711 | |
| 7639 | −# as_fn_error ERROR [LINENO LOG_FD] | |
| 7640 | −# --------------------------------- | |
| 7712 | +# as_fn_error STATUS ERROR [LINENO LOG_FD] | |
| 7713 | +# ---------------------------------------- | |
| 7641 | 7714 | # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are |
| 7642 | 7715 | # 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. | |
| 7644 | 7717 | as_fn_error () |
| 7645 | 7718 | { |
| 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 | |
| 7650 | 7723 | fi |
| 7651 | − $as_echo "$as_me: error: $1" >&2 | |
| 7724 | + $as_echo "$as_me: error: $2" >&2 | |
| 7652 | 7725 | as_fn_exit $as_status |
| 7653 | 7726 | } # as_fn_error |
| 7654 | 7727 | |
| @@ -7786,16 +7859,16 @@ if (echo >conf$$.file) 2>/dev/null; then · 131 unmodified lines | ||
| 7786 | 7859 | # ... but there are two gotchas: |
| 7787 | 7860 | # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. |
| 7788 | 7861 | # 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'. | |
| 7790 | 7863 | 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' | |
| 7792 | 7865 | elif ln conf$$.file conf$$ 2>/dev/null; then |
| 7793 | 7866 | as_ln_s=ln |
| 7794 | 7867 | else |
| 7795 | − as_ln_s='cp -p' | |
| 7868 | + as_ln_s='cp -pR' | |
| 7796 | 7869 | fi |
| 7797 | 7870 | else |
| 7798 | − as_ln_s='cp -p' | |
| 7871 | + as_ln_s='cp -pR' | |
| 7799 | 7872 | fi |
| 7800 | 7873 | rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file |
| 7801 | 7874 | rmdir conf$$.dir 2>/dev/null |
| @@ -7844,7 +7917,7 @@ $as_echo X"$as_dir" | · 42 unmodified lines | ||
| 7844 | 7917 | test -d "$as_dir" && break |
| 7845 | 7918 | done |
| 7846 | 7919 | 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" | |
| 7848 | 7921 | |
| 7849 | 7922 | |
| 7850 | 7923 | } # as_fn_mkdir_p |
| @@ -7855,28 +7928,16 @@ else · 4 unmodified lines | ||
| 7855 | 7928 | as_mkdir_p=false |
| 7856 | 7929 | fi |
| 7857 | 7930 | |
| 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 | |
| 7880 | 7941 | |
| 7881 | 7942 | # Sed expression to map a string onto a valid CPP name. |
| 7882 | 7943 | 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 | ||
| 7898 | 7959 | # values after options handling. |
| 7899 | 7960 | ac_log=" |
| 7900 | 7961 | 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 | |
| 7902 | 7963 | |
| 7903 | 7964 | CONFIG_FILES = $CONFIG_FILES |
| 7904 | 7965 | CONFIG_HEADERS = $CONFIG_HEADERS |
| @@ -7938,6 +7999,7 @@ Usage: $0 [OPTION]... [TAG]... · 33 unmodified lines | ||
| 7938 | 7999 | |
| 7939 | 8000 | -h, --help print this help, then exit |
| 7940 | 8001 | -V, --version print version number and configuration settings, then exit |
| 8002 | + --config print configuration, then exit | |
| 7941 | 8003 | -q, --quiet, --silent |
| 7942 | 8004 | do not print progress messages |
| 7943 | 8005 | -d, --debug don't remove temporary files |
| @@ -7960,12 +8022,13 @@ Report bugs to <gcc-bugs@gcc.gnu.org>." · 16 unmodified lines | ||
| 7960 | 8022 | |
| 7961 | 8023 | _ACEOF |
| 7962 | 8024 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
| 8025 | +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" | |
| 7963 | 8026 | ac_cs_version="\\ |
| 7964 | 8027 | 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\\" | |
| 7967 | 8030 | |
| 7968 | −Copyright (C) 2009 Free Software Foundation, Inc. | |
| 8031 | +Copyright (C) 2012 Free Software Foundation, Inc. | |
| 7969 | 8032 | This config.status script is free software; the Free Software Foundation |
| 7970 | 8033 | gives unlimited permission to copy, distribute and modify it." |
| 7971 | 8034 | |
| @@ -7981,11 +8044,16 @@ ac_need_defaults=: · 9 unmodified lines | ||
| 7981 | 8044 | while test $# != 0 |
| 7982 | 8045 | do |
| 7983 | 8046 | case $1 in |
| 7984 | − --*=*) | |
| 8047 | + --*=?*) | |
| 7985 | 8048 | ac_option=`expr "X$1" : 'X\([^=]*\)='` |
| 7986 | 8049 | ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` |
| 7987 | 8050 | ac_shift=: |
| 7988 | 8051 | ;; |
| 8052 | + --*=) | |
| 8053 | + ac_option=`expr "X$1" : 'X\([^=]*\)='` | |
| 8054 | + ac_optarg= | |
| 8055 | + ac_shift=: | |
| 8056 | + ;; | |
| 7989 | 8057 | *) |
| 7990 | 8058 | ac_option=$1 |
| 7991 | 8059 | ac_optarg=$2 |
| @@ -7999,12 +8067,15 @@ do · 7 unmodified lines | ||
| 7999 | 8067 | ac_cs_recheck=: ;; |
| 8000 | 8068 | --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) |
| 8001 | 8069 | $as_echo "$ac_cs_version"; exit ;; |
| 8070 | + --config | --confi | --conf | --con | --co | --c ) | |
| 8071 | + $as_echo "$ac_cs_config"; exit ;; | |
| 8002 | 8072 | --debug | --debu | --deb | --de | --d | -d ) |
| 8003 | 8073 | debug=: ;; |
| 8004 | 8074 | --file | --fil | --fi | --f ) |
| 8005 | 8075 | $ac_shift |
| 8006 | 8076 | case $ac_optarg in |
| 8007 | 8077 | *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; |
| 8078 | + '') as_fn_error $? "missing file argument" ;; | |
| 8008 | 8079 | esac |
| 8009 | 8080 | as_fn_append CONFIG_FILES " '$ac_optarg'" |
| 8010 | 8081 | ac_need_defaults=false;; |
| @@ -8017,7 +8088,7 @@ do · 6 unmodified lines | ||
| 8017 | 8088 | ac_need_defaults=false;; |
| 8018 | 8089 | --he | --h) |
| 8019 | 8090 | # Conflict between --help and --header |
| 8020 | − as_fn_error "ambiguous option: \`$1' | |
| 8091 | + as_fn_error $? "ambiguous option: \`$1' | |
| 8021 | 8092 | Try \`$0 --help' for more information.";; |
| 8022 | 8093 | --help | --hel | -h ) |
| 8023 | 8094 | $as_echo "$ac_cs_usage"; exit ;; |
| @@ -8026,7 +8097,7 @@ Try \`$0 --help' for more information.";; · 2 unmodified lines | ||
| 8026 | 8097 | ac_cs_silent=: ;; |
| 8027 | 8098 | |
| 8028 | 8099 | # This is an error. |
| 8029 | − -*) as_fn_error "unrecognized option: \`$1' | |
| 8100 | + -*) as_fn_error $? "unrecognized option: \`$1' | |
| 8030 | 8101 | Try \`$0 --help' for more information." ;; |
| 8031 | 8102 | |
| 8032 | 8103 | *) as_fn_append ac_config_targets " $1" |
| @@ -8046,7 +8117,7 @@ fi · 13 unmodified lines | ||
| 8046 | 8117 | _ACEOF |
| 8047 | 8118 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
| 8048 | 8119 | 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 | |
| 8050 | 8121 | shift |
| 8051 | 8122 | \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 |
| 8052 | 8123 | CONFIG_SHELL='$SHELL' |
| @@ -8084,7 +8155,7 @@ do · 31 unmodified lines | ||
| 8084 | 8155 | "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;; |
| 8085 | 8156 | "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; |
| 8086 | 8157 | |
| 8087 | − *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; | |
| 8158 | + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; | |
| 8088 | 8159 | esac |
| 8089 | 8160 | done |
| 8090 | 8161 | |
| @@ -8107,9 +8178,10 @@ fi · 16 unmodified lines | ||
| 8107 | 8178 | # after its creation but before its name has been assigned to `$tmp'. |
| 8108 | 8179 | $debug || |
| 8109 | 8180 | { |
| 8110 | − tmp= | |
| 8181 | + tmp= ac_tmp= | |
| 8111 | 8182 | 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 | |
| 8113 | 8185 | ' 0 |
| 8114 | 8186 | trap 'as_fn_exit 1' 1 2 13 15 |
| 8115 | 8187 | } |
| @@ -8117,12 +8189,13 @@ $debug || · 1 unmodified line | ||
| 8117 | 8189 | |
| 8118 | 8190 | { |
| 8119 | 8191 | tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && |
| 8120 | − test -n "$tmp" && test -d "$tmp" | |
| 8192 | + test -d "$tmp" | |
| 8121 | 8193 | } || |
| 8122 | 8194 | { |
| 8123 | 8195 | tmp=./conf$$-$RANDOM |
| 8124 | 8196 | (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 | |
| 8126 | 8199 | |
| 8127 | 8200 | # Set up the scripts for CONFIG_FILES section. |
| 8128 | 8201 | # 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 | ||
| 8139 | 8212 | fi |
| 8140 | 8213 | ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` |
| 8141 | 8214 | if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then |
| 8142 | − ac_cs_awk_cr='\r' | |
| 8215 | + ac_cs_awk_cr='\\r' | |
| 8143 | 8216 | else |
| 8144 | 8217 | ac_cs_awk_cr=$ac_cr |
| 8145 | 8218 | fi |
| 8146 | 8219 | |
| 8147 | −echo 'BEGIN {' >"$tmp/subs1.awk" && | |
| 8220 | +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && | |
| 8148 | 8221 | _ACEOF |
| 8149 | 8222 | |
| 8150 | 8223 | |
| @@ -8153,18 +8226,18 @@ _ACEOF · 2 unmodified lines | ||
| 8153 | 8226 | echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && |
| 8154 | 8227 | echo "_ACEOF" |
| 8155 | 8228 | } >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 '^'` | |
| 8158 | 8231 | ac_delim='%!_!# ' |
| 8159 | 8232 | for ac_last_try in false false false false false :; do |
| 8160 | 8233 | . ./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 | |
| 8162 | 8235 | |
| 8163 | 8236 | ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` |
| 8164 | 8237 | if test $ac_delim_n = $ac_delim_num; then |
| 8165 | 8238 | break |
| 8166 | 8239 | 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 | |
| 8168 | 8241 | else |
| 8169 | 8242 | ac_delim="$ac_delim!$ac_delim _$ac_delim!! " |
| 8170 | 8243 | fi |
| @@ -8172,7 +8245,7 @@ done · 1 unmodified line | ||
| 8172 | 8245 | rm -f conf$$subs.sh |
| 8173 | 8246 | |
| 8174 | 8247 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
| 8175 | −cat >>"\$tmp/subs1.awk" <<\\_ACAWK && | |
| 8248 | +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && | |
| 8176 | 8249 | _ACEOF |
| 8177 | 8250 | sed -n ' |
| 8178 | 8251 | h |
| @@ -8186,7 +8259,7 @@ s/'"$ac_delim"'$// · 7 unmodified lines | ||
| 8186 | 8259 | t delim |
| 8187 | 8260 | :nl |
| 8188 | 8261 | h |
| 8189 | −s/\(.\{148\}\).*/\1/ | |
| 8262 | +s/\(.\{148\}\)..*/\1/ | |
| 8190 | 8263 | t more1 |
| 8191 | 8264 | s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ |
| 8192 | 8265 | p |
| @@ -8200,7 +8273,7 @@ s/.\{148\}// · 7 unmodified lines | ||
| 8200 | 8273 | t nl |
| 8201 | 8274 | :delim |
| 8202 | 8275 | h |
| 8203 | −s/\(.\{148\}\).*/\1/ | |
| 8276 | +s/\(.\{148\}\)..*/\1/ | |
| 8204 | 8277 | t more2 |
| 8205 | 8278 | s/["\\]/\\&/g; s/^/"/; s/$/"/ |
| 8206 | 8279 | p |
| @@ -8220,7 +8293,7 @@ t delim · 13 unmodified lines | ||
| 8220 | 8293 | rm -f conf$$subs.awk |
| 8221 | 8294 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
| 8222 | 8295 | _ACAWK |
| 8223 | −cat >>"\$tmp/subs1.awk" <<_ACAWK && | |
| 8296 | +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && | |
| 8224 | 8297 | for (key in S) S_is_set[key] = 1 |
| 8225 | 8298 | FS = "" |
| 8226 | 8299 | |
| @@ -8252,21 +8325,29 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then · 25 unmodified lines | ||
| 8252 | 8325 | sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" |
| 8253 | 8326 | else |
| 8254 | 8327 | 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 | |
| 8257 | 8330 | _ACEOF |
| 8258 | 8331 | |
| 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 | |
| 8261 | 8334 | # trailing colons and then remove the whole line if VPATH becomes empty |
| 8262 | 8335 | # (actually we leave an empty line to preserve line numbers). |
| 8263 | 8336 | 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/^:*// | |
| 8269 | 8346 | s/:*$// |
| 8347 | +x | |
| 8348 | +s/\(=[ ]*\).*/\1/ | |
| 8349 | +G | |
| 8350 | +s/\n// | |
| 8270 | 8351 | s/^[^=]*=[ ]*$// |
| 8271 | 8352 | }' |
| 8272 | 8353 | fi |
| @@ -8278,7 +8359,7 @@ fi # test -n "$CONFIG_FILES" · 5 unmodified lines | ||
| 8278 | 8359 | # No need to generate them if there are no CONFIG_HEADERS. |
| 8279 | 8360 | # This happens for instance with `./config.status Makefile'. |
| 8280 | 8361 | if test -n "$CONFIG_HEADERS"; then |
| 8281 | −cat >"$tmp/defines.awk" <<\_ACAWK || | |
| 8362 | +cat >"$ac_tmp/defines.awk" <<\_ACAWK || | |
| 8282 | 8363 | BEGIN { |
| 8283 | 8364 | _ACEOF |
| 8284 | 8365 | |
| @@ -8290,11 +8371,11 @@ _ACEOF · 5 unmodified lines | ||
| 8290 | 8371 | # handling of long lines. |
| 8291 | 8372 | ac_delim='%!_!# ' |
| 8292 | 8373 | 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 | |
| 8295 | 8376 | break |
| 8296 | 8377 | 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 | |
| 8298 | 8379 | else |
| 8299 | 8380 | ac_delim="$ac_delim!$ac_delim _$ac_delim!! " |
| 8300 | 8381 | fi |
| @@ -8379,7 +8460,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 · 78 unmodified lines | ||
| 8379 | 8460 | _ACAWK |
| 8380 | 8461 | _ACEOF |
| 8381 | 8462 | 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 | |
| 8383 | 8464 | fi # test -n "$CONFIG_HEADERS" |
| 8384 | 8465 | |
| 8385 | 8466 | |
| @@ -8392,7 +8473,7 @@ do · 6 unmodified lines | ||
| 8392 | 8473 | esac |
| 8393 | 8474 | case $ac_mode$ac_tag in |
| 8394 | 8475 | :[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;; | |
| 8396 | 8477 | :[FH]-) ac_tag=-:-;; |
| 8397 | 8478 | :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; |
| 8398 | 8479 | esac |
| @@ -8411,7 +8492,7 @@ do · 12 unmodified lines | ||
| 8411 | 8492 | for ac_f |
| 8412 | 8493 | do |
| 8413 | 8494 | case $ac_f in |
| 8414 | − -) ac_f="$tmp/stdin";; | |
| 8495 | + -) ac_f="$ac_tmp/stdin";; | |
| 8415 | 8496 | *) # Look for the file first in the build tree, then in the source tree |
| 8416 | 8497 | # (if the path is not absolute). The absolute path cannot be DOS-style, |
| 8417 | 8498 | # because $ac_f cannot contain `:'. |
| @@ -8420,7 +8501,7 @@ do · 2 unmodified lines | ||
| 8420 | 8501 | [\\/$]*) false;; |
| 8421 | 8502 | *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; |
| 8422 | 8503 | 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;; | |
| 8424 | 8505 | esac |
| 8425 | 8506 | case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac |
| 8426 | 8507 | as_fn_append ac_file_inputs " '$ac_f'" |
| @@ -8446,8 +8527,8 @@ $as_echo "$as_me: creating $ac_file" >&6;} · 19 unmodified lines | ||
| 8446 | 8527 | esac |
| 8447 | 8528 | |
| 8448 | 8529 | 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 ;; | |
| 8451 | 8532 | esac |
| 8452 | 8533 | ;; |
| 8453 | 8534 | esac |
| @@ -8577,23 +8658,24 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t · 123 unmodified lines | ||
| 8577 | 8658 | s&@INSTALL@&$ac_INSTALL&;t t |
| 8578 | 8659 | $ac_datarootdir_hack |
| 8579 | 8660 | " |
| 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 | |
| 8582 | 8663 | |
| 8583 | 8664 | 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"; } && | |
| 8586 | 8668 | { $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 | |
| 8588 | 8670 | $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;} | |
| 8590 | 8672 | |
| 8591 | − rm -f "$tmp/stdin" | |
| 8673 | + rm -f "$ac_tmp/stdin" | |
| 8592 | 8674 | 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";; | |
| 8595 | 8677 | esac \ |
| 8596 | − || as_fn_error "could not create $ac_file" "$LINENO" 5 | |
| 8678 | + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 | |
| 8597 | 8679 | ;; |
| 8598 | 8680 | :H) |
| 8599 | 8681 | # |
| @@ -8602,21 +8684,21 @@ which seems to be undefined. Please make sure it is defined." >&2;} · 2 unmodified lines | ||
| 8602 | 8684 | if test x"$ac_file" != x-; then |
| 8603 | 8685 | { |
| 8604 | 8686 | $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 | |
| 8609 | 8691 | { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 |
| 8610 | 8692 | $as_echo "$as_me: $ac_file is unchanged" >&6;} |
| 8611 | 8693 | else |
| 8612 | 8694 | 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 | |
| 8615 | 8697 | fi |
| 8616 | 8698 | else |
| 8617 | 8699 | $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 | |
| 8620 | 8702 | fi |
| 8621 | 8703 | ;; |
| 8622 | 8704 | |
| @@ -8639,7 +8721,7 @@ _ACEOF · 16 unmodified lines | ||
| 8639 | 8721 | ac_clean_files=$ac_clean_files_save |
| 8640 | 8722 | |
| 8641 | 8723 | 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 | |
| 8643 | 8725 | |
| 8644 | 8726 | |
| 8645 | 8727 | # configure is writing to config.log, and then calls config.status. |
| @@ -8660,7 +8742,7 @@ if test "$no_create" != yes; then · 14 unmodified lines | ||
| 8660 | 8742 | exec 5>>config.log |
| 8661 | 8743 | # Use ||, not &&, to avoid exiting from the if with $? = 1, which |
| 8662 | 8744 | # 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 | |
| 8664 | 8746 | fi |
| 8665 | 8747 | if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then |
| 8666 | 8748 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 |
| @@ -1,7 +1,6 @@ | ||
| 1 | 1 | # -*- Autoconf -*- |
| 2 | 2 | # Process this file with autoconf to produce a configure script. |
| 3 | 3 | |
| 4 | −AC_PREREQ(2.64) | |
| 5 | 4 | AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib) |
| 6 | 5 | AC_CONFIG_SRCDIR(ucnid.h) |
| 7 | 6 | AC_CONFIG_MACRO_DIR(../config) |
| @@ -42,7 +41,7 @@ ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual]) · 34 unmodified lines | ||
| 42 | 41 | # Dependency checking. |
| 43 | 42 | ZW_CREATE_DEPDIR |
| 44 | 43 | AC_LANG_PUSH([C++]) |
| 45 | −AC_COMPILE_IFELSE([[int i;]], [], | |
| 44 | +AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [], | |
| 46 | 45 | [AC_MSG_ERROR([C++ compiler missing or inoperational])]) |
| 47 | 46 | AC_LANG_POP([C++]) |
| 48 | 47 | ZW_PROG_COMPILER_DEPENDENCIES([CXX]) |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* 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. | |
| 3 | 3 | Contributed by Ollie Wild <aaw@google.com>. |
| 4 | 4 | |
| 5 | 5 | 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 | ||
| 43 | 43 | unsigned flags; |
| 44 | 44 | linenum_type lines; |
| 45 | 45 | int col; |
| 46 | − source_location loc; | |
| 46 | + location_t loc; | |
| 47 | 47 | |
| 48 | 48 | restart: |
| 49 | 49 | /* Buffer initialization ala _cpp_clean_line(). */ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* CPP Library. (Directive handling.) |
| 2 | − Copyright (C) 1986-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1986-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Per Bothner, 1994-95. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | 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 | ||
| 30 | 30 | struct if_stack |
| 31 | 31 | { |
| 32 | 32 | struct if_stack *next; |
| 33 | − source_location line; /* Line where condition started. */ | |
| 33 | + location_t line; /* Line where condition started. */ | |
| 34 | 34 | const cpp_hashnode *mi_cmacro;/* macro name for #ifndef around entire file */ |
| 35 | 35 | bool skip_elses; /* Can future #else / #elif be skipped? */ |
| 36 | 36 | bool was_skipping; /* If were skipping on entry. */ |
| @@ -98,11 +98,12 @@ static void directive_diagnostics (cpp_reader *, const directive *, int); · 61 unmodified lines | ||
| 98 | 98 | static void run_directive (cpp_reader *, int, const char *, size_t); |
| 99 | 99 | static char *glue_header_name (cpp_reader *); |
| 100 | 100 | static const char *parse_include (cpp_reader *, int *, const cpp_token ***, |
| 101 | − source_location *); | |
| 101 | + location_t *); | |
| 102 | 102 | static void push_conditional (cpp_reader *, int, int, const cpp_hashnode *); |
| 103 | 103 | static unsigned int read_flag (cpp_reader *, unsigned int); |
| 104 | 104 | 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); | |
| 106 | 107 | static cpp_hashnode *lex_macro_node (cpp_reader *, bool); |
| 107 | 108 | static int undefine_macros (cpp_reader *, cpp_hashnode *, void *); |
| 108 | 109 | static void do_include_common (cpp_reader *, enum include_type); |
| @@ -123,44 +124,39 @@ static void do_linemarker (cpp_reader *); · 14 unmodified lines | ||
| 123 | 124 | static const cpp_token *get_token_no_padding (cpp_reader *); |
| 124 | 125 | static const cpp_token *get__Pragma_string (cpp_reader *); |
| 125 | 126 | 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 *); | |
| 130 | 131 | static void handle_assertion (cpp_reader *, const char *, int); |
| 131 | 132 | static void do_pragma_push_macro (cpp_reader *); |
| 132 | 133 | static void do_pragma_pop_macro (cpp_reader *); |
| 133 | 134 | static void cpp_pop_definition (cpp_reader *, struct def_pragma_macro *); |
| 134 | 135 | |
| 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. */ | |
| 143 | 139 | |
| 144 | 140 | #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? */ | |
| 164 | 160 | |
| 165 | 161 | /* #sccs is synonymous with #ident. */ |
| 166 | 162 | #define do_sccs do_ident |
| @@ -208,8 +204,6 @@ static const directive linemarker_dir = · 41 unmodified lines | ||
| 208 | 204 | do_linemarker, UC"#", 1, KANDR, IN_I |
| 209 | 205 | }; |
| 210 | 206 | |
| 211 | −#define SEEN_EOL() (pfile->cur_token[-1].type == CPP_EOF) | |
| 212 | − | |
| 213 | 207 | /* Skip any remaining tokens in a directive. */ |
| 214 | 208 | static void |
| 215 | 209 | skip_rest_of_line (cpp_reader *pfile) |
| @@ -227,7 +221,7 @@ skip_rest_of_line (cpp_reader *pfile) · 11 unmodified lines | ||
| 227 | 221 | /* Helper function for check_oel. */ |
| 228 | 222 | |
| 229 | 223 | 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) | |
| 231 | 225 | { |
| 232 | 226 | if (! SEEN_EOL () && (expand |
| 233 | 227 | ? cpp_get_token (pfile) |
| @@ -665,12 +659,12 @@ do_undef (cpp_reader *pfile) · 431 unmodified lines | ||
| 665 | 659 | |
| 666 | 660 | /* 6.10.3.5 paragraph 2: [#undef] is ignored if the specified |
| 667 | 661 | identifier is not currently defined as a macro name. */ |
| 668 | − if (node->type == NT_MACRO) | |
| 662 | + if (cpp_macro_p (node)) | |
| 669 | 663 | { |
| 670 | 664 | if (node->flags & NODE_WARN) |
| 671 | 665 | cpp_error (pfile, CPP_DL_WARNING, |
| 672 | 666 | "undefining \"%s\"", NODE_NAME (node)); |
| 673 | − else if ((node->flags & NODE_BUILTIN) | |
| 667 | + else if (cpp_builtin_macro_p (node) | |
| 674 | 668 | && CPP_OPTION (pfile, warn_builtin_macro_redefined)) |
| 675 | 669 | cpp_warning_with_line (pfile, CPP_W_BUILTIN_MACRO_REDEFINED, |
| 676 | 670 | pfile->directive_line, 0, |
| @@ -695,7 +689,8 @@ undefine_macros (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *h, · 18 unmodified lines | ||
| 695 | 689 | /* Body of _cpp_free_definition inlined here for speed. |
| 696 | 690 | Macros and assertions no longer have anything to free. */ |
| 697 | 691 | 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); | |
| 699 | 694 | return 1; |
| 700 | 695 | } |
| 701 | 696 | |
| @@ -759,7 +754,7 @@ glue_header_name (cpp_reader *pfile) · 57 unmodified lines | ||
| 759 | 754 | |
| 760 | 755 | static const char * |
| 761 | 756 | parse_include (cpp_reader *pfile, int *pangle_brackets, |
| 762 | − const cpp_token ***buf, source_location *location) | |
| 757 | + const cpp_token ***buf, location_t *location) | |
| 763 | 758 | { |
| 764 | 759 | char *fname; |
| 765 | 760 | const cpp_token *header; |
| @@ -817,7 +812,7 @@ do_include_common (cpp_reader *pfile, enum include_type type) · 51 unmodified lines | ||
| 817 | 812 | const char *fname; |
| 818 | 813 | int angle_brackets; |
| 819 | 814 | const cpp_token **buf = NULL; |
| 820 | − source_location location; | |
| 815 | + location_t location; | |
| 821 | 816 | |
| 822 | 817 | /* Re-enable saving of comments if requested, so that the include |
| 823 | 818 | callback can dump comments which follow #include. */ |
| @@ -825,22 +820,15 @@ do_include_common (cpp_reader *pfile, enum include_type type) · 1 unmodified line | ||
| 825 | 820 | |
| 826 | 821 | fname = parse_include (pfile, &angle_brackets, &buf, &location); |
| 827 | 822 | if (!fname) |
| 828 | − { | |
| 829 | − if (buf) | |
| 830 | − XDELETEVEC (buf); | |
| 831 | − return; | |
| 832 | − } | |
| 823 | + goto done; | |
| 833 | 824 | |
| 834 | 825 | 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 | + } | |
| 844 | 832 | |
| 845 | 833 | /* Prevent #include recursion. */ |
| 846 | 834 | 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 | ||
| 858 | 846 | _cpp_stack_include (pfile, fname, angle_brackets, type, location); |
| 859 | 847 | } |
| 860 | 848 | |
| 849 | + done: | |
| 861 | 850 | XDELETEVEC (fname); |
| 862 | 851 | if (buf) |
| 863 | 852 | XDELETEVEC (buf); |
| @@ -1088,10 +1077,10 @@ do_linemarker (cpp_reader *pfile) · 224 unmodified lines | ||
| 1088 | 1077 | /* Reread map since cpp_get_token can invalidate it with a |
| 1089 | 1078 | reallocation. */ |
| 1090 | 1079 | 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); | |
| 1092 | 1082 | if (MAIN_FILE_P (map) |
| 1093 | − || (new_file | |
| 1094 | − && (from = INCLUDED_FROM (pfile->line_table, map)) != NULL | |
| 1083 | + || (from | |
| 1095 | 1084 | && filename_cmp (ORDINARY_MAP_FILE_NAME (from), new_file) != 0)) |
| 1096 | 1085 | { |
| 1097 | 1086 | cpp_warning (pfile, CPP_W_NONE, |
| @@ -1102,7 +1091,7 @@ do_linemarker (cpp_reader *pfile) · 4 unmodified lines | ||
| 1102 | 1091 | } |
| 1103 | 1092 | /* Compensate for the increment in linemap_add that occurs in |
| 1104 | 1093 | _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 | |
| 1106 | 1095 | location makes no sense (until we do the LC_LEAVE), and |
| 1107 | 1096 | complicates LAST_SOURCE_LINE_LOCATION. */ |
| 1108 | 1097 | pfile->line_table->highest_location--; |
| @@ -1139,11 +1128,12 @@ _cpp_do_file_change (cpp_reader *pfile, enum lc_reason reason, · 30 unmodified lines | ||
| 1139 | 1128 | /* Report a warning or error detected by the program we are |
| 1140 | 1129 | processing. Use the directive's tokens in the error message. */ |
| 1141 | 1130 | 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) | |
| 1143 | 1133 | { |
| 1144 | 1134 | const unsigned char *dir_name; |
| 1145 | 1135 | 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; | |
| 1147 | 1137 | |
| 1148 | 1138 | if (print_dir) |
| 1149 | 1139 | dir_name = pfile->directive->name; |
| @@ -1165,7 +1155,7 @@ do_diagnostic (cpp_reader *pfile, int code, int reason, int print_dir) · 15 unmodified lines | ||
| 1165 | 1155 | static void |
| 1166 | 1156 | do_error (cpp_reader *pfile) |
| 1167 | 1157 | { |
| 1168 | − do_diagnostic (pfile, CPP_DL_ERROR, 0, 1); | |
| 1158 | + do_diagnostic (pfile, CPP_DL_ERROR, CPP_W_NONE, 1); | |
| 1169 | 1159 | } |
| 1170 | 1160 | |
| 1171 | 1161 | static void |
| @@ -1440,7 +1430,7 @@ do_pragma (cpp_reader *pfile) · 268 unmodified lines | ||
| 1440 | 1430 | { |
| 1441 | 1431 | const struct pragma_entry *p = NULL; |
| 1442 | 1432 | const cpp_token *token, *pragma_token; |
| 1443 | − source_location pragma_token_virt_loc = 0; | |
| 1433 | + location_t pragma_token_virt_loc = 0; | |
| 1444 | 1434 | cpp_token ns_token; |
| 1445 | 1435 | unsigned int count = 1; |
| 1446 | 1436 | |
| @@ -1546,7 +1536,7 @@ do_pragma_push_macro (cpp_reader *pfile) · 99 unmodified lines | ||
| 1546 | 1536 | txt = get__Pragma_string (pfile); |
| 1547 | 1537 | if (!txt) |
| 1548 | 1538 | { |
| 1549 | − source_location src_loc = pfile->cur_token[-1].src_loc; | |
| 1539 | + location_t src_loc = pfile->cur_token[-1].src_loc; | |
| 1550 | 1540 | cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, |
| 1551 | 1541 | "invalid #pragma push_macro directive"); |
| 1552 | 1542 | check_eol (pfile, false); |
| @@ -1601,7 +1591,7 @@ do_pragma_pop_macro (cpp_reader *pfile) · 48 unmodified lines | ||
| 1601 | 1591 | txt = get__Pragma_string (pfile); |
| 1602 | 1592 | if (!txt) |
| 1603 | 1593 | { |
| 1604 | − source_location src_loc = pfile->cur_token[-1].src_loc; | |
| 1594 | + location_t src_loc = pfile->cur_token[-1].src_loc; | |
| 1605 | 1595 | cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0, |
| 1606 | 1596 | "invalid #pragma pop_macro directive"); |
| 1607 | 1597 | check_eol (pfile, false); |
| @@ -1666,7 +1656,7 @@ do_pragma_poison (cpp_reader *pfile) · 58 unmodified lines | ||
| 1666 | 1656 | if (hp->flags & NODE_POISONED) |
| 1667 | 1657 | continue; |
| 1668 | 1658 | |
| 1669 | − if (hp->type == NT_MACRO) | |
| 1659 | + if (cpp_macro_p (hp)) | |
| 1670 | 1660 | cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro \"%s\"", |
| 1671 | 1661 | NODE_NAME (hp)); |
| 1672 | 1662 | _cpp_free_definition (hp); |
| @@ -1703,7 +1693,7 @@ do_pragma_dependency (cpp_reader *pfile) · 30 unmodified lines | ||
| 1703 | 1693 | { |
| 1704 | 1694 | const char *fname; |
| 1705 | 1695 | int angle_brackets, ordering; |
| 1706 | − source_location location; | |
| 1696 | + location_t location; | |
| 1707 | 1697 | |
| 1708 | 1698 | fname = parse_include (pfile, &angle_brackets, NULL, &location); |
| 1709 | 1699 | if (!fname) |
| @@ -1719,7 +1709,7 @@ do_pragma_dependency (cpp_reader *pfile) · 9 unmodified lines | ||
| 1719 | 1709 | if (cpp_get_token (pfile)->type != CPP_EOF) |
| 1720 | 1710 | { |
| 1721 | 1711 | _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); | |
| 1723 | 1713 | } |
| 1724 | 1714 | } |
| 1725 | 1715 | |
| @@ -1809,7 +1799,7 @@ get__Pragma_string (cpp_reader *pfile) · 83 unmodified lines | ||
| 1809 | 1799 | \" and \\ sequences, and process the result as a #pragma directive. */ |
| 1810 | 1800 | static void |
| 1811 | 1801 | destringize_and_run (cpp_reader *pfile, const cpp_string *in, |
| 1812 | − source_location expansion_loc) | |
| 1802 | + location_t expansion_loc) | |
| 1813 | 1803 | { |
| 1814 | 1804 | const unsigned char *src, *limit; |
| 1815 | 1805 | char *dest, *result; |
| @@ -1929,7 +1919,7 @@ destringize_and_run (cpp_reader *pfile, const cpp_string *in, · 113 unmodified lines | ||
| 1929 | 1919 | |
| 1930 | 1920 | /* Handle the _Pragma operator. Return 0 on error, 1 if ok. */ |
| 1931 | 1921 | int |
| 1932 | −_cpp_do__Pragma (cpp_reader *pfile, source_location expansion_loc) | |
| 1922 | +_cpp_do__Pragma (cpp_reader *pfile, location_t expansion_loc) | |
| 1933 | 1923 | { |
| 1934 | 1924 | const cpp_token *string = get__Pragma_string (pfile); |
| 1935 | 1925 | pfile->directive_result.type = CPP_PADDING; |
| @@ -1960,26 +1950,9 @@ do_ifdef (cpp_reader *pfile) · 24 unmodified lines | ||
| 1960 | 1950 | the powerpc and spu ports using conditional macros for 'vector', |
| 1961 | 1951 | 'bool', and 'pixel' to act as conditional keywords. This messes |
| 1962 | 1952 | 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); | |
| 1965 | 1954 | _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); | |
| 1983 | 1956 | if (pfile->cb.used) |
| 1984 | 1957 | pfile->cb.used (pfile, pfile->directive_line, node); |
| 1985 | 1958 | check_eol (pfile, false); |
| @@ -2006,26 +1979,10 @@ do_ifndef (cpp_reader *pfile) · 20 unmodified lines | ||
| 2006 | 1979 | the powerpc and spu ports using conditional macros for 'vector', |
| 2007 | 1980 | 'bool', and 'pixel' to act as conditional keywords. This messes |
| 2008 | 1981 | 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)); | |
| 2011 | 1984 | _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); | |
| 2029 | 1986 | if (pfile->cb.used) |
| 2030 | 1987 | pfile->cb.used (pfile, pfile->directive_line, node); |
| 2031 | 1988 | check_eol (pfile, false); |
| @@ -2182,17 +2139,13 @@ push_conditional (cpp_reader *pfile, int skip, int type, · 150 unmodified lines | ||
| 2182 | 2139 | storage, i.e. the #assert case. Returns 0 on success, and sets |
| 2183 | 2140 | ANSWERP to point to the answer. PRED_LOC is the location of the |
| 2184 | 2141 | 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) | |
| 2188 | 2145 | { |
| 2189 | − const cpp_token *paren; | |
| 2190 | − struct answer *answer; | |
| 2191 | − unsigned int acount; | |
| 2192 | − | |
| 2193 | 2146 | /* In a conditional, it is legal to not have an open paren. We |
| 2194 | 2147 | should save the following token in this case. */ |
| 2195 | − paren = cpp_get_token (pfile); | |
| 2148 | + const cpp_token *paren = cpp_get_token (pfile); | |
| 2196 | 2149 | |
| 2197 | 2150 | /* If not a paren, see if we're OK. */ |
| 2198 | 2151 | if (paren->type != CPP_OPEN_PAREN) |
| @@ -2202,23 +2155,26 @@ parse_answer (cpp_reader *pfile, struct answer **answerp, int type, · 3 unmodified lines | ||
| 2202 | 2155 | if (type == T_IF) |
| 2203 | 2156 | { |
| 2204 | 2157 | _cpp_backup_tokens (pfile, 1); |
| 2205 | − return 0; | |
| 2158 | + return true; | |
| 2206 | 2159 | } |
| 2207 | 2160 | |
| 2208 | 2161 | /* #unassert with no answer is valid - it removes all answers. */ |
| 2209 | 2162 | if (type == T_UNASSERT && paren->type == CPP_EOF) |
| 2210 | − return 0; | |
| 2163 | + return true; | |
| 2211 | 2164 | |
| 2212 | 2165 | cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0, |
| 2213 | 2166 | "missing '(' after predicate"); |
| 2214 | − return 1; | |
| 2167 | + return false; | |
| 2215 | 2168 | } |
| 2216 | 2169 | |
| 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 (;;) | |
| 2218 | 2176 | { |
| 2219 | − size_t room_needed; | |
| 2220 | 2177 | const cpp_token *token = cpp_get_token (pfile); |
| 2221 | − cpp_token *dest; | |
| 2222 | 2178 | |
| 2223 | 2179 | if (token->type == CPP_CLOSE_PAREN) |
| 2224 | 2180 | break; |
| @@ -2226,57 +2182,52 @@ parse_answer (cpp_reader *pfile, struct answer **answerp, int type, · 1 unmodified line | ||
| 2226 | 2182 | if (token->type == CPP_EOF) |
| 2227 | 2183 | { |
| 2228 | 2184 | cpp_error (pfile, CPP_DL_ERROR, "missing ')' to complete answer"); |
| 2229 | − return 1; | |
| 2185 | + return false; | |
| 2230 | 2186 | } |
| 2231 | 2187 | |
| 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; | |
| 2244 | 2192 | } |
| 2245 | 2193 | |
| 2246 | − if (acount == 0) | |
| 2194 | + if (!count) | |
| 2247 | 2195 | { |
| 2248 | 2196 | cpp_error (pfile, CPP_DL_ERROR, "predicate's answer is empty"); |
| 2249 | − return 1; | |
| 2197 | + return false; | |
| 2250 | 2198 | } |
| 2251 | 2199 | |
| 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; | |
| 2256 | 2202 | |
| 2257 | − return 0; | |
| 2203 | + answer->count = count; | |
| 2204 | + *answer_ptr = answer; | |
| 2205 | + | |
| 2206 | + return true; | |
| 2258 | 2207 | } |
| 2259 | 2208 | |
| 2260 | 2209 | /* 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. */ | |
| 2263 | 2214 | 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) | |
| 2265 | 2216 | { |
| 2266 | 2217 | cpp_hashnode *result = 0; |
| 2267 | − const cpp_token *predicate; | |
| 2268 | 2218 | |
| 2269 | 2219 | /* We don't expand predicates or answers. */ |
| 2270 | 2220 | pfile->state.prevent_expansion++; |
| 2271 | 2221 | |
| 2272 | − *answerp = 0; | |
| 2273 | − predicate = cpp_get_token (pfile); | |
| 2222 | + *answer_ptr = NULL; | |
| 2223 | + | |
| 2224 | + const cpp_token *predicate = cpp_get_token (pfile); | |
| 2274 | 2225 | if (predicate->type == CPP_EOF) |
| 2275 | 2226 | cpp_error (pfile, CPP_DL_ERROR, "assertion without predicate"); |
| 2276 | 2227 | else if (predicate->type != CPP_NAME) |
| 2277 | 2228 | cpp_error_with_line (pfile, CPP_DL_ERROR, predicate->src_loc, 0, |
| 2278 | 2229 | "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)) | |
| 2280 | 2231 | { |
| 2281 | 2232 | unsigned int len = NODE_LEN (predicate->val.node.node); |
| 2282 | 2233 | 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 | ||
| 2288 | 2239 | } |
| 2289 | 2240 | |
| 2290 | 2241 | pfile->state.prevent_expansion--; |
| 2242 | + | |
| 2291 | 2243 | return result; |
| 2292 | 2244 | } |
| 2293 | 2245 | |
| 2294 | 2246 | /* Returns a pointer to the pointer to CANDIDATE in the answer chain, |
| 2295 | 2247 | 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) | |
| 2298 | 2250 | { |
| 2299 | 2251 | unsigned int i; |
| 2300 | − struct answer **result; | |
| 2252 | + cpp_macro **result = NULL; | |
| 2301 | 2253 | |
| 2302 | − for (result = &node->value.answers; *result; result = &(*result)->next) | |
| 2254 | + for (result = &node->value.answers; *result; result = &(*result)->parm.next) | |
| 2303 | 2255 | { |
| 2304 | − struct answer *answer = *result; | |
| 2256 | + cpp_macro *answer = *result; | |
| 2305 | 2257 | |
| 2306 | 2258 | if (answer->count == candidate->count) |
| 2307 | 2259 | { |
| 2308 | 2260 | 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])) | |
| 2310 | 2263 | break; |
| 2311 | 2264 | |
| 2312 | 2265 | if (i == answer->count) |
| @@ -2323,18 +2276,18 @@ find_answer (cpp_hashnode *node, const struct answer *candidate) · 10 unmodified lines | ||
| 2323 | 2276 | int |
| 2324 | 2277 | _cpp_test_assertion (cpp_reader *pfile, unsigned int *value) |
| 2325 | 2278 | { |
| 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); | |
| 2330 | 2281 | |
| 2331 | 2282 | /* For recovery, an erroneous assertion expression is handled as a |
| 2332 | 2283 | failing assertion. */ |
| 2333 | 2284 | *value = 0; |
| 2334 | 2285 | |
| 2335 | 2286 | 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 | + } | |
| 2338 | 2291 | else if (pfile->cur_token[-1].type == CPP_EOF) |
| 2339 | 2292 | _cpp_backup_tokens (pfile, 1); |
| 2340 | 2293 | |
| @@ -2346,43 +2299,29 @@ _cpp_test_assertion (cpp_reader *pfile, unsigned int *value) · 5 unmodified lines | ||
| 2346 | 2299 | static void |
| 2347 | 2300 | do_assert (cpp_reader *pfile) |
| 2348 | 2301 | { |
| 2349 | − struct answer *new_answer; | |
| 2350 | − cpp_hashnode *node; | |
| 2302 | + cpp_macro *answer; | |
| 2303 | + cpp_hashnode *node = parse_assertion (pfile, T_ASSERT, &answer); | |
| 2351 | 2304 | |
| 2352 | − node = parse_assertion (pfile, &new_answer, T_ASSERT); | |
| 2353 | 2305 | if (node) |
| 2354 | 2306 | { |
| 2355 | − size_t answer_size; | |
| 2356 | − | |
| 2357 | 2307 | /* Place the new answer in the answer list. First check there |
| 2358 | 2308 | is not a duplicate. */ |
| 2359 | − new_answer->next = 0; | |
| 2360 | − if (node->type == NT_ASSERTION) | |
| 2309 | + if (*find_answer (node, answer)) | |
| 2361 | 2310 | { |
| 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; | |
| 2369 | 2314 | } |
| 2370 | 2315 | |
| 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; | |
| 2383 | 2324 | |
| 2384 | − node->type = NT_ASSERTION; | |
| 2385 | − node->value.answers = new_answer; | |
| 2386 | 2325 | check_eol (pfile, false); |
| 2387 | 2326 | } |
| 2388 | 2327 | } |
| @@ -2391,25 +2330,19 @@ do_assert (cpp_reader *pfile) · 2 unmodified lines | ||
| 2391 | 2330 | static void |
| 2392 | 2331 | do_unassert (cpp_reader *pfile) |
| 2393 | 2332 | { |
| 2394 | − cpp_hashnode *node; | |
| 2395 | − struct answer *answer; | |
| 2333 | + cpp_macro *answer; | |
| 2334 | + cpp_hashnode *node = parse_assertion (pfile, T_UNASSERT, &answer); | |
| 2396 | 2335 | |
| 2397 | − node = parse_assertion (pfile, &answer, T_UNASSERT); | |
| 2398 | 2336 | /* It isn't an error to #unassert something that isn't asserted. */ |
| 2399 | − if (node && node->type == NT_ASSERTION) | |
| 2337 | + if (node) | |
| 2400 | 2338 | { |
| 2401 | 2339 | if (answer) |
| 2402 | 2340 | { |
| 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); | |
| 2409 | 2342 | |
| 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; | |
| 2413 | 2346 | |
| 2414 | 2347 | check_eol (pfile, false); |
| 2415 | 2348 | } |
| @@ -2508,18 +2441,18 @@ cpp_pop_definition (cpp_reader *pfile, struct def_pragma_macro *c) · 92 unmodified lines | ||
| 2508 | 2441 | if (pfile->cb.before_define) |
| 2509 | 2442 | pfile->cb.before_define (pfile); |
| 2510 | 2443 | |
| 2511 | − if (node->type == NT_MACRO) | |
| 2444 | + if (cpp_macro_p (node)) | |
| 2512 | 2445 | { |
| 2513 | 2446 | if (pfile->cb.undef) |
| 2514 | 2447 | pfile->cb.undef (pfile, pfile->directive_line, node); |
| 2515 | 2448 | if (CPP_OPTION (pfile, warn_unused_macros)) |
| 2516 | 2449 | _cpp_warn_if_unused_macro (pfile, node, NULL); |
| 2450 | + _cpp_free_definition (node); | |
| 2517 | 2451 | } |
| 2518 | − if (node->type != NT_VOID) | |
| 2519 | − _cpp_free_definition (node); | |
| 2520 | 2452 | |
| 2521 | 2453 | if (c->is_undef) |
| 2522 | 2454 | return; |
| 2455 | + | |
| 2523 | 2456 | { |
| 2524 | 2457 | size_t namelen; |
| 2525 | 2458 | const uchar *dn; |
| @@ -2530,8 +2463,6 @@ cpp_pop_definition (cpp_reader *pfile, struct def_pragma_macro *c) · 4 unmodified lines | ||
| 2530 | 2463 | h = cpp_lookup (pfile, c->definition, namelen); |
| 2531 | 2464 | dn = c->definition + namelen; |
| 2532 | 2465 | |
| 2533 | − h->type = NT_VOID; | |
| 2534 | − h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED); | |
| 2535 | 2466 | nbuf = cpp_push_buffer (pfile, dn, ustrchr (dn, '\n') - dn, true); |
| 2536 | 2467 | if (nbuf != NULL) |
| 2537 | 2468 | { |
| @@ -2674,6 +2605,8 @@ _cpp_pop_buffer (cpp_reader *pfile) · 136 unmodified lines | ||
| 2674 | 2605 | |
| 2675 | 2606 | _cpp_do_file_change (pfile, LC_LEAVE, 0, 0, 0); |
| 2676 | 2607 | } |
| 2608 | + else if (to_free) | |
| 2609 | + free ((void *)to_free); | |
| 2677 | 2610 | } |
| 2678 | 2611 | |
| 2679 | 2612 | /* Enter all recognized directives in the hash table. */ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Default error handlers for CPP Library. |
| 2 | − Copyright (C) 1986-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1986-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Written by Per Bothner, 1994. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | 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 | ||
| 31 | 31 | |
| 32 | 32 | ATTRIBUTE_FPTR_PRINTF(5,0) |
| 33 | 33 | 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, | |
| 36 | 36 | const char *msgid, va_list *ap) |
| 37 | 37 | { |
| 38 | 38 | bool ret; |
| 39 | 39 | |
| 40 | − if (!pfile->cb.error) | |
| 40 | + if (!pfile->cb.diagnostic) | |
| 41 | 41 | abort (); |
| 42 | − ret = pfile->cb.error (pfile, level, reason, richloc, _(msgid), ap); | |
| 42 | + ret = pfile->cb.diagnostic (pfile, level, reason, richloc, _(msgid), ap); | |
| 43 | 43 | |
| 44 | 44 | return ret; |
| 45 | 45 | } |
| @@ -48,10 +48,11 @@ cpp_diagnostic_at (cpp_reader * pfile, int level, int reason, · 2 unmodified lines | ||
| 48 | 48 | |
| 49 | 49 | ATTRIBUTE_FPTR_PRINTF(4,0) |
| 50 | 50 | 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) | |
| 53 | 54 | { |
| 54 | − source_location src_loc; | |
| 55 | + location_t src_loc; | |
| 55 | 56 | |
| 56 | 57 | if (CPP_OPTION (pfile, traditional)) |
| 57 | 58 | { |
| @@ -77,7 +78,8 @@ cpp_diagnostic (cpp_reader * pfile, int level, int reason, · 19 unmodified lines | ||
| 77 | 78 | /* Print a warning or error, depending on the value of LEVEL. */ |
| 78 | 79 | |
| 79 | 80 | 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, ...) | |
| 81 | 83 | { |
| 82 | 84 | va_list ap; |
| 83 | 85 | bool ret; |
| @@ -93,7 +95,8 @@ cpp_error (cpp_reader * pfile, int level, const char *msgid, ...) · 9 unmodified lines | ||
| 93 | 95 | /* Print a warning. The warning reason may be given in REASON. */ |
| 94 | 96 | |
| 95 | 97 | 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, ...) | |
| 97 | 100 | { |
| 98 | 101 | va_list ap; |
| 99 | 102 | bool ret; |
| @@ -109,7 +112,8 @@ cpp_warning (cpp_reader * pfile, int reason, const char *msgid, ...) · 9 unmodified lines | ||
| 109 | 112 | /* Print a pedantic warning. The warning reason may be given in REASON. */ |
| 110 | 113 | |
| 111 | 114 | 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, ...) | |
| 113 | 117 | { |
| 114 | 118 | va_list ap; |
| 115 | 119 | bool ret; |
| @@ -126,7 +130,8 @@ cpp_pedwarning (cpp_reader * pfile, int reason, const char *msgid, ...) · 10 unmodified lines | ||
| 126 | 130 | given in REASON. */ |
| 127 | 131 | |
| 128 | 132 | 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, ...) | |
| 130 | 135 | { |
| 131 | 136 | va_list ap; |
| 132 | 137 | bool ret; |
| @@ -143,18 +148,19 @@ cpp_warning_syshdr (cpp_reader * pfile, int reason, const char *msgid, ...) · 10 unmodified lines | ||
| 143 | 148 | |
| 144 | 149 | ATTRIBUTE_FPTR_PRINTF(6,0) |
| 145 | 150 | 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) | |
| 149 | 155 | { |
| 150 | 156 | bool ret; |
| 151 | 157 | |
| 152 | − if (!pfile->cb.error) | |
| 158 | + if (!pfile->cb.diagnostic) | |
| 153 | 159 | abort (); |
| 154 | 160 | rich_location richloc (pfile->line_table, src_loc); |
| 155 | 161 | if (column) |
| 156 | 162 | 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); | |
| 158 | 164 | |
| 159 | 165 | return ret; |
| 160 | 166 | } |
| @@ -162,8 +168,8 @@ cpp_diagnostic_with_line (cpp_reader * pfile, int level, int reason, · 1 unmodified line | ||
| 162 | 168 | /* Print a warning or error, depending on the value of LEVEL. */ |
| 163 | 169 | |
| 164 | 170 | 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, | |
| 167 | 173 | const char *msgid, ...) |
| 168 | 174 | { |
| 169 | 175 | va_list ap; |
| @@ -181,8 +187,8 @@ cpp_error_with_line (cpp_reader *pfile, int level, · 11 unmodified lines | ||
| 181 | 187 | /* Print a warning. The warning reason may be given in REASON. */ |
| 182 | 188 | |
| 183 | 189 | 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, | |
| 186 | 192 | const char *msgid, ...) |
| 187 | 193 | { |
| 188 | 194 | va_list ap; |
| @@ -200,9 +206,9 @@ cpp_warning_with_line (cpp_reader *pfile, int reason, · 11 unmodified lines | ||
| 200 | 206 | /* Print a pedantic warning. The warning reason may be given in REASON. */ |
| 201 | 207 | |
| 202 | 208 | 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, ...) | |
| 206 | 212 | { |
| 207 | 213 | va_list ap; |
| 208 | 214 | bool ret; |
| @@ -220,9 +226,9 @@ cpp_pedwarning_with_line (cpp_reader *pfile, int reason, · 11 unmodified lines | ||
| 220 | 226 | given in REASON. */ |
| 221 | 227 | |
| 222 | 228 | 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, ...) | |
| 226 | 232 | { |
| 227 | 233 | va_list ap; |
| 228 | 234 | bool ret; |
| @@ -240,8 +246,8 @@ cpp_warning_with_line_syshdr (cpp_reader *pfile, int reason, · 11 unmodified lines | ||
| 240 | 246 | a column override. */ |
| 241 | 247 | |
| 242 | 248 | 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, ...) | |
| 245 | 251 | { |
| 246 | 252 | va_list ap; |
| 247 | 253 | bool ret; |
| @@ -260,8 +266,8 @@ cpp_error_at (cpp_reader * pfile, int level, source_location src_loc, · 12 unmodified lines | ||
| 260 | 266 | a column override. */ |
| 261 | 267 | |
| 262 | 268 | 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, ...) | |
| 265 | 271 | { |
| 266 | 272 | va_list ap; |
| 267 | 273 | bool ret; |
| @@ -279,7 +285,8 @@ cpp_error_at (cpp_reader * pfile, int level, rich_location *richloc, · 11 unmodified lines | ||
| 279 | 285 | information from errno. */ |
| 280 | 286 | |
| 281 | 287 | 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) | |
| 283 | 290 | { |
| 284 | 291 | return cpp_error (pfile, level, "%s: %s", _(msgid), xstrerror (errno)); |
| 285 | 292 | } |
| @@ -289,8 +296,9 @@ cpp_errno (cpp_reader *pfile, int level, const char *msgid) · 3 unmodified lines | ||
| 289 | 296 | that is not localized, but "" is replaced with localized "stdout". */ |
| 290 | 297 | |
| 291 | 298 | 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) | |
| 294 | 302 | { |
| 295 | 303 | if (filename[0] == '\0') |
| 296 | 304 | filename = _("stdout"); |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Parse C expressions for cpplib. |
| 2 | − Copyright (C) 1987-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1987-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Per Bothner, 1994. |
| 4 | 4 | |
| 5 | 5 | This program is free software; you can redistribute it and/or modify it |
| @@ -30,7 +30,7 @@ struct op · 24 unmodified lines | ||
| 30 | 30 | { |
| 31 | 31 | const cpp_token *token; /* The token forming op (for diagnostics). */ |
| 32 | 32 | 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. */ | |
| 34 | 34 | enum cpp_ttype op; |
| 35 | 35 | }; |
| 36 | 36 | |
| @@ -52,13 +52,13 @@ static cpp_num num_equality_op (cpp_reader *, cpp_num, cpp_num, · 15 unmodified lines | ||
| 52 | 52 | enum cpp_ttype); |
| 53 | 53 | static cpp_num num_mul (cpp_reader *, cpp_num, cpp_num); |
| 54 | 54 | static cpp_num num_div_op (cpp_reader *, cpp_num, cpp_num, enum cpp_ttype, |
| 55 | − source_location); | |
| 55 | + location_t); | |
| 56 | 56 | static cpp_num num_lshift (cpp_num, size_t, size_t); |
| 57 | 57 | static cpp_num num_rshift (cpp_num, size_t, size_t); |
| 58 | 58 | |
| 59 | 59 | static cpp_num append_digit (cpp_num, int, int, size_t); |
| 60 | 60 | 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); | |
| 62 | 62 | static struct op *reduce (cpp_reader *, struct op *, enum cpp_ttype); |
| 63 | 63 | static unsigned int interpret_float_suffix (cpp_reader *, const uchar *, size_t); |
| 64 | 64 | 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 | ||
| 505 | 505 | VIRTUAL_LOCATION is the virtual location for TOKEN. */ |
| 506 | 506 | unsigned int |
| 507 | 507 | 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) | |
| 509 | 509 | { |
| 510 | 510 | const uchar *str = token->val.str.text; |
| 511 | 511 | const uchar *limit; |
| @@ -1065,23 +1065,7 @@ parse_defined (cpp_reader *pfile) · 553 unmodified lines | ||
| 1065 | 1065 | "this use of \"defined\" may not be portable"); |
| 1066 | 1066 | |
| 1067 | 1067 | _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); | |
| 1085 | 1069 | |
| 1086 | 1070 | /* A possible controlling macro of the form #if !defined (). |
| 1087 | 1071 | _cpp_parse_expr checks there was no other junk on the line. */ |
| @@ -1097,8 +1081,8 @@ parse_defined (cpp_reader *pfile) · 9 unmodified lines | ||
| 1097 | 1081 | result.unsignedp = false; |
| 1098 | 1082 | result.high = 0; |
| 1099 | 1083 | 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)); | |
| 1102 | 1086 | return result; |
| 1103 | 1087 | } |
| 1104 | 1088 | |
| @@ -1107,7 +1091,7 @@ parse_defined (cpp_reader *pfile) · 2 unmodified lines | ||
| 1107 | 1091 | operators). */ |
| 1108 | 1092 | static cpp_num |
| 1109 | 1093 | eval_token (cpp_reader *pfile, const cpp_token *token, |
| 1110 | − source_location virtual_location) | |
| 1094 | + location_t virtual_location) | |
| 1111 | 1095 | { |
| 1112 | 1096 | cpp_num result; |
| 1113 | 1097 | unsigned int temp; |
| @@ -1304,7 +1288,7 @@ _cpp_parse_expr (cpp_reader *pfile, bool is_if) · 190 unmodified lines | ||
| 1304 | 1288 | struct op *top = pfile->op_stack; |
| 1305 | 1289 | unsigned int lex_count; |
| 1306 | 1290 | bool saw_leading_not, want_value = true; |
| 1307 | − source_location virtual_location = 0; | |
| 1291 | + location_t virtual_location = 0; | |
| 1308 | 1292 | |
| 1309 | 1293 | pfile->state.skip_eval = 0; |
| 1310 | 1294 | |
| @@ -2102,7 +2086,7 @@ num_mul (cpp_reader *pfile, cpp_num lhs, cpp_num rhs) · 791 unmodified lines | ||
| 2102 | 2086 | |
| 2103 | 2087 | static cpp_num |
| 2104 | 2088 | num_div_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op, |
| 2105 | − source_location location) | |
| 2089 | + location_t location) | |
| 2106 | 2090 | { |
| 2107 | 2091 | cpp_num result, sub; |
| 2108 | 2092 | cpp_num_part mask; |
| @@ -2254,7 +2238,7 @@ parse_has_include (cpp_reader *pfile, enum include_type type) · 145 unmodified lines | ||
| 2254 | 2238 | XDELETEVEC (fname); |
| 2255 | 2239 | } |
| 2256 | 2240 | |
| 2257 | − if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN) | |
| 2241 | + if (paren && !SEEN_EOL () && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN) | |
| 2258 | 2242 | cpp_error (pfile, CPP_DL_ERROR, |
| 2259 | 2243 | "missing ')' after \"__has_include__\""); |
| 2260 | 2244 | |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Part of CPP library. File handling. |
| 2 | − Copyright (C) 1986-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1986-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Written by Per Bothner, 1994. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | Adapted to ANSI C, Richard Stallman, Jan 1987 |
| @@ -144,7 +144,7 @@ struct cpp_file_hash_entry · 138 unmodified lines | ||
| 144 | 144 | { |
| 145 | 145 | struct cpp_file_hash_entry *next; |
| 146 | 146 | cpp_dir *start_dir; |
| 147 | − source_location location; | |
| 147 | + location_t location; | |
| 148 | 148 | union |
| 149 | 149 | { |
| 150 | 150 | _cpp_file *file; |
| @@ -171,18 +171,18 @@ static bool open_file (_cpp_file *file); · 20 unmodified lines | ||
| 171 | 171 | static bool pch_open_file (cpp_reader *pfile, _cpp_file *file, |
| 172 | 172 | bool *invalid_pch); |
| 173 | 173 | 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); | |
| 175 | 175 | static bool read_file_guts (cpp_reader *pfile, _cpp_file *file, |
| 176 | − source_location loc); | |
| 176 | + location_t loc); | |
| 177 | 177 | static bool read_file (cpp_reader *pfile, _cpp_file *file, |
| 178 | − source_location loc); | |
| 178 | + location_t loc); | |
| 179 | 179 | static bool should_stack_file (cpp_reader *, _cpp_file *file, bool import, |
| 180 | − source_location loc); | |
| 180 | + location_t loc); | |
| 181 | 181 | static struct cpp_dir *search_path_head (cpp_reader *, const char *fname, |
| 182 | 182 | int angle_brackets, enum include_type); |
| 183 | 183 | static const char *dir_name_of_file (_cpp_file *file); |
| 184 | 184 | static void open_file_failed (cpp_reader *pfile, _cpp_file *file, int, |
| 185 | − source_location); | |
| 185 | + location_t); | |
| 186 | 186 | static struct cpp_file_hash_entry *search_cache (struct cpp_file_hash_entry *head, |
| 187 | 187 | const cpp_dir *start_dir); |
| 188 | 188 | 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 | ||
| 377 | 377 | |
| 378 | 378 | static bool |
| 379 | 379 | find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch, |
| 380 | − source_location loc) | |
| 380 | + location_t loc) | |
| 381 | 381 | { |
| 382 | 382 | char *path; |
| 383 | 383 | |
| @@ -455,7 +455,7 @@ find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch, · 71 unmodified lines | ||
| 455 | 455 | return false; |
| 456 | 456 | } |
| 457 | 457 | |
| 458 | −/* Return tue iff the missing_header callback found the given HEADER. */ | |
| 458 | +/* Return true iff the missing_header callback found the given HEADER. */ | |
| 459 | 459 | static bool |
| 460 | 460 | search_path_exhausted (cpp_reader *pfile, const char *header, _cpp_file *file) |
| 461 | 461 | { |
| @@ -507,7 +507,7 @@ _cpp_find_failed (_cpp_file *file) · 45 unmodified lines | ||
| 507 | 507 | _cpp_file * |
| 508 | 508 | _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, |
| 509 | 509 | bool fake, int angle_brackets, bool implicit_preinclude, |
| 510 | − source_location loc) | |
| 510 | + location_t loc) | |
| 511 | 511 | { |
| 512 | 512 | struct cpp_file_hash_entry *entry; |
| 513 | 513 | void **hash_slot; |
| @@ -671,7 +671,7 @@ _cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir, · 157 unmodified lines | ||
| 671 | 671 | |
| 672 | 672 | FIXME: Flush file cache and try again if we run out of memory. */ |
| 673 | 673 | 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) | |
| 675 | 675 | { |
| 676 | 676 | ssize_t size, total, count; |
| 677 | 677 | uchar *buf; |
| @@ -755,7 +755,7 @@ read_file_guts (cpp_reader *pfile, _cpp_file *file, source_location loc) · 77 unmodified lines | ||
| 755 | 755 | have been passed through find_file() at some stage. Use LOC for |
| 756 | 756 | any diagnostics. */ |
| 757 | 757 | 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) | |
| 759 | 759 | { |
| 760 | 760 | /* If we already have its contents in memory, succeed immediately. */ |
| 761 | 761 | if (file->buffer_valid) |
| @@ -783,7 +783,7 @@ read_file (cpp_reader *pfile, _cpp_file *file, source_location loc) · 21 unmodified lines | ||
| 783 | 783 | Use LOC for any diagnostics. */ |
| 784 | 784 | static bool |
| 785 | 785 | should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import, |
| 786 | − source_location loc) | |
| 786 | + location_t loc) | |
| 787 | 787 | { |
| 788 | 788 | _cpp_file *f; |
| 789 | 789 | |
| @@ -805,7 +805,7 @@ should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import, · 15 unmodified lines | ||
| 805 | 805 | |
| 806 | 806 | /* Skip if the file had a header guard and the macro is defined. |
| 807 | 807 | 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)) | |
| 809 | 809 | return false; |
| 810 | 810 | |
| 811 | 811 | /* 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 | ||
| 892 | 892 | stacked. Use LOC for any diagnostics. */ |
| 893 | 893 | bool |
| 894 | 894 | _cpp_stack_file (cpp_reader *pfile, _cpp_file *file, bool import, |
| 895 | − source_location loc) | |
| 895 | + location_t loc) | |
| 896 | 896 | { |
| 897 | 897 | cpp_buffer *buffer; |
| 898 | 898 | int sysp; |
| 899 | 899 | |
| 900 | 900 | if (!should_stack_file (pfile, file, import, loc)) |
| 901 | − return false; | |
| 901 | + return false; | |
| 902 | 902 | |
| 903 | 903 | if (pfile->buffer == NULL || file->dir == NULL) |
| 904 | 904 | sysp = 0; |
| @@ -1007,11 +1007,12 @@ dir_name_of_file (_cpp_file *file) · 102 unmodified lines | ||
| 1007 | 1007 | Returns true if a buffer was stacked. */ |
| 1008 | 1008 | bool |
| 1009 | 1009 | _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) | |
| 1011 | 1011 | { |
| 1012 | 1012 | struct cpp_dir *dir; |
| 1013 | 1013 | _cpp_file *file; |
| 1014 | 1014 | bool stacked; |
| 1015 | + bool decremented = false; | |
| 1015 | 1016 | |
| 1016 | 1017 | /* For -include command-line flags we have type == IT_CMDLINE. |
| 1017 | 1018 | 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 | ||
| 1035 | 1036 | return false; |
| 1036 | 1037 | |
| 1037 | 1038 | /* 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. */ | |
| 1045 | 1050 | if (file->pchname == NULL && file->err_no == 0 |
| 1046 | 1051 | && 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 | + } | |
| 1048 | 1062 | |
| 1049 | 1063 | stacked = _cpp_stack_file (pfile, file, type == IT_IMPORT, loc); |
| 1050 | 1064 | |
| 1051 | − if (!stacked) | |
| 1065 | + if (decremented && !stacked) | |
| 1052 | 1066 | /* _cpp_stack_file didn't stack the file, so let's rollback the |
| 1053 | 1067 | compensation dance we performed above. */ |
| 1054 | 1068 | pfile->line_table->highest_location++; |
| @@ -1059,7 +1073,7 @@ _cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets, · 4 unmodified lines | ||
| 1059 | 1073 | /* Could not open FILE. The complication is dependency output. */ |
| 1060 | 1074 | static void |
| 1061 | 1075 | open_file_failed (cpp_reader *pfile, _cpp_file *file, int angle_brackets, |
| 1062 | − source_location loc) | |
| 1076 | + location_t loc) | |
| 1063 | 1077 | { |
| 1064 | 1078 | int sysp = pfile->line_table->highest_line > 1 && pfile->buffer ? pfile->buffer->sysp : 0; |
| 1065 | 1079 | 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 | ||
| 1247 | 1261 | filenames aliased by links or redundant . or .. traversals etc. */ |
| 1248 | 1262 | bool |
| 1249 | 1263 | cpp_included_before (cpp_reader *pfile, const char *fname, |
| 1250 | − source_location location) | |
| 1264 | + location_t location) | |
| 1251 | 1265 | { |
| 1252 | 1266 | struct cpp_file_hash_entry *entry |
| 1253 | 1267 | = (struct cpp_file_hash_entry *) |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Hash tables for the CPP library. |
| 2 | − Copyright (C) 1986-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1986-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Written by Per Bothner, 1994. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | 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 | ||
| 104 | 104 | |
| 105 | 105 | node = CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_NO_INSERT)); |
| 106 | 106 | |
| 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); | |
| 109 | 109 | } |
| 110 | 110 | |
| 111 | 111 | /* We don't need a proxy since the hash table's identifier comes first |
| @@ -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 | −}; | |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Definitions for CPP library. |
| 2 | − Copyright (C) 1995-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1995-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Written by Per Bothner, 1994-95. |
| 4 | 4 | |
| 5 | 5 | 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 | ||
| 36 | 36 | typedef struct cpp_callbacks cpp_callbacks; |
| 37 | 37 | typedef struct cpp_dir cpp_dir; |
| 38 | 38 | |
| 39 | −struct answer; | |
| 40 | 39 | struct _cpp_file; |
| 41 | 40 | |
| 42 | 41 | /* The first three groups, apart from '=', can appear in preprocessor |
| @@ -168,8 +167,9 @@ enum cpp_ttype · 125 unmodified lines | ||
| 168 | 167 | #undef TK |
| 169 | 168 | |
| 170 | 169 | /* 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, | |
| 172 | 171 | CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11, CLK_STDC17, |
| 172 | + CLK_STDC2X, | |
| 173 | 173 | CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11, |
| 174 | 174 | CLK_GNUCXX14, CLK_CXX14, CLK_GNUCXX17, CLK_CXX17, |
| 175 | 175 | CLK_GNUCXX2A, CLK_CXX2A, CLK_ASM}; |
| @@ -240,8 +240,10 @@ struct GTY(()) cpp_identifier { · 64 unmodified lines | ||
| 240 | 240 | /* A preprocessing token. This has been carefully packed and should |
| 241 | 241 | occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */ |
| 242 | 242 | 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 | + | |
| 245 | 247 | ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */ |
| 246 | 248 | unsigned short flags; /* flags - see above */ |
| 247 | 249 | |
| @@ -550,6 +552,59 @@ struct cpp_options · 302 unmodified lines | ||
| 550 | 552 | bool canonical_system_headers; |
| 551 | 553 | }; |
| 552 | 554 | |
| 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 | + | |
| 553 | 608 | /* Callback for header lookup for HEADER, which is the name of a |
| 554 | 609 | source file. It is used as a method of last resort to find headers |
| 555 | 610 | that are not otherwise found during the normal include processing. |
| @@ -571,12 +626,12 @@ struct cpp_callbacks · 15 unmodified lines | ||
| 571 | 626 | void (*file_change) (cpp_reader *, const line_map_ordinary *); |
| 572 | 627 | |
| 573 | 628 | 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 *, | |
| 575 | 630 | 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); | |
| 580 | 635 | int (*valid_pch) (cpp_reader *, const char *, int); |
| 581 | 636 | void (*read_pch) (cpp_reader *, const char *, int, const char *); |
| 582 | 637 | missing_header_cb missing_header; |
| @@ -587,26 +642,29 @@ struct cpp_callbacks · 4 unmodified lines | ||
| 587 | 642 | |
| 588 | 643 | /* Called to emit a diagnostic. This callback receives the |
| 589 | 644 | 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 *) | |
| 592 | 650 | ATTRIBUTE_FPTR_PRINTF(5,0); |
| 593 | 651 | |
| 594 | 652 | /* Callbacks for when a macro is expanded, or tested (whether |
| 595 | 653 | 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 *); | |
| 598 | 656 | /* Called before #define and #undef or other macro definition |
| 599 | 657 | changes are processed. */ |
| 600 | 658 | void (*before_define) (cpp_reader *); |
| 601 | 659 | /* Called whenever a macro is expanded or tested. |
| 602 | 660 | 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 *); | |
| 604 | 662 | |
| 605 | 663 | /* Callback to identify whether an attribute exists. */ |
| 606 | 664 | int (*has_attribute) (cpp_reader *); |
| 607 | 665 | |
| 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); | |
| 610 | 668 | |
| 611 | 669 | /* Callback to parse SOURCE_DATE_EPOCH from environment. */ |
| 612 | 670 | time_t (*get_source_date_epoch) (cpp_reader *); |
| @@ -620,7 +678,7 @@ struct cpp_callbacks · 7 unmodified lines | ||
| 620 | 678 | The content contains the opening slash-star (or slash-slash), |
| 621 | 679 | and for C-style comments contains the closing star-slash. For |
| 622 | 680 | 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 *, | |
| 624 | 682 | size_t); |
| 625 | 683 | |
| 626 | 684 | /* Callback for filename remapping in __FILE__ and __BASE_FILE__ macro |
| @@ -671,14 +729,81 @@ struct cpp_dir · 44 unmodified lines | ||
| 671 | 729 | dev_t dev; |
| 672 | 730 | }; |
| 673 | 731 | |
| 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 | |
| 682 | 807 | diagnostic may be required for this node. Currently this only |
| 683 | 808 | applies to __VA_ARGS__, poisoned identifiers, and -Wc++-compat |
| 684 | 809 | warnings about NODE_OPERATOR. */ |
| @@ -686,21 +811,21 @@ struct cpp_dir · 1 unmodified line | ||
| 686 | 811 | /* Hash node flags. */ |
| 687 | 812 | #define NODE_OPERATOR (1 << 0) /* C++ named operator. */ |
| 688 | 813 | #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. */ | |
| 697 | 820 | |
| 698 | 821 | /* Different flavors of hash node. */ |
| 699 | 822 | enum node_type |
| 700 | 823 | { |
| 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. */ | |
| 704 | 829 | }; |
| 705 | 830 | |
| 706 | 831 | /* Different flavors of builtin macro. _Pragma is an operator, but we |
| @@ -717,46 +842,27 @@ enum cpp_builtin_type · 10 unmodified lines | ||
| 717 | 842 | BT_PRAGMA, /* `_Pragma' operator */ |
| 718 | 843 | BT_TIMESTAMP, /* `__TIMESTAMP__' */ |
| 719 | 844 | 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)' */ | |
| 723 | 846 | }; |
| 724 | 847 | |
| 725 | 848 | #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)) | |
| 746 | 852 | |
| 747 | 853 | /* The common part of an identifier node shared amongst all 3 C front |
| 748 | 854 | ends. Also used to store CPP identifiers, which are a superset of |
| 749 | 855 | identifiers in the grammatical sense. */ |
| 750 | 856 | |
| 751 | 857 | 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; | |
| 756 | 862 | /* 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; | |
| 758 | 864 | /* Macro argument index. */ |
| 759 | − unsigned short GTY ((tag ("NTV_ARGUMENT"))) arg_index; | |
| 865 | + unsigned short GTY ((tag ("NT_MACRO_ARG"))) arg_index; | |
| 760 | 866 | }; |
| 761 | 867 | |
| 762 | 868 | struct GTY(()) cpp_hashnode { |
| @@ -766,10 +872,12 @@ struct GTY(()) cpp_hashnode { · 3 unmodified lines | ||
| 766 | 872 | then index into directive table. |
| 767 | 873 | Otherwise, a NODE_OPERATOR. */ |
| 768 | 874 | 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). */ | |
| 771 | 879 | |
| 772 | − union _cpp_hashnode_value GTY ((desc ("CPP_HASHNODE_VALUE_IDX (%1)"))) value; | |
| 880 | + union _cpp_hashnode_value GTY ((desc ("%1.type"))) value; | |
| 773 | 881 | }; |
| 774 | 882 | |
| 775 | 883 | /* A class for iterating through the source locations within a |
| @@ -778,13 +886,13 @@ struct GTY(()) cpp_hashnode { · 2 unmodified lines | ||
| 778 | 886 | |
| 779 | 887 | class cpp_string_location_reader { |
| 780 | 888 | public: |
| 781 | − cpp_string_location_reader (source_location src_loc, | |
| 889 | + cpp_string_location_reader (location_t src_loc, | |
| 782 | 890 | line_maps *line_table); |
| 783 | 891 | |
| 784 | 892 | source_range get_next (); |
| 785 | 893 | |
| 786 | 894 | private: |
| 787 | − source_location m_loc; | |
| 895 | + location_t m_loc; | |
| 788 | 896 | int m_offset_per_column; |
| 789 | 897 | line_maps *m_line_table; |
| 790 | 898 | }; |
| @@ -889,11 +997,32 @@ extern int cpp_avoid_paste (cpp_reader *, const cpp_token *, · 98 unmodified lines | ||
| 889 | 997 | const cpp_token *); |
| 890 | 998 | extern const cpp_token *cpp_get_token (cpp_reader *); |
| 891 | 999 | 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 | + | |
| 894 | 1020 | extern const unsigned char *cpp_macro_definition (cpp_reader *, |
| 895 | 1021 | 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 | +} | |
| 897 | 1026 | extern void _cpp_backup_tokens (cpp_reader *, unsigned int); |
| 898 | 1027 | extern const cpp_token *cpp_peek_token (cpp_reader *, int); |
| 899 | 1028 | |
| @@ -926,6 +1055,9 @@ extern void cpp_assert (cpp_reader *, const char *); · 26 unmodified lines | ||
| 926 | 1055 | extern void cpp_undef (cpp_reader *, const char *); |
| 927 | 1056 | extern void cpp_unassert (cpp_reader *, const char *); |
| 928 | 1057 | |
| 1058 | +/* Mark a node as a lazily defined macro. */ | |
| 1059 | +extern void cpp_define_lazily (cpp_reader *, cpp_hashnode *node, unsigned N); | |
| 1060 | + | |
| 929 | 1061 | /* Undefine all macros and assertions. */ |
| 930 | 1062 | extern void cpp_undef_all (cpp_reader *); |
| 931 | 1063 | |
| @@ -996,7 +1128,7 @@ struct cpp_num · 64 unmodified lines | ||
| 996 | 1128 | /* Classify a CPP_NUMBER token. The return value is a combination of |
| 997 | 1129 | the flags from the above sets. */ |
| 998 | 1130 | extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *, |
| 999 | − const char **, source_location); | |
| 1131 | + const char **, location_t); | |
| 1000 | 1132 | |
| 1001 | 1133 | /* Return the classification flags for a float suffix. */ |
| 1002 | 1134 | 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 | ||
| 1014 | 1146 | others assumed clear, to fill out a cpp_num structure. */ |
| 1015 | 1147 | cpp_num cpp_num_sign_extend (cpp_num, size_t); |
| 1016 | 1148 | |
| 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 | − | |
| 1069 | 1149 | /* 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, ...) | |
| 1071 | 1152 | 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, ...) | |
| 1073 | 1155 | 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, ...) | |
| 1075 | 1158 | 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, ...) | |
| 1077 | 1161 | ATTRIBUTE_PRINTF_3; |
| 1078 | 1162 | |
| 1079 | 1163 | /* Output a diagnostic with "MSGID: " preceding the |
| 1080 | 1164 | 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); | |
| 1082 | 1167 | /* Similarly, but with "FILENAME: " instead of "MSGID: ", where |
| 1083 | 1168 | 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); | |
| 1086 | 1171 | |
| 1087 | 1172 | /* Same as cpp_error, except additionally specifies a position as a |
| 1088 | 1173 | (translation unit) physical line and physical column. If the line is |
| 1089 | 1174 | 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, ...) | |
| 1092 | 1178 | 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, ...) | |
| 1095 | 1182 | 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, ...) | |
| 1098 | 1186 | 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, ...) | |
| 1101 | 1190 | ATTRIBUTE_PRINTF_5; |
| 1102 | 1191 | |
| 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, ...) | |
| 1105 | 1194 | ATTRIBUTE_PRINTF_4; |
| 1106 | 1195 | |
| 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, ...) | |
| 1110 | 1198 | ATTRIBUTE_PRINTF_4; |
| 1111 | 1199 | |
| 1112 | 1200 | /* In lex.c */ |
| @@ -1133,7 +1221,7 @@ typedef struct · 20 unmodified lines | ||
| 1133 | 1221 | char *comment; |
| 1134 | 1222 | |
| 1135 | 1223 | /* source location for the given comment. */ |
| 1136 | − source_location sloc; | |
| 1224 | + location_t sloc; | |
| 1137 | 1225 | } cpp_comment; |
| 1138 | 1226 | |
| 1139 | 1227 | /* 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 | ||
| 1172 | 1260 | |
| 1173 | 1261 | /* In files.c */ |
| 1174 | 1262 | 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); | |
| 1176 | 1264 | extern void cpp_make_system_header (cpp_reader *, int, int); |
| 1177 | 1265 | extern bool cpp_push_include (cpp_reader *, const char *); |
| 1178 | 1266 | 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 | ||
| 1195 | 1283 | struct save_macro_data *); |
| 1196 | 1284 | |
| 1197 | 1285 | /* 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); | |
| 1199 | 1287 | extern void cpp_stop_forcing_token_locations (cpp_reader *); |
| 1200 | 1288 | |
| 1201 | 1289 | /* In expr.c */ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* 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. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | 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 | ||
| 49 | 49 | /* The type of line numbers. */ |
| 50 | 50 | typedef unsigned int linenum_type; |
| 51 | 51 | |
| 52 | +/* A type for doing arithmetic on line numbers. */ | |
| 53 | +typedef long long linenum_arith_t; | |
| 54 | + | |
| 52 | 55 | /* A function for for use by qsort for comparing line numbers. */ |
| 53 | 56 | |
| 54 | 57 | inline int compare (linenum_type lhs, linenum_type rhs) |
| 55 | 58 | { |
| 56 | − /* Avoid truncation issues by using long long for the comparison, | |
| 59 | + /* Avoid truncation issues by using linenum_arith_t for the comparison, | |
| 57 | 60 | 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; | |
| 59 | 62 | if (diff) |
| 60 | 63 | return diff > 0 ? 1 : -1; |
| 61 | 64 | return 0; |
| 62 | 65 | } |
| 63 | 66 | |
| 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. */ | |
| 71 | 68 | enum lc_reason |
| 72 | 69 | { |
| 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. */ | |
| 78 | 75 | /* FIXME: add support for stringize and paste. */ |
| 76 | + LC_HWM /* High Water Mark. */ | |
| 79 | 77 | }; |
| 80 | 78 | |
| 81 | −/* The typedef "source_location" is a key within the location database, | |
| 79 | +/* The typedef "location_t" is a key within the location database, | |
| 82 | 80 | identifying a source location or macro expansion, along with range |
| 83 | 81 | information, and (optionally) a pointer for use by gcc. |
| 84 | 82 | |
| @@ -168,7 +166,7 @@ enum lc_reason · 83 unmodified lines | ||
| 168 | 166 | | Beyond this point, ordinary linemaps have 0 bits per column: |
| 169 | 167 | | each increment of the value corresponds to a new source line. |
| 170 | 168 | | |
| 171 | − 0x70000000 | LINE_MAP_MAX_SOURCE_LOCATION | |
| 169 | + 0x70000000 | LINE_MAP_MAX_LOCATION | |
| 172 | 170 | | Beyond the point, we give up on ordinary maps; attempts to |
| 173 | 171 | | create locations in them lead to UNKNOWN_LOCATION (0). |
| 174 | 172 | | |
| @@ -187,7 +185,7 @@ enum lc_reason · 12 unmodified lines | ||
| 187 | 185 | | macromap[1]->start_location | Start of macro map 1 |
| 188 | 186 | -----------+-------------------------------+------------------------------- |
| 189 | 187 | | 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 | |
| 191 | 189 | | | accessing the ad-hoc data table |
| 192 | 190 | -----------+-------------------------------+------------------------------- |
| 193 | 191 | 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 | ||
| 288 | 286 | finish == ordmap->start + (23 << 12) + (19 << 5) |
| 289 | 287 | == ordmap->start + 0x17260 |
| 290 | 288 | |
| 291 | − To further see how source_location works in practice, see the | |
| 289 | + To further see how location_t works in practice, see the | |
| 292 | 290 | worked example in libcpp/location-example.txt. */ |
| 293 | −typedef unsigned int source_location; | |
| 291 | +typedef unsigned int location_t; | |
| 294 | 292 | |
| 295 | 293 | /* Do not track column numbers higher than this one. As a result, the |
| 296 | 294 | 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 | ||
| 300 | 298 | /* Do not pack ranges if locations get higher than this. |
| 301 | 299 | If you change this, update: |
| 302 | 300 | 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; | |
| 304 | 302 | |
| 305 | 303 | /* Do not track column numbers if locations get higher than this. |
| 306 | 304 | If you change this, update: |
| 307 | 305 | 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; | |
| 309 | 310 | |
| 310 | 311 | /* A range of source locations. |
| 311 | 312 | |
| @@ -317,15 +318,15 @@ const source_location LINE_MAP_MAX_LOCATION_WITH_COLS = 0x60000000; · 5 unmodified lines | ||
| 317 | 318 | let's do it the simple way, as a pair. */ |
| 318 | 319 | struct GTY(()) source_range |
| 319 | 320 | { |
| 320 | − source_location m_start; | |
| 321 | − source_location m_finish; | |
| 321 | + location_t m_start; | |
| 322 | + location_t m_finish; | |
| 322 | 323 | |
| 323 | 324 | /* We avoid using constructors, since various structs that |
| 324 | 325 | don't yet have constructors will embed instances of |
| 325 | 326 | source_range. */ |
| 326 | 327 | |
| 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) | |
| 329 | 330 | { |
| 330 | 331 | source_range result; |
| 331 | 332 | result.m_start = loc; |
| @@ -333,9 +334,9 @@ struct GTY(()) source_range · 1 unmodified line | ||
| 333 | 334 | return result; |
| 334 | 335 | } |
| 335 | 336 | |
| 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) | |
| 339 | 340 | { |
| 340 | 341 | source_range result; |
| 341 | 342 | result.m_start = start; |
| @@ -377,11 +378,13 @@ typedef size_t (*line_map_round_alloc_size_func) (size_t); · 35 unmodified lines | ||
| 377 | 378 | location of the expansion point of PLUS. That location is mapped in |
| 378 | 379 | the map that is active right before the location of the invocation |
| 379 | 380 | of PLUS. */ |
| 380 | −struct GTY((tag ("0"), desc ("%h.reason == LC_ENTER_MACRO ? 2 : 1"))) line_map { | |
| 381 | − source_location start_location; | |
| 382 | 381 | |
| 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. */ | |
| 385 | 388 | }; |
| 386 | 389 | |
| 387 | 390 | /* 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 | ||
| 395 | 398 | (The top line is line 1 and the leftmost column is column 1; line/column 0 |
| 396 | 399 | means "entire file/line" or "unknown line/column" or "not applicable".) |
| 397 | 400 | |
| 398 | − The highest possible source location is MAX_SOURCE_LOCATION. */ | |
| 401 | + The highest possible source location is MAX_LOCATION_T. */ | |
| 399 | 402 | 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. */ | |
| 402 | 404 | |
| 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; | |
| 407 | 409 | |
| 408 | 410 | /* SYSP is one for a system header, two for a C system header file |
| 409 | 411 | 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 | ||
| 411 | 413 | cpp_buffer. */ |
| 412 | 414 | unsigned char sysp; |
| 413 | 415 | |
| 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 | |
| 415 | 417 | and ranges. */ |
| 416 | 418 | unsigned int m_column_and_range_bits : 8; |
| 417 | 419 | |
| @@ -429,11 +431,23 @@ struct GTY((tag ("1"))) line_map_ordinary : public line_map { · 11 unmodified lines | ||
| 429 | 431 | | | (e.g. 7) | (e.g. 5) | |
| 430 | 432 | +-------------------------+-----------------------+-------------------+ */ |
| 431 | 433 | 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 */ | |
| 432 | 446 | }; |
| 433 | 447 | |
| 434 | 448 | /* This is the highest possible source location encoded within an |
| 435 | 449 | ordinary or macro map. */ |
| 436 | −const source_location MAX_SOURCE_LOCATION = 0x7FFFFFFF; | |
| 450 | +const location_t MAX_LOCATION_T = 0x7FFFFFFF; | |
| 437 | 451 | |
| 438 | 452 | struct cpp_hashnode; |
| 439 | 453 | |
| @@ -443,15 +457,20 @@ struct cpp_hashnode; · 3 unmodified lines | ||
| 443 | 457 | The offset from START_LOCATION is used to index into |
| 444 | 458 | MACRO_LOCATIONS; this holds the original location of the token. */ |
| 445 | 459 | 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. */ | |
| 451 | 461 | |
| 452 | 462 | /* The number of tokens inside the replacement-list of MACRO. */ |
| 453 | 463 | unsigned int n_tokens; |
| 454 | 464 | |
| 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 | + | |
| 455 | 474 | /* This array of location is actually an array of pairs of |
| 456 | 475 | locations. The elements inside it thus look like: |
| 457 | 476 | |
| @@ -505,14 +524,16 @@ struct GTY((tag ("2"))) line_map_macro : public line_map { · 47 unmodified lines | ||
| 505 | 524 | In the example above x1 (for token "+") is going to be the same |
| 506 | 525 | as y1. x0 is the spelling location for the argument token "1", |
| 507 | 526 | 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; | |
| 509 | 528 | |
| 510 | 529 | /* This is the location of the expansion point of the current macro |
| 511 | 530 | map. It's the location of the macro name. That location is held |
| 512 | 531 | by the map that was current right before the current one. It |
| 513 | 532 | could have been either a macro or an ordinary map, depending on |
| 514 | 533 | 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). */ | |
| 516 | 537 | }; |
| 517 | 538 | |
| 518 | 539 | #if CHECKING_P && (GCC_VERSION >= 2007) |
| @@ -540,6 +561,34 @@ struct GTY((tag ("2"))) line_map_macro : public line_map { · 21 unmodified lines | ||
| 540 | 561 | #define linemap_assert_fails(EXPR) (! (EXPR)) |
| 541 | 562 | #endif |
| 542 | 563 | |
| 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 | + | |
| 543 | 592 | /* Return TRUE if MAP encodes locations coming from a macro |
| 544 | 593 | replacement-list at macro expansion point. */ |
| 545 | 594 | bool |
| @@ -552,7 +601,7 @@ linemap_macro_expansion_map_p (const struct line_map *); · 6 unmodified lines | ||
| 552 | 601 | inline line_map_ordinary * |
| 553 | 602 | linemap_check_ordinary (struct line_map *map) |
| 554 | 603 | { |
| 555 | − linemap_assert (!linemap_macro_expansion_map_p (map)); | |
| 604 | + linemap_assert (MAP_ORDINARY_P (map)); | |
| 556 | 605 | return (line_map_ordinary *)map; |
| 557 | 606 | } |
| 558 | 607 | |
| @@ -563,7 +612,7 @@ linemap_check_ordinary (struct line_map *map) · 4 unmodified lines | ||
| 563 | 612 | inline const line_map_ordinary * |
| 564 | 613 | linemap_check_ordinary (const struct line_map *map) |
| 565 | 614 | { |
| 566 | − linemap_assert (!linemap_macro_expansion_map_p (map)); | |
| 615 | + linemap_assert (MAP_ORDINARY_P (map)); | |
| 567 | 616 | return (const line_map_ordinary *)map; |
| 568 | 617 | } |
| 569 | 618 | |
| @@ -572,7 +621,7 @@ linemap_check_ordinary (const struct line_map *map) · 2 unmodified lines | ||
| 572 | 621 | |
| 573 | 622 | inline line_map_macro *linemap_check_macro (line_map *map) |
| 574 | 623 | { |
| 575 | − linemap_assert (linemap_macro_expansion_map_p (map)); | |
| 624 | + linemap_assert (!MAP_ORDINARY_P (map)); | |
| 576 | 625 | return (line_map_macro *)map; |
| 577 | 626 | } |
| 578 | 627 | |
| @@ -582,13 +631,13 @@ inline line_map_macro *linemap_check_macro (line_map *map) · 3 unmodified lines | ||
| 582 | 631 | inline const line_map_macro * |
| 583 | 632 | linemap_check_macro (const line_map *map) |
| 584 | 633 | { |
| 585 | − linemap_assert (linemap_macro_expansion_map_p (map)); | |
| 634 | + linemap_assert (!MAP_ORDINARY_P (map)); | |
| 586 | 635 | return (const line_map_macro *)map; |
| 587 | 636 | } |
| 588 | 637 | |
| 589 | 638 | /* Read the start location of MAP. */ |
| 590 | 639 | |
| 591 | −inline source_location | |
| 640 | +inline location_t | |
| 592 | 641 | MAP_START_LOCATION (const line_map *map) |
| 593 | 642 | { |
| 594 | 643 | return map->start_location; |
| @@ -602,17 +651,6 @@ ORDINARY_MAP_STARTING_LINE_NUMBER (const line_map_ordinary *ord_map) · 7 unmodified lines | ||
| 602 | 651 | return ord_map->to_line; |
| 603 | 652 | } |
| 604 | 653 | |
| 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 | − | |
| 616 | 654 | /* Return a positive value if map encodes locations from a system |
| 617 | 655 | header, 0 otherwise. Returns 1 if ordinary map MAP encodes locations |
| 618 | 656 | 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 | ||
| 652 | 690 | /* Get the array of pairs of locations within macro map MAP. |
| 653 | 691 | See the declaration of line_map_macro for more information. */ |
| 654 | 692 | |
| 655 | −inline source_location * | |
| 693 | +inline location_t * | |
| 656 | 694 | MACRO_MAP_LOCATIONS (const line_map_macro *macro_map) |
| 657 | 695 | { |
| 658 | 696 | return macro_map->macro_locations; |
| @@ -660,7 +698,7 @@ MACRO_MAP_LOCATIONS (const line_map_macro *macro_map) · 1 unmodified line | ||
| 660 | 698 | |
| 661 | 699 | /* Get the location of the expansion point of the macro map MAP. */ |
| 662 | 700 | |
| 663 | −inline source_location | |
| 701 | +inline location_t | |
| 664 | 702 | MACRO_MAP_EXPANSION_POINT_LOCATION (const line_map_macro *macro_map) |
| 665 | 703 | { |
| 666 | 704 | return macro_map->expansion; |
| @@ -707,7 +745,7 @@ struct GTY(()) maps_info_macro { · 40 unmodified lines | ||
| 707 | 745 | /* Data structure to associate a source_range together with an arbitrary |
| 708 | 746 | data pointer with a source location. */ |
| 709 | 747 | struct GTY(()) location_adhoc_data { |
| 710 | − source_location locus; | |
| 748 | + location_t locus; | |
| 711 | 749 | source_range src_range; |
| 712 | 750 | void * GTY((skip)) data; |
| 713 | 751 | }; |
| @@ -726,7 +764,7 @@ struct htab; · 12 unmodified lines | ||
| 726 | 764 | |
| 727 | 765 | struct GTY(()) location_adhoc_data_map { |
| 728 | 766 | struct htab * GTY((skip)) htab; |
| 729 | − source_location curr_loc; | |
| 767 | + location_t curr_loc; | |
| 730 | 768 | unsigned int allocated; |
| 731 | 769 | struct location_adhoc_data GTY((length ("%h.allocated"))) *data; |
| 732 | 770 | }; |
| @@ -746,18 +784,17 @@ struct GTY(()) line_maps { · 13 unmodified lines | ||
| 746 | 784 | /* If true, prints an include trace a la -H. */ |
| 747 | 785 | bool trace_includes; |
| 748 | 786 | |
| 749 | − /* Highest source_location "given out". */ | |
| 750 | − source_location highest_location; | |
| 787 | + /* Highest location_t "given out". */ | |
| 788 | + location_t highest_location; | |
| 751 | 789 | |
| 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; | |
| 754 | 792 | |
| 755 | 793 | /* The maximum column number we can quickly allocate. Higher numbers |
| 756 | 794 | may require allocating a new line_map. */ |
| 757 | 795 | unsigned int max_column_hint; |
| 758 | 796 | |
| 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. */ | |
| 761 | 798 | line_map_realloc reallocator; |
| 762 | 799 | |
| 763 | 800 | /* The allocators' function used to know the actual size it |
| @@ -768,7 +805,7 @@ struct GTY(()) line_maps { · 4 unmodified lines | ||
| 768 | 805 | |
| 769 | 806 | /* The special location value that is used as spelling location for |
| 770 | 807 | built-in tokens. */ |
| 771 | − source_location builtin_location; | |
| 808 | + location_t builtin_location; | |
| 772 | 809 | |
| 773 | 810 | /* True if we've seen a #line or # 44 "file" directive. */ |
| 774 | 811 | bool seen_line_directive; |
| @@ -998,12 +1035,12 @@ LINEMAPS_LAST_MACRO_MAP (const line_maps *set) · 223 unmodified lines | ||
| 998 | 1035 | |
| 999 | 1036 | /* Returns the lowest location [of a token resulting from macro |
| 1000 | 1037 | expansion] encoded in this line table. */ |
| 1001 | −inline source_location | |
| 1038 | +inline location_t | |
| 1002 | 1039 | LINEMAPS_MACRO_LOWEST_LOCATION (const line_maps *set) |
| 1003 | 1040 | { |
| 1004 | 1041 | return LINEMAPS_MACRO_USED (set) |
| 1005 | 1042 | ? MAP_START_LOCATION (LINEMAPS_LAST_MACRO_MAP (set)) |
| 1006 | − : MAX_SOURCE_LOCATION; | |
| 1043 | + : MAX_LOCATION_T + 1; | |
| 1007 | 1044 | } |
| 1008 | 1045 | |
| 1009 | 1046 | /* 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 | ||
| 1013 | 1050 | return (line_map_macro *)LINEMAPS_LAST_ALLOCATED_MAP (set, true); |
| 1014 | 1051 | } |
| 1015 | 1052 | |
| 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, | |
| 1018 | 1055 | source_range, |
| 1019 | 1056 | 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); | |
| 1023 | 1060 | |
| 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); | |
| 1033 | 1062 | |
| 1034 | 1063 | /* Get whether location LOC is a "pure" location, or |
| 1035 | 1064 | whether it is an ad-hoc location, or embeds range information. */ |
| 1036 | 1065 | |
| 1037 | 1066 | bool |
| 1038 | −pure_location_p (line_maps *set, source_location loc); | |
| 1067 | +pure_location_p (line_maps *set, location_t loc); | |
| 1039 | 1068 | |
| 1040 | 1069 | /* Given location LOC within SET, strip away any packed range information |
| 1041 | 1070 | or ad-hoc information. */ |
| 1042 | 1071 | |
| 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); | |
| 1045 | 1074 | |
| 1046 | 1075 | /* Combine LOC and BLOCK, giving a combined adhoc location. */ |
| 1047 | 1076 | |
| 1048 | −inline source_location | |
| 1077 | +inline location_t | |
| 1049 | 1078 | COMBINE_LOCATION_DATA (struct line_maps *set, |
| 1050 | − source_location loc, | |
| 1079 | + location_t loc, | |
| 1051 | 1080 | source_range src_range, |
| 1052 | 1081 | void *block) |
| 1053 | 1082 | { |
| @@ -1061,19 +1090,19 @@ extern void rebuild_location_adhoc_htab (struct line_maps *); · 7 unmodified lines | ||
| 1061 | 1090 | spelling location for built-in tokens. This BUILTIN_LOCATION has |
| 1062 | 1091 | to be strictly less than RESERVED_LOCATION_COUNT. */ |
| 1063 | 1092 | extern void linemap_init (struct line_maps *set, |
| 1064 | − source_location builtin_location); | |
| 1093 | + location_t builtin_location); | |
| 1065 | 1094 | |
| 1066 | 1095 | /* Check for and warn about line_maps entered but not exited. */ |
| 1067 | 1096 | |
| 1068 | 1097 | extern void linemap_check_files_exited (struct line_maps *); |
| 1069 | 1098 | |
| 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 | |
| 1071 | 1100 | (physical) line TO_LINE in the current source file (as in the |
| 1072 | 1101 | most recent linemap_add). MAX_COLUMN_HINT is the highest column |
| 1073 | 1102 | number we expect to use in this line (but it does not change |
| 1074 | 1103 | the highest_location). */ |
| 1075 | 1104 | |
| 1076 | −extern source_location linemap_line_start | |
| 1105 | +extern location_t linemap_line_start | |
| 1077 | 1106 | (struct line_maps *set, linenum_type to_line, unsigned int max_column_hint); |
| 1078 | 1107 | |
| 1079 | 1108 | /* 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 | ||
| 1100 | 1129 | binary search. If no line map have been allocated yet, this |
| 1101 | 1130 | function returns NULL. */ |
| 1102 | 1131 | extern const struct line_map *linemap_lookup |
| 1103 | − (struct line_maps *, source_location); | |
| 1132 | + (struct line_maps *, location_t); | |
| 1104 | 1133 | |
| 1105 | 1134 | /* Returns TRUE if the line table set tracks token locations across |
| 1106 | 1135 | macro expansion, FALSE otherwise. */ |
| @@ -1119,114 +1148,86 @@ const char* linemap_map_get_macro_name (const line_map_macro *); · 12 unmodified lines | ||
| 1119 | 1148 | that is part of a macro replacement-list defined in a system |
| 1120 | 1149 | header, but expanded in a non-system file. */ |
| 1121 | 1150 | int linemap_location_in_system_header_p (struct line_maps *, |
| 1122 | − source_location); | |
| 1151 | + location_t); | |
| 1123 | 1152 | |
| 1124 | 1153 | /* Return TRUE if LOCATION is a source code location of a token that is part of |
| 1125 | 1154 | a macro expansion, FALSE otherwise. */ |
| 1126 | 1155 | bool linemap_location_from_macro_expansion_p (const struct line_maps *, |
| 1127 | − source_location); | |
| 1156 | + location_t); | |
| 1128 | 1157 | |
| 1129 | 1158 | /* TRUE if LOCATION is a source code location of a token that is part of the |
| 1130 | 1159 | definition of a macro, FALSE otherwise. */ |
| 1131 | 1160 | bool linemap_location_from_macro_definition_p (struct line_maps *, |
| 1132 | − source_location); | |
| 1161 | + location_t); | |
| 1133 | 1162 | |
| 1134 | 1163 | /* With the precondition that LOCATION is the locus of a token that is |
| 1135 | 1164 | an argument of a function-like macro MACRO_MAP and appears in the |
| 1136 | 1165 | expansion of MACRO_MAP, return the locus of that argument in the |
| 1137 | 1166 | context of the caller of MACRO_MAP. */ |
| 1138 | 1167 | |
| 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); | |
| 1141 | 1170 | |
| 1142 | −/* source_location values from 0 to RESERVED_LOCATION_COUNT-1 will | |
| 1171 | +/* location_t values from 0 to RESERVED_LOCATION_COUNT-1 will | |
| 1143 | 1172 | be reserved for libcpp user as special values, no token from libcpp |
| 1144 | 1173 | will contain any of those locations. */ |
| 1145 | −const source_location RESERVED_LOCATION_COUNT = 2; | |
| 1174 | +const location_t RESERVED_LOCATION_COUNT = 2; | |
| 1146 | 1175 | |
| 1147 | −/* Converts a map and a source_location to source line. */ | |
| 1176 | +/* Converts a map and a location_t to source line. */ | |
| 1148 | 1177 | 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) | |
| 1150 | 1179 | { |
| 1151 | 1180 | return ((loc - ord_map->start_location) |
| 1152 | 1181 | >> ord_map->m_column_and_range_bits) + ord_map->to_line; |
| 1153 | 1182 | } |
| 1154 | 1183 | |
| 1155 | −/* Convert a map and source_location to source column number. */ | |
| 1184 | +/* Convert a map and location_t to source column number. */ | |
| 1156 | 1185 | 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) | |
| 1158 | 1187 | { |
| 1159 | 1188 | return ((loc - ord_map->start_location) |
| 1160 | 1189 | & ((1 << ord_map->m_column_and_range_bits) - 1)) >> ord_map->m_range_bits; |
| 1161 | 1190 | } |
| 1162 | 1191 | |
| 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. */ | |
| 1184 | 1192 | |
| 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) | |
| 1187 | 1195 | { |
| 1188 | − return SOURCE_COLUMN (map, LAST_SOURCE_LINE_LOCATION (map)); | |
| 1196 | + return ord_map->included_from; | |
| 1189 | 1197 | } |
| 1190 | 1198 | |
| 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); | |
| 1201 | 1202 | |
| 1202 | 1203 | /* True if the map is at the bottom of the include stack. */ |
| 1203 | 1204 | |
| 1204 | 1205 | inline bool |
| 1205 | 1206 | MAIN_FILE_P (const line_map_ordinary *ord_map) |
| 1206 | 1207 | { |
| 1207 | − return ord_map->included_from < 0; | |
| 1208 | + return ord_map->included_from == 0; | |
| 1208 | 1209 | } |
| 1209 | 1210 | |
| 1210 | −/* Encode and return a source_location from a column number. The | |
| 1211 | +/* Encode and return a location_t from a column number. The | |
| 1211 | 1212 | source line considered is the last source line used to call |
| 1212 | 1213 | linemap_line_start, i.e, the last source line which a location was |
| 1213 | 1214 | encoded from. */ |
| 1214 | −extern source_location | |
| 1215 | +extern location_t | |
| 1215 | 1216 | linemap_position_for_column (struct line_maps *, unsigned int); |
| 1216 | 1217 | |
| 1217 | 1218 | /* Encode and return a source location from a given line and |
| 1218 | 1219 | column. */ |
| 1219 | −source_location | |
| 1220 | +location_t | |
| 1220 | 1221 | linemap_position_for_line_and_column (line_maps *set, |
| 1221 | 1222 | const line_map_ordinary *, |
| 1222 | 1223 | linenum_type, unsigned int); |
| 1223 | 1224 | |
| 1224 | −/* Encode and return a source_location starting from location LOC and | |
| 1225 | +/* Encode and return a location_t starting from location LOC and | |
| 1225 | 1226 | shifting it by OFFSET columns. This function does not support |
| 1226 | 1227 | virtual locations. */ |
| 1227 | −source_location | |
| 1228 | +location_t | |
| 1228 | 1229 | linemap_position_for_loc_and_offset (struct line_maps *set, |
| 1229 | − source_location loc, | |
| 1230 | + location_t loc, | |
| 1230 | 1231 | unsigned int offset); |
| 1231 | 1232 | |
| 1232 | 1233 | /* Return the file this map is for. */ |
| @@ -1258,16 +1259,16 @@ LINEMAP_SYSP (const line_map_ordinary *ord_map) · 25 unmodified lines | ||
| 1258 | 1259 | the same token as the token for POST, and a negative value |
| 1259 | 1260 | otherwise. */ |
| 1260 | 1261 | int linemap_compare_locations (struct line_maps *set, |
| 1261 | − source_location pre, | |
| 1262 | − source_location post); | |
| 1262 | + location_t pre, | |
| 1263 | + location_t post); | |
| 1263 | 1264 | |
| 1264 | 1265 | /* Return TRUE if LOC_A denotes the location a token that comes |
| 1265 | 1266 | topogically before the token denoted by location LOC_B, or if they |
| 1266 | 1267 | are equal. */ |
| 1267 | 1268 | inline bool |
| 1268 | 1269 | 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) | |
| 1271 | 1272 | { |
| 1272 | 1273 | return linemap_compare_locations (set, loc_a, loc_b) >= 0; |
| 1273 | 1274 | } |
| @@ -1288,23 +1289,50 @@ typedef struct · 14 unmodified lines | ||
| 1288 | 1289 | bool sysp; |
| 1289 | 1290 | } expanded_location; |
| 1290 | 1291 | |
| 1291 | −/* A location within a rich_location: a caret&range, with | |
| 1292 | − the caret potentially flagged for display. */ | |
| 1292 | +class range_label; | |
| 1293 | 1293 | |
| 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. | |
| 1297 | 1296 | |
| 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: | |
| 1301 | 1301 | |
| 1302 | 1302 | x = x + y |
| 1303 | 1303 | 1 2 |
| 1304 | 1304 | Error: Shapes for operands at (1) and (2) are not conformable |
| 1305 | 1305 | |
| 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; | |
| 1308 | 1336 | }; |
| 1309 | 1337 | |
| 1310 | 1338 | /* A partially-embedded vec for use within rich_location for storing |
| @@ -1446,6 +1474,8 @@ class fixit_hint; · 135 unmodified lines | ||
| 1446 | 1474 | Additional ranges may be added to help the user identify other |
| 1447 | 1475 | pertinent clauses in a diagnostic. |
| 1448 | 1476 | |
| 1477 | + Ranges can (optionally) be given labels via class range_label. | |
| 1478 | + | |
| 1449 | 1479 | rich_location instances are intended to be allocated on the stack |
| 1450 | 1480 | when generating diagnostics, and to be short-lived. |
| 1451 | 1481 | |
| @@ -1491,18 +1521,22 @@ class fixit_hint; · 39 unmodified lines | ||
| 1491 | 1521 | equal to their caret point. The frontend overrides the diagnostic |
| 1492 | 1522 | context's default caret character for these ranges. |
| 1493 | 1523 | |
| 1494 | − Example E | |
| 1495 | − ********* | |
| 1524 | + Example E (range labels) | |
| 1525 | + ************************ | |
| 1496 | 1526 | printf ("arg0: %i arg1: %s arg2: %i", |
| 1497 | 1527 | ^~ |
| 1528 | + | | |
| 1529 | + const char * | |
| 1498 | 1530 | 100, 101, 102); |
| 1499 | 1531 | ~~~ |
| 1532 | + | | |
| 1533 | + int | |
| 1500 | 1534 | This rich location has two ranges: |
| 1501 | 1535 | - 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 *"). | |
| 1503 | 1537 | - 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"). | |
| 1506 | 1540 | |
| 1507 | 1541 | Fix-it hints |
| 1508 | 1542 | ------------ |
| @@ -1562,9 +1596,21 @@ class fixit_hint; · 53 unmodified lines | ||
| 1562 | 1596 | added via |
| 1563 | 1597 | richloc.add_fixit_replace ("color"); |
| 1564 | 1598 | |
| 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 | + | |
| 1565 | 1611 | Adding a fix-it hint can fail: for example, attempts to insert content |
| 1566 | 1612 | 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. | |
| 1568 | 1614 | |
| 1569 | 1615 | Attempts to add a fix-it hint within a macro expansion will fail. |
| 1570 | 1616 | |
| @@ -1594,21 +1640,25 @@ class rich_location · 23 unmodified lines | ||
| 1594 | 1640 | /* Constructors. */ |
| 1595 | 1641 | |
| 1596 | 1642 | /* 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); | |
| 1598 | 1645 | |
| 1599 | 1646 | /* Destructor. */ |
| 1600 | 1647 | ~rich_location (); |
| 1601 | 1648 | |
| 1602 | 1649 | /* 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; | |
| 1605 | 1652 | |
| 1606 | 1653 | 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); | |
| 1608 | 1658 | |
| 1609 | 1659 | 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); | |
| 1612 | 1662 | |
| 1613 | 1663 | unsigned int get_num_locations () const { return m_ranges.count (); } |
| 1614 | 1664 | |
| @@ -1631,7 +1681,7 @@ class rich_location · 16 unmodified lines | ||
| 1631 | 1681 | |
| 1632 | 1682 | /* Suggest inserting NEW_CONTENT immediately before the start of WHERE. */ |
| 1633 | 1683 | void |
| 1634 | − add_fixit_insert_before (source_location where, | |
| 1684 | + add_fixit_insert_before (location_t where, | |
| 1635 | 1685 | const char *new_content); |
| 1636 | 1686 | |
| 1637 | 1687 | /* Suggest inserting NEW_CONTENT immediately after the end of the primary |
| @@ -1641,7 +1691,7 @@ class rich_location · 3 unmodified lines | ||
| 1641 | 1691 | |
| 1642 | 1692 | /* Suggest inserting NEW_CONTENT immediately after the end of WHERE. */ |
| 1643 | 1693 | void |
| 1644 | − add_fixit_insert_after (source_location where, | |
| 1694 | + add_fixit_insert_after (location_t where, | |
| 1645 | 1695 | const char *new_content); |
| 1646 | 1696 | |
| 1647 | 1697 | /* Methods for adding removal fix-it hints. */ |
| @@ -1653,7 +1703,7 @@ class rich_location · 5 unmodified lines | ||
| 1653 | 1703 | /* Suggest removing the content covered between the start and finish |
| 1654 | 1704 | of WHERE. */ |
| 1655 | 1705 | void |
| 1656 | − add_fixit_remove (source_location where); | |
| 1706 | + add_fixit_remove (location_t where); | |
| 1657 | 1707 | |
| 1658 | 1708 | /* Suggest removing the content covered by SRC_RANGE. */ |
| 1659 | 1709 | void |
| @@ -1668,7 +1718,7 @@ class rich_location · 8 unmodified lines | ||
| 1668 | 1718 | /* Suggest replacing the content between the start and finish of |
| 1669 | 1719 | WHERE with NEW_CONTENT. */ |
| 1670 | 1720 | void |
| 1671 | − add_fixit_replace (source_location where, | |
| 1721 | + add_fixit_replace (location_t where, | |
| 1672 | 1722 | const char *new_content); |
| 1673 | 1723 | |
| 1674 | 1724 | /* Suggest replacing the content covered by SRC_RANGE with |
| @@ -1704,10 +1754,10 @@ class rich_location · 29 unmodified lines | ||
| 1704 | 1754 | } |
| 1705 | 1755 | |
| 1706 | 1756 | private: |
| 1707 | − bool reject_impossible_fixit (source_location where); | |
| 1757 | + bool reject_impossible_fixit (location_t where); | |
| 1708 | 1758 | 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, | |
| 1711 | 1761 | const char *new_content); |
| 1712 | 1762 | |
| 1713 | 1763 | public: |
| @@ -1729,6 +1779,56 @@ protected: · 15 unmodified lines | ||
| 1729 | 1779 | bool m_fixits_cannot_be_auto_applied; |
| 1730 | 1780 | }; |
| 1731 | 1781 | |
| 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 | + | |
| 1732 | 1832 | /* A fix-it hint: a suggested insertion, replacement, or deletion of text. |
| 1733 | 1833 | We handle these three types of edit with one class, by representing |
| 1734 | 1834 | them as replacement of a half-open range: |
| @@ -1746,16 +1846,16 @@ protected: · 11 unmodified lines | ||
| 1746 | 1846 | class fixit_hint |
| 1747 | 1847 | { |
| 1748 | 1848 | public: |
| 1749 | − fixit_hint (source_location start, | |
| 1750 | − source_location next_loc, | |
| 1849 | + fixit_hint (location_t start, | |
| 1850 | + location_t next_loc, | |
| 1751 | 1851 | const char *new_content); |
| 1752 | 1852 | ~fixit_hint () { free (m_bytes); } |
| 1753 | 1853 | |
| 1754 | 1854 | 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, | |
| 1759 | 1859 | const char *new_content); |
| 1760 | 1860 | |
| 1761 | 1861 | const char *get_string () const { return m_bytes; } |
| @@ -1770,8 +1870,8 @@ class fixit_hint · 8 unmodified lines | ||
| 1770 | 1870 | this is a half-open/half-closed range: |
| 1771 | 1871 | [start, next_loc) |
| 1772 | 1872 | 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; | |
| 1775 | 1875 | char *m_bytes; |
| 1776 | 1876 | size_t m_len; |
| 1777 | 1877 | }; |
| @@ -1835,10 +1935,10 @@ enum location_resolution_kind · 57 unmodified lines | ||
| 1835 | 1935 | resolves to a location reserved for the client code, like |
| 1836 | 1936 | UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */ |
| 1837 | 1937 | |
| 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); | |
| 1842 | 1942 | |
| 1843 | 1943 | /* Suppose that LOC is the virtual location of a token coming from the |
| 1844 | 1944 | 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 | ||
| 1847 | 1947 | the point where M' was expanded. LOC_MAP is an output parameter. |
| 1848 | 1948 | When non-NULL, *LOC_MAP is set to the map of the returned |
| 1849 | 1949 | 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); | |
| 1853 | 1953 | |
| 1854 | 1954 | /* If LOC is the virtual location of a token coming from the expansion |
| 1855 | 1955 | 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 | ||
| 1865 | 1965 | |
| 1866 | 1966 | *MAP is set to the map of the returned location if the later is |
| 1867 | 1967 | 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); | |
| 1871 | 1971 | |
| 1872 | 1972 | /* Expand source code location LOC and return a user readable source |
| 1873 | 1973 | 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 | ||
| 1875 | 1975 | location is returned. */ |
| 1876 | 1976 | expanded_location linemap_expand_location (struct line_maps *, |
| 1877 | 1977 | const struct line_map *, |
| 1878 | − source_location loc); | |
| 1978 | + location_t loc); | |
| 1879 | 1979 | |
| 1880 | 1980 | /* Statistics about maps allocation and usage as returned by |
| 1881 | 1981 | linemap_get_statistics. */ |
| @@ -1902,7 +2002,7 @@ struct linemap_stats · 20 unmodified lines | ||
| 1902 | 2002 | location emitted for that file. */ |
| 1903 | 2003 | bool linemap_get_file_highest_location (struct line_maps * set, |
| 1904 | 2004 | const char *file_name, |
| 1905 | − source_location *loc); | |
| 2005 | + location_t *loc); | |
| 1906 | 2006 | |
| 1907 | 2007 | /* Compute and return statistics about the memory consumption of some |
| 1908 | 2008 | parts of the line table SET. */ |
| @@ -1910,7 +2010,7 @@ void linemap_get_statistics (struct line_maps *, struct linemap_stats *); · 1 unmodified line | ||
| 1910 | 2010 | |
| 1911 | 2011 | /* Dump debugging information about source location LOC into the file |
| 1912 | 2012 | 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 *); | |
| 1914 | 2014 | |
| 1915 | 2015 | /* Dump line map at index IX in line table SET to STREAM. If STREAM |
| 1916 | 2016 | 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 | ||
| 1922 | 2022 | specifies how many macro maps to dump. */ |
| 1923 | 2023 | void line_table_dump (FILE *, struct line_maps *, unsigned int, unsigned int); |
| 1924 | 2024 | |
| 1925 | −/* An enum for distinguishing the various parts within a source_location. */ | |
| 2025 | +/* An enum for distinguishing the various parts within a location_t. */ | |
| 1926 | 2026 | |
| 1927 | 2027 | enum location_aspect |
| 1928 | 2028 | { |
| @@ -1931,14 +2031,14 @@ enum location_aspect · 2 unmodified lines | ||
| 1931 | 2031 | LOCATION_ASPECT_FINISH |
| 1932 | 2032 | }; |
| 1933 | 2033 | |
| 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. | |
| 1935 | 2035 | We would directly use expand_location_to_spelling_point, which is |
| 1936 | 2036 | implemented in gcc/input.c, but we also need to use it for rich_location |
| 1937 | 2037 | within genmatch.c. |
| 1938 | 2038 | Hence we require client code of libcpp to implement the following |
| 1939 | 2039 | symbol. */ |
| 1940 | 2040 | extern expanded_location |
| 1941 | −linemap_client_expand_location_to_spelling_point (source_location, | |
| 2041 | +linemap_client_expand_location_to_spelling_point (location_t, | |
| 1942 | 2042 | enum location_aspect); |
| 1943 | 2043 | |
| 1944 | 2044 | #endif /* !LIBCPP_LINE_MAP_H */ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Dependency generator for Makefile fragments. |
| 2 | − Copyright (C) 2000-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 2000-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Zack Weinberg, Mar 2000 |
| 4 | 4 | |
| 5 | 5 | This program is free software; you can redistribute it and/or modify it |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Hash tables. |
| 2 | − Copyright (C) 2000-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 2000-2019 Free Software Foundation, Inc. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | under the terms of the GNU General Public License as published by the |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* CPP Library. |
| 2 | − Copyright (C) 1986-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1986-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Per Bothner, 1994-95. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | Adapted to ANSI C, Richard Stallman, Jan 1987 |
| @@ -100,11 +100,13 @@ static const struct lang_flags lang_defaults[] = · 94 unmodified lines | ||
| 100 | 100 | /* GNUC99 */ { 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 }, |
| 101 | 101 | /* GNUC11 */ { 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1 }, |
| 102 | 102 | /* 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 }, | |
| 103 | 104 | /* STDC89 */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, |
| 104 | 105 | /* STDC94 */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 }, |
| 105 | 106 | /* STDC99 */ { 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 }, |
| 106 | 107 | /* STDC11 */ { 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0 }, |
| 107 | 108 | /* 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 }, | |
| 108 | 110 | /* GNUCXX */ { 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 }, |
| 109 | 111 | /* CXX98 */ { 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0 }, |
| 110 | 112 | /* 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 | ||
| 262 | 264 | pfile->pushed_macros = 0; |
| 263 | 265 | |
| 264 | 266 | /* Do not force token locations by default. */ |
| 265 | − pfile->forced_token_location_p = NULL; | |
| 267 | + pfile->forced_token_location = 0; | |
| 266 | 268 | |
| 267 | 269 | /* Initialize source_date_epoch to -2 (not yet set). */ |
| 268 | 270 | pfile->source_date_epoch = (time_t) -2; |
| @@ -480,8 +482,7 @@ cpp_init_special_builtins (cpp_reader *pfile) · 211 unmodified lines | ||
| 480 | 482 | || pfile->cb.has_attribute == NULL)) |
| 481 | 483 | continue; |
| 482 | 484 | 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; | |
| 485 | 486 | if (b->always_warn_if_redefined) |
| 486 | 487 | hp->flags |= NODE_WARN; |
| 487 | 488 | hp->value.builtin = (enum cpp_builtin_type) b->value; |
| @@ -522,6 +523,9 @@ cpp_init_builtins (cpp_reader *pfile, int hosted) · 34 unmodified lines | ||
| 522 | 523 | _cpp_define_builtin (pfile, "__ASSEMBLER__ 1"); |
| 523 | 524 | else if (CPP_OPTION (pfile, lang) == CLK_STDC94) |
| 524 | 525 | _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"); | |
| 525 | 529 | else if (CPP_OPTION (pfile, lang) == CLK_STDC17 |
| 526 | 530 | || CPP_OPTION (pfile, lang) == CLK_GNUC17) |
| 527 | 531 | _cpp_define_builtin (pfile, "__STDC_VERSION__ 201710L"); |
| @@ -629,7 +633,7 @@ cpp_post_options (cpp_reader *pfile) · 101 unmodified lines | ||
| 629 | 633 | const char * |
| 630 | 634 | cpp_read_main_file (cpp_reader *pfile, const char *fname) |
| 631 | 635 | { |
| 632 | − const source_location loc = 0; | |
| 636 | + const location_t loc = 0; | |
| 633 | 637 | |
| 634 | 638 | if (CPP_OPTION (pfile, deps.style) != DEPS_NONE) |
| 635 | 639 | { |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Part of CPP library. |
| 2 | − Copyright (C) 1997-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 1997-2019 Free Software Foundation, Inc. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | 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 | ||
| 23 | 23 | #define LIBCPP_INTERNAL_H |
| 24 | 24 | |
| 25 | 25 | #include "symtab.h" |
| 26 | −#include "cpp-id-data.h" | |
| 26 | +#include "cpplib.h" | |
| 27 | 27 | |
| 28 | 28 | #if HAVE_ICONV |
| 29 | 29 | #include <iconv.h> |
| @@ -93,9 +93,8 @@ struct dummy · 63 unmodified lines | ||
| 93 | 93 | #define CPP_ALIGN2(size, align) (((size) + ((align) - 1)) & ~((align) - 1)) |
| 94 | 94 | #define CPP_ALIGN(size) CPP_ALIGN2 (size, DEFAULT_ALIGNMENT) |
| 95 | 95 | |
| 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) | |
| 99 | 98 | |
| 100 | 99 | /* A generic memory buffer, and operations on it. */ |
| 101 | 100 | typedef struct _cpp_buff _cpp_buff; |
| @@ -151,11 +150,11 @@ typedef struct · 49 unmodified lines | ||
| 151 | 150 | location at index 0 is the virtual location of the token at index |
| 152 | 151 | 0 in the current instance of cpp_context; similarly for all the |
| 153 | 152 | other virtual locations. */ |
| 154 | − source_location *virt_locs; | |
| 153 | + location_t *virt_locs; | |
| 155 | 154 | /* This is a pointer to the current virtual location. This is used |
| 156 | 155 | to iterate over the virtual locations while we iterate over the |
| 157 | 156 | tokens they belong to. */ |
| 158 | − source_location *cur_virt_loc; | |
| 157 | + location_t *cur_virt_loc; | |
| 159 | 158 | } macro_context; |
| 160 | 159 | |
| 161 | 160 | /* The kind of tokens carried by a cpp_context. */ |
| @@ -373,7 +372,7 @@ struct def_pragma_macro { · 211 unmodified lines | ||
| 373 | 372 | unsigned char *definition; |
| 374 | 373 | |
| 375 | 374 | /* Definition line number. */ |
| 376 | − source_location line; | |
| 375 | + location_t line; | |
| 377 | 376 | /* If macro defined in system header. */ |
| 378 | 377 | unsigned int syshdr : 1; |
| 379 | 378 | /* Nonzero if it has been expanded or had its existence tested. */ |
| @@ -401,7 +400,7 @@ struct cpp_reader · 21 unmodified lines | ||
| 401 | 400 | struct line_maps *line_table; |
| 402 | 401 | |
| 403 | 402 | /* The line of the '#' of the current directive. */ |
| 404 | − source_location directive_line; | |
| 403 | + location_t directive_line; | |
| 405 | 404 | |
| 406 | 405 | /* Memory buffers. */ |
| 407 | 406 | _cpp_buff *a_buff; /* Aligned permanent storage. */ |
| @@ -420,7 +419,7 @@ struct cpp_reader · 12 unmodified lines | ||
| 420 | 419 | |
| 421 | 420 | /* When expanding a macro at top-level, this is the location of the |
| 422 | 421 | macro invocation. */ |
| 423 | − source_location invocation_location; | |
| 422 | + location_t invocation_location; | |
| 424 | 423 | |
| 425 | 424 | /* This is the node representing the macro being expanded at |
| 426 | 425 | top-level. The value of this data member is valid iff |
| @@ -552,7 +551,7 @@ struct cpp_reader · 125 unmodified lines | ||
| 552 | 551 | unsigned char *base; |
| 553 | 552 | unsigned char *limit; |
| 554 | 553 | unsigned char *cur; |
| 555 | − source_location first_line; | |
| 554 | + location_t first_line; | |
| 556 | 555 | } out; |
| 557 | 556 | |
| 558 | 557 | /* Used for buffer overlays by traditional.c. */ |
| @@ -571,9 +570,9 @@ struct cpp_reader · 12 unmodified lines | ||
| 571 | 570 | /* List of saved macros by push_macro. */ |
| 572 | 571 | struct def_pragma_macro *pushed_macros; |
| 573 | 572 | |
| 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 | |
| 575 | 574 | instead of getting a location from the linemap. */ |
| 576 | − source_location *forced_token_location_p; | |
| 575 | + location_t forced_token_location; | |
| 577 | 576 | }; |
| 578 | 577 | |
| 579 | 578 | /* Character classes. Based on the more primitive macros in safe-ctype.h. |
| @@ -594,6 +593,8 @@ struct cpp_reader · 14 unmodified lines | ||
| 594 | 593 | #define is_nvspace(x) IS_NVSPACE(x) |
| 595 | 594 | #define is_space(x) IS_SPACE_OR_NUL(x) |
| 596 | 595 | |
| 596 | +#define SEEN_EOL() (pfile->cur_token[-1].type == CPP_EOF) | |
| 597 | + | |
| 597 | 598 | /* This table is constant if it can be initialized at compile time, |
| 598 | 599 | which is the case if cpp was compiled with GCC >=2.7, or another |
| 599 | 600 | compiler that supports C99. */ |
| @@ -603,6 +604,12 @@ extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1]; · 3 unmodified lines | ||
| 603 | 604 | extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1]; |
| 604 | 605 | #endif |
| 605 | 606 | |
| 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 | + | |
| 606 | 613 | /* Macros. */ |
| 607 | 614 | |
| 608 | 615 | static inline int cpp_in_system_header (cpp_reader *); |
| @@ -622,18 +629,26 @@ cpp_in_primary_file (cpp_reader *pfile) · 13 unmodified lines | ||
| 622 | 629 | } |
| 623 | 630 | |
| 624 | 631 | /* 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 *); | |
| 625 | 639 | extern void _cpp_free_definition (cpp_hashnode *); |
| 626 | 640 | extern bool _cpp_create_definition (cpp_reader *, cpp_hashnode *); |
| 627 | 641 | extern void _cpp_pop_context (cpp_reader *); |
| 628 | 642 | extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *, |
| 629 | 643 | 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 *, | |
| 631 | 645 | cpp_hashnode *); |
| 646 | +extern void _cpp_unsave_parameters (cpp_reader *, unsigned); | |
| 632 | 647 | extern bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *, |
| 633 | 648 | unsigned int); |
| 634 | 649 | extern const unsigned char *_cpp_builtin_macro_text (cpp_reader *, |
| 635 | 650 | cpp_hashnode *, |
| 636 | − source_location = 0); | |
| 651 | + location_t = 0); | |
| 637 | 652 | extern int _cpp_warn_if_unused_macro (cpp_reader *, cpp_hashnode *, void *); |
| 638 | 653 | extern void _cpp_push_token_context (cpp_reader *, cpp_hashnode *, |
| 639 | 654 | const cpp_token *, unsigned int); |
| @@ -646,14 +661,14 @@ extern void _cpp_destroy_hashtable (cpp_reader *); · 6 unmodified lines | ||
| 646 | 661 | /* In files.c */ |
| 647 | 662 | typedef struct _cpp_file _cpp_file; |
| 648 | 663 | extern _cpp_file *_cpp_find_file (cpp_reader *, const char *, cpp_dir *, |
| 649 | − bool, int, bool, source_location); | |
| 664 | + bool, int, bool, location_t); | |
| 650 | 665 | extern bool _cpp_find_failed (_cpp_file *); |
| 651 | 666 | extern void _cpp_mark_file_once_only (cpp_reader *, struct _cpp_file *); |
| 652 | 667 | extern void _cpp_fake_include (cpp_reader *, const char *); |
| 653 | 668 | extern bool _cpp_stack_file (cpp_reader *, _cpp_file*, bool, |
| 654 | − source_location); | |
| 669 | + location_t); | |
| 655 | 670 | extern bool _cpp_stack_include (cpp_reader *, const char *, int, |
| 656 | − enum include_type, source_location); | |
| 671 | + enum include_type, location_t); | |
| 657 | 672 | extern int _cpp_compare_file_date (cpp_reader *, const char *, int); |
| 658 | 673 | extern void _cpp_report_missing_guards (cpp_reader *); |
| 659 | 674 | extern void _cpp_init_files (cpp_reader *); |
| @@ -685,6 +700,14 @@ extern void _cpp_init_tokenrun (tokenrun *, unsigned int); · 25 unmodified lines | ||
| 685 | 700 | extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *); |
| 686 | 701 | extern int _cpp_remaining_tokens_num_in_context (cpp_context *); |
| 687 | 702 | 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); | |
| 688 | 711 | |
| 689 | 712 | /* In init.c. */ |
| 690 | 713 | extern void _cpp_maybe_push_include_file (cpp_reader *); |
| @@ -696,7 +719,7 @@ extern int _cpp_handle_directive (cpp_reader *, int); · 5 unmodified lines | ||
| 696 | 719 | extern void _cpp_define_builtin (cpp_reader *, const char *); |
| 697 | 720 | extern char ** _cpp_save_pragma_names (cpp_reader *); |
| 698 | 721 | 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); | |
| 700 | 723 | extern void _cpp_init_directives (cpp_reader *); |
| 701 | 724 | extern void _cpp_init_internal_pragmas (cpp_reader *); |
| 702 | 725 | 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 | ||
| 709 | 732 | { |
| 710 | 733 | /* Called to print a block of lines. */ |
| 711 | 734 | void (*print_lines) (int, const void *, size_t); |
| 712 | − bool (*maybe_print_line) (source_location); | |
| 735 | + bool (*maybe_print_line) (location_t); | |
| 713 | 736 | }; |
| 714 | 737 | |
| 715 | 738 | extern void _cpp_preprocess_dir_only (cpp_reader *, |
| @@ -721,7 +744,7 @@ extern bool _cpp_read_logical_line_trad (cpp_reader *); · 5 unmodified lines | ||
| 721 | 744 | extern void _cpp_overlay_buffer (cpp_reader *pfile, const unsigned char *, |
| 722 | 745 | size_t); |
| 723 | 746 | 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 *); | |
| 725 | 748 | extern bool _cpp_expansions_different_trad (const cpp_macro *, |
| 726 | 749 | const cpp_macro *); |
| 727 | 750 | extern unsigned char *_cpp_copy_replacement_text (const cpp_macro *, |
| @@ -846,7 +869,7 @@ ufputs (const unsigned char *s, FILE *f) · 118 unmodified lines | ||
| 846 | 869 | the replacement-list of MACRO. */ |
| 847 | 870 | const line_map_macro *linemap_enter_macro (struct line_maps *, |
| 848 | 871 | struct cpp_hashnode*, |
| 849 | − source_location, | |
| 872 | + location_t, | |
| 850 | 873 | unsigned int); |
| 851 | 874 | |
| 852 | 875 | /* 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 | ||
| 871 | 894 | MACRO_DEFINITION_LOC is the location in the macro definition, |
| 872 | 895 | either of the token itself or of a macro parameter that it |
| 873 | 896 | 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); | |
| 878 | 901 | |
| 879 | 902 | /* Return the source line number corresponding to source location |
| 880 | 903 | 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 | ||
| 882 | 905 | expansion-list of a macro expansion return the line number of the |
| 883 | 906 | macro expansion point. */ |
| 884 | 907 | int linemap_get_expansion_line (struct line_maps *, |
| 885 | − source_location); | |
| 908 | + location_t); | |
| 886 | 909 | |
| 887 | 910 | /* Return the path of the file corresponding to source code location |
| 888 | 911 | LOCATION. |
| @@ -893,7 +916,7 @@ int linemap_get_expansion_line (struct line_maps *, · 4 unmodified lines | ||
| 893 | 916 | |
| 894 | 917 | SET is the line map set LOCATION comes from. */ |
| 895 | 918 | const char* linemap_get_expansion_filename (struct line_maps *, |
| 896 | − source_location); | |
| 919 | + location_t); | |
| 897 | 920 | |
| 898 | 921 | #ifdef __cplusplus |
| 899 | 922 | } |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* CPP Library - lexical analysis. |
| 2 | − Copyright (C) 2000-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 2000-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Per Bothner, 1994-95. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | Adapted to ANSI C, Richard Stallman, Jan 1987 |
| @@ -1232,7 +1232,7 @@ static int · 1226 unmodified lines | ||
| 1232 | 1232 | skip_line_comment (cpp_reader *pfile) |
| 1233 | 1233 | { |
| 1234 | 1234 | 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; | |
| 1236 | 1236 | |
| 1237 | 1237 | while (*buffer->cur != '\n') |
| 1238 | 1238 | buffer->cur++; |
| @@ -1627,7 +1627,7 @@ is_macro(cpp_reader *pfile, const uchar *base) · 388 unmodified lines | ||
| 1627 | 1627 | cpp_hashnode *result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table, |
| 1628 | 1628 | base, cur - base, hash, HT_NO_INSERT)); |
| 1629 | 1629 | |
| 1630 | − return !result ? false : (result->type == NT_MACRO); | |
| 1630 | + return result && cpp_macro_p (result); | |
| 1631 | 1631 | } |
| 1632 | 1632 | |
| 1633 | 1633 | /* 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 | ||
| 1894 | 1894 | _cpp_process_line_notes (pfile, false); |
| 1895 | 1895 | if (!_cpp_get_fresh_line (pfile)) |
| 1896 | 1896 | { |
| 1897 | − source_location src_loc = token->src_loc; | |
| 1897 | + location_t src_loc = token->src_loc; | |
| 1898 | 1898 | token->type = CPP_EOF; |
| 1899 | 1899 | /* Tell the compiler the line number of the EOF token. */ |
| 1900 | 1900 | token->src_loc = pfile->line_table->highest_line; |
| @@ -2757,8 +2757,8 @@ _cpp_lex_direct (cpp_reader *pfile) · 856 unmodified lines | ||
| 2757 | 2757 | } |
| 2758 | 2758 | c = *buffer->cur++; |
| 2759 | 2759 | |
| 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; | |
| 2762 | 2762 | else |
| 2763 | 2763 | result->src_loc = linemap_position_for_column (pfile->line_table, |
| 2764 | 2764 | CPP_BUF_COLUMN (buffer, buffer->cur)); |
| @@ -2872,10 +2872,10 @@ _cpp_lex_direct (cpp_reader *pfile) · 107 unmodified lines | ||
| 2872 | 2872 | && CPP_PEDANTIC (pfile) |
| 2873 | 2873 | && ! buffer->warned_cplusplus_comments) |
| 2874 | 2874 | { |
| 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)"); | |
| 2879 | 2879 | buffer->warned_cplusplus_comments = 1; |
| 2880 | 2880 | } |
| 2881 | 2881 | /* Or if specifically desired via -Wc90-c99-compat. */ |
| @@ -2883,10 +2883,10 @@ _cpp_lex_direct (cpp_reader *pfile) · 1 unmodified line | ||
| 2883 | 2883 | && ! CPP_OPTION (pfile, cplusplus) |
| 2884 | 2884 | && ! buffer->warned_cplusplus_comments) |
| 2885 | 2885 | { |
| 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)"); | |
| 2890 | 2890 | buffer->warned_cplusplus_comments = 1; |
| 2891 | 2891 | } |
| 2892 | 2892 | /* In C89/C94, C++ style comments are forbidden. */ |
| @@ -2906,11 +2906,12 @@ _cpp_lex_direct (cpp_reader *pfile) · 13 unmodified lines | ||
| 2906 | 2906 | } |
| 2907 | 2907 | else if (! buffer->warned_cplusplus_comments) |
| 2908 | 2908 | { |
| 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)"); | |
| 2914 | 2915 | buffer->warned_cplusplus_comments = 1; |
| 2915 | 2916 | } |
| 2916 | 2917 | } |
| @@ -3724,6 +3725,25 @@ _cpp_aligned_alloc (cpp_reader *pfile, size_t len) · 807 unmodified lines | ||
| 3724 | 3725 | return result; |
| 3725 | 3726 | } |
| 3726 | 3727 | |
| 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 | + | |
| 3727 | 3747 | /* Say which field of TOK is in use. */ |
| 3728 | 3748 | |
| 3729 | 3749 | enum cpp_token_fld_kind |
| @@ -3753,14 +3773,14 @@ cpp_token_val_index (const cpp_token *tok) · 23 unmodified lines | ||
| 3753 | 3773 | } |
| 3754 | 3774 | } |
| 3755 | 3775 | |
| 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 | |
| 3758 | 3778 | cpp_stop_forcing_token_locations is called for R. */ |
| 3759 | 3779 | |
| 3760 | 3780 | void |
| 3761 | −cpp_force_token_locations (cpp_reader *r, source_location *p) | |
| 3781 | +cpp_force_token_locations (cpp_reader *r, location_t loc) | |
| 3762 | 3782 | { |
| 3763 | − r->forced_token_location_p = p; | |
| 3783 | + r->forced_token_location = loc; | |
| 3764 | 3784 | } |
| 3765 | 3785 | |
| 3766 | 3786 | /* 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 | ||
| 3768 | 3788 | void |
| 3769 | 3789 | cpp_stop_forcing_token_locations (cpp_reader *r) |
| 3770 | 3790 | { |
| 3771 | − r->forced_token_location_p = NULL; | |
| 3791 | + r->forced_token_location = 0; | |
| 3772 | 3792 | } |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* 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. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | 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 | ||
| 26 | 26 | #include "internal.h" |
| 27 | 27 | #include "hashtab.h" |
| 28 | 28 | |
| 29 | −/* Highest possible source location encoded within an ordinary or | |
| 30 | − macro map. */ | |
| 31 | −const source_location LINE_MAP_MAX_SOURCE_LOCATION = 0x70000000; | |
| 32 | − | |
| 33 | 29 | static void trace_include (const struct line_maps *, const line_map_ordinary *); |
| 34 | 30 | static const line_map_ordinary * linemap_ordinary_map_lookup (struct line_maps *, |
| 35 | − source_location); | |
| 31 | + location_t); | |
| 36 | 32 | 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 **); | |
| 50 | 46 | |
| 51 | 47 | /* Counters defined in macro.c. */ |
| 52 | 48 | extern unsigned num_expanded_macros_counter; |
| @@ -114,16 +110,16 @@ rebuild_location_adhoc_htab (struct line_maps *set) · 61 unmodified lines | ||
| 114 | 110 | |
| 115 | 111 | /* Helper function for get_combined_adhoc_loc. |
| 116 | 112 | 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. */ | |
| 118 | 114 | |
| 119 | 115 | static bool |
| 120 | 116 | can_be_stored_compactly_p (struct line_maps *set, |
| 121 | − source_location locus, | |
| 117 | + location_t locus, | |
| 122 | 118 | source_range src_range, |
| 123 | 119 | void *data) |
| 124 | 120 | { |
| 125 | 121 | /* 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. */ | |
| 127 | 123 | if (data) |
| 128 | 124 | return false; |
| 129 | 125 | |
| @@ -143,7 +139,7 @@ can_be_stored_compactly_p (struct line_maps *set, · 13 unmodified lines | ||
| 143 | 139 | |
| 144 | 140 | /* All 3 locations must be within ordinary maps, typically, the same |
| 145 | 141 | ordinary map. */ |
| 146 | − source_location lowest_macro_loc = LINEMAPS_MACRO_LOWEST_LOCATION (set); | |
| 142 | + location_t lowest_macro_loc = LINEMAPS_MACRO_LOWEST_LOCATION (set); | |
| 147 | 143 | if (locus >= lowest_macro_loc) |
| 148 | 144 | return false; |
| 149 | 145 | if (src_range.m_start >= lowest_macro_loc) |
| @@ -157,9 +153,9 @@ can_be_stored_compactly_p (struct line_maps *set, · 7 unmodified lines | ||
| 157 | 153 | |
| 158 | 154 | /* Combine LOCUS and DATA to a combined adhoc loc. */ |
| 159 | 155 | |
| 160 | −source_location | |
| 156 | +location_t | |
| 161 | 157 | get_combined_adhoc_loc (struct line_maps *set, |
| 162 | − source_location locus, | |
| 158 | + location_t locus, | |
| 163 | 159 | source_range src_range, |
| 164 | 160 | void *data) |
| 165 | 161 | { |
| @@ -168,7 +164,7 @@ get_combined_adhoc_loc (struct line_maps *set, · 2 unmodified lines | ||
| 168 | 164 | |
| 169 | 165 | if (IS_ADHOC_LOC (locus)) |
| 170 | 166 | 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; | |
| 172 | 168 | if (locus == 0 && data == NULL) |
| 173 | 169 | return 0; |
| 174 | 170 | |
| @@ -190,7 +186,7 @@ get_combined_adhoc_loc (struct line_maps *set, · 15 unmodified lines | ||
| 190 | 186 | unsigned int col_diff = (int_diff >> ordmap->m_range_bits); |
| 191 | 187 | if (col_diff < (1U << ordmap->m_range_bits)) |
| 192 | 188 | { |
| 193 | − source_location packed = locus | col_diff; | |
| 189 | + location_t packed = locus | col_diff; | |
| 194 | 190 | set->num_optimized_ranges++; |
| 195 | 191 | return packed; |
| 196 | 192 | } |
| @@ -247,28 +243,28 @@ get_combined_adhoc_loc (struct line_maps *set, · 50 unmodified lines | ||
| 247 | 243 | /* Return the data for the adhoc loc. */ |
| 248 | 244 | |
| 249 | 245 | 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) | |
| 251 | 247 | { |
| 252 | 248 | 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; | |
| 254 | 250 | } |
| 255 | 251 | |
| 256 | 252 | /* Return the location for the adhoc loc. */ |
| 257 | 253 | |
| 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) | |
| 260 | 256 | { |
| 261 | 257 | 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; | |
| 263 | 259 | } |
| 264 | 260 | |
| 265 | 261 | /* Return the source_range for adhoc location LOC. */ |
| 266 | 262 | |
| 267 | 263 | 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) | |
| 269 | 265 | { |
| 270 | 266 | 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; | |
| 272 | 268 | } |
| 273 | 269 | |
| 274 | 270 | /* 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 | ||
| 276 | 272 | |
| 277 | 273 | source_range |
| 278 | 274 | get_range_from_loc (struct line_maps *set, |
| 279 | − source_location loc) | |
| 275 | + location_t loc) | |
| 280 | 276 | { |
| 281 | 277 | if (IS_ADHOC_LOC (loc)) |
| 282 | 278 | return get_range_from_adhoc_loc (set, loc); |
| @@ -302,12 +298,14 @@ get_range_from_loc (struct line_maps *set, · 19 unmodified lines | ||
| 302 | 298 | whether it is an ad-hoc location, or embeds range information. */ |
| 303 | 299 | |
| 304 | 300 | bool |
| 305 | −pure_location_p (line_maps *set, source_location loc) | |
| 301 | +pure_location_p (line_maps *set, location_t loc) | |
| 306 | 302 | { |
| 307 | 303 | if (IS_ADHOC_LOC (loc)) |
| 308 | 304 | return false; |
| 309 | 305 | |
| 310 | 306 | const line_map *map = linemap_lookup (set, loc); |
| 307 | + if (map == NULL) | |
| 308 | + return true; | |
| 311 | 309 | const line_map_ordinary *ordmap = linemap_check_ordinary (map); |
| 312 | 310 | |
| 313 | 311 | if (loc & ((1U << ordmap->m_range_bits) - 1)) |
| @@ -319,12 +317,12 @@ pure_location_p (line_maps *set, source_location loc) · 5 unmodified lines | ||
| 319 | 317 | /* Given location LOC within SET, strip away any packed range information |
| 320 | 318 | or ad-hoc information. */ |
| 321 | 319 | |
| 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) | |
| 324 | 322 | { |
| 325 | 323 | if (IS_ADHOC_LOC (loc)) |
| 326 | 324 | 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; | |
| 328 | 326 | |
| 329 | 327 | if (loc >= LINEMAPS_MACRO_LOWEST_LOCATION (set)) |
| 330 | 328 | return loc; |
| @@ -342,14 +340,16 @@ get_pure_location (line_maps *set, source_location loc) · 11 unmodified lines | ||
| 342 | 340 | |
| 343 | 341 | void |
| 344 | 342 | linemap_init (struct line_maps *set, |
| 345 | − source_location builtin_location) | |
| 343 | + location_t builtin_location) | |
| 346 | 344 | { |
| 347 | 345 | #if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && !defined (__clang__) |
| 348 | 346 | /* PR33916, needed to fix PR82939. */ |
| 349 | 347 | memset (set, 0, sizeof (struct line_maps)); |
| 350 | 348 | #else |
| 351 | − *set = line_maps (); | |
| 349 | + new (set) line_maps(); | |
| 352 | 350 | #endif |
| 351 | + /* Set default reallocator (used for initial alloc too). */ | |
| 352 | + set->reallocator = xrealloc; | |
| 353 | 353 | set->highest_location = RESERVED_LOCATION_COUNT - 1; |
| 354 | 354 | set->highest_line = RESERVED_LOCATION_COUNT - 1; |
| 355 | 355 | set->location_adhoc_data_map.htab = |
| @@ -357,17 +357,25 @@ linemap_init (struct line_maps *set, · 1 unmodified line | ||
| 357 | 357 | set->builtin_location = builtin_location; |
| 358 | 358 | } |
| 359 | 359 | |
| 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 | + | |
| 360 | 369 | /* Check for and warn about line_maps entered but not exited. */ |
| 361 | 370 | |
| 362 | 371 | void |
| 363 | 372 | linemap_check_files_exited (struct line_maps *set) |
| 364 | 373 | { |
| 365 | − const line_map_ordinary *map; | |
| 366 | 374 | /* Depending upon whether we are handling preprocessed input or |
| 367 | 375 | 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); | |
| 369 | 377 | ! MAIN_FILE_P (map); |
| 370 | − map = INCLUDED_FROM (set, map)) | |
| 378 | + map = linemap_included_from_linemap (set, map)) | |
| 371 | 379 | fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n", |
| 372 | 380 | ORDINARY_MAP_FILE_NAME (map)); |
| 373 | 381 | } |
| @@ -378,86 +386,62 @@ linemap_check_files_exited (struct line_maps *set) · 4 unmodified lines | ||
| 378 | 386 | macro maps are allocated in different memory location. */ |
| 379 | 387 | |
| 380 | 388 | 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) | |
| 383 | 390 | { |
| 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); | |
| 388 | 394 | |
| 389 | − if (LINEMAPS_USED (set, macro_map_p) == LINEMAPS_ALLOCATED (set, macro_map_p)) | |
| 395 | + if (num_maps_used == num_maps_allocated) | |
| 390 | 396 | { |
| 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 | + } | |
| 404 | 414 | |
| 405 | 415 | /* We are going to execute some dance to try to reduce the |
| 406 | 416 | overhead of the memory allocator, in case we are using the |
| 407 | 417 | ggc-page.c one. |
| 408 | 418 | |
| 409 | 419 | 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); | |
| 420 | 424 | |
| 421 | 425 | /* Now alloc_size contains the exact memory size we would get if |
| 422 | 426 | 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; | |
| 437 | 434 | 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; | |
| 456 | 437 | } |
| 457 | 438 | |
| 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; | |
| 459 | 444 | |
| 460 | − result->reason = reason; | |
| 461 | 445 | return result; |
| 462 | 446 | } |
| 463 | 447 | |
| @@ -480,7 +464,7 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 16 unmodified lines | ||
| 480 | 464 | { |
| 481 | 465 | /* Generate a start_location above the current highest_location. |
| 482 | 466 | If possible, make the low range bits be zero. */ |
| 483 | − source_location start_location; | |
| 467 | + location_t start_location; | |
| 484 | 468 | if (set->highest_location < LINE_MAP_MAX_LOCATION_WITH_COLS) |
| 485 | 469 | { |
| 486 | 470 | 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 | ||
| 492 | 476 | else |
| 493 | 477 | start_location = set->highest_location + 1; |
| 494 | 478 | |
| 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)))); | |
| 498 | 482 | |
| 499 | 483 | /* When we enter the file for the first time reason cannot be |
| 500 | 484 | LC_RENAME. */ |
| @@ -510,7 +494,14 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 9 unmodified lines | ||
| 510 | 494 | } |
| 511 | 495 | |
| 512 | 496 | 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; | |
| 514 | 505 | |
| 515 | 506 | if (to_file && *to_file == '\0' && reason != LC_RENAME_VERBATIM) |
| 516 | 507 | to_file = "<stdin>"; |
| @@ -518,19 +509,19 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 1 unmodified line | ||
| 518 | 509 | if (reason == LC_RENAME_VERBATIM) |
| 519 | 510 | reason = LC_RENAME; |
| 520 | 511 | |
| 512 | + const line_map_ordinary *from = NULL; | |
| 521 | 513 | if (reason == LC_LEAVE) |
| 522 | 514 | { |
| 523 | 515 | /* When we are just leaving an "included" file, and jump to the next |
| 524 | 516 | location inside the "includer" right after the #include |
| 525 | 517 | "included", this variable points the map in use right before the |
| 526 | 518 | #include "included", inside the same "includer" file. */ |
| 527 | − line_map_ordinary *from; | |
| 528 | 519 | |
| 529 | 520 | linemap_assert (!MAIN_FILE_P (map - 1)); |
| 530 | 521 | /* (MAP - 1) points to the map we are leaving. The |
| 531 | 522 | map from which (MAP - 1) got included should be the map |
| 532 | 523 | 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); | |
| 534 | 525 | |
| 535 | 526 | /* A TO_FILE of NULL is special - we use the natural values. */ |
| 536 | 527 | if (to_file == NULL) |
| @@ -545,7 +536,6 @@ linemap_add (struct line_maps *set, enum lc_reason reason, · 8 unmodified lines | ||
| 545 | 536 | } |
| 546 | 537 | |
| 547 | 538 | map->sysp = sysp; |
| 548 | − map->start_location = start_location; | |
| 549 | 539 | map->to_file = to_file; |
| 550 | 540 | map->to_line = to_line; |
| 551 | 541 | 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 | ||
| 563 | 553 | |
| 564 | 554 | if (reason == LC_ENTER) |
| 565 | 555 | { |
| 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); | |
| 568 | 564 | set->depth++; |
| 569 | 565 | if (set->trace_includes) |
| 570 | 566 | trace_include (set, map); |
| 571 | 567 | } |
| 572 | 568 | 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]); | |
| 574 | 570 | else if (reason == LC_LEAVE) |
| 575 | 571 | { |
| 576 | 572 | 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); | |
| 579 | 574 | } |
| 580 | 575 | |
| 581 | 576 | return map; |
| @@ -615,34 +610,26 @@ linemap_tracks_macro_expansion_locs_p (struct line_maps *set) · 33 unmodified lines | ||
| 615 | 610 | |
| 616 | 611 | const line_map_macro * |
| 617 | 612 | 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) | |
| 619 | 614 | { |
| 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; | |
| 626 | 617 | |
| 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) | |
| 631 | 619 | /* We ran out of macro map space. */ |
| 632 | 620 | return NULL; |
| 633 | 621 | |
| 634 | − map = linemap_check_macro (new_linemap (set, LC_ENTER_MACRO)); | |
| 622 | + line_map_macro *map = linemap_check_macro (new_linemap (set, start_location)); | |
| 635 | 623 | |
| 636 | − map->start_location = start_location; | |
| 637 | 624 | map->macro = macro_node; |
| 638 | 625 | map->n_tokens = num_tokens; |
| 639 | 626 | 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)); | |
| 643 | 630 | map->expansion = expansion; |
| 644 | 631 | memset (MACRO_MAP_LOCATIONS (map), 0, |
| 645 | − num_tokens * sizeof (source_location)); | |
| 632 | + 2 * num_tokens * sizeof (location_t)); | |
| 646 | 633 | |
| 647 | 634 | LINEMAPS_MACRO_CACHE (set) = LINEMAPS_MACRO_USED (set) - 1; |
| 648 | 635 | |
| @@ -672,13 +659,13 @@ linemap_enter_macro (struct line_maps *set, struct cpp_hashnode *macro_node, · 23 unmodified lines | ||
| 672 | 659 | either of the token itself or of a macro parameter that it |
| 673 | 660 | replaces. */ |
| 674 | 661 | |
| 675 | −source_location | |
| 662 | +location_t | |
| 676 | 663 | linemap_add_macro_token (const line_map_macro *map, |
| 677 | 664 | 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) | |
| 680 | 667 | { |
| 681 | − source_location result; | |
| 668 | + location_t result; | |
| 682 | 669 | |
| 683 | 670 | linemap_assert (linemap_macro_expansion_map_p (map)); |
| 684 | 671 | 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 | ||
| 690 | 677 | return result; |
| 691 | 678 | } |
| 692 | 679 | |
| 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 | |
| 694 | 681 | (physical) line TO_LINE in the current source file (as in the |
| 695 | 682 | most recent linemap_add). MAX_COLUMN_HINT is the highest column |
| 696 | 683 | number we expect to use in this line (but it does not change |
| 697 | 684 | the highest_location). */ |
| 698 | 685 | |
| 699 | −source_location | |
| 686 | +location_t | |
| 700 | 687 | linemap_line_start (struct line_maps *set, linenum_type to_line, |
| 701 | 688 | unsigned int max_column_hint) |
| 702 | 689 | { |
| 703 | 690 | 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; | |
| 706 | 693 | linenum_type last_line = |
| 707 | 694 | SOURCE_LINE (map, set->highest_line); |
| 708 | 695 | 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 | ||
| 718 | 705 | || (highest > LINE_MAP_MAX_LOCATION_WITH_PACKED_RANGES |
| 719 | 706 | && map->m_range_bits > 0) |
| 720 | 707 | || (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))) | |
| 722 | 709 | add_map = true; |
| 723 | 710 | else |
| 724 | 711 | 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 | ||
| 730 | 717 | || highest > LINE_MAP_MAX_LOCATION_WITH_COLS) |
| 731 | 718 | { |
| 732 | 719 | /* 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 | |
| 734 | 721 | (and on packed ranges). */ |
| 735 | 722 | max_column_hint = 0; |
| 736 | 723 | column_bits = 0; |
| 737 | 724 | range_bits = 0; |
| 738 | − if (highest > LINE_MAP_MAX_SOURCE_LOCATION) | |
| 725 | + if (highest >= LINE_MAP_MAX_LOCATION) | |
| 739 | 726 | return 0; |
| 740 | 727 | } |
| 741 | 728 | else |
| @@ -755,6 +742,11 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 13 unmodified lines | ||
| 755 | 742 | if (line_delta < 0 |
| 756 | 743 | || last_line != ORDINARY_MAP_STARTING_LINE_NUMBER (map) |
| 757 | 744 | || 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))) | |
| 758 | 750 | || range_bits < map->m_range_bits) |
| 759 | 751 | map = linemap_check_ordinary |
| 760 | 752 | (const_cast <line_map *> |
| @@ -773,7 +765,7 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 12 unmodified lines | ||
| 773 | 765 | |
| 774 | 766 | /* Locations of ordinary tokens are always lower than locations of |
| 775 | 767 | macro tokens. */ |
| 776 | − if (r >= LINEMAPS_MACRO_LOWEST_LOCATION (set)) | |
| 768 | + if (r >= LINE_MAP_MAX_LOCATION) | |
| 777 | 769 | return 0; |
| 778 | 770 | |
| 779 | 771 | set->highest_line = r; |
| @@ -795,15 +787,15 @@ linemap_line_start (struct line_maps *set, linenum_type to_line, · 15 unmodified lines | ||
| 795 | 787 | return r; |
| 796 | 788 | } |
| 797 | 789 | |
| 798 | −/* Encode and return a source_location from a column number. The | |
| 790 | +/* Encode and return a location_t from a column number. The | |
| 799 | 791 | source line considered is the last source line used to call |
| 800 | 792 | linemap_line_start, i.e, the last source line which a location was |
| 801 | 793 | encoded from. */ |
| 802 | 794 | |
| 803 | −source_location | |
| 795 | +location_t | |
| 804 | 796 | linemap_position_for_column (struct line_maps *set, unsigned int to_column) |
| 805 | 797 | { |
| 806 | − source_location r = set->highest_line; | |
| 798 | + location_t r = set->highest_line; | |
| 807 | 799 | |
| 808 | 800 | linemap_assert |
| 809 | 801 | (!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 | ||
| 813 | 805 | if (r > LINE_MAP_MAX_LOCATION_WITH_COLS |
| 814 | 806 | || to_column > LINE_MAP_MAX_COLUMN_NUMBER) |
| 815 | 807 | { |
| 816 | − /* Running low on source_locations - disable column numbers. */ | |
| 808 | + /* Running low on location_ts - disable column numbers. */ | |
| 817 | 809 | return r; |
| 818 | 810 | } |
| 819 | 811 | else |
| @@ -846,7 +838,7 @@ linemap_position_for_column (struct line_maps *set, unsigned int to_column) · 26 unmodified lines | ||
| 846 | 838 | /* Encode and return a source location from a given line and |
| 847 | 839 | column. */ |
| 848 | 840 | |
| 849 | −source_location | |
| 841 | +location_t | |
| 850 | 842 | linemap_position_for_line_and_column (line_maps *set, |
| 851 | 843 | const line_map_ordinary *ord_map, |
| 852 | 844 | linenum_type line, |
| @@ -854,13 +846,13 @@ linemap_position_for_line_and_column (line_maps *set, · 1 unmodified line | ||
| 854 | 846 | { |
| 855 | 847 | linemap_assert (ORDINARY_MAP_STARTING_LINE_NUMBER (ord_map) <= line); |
| 856 | 848 | |
| 857 | − source_location r = MAP_START_LOCATION (ord_map); | |
| 849 | + location_t r = MAP_START_LOCATION (ord_map); | |
| 858 | 850 | r += ((line - ORDINARY_MAP_STARTING_LINE_NUMBER (ord_map)) |
| 859 | 851 | << ord_map->m_column_and_range_bits); |
| 860 | 852 | if (r <= LINE_MAP_MAX_LOCATION_WITH_COLS) |
| 861 | 853 | r += ((column & ((1 << ord_map->m_column_and_range_bits) - 1)) |
| 862 | 854 | << 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); | |
| 864 | 856 | if (r >= upper_limit) |
| 865 | 857 | r = upper_limit - 1; |
| 866 | 858 | if (r > set->highest_location) |
| @@ -868,19 +860,19 @@ linemap_position_for_line_and_column (line_maps *set, · 1 unmodified line | ||
| 868 | 860 | return r; |
| 869 | 861 | } |
| 870 | 862 | |
| 871 | −/* Encode and return a source_location starting from location LOC and | |
| 863 | +/* Encode and return a location_t starting from location LOC and | |
| 872 | 864 | shifting it by COLUMN_OFFSET columns. This function does not support |
| 873 | 865 | virtual locations. */ |
| 874 | 866 | |
| 875 | −source_location | |
| 867 | +location_t | |
| 876 | 868 | linemap_position_for_loc_and_offset (struct line_maps *set, |
| 877 | − source_location loc, | |
| 869 | + location_t loc, | |
| 878 | 870 | unsigned int column_offset) |
| 879 | 871 | { |
| 880 | 872 | const line_map_ordinary * map = NULL; |
| 881 | 873 | |
| 882 | 874 | 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; | |
| 884 | 876 | |
| 885 | 877 | /* This function does not support virtual locations yet. */ |
| 886 | 878 | 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 | ||
| 926 | 918 | if (column >= (1u << (map->m_column_and_range_bits - map->m_range_bits))) |
| 927 | 919 | return loc; |
| 928 | 920 | |
| 929 | − source_location r = | |
| 921 | + location_t r = | |
| 930 | 922 | linemap_position_for_line_and_column (set, map, line, column); |
| 931 | 923 | if (linemap_assert_fails (r <= set->highest_location) |
| 932 | 924 | || 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 | ||
| 939 | 931 | ordinary or a macro map), returns that map. */ |
| 940 | 932 | |
| 941 | 933 | const struct line_map* |
| 942 | −linemap_lookup (struct line_maps *set, source_location line) | |
| 934 | +linemap_lookup (struct line_maps *set, location_t line) | |
| 943 | 935 | { |
| 944 | 936 | 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; | |
| 946 | 938 | if (linemap_location_from_macro_expansion_p (set, line)) |
| 947 | 939 | return linemap_macro_map_lookup (set, line); |
| 948 | 940 | return linemap_ordinary_map_lookup (set, line); |
| @@ -954,13 +946,13 @@ linemap_lookup (struct line_maps *set, source_location line) · 5 unmodified lines | ||
| 954 | 946 | binary search. */ |
| 955 | 947 | |
| 956 | 948 | 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) | |
| 958 | 950 | { |
| 959 | 951 | unsigned int md, mn, mx; |
| 960 | 952 | const line_map_ordinary *cached, *result; |
| 961 | 953 | |
| 962 | 954 | 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; | |
| 964 | 956 | |
| 965 | 957 | if (set == NULL || line < RESERVED_LOCATION_COUNT) |
| 966 | 958 | return NULL; |
| @@ -1002,13 +994,13 @@ linemap_ordinary_map_lookup (struct line_maps *set, source_location line) · 35 unmodified lines | ||
| 1002 | 994 | binary search. */ |
| 1003 | 995 | |
| 1004 | 996 | 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) | |
| 1006 | 998 | { |
| 1007 | 999 | unsigned int md, mn, mx; |
| 1008 | 1000 | const struct line_map_macro *cached, *result; |
| 1009 | 1001 | |
| 1010 | 1002 | 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; | |
| 1012 | 1004 | |
| 1013 | 1005 | linemap_assert (line >= LINEMAPS_MACRO_LOWEST_LOCATION (set)); |
| 1014 | 1006 | |
| @@ -1049,9 +1041,7 @@ linemap_macro_map_lookup (struct line_maps *set, source_location line) · 34 unmodified lines | ||
| 1049 | 1041 | bool |
| 1050 | 1042 | linemap_macro_expansion_map_p (const struct line_map *map) |
| 1051 | 1043 | { |
| 1052 | − if (!map) | |
| 1053 | − return false; | |
| 1054 | − return (map->reason == LC_ENTER_MACRO); | |
| 1044 | + return map && !MAP_ORDINARY_P (map); | |
| 1055 | 1045 | } |
| 1056 | 1046 | |
| 1057 | 1047 | /* 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 | ||
| 1060 | 1050 | Read the comments of struct line_map and struct line_map_macro in |
| 1061 | 1051 | line-map.h to understand what a macro expansion point is. */ |
| 1062 | 1052 | |
| 1063 | −static source_location | |
| 1053 | +static location_t | |
| 1064 | 1054 | linemap_macro_map_loc_to_exp_point (const line_map_macro *map, |
| 1065 | − source_location location ATTRIBUTE_UNUSED) | |
| 1055 | + location_t location ATTRIBUTE_UNUSED) | |
| 1066 | 1056 | { |
| 1067 | 1057 | linemap_assert (linemap_macro_expansion_map_p (map) |
| 1068 | 1058 | && location >= MAP_START_LOCATION (map)); |
| @@ -1080,9 +1070,9 @@ linemap_macro_map_loc_to_exp_point (const line_map_macro *map, · 11 unmodified lines | ||
| 1080 | 1070 | Return the location of the token at the definition point of the |
| 1081 | 1071 | macro. */ |
| 1082 | 1072 | |
| 1083 | −static source_location | |
| 1073 | +static location_t | |
| 1084 | 1074 | linemap_macro_map_loc_to_def_point (const line_map_macro *map, |
| 1085 | − source_location location) | |
| 1075 | + location_t location) | |
| 1086 | 1076 | { |
| 1087 | 1077 | unsigned token_no; |
| 1088 | 1078 | |
| @@ -1104,10 +1094,10 @@ linemap_macro_map_loc_to_def_point (const line_map_macro *map, · 15 unmodified lines | ||
| 1104 | 1094 | |
| 1105 | 1095 | In other words, this returns the xI location presented in the |
| 1106 | 1096 | comments of line_map_macro above. */ |
| 1107 | −source_location | |
| 1097 | +location_t | |
| 1108 | 1098 | linemap_macro_map_loc_unwind_toward_spelling (line_maps *set, |
| 1109 | 1099 | const line_map_macro* map, |
| 1110 | − source_location location) | |
| 1100 | + location_t location) | |
| 1111 | 1101 | { |
| 1112 | 1102 | unsigned token_no; |
| 1113 | 1103 | |
| @@ -1135,13 +1125,13 @@ linemap_macro_map_loc_unwind_toward_spelling (line_maps *set, · 21 unmodified lines | ||
| 1135 | 1125 | |
| 1136 | 1126 | int |
| 1137 | 1127 | linemap_get_expansion_line (struct line_maps *set, |
| 1138 | − source_location location) | |
| 1128 | + location_t location) | |
| 1139 | 1129 | { |
| 1140 | 1130 | const line_map_ordinary *map = NULL; |
| 1141 | 1131 | |
| 1142 | 1132 | if (IS_ADHOC_LOC (location)) |
| 1143 | 1133 | location = set->location_adhoc_data_map.data[location |
| 1144 | − & MAX_SOURCE_LOCATION].locus; | |
| 1134 | + & MAX_LOCATION_T].locus; | |
| 1145 | 1135 | |
| 1146 | 1136 | if (location < RESERVED_LOCATION_COUNT) |
| 1147 | 1137 | return 0; |
| @@ -1163,13 +1153,13 @@ linemap_get_expansion_line (struct line_maps *set, · 15 unmodified lines | ||
| 1163 | 1153 | |
| 1164 | 1154 | const char* |
| 1165 | 1155 | linemap_get_expansion_filename (struct line_maps *set, |
| 1166 | − source_location location) | |
| 1156 | + location_t location) | |
| 1167 | 1157 | { |
| 1168 | 1158 | const struct line_map_ordinary *map = NULL; |
| 1169 | 1159 | |
| 1170 | 1160 | if (IS_ADHOC_LOC (location)) |
| 1171 | 1161 | location = set->location_adhoc_data_map.data[location |
| 1172 | − & MAX_SOURCE_LOCATION].locus; | |
| 1162 | + & MAX_LOCATION_T].locus; | |
| 1173 | 1163 | |
| 1174 | 1164 | if (location < RESERVED_LOCATION_COUNT) |
| 1175 | 1165 | return NULL; |
| @@ -1201,13 +1191,13 @@ linemap_map_get_macro_name (const line_map_macro *macro_map) · 25 unmodified lines | ||
| 1201 | 1191 | |
| 1202 | 1192 | int |
| 1203 | 1193 | linemap_location_in_system_header_p (struct line_maps *set, |
| 1204 | − source_location location) | |
| 1194 | + location_t location) | |
| 1205 | 1195 | { |
| 1206 | 1196 | const struct line_map *map = NULL; |
| 1207 | 1197 | |
| 1208 | 1198 | if (IS_ADHOC_LOC (location)) |
| 1209 | 1199 | location = set->location_adhoc_data_map.data[location |
| 1210 | − & MAX_SOURCE_LOCATION].locus; | |
| 1200 | + & MAX_LOCATION_T].locus; | |
| 1211 | 1201 | |
| 1212 | 1202 | if (location < RESERVED_LOCATION_COUNT) |
| 1213 | 1203 | return false; |
| @@ -1226,7 +1216,7 @@ linemap_location_in_system_header_p (struct line_maps *set, · 12 unmodified lines | ||
| 1226 | 1216 | const line_map_macro *macro_map = linemap_check_macro (map); |
| 1227 | 1217 | |
| 1228 | 1218 | /* It's a token resulting from a macro expansion. */ |
| 1229 | − source_location loc = | |
| 1219 | + location_t loc = | |
| 1230 | 1220 | linemap_macro_map_loc_unwind_toward_spelling (set, macro_map, location); |
| 1231 | 1221 | if (loc < RESERVED_LOCATION_COUNT) |
| 1232 | 1222 | /* 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 | ||
| 1247 | 1237 | |
| 1248 | 1238 | bool |
| 1249 | 1239 | linemap_location_from_macro_expansion_p (const struct line_maps *set, |
| 1250 | − source_location location) | |
| 1240 | + location_t location) | |
| 1251 | 1241 | { |
| 1252 | 1242 | if (IS_ADHOC_LOC (location)) |
| 1253 | 1243 | location = set->location_adhoc_data_map.data[location |
| 1254 | − & MAX_SOURCE_LOCATION].locus; | |
| 1244 | + & MAX_LOCATION_T].locus; | |
| 1255 | 1245 | |
| 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); | |
| 1262 | 1247 | } |
| 1263 | 1248 | |
| 1264 | 1249 | /* 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 | ||
| 1268 | 1253 | |
| 1269 | 1254 | static const struct line_map* |
| 1270 | 1255 | 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) | |
| 1273 | 1258 | { |
| 1274 | − source_location l0 = *loc0, l1 = *loc1; | |
| 1259 | + location_t l0 = *loc0, l1 = *loc1; | |
| 1275 | 1260 | const struct line_map *map0 = linemap_lookup (set, l0), |
| 1276 | 1261 | *map1 = linemap_lookup (set, l1); |
| 1277 | 1262 | |
| @@ -1310,10 +1295,10 @@ first_map_in_common_1 (struct line_maps *set, · 32 unmodified lines | ||
| 1310 | 1295 | |
| 1311 | 1296 | static const struct line_map* |
| 1312 | 1297 | 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) | |
| 1317 | 1302 | { |
| 1318 | 1303 | *res_loc0 = loc0; |
| 1319 | 1304 | *res_loc1 = loc1; |
| @@ -1328,11 +1313,11 @@ first_map_in_common (struct line_maps *set, · 8 unmodified lines | ||
| 1328 | 1313 | |
| 1329 | 1314 | int |
| 1330 | 1315 | linemap_compare_locations (struct line_maps *set, |
| 1331 | − source_location pre, | |
| 1332 | − source_location post) | |
| 1316 | + location_t pre, | |
| 1317 | + location_t post) | |
| 1333 | 1318 | { |
| 1334 | 1319 | bool pre_virtual_p, post_virtual_p; |
| 1335 | − source_location l0 = pre, l1 = post; | |
| 1320 | + location_t l0 = pre, l1 = post; | |
| 1336 | 1321 | |
| 1337 | 1322 | if (IS_ADHOC_LOC (l0)) |
| 1338 | 1323 | 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 | ||
| 1398 | 1383 | |
| 1399 | 1384 | This is a subroutine for linemap_resolve_location. */ |
| 1400 | 1385 | |
| 1401 | −static source_location | |
| 1386 | +static location_t | |
| 1402 | 1387 | linemap_macro_loc_to_spelling_point (struct line_maps *set, |
| 1403 | − source_location location, | |
| 1388 | + location_t location, | |
| 1404 | 1389 | const line_map_ordinary **original_map) |
| 1405 | 1390 | { |
| 1406 | − struct line_map *map; | |
| 1407 | 1391 | linemap_assert (set && location >= RESERVED_LOCATION_COUNT); |
| 1408 | 1392 | |
| 1409 | 1393 | while (true) |
| 1410 | 1394 | { |
| 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 | + } | |
| 1414 | 1402 | |
| 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); | |
| 1419 | 1405 | } |
| 1420 | 1406 | |
| 1421 | − if (original_map) | |
| 1422 | − *original_map = linemap_check_ordinary (map); | |
| 1423 | 1407 | return location; |
| 1424 | 1408 | } |
| 1425 | 1409 | |
| @@ -1433,34 +1417,31 @@ linemap_macro_loc_to_spelling_point (struct line_maps *set, · 7 unmodified lines | ||
| 1433 | 1417 | |
| 1434 | 1418 | This is a subroutine of linemap_resolve_location. */ |
| 1435 | 1419 | |
| 1436 | −static source_location | |
| 1420 | +static location_t | |
| 1437 | 1421 | linemap_macro_loc_to_def_point (struct line_maps *set, |
| 1438 | − source_location location, | |
| 1422 | + location_t location, | |
| 1439 | 1423 | const line_map_ordinary **original_map) |
| 1440 | 1424 | { |
| 1441 | − struct line_map *map; | |
| 1442 | − | |
| 1443 | 1425 | linemap_assert (set && location >= RESERVED_LOCATION_COUNT); |
| 1444 | 1426 | |
| 1445 | − while (true) | |
| 1427 | + for (;;) | |
| 1446 | 1428 | { |
| 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); | |
| 1452 | 1432 | |
| 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 | + } | |
| 1456 | 1440 | |
| 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); | |
| 1460 | 1443 | } |
| 1461 | 1444 | |
| 1462 | − if (original_map) | |
| 1463 | − *original_map = linemap_check_ordinary (map); | |
| 1464 | 1445 | return location; |
| 1465 | 1446 | } |
| 1466 | 1447 | |
| @@ -1478,16 +1459,16 @@ linemap_macro_loc_to_def_point (struct line_maps *set, · 11 unmodified lines | ||
| 1478 | 1459 | |
| 1479 | 1460 | This is a subroutine of linemap_resolve_location. */ |
| 1480 | 1461 | |
| 1481 | −static source_location | |
| 1462 | +static location_t | |
| 1482 | 1463 | linemap_macro_loc_to_exp_point (struct line_maps *set, |
| 1483 | − source_location location, | |
| 1464 | + location_t location, | |
| 1484 | 1465 | const line_map_ordinary **original_map) |
| 1485 | 1466 | { |
| 1486 | 1467 | struct line_map *map; |
| 1487 | 1468 | |
| 1488 | 1469 | if (IS_ADHOC_LOC (location)) |
| 1489 | 1470 | location = set->location_adhoc_data_map.data[location |
| 1490 | − & MAX_SOURCE_LOCATION].locus; | |
| 1471 | + & MAX_LOCATION_T].locus; | |
| 1491 | 1472 | |
| 1492 | 1473 | linemap_assert (set && location >= RESERVED_LOCATION_COUNT); |
| 1493 | 1474 | |
| @@ -1553,15 +1534,15 @@ linemap_macro_loc_to_exp_point (struct line_maps *set, · 59 unmodified lines | ||
| 1553 | 1534 | resolves to a location reserved for the client code, like |
| 1554 | 1535 | UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */ |
| 1555 | 1536 | |
| 1556 | −source_location | |
| 1537 | +location_t | |
| 1557 | 1538 | linemap_resolve_location (struct line_maps *set, |
| 1558 | − source_location loc, | |
| 1539 | + location_t loc, | |
| 1559 | 1540 | enum location_resolution_kind lrk, |
| 1560 | 1541 | const line_map_ordinary **map) |
| 1561 | 1542 | { |
| 1562 | − source_location locus = loc; | |
| 1543 | + location_t locus = loc; | |
| 1563 | 1544 | 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; | |
| 1565 | 1546 | |
| 1566 | 1547 | if (locus < RESERVED_LOCATION_COUNT) |
| 1567 | 1548 | { |
| @@ -1595,7 +1576,7 @@ linemap_resolve_location (struct line_maps *set, · 27 unmodified lines | ||
| 1595 | 1576 | |
| 1596 | 1577 | bool |
| 1597 | 1578 | linemap_location_from_macro_definition_p (struct line_maps *set, |
| 1598 | − source_location loc) | |
| 1579 | + location_t loc) | |
| 1599 | 1580 | { |
| 1600 | 1581 | if (IS_ADHOC_LOC (loc)) |
| 1601 | 1582 | 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 | ||
| 1608 | 1589 | const struct line_map_macro *map |
| 1609 | 1590 | = linemap_check_macro (linemap_lookup (set, loc)); |
| 1610 | 1591 | |
| 1611 | − source_location s_loc | |
| 1592 | + location_t s_loc | |
| 1612 | 1593 | = linemap_macro_map_loc_unwind_toward_spelling (set, map, loc); |
| 1613 | 1594 | if (linemap_location_from_macro_expansion_p (set, s_loc)) |
| 1614 | 1595 | loc = s_loc; |
| 1615 | 1596 | else |
| 1616 | 1597 | { |
| 1617 | − source_location def_loc | |
| 1598 | + location_t def_loc | |
| 1618 | 1599 | = linemap_macro_map_loc_to_def_point (map, loc); |
| 1619 | 1600 | return s_loc == def_loc; |
| 1620 | 1601 | } |
| @@ -1633,17 +1614,17 @@ linemap_location_from_macro_definition_p (struct line_maps *set, · 12 unmodified lines | ||
| 1633 | 1614 | *LOC_MAP must be set to the map of LOC. This function then sets it |
| 1634 | 1615 | to the map of the returned location. */ |
| 1635 | 1616 | |
| 1636 | −source_location | |
| 1617 | +location_t | |
| 1637 | 1618 | linemap_unwind_toward_expansion (struct line_maps *set, |
| 1638 | − source_location loc, | |
| 1619 | + location_t loc, | |
| 1639 | 1620 | const struct line_map **map) |
| 1640 | 1621 | { |
| 1641 | − source_location resolved_location; | |
| 1622 | + location_t resolved_location; | |
| 1642 | 1623 | const line_map_macro *macro_map = linemap_check_macro (*map); |
| 1643 | 1624 | const struct line_map *resolved_map; |
| 1644 | 1625 | |
| 1645 | 1626 | 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; | |
| 1647 | 1628 | |
| 1648 | 1629 | resolved_location = |
| 1649 | 1630 | 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 | ||
| 1673 | 1654 | |
| 1674 | 1655 | *MAP is set to the map of the returned location if the later is |
| 1675 | 1656 | different from LOC. */ |
| 1676 | −source_location | |
| 1657 | +location_t | |
| 1677 | 1658 | linemap_unwind_to_first_non_reserved_loc (struct line_maps *set, |
| 1678 | − source_location loc, | |
| 1659 | + location_t loc, | |
| 1679 | 1660 | const struct line_map **map) |
| 1680 | 1661 | { |
| 1681 | − source_location resolved_loc; | |
| 1662 | + location_t resolved_loc; | |
| 1682 | 1663 | const struct line_map *map0 = NULL; |
| 1683 | 1664 | const line_map_ordinary *map1 = NULL; |
| 1684 | 1665 | |
| 1685 | 1666 | 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; | |
| 1687 | 1668 | |
| 1688 | 1669 | map0 = linemap_lookup (set, loc); |
| 1689 | 1670 | 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 | ||
| 1720 | 1701 | expanded_location |
| 1721 | 1702 | linemap_expand_location (struct line_maps *set, |
| 1722 | 1703 | const struct line_map *map, |
| 1723 | − source_location loc) | |
| 1704 | + location_t loc) | |
| 1724 | 1705 | |
| 1725 | 1706 | { |
| 1726 | 1707 | expanded_location xloc; |
| @@ -1729,8 +1710,8 @@ linemap_expand_location (struct line_maps *set, · 2 unmodified lines | ||
| 1729 | 1710 | if (IS_ADHOC_LOC (loc)) |
| 1730 | 1711 | { |
| 1731 | 1712 | 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; | |
| 1734 | 1715 | } |
| 1735 | 1716 | |
| 1736 | 1717 | if (loc < RESERVED_LOCATION_COUNT) |
| @@ -1770,41 +1751,42 @@ linemap_expand_location (struct line_maps *set, · 33 unmodified lines | ||
| 1770 | 1751 | void |
| 1771 | 1752 | linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro) |
| 1772 | 1753 | { |
| 1773 | − const char *lc_reasons_v[LC_ENTER_MACRO + 1] | |
| 1754 | + const char *const lc_reasons_v[LC_HWM] | |
| 1774 | 1755 | = { "LC_ENTER", "LC_LEAVE", "LC_RENAME", "LC_RENAME_VERBATIM", |
| 1775 | 1756 | "LC_ENTER_MACRO" }; |
| 1776 | − const char *reason; | |
| 1777 | 1757 | const line_map *map; |
| 1758 | + unsigned reason; | |
| 1778 | 1759 | |
| 1779 | 1760 | if (stream == NULL) |
| 1780 | 1761 | stream = stderr; |
| 1781 | 1762 | |
| 1782 | 1763 | 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 | + } | |
| 1784 | 1768 | 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 | + } | |
| 1788 | 1773 | |
| 1789 | 1774 | 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] : "???", | |
| 1791 | 1777 | ((!is_macro |
| 1792 | 1778 | && ORDINARY_MAP_IN_SYSTEM_HEADER_P (linemap_check_ordinary (map))) |
| 1793 | 1779 | ? "yes" : "no")); |
| 1794 | 1780 | if (!is_macro) |
| 1795 | 1781 | { |
| 1796 | 1782 | 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); | |
| 1804 | 1785 | |
| 1805 | 1786 | fprintf (stream, "File: %s:%d\n", ORDINARY_MAP_FILE_NAME (ord_map), |
| 1806 | 1787 | 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, | |
| 1808 | 1790 | includer_map ? ORDINARY_MAP_FILE_NAME (includer_map) : "None"); |
| 1809 | 1791 | } |
| 1810 | 1792 | else |
| @@ -1824,16 +1806,16 @@ linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro) · 13 unmodified lines | ||
| 1824 | 1806 | |
| 1825 | 1807 | void |
| 1826 | 1808 | linemap_dump_location (struct line_maps *set, |
| 1827 | − source_location loc, | |
| 1809 | + location_t loc, | |
| 1828 | 1810 | FILE *stream) |
| 1829 | 1811 | { |
| 1830 | 1812 | const line_map_ordinary *map; |
| 1831 | − source_location location; | |
| 1813 | + location_t location; | |
| 1832 | 1814 | const char *path = "", *from = ""; |
| 1833 | 1815 | int l = -1, c = -1, s = -1, e = -1; |
| 1834 | 1816 | |
| 1835 | 1817 | 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; | |
| 1837 | 1819 | |
| 1838 | 1820 | if (loc == 0) |
| 1839 | 1821 | return; |
| @@ -1854,9 +1836,11 @@ linemap_dump_location (struct line_maps *set, · 14 unmodified lines | ||
| 1854 | 1836 | if (e) |
| 1855 | 1837 | from = "N/A"; |
| 1856 | 1838 | 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 | + } | |
| 1860 | 1844 | } |
| 1861 | 1845 | |
| 1862 | 1846 | /* 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 | ||
| 1873 | 1857 | bool |
| 1874 | 1858 | linemap_get_file_highest_location (struct line_maps *set, |
| 1875 | 1859 | const char *file_name, |
| 1876 | − source_location *loc) | |
| 1860 | + location_t *loc) | |
| 1877 | 1861 | { |
| 1878 | 1862 | /* If the set is empty or no ordinary map has been created then |
| 1879 | 1863 | there is no file to look for ... */ |
| @@ -1895,7 +1879,7 @@ linemap_get_file_highest_location (struct line_maps *set, · 15 unmodified lines | ||
| 1895 | 1879 | /* The highest location for a given map is either the starting |
| 1896 | 1880 | location of the next map minus one, or -- if the map is the |
| 1897 | 1881 | latest one -- the highest location of the set. */ |
| 1898 | − source_location result; | |
| 1882 | + location_t result; | |
| 1899 | 1883 | if (i == (int) set->info_ordinary.used - 1) |
| 1900 | 1884 | result = set->highest_location; |
| 1901 | 1885 | else |
| @@ -1936,14 +1920,14 @@ linemap_get_statistics (struct line_maps *set, · 34 unmodified lines | ||
| 1936 | 1920 | linemap_assert (linemap_macro_expansion_map_p (cur_map)); |
| 1937 | 1921 | |
| 1938 | 1922 | 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); | |
| 1940 | 1924 | |
| 1941 | 1925 | for (i = 0; i < 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map); i += 2) |
| 1942 | 1926 | { |
| 1943 | 1927 | if (MACRO_MAP_LOCATIONS (cur_map)[i] == |
| 1944 | 1928 | MACRO_MAP_LOCATIONS (cur_map)[i + 1]) |
| 1945 | 1929 | duplicated_macro_maps_locations_size += |
| 1946 | − sizeof (source_location); | |
| 1930 | + sizeof (location_t); | |
| 1947 | 1931 | } |
| 1948 | 1932 | } |
| 1949 | 1933 | |
| @@ -2010,7 +1994,8 @@ line_table_dump (FILE *stream, struct line_maps *set, unsigned int num_ordinary, · 60 unmodified lines | ||
| 2010 | 1994 | |
| 2011 | 1995 | /* Construct a rich_location with location LOC as its initial range. */ |
| 2012 | 1996 | |
| 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) : | |
| 2014 | 1999 | m_line_table (set), |
| 2015 | 2000 | m_ranges (), |
| 2016 | 2001 | m_column_override (0), |
| @@ -2019,7 +2004,7 @@ rich_location::rich_location (line_maps *set, source_location loc) : · 2 unmodified lines | ||
| 2019 | 2004 | m_seen_impossible_fixit (false), |
| 2020 | 2005 | m_fixits_cannot_be_auto_applied (false) |
| 2021 | 2006 | { |
| 2022 | − add_range (loc, true); | |
| 2007 | + add_range (loc, SHOW_RANGE_WITH_CARET, label); | |
| 2023 | 2008 | } |
| 2024 | 2009 | |
| 2025 | 2010 | /* The destructor for class rich_location. */ |
| @@ -2032,7 +2017,7 @@ rich_location::~rich_location () · 6 unmodified lines | ||
| 2032 | 2017 | |
| 2033 | 2018 | /* Get location IDX within this rich_location. */ |
| 2034 | 2019 | |
| 2035 | −source_location | |
| 2020 | +location_t | |
| 2036 | 2021 | rich_location::get_loc (unsigned int idx) const |
| 2037 | 2022 | { |
| 2038 | 2023 | const location_range *locrange = get_range (idx); |
| @@ -2095,16 +2080,19 @@ rich_location::override_column (int column) · 56 unmodified lines | ||
| 2095 | 2080 | /* Add the given range. */ |
| 2096 | 2081 | |
| 2097 | 2082 | 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) | |
| 2099 | 2086 | { |
| 2100 | 2087 | location_range range; |
| 2101 | 2088 | 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; | |
| 2103 | 2091 | m_ranges.push (range); |
| 2104 | 2092 | } |
| 2105 | 2093 | |
| 2106 | 2094 | /* 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. | |
| 2108 | 2096 | |
| 2109 | 2097 | It must either overwrite an existing location, or add one *exactly* on |
| 2110 | 2098 | the end of the array. |
| @@ -2117,20 +2105,20 @@ rich_location::add_range (source_location loc, bool show_caret_p) · 6 unmodified lines | ||
| 2117 | 2105 | - the "%C" and "%L" format codes in the Fortran frontend. */ |
| 2118 | 2106 | |
| 2119 | 2107 | 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) | |
| 2122 | 2110 | { |
| 2123 | 2111 | /* We can either overwrite an existing range, or add one exactly |
| 2124 | 2112 | on the end of the array. */ |
| 2125 | 2113 | linemap_assert (idx <= m_ranges.count ()); |
| 2126 | 2114 | |
| 2127 | 2115 | if (idx == m_ranges.count ()) |
| 2128 | − add_range (loc, show_caret_p); | |
| 2116 | + add_range (loc, range_display_kind); | |
| 2129 | 2117 | else |
| 2130 | 2118 | { |
| 2131 | 2119 | location_range *locrange = get_range (idx); |
| 2132 | 2120 | locrange->m_loc = loc; |
| 2133 | − locrange->m_show_caret_p = show_caret_p; | |
| 2121 | + locrange->m_range_display_kind = range_display_kind; | |
| 2134 | 2122 | } |
| 2135 | 2123 | |
| 2136 | 2124 | if (idx == 0) |
| @@ -2153,10 +2141,10 @@ rich_location::add_fixit_insert_before (const char *new_content) · 16 unmodified lines | ||
| 2153 | 2141 | immediately before the start of WHERE. */ |
| 2154 | 2142 | |
| 2155 | 2143 | void |
| 2156 | −rich_location::add_fixit_insert_before (source_location where, | |
| 2144 | +rich_location::add_fixit_insert_before (location_t where, | |
| 2157 | 2145 | const char *new_content) |
| 2158 | 2146 | { |
| 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; | |
| 2160 | 2148 | maybe_add_fixit (start, start, new_content); |
| 2161 | 2149 | } |
| 2162 | 2150 | |
| @@ -2173,11 +2161,11 @@ rich_location::add_fixit_insert_after (const char *new_content) · 10 unmodified lines | ||
| 2173 | 2161 | immediately after the end-point of WHERE. */ |
| 2174 | 2162 | |
| 2175 | 2163 | void |
| 2176 | −rich_location::add_fixit_insert_after (source_location where, | |
| 2164 | +rich_location::add_fixit_insert_after (location_t where, | |
| 2177 | 2165 | const char *new_content) |
| 2178 | 2166 | { |
| 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 | |
| 2181 | 2169 | = linemap_position_for_loc_and_offset (m_line_table, finish, 1); |
| 2182 | 2170 | |
| 2183 | 2171 | /* linemap_position_for_loc_and_offset can fail, if so, it returns |
| @@ -2206,7 +2194,7 @@ rich_location::add_fixit_remove () · 22 unmodified lines | ||
| 2206 | 2194 | the start and finish of WHERE. */ |
| 2207 | 2195 | |
| 2208 | 2196 | void |
| 2209 | −rich_location::add_fixit_remove (source_location where) | |
| 2197 | +rich_location::add_fixit_remove (location_t where) | |
| 2210 | 2198 | { |
| 2211 | 2199 | source_range range = get_range_from_loc (m_line_table, where); |
| 2212 | 2200 | add_fixit_remove (range); |
| @@ -2236,7 +2224,7 @@ rich_location::add_fixit_replace (const char *new_content) · 23 unmodified lines | ||
| 2236 | 2224 | the start and finish of WHERE with NEW_CONTENT. */ |
| 2237 | 2225 | |
| 2238 | 2226 | void |
| 2239 | −rich_location::add_fixit_replace (source_location where, | |
| 2227 | +rich_location::add_fixit_replace (location_t where, | |
| 2240 | 2228 | const char *new_content) |
| 2241 | 2229 | { |
| 2242 | 2230 | source_range range = get_range_from_loc (m_line_table, where); |
| @@ -2250,11 +2238,11 @@ void · 7 unmodified lines | ||
| 2250 | 2238 | rich_location::add_fixit_replace (source_range src_range, |
| 2251 | 2239 | const char *new_content) |
| 2252 | 2240 | { |
| 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); | |
| 2255 | 2243 | |
| 2256 | 2244 | /* Fix-it hints use half-closed ranges, so attempt to offset the endpoint. */ |
| 2257 | − source_location next_loc | |
| 2245 | + location_t next_loc | |
| 2258 | 2246 | = linemap_position_for_loc_and_offset (m_line_table, finish, 1); |
| 2259 | 2247 | /* linemap_position_for_loc_and_offset can fail, if so, it returns |
| 2260 | 2248 | its input value. */ |
| @@ -2285,7 +2273,7 @@ rich_location::get_last_fixit_hint () const · 24 unmodified lines | ||
| 2285 | 2273 | Otherwise (the common case), return false. */ |
| 2286 | 2274 | |
| 2287 | 2275 | bool |
| 2288 | −rich_location::reject_impossible_fixit (source_location where) | |
| 2276 | +rich_location::reject_impossible_fixit (location_t where) | |
| 2289 | 2277 | { |
| 2290 | 2278 | /* Fix-its within a rich_location should either all be suggested, or |
| 2291 | 2279 | none of them should be suggested. |
| @@ -2323,8 +2311,8 @@ rich_location::stop_supporting_fixits () · 31 unmodified lines | ||
| 2323 | 2311 | consolidating into the prior fixit if possible. */ |
| 2324 | 2312 | |
| 2325 | 2313 | 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, | |
| 2328 | 2316 | const char *new_content) |
| 2329 | 2317 | { |
| 2330 | 2318 | if (reject_impossible_fixit (start)) |
| @@ -2405,8 +2393,8 @@ rich_location::maybe_add_fixit (source_location start, · 74 unmodified lines | ||
| 2405 | 2393 | |
| 2406 | 2394 | /* class fixit_hint. */ |
| 2407 | 2395 | |
| 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, | |
| 2410 | 2398 | const char *new_content) |
| 2411 | 2399 | : m_start (start), |
| 2412 | 2400 | m_next_loc (next_loc), |
| @@ -2444,8 +2432,8 @@ fixit_hint::affects_line_p (const char *file, int line) const · 31 unmodified lines | ||
| 2444 | 2432 | Otherwise return false. */ |
| 2445 | 2433 | |
| 2446 | 2434 | 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, | |
| 2449 | 2437 | const char *new_content) |
| 2450 | 2438 | { |
| 2451 | 2439 | /* For consolidation to be possible, START must be at this hint's |
| @@ -20,213 +20,258 @@ extern int foo (); · 19 unmodified lines | ||
| 20 | 20 | |
| 21 | 21 | |
| 22 | 22 | 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 | |
| 26 | 26 | corresponding character of source code). |
| 27 | 27 | |
| 28 | 28 | VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV |
| 29 | 29 | RESERVED LOCATIONS |
| 30 | − source_location interval: 0 <= loc < 2 | |
| 30 | + location_t interval: 0 <= loc < 2 | |
| 31 | 31 | |
| 32 | 32 | ORDINARY MAP: 0 |
| 33 | − source_location interval: 32 <= loc < 64 | |
| 33 | + location_t interval: 32 <= loc < 64 | |
| 34 | 34 | file: test.c |
| 35 | 35 | starting at line: 1 |
| 36 | − column bits: 12 | |
| 36 | + column and range bits: 12 | |
| 37 | + column bits: 7 | |
| 37 | 38 | range bits: 5 |
| 39 | + reason: 0 (LC_ENTER) | |
| 40 | + included from location: 0 | |
| 38 | 41 | test.c: 1|loc: 32|#include "test.h" |
| 39 | 42 | |69269258258148147 |
| 40 | 43 | |46802468024680246 |
| 41 | 44 | |
| 42 | 45 | ORDINARY MAP: 1 |
| 43 | − source_location interval: 64 <= loc < 96 | |
| 46 | + location_t interval: 64 <= loc < 96 | |
| 44 | 47 | file: <built-in> |
| 45 | 48 | starting at line: 0 |
| 49 | + column and range bits: 0 | |
| 46 | 50 | column bits: 0 |
| 47 | 51 | range bits: 0 |
| 52 | + reason: 2 (LC_RENAME) | |
| 53 | + included from location: 0 | |
| 48 | 54 | |
| 49 | 55 | ORDINARY MAP: 2 |
| 50 | − source_location interval: 96 <= loc < 128 | |
| 56 | + location_t interval: 96 <= loc < 128 | |
| 51 | 57 | file: <command-line> |
| 52 | 58 | starting at line: 0 |
| 59 | + column and range bits: 0 | |
| 53 | 60 | column bits: 0 |
| 54 | 61 | range bits: 0 |
| 62 | + reason: 2 (LC_RENAME) | |
| 63 | + included from location: 0 | |
| 55 | 64 | |
| 56 | 65 | ORDINARY MAP: 3 |
| 57 | − source_location interval: 128 <= loc < 160128 | |
| 66 | + location_t interval: 128 <= loc < 250240 | |
| 58 | 67 | file: /usr/include/stdc-predef.h |
| 59 | 68 | starting at line: 1 |
| 60 | − column bits: 12 | |
| 69 | + column and range bits: 12 | |
| 70 | + column bits: 7 | |
| 61 | 71 | range bits: 5 |
| 72 | + reason: 0 (LC_ENTER) | |
| 73 | + included from location: 127 (in ordinary map 2) | |
| 62 | 74 | (contents of /usr/include/stdc-predef.h snipped for brevity) |
| 63 | 75 | |
| 64 | 76 | ORDINARY MAP: 4 |
| 65 | − source_location interval: 160128 <= loc < 160160 | |
| 77 | + location_t interval: 250240 <= loc < 250272 | |
| 66 | 78 | file: <command-line> |
| 67 | 79 | starting at line: 32 |
| 68 | − column bits: 12 | |
| 80 | + column and range bits: 12 | |
| 81 | + column bits: 7 | |
| 69 | 82 | range bits: 5 |
| 83 | + reason: 1 (LC_LEAVE) | |
| 84 | + included from location: 0 | |
| 70 | 85 | |
| 71 | 86 | ORDINARY MAP: 5 |
| 72 | − source_location interval: 160160 <= loc < 164256 | |
| 87 | + location_t interval: 250272 <= loc < 254368 | |
| 73 | 88 | file: test.c |
| 74 | 89 | starting at line: 1 |
| 75 | − column bits: 12 | |
| 90 | + column and range bits: 12 | |
| 91 | + column bits: 7 | |
| 76 | 92 | 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 | |
| 82 | 100 | |
| 83 | 101 | ORDINARY MAP: 6 |
| 84 | − source_location interval: 164256 <= loc < 173280 | |
| 102 | + location_t interval: 254368 <= loc < 266720 | |
| 85 | 103 | file: test.h |
| 86 | 104 | starting at line: 1 |
| 87 | − column bits: 12 | |
| 105 | + column and range bits: 12 | |
| 106 | + column bits: 7 | |
| 88 | 107 | 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 | + | | |
| 104 | 130 | |
| 105 | 131 | ORDINARY MAP: 7 |
| 106 | − source_location interval: 173280 <= loc < 202016 | |
| 132 | + location_t interval: 266720 <= loc < 299520 | |
| 107 | 133 | file: test.c |
| 108 | 134 | starting at line: 2 |
| 109 | − column bits: 12 | |
| 135 | + column and range bits: 12 | |
| 136 | + column bits: 7 | |
| 110 | 137 | 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 | + | | |
| 151 | 185 | |
| 152 | 186 | UNALLOCATED LOCATIONS |
| 153 | − source_location interval: 202016 <= loc < 2147483633 | |
| 187 | + location_t interval: 299520 <= loc < 2147483632 | |
| 154 | 188 | |
| 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 | |
| 160 | 219 | |
| 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 | |
| 162 | 226 | 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 | |
| 198 | 258 | 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 | |
| 229 | 274 | |
| 230 | 275 | AD-HOC LOCATIONS |
| 231 | − source_location interval: 2147483648 <= loc < 4294967295 | |
| 276 | + location_t interval: 2147483648 <= loc < 4294967295 | |
| 232 | 277 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* 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. | |
| 3 | 3 | Written by Per Bothner, 1994. |
| 4 | 4 | Based on CCCP program by Paul Rubin, June 1986 |
| 5 | 5 | Adapted to ANSI C, Richard Stallman, Jan 1987 |
| @@ -39,9 +39,9 @@ struct macro_arg · 33 unmodified lines | ||
| 39 | 39 | const cpp_token *stringified; /* Stringified argument. */ |
| 40 | 40 | unsigned int count; /* # of tokens in argument. */ |
| 41 | 41 | 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 | |
| 43 | 43 | unexpanded tokens are stored. */ |
| 44 | − source_location *expanded_virt_locs; /* Where virtual locations for | |
| 44 | + location_t *expanded_virt_locs; /* Where virtual locations for | |
| 45 | 45 | expanded tokens are |
| 46 | 46 | stored. */ |
| 47 | 47 | }; |
| @@ -72,7 +72,7 @@ struct macro_arg_token_iter · 24 unmodified lines | ||
| 72 | 72 | /* A pointer to the "full" location of the current token. If |
| 73 | 73 | -ftrack-macro-expansion is used this location tracks loci across |
| 74 | 74 | macro expansion. */ |
| 75 | − const source_location *location_ptr; | |
| 75 | + const location_t *location_ptr; | |
| 76 | 76 | #if CHECKING_P |
| 77 | 77 | /* The number of times the iterator went forward. This useful only |
| 78 | 78 | when checking is enabled. */ |
| @@ -85,8 +85,9 @@ struct macro_arg_token_iter · 6 unmodified lines | ||
| 85 | 85 | struct macro_arg_saved_data { |
| 86 | 86 | /* The canonical (UTF-8) spelling of this identifier. */ |
| 87 | 87 | cpp_hashnode *canonical_node; |
| 88 | − /* The previous value of this identifier. */ | |
| 88 | + /* The previous value & type of this identifier. */ | |
| 89 | 89 | union _cpp_hashnode_value value; |
| 90 | + node_type type; | |
| 90 | 91 | }; |
| 91 | 92 | |
| 92 | 93 | static const char *vaopt_paste_error = |
| @@ -234,22 +235,22 @@ class vaopt_state { · 141 unmodified lines | ||
| 234 | 235 | int m_state; |
| 235 | 236 | |
| 236 | 237 | /* The location of the paste token. */ |
| 237 | − source_location m_paste_location; | |
| 238 | + location_t m_paste_location; | |
| 238 | 239 | |
| 239 | 240 | /* Location of the __VA_OPT__ token. */ |
| 240 | − source_location m_location; | |
| 241 | + location_t m_location; | |
| 241 | 242 | }; |
| 242 | 243 | |
| 243 | 244 | /* Macro expansion. */ |
| 244 | 245 | |
| 245 | 246 | static int enter_macro_context (cpp_reader *, cpp_hashnode *, |
| 246 | − const cpp_token *, source_location); | |
| 247 | + const cpp_token *, location_t); | |
| 247 | 248 | static int builtin_macro (cpp_reader *, cpp_hashnode *, |
| 248 | − source_location, source_location); | |
| 249 | + location_t, location_t); | |
| 249 | 250 | static void push_ptoken_context (cpp_reader *, cpp_hashnode *, _cpp_buff *, |
| 250 | 251 | const cpp_token **, unsigned int); |
| 251 | 252 | static void push_extended_tokens_context (cpp_reader *, cpp_hashnode *, |
| 252 | − _cpp_buff *, source_location *, | |
| 253 | + _cpp_buff *, location_t *, | |
| 253 | 254 | const cpp_token **, unsigned int); |
| 254 | 255 | static _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *, |
| 255 | 256 | _cpp_buff **, unsigned *); |
| @@ -259,21 +260,21 @@ static void expand_arg (cpp_reader *, macro_arg *); · 3 unmodified lines | ||
| 259 | 260 | static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int); |
| 260 | 261 | static const cpp_token *stringify_arg (cpp_reader *, macro_arg *); |
| 261 | 262 | 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, | |
| 263 | 264 | const cpp_token **, const cpp_token *); |
| 264 | 265 | static void alloc_expanded_arg_mem (cpp_reader *, macro_arg *, size_t); |
| 265 | 266 | static void ensure_expanded_arg_room (cpp_reader *, macro_arg *, size_t, size_t *); |
| 266 | 267 | static void delete_macro_args (_cpp_buff*, unsigned num_args); |
| 267 | 268 | static void set_arg_token (macro_arg *, const cpp_token *, |
| 268 | − source_location, size_t, | |
| 269 | + location_t, size_t, | |
| 269 | 270 | enum macro_arg_token_kind, |
| 270 | 271 | 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 *, | |
| 272 | 273 | enum macro_arg_token_kind); |
| 273 | 274 | static const cpp_token **arg_token_ptr_at (const macro_arg *, |
| 274 | 275 | size_t, |
| 275 | 276 | enum macro_arg_token_kind, |
| 276 | − source_location **virt_location); | |
| 277 | + location_t **virt_location); | |
| 277 | 278 | |
| 278 | 279 | static void macro_arg_token_iter_init (macro_arg_token_iter *, bool, |
| 279 | 280 | enum macro_arg_token_kind, |
| @@ -281,49 +282,48 @@ static void macro_arg_token_iter_init (macro_arg_token_iter *, bool, · 1 unmodified line | ||
| 281 | 282 | const cpp_token **); |
| 282 | 283 | static const cpp_token *macro_arg_token_iter_get_token |
| 283 | 284 | (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 | |
| 285 | 286 | (const macro_arg_token_iter *); |
| 286 | 287 | static void macro_arg_token_iter_forward (macro_arg_token_iter *); |
| 287 | 288 | static _cpp_buff *tokens_buff_new (cpp_reader *, size_t, |
| 288 | − source_location **); | |
| 289 | + location_t **); | |
| 289 | 290 | static size_t tokens_buff_count (_cpp_buff *); |
| 290 | 291 | static const cpp_token **tokens_buff_last_token_ptr (_cpp_buff *); |
| 291 | 292 | static inline const cpp_token **tokens_buff_put_token_to (const cpp_token **, |
| 292 | − source_location *, | |
| 293 | + location_t *, | |
| 293 | 294 | const cpp_token *, |
| 294 | − source_location, | |
| 295 | − source_location, | |
| 295 | + location_t, | |
| 296 | + location_t, | |
| 296 | 297 | const line_map_macro *, |
| 297 | 298 | unsigned int); |
| 298 | 299 | |
| 299 | 300 | static const cpp_token **tokens_buff_add_token (_cpp_buff *, |
| 300 | − source_location *, | |
| 301 | + location_t *, | |
| 301 | 302 | const cpp_token *, |
| 302 | − source_location, | |
| 303 | − source_location, | |
| 303 | + location_t, | |
| 304 | + location_t, | |
| 304 | 305 | const line_map_macro *, |
| 305 | 306 | unsigned int); |
| 306 | 307 | static inline void tokens_buff_remove_last_token (_cpp_buff *); |
| 307 | 308 | static void replace_args (cpp_reader *, cpp_hashnode *, cpp_macro *, |
| 308 | − macro_arg *, source_location); | |
| 309 | + macro_arg *, location_t); | |
| 309 | 310 | static _cpp_buff *funlike_invocation_p (cpp_reader *, cpp_hashnode *, |
| 310 | 311 | _cpp_buff **, unsigned *); |
| 311 | −static bool create_iso_definition (cpp_reader *, cpp_macro *); | |
| 312 | +static cpp_macro *create_iso_definition (cpp_reader *); | |
| 312 | 313 | |
| 313 | 314 | /* #define directive parsing and handling. */ |
| 314 | 315 | |
| 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 *); | |
| 317 | 317 | static bool warn_of_redefinition (cpp_reader *, cpp_hashnode *, |
| 318 | 318 | const cpp_macro *); |
| 319 | −static bool parse_params (cpp_reader *, cpp_macro *); | |
| 319 | +static bool parse_params (cpp_reader *, unsigned *, bool *); | |
| 320 | 320 | static void check_trad_stringification (cpp_reader *, const cpp_macro *, |
| 321 | 321 | const cpp_string *); |
| 322 | 322 | static bool reached_end_of_context (cpp_context *); |
| 323 | 323 | static void consume_next_token_from_context (cpp_reader *pfile, |
| 324 | 324 | 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 *); | |
| 327 | 327 | |
| 328 | 328 | static cpp_hashnode* macro_of_context (cpp_context *context); |
| 329 | 329 | |
| @@ -342,7 +342,7 @@ int · 12 unmodified lines | ||
| 342 | 342 | _cpp_warn_if_unused_macro (cpp_reader *pfile, cpp_hashnode *node, |
| 343 | 343 | void *v ATTRIBUTE_UNUSED) |
| 344 | 344 | { |
| 345 | − if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN)) | |
| 345 | + if (cpp_user_macro_p (node)) | |
| 346 | 346 | { |
| 347 | 347 | cpp_macro *macro = node->value.macro; |
| 348 | 348 | |
| @@ -382,7 +382,7 @@ static const char * const monthnames[] = · 33 unmodified lines | ||
| 382 | 382 | a builtin macro. */ |
| 383 | 383 | const uchar * |
| 384 | 384 | _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, |
| 385 | − source_location loc) | |
| 385 | + location_t loc) | |
| 386 | 386 | { |
| 387 | 387 | const uchar *result = NULL; |
| 388 | 388 | linenum_type number = 1; |
| @@ -587,7 +587,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node, · 198 unmodified lines | ||
| 587 | 587 | point of the macro. */ |
| 588 | 588 | static int |
| 589 | 589 | builtin_macro (cpp_reader *pfile, cpp_hashnode *node, |
| 590 | − source_location loc, source_location expand_loc) | |
| 590 | + location_t loc, location_t expand_loc) | |
| 591 | 591 | { |
| 592 | 592 | const uchar *buf; |
| 593 | 593 | size_t len; |
| @@ -623,7 +623,7 @@ builtin_macro (cpp_reader *pfile, cpp_hashnode *node, · 29 unmodified lines | ||
| 623 | 623 | Create a macro line map and generate a virtual location for |
| 624 | 624 | the token resulting from the expansion of the built-in |
| 625 | 625 | macro. */ |
| 626 | − source_location *virt_locs = NULL; | |
| 626 | + location_t *virt_locs = NULL; | |
| 627 | 627 | _cpp_buff *token_buf = tokens_buff_new (pfile, 1, &virt_locs); |
| 628 | 628 | const line_map_macro * map = |
| 629 | 629 | linemap_enter_macro (pfile->line_table, node, loc, 1); |
| @@ -773,7 +773,7 @@ stringify_arg (cpp_reader *pfile, macro_arg *arg) · 143 unmodified lines | ||
| 773 | 773 | guaranteed to not have the PASTE_LEFT flag set. LOCATION is |
| 774 | 774 | the virtual location used for error reporting. */ |
| 775 | 775 | static bool |
| 776 | −paste_tokens (cpp_reader *pfile, source_location location, | |
| 776 | +paste_tokens (cpp_reader *pfile, location_t location, | |
| 777 | 777 | const cpp_token **plhs, const cpp_token *rhs) |
| 778 | 778 | { |
| 779 | 779 | unsigned char *buf, *end, *lhsend; |
| @@ -803,7 +803,7 @@ paste_tokens (cpp_reader *pfile, source_location location, · 23 unmodified lines | ||
| 803 | 803 | lhs = _cpp_lex_direct (pfile); |
| 804 | 804 | if (pfile->buffer->cur != pfile->buffer->rlimit) |
| 805 | 805 | { |
| 806 | − source_location saved_loc = lhs->src_loc; | |
| 806 | + location_t saved_loc = lhs->src_loc; | |
| 807 | 807 | |
| 808 | 808 | _cpp_pop_buffer (pfile); |
| 809 | 809 | _cpp_backup_tokens (pfile, 1); |
| @@ -841,7 +841,7 @@ paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs) · 31 unmodified lines | ||
| 841 | 841 | { |
| 842 | 842 | const cpp_token *rhs = NULL; |
| 843 | 843 | cpp_context *context = pfile->context; |
| 844 | − source_location virt_loc = 0; | |
| 844 | + location_t virt_loc = 0; | |
| 845 | 845 | |
| 846 | 846 | /* We are expanding a macro and we must have been called on a token |
| 847 | 847 | 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 | ||
| 903 | 903 | /* Put the resulting token in its own context. */ |
| 904 | 904 | if (context->tokens_kind == TOKENS_KIND_EXTENDED) |
| 905 | 905 | { |
| 906 | − source_location *virt_locs = NULL; | |
| 906 | + location_t *virt_locs = NULL; | |
| 907 | 907 | _cpp_buff *token_buf = tokens_buff_new (pfile, 1, &virt_locs); |
| 908 | 908 | tokens_buff_add_token (token_buf, virt_locs, lhs, |
| 909 | 909 | 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 | ||
| 964 | 964 | "macro \"%s\" passed %u arguments, but takes just %u", |
| 965 | 965 | NODE_NAME (node), argc, macro->paramc); |
| 966 | 966 | |
| 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 | + | |
| 967 | 971 | return false; |
| 968 | 972 | } |
| 969 | 973 | |
| @@ -989,7 +993,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 19 unmodified lines | ||
| 989 | 993 | macro_arg *args, *arg; |
| 990 | 994 | const cpp_token *token; |
| 991 | 995 | unsigned int argc; |
| 992 | − source_location virt_loc; | |
| 996 | + location_t virt_loc; | |
| 993 | 997 | bool track_macro_expansion_p = CPP_OPTION (pfile, track_macro_expansion); |
| 994 | 998 | unsigned num_args_alloced = 0; |
| 995 | 999 | |
| @@ -1026,7 +1030,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 30 unmodified lines | ||
| 1026 | 1030 | if (track_macro_expansion_p) |
| 1027 | 1031 | { |
| 1028 | 1032 | virt_locs_capacity = DEFAULT_NUM_TOKENS_PER_MACRO_ARG; |
| 1029 | − arg->virt_locs = XNEWVEC (source_location, | |
| 1033 | + arg->virt_locs = XNEWVEC (location_t, | |
| 1030 | 1034 | virt_locs_capacity); |
| 1031 | 1035 | } |
| 1032 | 1036 | |
| @@ -1044,7 +1048,7 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, · 11 unmodified lines | ||
| 1044 | 1048 | && (ntokens + 2 > virt_locs_capacity)) |
| 1045 | 1049 | { |
| 1046 | 1050 | virt_locs_capacity += ARG_TOKENS_EXTENT; |
| 1047 | − arg->virt_locs = XRESIZEVEC (source_location, | |
| 1051 | + arg->virt_locs = XRESIZEVEC (location_t, | |
| 1048 | 1052 | arg->virt_locs, |
| 1049 | 1053 | virt_locs_capacity); |
| 1050 | 1054 | } |
| @@ -1235,13 +1239,14 @@ funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node, · 184 unmodified lines | ||
| 1235 | 1239 | static inline unsigned int |
| 1236 | 1240 | macro_real_token_count (const cpp_macro *macro) |
| 1237 | 1241 | { |
| 1238 | − unsigned int i; | |
| 1239 | 1242 | if (__builtin_expect (!macro->extra_tokens, true)) |
| 1240 | 1243 | 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; | |
| 1245 | 1250 | } |
| 1246 | 1251 | |
| 1247 | 1252 | /* 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 | ||
| 1255 | 1260 | macro. */ |
| 1256 | 1261 | static int |
| 1257 | 1262 | 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) | |
| 1259 | 1264 | { |
| 1260 | 1265 | /* The presence of a macro invalidates a file's controlling macro. */ |
| 1261 | 1266 | pfile->mi_valid = false; |
| @@ -1273,17 +1278,7 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 11 unmodified lines | ||
| 1273 | 1278 | function where set this flag to FALSE. */ |
| 1274 | 1279 | pfile->about_to_expand_macro_p = true; |
| 1275 | 1280 | |
| 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)) | |
| 1287 | 1282 | { |
| 1288 | 1283 | cpp_macro *macro = node->value.macro; |
| 1289 | 1284 | _cpp_buff *pragma_buff = NULL; |
| @@ -1329,13 +1324,9 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 39 unmodified lines | ||
| 1329 | 1324 | /* Disable the macro within its expansion. */ |
| 1330 | 1325 | node->flags |= NODE_DISABLED; |
| 1331 | 1326 | |
| 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); | |
| 1339 | 1330 | if (pfile->cb.used) |
| 1340 | 1331 | pfile->cb.used (pfile, location, node); |
| 1341 | 1332 | |
| @@ -1349,7 +1340,7 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 7 unmodified lines | ||
| 1349 | 1340 | unsigned int i; |
| 1350 | 1341 | const cpp_token *src = macro->exp.tokens; |
| 1351 | 1342 | const line_map_macro *map; |
| 1352 | − source_location *virt_locs = NULL; | |
| 1343 | + location_t *virt_locs = NULL; | |
| 1353 | 1344 | _cpp_buff *macro_tokens |
| 1354 | 1345 | = tokens_buff_new (pfile, tokens_count, &virt_locs); |
| 1355 | 1346 | |
| @@ -1410,29 +1401,23 @@ enter_macro_context (cpp_reader *pfile, cpp_hashnode *node, · 54 unmodified lines | ||
| 1410 | 1401 | pfile->about_to_expand_macro_p = false; |
| 1411 | 1402 | /* Handle built-in macros and the _Pragma operator. */ |
| 1412 | 1403 | { |
| 1413 | − source_location loc, expand_loc; | |
| 1404 | + location_t expand_loc; | |
| 1414 | 1405 | |
| 1415 | 1406 | 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; | |
| 1426 | 1414 | 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; | |
| 1434 | 1419 | |
| 1435 | − return builtin_macro (pfile, node, loc, expand_loc); | |
| 1420 | + return builtin_macro (pfile, node, location, expand_loc); | |
| 1436 | 1421 | } |
| 1437 | 1422 | } |
| 1438 | 1423 | |
| @@ -1482,12 +1467,12 @@ delete_macro_args (_cpp_buff *buff, unsigned num_args) · 43 unmodified lines | ||
| 1482 | 1467 | tokens, at least. */ |
| 1483 | 1468 | static void |
| 1484 | 1469 | set_arg_token (macro_arg *arg, const cpp_token *token, |
| 1485 | − source_location location, size_t index, | |
| 1470 | + location_t location, size_t index, | |
| 1486 | 1471 | enum macro_arg_token_kind kind, |
| 1487 | 1472 | bool track_macro_exp_p) |
| 1488 | 1473 | { |
| 1489 | 1474 | const cpp_token **token_ptr; |
| 1490 | − source_location *loc = NULL; | |
| 1475 | + location_t *loc = NULL; | |
| 1491 | 1476 | |
| 1492 | 1477 | token_ptr = |
| 1493 | 1478 | arg_token_ptr_at (arg, index, kind, |
| @@ -1508,13 +1493,13 @@ set_arg_token (macro_arg *arg, const cpp_token *token, · 14 unmodified lines | ||
| 1508 | 1493 | /* Get the pointer to the location of the argument token of the |
| 1509 | 1494 | function-like macro argument ARG. This function must be called |
| 1510 | 1495 | only when we -ftrack-macro-expansion is on. */ |
| 1511 | −static const source_location * | |
| 1496 | +static const location_t * | |
| 1512 | 1497 | get_arg_token_location (const macro_arg *arg, |
| 1513 | 1498 | enum macro_arg_token_kind kind) |
| 1514 | 1499 | { |
| 1515 | − const source_location *loc = NULL; | |
| 1500 | + const location_t *loc = NULL; | |
| 1516 | 1501 | 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); | |
| 1518 | 1503 | |
| 1519 | 1504 | if (token_ptr == NULL) |
| 1520 | 1505 | return NULL; |
| @@ -1531,7 +1516,7 @@ get_arg_token_location (const macro_arg *arg, · 10 unmodified lines | ||
| 1531 | 1516 | static const cpp_token ** |
| 1532 | 1517 | arg_token_ptr_at (const macro_arg *arg, size_t index, |
| 1533 | 1518 | enum macro_arg_token_kind kind, |
| 1534 | − source_location **virt_location) | |
| 1519 | + location_t **virt_location) | |
| 1535 | 1520 | { |
| 1536 | 1521 | const cpp_token **tokens_ptr = NULL; |
| 1537 | 1522 | |
| @@ -1561,7 +1546,7 @@ arg_token_ptr_at (const macro_arg *arg, size_t index, · 23 unmodified lines | ||
| 1561 | 1546 | *virt_location = &arg->expanded_virt_locs[index]; |
| 1562 | 1547 | else if (kind == MACRO_ARG_TOKEN_STRINGIFIED) |
| 1563 | 1548 | *virt_location = |
| 1564 | − (source_location *) &tokens_ptr[index]->src_loc; | |
| 1549 | + (location_t *) &tokens_ptr[index]->src_loc; | |
| 1565 | 1550 | } |
| 1566 | 1551 | return &tokens_ptr[index]; |
| 1567 | 1552 | } |
| @@ -1638,7 +1623,7 @@ macro_arg_token_iter_get_token (const macro_arg_token_iter *it) · 70 unmodified lines | ||
| 1638 | 1623 | } |
| 1639 | 1624 | |
| 1640 | 1625 | /* Return the location of the token pointed to by the iterator.*/ |
| 1641 | −static source_location | |
| 1626 | +static location_t | |
| 1642 | 1627 | macro_arg_token_iter_get_location (const macro_arg_token_iter *it) |
| 1643 | 1628 | { |
| 1644 | 1629 | #if CHECKING_P |
| @@ -1735,14 +1720,14 @@ last_token_is (_cpp_buff *buff, const cpp_token **ptr) · 90 unmodified lines | ||
| 1735 | 1720 | function-like macro invocation. */ |
| 1736 | 1721 | static void |
| 1737 | 1722 | 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) | |
| 1739 | 1724 | { |
| 1740 | 1725 | unsigned int i, total; |
| 1741 | 1726 | const cpp_token *src, *limit; |
| 1742 | 1727 | const cpp_token **first = NULL; |
| 1743 | 1728 | macro_arg *arg; |
| 1744 | 1729 | _cpp_buff *buff = NULL; |
| 1745 | − source_location *virt_locs = NULL; | |
| 1730 | + location_t *virt_locs = NULL; | |
| 1746 | 1731 | unsigned int exp_count; |
| 1747 | 1732 | const line_map_macro *map = NULL; |
| 1748 | 1733 | int track_macro_exp; |
| @@ -1780,7 +1765,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, · 31 unmodified lines | ||
| 1780 | 1765 | arg->stringified = stringify_arg (pfile, arg); |
| 1781 | 1766 | } |
| 1782 | 1767 | 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))) | |
| 1784 | 1769 | total += arg->count - 1; |
| 1785 | 1770 | else |
| 1786 | 1771 | { |
| @@ -1812,7 +1797,7 @@ replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro, · 25 unmodified lines | ||
| 1812 | 1797 | |
| 1813 | 1798 | As far as tokens are concerned, the memory overhead of |
| 1814 | 1799 | -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). | |
| 1816 | 1801 | The good news is that extra memory gets freed when the macro |
| 1817 | 1802 | context is freed, i.e shortly after the macro got expanded. */ |
| 1818 | 1803 | |
| @@ -2231,7 +2216,7 @@ static void · 412 unmodified lines | ||
| 2231 | 2216 | push_extended_tokens_context (cpp_reader *pfile, |
| 2232 | 2217 | cpp_hashnode *macro, |
| 2233 | 2218 | _cpp_buff *token_buff, |
| 2234 | − source_location *virt_locs, | |
| 2219 | + location_t *virt_locs, | |
| 2235 | 2220 | const cpp_token **first, |
| 2236 | 2221 | unsigned int count) |
| 2237 | 2222 | { |
| @@ -2277,13 +2262,13 @@ _cpp_push_text_context (cpp_reader *pfile, cpp_hashnode *macro, · 39 unmodified lines | ||
| 2277 | 2262 | expansion. */ |
| 2278 | 2263 | static _cpp_buff* |
| 2279 | 2264 | tokens_buff_new (cpp_reader *pfile, size_t len, |
| 2280 | − source_location **virt_locs) | |
| 2265 | + location_t **virt_locs) | |
| 2281 | 2266 | { |
| 2282 | 2267 | 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); | |
| 2284 | 2269 | |
| 2285 | 2270 | if (virt_locs != NULL) |
| 2286 | − *virt_locs = XNEWVEC (source_location, locs_size); | |
| 2271 | + *virt_locs = XNEWVEC (location_t, locs_size); | |
| 2287 | 2272 | return _cpp_get_buff (pfile, tokens_size); |
| 2288 | 2273 | } |
| 2289 | 2274 | |
| @@ -2340,14 +2325,14 @@ tokens_buff_remove_last_token (_cpp_buff *tokens_buff) · 50 unmodified lines | ||
| 2340 | 2325 | point. */ |
| 2341 | 2326 | static inline const cpp_token ** |
| 2342 | 2327 | tokens_buff_put_token_to (const cpp_token **dest, |
| 2343 | − source_location *virt_loc_dest, | |
| 2328 | + location_t *virt_loc_dest, | |
| 2344 | 2329 | 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, | |
| 2347 | 2332 | const line_map_macro *map, |
| 2348 | 2333 | unsigned int macro_token_index) |
| 2349 | 2334 | { |
| 2350 | − source_location macro_loc = virt_loc; | |
| 2335 | + location_t macro_loc = virt_loc; | |
| 2351 | 2336 | const cpp_token **result; |
| 2352 | 2337 | |
| 2353 | 2338 | if (virt_loc_dest) |
| @@ -2385,15 +2370,15 @@ tokens_buff_put_token_to (const cpp_token **dest, · 31 unmodified lines | ||
| 2385 | 2370 | position of the token coming right after the insertion point. */ |
| 2386 | 2371 | static const cpp_token ** |
| 2387 | 2372 | tokens_buff_add_token (_cpp_buff *buffer, |
| 2388 | − source_location *virt_locs, | |
| 2373 | + location_t *virt_locs, | |
| 2389 | 2374 | 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, | |
| 2392 | 2377 | const line_map_macro *map, |
| 2393 | 2378 | unsigned int macro_token_index) |
| 2394 | 2379 | { |
| 2395 | 2380 | const cpp_token **result; |
| 2396 | − source_location *virt_loc_dest = NULL; | |
| 2381 | + location_t *virt_loc_dest = NULL; | |
| 2397 | 2382 | unsigned token_index = |
| 2398 | 2383 | (BUFF_FRONT (buffer) - buffer->base) / sizeof (cpp_token *); |
| 2399 | 2384 | |
| @@ -2425,7 +2410,7 @@ alloc_expanded_arg_mem (cpp_reader *pfile, macro_arg *arg, size_t capacity) · 25 unmodified lines | ||
| 2425 | 2410 | |
| 2426 | 2411 | arg->expanded = XNEWVEC (const cpp_token *, capacity); |
| 2427 | 2412 | 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); | |
| 2429 | 2414 | |
| 2430 | 2415 | } |
| 2431 | 2416 | |
| @@ -2447,9 +2432,9 @@ ensure_expanded_arg_room (cpp_reader *pfile, macro_arg *arg, · 15 unmodified lines | ||
| 2447 | 2432 | if (CPP_OPTION (pfile, track_macro_expansion)) |
| 2448 | 2433 | { |
| 2449 | 2434 | if (arg->expanded_virt_locs == NULL) |
| 2450 | − arg->expanded_virt_locs = XNEWVEC (source_location, size); | |
| 2435 | + arg->expanded_virt_locs = XNEWVEC (location_t, size); | |
| 2451 | 2436 | else |
| 2452 | − arg->expanded_virt_locs = XRESIZEVEC (source_location, | |
| 2437 | + arg->expanded_virt_locs = XRESIZEVEC (location_t, | |
| 2453 | 2438 | arg->expanded_virt_locs, |
| 2454 | 2439 | size); |
| 2455 | 2440 | } |
| @@ -2492,7 +2477,7 @@ expand_arg (cpp_reader *pfile, macro_arg *arg) · 36 unmodified lines | ||
| 2492 | 2477 | for (;;) |
| 2493 | 2478 | { |
| 2494 | 2479 | const cpp_token *token; |
| 2495 | − source_location location; | |
| 2480 | + location_t location; | |
| 2496 | 2481 | |
| 2497 | 2482 | ensure_expanded_arg_room (pfile, arg, arg->expanded_count + 1, |
| 2498 | 2483 | &capacity); |
| @@ -2631,7 +2616,7 @@ reached_end_of_context (cpp_context *context) · 132 unmodified lines | ||
| 2631 | 2616 | static inline void |
| 2632 | 2617 | consume_next_token_from_context (cpp_reader *pfile, |
| 2633 | 2618 | const cpp_token ** token, |
| 2634 | − source_location *location) | |
| 2619 | + location_t *location) | |
| 2635 | 2620 | { |
| 2636 | 2621 | cpp_context *c = pfile->context; |
| 2637 | 2622 | |
| @@ -2670,8 +2655,8 @@ consume_next_token_from_context (cpp_reader *pfile, · 32 unmodified lines | ||
| 2670 | 2655 | location if we are in the traditional mode, and just returns |
| 2671 | 2656 | LOCATION otherwise. */ |
| 2672 | 2657 | |
| 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) | |
| 2675 | 2660 | { |
| 2676 | 2661 | if (CPP_OPTION (pfile, traditional)) |
| 2677 | 2662 | { |
| @@ -2696,12 +2681,12 @@ maybe_adjust_loc_for_trad_cpp (cpp_reader *pfile, source_location location) · 18 unmodified lines | ||
| 2696 | 2681 | cpp_get_token_with_location to learn more about the meaning of this |
| 2697 | 2682 | location. */ |
| 2698 | 2683 | 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) | |
| 2700 | 2685 | { |
| 2701 | 2686 | const cpp_token *result; |
| 2702 | 2687 | /* This token is a virtual token that either encodes a location |
| 2703 | 2688 | related to macro expansion or a spelling location. */ |
| 2704 | − source_location virt_loc = 0; | |
| 2689 | + location_t virt_loc = 0; | |
| 2705 | 2690 | /* pfile->about_to_expand_macro_p can be overriden by indirect calls |
| 2706 | 2691 | to functions that push macro contexts. So let's save it so that |
| 2707 | 2692 | 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 | ||
| 2750 | 2735 | |
| 2751 | 2736 | node = result->val.node.node; |
| 2752 | 2737 | |
| 2753 | − if (node->type != NT_MACRO || (result->flags & NO_EXPAND)) | |
| 2738 | + if (node->type == NT_VOID || (result->flags & NO_EXPAND)) | |
| 2754 | 2739 | break; |
| 2755 | 2740 | |
| 2756 | 2741 | if (!(node->flags & NODE_DISABLED)) |
| @@ -2899,7 +2884,7 @@ cpp_get_token (cpp_reader *pfile) · 142 unmodified lines | ||
| 2899 | 2884 | location is just the same thing as its spelling location. */ |
| 2900 | 2885 | |
| 2901 | 2886 | 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) | |
| 2903 | 2888 | { |
| 2904 | 2889 | return cpp_get_token_1 (pfile, loc); |
| 2905 | 2890 | } |
| @@ -2995,23 +2980,18 @@ _cpp_backup_tokens (cpp_reader *pfile, unsigned int count) · 89 unmodified lines | ||
| 2995 | 2980 | |
| 2996 | 2981 | /* #define directive parsing and handling. */ |
| 2997 | 2982 | |
| 2998 | −/* Returns nonzero if a macro redefinition warning is required. */ | |
| 2983 | +/* Returns true if a macro redefinition warning is required. */ | |
| 2999 | 2984 | static bool |
| 3000 | 2985 | warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, |
| 3001 | 2986 | const cpp_macro *macro2) |
| 3002 | 2987 | { |
| 3003 | − const cpp_macro *macro1; | |
| 3004 | − unsigned int i; | |
| 3005 | − | |
| 3006 | 2988 | /* Some redefinitions need to be warned about regardless. */ |
| 3007 | 2989 | if (node->flags & NODE_WARN) |
| 3008 | 2990 | return true; |
| 3009 | 2991 | |
| 3010 | 2992 | /* Suppress warnings for builtins that lack the NODE_WARN flag, |
| 3011 | 2993 | 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)) | |
| 3015 | 2995 | return CPP_OPTION (pfile, warn_builtin_macro_redefined); |
| 3016 | 2996 | |
| 3017 | 2997 | /* Redefinitions of conditional (context-sensitive) macros, on |
| @@ -3019,9 +2999,17 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, · 1 unmodified line | ||
| 3019 | 2999 | if (node->flags & NODE_CONDITIONAL) |
| 3020 | 3000 | return false; |
| 3021 | 3001 | |
| 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 | + | |
| 3022 | 3011 | /* Redefinition of a macro is allowed if and only if the old and new |
| 3023 | 3012 | definitions are the same. (6.10.3 paragraph 2). */ |
| 3024 | − macro1 = node->value.macro; | |
| 3025 | 3013 | |
| 3026 | 3014 | /* Don't check count here as it can be different in valid |
| 3027 | 3015 | traditional redefinitions with just whitespace differences. */ |
| @@ -3031,18 +3019,18 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, · 3 unmodified lines | ||
| 3031 | 3019 | return true; |
| 3032 | 3020 | |
| 3033 | 3021 | /* 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]) | |
| 3036 | 3024 | return true; |
| 3037 | 3025 | |
| 3038 | 3026 | /* Check the replacement text or tokens. */ |
| 3039 | − if (CPP_OPTION (pfile, traditional)) | |
| 3027 | + if (macro1->kind == cmk_traditional) | |
| 3040 | 3028 | return _cpp_expansions_different_trad (macro1, macro2); |
| 3041 | 3029 | |
| 3042 | 3030 | if (macro1->count != macro2->count) |
| 3043 | 3031 | return true; |
| 3044 | 3032 | |
| 3045 | − for (i = 0; i < macro1->count; i++) | |
| 3033 | + for (unsigned i= macro1->count; i--; ) | |
| 3046 | 3034 | if (!_cpp_equiv_tokens (¯o1->exp.tokens[i], ¯o2->exp.tokens[i])) |
| 3047 | 3035 | return true; |
| 3048 | 3036 | |
| @@ -3055,124 +3043,164 @@ _cpp_free_definition (cpp_hashnode *h) · 6 unmodified lines | ||
| 3055 | 3043 | { |
| 3056 | 3044 | /* Macros and assertions no longer have anything to free. */ |
| 3057 | 3045 | 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); | |
| 3060 | 3048 | } |
| 3061 | 3049 | |
| 3062 | 3050 | /* 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. */ | |
| 3065 | 3052 | 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, | |
| 3067 | 3054 | cpp_hashnode *spelling) |
| 3068 | 3055 | { |
| 3069 | − unsigned int len; | |
| 3070 | 3056 | /* Constraint 6.10.3.6 - duplicate parameter names. */ |
| 3071 | − if (node->flags & NODE_MACRO_ARG) | |
| 3057 | + if (node->type == NT_MACRO_ARG) | |
| 3072 | 3058 | { |
| 3073 | 3059 | cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter \"%s\"", |
| 3074 | 3060 | NODE_NAME (node)); |
| 3075 | − return true; | |
| 3061 | + return false; | |
| 3076 | 3062 | } |
| 3077 | 3063 | |
| 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); | |
| 3085 | 3065 | if (len > pfile->macro_buffer_len) |
| 3086 | 3066 | { |
| 3087 | − pfile->macro_buffer = XRESIZEVEC (unsigned char, pfile->macro_buffer, | |
| 3088 | − len); | |
| 3067 | + pfile->macro_buffer | |
| 3068 | + = XRESIZEVEC (unsigned char, pfile->macro_buffer, len); | |
| 3089 | 3069 | pfile->macro_buffer_len = len; |
| 3090 | 3070 | } |
| 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; | |
| 3096 | 3071 | |
| 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; | |
| 3099 | 3087 | } |
| 3100 | 3088 | |
| 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 | + | |
| 3103 | 3117 | static bool |
| 3104 | −parse_params (cpp_reader *pfile, cpp_macro *macro) | |
| 3118 | +parse_params (cpp_reader *pfile, unsigned *n_ptr, bool *varadic_ptr) | |
| 3105 | 3119 | { |
| 3106 | − unsigned int prev_ident = 0; | |
| 3120 | + unsigned nparms = 0; | |
| 3121 | + bool ok = false; | |
| 3107 | 3122 | |
| 3108 | − for (;;) | |
| 3123 | + for (bool prev_ident = false;;) | |
| 3109 | 3124 | { |
| 3110 | 3125 | const cpp_token *token = _cpp_lex_token (pfile); |
| 3111 | 3126 | |
| 3112 | 3127 | switch (token->type) |
| 3113 | 3128 | { |
| 3114 | − default: | |
| 3129 | + case CPP_COMMENT: | |
| 3115 | 3130 | /* Allow/ignore comments in parameter lists if we are |
| 3116 | 3131 | 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; | |
| 3120 | 3134 | |
| 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; | |
| 3125 | 3158 | |
| 3126 | 3159 | 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; | |
| 3139 | 3169 | |
| 3140 | 3170 | 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 | + } | |
| 3143 | 3176 | |
| 3144 | − /* Fall through to pick up the error. */ | |
| 3145 | 3177 | /* FALLTHRU */ |
| 3146 | 3178 | 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; | |
| 3154 | 3183 | |
| 3155 | 3184 | case CPP_ELLIPSIS: |
| 3156 | − macro->variadic = 1; | |
| 3185 | + if (*varadic_ptr) | |
| 3186 | + goto bad; | |
| 3187 | + *varadic_ptr = true; | |
| 3157 | 3188 | if (!prev_ident) |
| 3158 | 3189 | { |
| 3159 | − _cpp_save_parameter (pfile, macro, | |
| 3190 | + /* An ISO bare ellipsis. */ | |
| 3191 | + _cpp_save_parameter (pfile, nparms, | |
| 3160 | 3192 | pfile->spec_nodes.n__VA_ARGS__, |
| 3161 | 3193 | pfile->spec_nodes.n__VA_ARGS__); |
| 3194 | + nparms++; | |
| 3162 | 3195 | pfile->state.va_args_ok = 1; |
| 3163 | 3196 | if (! CPP_OPTION (pfile, c99) |
| 3164 | 3197 | && CPP_OPTION (pfile, cpp_pedantic) |
| 3165 | 3198 | && 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")); | |
| 3176 | 3204 | else if (CPP_OPTION (pfile, cpp_warn_c90_c99_compat) > 0 |
| 3177 | 3205 | && ! CPP_OPTION (pfile, cplusplus)) |
| 3178 | 3206 | cpp_error (pfile, CPP_DL_WARNING, |
| @@ -3180,54 +3208,38 @@ parse_params (cpp_reader *pfile, cpp_macro *macro) · 1 unmodified line | ||
| 3180 | 3208 | } |
| 3181 | 3209 | else if (CPP_OPTION (pfile, cpp_pedantic) |
| 3182 | 3210 | && 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; | |
| 3201 | 3216 | } |
| 3202 | 3217 | } |
| 3203 | −} | |
| 3204 | 3218 | |
| 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; | |
| 3211 | 3221 | |
| 3212 | − return &((cpp_token *) BUFF_FRONT (pfile->a_buff))[macro->count++]; | |
| 3222 | + return ok; | |
| 3213 | 3223 | } |
| 3214 | 3224 | |
| 3215 | 3225 | /* Lex a token from the expansion of MACRO, but mark parameters as we |
| 3216 | 3226 | find them and warn of traditional stringification. */ |
| 3217 | −static cpp_token * | |
| 3227 | +static cpp_macro * | |
| 3218 | 3228 | lex_expansion_token (cpp_reader *pfile, cpp_macro *macro) |
| 3219 | 3229 | { |
| 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 = ¯o->exp.tokens[macro->count]; | |
| 3236 | + cpp_token *token = _cpp_lex_direct (pfile); | |
| 3225 | 3237 | pfile->cur_token = saved_cur_token; |
| 3226 | 3238 | |
| 3227 | 3239 | /* 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) | |
| 3230 | 3241 | { |
| 3242 | + /* Morph into a parameter reference. */ | |
| 3231 | 3243 | cpp_hashnode *spelling = token->val.node.spelling; |
| 3232 | 3244 | token->type = CPP_MACRO_ARG; |
| 3233 | 3245 | 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 | ||
| 3237 | 3249 | && (token->type == CPP_STRING || token->type == CPP_CHAR)) |
| 3238 | 3250 | check_trad_stringification (pfile, macro, &token->val.str); |
| 3239 | 3251 | |
| 3240 | − return token; | |
| 3252 | + return macro; | |
| 3241 | 3253 | } |
| 3242 | 3254 | |
| 3243 | −static bool | |
| 3244 | −create_iso_definition (cpp_reader *pfile, cpp_macro *macro) | |
| 3255 | +static cpp_macro * | |
| 3256 | +create_iso_definition (cpp_reader *pfile) | |
| 3245 | 3257 | { |
| 3246 | − cpp_token *token; | |
| 3247 | − const cpp_token *ctoken; | |
| 3248 | 3258 | bool following_paste_op = false; |
| 3249 | 3259 | const char *paste_op_error_msg = |
| 3250 | 3260 | N_("'##' cannot appear at either end of a macro expansion"); |
| 3251 | 3261 | 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; | |
| 3252 | 3275 | |
| 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) | |
| 3258 | 3279 | { |
| 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; | |
| 3263 | 3283 | |
| 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 *) ¯o->params[macro->paramc]; | |
| 3276 | − macro->fun_like = 1; | |
| 3284 | + params = (cpp_hashnode **)_cpp_commit_buff | |
| 3285 | + (pfile, sizeof (cpp_hashnode *) * nparms); | |
| 3286 | + token = NULL; | |
| 3277 | 3287 | } |
| 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))) | |
| 3279 | 3291 | { |
| 3280 | 3292 | /* While ISO C99 requires whitespace before replacement text |
| 3281 | 3293 | in a macro definition, ISO C90 with TC1 allows characters |
| 3282 | 3294 | from the basic source character set there. */ |
| 3283 | 3295 | 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")); | |
| 3292 | 3300 | else |
| 3293 | 3301 | { |
| 3294 | − int warntype = CPP_DL_WARNING; | |
| 3295 | − switch (ctoken->type) | |
| 3302 | + enum cpp_diagnostic_level warntype = CPP_DL_WARNING; | |
| 3303 | + switch (token->type) | |
| 3296 | 3304 | { |
| 3297 | 3305 | case CPP_ATSIGN: |
| 3298 | 3306 | case CPP_AT_NAME: |
| @@ -3303,7 +3311,7 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 4 unmodified lines | ||
| 3303 | 3311 | case CPP_OTHER: |
| 3304 | 3312 | /* Basic character set sans letters, digits and _. */ |
| 3305 | 3313 | if (strchr ("!\"#%&'()*+,-./:;<=>?[\\]^{|}~", |
| 3306 | − ctoken->val.str.text[0]) == NULL) | |
| 3314 | + token->val.str.text[0]) == NULL) | |
| 3307 | 3315 | warntype = CPP_DL_PEDWARN; |
| 3308 | 3316 | break; |
| 3309 | 3317 | default: |
| @@ -3316,19 +3324,32 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 6 unmodified lines | ||
| 3316 | 3324 | } |
| 3317 | 3325 | } |
| 3318 | 3326 | |
| 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 | + } | |
| 3321 | 3337 | else |
| 3322 | 3338 | { |
| 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 = ¯o->exp.tokens[0]; | |
| 3342 | + macro->count = 1; | |
| 3325 | 3343 | } |
| 3326 | 3344 | |
| 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) | |
| 3331 | 3346 | { |
| 3347 | + if (!token) | |
| 3348 | + { | |
| 3349 | + macro = lex_expansion_token (pfile, macro); | |
| 3350 | + token = ¯o->exp.tokens[macro->count++]; | |
| 3351 | + } | |
| 3352 | + | |
| 3332 | 3353 | /* Check the stringifying # constraint 6.10.3.2.1 of |
| 3333 | 3354 | function-like macros when lexing the subsequent token. */ |
| 3334 | 3355 | 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 | ||
| 3350 | 3371 | { |
| 3351 | 3372 | cpp_error (pfile, CPP_DL_ERROR, |
| 3352 | 3373 | "'#' is not followed by a macro parameter"); |
| 3353 | − return false; | |
| 3374 | + goto out; | |
| 3354 | 3375 | } |
| 3355 | 3376 | } |
| 3356 | 3377 | |
| @@ -3362,8 +3383,10 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 5 unmodified lines | ||
| 3362 | 3383 | if (following_paste_op) |
| 3363 | 3384 | { |
| 3364 | 3385 | cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); |
| 3365 | − return false; | |
| 3386 | + goto out; | |
| 3366 | 3387 | } |
| 3388 | + if (!vaopt_tracker.completed ()) | |
| 3389 | + goto out; | |
| 3367 | 3390 | break; |
| 3368 | 3391 | } |
| 3369 | 3392 | |
| @@ -3375,17 +3398,19 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 5 unmodified lines | ||
| 3375 | 3398 | if (macro->count == 1) |
| 3376 | 3399 | { |
| 3377 | 3400 | cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg); |
| 3378 | − return false; | |
| 3401 | + goto out; | |
| 3379 | 3402 | } |
| 3380 | 3403 | |
| 3381 | − if (token[-1].flags & PASTE_LEFT) | |
| 3404 | + if (following_paste_op) | |
| 3382 | 3405 | { |
| 3383 | − macro->extra_tokens = 1; | |
| 3406 | + /* Consecutive paste operators. This one will be moved | |
| 3407 | + to the end. */ | |
| 3384 | 3408 | num_extra_tokens++; |
| 3385 | 3409 | token->val.token_no = macro->count - 1; |
| 3386 | 3410 | } |
| 3387 | 3411 | else |
| 3388 | 3412 | { |
| 3413 | + /* Drop the paste operator. */ | |
| 3389 | 3414 | --macro->count; |
| 3390 | 3415 | token[-1].flags |= PASTE_LEFT; |
| 3391 | 3416 | if (token->flags & DIGRAPH) |
| @@ -3393,78 +3418,67 @@ create_iso_definition (cpp_reader *pfile, cpp_macro *macro) · 1 unmodified line | ||
| 3393 | 3418 | if (token->flags & PREV_WHITE) |
| 3394 | 3419 | token[-1].flags |= SP_PREV_WHITE; |
| 3395 | 3420 | } |
| 3421 | + following_paste_op = true; | |
| 3396 | 3422 | } |
| 3423 | + else | |
| 3424 | + following_paste_op = false; | |
| 3397 | 3425 | |
| 3398 | 3426 | 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; | |
| 3403 | 3428 | } |
| 3404 | 3429 | |
| 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; | |
| 3410 | 3432 | |
| 3411 | 3433 | /* Don't count the CPP_EOF. */ |
| 3412 | 3434 | macro->count--; |
| 3413 | 3435 | |
| 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. */ | |
| 3415 | 3441 | if (macro->count) |
| 3416 | 3442 | macro->exp.tokens[0].flags &= ~PREV_WHITE; |
| 3417 | 3443 | |
| 3418 | − /* Commit or allocate the memory. */ | |
| 3419 | − if (pfile->hash_table->alloc_subobject) | |
| 3444 | + if (num_extra_tokens) | |
| 3420 | 3445 | { |
| 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; | |
| 3446 | 3465 | } |
| 3447 | − else | |
| 3448 | − BUFF_FRONT (pfile->a_buff) = (uchar *) ¯o->exp.tokens[macro->count]; | |
| 3449 | 3466 | |
| 3450 | − return true; | |
| 3467 | + out: | |
| 3468 | + pfile->state.va_args_ok = 0; | |
| 3469 | + _cpp_unsave_parameters (pfile, nparms); | |
| 3470 | + | |
| 3471 | + return ok ? macro : NULL; | |
| 3451 | 3472 | } |
| 3452 | 3473 | |
| 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) | |
| 3456 | 3476 | { |
| 3457 | − cpp_macro *macro; | |
| 3458 | − unsigned int i; | |
| 3459 | − bool ok; | |
| 3477 | + cpp_macro *macro = (cpp_macro *) placement; | |
| 3460 | 3478 | |
| 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)); | |
| 3466 | 3479 | macro->line = pfile->directive_line; |
| 3467 | − macro->params = 0; | |
| 3480 | + macro->parm.params = 0; | |
| 3481 | + macro->lazy = 0; | |
| 3468 | 3482 | macro->paramc = 0; |
| 3469 | 3483 | macro->variadic = 0; |
| 3470 | 3484 | macro->used = !CPP_OPTION (pfile, warn_unused_macros); |
| @@ -3474,62 +3488,51 @@ _cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node) · 3 unmodified lines | ||
| 3474 | 3488 | /* To suppress some diagnostics. */ |
| 3475 | 3489 | macro->syshdr = pfile->buffer && pfile->buffer->sysp != 0; |
| 3476 | 3490 | |
| 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; | |
| 3484 | 3492 | |
| 3485 | − Longer term we should lex the whole line before coming here, | |
| 3486 | − and just copy the expansion. */ | |
| 3493 | + return macro; | |
| 3494 | +} | |
| 3487 | 3495 | |
| 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; | |
| 3491 | 3501 | |
| 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); | |
| 3501 | 3506 | |
| 3502 | − if (!ok) | |
| 3503 | − return ok; | |
| 3507 | + if (!macro) | |
| 3508 | + return false; | |
| 3504 | 3509 | |
| 3505 | − if (node->type == NT_MACRO) | |
| 3510 | + if (cpp_macro_p (node)) | |
| 3506 | 3511 | { |
| 3507 | 3512 | if (CPP_OPTION (pfile, warn_unused_macros)) |
| 3508 | 3513 | _cpp_warn_if_unused_macro (pfile, node, NULL); |
| 3509 | 3514 | |
| 3510 | 3515 | if (warn_of_redefinition (pfile, node, macro)) |
| 3511 | 3516 | { |
| 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; | |
| 3515 | 3520 | |
| 3516 | 3521 | bool warned = |
| 3517 | 3522 | cpp_pedwarning_with_line (pfile, reason, |
| 3518 | 3523 | pfile->directive_line, 0, |
| 3519 | 3524 | "\"%s\" redefined", NODE_NAME (node)); |
| 3520 | 3525 | |
| 3521 | − if (warned && node->type == NT_MACRO && !(node->flags & NODE_BUILTIN)) | |
| 3526 | + if (warned && cpp_user_macro_p (node)) | |
| 3522 | 3527 | cpp_error_with_line (pfile, CPP_DL_NOTE, |
| 3523 | 3528 | node->value.macro->line, 0, |
| 3524 | 3529 | "this is the location of the previous definition"); |
| 3525 | 3530 | } |
| 3531 | + _cpp_free_definition (node); | |
| 3526 | 3532 | } |
| 3527 | 3533 | |
| 3528 | − if (node->type != NT_VOID) | |
| 3529 | − _cpp_free_definition (node); | |
| 3530 | − | |
| 3531 | 3534 | /* Enter definition in hash table. */ |
| 3532 | − node->type = NT_MACRO; | |
| 3535 | + node->type = NT_USER_MACRO; | |
| 3533 | 3536 | node->value.macro = macro; |
| 3534 | 3537 | if (! ustrncmp (NODE_NAME (node), DSC ("__STDC_")) |
| 3535 | 3538 | && 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 | ||
| 3545 | 3548 | conditional flag */ |
| 3546 | 3549 | node->flags &= ~NODE_CONDITIONAL; |
| 3547 | 3550 | |
| 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 | + } | |
| 3549 | 3597 | } |
| 3550 | 3598 | |
| 3551 | 3599 | /* 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 | ||
| 3576 | 3624 | identifier inside the string matches one of them. */ |
| 3577 | 3625 | for (i = 0; i < macro->paramc; i++) |
| 3578 | 3626 | { |
| 3579 | − const cpp_hashnode *node = macro->params[i]; | |
| 3627 | + const cpp_hashnode *node = macro->parm.params[i]; | |
| 3580 | 3628 | |
| 3581 | 3629 | if (NODE_LEN (node) == len |
| 3582 | 3630 | && !memcmp (p, NODE_NAME (node), len)) |
| @@ -3590,15 +3638,6 @@ check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro, · 7 unmodified lines | ||
| 3590 | 3638 | } |
| 3591 | 3639 | } |
| 3592 | 3640 | |
| 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 | − | |
| 3602 | 3641 | /* Returns the name, arguments and expansion of a macro, in a format |
| 3603 | 3642 | suitable to be read back in again, and therefore also for DWARF 2 |
| 3604 | 3643 | debugging info. e.g. "PASTE(X, Y) X ## Y", or "MACNAME EXPANSION". |
| @@ -3608,23 +3647,12 @@ const unsigned char * · 3 unmodified lines | ||
| 3608 | 3647 | cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) |
| 3609 | 3648 | { |
| 3610 | 3649 | unsigned int i, len; |
| 3611 | − const cpp_macro *macro; | |
| 3612 | 3650 | unsigned char *buffer; |
| 3613 | 3651 | |
| 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; | |
| 3626 | 3655 | |
| 3627 | − macro = node->value.macro; | |
| 3628 | 3656 | /* Calculate length. */ |
| 3629 | 3657 | len = NODE_LEN (node) * 10 + 2; /* ' ' and NUL. */ |
| 3630 | 3658 | if (macro->fun_like) |
| @@ -3632,7 +3660,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 1 unmodified line | ||
| 3632 | 3660 | len += 4; /* "()" plus possible final ".." of named |
| 3633 | 3661 | varargs (we have + 1 below). */ |
| 3634 | 3662 | for (i = 0; i < macro->paramc; i++) |
| 3635 | − len += NODE_LEN (macro->params[i]) + 1; /* "," */ | |
| 3663 | + len += NODE_LEN (macro->parm.params[i]) + 1; /* "," */ | |
| 3636 | 3664 | } |
| 3637 | 3665 | |
| 3638 | 3666 | /* 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 | ||
| 3643 | 3671 | unsigned int count = macro_real_token_count (macro); |
| 3644 | 3672 | for (i = 0; i < count; i++) |
| 3645 | 3673 | { |
| 3646 | − cpp_token *token = ¯o->exp.tokens[i]; | |
| 3674 | + const cpp_token *token = ¯o->exp.tokens[i]; | |
| 3647 | 3675 | |
| 3648 | 3676 | if (token->type == CPP_MACRO_ARG) |
| 3649 | 3677 | len += NODE_LEN (token->val.macro_arg.spelling); |
| @@ -3676,7 +3704,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 26 unmodified lines | ||
| 3676 | 3704 | *buffer++ = '('; |
| 3677 | 3705 | for (i = 0; i < macro->paramc; i++) |
| 3678 | 3706 | { |
| 3679 | − cpp_hashnode *param = macro->params[i]; | |
| 3707 | + cpp_hashnode *param = macro->parm.params[i]; | |
| 3680 | 3708 | |
| 3681 | 3709 | if (param != pfile->spec_nodes.n__VA_ARGS__) |
| 3682 | 3710 | { |
| @@ -3707,7 +3735,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 24 unmodified lines | ||
| 3707 | 3735 | unsigned int count = macro_real_token_count (macro); |
| 3708 | 3736 | for (i = 0; i < count; i++) |
| 3709 | 3737 | { |
| 3710 | − cpp_token *token = ¯o->exp.tokens[i]; | |
| 3738 | + const cpp_token *token = ¯o->exp.tokens[i]; | |
| 3711 | 3739 | |
| 3712 | 3740 | if (token->flags & PREV_WHITE) |
| 3713 | 3741 | *buffer++ = ' '; |
| @@ -3737,11 +3765,3 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) · 23 unmodified lines | ||
| 3737 | 3765 | *buffer = '\0'; |
| 3738 | 3766 | return pfile->macro_buffer; |
| 3739 | 3767 | } |
| 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 | −} | |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Make ucnid.h from various sources. |
| 2 | − Copyright (C) 2005-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 2005-2019 Free Software Foundation, Inc. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | under the terms of the GNU General Public License as published by the |
| @@ -378,7 +378,7 @@ write_copyright (void) · 372 unmodified lines | ||
| 378 | 378 | { |
| 379 | 379 | static const char copyright[] = "\ |
| 380 | 380 | /* 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\ | |
| 382 | 382 | \n\ |
| 383 | 383 | This program is free software; you can redistribute it and/or modify it\n\ |
| 384 | 384 | under the terms of the GNU General Public License as published by the\n\ |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* Dependency generator for Makefile fragments. |
| 2 | − Copyright (C) 2000-2018 Free Software Foundation, Inc. | |
| 2 | + Copyright (C) 2000-2019 Free Software Foundation, Inc. | |
| 3 | 3 | Contributed by Zack Weinberg, Mar 2000 |
| 4 | 4 | |
| 5 | 5 | This program is free software; you can redistribute it and/or modify it |
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | /* 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. | |
| 3 | 3 | |
| 4 | 4 | This program is free software; you can redistribute it and/or modify it |
| 5 | 5 | under the terms of the GNU General Public License as published by the |
| @@ -50,50 +50,47 @@ static int · 44 unmodified lines | ||
| 50 | 50 | write_macdef (cpp_reader *pfile, cpp_hashnode *hn, void *file_p) |
| 51 | 51 | { |
| 52 | 52 | FILE *f = (FILE *) file_p; |
| 53 | + bool is_void = false; | |
| 53 | 54 | switch (hn->type) |
| 54 | 55 | { |
| 55 | 56 | case NT_VOID: |
| 56 | 57 | if (! (hn->flags & NODE_POISONED)) |
| 57 | 58 | return 1; |
| 58 | − /* XXX Really fallthru? */ | |
| 59 | − /* FALLTHRU */ | |
| 59 | + is_void = true; | |
| 60 | + goto poisoned; | |
| 60 | 61 | |
| 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; | |
| 70 | 64 | |
| 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; | |
| 73 | 71 | |
| 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; | |
| 84 | 74 | |
| 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 | + } | |
| 94 | 85 | |
| 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 | + } | |
| 97 | 94 | return 1; |
| 98 | 95 | |
| 99 | 96 | default: |
| @@ -228,8 +225,11 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 128 unmodified lines | ||
| 228 | 225 | |
| 229 | 226 | switch (hn->type) |
| 230 | 227 | { |
| 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) | |
| 233 | 233 | return 1; |
| 234 | 234 | |
| 235 | 235 | /* fall through. */ |
| @@ -250,10 +250,6 @@ count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 14 unmodified lines | ||
| 250 | 250 | } |
| 251 | 251 | return 1; |
| 252 | 252 | |
| 253 | − case NT_ASSERTION: | |
| 254 | − /* Not currently implemented. */ | |
| 255 | − return 1; | |
| 256 | − | |
| 257 | 253 | default: |
| 258 | 254 | abort (); |
| 259 | 255 | } |
| @@ -267,8 +263,11 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 7 unmodified lines | ||
| 267 | 263 | |
| 268 | 264 | switch (hn->type) |
| 269 | 265 | { |
| 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) | |
| 272 | 271 | return 1; |
| 273 | 272 | |
| 274 | 273 | /* fall through. */ |
| @@ -289,10 +288,6 @@ write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p) · 14 unmodified lines | ||
| 289 | 288 | } |
| 290 | 289 | return 1; |
| 291 | 290 | |
| 292 | − case NT_ASSERTION: | |
| 293 | − /* Not currently implemented. */ | |
| 294 | − return 1; | |
| 295 | − | |
| 296 | 291 | default: |
| 297 | 292 | abort (); |
| 298 | 293 | } |
| @@ -442,7 +437,7 @@ _cpp_restore_pushed_macros (cpp_reader *r, FILE *f) · 143 unmodified lines | ||
| 442 | 437 | return 0; |
| 443 | 438 | |
| 444 | 439 | 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) | |
| 446 | 441 | return 0; |
| 447 | 442 | defnlen = 0; |
| 448 | 443 | if (fread (&defnlen, sizeof (defnlen), 1, f) != 1) |
| @@ -506,7 +501,7 @@ _cpp_save_pushed_macros (cpp_reader *r, FILE *f) · 57 unmodified lines | ||
| 506 | 501 | if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1 |
| 507 | 502 | || fwrite (pp[i]->definition, defnlen, 1, f) != 1) |
| 508 | 503 | 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) | |
| 510 | 505 | return 0; |
| 511 | 506 | defnlen = 0; |
| 512 | 507 | 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 | ||
| 623 | 618 | goto fail; |
| 624 | 619 | } |
| 625 | 620 | |
| 626 | − if (h->type != NT_MACRO) | |
| 621 | + if (h->type == NT_VOID) | |
| 627 | 622 | { |
| 628 | 623 | /* It's ok if __GCC_HAVE_DWARF2_CFI_ASM becomes undefined, |
| 629 | 624 | 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 | ||
| 760 | 755 | { |
| 761 | 756 | struct save_macro_data *data = (struct save_macro_data *)data_p; |
| 762 | 757 | |
| 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)) | |
| 770 | 759 | { |
| 771 | 760 | if (data->count == data->array_size) |
| 772 | 761 | { |
| @@ -774,28 +763,14 @@ save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p) · 1 unmodified line | ||
| 774 | 763 | data->defns = XRESIZEVEC (uchar *, data->defns, (data->array_size)); |
| 775 | 764 | } |
| 776 | 765 | |
| 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); | |
| 787 | 768 | |
| 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'; | |
| 797 | 771 | data->count++; |
| 798 | 772 | } |
| 773 | + | |
| 799 | 774 | return 1; |
| 800 | 775 | } |
| 801 | 776 | |
| @@ -1,6 +1,36 @@ | ||
| 1 | −2018-07-26 Release Manager | |
| 1 | +2019-05-03 Release Manager | |
| 2 | 2 | |
| 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. | |
| 4 | 34 | |
| 5 | 35 | 2018-06-11 Joseph Myers <joseph@codesourcery.com> |
| 6 | 36 | |
| @@ -10,10 +40,6 @@ · 3 unmodified lines | ||
| 10 | 40 | |
| 11 | 41 | * eo.po: Update. |
| 12 | 42 | |
| 13 | −2018-05-02 Release Manager | |
| 14 | − | |
| 15 | − * GCC 8.1.0 released. | |
| 16 | − | |
| 17 | 43 | 2018-04-23 Joseph Myers <joseph@codesourcery.com> |
| 18 | 44 | |
| 19 | 45 | * cpplib.pot: Regenerate. |
Binary file not shown.
| @@ -6,7 +6,7 @@ msgid "" · 5 unmodified lines | ||
| 6 | 6 | msgstr "" |
| 7 | 7 | "Project-Id-Version: gcc 3.1\n" |
| 8 | 8 | "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" | |
| 10 | 10 | "PO-Revision-Date: 2002-05-17 15:54+0200\n" |
| 11 | 11 | "Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n" |
| 12 | 12 | "Language-Team: Belarusian <i18n@tut.by>\n" |
| @@ -85,7 +85,7 @@ msgstr "" · 72 unmodified lines | ||
| 85 | 85 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 86 | 86 | msgstr "" |
| 87 | 87 | |
| 88 | −#: charset.c:1181 charset.c:2000 | |
| 88 | +#: charset.c:1181 charset.c:2002 | |
| 89 | 89 | msgid "converting UCN to source character set" |
| 90 | 90 | msgstr "" |
| 91 | 91 | |
| @@ -140,299 +140,299 @@ msgstr "" · 48 unmodified lines | ||
| 140 | 140 | msgid "missing open quote" |
| 141 | 141 | msgstr "Прапушчан ідэнтыфікатар" |
| 142 | 142 | |
| 143 | −#: charset.c:1827 charset.c:1891 | |
| 143 | +#: charset.c:1829 charset.c:1893 | |
| 144 | 144 | #, fuzzy |
| 145 | 145 | #| msgid "character constant too long" |
| 146 | 146 | msgid "character constant too long for its type" |
| 147 | 147 | msgstr "сімвальная канстанта вельмі доўгая" |
| 148 | 148 | |
| 149 | −#: charset.c:1830 | |
| 149 | +#: charset.c:1832 | |
| 150 | 150 | msgid "multi-character character constant" |
| 151 | 151 | msgstr "мнагасімвальная сімвальная канстанта" |
| 152 | 152 | |
| 153 | −#: charset.c:1931 | |
| 153 | +#: charset.c:1933 | |
| 154 | 154 | msgid "empty character constant" |
| 155 | 155 | msgstr "пустая сімвальная канстанта" |
| 156 | 156 | |
| 157 | −#: charset.c:2047 | |
| 157 | +#: charset.c:2049 | |
| 158 | 158 | #, c-format |
| 159 | 159 | msgid "failure to convert %s to %s" |
| 160 | 160 | msgstr "" |
| 161 | 161 | |
| 162 | −#: directives.c:235 directives.c:278 | |
| 162 | +#: directives.c:229 directives.c:272 | |
| 163 | 163 | #, c-format |
| 164 | 164 | msgid "extra tokens at end of #%s directive" |
| 165 | 165 | msgstr "" |
| 166 | 166 | |
| 167 | −#: directives.c:385 | |
| 167 | +#: directives.c:379 | |
| 168 | 168 | #, c-format |
| 169 | 169 | msgid "#%s is a GCC extension" |
| 170 | 170 | msgstr "" |
| 171 | 171 | |
| 172 | −#: directives.c:390 | |
| 172 | +#: directives.c:384 | |
| 173 | 173 | #, c-format |
| 174 | 174 | msgid "#%s is a deprecated GCC extension" |
| 175 | 175 | msgstr "" |
| 176 | 176 | |
| 177 | −#: directives.c:403 | |
| 177 | +#: directives.c:397 | |
| 178 | 178 | msgid "suggest not using #elif in traditional C" |
| 179 | 179 | msgstr "" |
| 180 | 180 | |
| 181 | −#: directives.c:406 | |
| 181 | +#: directives.c:400 | |
| 182 | 182 | #, c-format |
| 183 | 183 | msgid "traditional C ignores #%s with the # indented" |
| 184 | 184 | msgstr "" |
| 185 | 185 | |
| 186 | −#: directives.c:410 | |
| 186 | +#: directives.c:404 | |
| 187 | 187 | #, c-format |
| 188 | 188 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 189 | 189 | msgstr "" |
| 190 | 190 | |
| 191 | −#: directives.c:436 | |
| 191 | +#: directives.c:430 | |
| 192 | 192 | msgid "embedding a directive within macro arguments is not portable" |
| 193 | 193 | msgstr "" |
| 194 | 194 | |
| 195 | −#: directives.c:456 | |
| 195 | +#: directives.c:450 | |
| 196 | 196 | msgid "style of line directive is a GCC extension" |
| 197 | 197 | msgstr "" |
| 198 | 198 | |
| 199 | −#: directives.c:537 | |
| 199 | +#: directives.c:531 | |
| 200 | 200 | #, c-format |
| 201 | 201 | msgid "invalid preprocessing directive #%s" |
| 202 | 202 | msgstr "" |
| 203 | 203 | |
| 204 | −#: directives.c:606 | |
| 204 | +#: directives.c:600 | |
| 205 | 205 | msgid "\"defined\" cannot be used as a macro name" |
| 206 | 206 | msgstr "" |
| 207 | 207 | |
| 208 | −#: directives.c:611 | |
| 208 | +#: directives.c:605 | |
| 209 | 209 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 210 | 210 | msgstr "" |
| 211 | 211 | |
| 212 | −#: directives.c:617 | |
| 212 | +#: directives.c:611 | |
| 213 | 213 | #, c-format |
| 214 | 214 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 215 | 215 | msgstr "" |
| 216 | 216 | |
| 217 | −#: directives.c:620 | |
| 217 | +#: directives.c:614 | |
| 218 | 218 | #, c-format |
| 219 | 219 | msgid "no macro name given in #%s directive" |
| 220 | 220 | msgstr "" |
| 221 | 221 | |
| 222 | −#: directives.c:623 | |
| 222 | +#: directives.c:617 | |
| 223 | 223 | msgid "macro names must be identifiers" |
| 224 | 224 | msgstr "" |
| 225 | 225 | |
| 226 | −#: directives.c:672 directives.c:677 | |
| 226 | +#: directives.c:666 directives.c:671 | |
| 227 | 227 | #, c-format |
| 228 | 228 | msgid "undefining \"%s\"" |
| 229 | 229 | msgstr "" |
| 230 | 230 | |
| 231 | −#: directives.c:732 | |
| 231 | +#: directives.c:727 | |
| 232 | 232 | msgid "missing terminating > character" |
| 233 | 233 | msgstr "" |
| 234 | 234 | |
| 235 | −#: directives.c:791 | |
| 235 | +#: directives.c:786 | |
| 236 | 236 | #, c-format |
| 237 | 237 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 238 | 238 | msgstr "" |
| 239 | 239 | |
| 240 | −#: directives.c:837 | |
| 240 | +#: directives.c:828 | |
| 241 | 241 | #, c-format |
| 242 | 242 | msgid "empty filename in #%s" |
| 243 | 243 | msgstr "" |
| 244 | 244 | |
| 245 | −#: directives.c:847 | |
| 245 | +#: directives.c:835 | |
| 246 | 246 | msgid "#include nested too deeply" |
| 247 | 247 | msgstr "" |
| 248 | 248 | |
| 249 | −#: directives.c:888 | |
| 249 | +#: directives.c:877 | |
| 250 | 250 | msgid "#include_next in primary source file" |
| 251 | 251 | msgstr "" |
| 252 | 252 | |
| 253 | −#: directives.c:914 | |
| 253 | +#: directives.c:903 | |
| 254 | 254 | #, c-format |
| 255 | 255 | msgid "invalid flag \"%s\" in line directive" |
| 256 | 256 | msgstr "" |
| 257 | 257 | |
| 258 | −#: directives.c:974 | |
| 258 | +#: directives.c:963 | |
| 259 | 259 | msgid "unexpected end of file after #line" |
| 260 | 260 | msgstr "" |
| 261 | 261 | |
| 262 | −#: directives.c:977 | |
| 262 | +#: directives.c:966 | |
| 263 | 263 | #, c-format |
| 264 | 264 | msgid "\"%s\" after #line is not a positive integer" |
| 265 | 265 | msgstr "" |
| 266 | 266 | |
| 267 | −#: directives.c:983 directives.c:985 | |
| 267 | +#: directives.c:972 directives.c:974 | |
| 268 | 268 | msgid "line number out of range" |
| 269 | 269 | msgstr "" |
| 270 | 270 | |
| 271 | −#: directives.c:998 directives.c:1079 | |
| 271 | +#: directives.c:987 directives.c:1068 | |
| 272 | 272 | #, c-format |
| 273 | 273 | msgid "\"%s\" is not a valid filename" |
| 274 | 274 | msgstr "" |
| 275 | 275 | |
| 276 | −#: directives.c:1039 | |
| 276 | +#: directives.c:1028 | |
| 277 | 277 | #, c-format |
| 278 | 278 | msgid "\"%s\" after # is not a positive integer" |
| 279 | 279 | msgstr "" |
| 280 | 280 | |
| 281 | −#: directives.c:1098 | |
| 281 | +#: directives.c:1087 | |
| 282 | 282 | #, c-format |
| 283 | 283 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 284 | 284 | msgstr "" |
| 285 | 285 | |
| 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 | |
| 287 | 287 | #, c-format |
| 288 | 288 | msgid "%s" |
| 289 | 289 | msgstr "" |
| 290 | 290 | |
| 291 | −#: directives.c:1185 | |
| 291 | +#: directives.c:1175 | |
| 292 | 292 | #, fuzzy, c-format |
| 293 | 293 | msgid "invalid #%s directive" |
| 294 | 294 | msgstr "нерэчаісны ініцыялізатар" |
| 295 | 295 | |
| 296 | −#: directives.c:1248 | |
| 296 | +#: directives.c:1238 | |
| 297 | 297 | #, c-format |
| 298 | 298 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 299 | 299 | msgstr "" |
| 300 | 300 | |
| 301 | −#: directives.c:1257 | |
| 301 | +#: directives.c:1247 | |
| 302 | 302 | #, c-format |
| 303 | 303 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 304 | 304 | msgstr "" |
| 305 | 305 | |
| 306 | −#: directives.c:1275 | |
| 306 | +#: directives.c:1265 | |
| 307 | 307 | #, c-format |
| 308 | 308 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 309 | 309 | msgstr "" |
| 310 | 310 | |
| 311 | −#: directives.c:1278 | |
| 311 | +#: directives.c:1268 | |
| 312 | 312 | #, fuzzy, c-format |
| 313 | 313 | msgid "#pragma %s %s is already registered" |
| 314 | 314 | msgstr "Клас \"%s\" ужо існуе" |
| 315 | 315 | |
| 316 | −#: directives.c:1281 | |
| 316 | +#: directives.c:1271 | |
| 317 | 317 | #, c-format |
| 318 | 318 | msgid "#pragma %s is already registered" |
| 319 | 319 | msgstr "" |
| 320 | 320 | |
| 321 | −#: directives.c:1311 | |
| 321 | +#: directives.c:1301 | |
| 322 | 322 | msgid "registering pragma with NULL handler" |
| 323 | 323 | msgstr "" |
| 324 | 324 | |
| 325 | −#: directives.c:1528 | |
| 325 | +#: directives.c:1518 | |
| 326 | 326 | msgid "#pragma once in main file" |
| 327 | 327 | msgstr "" |
| 328 | 328 | |
| 329 | −#: directives.c:1551 | |
| 329 | +#: directives.c:1541 | |
| 330 | 330 | #, fuzzy |
| 331 | 331 | msgid "invalid #pragma push_macro directive" |
| 332 | 332 | msgstr "нерэчаісны ініцыялізатар" |
| 333 | 333 | |
| 334 | −#: directives.c:1606 | |
| 334 | +#: directives.c:1596 | |
| 335 | 335 | #, fuzzy |
| 336 | 336 | msgid "invalid #pragma pop_macro directive" |
| 337 | 337 | msgstr "нерэчаісны ініцыялізатар" |
| 338 | 338 | |
| 339 | −#: directives.c:1661 | |
| 339 | +#: directives.c:1651 | |
| 340 | 340 | msgid "invalid #pragma GCC poison directive" |
| 341 | 341 | msgstr "" |
| 342 | 342 | |
| 343 | −#: directives.c:1670 | |
| 343 | +#: directives.c:1660 | |
| 344 | 344 | #, c-format |
| 345 | 345 | msgid "poisoning existing macro \"%s\"" |
| 346 | 346 | msgstr "" |
| 347 | 347 | |
| 348 | −#: directives.c:1689 | |
| 348 | +#: directives.c:1679 | |
| 349 | 349 | msgid "#pragma system_header ignored outside include file" |
| 350 | 350 | msgstr "" |
| 351 | 351 | |
| 352 | −#: directives.c:1714 | |
| 352 | +#: directives.c:1704 | |
| 353 | 353 | #, fuzzy, c-format |
| 354 | 354 | #| msgid "cannot find source %s" |
| 355 | 355 | msgid "cannot find source file %s" |
| 356 | 356 | msgstr "не магу знайсці крыніцу %s" |
| 357 | 357 | |
| 358 | −#: directives.c:1718 | |
| 358 | +#: directives.c:1708 | |
| 359 | 359 | #, c-format |
| 360 | 360 | msgid "current file is older than %s" |
| 361 | 361 | msgstr "" |
| 362 | 362 | |
| 363 | −#: directives.c:1742 | |
| 363 | +#: directives.c:1732 | |
| 364 | 364 | #, fuzzy, c-format |
| 365 | 365 | msgid "invalid \"#pragma GCC %s\" directive" |
| 366 | 366 | msgstr "нерэчаісны ініцыялізатар" |
| 367 | 367 | |
| 368 | −#: directives.c:1943 | |
| 368 | +#: directives.c:1933 | |
| 369 | 369 | msgid "_Pragma takes a parenthesized string literal" |
| 370 | 370 | msgstr "" |
| 371 | 371 | |
| 372 | −#: directives.c:2064 | |
| 372 | +#: directives.c:2021 | |
| 373 | 373 | msgid "#else without #if" |
| 374 | 374 | msgstr "" |
| 375 | 375 | |
| 376 | −#: directives.c:2069 | |
| 376 | +#: directives.c:2026 | |
| 377 | 377 | msgid "#else after #else" |
| 378 | 378 | msgstr "" |
| 379 | 379 | |
| 380 | −#: directives.c:2071 directives.c:2104 | |
| 380 | +#: directives.c:2028 directives.c:2061 | |
| 381 | 381 | msgid "the conditional began here" |
| 382 | 382 | msgstr "" |
| 383 | 383 | |
| 384 | −#: directives.c:2097 | |
| 384 | +#: directives.c:2054 | |
| 385 | 385 | msgid "#elif without #if" |
| 386 | 386 | msgstr "" |
| 387 | 387 | |
| 388 | −#: directives.c:2102 | |
| 388 | +#: directives.c:2059 | |
| 389 | 389 | msgid "#elif after #else" |
| 390 | 390 | msgstr "" |
| 391 | 391 | |
| 392 | −#: directives.c:2133 | |
| 392 | +#: directives.c:2090 | |
| 393 | 393 | msgid "#endif without #if" |
| 394 | 394 | msgstr "" |
| 395 | 395 | |
| 396 | −#: directives.c:2213 | |
| 396 | +#: directives.c:2166 | |
| 397 | 397 | msgid "missing '(' after predicate" |
| 398 | 398 | msgstr "" |
| 399 | 399 | |
| 400 | −#: directives.c:2228 | |
| 400 | +#: directives.c:2184 | |
| 401 | 401 | msgid "missing ')' to complete answer" |
| 402 | 402 | msgstr "" |
| 403 | 403 | |
| 404 | −#: directives.c:2248 | |
| 404 | +#: directives.c:2196 | |
| 405 | 405 | msgid "predicate's answer is empty" |
| 406 | 406 | msgstr "" |
| 407 | 407 | |
| 408 | −#: directives.c:2275 | |
| 408 | +#: directives.c:2226 | |
| 409 | 409 | msgid "assertion without predicate" |
| 410 | 410 | msgstr "" |
| 411 | 411 | |
| 412 | −#: directives.c:2278 | |
| 412 | +#: directives.c:2229 | |
| 413 | 413 | msgid "predicate must be an identifier" |
| 414 | 414 | msgstr "" |
| 415 | 415 | |
| 416 | −#: directives.c:2364 | |
| 416 | +#: directives.c:2311 | |
| 417 | 417 | #, c-format |
| 418 | 418 | msgid "\"%s\" re-asserted" |
| 419 | 419 | msgstr "" |
| 420 | 420 | |
| 421 | −#: directives.c:2656 | |
| 421 | +#: directives.c:2587 | |
| 422 | 422 | #, c-format |
| 423 | 423 | msgid "unterminated #%s" |
| 424 | 424 | msgstr "" |
| 425 | 425 | |
| 426 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 426 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 427 | 427 | msgid "unterminated comment" |
| 428 | 428 | msgstr "незавершаныя каментарыі" |
| 429 | 429 | |
| 430 | −#: errors.c:284 | |
| 430 | +#: errors.c:291 | |
| 431 | 431 | #, c-format |
| 432 | 432 | msgid "%s: %s" |
| 433 | 433 | msgstr "" |
| 434 | 434 | |
| 435 | −#: errors.c:296 | |
| 435 | +#: errors.c:304 | |
| 436 | 436 | msgid "stdout" |
| 437 | 437 | msgstr "" |
| 438 | 438 | |
| @@ -529,86 +529,86 @@ msgstr "" · 90 unmodified lines | ||
| 529 | 529 | msgid "this use of \"defined\" may not be portable" |
| 530 | 530 | msgstr "" |
| 531 | 531 | |
| 532 | −#: expr.c:1125 | |
| 532 | +#: expr.c:1109 | |
| 533 | 533 | msgid "user-defined literal in preprocessor expression" |
| 534 | 534 | msgstr "" |
| 535 | 535 | |
| 536 | −#: expr.c:1130 | |
| 536 | +#: expr.c:1114 | |
| 537 | 537 | msgid "floating constant in preprocessor expression" |
| 538 | 538 | msgstr "" |
| 539 | 539 | |
| 540 | −#: expr.c:1136 | |
| 540 | +#: expr.c:1120 | |
| 541 | 541 | msgid "imaginary number in preprocessor expression" |
| 542 | 542 | msgstr "" |
| 543 | 543 | |
| 544 | −#: expr.c:1189 | |
| 544 | +#: expr.c:1173 | |
| 545 | 545 | #, c-format |
| 546 | 546 | msgid "\"%s\" is not defined, evaluates to 0" |
| 547 | 547 | msgstr "" |
| 548 | 548 | |
| 549 | −#: expr.c:1202 | |
| 549 | +#: expr.c:1186 | |
| 550 | 550 | msgid "assertions are a GCC extension" |
| 551 | 551 | msgstr "" |
| 552 | 552 | |
| 553 | −#: expr.c:1205 | |
| 553 | +#: expr.c:1189 | |
| 554 | 554 | msgid "assertions are a deprecated extension" |
| 555 | 555 | msgstr "" |
| 556 | 556 | |
| 557 | −#: expr.c:1451 | |
| 557 | +#: expr.c:1435 | |
| 558 | 558 | #, fuzzy, c-format |
| 559 | 559 | #| msgid "unbalanced #endif" |
| 560 | 560 | msgid "unbalanced stack in %s" |
| 561 | 561 | msgstr "незбалансаваны #endif" |
| 562 | 562 | |
| 563 | −#: expr.c:1471 | |
| 563 | +#: expr.c:1455 | |
| 564 | 564 | #, fuzzy, c-format |
| 565 | 565 | #| msgid "impossible operator '%s'" |
| 566 | 566 | msgid "impossible operator '%u'" |
| 567 | 567 | msgstr "немагчымы апэратар '%s'" |
| 568 | 568 | |
| 569 | −#: expr.c:1572 | |
| 569 | +#: expr.c:1556 | |
| 570 | 570 | msgid "missing ')' in expression" |
| 571 | 571 | msgstr "" |
| 572 | 572 | |
| 573 | −#: expr.c:1601 | |
| 573 | +#: expr.c:1585 | |
| 574 | 574 | msgid "'?' without following ':'" |
| 575 | 575 | msgstr "" |
| 576 | 576 | |
| 577 | −#: expr.c:1611 | |
| 577 | +#: expr.c:1595 | |
| 578 | 578 | msgid "integer overflow in preprocessor expression" |
| 579 | 579 | msgstr "" |
| 580 | 580 | |
| 581 | −#: expr.c:1616 | |
| 581 | +#: expr.c:1600 | |
| 582 | 582 | msgid "missing '(' in expression" |
| 583 | 583 | msgstr "" |
| 584 | 584 | |
| 585 | −#: expr.c:1648 | |
| 585 | +#: expr.c:1632 | |
| 586 | 586 | #, c-format |
| 587 | 587 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 588 | 588 | msgstr "" |
| 589 | 589 | |
| 590 | −#: expr.c:1653 | |
| 590 | +#: expr.c:1637 | |
| 591 | 591 | #, c-format |
| 592 | 592 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 593 | 593 | msgstr "" |
| 594 | 594 | |
| 595 | −#: expr.c:1912 | |
| 595 | +#: expr.c:1896 | |
| 596 | 596 | msgid "traditional C rejects the unary plus operator" |
| 597 | 597 | msgstr "" |
| 598 | 598 | |
| 599 | −#: expr.c:2010 | |
| 599 | +#: expr.c:1994 | |
| 600 | 600 | msgid "comma operator in operand of #if" |
| 601 | 601 | msgstr "" |
| 602 | 602 | |
| 603 | −#: expr.c:2146 | |
| 603 | +#: expr.c:2130 | |
| 604 | 604 | msgid "division by zero in #if" |
| 605 | 605 | msgstr "" |
| 606 | 606 | |
| 607 | −#: expr.c:2243 | |
| 607 | +#: expr.c:2227 | |
| 608 | 608 | msgid "operator \"__has_include__\" requires a header string" |
| 609 | 609 | msgstr "" |
| 610 | 610 | |
| 611 | −#: expr.c:2259 | |
| 611 | +#: expr.c:2243 | |
| 612 | 612 | msgid "missing ')' after \"__has_include__\"" |
| 613 | 613 | msgstr "" |
| 614 | 614 | |
| @@ -625,40 +625,40 @@ msgstr "" · 10 unmodified lines | ||
| 625 | 625 | msgid "no include path in which to search for %s" |
| 626 | 626 | msgstr "" |
| 627 | 627 | |
| 628 | −#: files.c:1441 | |
| 628 | +#: files.c:1455 | |
| 629 | 629 | msgid "Multiple include guards may be useful for:\n" |
| 630 | 630 | msgstr "" |
| 631 | 631 | |
| 632 | −#: init.c:565 | |
| 632 | +#: init.c:569 | |
| 633 | 633 | msgid "cppchar_t must be an unsigned type" |
| 634 | 634 | msgstr "" |
| 635 | 635 | |
| 636 | −#: init.c:569 | |
| 636 | +#: init.c:573 | |
| 637 | 637 | #, c-format |
| 638 | 638 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 639 | 639 | msgstr "" |
| 640 | 640 | |
| 641 | −#: init.c:576 | |
| 641 | +#: init.c:580 | |
| 642 | 642 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 643 | 643 | msgstr "" |
| 644 | 644 | |
| 645 | −#: init.c:579 | |
| 645 | +#: init.c:583 | |
| 646 | 646 | msgid "target char is less than 8 bits wide" |
| 647 | 647 | msgstr "" |
| 648 | 648 | |
| 649 | −#: init.c:583 | |
| 649 | +#: init.c:587 | |
| 650 | 650 | msgid "target wchar_t is narrower than target char" |
| 651 | 651 | msgstr "" |
| 652 | 652 | |
| 653 | −#: init.c:587 | |
| 653 | +#: init.c:591 | |
| 654 | 654 | msgid "target int is narrower than target char" |
| 655 | 655 | msgstr "" |
| 656 | 656 | |
| 657 | −#: init.c:592 | |
| 657 | +#: init.c:596 | |
| 658 | 658 | msgid "CPP half-integer narrower than CPP character" |
| 659 | 659 | msgstr "" |
| 660 | 660 | |
| 661 | −#: init.c:596 | |
| 661 | +#: init.c:600 | |
| 662 | 662 | #, c-format |
| 663 | 663 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 664 | 664 | msgstr "" |
| @@ -731,264 +731,265 @@ msgstr "" · 66 unmodified lines | ||
| 731 | 731 | msgid "identifier \"%s\" is a special operator name in C++" |
| 732 | 732 | msgstr "" |
| 733 | 733 | |
| 734 | −#: lex.c:1811 | |
| 734 | +#: lex.c:1826 | |
| 735 | 735 | msgid "raw string delimiter longer than 16 characters" |
| 736 | 736 | msgstr "" |
| 737 | 737 | |
| 738 | −#: lex.c:1815 | |
| 738 | +#: lex.c:1830 | |
| 739 | 739 | msgid "invalid new-line in raw string delimiter" |
| 740 | 740 | msgstr "" |
| 741 | 741 | |
| 742 | −#: lex.c:1819 | |
| 742 | +#: lex.c:1834 | |
| 743 | 743 | #, fuzzy, c-format |
| 744 | 744 | msgid "invalid character '%c' in raw string delimiter" |
| 745 | 745 | msgstr "сімвальная канстанта вельмі доўгая" |
| 746 | 746 | |
| 747 | −#: lex.c:1868 lex.c:1890 | |
| 747 | +#: lex.c:1883 lex.c:1905 | |
| 748 | 748 | #, fuzzy |
| 749 | 749 | #| msgid "unterminated comment" |
| 750 | 750 | msgid "unterminated raw string" |
| 751 | 751 | msgstr "незавершаныя каментарыі" |
| 752 | 752 | |
| 753 | −#: lex.c:1912 lex.c:2043 | |
| 753 | +#: lex.c:1925 lex.c:2054 | |
| 754 | 754 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 755 | 755 | msgstr "" |
| 756 | 756 | |
| 757 | −#: lex.c:2024 | |
| 757 | +#: lex.c:2037 | |
| 758 | 758 | msgid "null character(s) preserved in literal" |
| 759 | 759 | msgstr "" |
| 760 | 760 | |
| 761 | −#: lex.c:2027 | |
| 761 | +#: lex.c:2040 | |
| 762 | 762 | #, c-format |
| 763 | 763 | msgid "missing terminating %c character" |
| 764 | 764 | msgstr "прапушчан завяршаючы сімвал %c" |
| 765 | 765 | |
| 766 | −#: lex.c:2061 | |
| 766 | +#: lex.c:2072 | |
| 767 | 767 | msgid "C++11 requires a space between string literal and macro" |
| 768 | 768 | msgstr "" |
| 769 | 769 | |
| 770 | −#: lex.c:2865 lex.c:2899 | |
| 770 | +#: lex.c:2876 lex.c:2910 | |
| 771 | 771 | msgid "C++ style comments are not allowed in ISO C90" |
| 772 | 772 | msgstr "" |
| 773 | 773 | |
| 774 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 774 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 775 | 775 | msgid "(this will be reported only once per input file)" |
| 776 | 776 | msgstr "" |
| 777 | 777 | |
| 778 | −#: lex.c:2876 | |
| 778 | +#: lex.c:2887 | |
| 779 | 779 | msgid "C++ style comments are incompatible with C90" |
| 780 | 780 | msgstr "" |
| 781 | 781 | |
| 782 | −#: lex.c:2907 | |
| 782 | +#: lex.c:2919 | |
| 783 | 783 | msgid "multi-line comment" |
| 784 | 784 | msgstr "" |
| 785 | 785 | |
| 786 | −#: lex.c:3287 | |
| 786 | +#: lex.c:3299 | |
| 787 | 787 | #, fuzzy, c-format |
| 788 | 788 | msgid "unspellable token %s" |
| 789 | 789 | msgstr "немагу адчыніць файл \"%s\"" |
| 790 | 790 | |
| 791 | −#: macro.c:93 | |
| 791 | +#: macro.c:94 | |
| 792 | 792 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 793 | 793 | msgstr "" |
| 794 | 794 | |
| 795 | −#: macro.c:352 | |
| 795 | +#: macro.c:354 | |
| 796 | 796 | #, c-format |
| 797 | 797 | msgid "macro \"%s\" is not used" |
| 798 | 798 | msgstr "" |
| 799 | 799 | |
| 800 | −#: macro.c:391 macro.c:639 | |
| 800 | +#: macro.c:393 macro.c:641 | |
| 801 | 801 | #, c-format |
| 802 | 802 | msgid "invalid built-in macro \"%s\"" |
| 803 | 803 | msgstr "" |
| 804 | 804 | |
| 805 | −#: macro.c:398 macro.c:500 | |
| 805 | +#: macro.c:400 macro.c:502 | |
| 806 | 806 | #, c-format |
| 807 | 807 | msgid "macro \"%s\" might prevent reproducible builds" |
| 808 | 808 | msgstr "" |
| 809 | 809 | |
| 810 | −#: macro.c:429 | |
| 810 | +#: macro.c:431 | |
| 811 | 811 | #, fuzzy |
| 812 | 812 | msgid "could not determine file timestamp" |
| 813 | 813 | msgstr "не магу знайсці крыніцу %s\n" |
| 814 | 814 | |
| 815 | −#: macro.c:546 | |
| 815 | +#: macro.c:548 | |
| 816 | 816 | #, fuzzy |
| 817 | 817 | #| msgid "Could not open data file %s.\n" |
| 818 | 818 | msgid "could not determine date and time" |
| 819 | 819 | msgstr "Немагчыма адчыніць файл з дадзенымі %s.\n" |
| 820 | 820 | |
| 821 | −#: macro.c:562 | |
| 821 | +#: macro.c:564 | |
| 822 | 822 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 823 | 823 | msgstr "" |
| 824 | 824 | |
| 825 | −#: macro.c:758 | |
| 825 | +#: macro.c:760 | |
| 826 | 826 | msgid "invalid string literal, ignoring final '\\'" |
| 827 | 827 | msgstr "" |
| 828 | 828 | |
| 829 | −#: macro.c:820 | |
| 829 | +#: macro.c:822 | |
| 830 | 830 | #, c-format |
| 831 | 831 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 832 | 832 | msgstr "" |
| 833 | 833 | |
| 834 | −#: macro.c:946 | |
| 834 | +#: macro.c:948 | |
| 835 | 835 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 836 | 836 | msgstr "" |
| 837 | 837 | |
| 838 | −#: macro.c:950 | |
| 838 | +#: macro.c:952 | |
| 839 | 839 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 840 | 840 | msgstr "" |
| 841 | 841 | |
| 842 | −#: macro.c:957 | |
| 842 | +#: macro.c:959 | |
| 843 | 843 | #, c-format |
| 844 | 844 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 845 | 845 | msgstr "" |
| 846 | 846 | |
| 847 | −#: macro.c:962 | |
| 847 | +#: macro.c:964 | |
| 848 | 848 | #, c-format |
| 849 | 849 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 850 | 850 | msgstr "" |
| 851 | 851 | |
| 852 | −#: macro.c:1156 traditional.c:819 | |
| 852 | +#: macro.c:1162 traditional.c:827 | |
| 853 | 853 | #, c-format |
| 854 | 854 | msgid "unterminated argument list invoking macro \"%s\"" |
| 855 | 855 | msgstr "" |
| 856 | 856 | |
| 857 | −#: macro.c:1307 | |
| 857 | +#: macro.c:1304 | |
| 858 | 858 | #, c-format |
| 859 | 859 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 860 | 860 | msgstr "" |
| 861 | 861 | |
| 862 | −#: macro.c:2003 | |
| 862 | +#: macro.c:2083 | |
| 863 | 863 | #, c-format |
| 864 | 864 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 865 | 865 | msgstr "" |
| 866 | 866 | |
| 867 | −#: macro.c:2011 macro.c:2020 | |
| 867 | +#: macro.c:2091 macro.c:2100 | |
| 868 | 868 | #, c-format |
| 869 | 869 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 870 | 870 | msgstr "" |
| 871 | 871 | |
| 872 | −#: macro.c:2984 | |
| 872 | +#: macro.c:3059 | |
| 873 | 873 | #, c-format |
| 874 | 874 | msgid "duplicate macro parameter \"%s\"" |
| 875 | 875 | msgstr "" |
| 876 | 876 | |
| 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 | |
| 878 | 883 | #, c-format |
| 879 | −msgid "\"%s\" may not appear in macro parameter list" | |
| 884 | +msgid "expected ',' or ')', found \"%s\"" | |
| 880 | 885 | msgstr "" |
| 881 | 886 | |
| 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" | |
| 884 | 894 | msgstr "" |
| 885 | 895 | |
| 886 | −#: macro.c:3060 | |
| 887 | −msgid "parameter name missing" | |
| 896 | +#: macro.c:3145 | |
| 897 | +msgid "expected ')' after \"...\"" | |
| 888 | 898 | msgstr "" |
| 889 | 899 | |
| 890 | −#: macro.c:3081 | |
| 900 | +#: macro.c:3202 | |
| 891 | 901 | msgid "anonymous variadic macros were introduced in C++11" |
| 892 | 902 | msgstr "" |
| 893 | 903 | |
| 894 | −#: macro.c:3085 macro.c:3090 | |
| 904 | +#: macro.c:3203 macro.c:3207 | |
| 895 | 905 | msgid "anonymous variadic macros were introduced in C99" |
| 896 | 906 | msgstr "" |
| 897 | 907 | |
| 898 | −#: macro.c:3097 | |
| 908 | +#: macro.c:3213 | |
| 899 | 909 | #, fuzzy |
| 900 | 910 | msgid "ISO C++ does not permit named variadic macros" |
| 901 | 911 | msgstr "ISO C89 не падтрымлівае \"long long\"" |
| 902 | 912 | |
| 903 | −#: macro.c:3100 | |
| 913 | +#: macro.c:3214 | |
| 904 | 914 | msgid "ISO C does not permit named variadic macros" |
| 905 | 915 | msgstr "" |
| 906 | 916 | |
| 907 | −#: macro.c:3110 | |
| 908 | −msgid "missing ')' in macro parameter list" | |
| 909 | −msgstr "" | |
| 910 | − | |
| 911 | −#: macro.c:3161 | |
| 917 | +#: macro.c:3260 | |
| 912 | 918 | msgid "'##' cannot appear at either end of a macro expansion" |
| 913 | 919 | msgstr "" |
| 914 | 920 | |
| 915 | −#: macro.c:3198 | |
| 921 | +#: macro.c:3298 | |
| 916 | 922 | msgid "ISO C++11 requires whitespace after the macro name" |
| 917 | 923 | msgstr "" |
| 918 | 924 | |
| 919 | −#: macro.c:3201 | |
| 925 | +#: macro.c:3299 | |
| 920 | 926 | msgid "ISO C99 requires whitespace after the macro name" |
| 921 | 927 | msgstr "" |
| 922 | 928 | |
| 923 | −#: macro.c:3226 | |
| 929 | +#: macro.c:3323 | |
| 924 | 930 | #, fuzzy |
| 925 | 931 | #| msgid "missing white space after number '%.*s'" |
| 926 | 932 | msgid "missing whitespace after the macro name" |
| 927 | 933 | msgstr "прапушчан прабел пасля нумара \"%.*s\"" |
| 928 | 934 | |
| 929 | −#: macro.c:3263 | |
| 935 | +#: macro.c:3373 | |
| 930 | 936 | msgid "'#' is not followed by a macro parameter" |
| 931 | 937 | msgstr "" |
| 932 | 938 | |
| 933 | −#: macro.c:3430 | |
| 939 | +#: macro.c:3524 | |
| 934 | 940 | #, c-format |
| 935 | 941 | msgid "\"%s\" redefined" |
| 936 | 942 | msgstr "" |
| 937 | 943 | |
| 938 | −#: macro.c:3435 | |
| 944 | +#: macro.c:3529 | |
| 939 | 945 | msgid "this is the location of the previous definition" |
| 940 | 946 | msgstr "" |
| 941 | 947 | |
| 942 | −#: macro.c:3496 | |
| 948 | +#: macro.c:3633 | |
| 943 | 949 | #, c-format |
| 944 | 950 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 945 | 951 | msgstr "" |
| 946 | 952 | |
| 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 | |
| 953 | 954 | msgid "while writing precompiled header" |
| 954 | 955 | msgstr "" |
| 955 | 956 | |
| 956 | −#: pch.c:621 | |
| 957 | +#: pch.c:616 | |
| 957 | 958 | #, c-format |
| 958 | 959 | msgid "%s: not used because `%.*s' is poisoned" |
| 959 | 960 | msgstr "" |
| 960 | 961 | |
| 961 | −#: pch.c:643 | |
| 962 | +#: pch.c:638 | |
| 962 | 963 | #, fuzzy, c-format |
| 963 | 964 | #| msgid "label `%s' used but not defined" |
| 964 | 965 | msgid "%s: not used because `%.*s' not defined" |
| 965 | 966 | msgstr "адмеціна `%s' выкарыстоўвываецца, але ня вызначана" |
| 966 | 967 | |
| 967 | −#: pch.c:655 | |
| 968 | +#: pch.c:650 | |
| 968 | 969 | #, c-format |
| 969 | 970 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 970 | 971 | msgstr "" |
| 971 | 972 | |
| 972 | −#: pch.c:696 | |
| 973 | +#: pch.c:691 | |
| 973 | 974 | #, c-format |
| 974 | 975 | msgid "%s: not used because `%s' is defined" |
| 975 | 976 | msgstr "" |
| 976 | 977 | |
| 977 | −#: pch.c:716 | |
| 978 | +#: pch.c:711 | |
| 978 | 979 | #, c-format |
| 979 | 980 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 980 | 981 | msgstr "" |
| 981 | 982 | |
| 982 | −#: pch.c:725 pch.c:903 | |
| 983 | +#: pch.c:720 pch.c:878 | |
| 983 | 984 | msgid "while reading precompiled header" |
| 984 | 985 | msgstr "" |
| 985 | 986 | |
| 986 | −#: traditional.c:889 | |
| 987 | +#: traditional.c:896 | |
| 987 | 988 | #, c-format |
| 988 | 989 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 989 | 990 | msgstr "" |
| 990 | 991 | |
| 991 | −#: traditional.c:1108 | |
| 992 | +#: traditional.c:1119 | |
| 992 | 993 | msgid "syntax error in macro parameter list" |
| 993 | 994 | msgstr "" |
| 994 | 995 | |
| @@ -2541,10 +2542,6 @@ msgstr "" · 1546 unmodified lines | ||
| 2541 | 2542 | #~ msgid "can't define friend function `%s' in a local class definition" |
| 2542 | 2543 | #~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\"" |
| 2543 | 2544 | |
| 2544 | −#, fuzzy | |
| 2545 | −#~ msgid "template parameters cannot be friends" | |
| 2546 | −#~ msgstr "віртуальныя функцыі не могуць быць сяброўскімі" | |
| 2547 | − | |
| 2548 | 2545 | #~ msgid "invalid use of `::'" |
| 2549 | 2546 | #~ msgstr "нерэчаіснае выкарыстаньне `::'" |
| 2550 | 2547 | |
Binary file not shown.
| @@ -11,7 +11,7 @@ msgid "" · 10 unmodified lines | ||
| 11 | 11 | msgstr "" |
| 12 | 12 | "Project-Id-Version: cpplib-4.0.1\n" |
| 13 | 13 | "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" | |
| 15 | 15 | "PO-Revision-Date: 2005-11-25 22:56+0100\n" |
| 16 | 16 | "Last-Translator: Mateu Gilles <gilles@mateu.org>\n" |
| 17 | 17 | "Language-Team: Catalan <ca@dodds.net>\n" |
| @@ -92,7 +92,7 @@ msgstr "el nom de car · 74 unmodified lines | ||
| 92 | 92 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 93 | 93 | msgstr "el nom de car�cter universal %.*s no �s v�lid a l'inici d'un identificador" |
| 94 | 94 | |
| 95 | −#: charset.c:1181 charset.c:2000 | |
| 95 | +#: charset.c:1181 charset.c:2002 | |
| 96 | 96 | msgid "converting UCN to source character set" |
| 97 | 97 | msgstr "convertint UCN al joc font de car�cters" |
| 98 | 98 | |
| @@ -145,304 +145,304 @@ msgstr "convertint una seq · 46 unmodified lines | ||
| 145 | 145 | msgid "missing open quote" |
| 146 | 146 | msgstr "" |
| 147 | 147 | |
| 148 | −#: charset.c:1827 charset.c:1891 | |
| 148 | +#: charset.c:1829 charset.c:1893 | |
| 149 | 149 | msgid "character constant too long for its type" |
| 150 | 150 | msgstr "constant de car�cter massa gran pel seu tipus" |
| 151 | 151 | |
| 152 | −#: charset.c:1830 | |
| 152 | +#: charset.c:1832 | |
| 153 | 153 | msgid "multi-character character constant" |
| 154 | 154 | msgstr "constant de car�cter amb m�ltiples car�cters" |
| 155 | 155 | |
| 156 | −#: charset.c:1931 | |
| 156 | +#: charset.c:1933 | |
| 157 | 157 | msgid "empty character constant" |
| 158 | 158 | msgstr "constant de car�ter buida" |
| 159 | 159 | |
| 160 | −#: charset.c:2047 | |
| 160 | +#: charset.c:2049 | |
| 161 | 161 | #, c-format |
| 162 | 162 | msgid "failure to convert %s to %s" |
| 163 | 163 | msgstr "fallada convertint %s a %s" |
| 164 | 164 | |
| 165 | −#: directives.c:235 directives.c:278 | |
| 165 | +#: directives.c:229 directives.c:272 | |
| 166 | 166 | #, c-format |
| 167 | 167 | msgid "extra tokens at end of #%s directive" |
| 168 | 168 | msgstr "elements superflus al final de la directiva #%s" |
| 169 | 169 | |
| 170 | −#: directives.c:385 | |
| 170 | +#: directives.c:379 | |
| 171 | 171 | #, c-format |
| 172 | 172 | msgid "#%s is a GCC extension" |
| 173 | 173 | msgstr "#%s �s una extenci� del GCC" |
| 174 | 174 | |
| 175 | −#: directives.c:390 | |
| 175 | +#: directives.c:384 | |
| 176 | 176 | #, fuzzy, c-format |
| 177 | 177 | #| msgid "#%s is a GCC extension" |
| 178 | 178 | msgid "#%s is a deprecated GCC extension" |
| 179 | 179 | msgstr "#%s �s una extenci� del GCC" |
| 180 | 180 | |
| 181 | −#: directives.c:403 | |
| 181 | +#: directives.c:397 | |
| 182 | 182 | msgid "suggest not using #elif in traditional C" |
| 183 | 183 | msgstr "es suggereix no usar #elif en C tradicional" |
| 184 | 184 | |
| 185 | −#: directives.c:406 | |
| 185 | +#: directives.c:400 | |
| 186 | 186 | #, c-format |
| 187 | 187 | msgid "traditional C ignores #%s with the # indented" |
| 188 | 188 | msgstr "C tradicional ignora #%s amb el # indentat" |
| 189 | 189 | |
| 190 | −#: directives.c:410 | |
| 190 | +#: directives.c:404 | |
| 191 | 191 | #, c-format |
| 192 | 192 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 193 | 193 | msgstr "es suggereix ocultar #%s del C tradicional amb el # indentat" |
| 194 | 194 | |
| 195 | −#: directives.c:436 | |
| 195 | +#: directives.c:430 | |
| 196 | 196 | msgid "embedding a directive within macro arguments is not portable" |
| 197 | 197 | msgstr "l'incrustaci� d'una directiva entre arguments de macro no �s portable" |
| 198 | 198 | |
| 199 | −#: directives.c:456 | |
| 199 | +#: directives.c:450 | |
| 200 | 200 | msgid "style of line directive is a GCC extension" |
| 201 | 201 | msgstr "la directiva d'estil de l�nia �s una extenci� del GCC" |
| 202 | 202 | |
| 203 | −#: directives.c:537 | |
| 203 | +#: directives.c:531 | |
| 204 | 204 | #, c-format |
| 205 | 205 | msgid "invalid preprocessing directive #%s" |
| 206 | 206 | msgstr "directiva de preprocessament #%s inv�lida" |
| 207 | 207 | |
| 208 | −#: directives.c:606 | |
| 208 | +#: directives.c:600 | |
| 209 | 209 | msgid "\"defined\" cannot be used as a macro name" |
| 210 | 210 | msgstr "\"defined\" no es pot usar com un nom de macro" |
| 211 | 211 | |
| 212 | −#: directives.c:611 | |
| 212 | +#: directives.c:605 | |
| 213 | 213 | #, fuzzy |
| 214 | 214 | #| msgid "\"defined\" cannot be used as a macro name" |
| 215 | 215 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 216 | 216 | msgstr "\"defined\" no es pot usar com un nom de macro" |
| 217 | 217 | |
| 218 | −#: directives.c:617 | |
| 218 | +#: directives.c:611 | |
| 219 | 219 | #, c-format |
| 220 | 220 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 221 | 221 | msgstr "no es pot usar \"%s\" com un nom de macro perqu� �s un operador en C++" |
| 222 | 222 | |
| 223 | −#: directives.c:620 | |
| 223 | +#: directives.c:614 | |
| 224 | 224 | #, c-format |
| 225 | 225 | msgid "no macro name given in #%s directive" |
| 226 | 226 | msgstr "no es va donar un nom de macro en la directiva #%s" |
| 227 | 227 | |
| 228 | −#: directives.c:623 | |
| 228 | +#: directives.c:617 | |
| 229 | 229 | msgid "macro names must be identifiers" |
| 230 | 230 | msgstr "els noms de macro han de ser identificadors" |
| 231 | 231 | |
| 232 | −#: directives.c:672 directives.c:677 | |
| 232 | +#: directives.c:666 directives.c:671 | |
| 233 | 233 | #, c-format |
| 234 | 234 | msgid "undefining \"%s\"" |
| 235 | 235 | msgstr "esborrant la definici� de \"%s\"" |
| 236 | 236 | |
| 237 | −#: directives.c:732 | |
| 237 | +#: directives.c:727 | |
| 238 | 238 | msgid "missing terminating > character" |
| 239 | 239 | msgstr "falta el car�cter de terminaci� >" |
| 240 | 240 | |
| 241 | −#: directives.c:791 | |
| 241 | +#: directives.c:786 | |
| 242 | 242 | #, c-format |
| 243 | 243 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 244 | 244 | msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>" |
| 245 | 245 | |
| 246 | −#: directives.c:837 | |
| 246 | +#: directives.c:828 | |
| 247 | 247 | #, c-format |
| 248 | 248 | msgid "empty filename in #%s" |
| 249 | 249 | msgstr "nom de fitxer buit en #%s" |
| 250 | 250 | |
| 251 | −#: directives.c:847 | |
| 251 | +#: directives.c:835 | |
| 252 | 252 | msgid "#include nested too deeply" |
| 253 | 253 | msgstr "#include niat amb massa profunditat" |
| 254 | 254 | |
| 255 | −#: directives.c:888 | |
| 255 | +#: directives.c:877 | |
| 256 | 256 | msgid "#include_next in primary source file" |
| 257 | 257 | msgstr "#include_next en el fitxer font primari" |
| 258 | 258 | |
| 259 | −#: directives.c:914 | |
| 259 | +#: directives.c:903 | |
| 260 | 260 | #, c-format |
| 261 | 261 | msgid "invalid flag \"%s\" in line directive" |
| 262 | 262 | msgstr "indicador \"%s\" inv�lid en la directiva de l�nia" |
| 263 | 263 | |
| 264 | −#: directives.c:974 | |
| 264 | +#: directives.c:963 | |
| 265 | 265 | msgid "unexpected end of file after #line" |
| 266 | 266 | msgstr "" |
| 267 | 267 | |
| 268 | −#: directives.c:977 | |
| 268 | +#: directives.c:966 | |
| 269 | 269 | #, c-format |
| 270 | 270 | msgid "\"%s\" after #line is not a positive integer" |
| 271 | 271 | msgstr "\"%s\" despr�s de #line no �s un enter positiu" |
| 272 | 272 | |
| 273 | −#: directives.c:983 directives.c:985 | |
| 273 | +#: directives.c:972 directives.c:974 | |
| 274 | 274 | msgid "line number out of range" |
| 275 | 275 | msgstr "nombre de l�nia fora de rang" |
| 276 | 276 | |
| 277 | −#: directives.c:998 directives.c:1079 | |
| 277 | +#: directives.c:987 directives.c:1068 | |
| 278 | 278 | #, c-format |
| 279 | 279 | msgid "\"%s\" is not a valid filename" |
| 280 | 280 | msgstr "\"%s\" no �s un nom de fitxer v�lid" |
| 281 | 281 | |
| 282 | −#: directives.c:1039 | |
| 282 | +#: directives.c:1028 | |
| 283 | 283 | #, c-format |
| 284 | 284 | msgid "\"%s\" after # is not a positive integer" |
| 285 | 285 | msgstr "\"%s\" despr�s de # no �s un enter positiu" |
| 286 | 286 | |
| 287 | −#: directives.c:1098 | |
| 287 | +#: directives.c:1087 | |
| 288 | 288 | #, c-format |
| 289 | 289 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 290 | 290 | msgstr "" |
| 291 | 291 | |
| 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 | |
| 293 | 293 | #, c-format |
| 294 | 294 | msgid "%s" |
| 295 | 295 | msgstr "" |
| 296 | 296 | |
| 297 | −#: directives.c:1185 | |
| 297 | +#: directives.c:1175 | |
| 298 | 298 | #, fuzzy, c-format |
| 299 | 299 | #| msgid "invalid #ident directive" |
| 300 | 300 | msgid "invalid #%s directive" |
| 301 | 301 | msgstr "directiva #ident inv�lida" |
| 302 | 302 | |
| 303 | −#: directives.c:1248 | |
| 303 | +#: directives.c:1238 | |
| 304 | 304 | #, c-format |
| 305 | 305 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 306 | 306 | msgstr "" |
| 307 | 307 | |
| 308 | −#: directives.c:1257 | |
| 308 | +#: directives.c:1247 | |
| 309 | 309 | #, fuzzy, c-format |
| 310 | 310 | #| msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 311 | 311 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 312 | 312 | msgstr "desant \"%s\" com a pragma i espai de noms de pragma" |
| 313 | 313 | |
| 314 | −#: directives.c:1275 | |
| 314 | +#: directives.c:1265 | |
| 315 | 315 | #, c-format |
| 316 | 316 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 317 | 317 | msgstr "desant \"%s\" com a pragma i espai de noms de pragma" |
| 318 | 318 | |
| 319 | −#: directives.c:1278 | |
| 319 | +#: directives.c:1268 | |
| 320 | 320 | #, c-format |
| 321 | 321 | msgid "#pragma %s %s is already registered" |
| 322 | 322 | msgstr "ja s'ha desat #pragma %s %s" |
| 323 | 323 | |
| 324 | −#: directives.c:1281 | |
| 324 | +#: directives.c:1271 | |
| 325 | 325 | #, c-format |
| 326 | 326 | msgid "#pragma %s is already registered" |
| 327 | 327 | msgstr "ja s'ha desat #pragma %s" |
| 328 | 328 | |
| 329 | −#: directives.c:1311 | |
| 329 | +#: directives.c:1301 | |
| 330 | 330 | msgid "registering pragma with NULL handler" |
| 331 | 331 | msgstr "" |
| 332 | 332 | |
| 333 | −#: directives.c:1528 | |
| 333 | +#: directives.c:1518 | |
| 334 | 334 | msgid "#pragma once in main file" |
| 335 | 335 | msgstr "#pragma una vegada en el fitxer principal" |
| 336 | 336 | |
| 337 | −#: directives.c:1551 | |
| 337 | +#: directives.c:1541 | |
| 338 | 338 | #, fuzzy |
| 339 | 339 | #| msgid "invalid #pragma GCC poison directive" |
| 340 | 340 | msgid "invalid #pragma push_macro directive" |
| 341 | 341 | msgstr "directiva #pragma de GCC enverinada inv�lida" |
| 342 | 342 | |
| 343 | −#: directives.c:1606 | |
| 343 | +#: directives.c:1596 | |
| 344 | 344 | #, fuzzy |
| 345 | 345 | #| msgid "invalid #pragma GCC poison directive" |
| 346 | 346 | msgid "invalid #pragma pop_macro directive" |
| 347 | 347 | msgstr "directiva #pragma de GCC enverinada inv�lida" |
| 348 | 348 | |
| 349 | −#: directives.c:1661 | |
| 349 | +#: directives.c:1651 | |
| 350 | 350 | msgid "invalid #pragma GCC poison directive" |
| 351 | 351 | msgstr "directiva #pragma de GCC enverinada inv�lida" |
| 352 | 352 | |
| 353 | −#: directives.c:1670 | |
| 353 | +#: directives.c:1660 | |
| 354 | 354 | #, c-format |
| 355 | 355 | msgid "poisoning existing macro \"%s\"" |
| 356 | 356 | msgstr "enverinant la macro existent \"%s\"" |
| 357 | 357 | |
| 358 | −#: directives.c:1689 | |
| 358 | +#: directives.c:1679 | |
| 359 | 359 | msgid "#pragma system_header ignored outside include file" |
| 360 | 360 | msgstr "#pragma system_header ignorat fora del fitxer d'inclusi�" |
| 361 | 361 | |
| 362 | −#: directives.c:1714 | |
| 362 | +#: directives.c:1704 | |
| 363 | 363 | #, c-format |
| 364 | 364 | msgid "cannot find source file %s" |
| 365 | 365 | msgstr "no es pot trobar la font %s" |
| 366 | 366 | |
| 367 | −#: directives.c:1718 | |
| 367 | +#: directives.c:1708 | |
| 368 | 368 | #, c-format |
| 369 | 369 | msgid "current file is older than %s" |
| 370 | 370 | msgstr "el fitxer actual �s m�s vell que %s" |
| 371 | 371 | |
| 372 | −#: directives.c:1742 | |
| 372 | +#: directives.c:1732 | |
| 373 | 373 | #, fuzzy, c-format |
| 374 | 374 | #| msgid "invalid #pragma GCC poison directive" |
| 375 | 375 | msgid "invalid \"#pragma GCC %s\" directive" |
| 376 | 376 | msgstr "directiva #pragma de GCC enverinada inv�lida" |
| 377 | 377 | |
| 378 | −#: directives.c:1943 | |
| 378 | +#: directives.c:1933 | |
| 379 | 379 | msgid "_Pragma takes a parenthesized string literal" |
| 380 | 380 | msgstr "_Pragma pren una cadena literal entre par�ntesis" |
| 381 | 381 | |
| 382 | −#: directives.c:2064 | |
| 382 | +#: directives.c:2021 | |
| 383 | 383 | msgid "#else without #if" |
| 384 | 384 | msgstr "#else sense #if" |
| 385 | 385 | |
| 386 | −#: directives.c:2069 | |
| 386 | +#: directives.c:2026 | |
| 387 | 387 | msgid "#else after #else" |
| 388 | 388 | msgstr "#else despr�s de #else" |
| 389 | 389 | |
| 390 | −#: directives.c:2071 directives.c:2104 | |
| 390 | +#: directives.c:2028 directives.c:2061 | |
| 391 | 391 | msgid "the conditional began here" |
| 392 | 392 | msgstr "el condicional va comen�ar aqu�" |
| 393 | 393 | |
| 394 | −#: directives.c:2097 | |
| 394 | +#: directives.c:2054 | |
| 395 | 395 | msgid "#elif without #if" |
| 396 | 396 | msgstr "#elif sense #if" |
| 397 | 397 | |
| 398 | −#: directives.c:2102 | |
| 398 | +#: directives.c:2059 | |
| 399 | 399 | msgid "#elif after #else" |
| 400 | 400 | msgstr "#elif despr�s de #else" |
| 401 | 401 | |
| 402 | −#: directives.c:2133 | |
| 402 | +#: directives.c:2090 | |
| 403 | 403 | msgid "#endif without #if" |
| 404 | 404 | msgstr "#endif sense #if" |
| 405 | 405 | |
| 406 | −#: directives.c:2213 | |
| 406 | +#: directives.c:2166 | |
| 407 | 407 | msgid "missing '(' after predicate" |
| 408 | 408 | msgstr "falta \"(\" abans del predicat" |
| 409 | 409 | |
| 410 | −#: directives.c:2228 | |
| 410 | +#: directives.c:2184 | |
| 411 | 411 | msgid "missing ')' to complete answer" |
| 412 | 412 | msgstr "falta \")\" per a completar la resposta" |
| 413 | 413 | |
| 414 | −#: directives.c:2248 | |
| 414 | +#: directives.c:2196 | |
| 415 | 415 | msgid "predicate's answer is empty" |
| 416 | 416 | msgstr "el predicat de la resposta est� buit" |
| 417 | 417 | |
| 418 | −#: directives.c:2275 | |
| 418 | +#: directives.c:2226 | |
| 419 | 419 | msgid "assertion without predicate" |
| 420 | 420 | msgstr "afirmaci� sense predicat" |
| 421 | 421 | |
| 422 | −#: directives.c:2278 | |
| 422 | +#: directives.c:2229 | |
| 423 | 423 | msgid "predicate must be an identifier" |
| 424 | 424 | msgstr "el predicat ha de ser un identificador" |
| 425 | 425 | |
| 426 | −#: directives.c:2364 | |
| 426 | +#: directives.c:2311 | |
| 427 | 427 | #, c-format |
| 428 | 428 | msgid "\"%s\" re-asserted" |
| 429 | 429 | msgstr "\"%s\" reafirmat" |
| 430 | 430 | |
| 431 | −#: directives.c:2656 | |
| 431 | +#: directives.c:2587 | |
| 432 | 432 | #, c-format |
| 433 | 433 | msgid "unterminated #%s" |
| 434 | 434 | msgstr "#%s sense acabar" |
| 435 | 435 | |
| 436 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 436 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 437 | 437 | msgid "unterminated comment" |
| 438 | 438 | msgstr "comentari sense acabar" |
| 439 | 439 | |
| 440 | −#: errors.c:284 | |
| 440 | +#: errors.c:291 | |
| 441 | 441 | #, c-format |
| 442 | 442 | msgid "%s: %s" |
| 443 | 443 | msgstr "%s: %s" |
| 444 | 444 | |
| 445 | −#: errors.c:296 | |
| 445 | +#: errors.c:304 | |
| 446 | 446 | msgid "stdout" |
| 447 | 447 | msgstr "stdout" |
| 448 | 448 | |
| @@ -552,92 +552,92 @@ msgstr "(\"%s\" · 103 unmodified lines | ||
| 552 | 552 | msgid "this use of \"defined\" may not be portable" |
| 553 | 553 | msgstr "aquest �s de \"defined\" podria no ser portable" |
| 554 | 554 | |
| 555 | −#: expr.c:1125 | |
| 555 | +#: expr.c:1109 | |
| 556 | 556 | #, fuzzy |
| 557 | 557 | #| msgid "integer overflow in preprocessor expression" |
| 558 | 558 | msgid "user-defined literal in preprocessor expression" |
| 559 | 559 | msgstr "desbordament d'enter en l'expressi� del preprocessador" |
| 560 | 560 | |
| 561 | −#: expr.c:1130 | |
| 561 | +#: expr.c:1114 | |
| 562 | 562 | msgid "floating constant in preprocessor expression" |
| 563 | 563 | msgstr "constant de coma flotant en l'expressi� del preprocessador" |
| 564 | 564 | |
| 565 | −#: expr.c:1136 | |
| 565 | +#: expr.c:1120 | |
| 566 | 566 | msgid "imaginary number in preprocessor expression" |
| 567 | 567 | msgstr "nombre imaginari en l'expressi� del preprocessador" |
| 568 | 568 | |
| 569 | −#: expr.c:1189 | |
| 569 | +#: expr.c:1173 | |
| 570 | 570 | #, fuzzy, c-format |
| 571 | 571 | #| msgid "\"%s\" is not defined" |
| 572 | 572 | msgid "\"%s\" is not defined, evaluates to 0" |
| 573 | 573 | msgstr "\"%s\" no �s definit" |
| 574 | 574 | |
| 575 | −#: expr.c:1202 | |
| 575 | +#: expr.c:1186 | |
| 576 | 576 | #, fuzzy |
| 577 | 577 | #| msgid "#%s is a GCC extension" |
| 578 | 578 | msgid "assertions are a GCC extension" |
| 579 | 579 | msgstr "#%s �s una extenci� del GCC" |
| 580 | 580 | |
| 581 | −#: expr.c:1205 | |
| 581 | +#: expr.c:1189 | |
| 582 | 582 | msgid "assertions are a deprecated extension" |
| 583 | 583 | msgstr "" |
| 584 | 584 | |
| 585 | −#: expr.c:1451 | |
| 585 | +#: expr.c:1435 | |
| 586 | 586 | #, fuzzy, c-format |
| 587 | 587 | #| msgid "unbalanced stack in #if" |
| 588 | 588 | msgid "unbalanced stack in %s" |
| 589 | 589 | msgstr "pila desequilibrada en #if" |
| 590 | 590 | |
| 591 | −#: expr.c:1471 | |
| 591 | +#: expr.c:1455 | |
| 592 | 592 | #, c-format |
| 593 | 593 | msgid "impossible operator '%u'" |
| 594 | 594 | msgstr "operador \"%u\" impossible" |
| 595 | 595 | |
| 596 | −#: expr.c:1572 | |
| 596 | +#: expr.c:1556 | |
| 597 | 597 | msgid "missing ')' in expression" |
| 598 | 598 | msgstr "\")\" faltant en l'expressi�" |
| 599 | 599 | |
| 600 | −#: expr.c:1601 | |
| 600 | +#: expr.c:1585 | |
| 601 | 601 | msgid "'?' without following ':'" |
| 602 | 602 | msgstr " \"?\" sense el \":\" seg�ent" |
| 603 | 603 | |
| 604 | −#: expr.c:1611 | |
| 604 | +#: expr.c:1595 | |
| 605 | 605 | msgid "integer overflow in preprocessor expression" |
| 606 | 606 | msgstr "desbordament d'enter en l'expressi� del preprocessador" |
| 607 | 607 | |
| 608 | −#: expr.c:1616 | |
| 608 | +#: expr.c:1600 | |
| 609 | 609 | msgid "missing '(' in expression" |
| 610 | 610 | msgstr "\"(\" faltant en l'expressi�" |
| 611 | 611 | |
| 612 | −#: expr.c:1648 | |
| 612 | +#: expr.c:1632 | |
| 613 | 613 | #, c-format |
| 614 | 614 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 615 | 615 | msgstr "l'operant esquera de \"%s\" canvia el signe quan �s promogut" |
| 616 | 616 | |
| 617 | −#: expr.c:1653 | |
| 617 | +#: expr.c:1637 | |
| 618 | 618 | #, c-format |
| 619 | 619 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 620 | 620 | msgstr "l'operant dreta de \"%s\" canvia el signe quan �s promogut" |
| 621 | 621 | |
| 622 | −#: expr.c:1912 | |
| 622 | +#: expr.c:1896 | |
| 623 | 623 | msgid "traditional C rejects the unary plus operator" |
| 624 | 624 | msgstr "C tradicional rebutja l'operador unari m�s" |
| 625 | 625 | |
| 626 | −#: expr.c:2010 | |
| 626 | +#: expr.c:1994 | |
| 627 | 627 | msgid "comma operator in operand of #if" |
| 628 | 628 | msgstr "operador coma en operant de #if" |
| 629 | 629 | |
| 630 | −#: expr.c:2146 | |
| 630 | +#: expr.c:2130 | |
| 631 | 631 | msgid "division by zero in #if" |
| 632 | 632 | msgstr "divisi� per zero en #if" |
| 633 | 633 | |
| 634 | −#: expr.c:2243 | |
| 634 | +#: expr.c:2227 | |
| 635 | 635 | #, fuzzy |
| 636 | 636 | #| msgid "operator \"defined\" requires an identifier" |
| 637 | 637 | msgid "operator \"__has_include__\" requires a header string" |
| 638 | 638 | msgstr "l'operador \"defined\" requereix un identificador" |
| 639 | 639 | |
| 640 | −#: expr.c:2259 | |
| 640 | +#: expr.c:2243 | |
| 641 | 641 | #, fuzzy |
| 642 | 642 | #| msgid "missing ')' after \"defined\"" |
| 643 | 643 | msgid "missing ')' after \"__has_include__\"" |
| @@ -656,40 +656,40 @@ msgstr "usi -Winvalid-pch per a m · 12 unmodified lines | ||
| 656 | 656 | msgid "no include path in which to search for %s" |
| 657 | 657 | msgstr "no hi ha ruta d'inclusi� en la qual cercar %s" |
| 658 | 658 | |
| 659 | −#: files.c:1441 | |
| 659 | +#: files.c:1455 | |
| 660 | 660 | msgid "Multiple include guards may be useful for:\n" |
| 661 | 661 | msgstr "M�ltiples gu�rdies d'inclusi� poden ser �tils per a:\n" |
| 662 | 662 | |
| 663 | −#: init.c:565 | |
| 663 | +#: init.c:569 | |
| 664 | 664 | msgid "cppchar_t must be an unsigned type" |
| 665 | 665 | msgstr "cppchar_t ha de ser d'un tipus unsigned" |
| 666 | 666 | |
| 667 | −#: init.c:569 | |
| 667 | +#: init.c:573 | |
| 668 | 668 | #, c-format |
| 669 | 669 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 670 | 670 | msgstr "l'aritm�tica del preprocesador t� una precisi� m�xima de %lu bits; l'objectiu requereix %lu bits" |
| 671 | 671 | |
| 672 | −#: init.c:576 | |
| 672 | +#: init.c:580 | |
| 673 | 673 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 674 | 674 | msgstr "l'aritm�tica de CPP ha de ser almenys tan precisa com un int de l'objectiu" |
| 675 | 675 | |
| 676 | −#: init.c:579 | |
| 676 | +#: init.c:583 | |
| 677 | 677 | msgid "target char is less than 8 bits wide" |
| 678 | 678 | msgstr "el char de l'objectiu t� menys de 8 bits d'ampliaria" |
| 679 | 679 | |
| 680 | −#: init.c:583 | |
| 680 | +#: init.c:587 | |
| 681 | 681 | msgid "target wchar_t is narrower than target char" |
| 682 | 682 | msgstr "el wchar_t de l'objectiu �s m�s estret qu'el char de l'objectiu" |
| 683 | 683 | |
| 684 | −#: init.c:587 | |
| 684 | +#: init.c:591 | |
| 685 | 685 | msgid "target int is narrower than target char" |
| 686 | 686 | msgstr "el int de l'objectiu �s m�s estret qu'el char de l'objectiu" |
| 687 | 687 | |
| 688 | −#: init.c:592 | |
| 688 | +#: init.c:596 | |
| 689 | 689 | msgid "CPP half-integer narrower than CPP character" |
| 690 | 690 | msgstr "el half-integer de CPP �s m�s estret que el car�cter de CPP" |
| 691 | 691 | |
| 692 | −#: init.c:596 | |
| 692 | +#: init.c:600 | |
| 693 | 693 | #, c-format |
| 694 | 694 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 695 | 695 | 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 | ||
| 767 | 767 | msgid "identifier \"%s\" is a special operator name in C++" |
| 768 | 768 | msgstr "" |
| 769 | 769 | |
| 770 | −#: lex.c:1811 | |
| 770 | +#: lex.c:1826 | |
| 771 | 771 | msgid "raw string delimiter longer than 16 characters" |
| 772 | 772 | msgstr "" |
| 773 | 773 | |
| 774 | −#: lex.c:1815 | |
| 774 | +#: lex.c:1830 | |
| 775 | 775 | msgid "invalid new-line in raw string delimiter" |
| 776 | 776 | msgstr "" |
| 777 | 777 | |
| 778 | −#: lex.c:1819 | |
| 778 | +#: lex.c:1834 | |
| 779 | 779 | #, fuzzy, c-format |
| 780 | 780 | #| msgid "universal character %.*s is not valid in an identifier" |
| 781 | 781 | msgid "invalid character '%c' in raw string delimiter" |
| 782 | 782 | msgstr "el nom de car�cter universal %.*s no �s v�lid en un identificador" |
| 783 | 783 | |
| 784 | −#: lex.c:1868 lex.c:1890 | |
| 784 | +#: lex.c:1883 lex.c:1905 | |
| 785 | 785 | #, fuzzy |
| 786 | 786 | #| msgid "unterminated #%s" |
| 787 | 787 | msgid "unterminated raw string" |
| 788 | 788 | msgstr "#%s sense acabar" |
| 789 | 789 | |
| 790 | −#: lex.c:1912 lex.c:2043 | |
| 790 | +#: lex.c:1925 lex.c:2054 | |
| 791 | 791 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 792 | 792 | msgstr "" |
| 793 | 793 | |
| 794 | −#: lex.c:2024 | |
| 794 | +#: lex.c:2037 | |
| 795 | 795 | msgid "null character(s) preserved in literal" |
| 796 | 796 | msgstr "car�cter(es) nul(s) preservats en la literal" |
| 797 | 797 | |
| 798 | −#: lex.c:2027 | |
| 798 | +#: lex.c:2040 | |
| 799 | 799 | #, fuzzy, c-format |
| 800 | 800 | #| msgid "missing terminating > character" |
| 801 | 801 | msgid "missing terminating %c character" |
| 802 | 802 | msgstr "falta el car�cter de terminaci� >" |
| 803 | 803 | |
| 804 | −#: lex.c:2061 | |
| 804 | +#: lex.c:2072 | |
| 805 | 805 | msgid "C++11 requires a space between string literal and macro" |
| 806 | 806 | msgstr "" |
| 807 | 807 | |
| 808 | −#: lex.c:2865 lex.c:2899 | |
| 808 | +#: lex.c:2876 lex.c:2910 | |
| 809 | 809 | msgid "C++ style comments are not allowed in ISO C90" |
| 810 | 810 | msgstr "els comentaris d'estil C++ no s�n permesos en ISO C90" |
| 811 | 811 | |
| 812 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 812 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 813 | 813 | msgid "(this will be reported only once per input file)" |
| 814 | 814 | msgstr "(aix� es reportar� solament una vegada per cada fitxer d'entrada)" |
| 815 | 815 | |
| 816 | −#: lex.c:2876 | |
| 816 | +#: lex.c:2887 | |
| 817 | 817 | #, fuzzy |
| 818 | 818 | #| msgid "C++ style comments are not allowed in ISO C90" |
| 819 | 819 | msgid "C++ style comments are incompatible with C90" |
| 820 | 820 | msgstr "els comentaris d'estil C++ no s�n permesos en ISO C90" |
| 821 | 821 | |
| 822 | −#: lex.c:2907 | |
| 822 | +#: lex.c:2919 | |
| 823 | 823 | msgid "multi-line comment" |
| 824 | 824 | msgstr "comentari en m�ltiples l�nies" |
| 825 | 825 | |
| 826 | −#: lex.c:3287 | |
| 826 | +#: lex.c:3299 | |
| 827 | 827 | #, c-format |
| 828 | 828 | msgid "unspellable token %s" |
| 829 | 829 | msgstr "Element %s impronunciable" |
| 830 | 830 | |
| 831 | −#: macro.c:93 | |
| 831 | +#: macro.c:94 | |
| 832 | 832 | #, fuzzy |
| 833 | 833 | #| msgid "'##' cannot appear at either end of a macro expansion" |
| 834 | 834 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 835 | 835 | msgstr "\"##\" no pot apareixer en o al final d'una expansi� de macro" |
| 836 | 836 | |
| 837 | −#: macro.c:352 | |
| 837 | +#: macro.c:354 | |
| 838 | 838 | #, c-format |
| 839 | 839 | msgid "macro \"%s\" is not used" |
| 840 | 840 | msgstr "no s'usa la macro \"%s\"" |
| 841 | 841 | |
| 842 | −#: macro.c:391 macro.c:639 | |
| 842 | +#: macro.c:393 macro.c:641 | |
| 843 | 843 | #, c-format |
| 844 | 844 | msgid "invalid built-in macro \"%s\"" |
| 845 | 845 | msgstr "macro interna \"%s\" inv�lida" |
| 846 | 846 | |
| 847 | −#: macro.c:398 macro.c:500 | |
| 847 | +#: macro.c:400 macro.c:502 | |
| 848 | 848 | #, c-format |
| 849 | 849 | msgid "macro \"%s\" might prevent reproducible builds" |
| 850 | 850 | msgstr "" |
| 851 | 851 | |
| 852 | −#: macro.c:429 | |
| 852 | +#: macro.c:431 | |
| 853 | 853 | #, fuzzy |
| 854 | 854 | #| msgid "could not determine date and time" |
| 855 | 855 | msgid "could not determine file timestamp" |
| 856 | 856 | msgstr "no es pot determinar la data i l'hora" |
| 857 | 857 | |
| 858 | −#: macro.c:546 | |
| 858 | +#: macro.c:548 | |
| 859 | 859 | msgid "could not determine date and time" |
| 860 | 860 | msgstr "no es pot determinar la data i l'hora" |
| 861 | 861 | |
| 862 | −#: macro.c:562 | |
| 862 | +#: macro.c:564 | |
| 863 | 863 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 864 | 864 | msgstr "" |
| 865 | 865 | |
| 866 | −#: macro.c:758 | |
| 866 | +#: macro.c:760 | |
| 867 | 867 | msgid "invalid string literal, ignoring final '\\'" |
| 868 | 868 | msgstr "cadena literal inv�lida, s'ignora el \"\\\" final" |
| 869 | 869 | |
| 870 | −#: macro.c:820 | |
| 870 | +#: macro.c:822 | |
| 871 | 871 | #, c-format |
| 872 | 872 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 873 | 873 | msgstr "enganxar \"%s\" i \"%s\" no d�na un element de preprocessament v�lid" |
| 874 | 874 | |
| 875 | −#: macro.c:946 | |
| 875 | +#: macro.c:948 | |
| 876 | 876 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 877 | 877 | msgstr "" |
| 878 | 878 | |
| 879 | −#: macro.c:950 | |
| 879 | +#: macro.c:952 | |
| 880 | 880 | #, fuzzy |
| 881 | 881 | #| msgid "ISO C99 requires rest arguments to be used" |
| 882 | 882 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 883 | 883 | msgstr "ISO C99 requereix que la resta dels arguments sigui usat" |
| 884 | 884 | |
| 885 | −#: macro.c:957 | |
| 885 | +#: macro.c:959 | |
| 886 | 886 | #, c-format |
| 887 | 887 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 888 | 888 | msgstr "la macro \"%s\" requereix %u arguments, per� nom�s %u passats" |
| 889 | 889 | |
| 890 | −#: macro.c:962 | |
| 890 | +#: macro.c:964 | |
| 891 | 891 | #, c-format |
| 892 | 892 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 893 | 893 | msgstr "la macro \"%s\" va rebre %u arguments, per� en va prendre solament %u" |
| 894 | 894 | |
| 895 | −#: macro.c:1156 traditional.c:819 | |
| 895 | +#: macro.c:1162 traditional.c:827 | |
| 896 | 896 | #, c-format |
| 897 | 897 | msgid "unterminated argument list invoking macro \"%s\"" |
| 898 | 898 | msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\"" |
| 899 | 899 | |
| 900 | −#: macro.c:1307 | |
| 900 | +#: macro.c:1304 | |
| 901 | 901 | #, c-format |
| 902 | 902 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 903 | 903 | msgstr "la funci� de macro \"%s\" s'ha d'usar amb arguments en C tradicional" |
| 904 | 904 | |
| 905 | −#: macro.c:2003 | |
| 905 | +#: macro.c:2083 | |
| 906 | 906 | #, c-format |
| 907 | 907 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 908 | 908 | msgstr "" |
| 909 | 909 | |
| 910 | −#: macro.c:2011 macro.c:2020 | |
| 910 | +#: macro.c:2091 macro.c:2100 | |
| 911 | 911 | #, c-format |
| 912 | 912 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 913 | 913 | msgstr "" |
| 914 | 914 | |
| 915 | −#: macro.c:2984 | |
| 915 | +#: macro.c:3059 | |
| 916 | 916 | #, c-format |
| 917 | 917 | msgid "duplicate macro parameter \"%s\"" |
| 918 | 918 | msgstr "par�metre de macro \"%s\" duplicat" |
| 919 | 919 | |
| 920 | −#: macro.c:3033 | |
| 920 | +#: macro.c:3141 | |
| 921 | 921 | #, 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 "" | |
| 924 | 929 | |
| 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 "" | |
| 928 | 937 | |
| 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 "" | |
| 932 | 941 | |
| 933 | −#: macro.c:3081 | |
| 942 | +#: macro.c:3202 | |
| 934 | 943 | #, fuzzy |
| 935 | 944 | #| msgid "anonymous variadic macros were introduced in C99" |
| 936 | 945 | msgid "anonymous variadic macros were introduced in C++11" |
| 937 | 946 | msgstr "els macros variadic an�nims es van introduir en C99" |
| 938 | 947 | |
| 939 | −#: macro.c:3085 macro.c:3090 | |
| 948 | +#: macro.c:3203 macro.c:3207 | |
| 940 | 949 | msgid "anonymous variadic macros were introduced in C99" |
| 941 | 950 | msgstr "els macros variadic an�nims es van introduir en C99" |
| 942 | 951 | |
| 943 | −#: macro.c:3097 | |
| 952 | +#: macro.c:3213 | |
| 944 | 953 | #, fuzzy |
| 945 | 954 | #| msgid "ISO C does not permit named variadic macros" |
| 946 | 955 | msgid "ISO C++ does not permit named variadic macros" |
| 947 | 956 | msgstr "ISO C no permet macros variadic nomenats" |
| 948 | 957 | |
| 949 | −#: macro.c:3100 | |
| 958 | +#: macro.c:3214 | |
| 950 | 959 | msgid "ISO C does not permit named variadic macros" |
| 951 | 960 | msgstr "ISO C no permet macros variadic nomenats" |
| 952 | 961 | |
| 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 | |
| 958 | 963 | msgid "'##' cannot appear at either end of a macro expansion" |
| 959 | 964 | msgstr "\"##\" no pot apareixer en o al final d'una expansi� de macro" |
| 960 | 965 | |
| 961 | −#: macro.c:3198 | |
| 966 | +#: macro.c:3298 | |
| 962 | 967 | #, fuzzy |
| 963 | 968 | #| msgid "ISO C99 requires whitespace after the macro name" |
| 964 | 969 | msgid "ISO C++11 requires whitespace after the macro name" |
| 965 | 970 | msgstr "ISO C99 requereix espais en blanc despr�s del nom de macro" |
| 966 | 971 | |
| 967 | −#: macro.c:3201 | |
| 972 | +#: macro.c:3299 | |
| 968 | 973 | msgid "ISO C99 requires whitespace after the macro name" |
| 969 | 974 | msgstr "ISO C99 requereix espais en blanc despr�s del nom de macro" |
| 970 | 975 | |
| 971 | −#: macro.c:3226 | |
| 976 | +#: macro.c:3323 | |
| 972 | 977 | msgid "missing whitespace after the macro name" |
| 973 | 978 | msgstr "espais en blanc faltant despr�s del nom de macro" |
| 974 | 979 | |
| 975 | −#: macro.c:3263 | |
| 980 | +#: macro.c:3373 | |
| 976 | 981 | msgid "'#' is not followed by a macro parameter" |
| 977 | 982 | msgstr "\"#\" no �s seguit per un par�metre de macro" |
| 978 | 983 | |
| 979 | −#: macro.c:3430 | |
| 984 | +#: macro.c:3524 | |
| 980 | 985 | #, c-format |
| 981 | 986 | msgid "\"%s\" redefined" |
| 982 | 987 | msgstr "\"%s\" re-definit" |
| 983 | 988 | |
| 984 | −#: macro.c:3435 | |
| 989 | +#: macro.c:3529 | |
| 985 | 990 | msgid "this is the location of the previous definition" |
| 986 | 991 | msgstr "aquesta �s la ubicaci� de la definici� pr�via" |
| 987 | 992 | |
| 988 | −#: macro.c:3496 | |
| 993 | +#: macro.c:3633 | |
| 989 | 994 | #, c-format |
| 990 | 995 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 991 | 996 | msgstr "l'argument de macro \"%s\" hauria de ser convertit en cadena en C traditional" |
| 992 | 997 | |
| 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 | |
| 999 | 999 | msgid "while writing precompiled header" |
| 1000 | 1000 | msgstr "mentre escrivint cap�alera precompilada" |
| 1001 | 1001 | |
| 1002 | −#: pch.c:621 | |
| 1002 | +#: pch.c:616 | |
| 1003 | 1003 | #, fuzzy, c-format |
| 1004 | 1004 | #| msgid "%s: not used because `%s' is defined" |
| 1005 | 1005 | msgid "%s: not used because `%.*s' is poisoned" |
| 1006 | 1006 | msgstr "%s: no utilitzat perqu� \"%s\" �s definit" |
| 1007 | 1007 | |
| 1008 | −#: pch.c:643 | |
| 1008 | +#: pch.c:638 | |
| 1009 | 1009 | #, c-format |
| 1010 | 1010 | msgid "%s: not used because `%.*s' not defined" |
| 1011 | 1011 | msgstr "%s: no utilitzat perqu� \"%.*s\" no est� definit" |
| 1012 | 1012 | |
| 1013 | −#: pch.c:655 | |
| 1013 | +#: pch.c:650 | |
| 1014 | 1014 | #, c-format |
| 1015 | 1015 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 1016 | 1016 | msgstr "%s: no utilitzat perqu� \"%.*s\" est� definit com a \"%s\" i no com a \"%.*s\"" |
| 1017 | 1017 | |
| 1018 | −#: pch.c:696 | |
| 1018 | +#: pch.c:691 | |
| 1019 | 1019 | #, c-format |
| 1020 | 1020 | msgid "%s: not used because `%s' is defined" |
| 1021 | 1021 | msgstr "%s: no utilitzat perqu� \"%s\" �s definit" |
| 1022 | 1022 | |
| 1023 | −#: pch.c:716 | |
| 1023 | +#: pch.c:711 | |
| 1024 | 1024 | #, fuzzy, c-format |
| 1025 | 1025 | #| msgid "%s: not used because `%s' is defined" |
| 1026 | 1026 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 1027 | 1027 | msgstr "%s: no utilitzat perqu� \"%s\" �s definit" |
| 1028 | 1028 | |
| 1029 | −#: pch.c:725 pch.c:903 | |
| 1029 | +#: pch.c:720 pch.c:878 | |
| 1030 | 1030 | msgid "while reading precompiled header" |
| 1031 | 1031 | msgstr "mentre llegint cap�alera precompilada" |
| 1032 | 1032 | |
| 1033 | −#: traditional.c:889 | |
| 1033 | +#: traditional.c:896 | |
| 1034 | 1034 | #, c-format |
| 1035 | 1035 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 1036 | 1036 | msgstr "whilst recursiu detectat en expandint la macro \"%s\"" |
| 1037 | 1037 | |
| 1038 | −#: traditional.c:1108 | |
| 1038 | +#: traditional.c:1119 | |
| 1039 | 1039 | msgid "syntax error in macro parameter list" |
| 1040 | 1040 | msgstr "error sint�ctic en la llista de par�metre de macro" |
| 1041 | 1041 | |
| @@ -1108,3 +1108,18 @@ msgstr "error sint · 66 unmodified lines | ||
| 1108 | 1108 | #~ msgstr "" |
| 1109 | 1109 | #~ ",\n" |
| 1110 | 1110 | #~ " 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" | |
| @@ -8,7 +8,7 @@ msgid "" · 7 unmodified lines | ||
| 8 | 8 | msgstr "" |
| 9 | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
| 10 | 10 | "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" | |
| 12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
| 13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
| 14 | 14 | "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 | ||
| 89 | 89 | msgstr "" |
| 90 | 90 | |
| 91 | 91 | #: charset.c:1181 |
| 92 | −#: charset.c:2000 | |
| 92 | +#: charset.c:2002 | |
| 93 | 93 | msgid "converting UCN to source character set" |
| 94 | 94 | msgstr "" |
| 95 | 95 | |
| @@ -140,289 +140,289 @@ msgstr "" · 44 unmodified lines | ||
| 140 | 140 | msgid "missing open quote" |
| 141 | 141 | msgstr "" |
| 142 | 142 | |
| 143 | −#: charset.c:1827 | |
| 144 | −#: charset.c:1891 | |
| 143 | +#: charset.c:1829 | |
| 144 | +#: charset.c:1893 | |
| 145 | 145 | msgid "character constant too long for its type" |
| 146 | 146 | msgstr "" |
| 147 | 147 | |
| 148 | −#: charset.c:1830 | |
| 148 | +#: charset.c:1832 | |
| 149 | 149 | msgid "multi-character character constant" |
| 150 | 150 | msgstr "" |
| 151 | 151 | |
| 152 | −#: charset.c:1931 | |
| 152 | +#: charset.c:1933 | |
| 153 | 153 | msgid "empty character constant" |
| 154 | 154 | msgstr "" |
| 155 | 155 | |
| 156 | −#: charset.c:2047 | |
| 156 | +#: charset.c:2049 | |
| 157 | 157 | #, c-format |
| 158 | 158 | msgid "failure to convert %s to %s" |
| 159 | 159 | msgstr "" |
| 160 | 160 | |
| 161 | −#: directives.c:235 | |
| 162 | −#: directives.c:278 | |
| 161 | +#: directives.c:229 | |
| 162 | +#: directives.c:272 | |
| 163 | 163 | #, c-format |
| 164 | 164 | msgid "extra tokens at end of #%s directive" |
| 165 | 165 | msgstr "" |
| 166 | 166 | |
| 167 | −#: directives.c:385 | |
| 167 | +#: directives.c:379 | |
| 168 | 168 | #, c-format |
| 169 | 169 | msgid "#%s is a GCC extension" |
| 170 | 170 | msgstr "" |
| 171 | 171 | |
| 172 | −#: directives.c:390 | |
| 172 | +#: directives.c:384 | |
| 173 | 173 | #, c-format |
| 174 | 174 | msgid "#%s is a deprecated GCC extension" |
| 175 | 175 | msgstr "" |
| 176 | 176 | |
| 177 | −#: directives.c:403 | |
| 177 | +#: directives.c:397 | |
| 178 | 178 | msgid "suggest not using #elif in traditional C" |
| 179 | 179 | msgstr "" |
| 180 | 180 | |
| 181 | −#: directives.c:406 | |
| 181 | +#: directives.c:400 | |
| 182 | 182 | #, c-format |
| 183 | 183 | msgid "traditional C ignores #%s with the # indented" |
| 184 | 184 | msgstr "" |
| 185 | 185 | |
| 186 | −#: directives.c:410 | |
| 186 | +#: directives.c:404 | |
| 187 | 187 | #, c-format |
| 188 | 188 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 189 | 189 | msgstr "" |
| 190 | 190 | |
| 191 | −#: directives.c:436 | |
| 191 | +#: directives.c:430 | |
| 192 | 192 | msgid "embedding a directive within macro arguments is not portable" |
| 193 | 193 | msgstr "" |
| 194 | 194 | |
| 195 | −#: directives.c:456 | |
| 195 | +#: directives.c:450 | |
| 196 | 196 | msgid "style of line directive is a GCC extension" |
| 197 | 197 | msgstr "" |
| 198 | 198 | |
| 199 | −#: directives.c:537 | |
| 199 | +#: directives.c:531 | |
| 200 | 200 | #, c-format |
| 201 | 201 | msgid "invalid preprocessing directive #%s" |
| 202 | 202 | msgstr "" |
| 203 | 203 | |
| 204 | −#: directives.c:606 | |
| 204 | +#: directives.c:600 | |
| 205 | 205 | msgid "\"defined\" cannot be used as a macro name" |
| 206 | 206 | msgstr "" |
| 207 | 207 | |
| 208 | −#: directives.c:611 | |
| 208 | +#: directives.c:605 | |
| 209 | 209 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 210 | 210 | msgstr "" |
| 211 | 211 | |
| 212 | −#: directives.c:617 | |
| 212 | +#: directives.c:611 | |
| 213 | 213 | #, c-format |
| 214 | 214 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 215 | 215 | msgstr "" |
| 216 | 216 | |
| 217 | −#: directives.c:620 | |
| 217 | +#: directives.c:614 | |
| 218 | 218 | #, c-format |
| 219 | 219 | msgid "no macro name given in #%s directive" |
| 220 | 220 | msgstr "" |
| 221 | 221 | |
| 222 | −#: directives.c:623 | |
| 222 | +#: directives.c:617 | |
| 223 | 223 | msgid "macro names must be identifiers" |
| 224 | 224 | msgstr "" |
| 225 | 225 | |
| 226 | −#: directives.c:672 | |
| 227 | −#: directives.c:677 | |
| 226 | +#: directives.c:666 | |
| 227 | +#: directives.c:671 | |
| 228 | 228 | #, c-format |
| 229 | 229 | msgid "undefining \"%s\"" |
| 230 | 230 | msgstr "" |
| 231 | 231 | |
| 232 | −#: directives.c:732 | |
| 232 | +#: directives.c:727 | |
| 233 | 233 | msgid "missing terminating > character" |
| 234 | 234 | msgstr "" |
| 235 | 235 | |
| 236 | −#: directives.c:791 | |
| 236 | +#: directives.c:786 | |
| 237 | 237 | #, c-format |
| 238 | 238 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 239 | 239 | msgstr "" |
| 240 | 240 | |
| 241 | −#: directives.c:837 | |
| 241 | +#: directives.c:828 | |
| 242 | 242 | #, c-format |
| 243 | 243 | msgid "empty filename in #%s" |
| 244 | 244 | msgstr "" |
| 245 | 245 | |
| 246 | −#: directives.c:847 | |
| 246 | +#: directives.c:835 | |
| 247 | 247 | msgid "#include nested too deeply" |
| 248 | 248 | msgstr "" |
| 249 | 249 | |
| 250 | −#: directives.c:888 | |
| 250 | +#: directives.c:877 | |
| 251 | 251 | msgid "#include_next in primary source file" |
| 252 | 252 | msgstr "" |
| 253 | 253 | |
| 254 | −#: directives.c:914 | |
| 254 | +#: directives.c:903 | |
| 255 | 255 | #, c-format |
| 256 | 256 | msgid "invalid flag \"%s\" in line directive" |
| 257 | 257 | msgstr "" |
| 258 | 258 | |
| 259 | −#: directives.c:974 | |
| 259 | +#: directives.c:963 | |
| 260 | 260 | msgid "unexpected end of file after #line" |
| 261 | 261 | msgstr "" |
| 262 | 262 | |
| 263 | −#: directives.c:977 | |
| 263 | +#: directives.c:966 | |
| 264 | 264 | #, c-format |
| 265 | 265 | msgid "\"%s\" after #line is not a positive integer" |
| 266 | 266 | msgstr "" |
| 267 | 267 | |
| 268 | −#: directives.c:983 | |
| 269 | −#: directives.c:985 | |
| 268 | +#: directives.c:972 | |
| 269 | +#: directives.c:974 | |
| 270 | 270 | msgid "line number out of range" |
| 271 | 271 | msgstr "" |
| 272 | 272 | |
| 273 | −#: directives.c:998 | |
| 274 | −#: directives.c:1079 | |
| 273 | +#: directives.c:987 | |
| 274 | +#: directives.c:1068 | |
| 275 | 275 | #, c-format |
| 276 | 276 | msgid "\"%s\" is not a valid filename" |
| 277 | 277 | msgstr "" |
| 278 | 278 | |
| 279 | −#: directives.c:1039 | |
| 279 | +#: directives.c:1028 | |
| 280 | 280 | #, c-format |
| 281 | 281 | msgid "\"%s\" after # is not a positive integer" |
| 282 | 282 | msgstr "" |
| 283 | 283 | |
| 284 | −#: directives.c:1098 | |
| 284 | +#: directives.c:1087 | |
| 285 | 285 | #, c-format |
| 286 | 286 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 287 | 287 | msgstr "" |
| 288 | 288 | |
| 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 | |
| 293 | 293 | #, c-format |
| 294 | 294 | msgid "%s" |
| 295 | 295 | msgstr "" |
| 296 | 296 | |
| 297 | −#: directives.c:1185 | |
| 297 | +#: directives.c:1175 | |
| 298 | 298 | #, c-format |
| 299 | 299 | msgid "invalid #%s directive" |
| 300 | 300 | msgstr "" |
| 301 | 301 | |
| 302 | −#: directives.c:1248 | |
| 302 | +#: directives.c:1238 | |
| 303 | 303 | #, c-format |
| 304 | 304 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 305 | 305 | msgstr "" |
| 306 | 306 | |
| 307 | −#: directives.c:1257 | |
| 307 | +#: directives.c:1247 | |
| 308 | 308 | #, c-format |
| 309 | 309 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 310 | 310 | msgstr "" |
| 311 | 311 | |
| 312 | −#: directives.c:1275 | |
| 312 | +#: directives.c:1265 | |
| 313 | 313 | #, c-format |
| 314 | 314 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 315 | 315 | msgstr "" |
| 316 | 316 | |
| 317 | −#: directives.c:1278 | |
| 317 | +#: directives.c:1268 | |
| 318 | 318 | #, c-format |
| 319 | 319 | msgid "#pragma %s %s is already registered" |
| 320 | 320 | msgstr "" |
| 321 | 321 | |
| 322 | −#: directives.c:1281 | |
| 322 | +#: directives.c:1271 | |
| 323 | 323 | #, c-format |
| 324 | 324 | msgid "#pragma %s is already registered" |
| 325 | 325 | msgstr "" |
| 326 | 326 | |
| 327 | −#: directives.c:1311 | |
| 327 | +#: directives.c:1301 | |
| 328 | 328 | msgid "registering pragma with NULL handler" |
| 329 | 329 | msgstr "" |
| 330 | 330 | |
| 331 | −#: directives.c:1528 | |
| 331 | +#: directives.c:1518 | |
| 332 | 332 | msgid "#pragma once in main file" |
| 333 | 333 | msgstr "" |
| 334 | 334 | |
| 335 | −#: directives.c:1551 | |
| 335 | +#: directives.c:1541 | |
| 336 | 336 | msgid "invalid #pragma push_macro directive" |
| 337 | 337 | msgstr "" |
| 338 | 338 | |
| 339 | −#: directives.c:1606 | |
| 339 | +#: directives.c:1596 | |
| 340 | 340 | msgid "invalid #pragma pop_macro directive" |
| 341 | 341 | msgstr "" |
| 342 | 342 | |
| 343 | −#: directives.c:1661 | |
| 343 | +#: directives.c:1651 | |
| 344 | 344 | msgid "invalid #pragma GCC poison directive" |
| 345 | 345 | msgstr "" |
| 346 | 346 | |
| 347 | −#: directives.c:1670 | |
| 347 | +#: directives.c:1660 | |
| 348 | 348 | #, c-format |
| 349 | 349 | msgid "poisoning existing macro \"%s\"" |
| 350 | 350 | msgstr "" |
| 351 | 351 | |
| 352 | −#: directives.c:1689 | |
| 352 | +#: directives.c:1679 | |
| 353 | 353 | msgid "#pragma system_header ignored outside include file" |
| 354 | 354 | msgstr "" |
| 355 | 355 | |
| 356 | −#: directives.c:1714 | |
| 356 | +#: directives.c:1704 | |
| 357 | 357 | #, c-format |
| 358 | 358 | msgid "cannot find source file %s" |
| 359 | 359 | msgstr "" |
| 360 | 360 | |
| 361 | −#: directives.c:1718 | |
| 361 | +#: directives.c:1708 | |
| 362 | 362 | #, c-format |
| 363 | 363 | msgid "current file is older than %s" |
| 364 | 364 | msgstr "" |
| 365 | 365 | |
| 366 | −#: directives.c:1742 | |
| 366 | +#: directives.c:1732 | |
| 367 | 367 | #, c-format |
| 368 | 368 | msgid "invalid \"#pragma GCC %s\" directive" |
| 369 | 369 | msgstr "" |
| 370 | 370 | |
| 371 | −#: directives.c:1943 | |
| 371 | +#: directives.c:1933 | |
| 372 | 372 | msgid "_Pragma takes a parenthesized string literal" |
| 373 | 373 | msgstr "" |
| 374 | 374 | |
| 375 | −#: directives.c:2064 | |
| 375 | +#: directives.c:2021 | |
| 376 | 376 | msgid "#else without #if" |
| 377 | 377 | msgstr "" |
| 378 | 378 | |
| 379 | −#: directives.c:2069 | |
| 379 | +#: directives.c:2026 | |
| 380 | 380 | msgid "#else after #else" |
| 381 | 381 | msgstr "" |
| 382 | 382 | |
| 383 | −#: directives.c:2071 | |
| 384 | −#: directives.c:2104 | |
| 383 | +#: directives.c:2028 | |
| 384 | +#: directives.c:2061 | |
| 385 | 385 | msgid "the conditional began here" |
| 386 | 386 | msgstr "" |
| 387 | 387 | |
| 388 | −#: directives.c:2097 | |
| 388 | +#: directives.c:2054 | |
| 389 | 389 | msgid "#elif without #if" |
| 390 | 390 | msgstr "" |
| 391 | 391 | |
| 392 | −#: directives.c:2102 | |
| 392 | +#: directives.c:2059 | |
| 393 | 393 | msgid "#elif after #else" |
| 394 | 394 | msgstr "" |
| 395 | 395 | |
| 396 | −#: directives.c:2133 | |
| 396 | +#: directives.c:2090 | |
| 397 | 397 | msgid "#endif without #if" |
| 398 | 398 | msgstr "" |
| 399 | 399 | |
| 400 | −#: directives.c:2213 | |
| 400 | +#: directives.c:2166 | |
| 401 | 401 | msgid "missing '(' after predicate" |
| 402 | 402 | msgstr "" |
| 403 | 403 | |
| 404 | −#: directives.c:2228 | |
| 404 | +#: directives.c:2184 | |
| 405 | 405 | msgid "missing ')' to complete answer" |
| 406 | 406 | msgstr "" |
| 407 | 407 | |
| 408 | −#: directives.c:2248 | |
| 408 | +#: directives.c:2196 | |
| 409 | 409 | msgid "predicate's answer is empty" |
| 410 | 410 | msgstr "" |
| 411 | 411 | |
| 412 | −#: directives.c:2275 | |
| 412 | +#: directives.c:2226 | |
| 413 | 413 | msgid "assertion without predicate" |
| 414 | 414 | msgstr "" |
| 415 | 415 | |
| 416 | −#: directives.c:2278 | |
| 416 | +#: directives.c:2229 | |
| 417 | 417 | msgid "predicate must be an identifier" |
| 418 | 418 | msgstr "" |
| 419 | 419 | |
| 420 | −#: directives.c:2364 | |
| 420 | +#: directives.c:2311 | |
| 421 | 421 | #, c-format |
| 422 | 422 | msgid "\"%s\" re-asserted" |
| 423 | 423 | msgstr "" |
| 424 | 424 | |
| 425 | −#: directives.c:2656 | |
| 425 | +#: directives.c:2587 | |
| 426 | 426 | #, c-format |
| 427 | 427 | msgid "unterminated #%s" |
| 428 | 428 | msgstr "" |
| @@ -433,12 +433,12 @@ msgstr "" · 4 unmodified lines | ||
| 433 | 433 | msgid "unterminated comment" |
| 434 | 434 | msgstr "" |
| 435 | 435 | |
| 436 | −#: errors.c:284 | |
| 436 | +#: errors.c:291 | |
| 437 | 437 | #, c-format |
| 438 | 438 | msgid "%s: %s" |
| 439 | 439 | msgstr "" |
| 440 | 440 | |
| 441 | −#: errors.c:296 | |
| 441 | +#: errors.c:304 | |
| 442 | 442 | msgid "stdout" |
| 443 | 443 | msgstr "" |
| 444 | 444 | |
| @@ -533,84 +533,84 @@ msgstr "" · 88 unmodified lines | ||
| 533 | 533 | msgid "this use of \"defined\" may not be portable" |
| 534 | 534 | msgstr "" |
| 535 | 535 | |
| 536 | −#: expr.c:1125 | |
| 536 | +#: expr.c:1109 | |
| 537 | 537 | msgid "user-defined literal in preprocessor expression" |
| 538 | 538 | msgstr "" |
| 539 | 539 | |
| 540 | −#: expr.c:1130 | |
| 540 | +#: expr.c:1114 | |
| 541 | 541 | msgid "floating constant in preprocessor expression" |
| 542 | 542 | msgstr "" |
| 543 | 543 | |
| 544 | −#: expr.c:1136 | |
| 544 | +#: expr.c:1120 | |
| 545 | 545 | msgid "imaginary number in preprocessor expression" |
| 546 | 546 | msgstr "" |
| 547 | 547 | |
| 548 | −#: expr.c:1189 | |
| 548 | +#: expr.c:1173 | |
| 549 | 549 | #, c-format |
| 550 | 550 | msgid "\"%s\" is not defined, evaluates to 0" |
| 551 | 551 | msgstr "" |
| 552 | 552 | |
| 553 | −#: expr.c:1202 | |
| 553 | +#: expr.c:1186 | |
| 554 | 554 | msgid "assertions are a GCC extension" |
| 555 | 555 | msgstr "" |
| 556 | 556 | |
| 557 | −#: expr.c:1205 | |
| 557 | +#: expr.c:1189 | |
| 558 | 558 | msgid "assertions are a deprecated extension" |
| 559 | 559 | msgstr "" |
| 560 | 560 | |
| 561 | −#: expr.c:1451 | |
| 561 | +#: expr.c:1435 | |
| 562 | 562 | #, c-format |
| 563 | 563 | msgid "unbalanced stack in %s" |
| 564 | 564 | msgstr "" |
| 565 | 565 | |
| 566 | −#: expr.c:1471 | |
| 566 | +#: expr.c:1455 | |
| 567 | 567 | #, c-format |
| 568 | 568 | msgid "impossible operator '%u'" |
| 569 | 569 | msgstr "" |
| 570 | 570 | |
| 571 | −#: expr.c:1572 | |
| 571 | +#: expr.c:1556 | |
| 572 | 572 | msgid "missing ')' in expression" |
| 573 | 573 | msgstr "" |
| 574 | 574 | |
| 575 | −#: expr.c:1601 | |
| 575 | +#: expr.c:1585 | |
| 576 | 576 | msgid "'?' without following ':'" |
| 577 | 577 | msgstr "" |
| 578 | 578 | |
| 579 | −#: expr.c:1611 | |
| 579 | +#: expr.c:1595 | |
| 580 | 580 | msgid "integer overflow in preprocessor expression" |
| 581 | 581 | msgstr "" |
| 582 | 582 | |
| 583 | −#: expr.c:1616 | |
| 583 | +#: expr.c:1600 | |
| 584 | 584 | msgid "missing '(' in expression" |
| 585 | 585 | msgstr "" |
| 586 | 586 | |
| 587 | −#: expr.c:1648 | |
| 587 | +#: expr.c:1632 | |
| 588 | 588 | #, c-format |
| 589 | 589 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 590 | 590 | msgstr "" |
| 591 | 591 | |
| 592 | −#: expr.c:1653 | |
| 592 | +#: expr.c:1637 | |
| 593 | 593 | #, c-format |
| 594 | 594 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 595 | 595 | msgstr "" |
| 596 | 596 | |
| 597 | −#: expr.c:1912 | |
| 597 | +#: expr.c:1896 | |
| 598 | 598 | msgid "traditional C rejects the unary plus operator" |
| 599 | 599 | msgstr "" |
| 600 | 600 | |
| 601 | −#: expr.c:2010 | |
| 601 | +#: expr.c:1994 | |
| 602 | 602 | msgid "comma operator in operand of #if" |
| 603 | 603 | msgstr "" |
| 604 | 604 | |
| 605 | −#: expr.c:2146 | |
| 605 | +#: expr.c:2130 | |
| 606 | 606 | msgid "division by zero in #if" |
| 607 | 607 | msgstr "" |
| 608 | 608 | |
| 609 | −#: expr.c:2243 | |
| 609 | +#: expr.c:2227 | |
| 610 | 610 | msgid "operator \"__has_include__\" requires a header string" |
| 611 | 611 | msgstr "" |
| 612 | 612 | |
| 613 | −#: expr.c:2259 | |
| 613 | +#: expr.c:2243 | |
| 614 | 614 | msgid "missing ')' after \"__has_include__\"" |
| 615 | 615 | msgstr "" |
| 616 | 616 | |
| @@ -627,42 +627,42 @@ msgstr "" · 10 unmodified lines | ||
| 627 | 627 | msgid "no include path in which to search for %s" |
| 628 | 628 | msgstr "" |
| 629 | 629 | |
| 630 | −#: files.c:1441 | |
| 630 | +#: files.c:1455 | |
| 631 | 631 | msgid "Multiple include guards may be useful for:\n" |
| 632 | 632 | msgstr "" |
| 633 | 633 | |
| 634 | −#: init.c:565 | |
| 634 | +#: init.c:569 | |
| 635 | 635 | msgid "cppchar_t must be an unsigned type" |
| 636 | 636 | msgstr "" |
| 637 | 637 | |
| 638 | −#: init.c:569 | |
| 638 | +#: init.c:573 | |
| 639 | 639 | #, c-format |
| 640 | 640 | msgid "" |
| 641 | 641 | "preprocessor arithmetic has maximum precision of %lu bits; target requires " |
| 642 | 642 | "%lu bits" |
| 643 | 643 | msgstr "" |
| 644 | 644 | |
| 645 | −#: init.c:576 | |
| 645 | +#: init.c:580 | |
| 646 | 646 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 647 | 647 | msgstr "" |
| 648 | 648 | |
| 649 | −#: init.c:579 | |
| 649 | +#: init.c:583 | |
| 650 | 650 | msgid "target char is less than 8 bits wide" |
| 651 | 651 | msgstr "" |
| 652 | 652 | |
| 653 | −#: init.c:583 | |
| 653 | +#: init.c:587 | |
| 654 | 654 | msgid "target wchar_t is narrower than target char" |
| 655 | 655 | msgstr "" |
| 656 | 656 | |
| 657 | −#: init.c:587 | |
| 657 | +#: init.c:591 | |
| 658 | 658 | msgid "target int is narrower than target char" |
| 659 | 659 | msgstr "" |
| 660 | 660 | |
| 661 | −#: init.c:592 | |
| 661 | +#: init.c:596 | |
| 662 | 662 | msgid "CPP half-integer narrower than CPP character" |
| 663 | 663 | msgstr "" |
| 664 | 664 | |
| 665 | −#: init.c:596 | |
| 665 | +#: init.c:600 | |
| 666 | 666 | #, c-format |
| 667 | 667 | msgid "" |
| 668 | 668 | "CPP on this host cannot handle wide character constants over %lu bits, but " |
| @@ -785,7 +785,7 @@ msgstr "" · 116 unmodified lines | ||
| 785 | 785 | |
| 786 | 786 | #: lex.c:2878 |
| 787 | 787 | #: lex.c:2889 |
| 788 | −#: lex.c:2912 | |
| 788 | +#: lex.c:2913 | |
| 789 | 789 | msgid "(this will be reported only once per input file)" |
| 790 | 790 | msgstr "" |
| 791 | 791 | |
| @@ -793,16 +793,16 @@ msgstr "" · 1 unmodified line | ||
| 793 | 793 | msgid "C++ style comments are incompatible with C90" |
| 794 | 794 | msgstr "" |
| 795 | 795 | |
| 796 | −#: lex.c:2918 | |
| 796 | +#: lex.c:2919 | |
| 797 | 797 | msgid "multi-line comment" |
| 798 | 798 | msgstr "" |
| 799 | 799 | |
| 800 | −#: lex.c:3298 | |
| 800 | +#: lex.c:3299 | |
| 801 | 801 | #, c-format |
| 802 | 802 | msgid "unspellable token %s" |
| 803 | 803 | msgstr "" |
| 804 | 804 | |
| 805 | −#: macro.c:93 | |
| 805 | +#: macro.c:94 | |
| 806 | 806 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 807 | 807 | msgstr "" |
| 808 | 808 | |
| @@ -864,154 +864,154 @@ msgstr "" · 55 unmodified lines | ||
| 864 | 864 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 865 | 865 | msgstr "" |
| 866 | 866 | |
| 867 | −#: macro.c:1158 | |
| 867 | +#: macro.c:1162 | |
| 868 | 868 | #: traditional.c:827 |
| 869 | 869 | #, c-format |
| 870 | 870 | msgid "unterminated argument list invoking macro \"%s\"" |
| 871 | 871 | msgstr "" |
| 872 | 872 | |
| 873 | −#: macro.c:1309 | |
| 873 | +#: macro.c:1304 | |
| 874 | 874 | #, c-format |
| 875 | 875 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 876 | 876 | msgstr "" |
| 877 | 877 | |
| 878 | −#: macro.c:2098 | |
| 878 | +#: macro.c:2083 | |
| 879 | 879 | #, c-format |
| 880 | 880 | msgid "" |
| 881 | 881 | "invoking macro %s argument %d: empty macro arguments are undefined in ISO C+" |
| 882 | 882 | "+98" |
| 883 | 883 | msgstr "" |
| 884 | 884 | |
| 885 | −#: macro.c:2106 | |
| 886 | −#: macro.c:2115 | |
| 885 | +#: macro.c:2091 | |
| 886 | +#: macro.c:2100 | |
| 887 | 887 | #, c-format |
| 888 | 888 | msgid "" |
| 889 | 889 | "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 890 | 890 | msgstr "" |
| 891 | 891 | |
| 892 | −#: macro.c:3073 | |
| 892 | +#: macro.c:3059 | |
| 893 | 893 | #, c-format |
| 894 | 894 | msgid "duplicate macro parameter \"%s\"" |
| 895 | 895 | msgstr "" |
| 896 | 896 | |
| 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 | |
| 898 | 903 | #, 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" | |
| 900 | 909 | msgstr "" |
| 901 | 910 | |
| 902 | −#: macro.c:3130 | |
| 903 | −msgid "macro parameters must be comma-separated" | |
| 911 | +#: macro.c:3144 | |
| 912 | +msgid "expected ')' before end of line" | |
| 904 | 913 | msgstr "" |
| 905 | 914 | |
| 906 | −#: macro.c:3149 | |
| 907 | −msgid "parameter name missing" | |
| 915 | +#: macro.c:3145 | |
| 916 | +msgid "expected ')' after \"...\"" | |
| 908 | 917 | msgstr "" |
| 909 | 918 | |
| 910 | −#: macro.c:3170 | |
| 919 | +#: macro.c:3202 | |
| 911 | 920 | msgid "anonymous variadic macros were introduced in C++11" |
| 912 | 921 | msgstr "" |
| 913 | 922 | |
| 914 | −#: macro.c:3174 | |
| 915 | −#: macro.c:3179 | |
| 923 | +#: macro.c:3203 | |
| 924 | +#: macro.c:3207 | |
| 916 | 925 | msgid "anonymous variadic macros were introduced in C99" |
| 917 | 926 | msgstr "" |
| 918 | 927 | |
| 919 | −#: macro.c:3186 | |
| 928 | +#: macro.c:3213 | |
| 920 | 929 | msgid "ISO C++ does not permit named variadic macros" |
| 921 | 930 | msgstr "" |
| 922 | 931 | |
| 923 | −#: macro.c:3189 | |
| 932 | +#: macro.c:3214 | |
| 924 | 933 | msgid "ISO C does not permit named variadic macros" |
| 925 | 934 | msgstr "" |
| 926 | 935 | |
| 927 | −#: macro.c:3199 | |
| 928 | −msgid "missing ')' in macro parameter list" | |
| 929 | −msgstr "" | |
| 930 | − | |
| 931 | −#: macro.c:3250 | |
| 936 | +#: macro.c:3260 | |
| 932 | 937 | msgid "'##' cannot appear at either end of a macro expansion" |
| 933 | 938 | msgstr "" |
| 934 | 939 | |
| 935 | −#: macro.c:3287 | |
| 940 | +#: macro.c:3298 | |
| 936 | 941 | msgid "ISO C++11 requires whitespace after the macro name" |
| 937 | 942 | msgstr "" |
| 938 | 943 | |
| 939 | −#: macro.c:3290 | |
| 944 | +#: macro.c:3299 | |
| 940 | 945 | msgid "ISO C99 requires whitespace after the macro name" |
| 941 | 946 | msgstr "" |
| 942 | 947 | |
| 943 | −#: macro.c:3315 | |
| 948 | +#: macro.c:3323 | |
| 944 | 949 | msgid "missing whitespace after the macro name" |
| 945 | 950 | msgstr "" |
| 946 | 951 | |
| 947 | −#: macro.c:3352 | |
| 952 | +#: macro.c:3373 | |
| 948 | 953 | msgid "'#' is not followed by a macro parameter" |
| 949 | 954 | msgstr "" |
| 950 | 955 | |
| 951 | −#: macro.c:3519 | |
| 956 | +#: macro.c:3524 | |
| 952 | 957 | #, c-format |
| 953 | 958 | msgid "\"%s\" redefined" |
| 954 | 959 | msgstr "" |
| 955 | 960 | |
| 956 | −#: macro.c:3524 | |
| 961 | +#: macro.c:3529 | |
| 957 | 962 | msgid "this is the location of the previous definition" |
| 958 | 963 | msgstr "" |
| 959 | 964 | |
| 960 | −#: macro.c:3585 | |
| 965 | +#: macro.c:3633 | |
| 961 | 966 | #, c-format |
| 962 | 967 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 963 | 968 | msgstr "" |
| 964 | 969 | |
| 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 | |
| 977 | 977 | msgid "while writing precompiled header" |
| 978 | 978 | msgstr "" |
| 979 | 979 | |
| 980 | −#: pch.c:621 | |
| 980 | +#: pch.c:616 | |
| 981 | 981 | #, c-format |
| 982 | 982 | msgid "%s: not used because `%.*s' is poisoned" |
| 983 | 983 | msgstr "" |
| 984 | 984 | |
| 985 | −#: pch.c:643 | |
| 985 | +#: pch.c:638 | |
| 986 | 986 | #, c-format |
| 987 | 987 | msgid "%s: not used because `%.*s' not defined" |
| 988 | 988 | msgstr "" |
| 989 | 989 | |
| 990 | −#: pch.c:655 | |
| 990 | +#: pch.c:650 | |
| 991 | 991 | #, c-format |
| 992 | 992 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 993 | 993 | msgstr "" |
| 994 | 994 | |
| 995 | −#: pch.c:696 | |
| 995 | +#: pch.c:691 | |
| 996 | 996 | #, c-format |
| 997 | 997 | msgid "%s: not used because `%s' is defined" |
| 998 | 998 | msgstr "" |
| 999 | 999 | |
| 1000 | −#: pch.c:716 | |
| 1000 | +#: pch.c:711 | |
| 1001 | 1001 | #, c-format |
| 1002 | 1002 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 1003 | 1003 | msgstr "" |
| 1004 | 1004 | |
| 1005 | −#: pch.c:725 | |
| 1006 | −#: pch.c:903 | |
| 1005 | +#: pch.c:720 | |
| 1006 | +#: pch.c:878 | |
| 1007 | 1007 | msgid "while reading precompiled header" |
| 1008 | 1008 | msgstr "" |
| 1009 | 1009 | |
| 1010 | −#: traditional.c:897 | |
| 1010 | +#: traditional.c:896 | |
| 1011 | 1011 | #, c-format |
| 1012 | 1012 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 1013 | 1013 | msgstr "" |
| 1014 | 1014 | |
| 1015 | −#: traditional.c:1116 | |
| 1015 | +#: traditional.c:1119 | |
| 1016 | 1016 | msgid "syntax error in macro parameter list" |
| 1017 | 1017 | msgstr "" |
Binary file not shown.
| @@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Danish version of cpplib. |
| 2 | −# Copyright (C) 2018 Free Software Foundation, Inc. | |
| 2 | +# Copyright (C) 2019 Free Software Foundation, Inc. | |
| 3 | 3 | # This file is distributed under the same license as the gcc package. |
| 4 | 4 | # 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. | |
| 6 | 6 | # |
| 7 | 7 | # Konventioner: |
| 8 | 8 | # |
| @@ -128,10 +128,10 @@ · 119 unmodified lines | ||
| 128 | 128 | # |
| 129 | 129 | msgid "" |
| 130 | 130 | msgstr "" |
| 131 | −"Project-Id-Version: cpplib 8.1-b20180128\n" | |
| 131 | +"Project-Id-Version: cpplib 9.1-b20190203\n" | |
| 132 | 132 | "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" | |
| 135 | 135 | "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n" |
| 136 | 136 | "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" |
| 137 | 137 | "Language: da\n" |
| @@ -209,7 +209,7 @@ msgstr "universelt tegn %.*s er ikke gyldigt i et kaldenavn" · 71 unmodified lines | ||
| 209 | 209 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 210 | 210 | msgstr "universelt tegn %.*s er ikke gyldigt i starten af et kaldenavn" |
| 211 | 211 | |
| 212 | −#: charset.c:1181 charset.c:2000 | |
| 212 | +#: charset.c:1181 charset.c:2002 | |
| 213 | 213 | msgid "converting UCN to source character set" |
| 214 | 214 | msgstr "konverterer UCN til et kildetegnsæt" |
| 215 | 215 | |
| @@ -260,294 +260,294 @@ msgstr "konverterer undvigesekvens til kørselstegnsæt" · 44 unmodified lines | ||
| 260 | 260 | msgid "missing open quote" |
| 261 | 261 | msgstr "manglende indledende citationstegn" |
| 262 | 262 | |
| 263 | −#: charset.c:1827 charset.c:1891 | |
| 263 | +#: charset.c:1829 charset.c:1893 | |
| 264 | 264 | msgid "character constant too long for its type" |
| 265 | 265 | msgstr "tegnkonstanten er for lang for dens type" |
| 266 | 266 | |
| 267 | −#: charset.c:1830 | |
| 267 | +#: charset.c:1832 | |
| 268 | 268 | msgid "multi-character character constant" |
| 269 | 269 | msgstr "flerbyte-tegnkonstant" |
| 270 | 270 | |
| 271 | −#: charset.c:1931 | |
| 271 | +#: charset.c:1933 | |
| 272 | 272 | msgid "empty character constant" |
| 273 | 273 | msgstr "tom tegnkonstant" |
| 274 | 274 | |
| 275 | −#: charset.c:2047 | |
| 275 | +#: charset.c:2049 | |
| 276 | 276 | #, c-format |
| 277 | 277 | msgid "failure to convert %s to %s" |
| 278 | 278 | msgstr "kunne ikke konvertere %s til %s" |
| 279 | 279 | |
| 280 | −#: directives.c:235 directives.c:278 | |
| 280 | +#: directives.c:229 directives.c:272 | |
| 281 | 281 | #, c-format |
| 282 | 282 | msgid "extra tokens at end of #%s directive" |
| 283 | 283 | msgstr "ekstra symboler i slutningen af #%s-direktiv" |
| 284 | 284 | |
| 285 | −#: directives.c:385 | |
| 285 | +#: directives.c:379 | |
| 286 | 286 | #, c-format |
| 287 | 287 | msgid "#%s is a GCC extension" |
| 288 | 288 | msgstr "#%s er en GCC-udvidelse" |
| 289 | 289 | |
| 290 | −#: directives.c:390 | |
| 290 | +#: directives.c:384 | |
| 291 | 291 | #, c-format |
| 292 | 292 | msgid "#%s is a deprecated GCC extension" |
| 293 | 293 | msgstr "#%s er en forældet GCC-udvidelse" |
| 294 | 294 | |
| 295 | −#: directives.c:403 | |
| 295 | +#: directives.c:397 | |
| 296 | 296 | msgid "suggest not using #elif in traditional C" |
| 297 | 297 | msgstr "foreslår undladelse af brug af #elif i traditionel C" |
| 298 | 298 | |
| 299 | −#: directives.c:406 | |
| 299 | +#: directives.c:400 | |
| 300 | 300 | #, c-format |
| 301 | 301 | msgid "traditional C ignores #%s with the # indented" |
| 302 | 302 | msgstr "traditionel C ignorerer #%s når # er indrykket" |
| 303 | 303 | |
| 304 | −#: directives.c:410 | |
| 304 | +#: directives.c:404 | |
| 305 | 305 | #, c-format |
| 306 | 306 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 307 | 307 | msgstr "foreslår at skjule #%s fra traditionel C vha. indrykket #" |
| 308 | 308 | |
| 309 | −#: directives.c:436 | |
| 309 | +#: directives.c:430 | |
| 310 | 310 | msgid "embedding a directive within macro arguments is not portable" |
| 311 | 311 | msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt" |
| 312 | 312 | |
| 313 | −#: directives.c:456 | |
| 313 | +#: directives.c:450 | |
| 314 | 314 | msgid "style of line directive is a GCC extension" |
| 315 | 315 | msgstr "linjestilsdirektiv er en GCC-udvidelse" |
| 316 | 316 | |
| 317 | −#: directives.c:537 | |
| 317 | +#: directives.c:531 | |
| 318 | 318 | #, c-format |
| 319 | 319 | msgid "invalid preprocessing directive #%s" |
| 320 | 320 | msgstr "ugyldigt præprocessordirektiv #%s" |
| 321 | 321 | |
| 322 | −#: directives.c:606 | |
| 322 | +#: directives.c:600 | |
| 323 | 323 | msgid "\"defined\" cannot be used as a macro name" |
| 324 | 324 | msgstr "»defined« kan ikke bruges som makronavn" |
| 325 | 325 | |
| 326 | −#: directives.c:611 | |
| 326 | +#: directives.c:605 | |
| 327 | 327 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 328 | 328 | msgstr "»__has_include__« kan ikke bruges som et makronavn" |
| 329 | 329 | |
| 330 | −#: directives.c:617 | |
| 330 | +#: directives.c:611 | |
| 331 | 331 | #, c-format |
| 332 | 332 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 333 | 333 | msgstr "»%s« kan ikke bruges som et makronavn, da det er en operator i C++" |
| 334 | 334 | |
| 335 | −#: directives.c:620 | |
| 335 | +#: directives.c:614 | |
| 336 | 336 | #, c-format |
| 337 | 337 | msgid "no macro name given in #%s directive" |
| 338 | 338 | msgstr "intet makronavn angivet i direktivet #%s" |
| 339 | 339 | |
| 340 | −#: directives.c:623 | |
| 340 | +#: directives.c:617 | |
| 341 | 341 | msgid "macro names must be identifiers" |
| 342 | 342 | msgstr "makronavne skal være kaldenavne" |
| 343 | 343 | |
| 344 | −#: directives.c:672 directives.c:677 | |
| 344 | +#: directives.c:666 directives.c:671 | |
| 345 | 345 | #, c-format |
| 346 | 346 | msgid "undefining \"%s\"" |
| 347 | 347 | msgstr "fjerner definitionen af »%s«" |
| 348 | 348 | |
| 349 | −#: directives.c:732 | |
| 349 | +#: directives.c:727 | |
| 350 | 350 | msgid "missing terminating > character" |
| 351 | 351 | msgstr "manglende afsluttende >-tegn" |
| 352 | 352 | |
| 353 | −#: directives.c:791 | |
| 353 | +#: directives.c:786 | |
| 354 | 354 | #, c-format |
| 355 | 355 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 356 | 356 | msgstr "#%s forventer »FILNAVN« eller <FILNAVN>" |
| 357 | 357 | |
| 358 | −#: directives.c:837 | |
| 358 | +#: directives.c:828 | |
| 359 | 359 | #, c-format |
| 360 | 360 | msgid "empty filename in #%s" |
| 361 | 361 | msgstr "tomt filnavn i #%s" |
| 362 | 362 | |
| 363 | −#: directives.c:847 | |
| 363 | +#: directives.c:835 | |
| 364 | 364 | msgid "#include nested too deeply" |
| 365 | 365 | msgstr "#include indlejret for dybt" |
| 366 | 366 | |
| 367 | −#: directives.c:888 | |
| 367 | +#: directives.c:877 | |
| 368 | 368 | msgid "#include_next in primary source file" |
| 369 | 369 | msgstr "#include_next i den primære kildekodefil" |
| 370 | 370 | |
| 371 | −#: directives.c:914 | |
| 371 | +#: directives.c:903 | |
| 372 | 372 | #, c-format |
| 373 | 373 | msgid "invalid flag \"%s\" in line directive" |
| 374 | 374 | msgstr "ugyldigt flag »%s« i linjedirektiv" |
| 375 | 375 | |
| 376 | −#: directives.c:974 | |
| 376 | +#: directives.c:963 | |
| 377 | 377 | msgid "unexpected end of file after #line" |
| 378 | 378 | msgstr "uventet filafslutning efter #line" |
| 379 | 379 | |
| 380 | −#: directives.c:977 | |
| 380 | +#: directives.c:966 | |
| 381 | 381 | #, c-format |
| 382 | 382 | msgid "\"%s\" after #line is not a positive integer" |
| 383 | 383 | msgstr "»%s« efter #line er ikke et positivt heltal" |
| 384 | 384 | |
| 385 | −#: directives.c:983 directives.c:985 | |
| 385 | +#: directives.c:972 directives.c:974 | |
| 386 | 386 | msgid "line number out of range" |
| 387 | 387 | msgstr "linjenummer er uden for det gyldige interval" |
| 388 | 388 | |
| 389 | −#: directives.c:998 directives.c:1079 | |
| 389 | +#: directives.c:987 directives.c:1068 | |
| 390 | 390 | #, c-format |
| 391 | 391 | msgid "\"%s\" is not a valid filename" |
| 392 | 392 | msgstr "»%s« er ikke et gyldigt filnavn" |
| 393 | 393 | |
| 394 | −#: directives.c:1039 | |
| 394 | +#: directives.c:1028 | |
| 395 | 395 | #, c-format |
| 396 | 396 | msgid "\"%s\" after # is not a positive integer" |
| 397 | 397 | msgstr "»%s« efter # er ikke et positivt heltal" |
| 398 | 398 | |
| 399 | −#: directives.c:1098 | |
| 399 | +#: directives.c:1087 | |
| 400 | 400 | #, c-format |
| 401 | 401 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 402 | 402 | msgstr "filen »%s« linjemarkør ignoreret på grund af ukorrekt indlejring" |
| 403 | 403 | |
| 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 | |
| 405 | 405 | #, c-format |
| 406 | 406 | msgid "%s" |
| 407 | 407 | msgstr "%s" |
| 408 | 408 | |
| 409 | −#: directives.c:1185 | |
| 409 | +#: directives.c:1175 | |
| 410 | 410 | #, c-format |
| 411 | 411 | msgid "invalid #%s directive" |
| 412 | 412 | msgstr "ugyldig #%s-direktiv" |
| 413 | 413 | |
| 414 | −#: directives.c:1248 | |
| 414 | +#: directives.c:1238 | |
| 415 | 415 | #, c-format |
| 416 | 416 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 417 | 417 | msgstr "registrerer pragmaer i navnerum »%s« med fejlmatchede navneudvidelse" |
| 418 | 418 | |
| 419 | −#: directives.c:1257 | |
| 419 | +#: directives.c:1247 | |
| 420 | 420 | #, c-format |
| 421 | 421 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 422 | 422 | msgstr "registrerer pragma »%s« med navneudvidelse og intet navnerum" |
| 423 | 423 | |
| 424 | −#: directives.c:1275 | |
| 424 | +#: directives.c:1265 | |
| 425 | 425 | #, c-format |
| 426 | 426 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 427 | 427 | msgstr "registrerer »%s« som både et pragma og et pragmanavnerum" |
| 428 | 428 | |
| 429 | −#: directives.c:1278 | |
| 429 | +#: directives.c:1268 | |
| 430 | 430 | #, c-format |
| 431 | 431 | msgid "#pragma %s %s is already registered" |
| 432 | 432 | msgstr "#pragma %s %s er allerede registreret" |
| 433 | 433 | |
| 434 | −#: directives.c:1281 | |
| 434 | +#: directives.c:1271 | |
| 435 | 435 | #, c-format |
| 436 | 436 | msgid "#pragma %s is already registered" |
| 437 | 437 | msgstr "#pragma %s er allerede registreret" |
| 438 | 438 | |
| 439 | −#: directives.c:1311 | |
| 439 | +#: directives.c:1301 | |
| 440 | 440 | msgid "registering pragma with NULL handler" |
| 441 | 441 | msgstr "registrerer pragma med NULL-håndtering" |
| 442 | 442 | |
| 443 | −#: directives.c:1528 | |
| 443 | +#: directives.c:1518 | |
| 444 | 444 | msgid "#pragma once in main file" |
| 445 | 445 | msgstr "#pragma once i hovedfil" |
| 446 | 446 | |
| 447 | −#: directives.c:1551 | |
| 447 | +#: directives.c:1541 | |
| 448 | 448 | msgid "invalid #pragma push_macro directive" |
| 449 | 449 | msgstr "ugyldigt #pragma push_macro-direktiv" |
| 450 | 450 | |
| 451 | −#: directives.c:1606 | |
| 451 | +#: directives.c:1596 | |
| 452 | 452 | msgid "invalid #pragma pop_macro directive" |
| 453 | 453 | msgstr "ugyldigt #pragma pop_macro-direktiv" |
| 454 | 454 | |
| 455 | −#: directives.c:1661 | |
| 455 | +#: directives.c:1651 | |
| 456 | 456 | msgid "invalid #pragma GCC poison directive" |
| 457 | 457 | msgstr "ugyldigt #pragma GCC poison-direktiv" |
| 458 | 458 | |
| 459 | −#: directives.c:1670 | |
| 459 | +#: directives.c:1660 | |
| 460 | 460 | #, c-format |
| 461 | 461 | msgid "poisoning existing macro \"%s\"" |
| 462 | 462 | msgstr "forgifter eksisterende makro »%s«" |
| 463 | 463 | |
| 464 | −#: directives.c:1689 | |
| 464 | +#: directives.c:1679 | |
| 465 | 465 | msgid "#pragma system_header ignored outside include file" |
| 466 | 466 | msgstr "#pragma system_header ignoreret uden for inkluderingsfil" |
| 467 | 467 | |
| 468 | −#: directives.c:1714 | |
| 468 | +#: directives.c:1704 | |
| 469 | 469 | #, c-format |
| 470 | 470 | msgid "cannot find source file %s" |
| 471 | 471 | msgstr "kan ikke finde kildefilen %s" |
| 472 | 472 | |
| 473 | −#: directives.c:1718 | |
| 473 | +#: directives.c:1708 | |
| 474 | 474 | #, c-format |
| 475 | 475 | msgid "current file is older than %s" |
| 476 | 476 | msgstr "aktuel fil er ældre end %s" |
| 477 | 477 | |
| 478 | −#: directives.c:1742 | |
| 478 | +#: directives.c:1732 | |
| 479 | 479 | #, c-format |
| 480 | 480 | msgid "invalid \"#pragma GCC %s\" directive" |
| 481 | 481 | msgstr "ugyldigt »#pragma GCC %s«-direktiv" |
| 482 | 482 | |
| 483 | −#: directives.c:1943 | |
| 483 | +#: directives.c:1933 | |
| 484 | 484 | msgid "_Pragma takes a parenthesized string literal" |
| 485 | 485 | msgstr "_Pragma tager en strengkonstant med paranteser omkring" |
| 486 | 486 | |
| 487 | −#: directives.c:2064 | |
| 487 | +#: directives.c:2021 | |
| 488 | 488 | msgid "#else without #if" |
| 489 | 489 | msgstr "#else uden #if" |
| 490 | 490 | |
| 491 | −#: directives.c:2069 | |
| 491 | +#: directives.c:2026 | |
| 492 | 492 | msgid "#else after #else" |
| 493 | 493 | msgstr "#else efter #else" |
| 494 | 494 | |
| 495 | −#: directives.c:2071 directives.c:2104 | |
| 495 | +#: directives.c:2028 directives.c:2061 | |
| 496 | 496 | msgid "the conditional began here" |
| 497 | 497 | msgstr "betingelsen begyndte her" |
| 498 | 498 | |
| 499 | −#: directives.c:2097 | |
| 499 | +#: directives.c:2054 | |
| 500 | 500 | msgid "#elif without #if" |
| 501 | 501 | msgstr "#elif uden #if" |
| 502 | 502 | |
| 503 | −#: directives.c:2102 | |
| 503 | +#: directives.c:2059 | |
| 504 | 504 | msgid "#elif after #else" |
| 505 | 505 | msgstr "#elif efter #else" |
| 506 | 506 | |
| 507 | −#: directives.c:2133 | |
| 507 | +#: directives.c:2090 | |
| 508 | 508 | msgid "#endif without #if" |
| 509 | 509 | msgstr "#endif uden #if" |
| 510 | 510 | |
| 511 | −#: directives.c:2213 | |
| 511 | +#: directives.c:2166 | |
| 512 | 512 | msgid "missing '(' after predicate" |
| 513 | 513 | msgstr "manglende »(« efter udsagn" |
| 514 | 514 | |
| 515 | −#: directives.c:2228 | |
| 515 | +#: directives.c:2184 | |
| 516 | 516 | msgid "missing ')' to complete answer" |
| 517 | 517 | msgstr "manglende »)« til at fuldføre svar" |
| 518 | 518 | |
| 519 | −#: directives.c:2248 | |
| 519 | +#: directives.c:2196 | |
| 520 | 520 | msgid "predicate's answer is empty" |
| 521 | 521 | msgstr "udsagnets svar er tomt" |
| 522 | 522 | |
| 523 | −#: directives.c:2275 | |
| 523 | +#: directives.c:2226 | |
| 524 | 524 | msgid "assertion without predicate" |
| 525 | 525 | msgstr "postulat uden udsagn" |
| 526 | 526 | |
| 527 | −#: directives.c:2278 | |
| 527 | +#: directives.c:2229 | |
| 528 | 528 | msgid "predicate must be an identifier" |
| 529 | 529 | msgstr "udsagn skal være et kaldenavn" |
| 530 | 530 | |
| 531 | −#: directives.c:2364 | |
| 531 | +#: directives.c:2311 | |
| 532 | 532 | #, c-format |
| 533 | 533 | msgid "\"%s\" re-asserted" |
| 534 | 534 | msgstr "»%s« genpostuleret" |
| 535 | 535 | |
| 536 | −#: directives.c:2656 | |
| 536 | +#: directives.c:2587 | |
| 537 | 537 | #, c-format |
| 538 | 538 | msgid "unterminated #%s" |
| 539 | 539 | msgstr "uafsluttet #%s" |
| 540 | 540 | |
| 541 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 541 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 542 | 542 | msgid "unterminated comment" |
| 543 | 543 | msgstr "uafsluttet kommentar" |
| 544 | 544 | |
| 545 | −#: errors.c:284 | |
| 545 | +#: errors.c:291 | |
| 546 | 546 | #, c-format |
| 547 | 547 | msgid "%s: %s" |
| 548 | 548 | msgstr "%s: %s" |
| 549 | 549 | |
| 550 | −#: errors.c:296 | |
| 550 | +#: errors.c:304 | |
| 551 | 551 | msgid "stdout" |
| 552 | 552 | msgstr "standardud" |
| 553 | 553 | |
| @@ -640,84 +640,84 @@ msgstr "(»%s« er et alternativt symbol for »%s« i C++)" · 86 unmodified lines | ||
| 640 | 640 | msgid "this use of \"defined\" may not be portable" |
| 641 | 641 | msgstr "denne brug af »defined« er muligvis ikke portabel" |
| 642 | 642 | |
| 643 | −#: expr.c:1125 | |
| 643 | +#: expr.c:1109 | |
| 644 | 644 | msgid "user-defined literal in preprocessor expression" |
| 645 | 645 | msgstr "brugerdefineret ordret i præprocessorudtrykket" |
| 646 | 646 | |
| 647 | −#: expr.c:1130 | |
| 647 | +#: expr.c:1114 | |
| 648 | 648 | msgid "floating constant in preprocessor expression" |
| 649 | 649 | msgstr "kommatalskonstant i præprocessorudtryk" |
| 650 | 650 | |
| 651 | −#: expr.c:1136 | |
| 651 | +#: expr.c:1120 | |
| 652 | 652 | msgid "imaginary number in preprocessor expression" |
| 653 | 653 | msgstr "imaginært tal i præprocessorudtryk" |
| 654 | 654 | |
| 655 | −#: expr.c:1189 | |
| 655 | +#: expr.c:1173 | |
| 656 | 656 | #, c-format |
| 657 | 657 | msgid "\"%s\" is not defined, evaluates to 0" |
| 658 | 658 | msgstr "»%s« er ikke defineret, evaluerer til 0" |
| 659 | 659 | |
| 660 | −#: expr.c:1202 | |
| 660 | +#: expr.c:1186 | |
| 661 | 661 | msgid "assertions are a GCC extension" |
| 662 | 662 | msgstr "påstande er en GCC-udvidelse" |
| 663 | 663 | |
| 664 | −#: expr.c:1205 | |
| 664 | +#: expr.c:1189 | |
| 665 | 665 | msgid "assertions are a deprecated extension" |
| 666 | 666 | msgstr "påstande er en forældet udvidelse" |
| 667 | 667 | |
| 668 | −#: expr.c:1451 | |
| 668 | +#: expr.c:1435 | |
| 669 | 669 | #, c-format |
| 670 | 670 | msgid "unbalanced stack in %s" |
| 671 | 671 | msgstr "ubalanceret stak i %s" |
| 672 | 672 | |
| 673 | −#: expr.c:1471 | |
| 673 | +#: expr.c:1455 | |
| 674 | 674 | #, c-format |
| 675 | 675 | msgid "impossible operator '%u'" |
| 676 | 676 | msgstr "umulig operator »%u«" |
| 677 | 677 | |
| 678 | −#: expr.c:1572 | |
| 678 | +#: expr.c:1556 | |
| 679 | 679 | msgid "missing ')' in expression" |
| 680 | 680 | msgstr "manglende »)« i udtryk" |
| 681 | 681 | |
| 682 | −#: expr.c:1601 | |
| 682 | +#: expr.c:1585 | |
| 683 | 683 | msgid "'?' without following ':'" |
| 684 | 684 | msgstr "»?« uden efterfølgende »:«" |
| 685 | 685 | |
| 686 | −#: expr.c:1611 | |
| 686 | +#: expr.c:1595 | |
| 687 | 687 | msgid "integer overflow in preprocessor expression" |
| 688 | 688 | msgstr "heltallet løber over i præprocessorudtrykket" |
| 689 | 689 | |
| 690 | −#: expr.c:1616 | |
| 690 | +#: expr.c:1600 | |
| 691 | 691 | msgid "missing '(' in expression" |
| 692 | 692 | msgstr "manglende »(« i udtryk" |
| 693 | 693 | |
| 694 | −#: expr.c:1648 | |
| 694 | +#: expr.c:1632 | |
| 695 | 695 | #, c-format |
| 696 | 696 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 697 | 697 | msgstr "den venstre operand til »%s« ændrer fortegn ved forfremmelse" |
| 698 | 698 | |
| 699 | −#: expr.c:1653 | |
| 699 | +#: expr.c:1637 | |
| 700 | 700 | #, c-format |
| 701 | 701 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 702 | 702 | msgstr "den højre operand til »%s« ændrer fortegn ved forfremmelse" |
| 703 | 703 | |
| 704 | −#: expr.c:1912 | |
| 704 | +#: expr.c:1896 | |
| 705 | 705 | msgid "traditional C rejects the unary plus operator" |
| 706 | 706 | msgstr "traditionel C tillader ikke operatoren unær plus" |
| 707 | 707 | |
| 708 | −#: expr.c:2010 | |
| 708 | +#: expr.c:1994 | |
| 709 | 709 | msgid "comma operator in operand of #if" |
| 710 | 710 | msgstr "kommaoperator i en operand til #if" |
| 711 | 711 | |
| 712 | −#: expr.c:2146 | |
| 712 | +#: expr.c:2130 | |
| 713 | 713 | msgid "division by zero in #if" |
| 714 | 714 | msgstr "division med nul i #if" |
| 715 | 715 | |
| 716 | −#: expr.c:2243 | |
| 716 | +#: expr.c:2227 | |
| 717 | 717 | msgid "operator \"__has_include__\" requires a header string" |
| 718 | 718 | msgstr "operatoren »__has_include__« kræver en teksthovedstreng" |
| 719 | 719 | |
| 720 | −#: expr.c:2259 | |
| 720 | +#: expr.c:2243 | |
| 721 | 721 | msgid "missing ')' after \"__has_include__\"" |
| 722 | 722 | msgstr "manglende »)« efter »__has_include__«" |
| 723 | 723 | |
| @@ -734,40 +734,40 @@ msgstr "brug -Winvalid-pch for yderligere information" · 10 unmodified lines | ||
| 734 | 734 | msgid "no include path in which to search for %s" |
| 735 | 735 | msgstr "der er ingen inkluderingssti at søge efter %s i" |
| 736 | 736 | |
| 737 | −#: files.c:1441 | |
| 737 | +#: files.c:1455 | |
| 738 | 738 | msgid "Multiple include guards may be useful for:\n" |
| 739 | 739 | msgstr "Flere inkluderingsvagter kan være nyttige til:\n" |
| 740 | 740 | |
| 741 | −#: init.c:565 | |
| 741 | +#: init.c:569 | |
| 742 | 742 | msgid "cppchar_t must be an unsigned type" |
| 743 | 743 | msgstr "cppchar_t skal være en usigneret type" |
| 744 | 744 | |
| 745 | −#: init.c:569 | |
| 745 | +#: init.c:573 | |
| 746 | 746 | #, c-format |
| 747 | 747 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 748 | 748 | msgstr "præprocessorberegning har en maksimal præcision på %lu bit; målarkitektur kræver %lu bit" |
| 749 | 749 | |
| 750 | −#: init.c:576 | |
| 750 | +#: init.c:580 | |
| 751 | 751 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 752 | 752 | msgstr "CPP-beregning skal være mindst lige så præcis som en målarkitekturs int" |
| 753 | 753 | |
| 754 | −#: init.c:579 | |
| 754 | +#: init.c:583 | |
| 755 | 755 | msgid "target char is less than 8 bits wide" |
| 756 | 756 | msgstr "målarkitekturs char er mindre end 8 bit bred" |
| 757 | 757 | |
| 758 | −#: init.c:583 | |
| 758 | +#: init.c:587 | |
| 759 | 759 | msgid "target wchar_t is narrower than target char" |
| 760 | 760 | msgstr "målarkitekturs wchar_t er mindre end målarkitekturs char" |
| 761 | 761 | |
| 762 | −#: init.c:587 | |
| 762 | +#: init.c:591 | |
| 763 | 763 | msgid "target int is narrower than target char" |
| 764 | 764 | msgstr "målarkitekturs int er mindre end målarkitekturs char" |
| 765 | 765 | |
| 766 | −#: init.c:592 | |
| 766 | +#: init.c:596 | |
| 767 | 767 | msgid "CPP half-integer narrower than CPP character" |
| 768 | 768 | msgstr "CPP-halvheltal er mindre end CPP-tegn" |
| 769 | 769 | |
| 770 | −#: init.c:596 | |
| 770 | +#: init.c:600 | |
| 771 | 771 | #, c-format |
| 772 | 772 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 773 | 773 | 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 | ||
| 839 | 839 | msgid "identifier \"%s\" is a special operator name in C++" |
| 840 | 840 | msgstr "kaldenavn »%s« er et specielt operatornavn i C++" |
| 841 | 841 | |
| 842 | −#: lex.c:1811 | |
| 842 | +#: lex.c:1826 | |
| 843 | 843 | msgid "raw string delimiter longer than 16 characters" |
| 844 | 844 | msgstr "rå strengafgrænser længere end 16 tegn" |
| 845 | 845 | |
| 846 | −#: lex.c:1815 | |
| 846 | +#: lex.c:1830 | |
| 847 | 847 | msgid "invalid new-line in raw string delimiter" |
| 848 | 848 | msgstr "ugyldig nylinje i rå strengafgrænser" |
| 849 | 849 | |
| 850 | −#: lex.c:1819 | |
| 850 | +#: lex.c:1834 | |
| 851 | 851 | #, c-format |
| 852 | 852 | msgid "invalid character '%c' in raw string delimiter" |
| 853 | 853 | msgstr "ugyldigt tegn »%c« i rå strengafgrænser" |
| 854 | 854 | |
| 855 | −#: lex.c:1868 lex.c:1890 | |
| 855 | +#: lex.c:1883 lex.c:1905 | |
| 856 | 856 | msgid "unterminated raw string" |
| 857 | 857 | msgstr "uafsluttet rå streng" |
| 858 | 858 | |
| 859 | −#: lex.c:1912 lex.c:2043 | |
| 859 | +#: lex.c:1925 lex.c:2054 | |
| 860 | 860 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 861 | 861 | msgstr "ugyldig suffiks på ordret; C++11 kræver et mellemrum mellem ordret og strengmakro" |
| 862 | 862 | |
| 863 | −#: lex.c:2024 | |
| 863 | +#: lex.c:2037 | |
| 864 | 864 | msgid "null character(s) preserved in literal" |
| 865 | 865 | msgstr "nultegn bevaret i strengkonstant" |
| 866 | 866 | |
| 867 | −#: lex.c:2027 | |
| 867 | +#: lex.c:2040 | |
| 868 | 868 | #, c-format |
| 869 | 869 | msgid "missing terminating %c character" |
| 870 | 870 | msgstr "manglende afsluttende %c-tegn" |
| 871 | 871 | |
| 872 | −#: lex.c:2061 | |
| 872 | +#: lex.c:2072 | |
| 873 | 873 | msgid "C++11 requires a space between string literal and macro" |
| 874 | 874 | msgstr "C++11 kræver et mellemrum mellem ordret og strengmakro" |
| 875 | 875 | |
| 876 | −#: lex.c:2865 lex.c:2899 | |
| 876 | +#: lex.c:2876 lex.c:2910 | |
| 877 | 877 | msgid "C++ style comments are not allowed in ISO C90" |
| 878 | 878 | msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90" |
| 879 | 879 | |
| 880 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 880 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 881 | 881 | msgid "(this will be reported only once per input file)" |
| 882 | 882 | msgstr "(dette rapporteres kun en enkelt gang per inddatafil)" |
| 883 | 883 | |
| 884 | −#: lex.c:2876 | |
| 884 | +#: lex.c:2887 | |
| 885 | 885 | msgid "C++ style comments are incompatible with C90" |
| 886 | 886 | msgstr "kommentarer i C++-stil er ikke kompatible med C90" |
| 887 | 887 | |
| 888 | −#: lex.c:2907 | |
| 888 | +#: lex.c:2919 | |
| 889 | 889 | msgid "multi-line comment" |
| 890 | 890 | msgstr "flerlinjekommentar" |
| 891 | 891 | |
| 892 | −#: lex.c:3287 | |
| 892 | +#: lex.c:3299 | |
| 893 | 893 | #, c-format |
| 894 | 894 | msgid "unspellable token %s" |
| 895 | 895 | msgstr "symbol %s kan ikke staves" |
| 896 | 896 | |
| 897 | −#: macro.c:93 | |
| 897 | +#: macro.c:94 | |
| 898 | 898 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 899 | 899 | msgstr "»##« må ikke optræde ved nogen af enderne i __VA_OPT__" |
| 900 | 900 | |
| 901 | −#: macro.c:352 | |
| 901 | +#: macro.c:354 | |
| 902 | 902 | #, c-format |
| 903 | 903 | msgid "macro \"%s\" is not used" |
| 904 | 904 | msgstr "makroen »%s« bliver ikke brugt" |
| 905 | 905 | |
| 906 | −#: macro.c:391 macro.c:639 | |
| 906 | +#: macro.c:393 macro.c:641 | |
| 907 | 907 | #, c-format |
| 908 | 908 | msgid "invalid built-in macro \"%s\"" |
| 909 | 909 | msgstr "ugyldig indbygget makro »%s«" |
| 910 | 910 | |
| 911 | −#: macro.c:398 macro.c:500 | |
| 911 | +#: macro.c:400 macro.c:502 | |
| 912 | 912 | #, c-format |
| 913 | 913 | msgid "macro \"%s\" might prevent reproducible builds" |
| 914 | 914 | msgstr "makroen »%s« kan forhindre reproducerbare bygninger" |
| 915 | 915 | |
| 916 | −#: macro.c:429 | |
| 916 | +#: macro.c:431 | |
| 917 | 917 | msgid "could not determine file timestamp" |
| 918 | 918 | msgstr "kunne ikke bestemme filtidsstempel" |
| 919 | 919 | |
| 920 | −#: macro.c:546 | |
| 920 | +#: macro.c:548 | |
| 921 | 921 | msgid "could not determine date and time" |
| 922 | 922 | msgstr "kunne ikke bestemme dato og tid" |
| 923 | 923 | |
| 924 | −#: macro.c:562 | |
| 924 | +#: macro.c:564 | |
| 925 | 925 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 926 | 926 | msgstr "__COUNTER__ udvidet inden i direktiv med -fdirectives-only" |
| 927 | 927 | |
| 928 | −#: macro.c:758 | |
| 928 | +#: macro.c:760 | |
| 929 | 929 | msgid "invalid string literal, ignoring final '\\'" |
| 930 | 930 | msgstr "ugyldig strengkonstant, ignorerer afsluttende »\\«" |
| 931 | 931 | |
| 932 | −#: macro.c:820 | |
| 932 | +#: macro.c:822 | |
| 933 | 933 | #, c-format |
| 934 | 934 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 935 | 935 | msgstr "indsættelse af »%s« og »%s« giver ikke et gyldigt præprocessorsymbol" |
| 936 | 936 | |
| 937 | −#: macro.c:946 | |
| 937 | +#: macro.c:948 | |
| 938 | 938 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 939 | 939 | msgstr "ISO C++11 kræver mindst en parameter for »...« i en makro med vilkårligt antal parametre" |
| 940 | 940 | |
| 941 | −#: macro.c:950 | |
| 941 | +#: macro.c:952 | |
| 942 | 942 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 943 | 943 | msgstr "ISO C99 kræver mindst en parameter for »...« i en makro med vilkårligt antal parametre" |
| 944 | 944 | |
| 945 | −#: macro.c:957 | |
| 945 | +#: macro.c:959 | |
| 946 | 946 | #, c-format |
| 947 | 947 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 948 | 948 | msgstr "makroen »%s« kræver %u parametre, men modtager kun %u" |
| 949 | 949 | |
| 950 | −#: macro.c:962 | |
| 950 | +#: macro.c:964 | |
| 951 | 951 | #, c-format |
| 952 | 952 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 953 | 953 | msgstr "makroen »%s« viderebragte %u parametre, men tager kun mod %u" |
| 954 | 954 | |
| 955 | −#: macro.c:1156 traditional.c:819 | |
| 955 | +#: macro.c:1162 traditional.c:827 | |
| 956 | 956 | #, c-format |
| 957 | 957 | msgid "unterminated argument list invoking macro \"%s\"" |
| 958 | 958 | msgstr "uafsluttet parameterliste ved kald af makroen »%s«" |
| 959 | 959 | |
| 960 | −#: macro.c:1307 | |
| 960 | +#: macro.c:1304 | |
| 961 | 961 | #, c-format |
| 962 | 962 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 963 | 963 | msgstr "funktionsagtig makro »%s« skal bruges med parametre i traditionel C" |
| 964 | 964 | |
| 965 | −#: macro.c:2003 | |
| 965 | +#: macro.c:2083 | |
| 966 | 966 | #, c-format |
| 967 | 967 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 968 | 968 | msgstr "starter makroen %s parameter %d: tomme makroparametre er ikke defineret i ISO C+98" |
| 969 | 969 | |
| 970 | −#: macro.c:2011 macro.c:2020 | |
| 970 | +#: macro.c:2091 macro.c:2100 | |
| 971 | 971 | #, c-format |
| 972 | 972 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 973 | 973 | msgstr "starter makroen %s parameter %d: tomme makroparametre er ikke defineret i ISO C90" |
| 974 | 974 | |
| 975 | −#: macro.c:2984 | |
| 975 | +#: macro.c:3059 | |
| 976 | 976 | #, c-format |
| 977 | 977 | msgid "duplicate macro parameter \"%s\"" |
| 978 | 978 | msgstr "makroparameternavnet »%s« optræder mere end en gang" |
| 979 | 979 | |
| 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 | |
| 981 | 986 | #, 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«" | |
| 984 | 989 | |
| 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" | |
| 988 | 993 | |
| 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" | |
| 992 | 997 | |
| 993 | −#: macro.c:3081 | |
| 998 | +#: macro.c:3145 | |
| 999 | +msgid "expected ')' after \"...\"" | |
| 1000 | +msgstr "forventede »)« efter »...«" | |
| 1001 | + | |
| 1002 | +#: macro.c:3202 | |
| 994 | 1003 | msgid "anonymous variadic macros were introduced in C++11" |
| 995 | 1004 | msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C++11" |
| 996 | 1005 | |
| 997 | −#: macro.c:3085 macro.c:3090 | |
| 1006 | +#: macro.c:3203 macro.c:3207 | |
| 998 | 1007 | msgid "anonymous variadic macros were introduced in C99" |
| 999 | 1008 | msgstr "anonyme makroer med vilkårligt antal parametre blev introduceret i C99" |
| 1000 | 1009 | |
| 1001 | −#: macro.c:3097 | |
| 1010 | +#: macro.c:3213 | |
| 1002 | 1011 | msgid "ISO C++ does not permit named variadic macros" |
| 1003 | 1012 | msgstr "ISO C++ tillader ikke navngivne makroer med vilkårligt antal parametre" |
| 1004 | 1013 | |
| 1005 | −#: macro.c:3100 | |
| 1014 | +#: macro.c:3214 | |
| 1006 | 1015 | msgid "ISO C does not permit named variadic macros" |
| 1007 | 1016 | msgstr "ISO C tillader ikke navngivne makroer med vilkårligt antal parametre" |
| 1008 | 1017 | |
| 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 | |
| 1014 | 1019 | msgid "'##' cannot appear at either end of a macro expansion" |
| 1015 | 1020 | msgstr "»##« må ikke optræde ved nogen af enderne i en makrokrop" |
| 1016 | 1021 | |
| 1017 | −#: macro.c:3198 | |
| 1022 | +#: macro.c:3298 | |
| 1018 | 1023 | msgid "ISO C++11 requires whitespace after the macro name" |
| 1019 | 1024 | msgstr "ISO C++11 kræver mellemrum efter makronavnet" |
| 1020 | 1025 | |
| 1021 | −#: macro.c:3201 | |
| 1026 | +#: macro.c:3299 | |
| 1022 | 1027 | msgid "ISO C99 requires whitespace after the macro name" |
| 1023 | 1028 | msgstr "ISO C99 kræver mellemrum efter makronavnet" |
| 1024 | 1029 | |
| 1025 | −#: macro.c:3226 | |
| 1030 | +#: macro.c:3323 | |
| 1026 | 1031 | msgid "missing whitespace after the macro name" |
| 1027 | 1032 | msgstr "manglende mellemrum efter makronavnet" |
| 1028 | 1033 | |
| 1029 | −#: macro.c:3263 | |
| 1034 | +#: macro.c:3373 | |
| 1030 | 1035 | msgid "'#' is not followed by a macro parameter" |
| 1031 | 1036 | msgstr "»#« efterfølges ikke af en makroparameter" |
| 1032 | 1037 | |
| 1033 | −#: macro.c:3430 | |
| 1038 | +#: macro.c:3524 | |
| 1034 | 1039 | #, c-format |
| 1035 | 1040 | msgid "\"%s\" redefined" |
| 1036 | 1041 | msgstr "»%s« omdefineret" |
| 1037 | 1042 | |
| 1038 | −#: macro.c:3435 | |
| 1043 | +#: macro.c:3529 | |
| 1039 | 1044 | msgid "this is the location of the previous definition" |
| 1040 | 1045 | msgstr "den foregående definition er her" |
| 1041 | 1046 | |
| 1042 | −#: macro.c:3496 | |
| 1047 | +#: macro.c:3633 | |
| 1043 | 1048 | #, c-format |
| 1044 | 1049 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 1045 | 1050 | msgstr "makroparameteren »%s« ville blive gjort til en streng i traditionel C" |
| 1046 | 1051 | |
| 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 | |
| 1053 | 1053 | msgid "while writing precompiled header" |
| 1054 | 1054 | msgstr "under skrivning af prækompileret teksthoved" |
| 1055 | 1055 | |
| 1056 | −#: pch.c:621 | |
| 1056 | +#: pch.c:616 | |
| 1057 | 1057 | #, c-format |
| 1058 | 1058 | msgid "%s: not used because `%.*s' is poisoned" |
| 1059 | 1059 | msgstr "%s: ikke brugt da »%.*s« er forgiftet" |
| 1060 | 1060 | |
| 1061 | −#: pch.c:643 | |
| 1061 | +#: pch.c:638 | |
| 1062 | 1062 | #, c-format |
| 1063 | 1063 | msgid "%s: not used because `%.*s' not defined" |
| 1064 | 1064 | msgstr "%s: ikke brugt da »%.*s« ikke er defineret" |
| 1065 | 1065 | |
| 1066 | −#: pch.c:655 | |
| 1066 | +#: pch.c:650 | |
| 1067 | 1067 | #, c-format |
| 1068 | 1068 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 1069 | 1069 | msgstr "%s: ikke brugt da »%.*s« er defineret som »%s« ikke »%.*s«" |
| 1070 | 1070 | |
| 1071 | −#: pch.c:696 | |
| 1071 | +#: pch.c:691 | |
| 1072 | 1072 | #, c-format |
| 1073 | 1073 | msgid "%s: not used because `%s' is defined" |
| 1074 | 1074 | msgstr "%s ikke brugt da »%s« er defineret" |
| 1075 | 1075 | |
| 1076 | −#: pch.c:716 | |
| 1076 | +#: pch.c:711 | |
| 1077 | 1077 | #, c-format |
| 1078 | 1078 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 1079 | 1079 | msgstr "%s: ikke brugt da »__COUNTER__« er ugyldig" |
| 1080 | 1080 | |
| 1081 | −#: pch.c:725 pch.c:903 | |
| 1081 | +#: pch.c:720 pch.c:878 | |
| 1082 | 1082 | msgid "while reading precompiled header" |
| 1083 | 1083 | msgstr "under læsning af prækompileret teksthoved" |
| 1084 | 1084 | |
| 1085 | −#: traditional.c:889 | |
| 1085 | +#: traditional.c:896 | |
| 1086 | 1086 | #, c-format |
| 1087 | 1087 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 1088 | 1088 | msgstr "opdagede rekursion ved udfoldelse af makroen »%s«" |
| 1089 | 1089 | |
| 1090 | −#: traditional.c:1108 | |
| 1090 | +#: traditional.c:1119 | |
| 1091 | 1091 | msgid "syntax error in macro parameter list" |
| 1092 | 1092 | msgstr "syntaksfejl i makroparameterliste" |
| 1093 | 1093 | |
| 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 | + | |
| 1094 | 1109 | #~ msgid "NULL directory in find_file" |
| 1095 | 1110 | #~ msgstr "NULL-mappe i find_file" |
| 1096 | 1111 | |
Binary file not shown.
| @@ -9,10 +9,10 @@ · 8 unmodified lines | ||
| 9 | 9 | # |
| 10 | 10 | msgid "" |
| 11 | 11 | msgstr "" |
| 12 | −"Project-Id-Version: cpplib 8.1-b20180128\n" | |
| 12 | +"Project-Id-Version: cpplib 9.1-b20190203\n" | |
| 13 | 13 | "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" | |
| 16 | 16 | "Last-Translator: Roland Illig <roland.illig@gmx.de>\n" |
| 17 | 17 | "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" |
| 18 | 18 | "Language: de\n" |
| @@ -20,7 +20,7 @@ msgstr "" · 1 unmodified line | ||
| 20 | 20 | "Content-Type: text/plain; charset=UTF-8\n" |
| 21 | 21 | "Content-Transfer-Encoding: 8bit\n" |
| 22 | 22 | "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" | |
| 24 | 24 | |
| 25 | 25 | #: charset.c:674 |
| 26 | 26 | #, c-format |
| @@ -91,7 +91,7 @@ msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner" · 64 unmodified lines | ||
| 91 | 91 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 92 | 92 | msgstr "universelles Zeichen %.*s ist nicht gültig am Anfang eines Bezeichners" |
| 93 | 93 | |
| 94 | −#: charset.c:1181 charset.c:2000 | |
| 94 | +#: charset.c:1181 charset.c:2002 | |
| 95 | 95 | msgid "converting UCN to source character set" |
| 96 | 96 | msgstr "UCN wird in Quellzeichensatz konvertiert" |
| 97 | 97 | |
| @@ -144,294 +144,294 @@ msgstr "Escape-Sequenz wird in Zeichensatz der Ausführung konvertiert" · 46 unmodified lines | ||
| 144 | 144 | msgid "missing open quote" |
| 145 | 145 | msgstr "Fehlendes öffnendes Anführungszeichen" |
| 146 | 146 | |
| 147 | −#: charset.c:1827 charset.c:1891 | |
| 147 | +#: charset.c:1829 charset.c:1893 | |
| 148 | 148 | msgid "character constant too long for its type" |
| 149 | 149 | msgstr "Zeichenkonstante zu lang für ihren Typ" |
| 150 | 150 | |
| 151 | −#: charset.c:1830 | |
| 151 | +#: charset.c:1832 | |
| 152 | 152 | msgid "multi-character character constant" |
| 153 | 153 | msgstr "Zeichenkonstante mit mehreren Zeichen" |
| 154 | 154 | |
| 155 | −#: charset.c:1931 | |
| 155 | +#: charset.c:1933 | |
| 156 | 156 | msgid "empty character constant" |
| 157 | 157 | msgstr "Leere Zeichenkonstante" |
| 158 | 158 | |
| 159 | −#: charset.c:2047 | |
| 159 | +#: charset.c:2049 | |
| 160 | 160 | #, c-format |
| 161 | 161 | msgid "failure to convert %s to %s" |
| 162 | 162 | msgstr "Fehler beim Konvertieren von %s nach %s" |
| 163 | 163 | |
| 164 | −#: directives.c:235 directives.c:278 | |
| 164 | +#: directives.c:229 directives.c:272 | |
| 165 | 165 | #, c-format |
| 166 | 166 | msgid "extra tokens at end of #%s directive" |
| 167 | 167 | msgstr "mehrere Token am Ende der Direktive #%s" |
| 168 | 168 | |
| 169 | −#: directives.c:385 | |
| 169 | +#: directives.c:379 | |
| 170 | 170 | #, c-format |
| 171 | 171 | msgid "#%s is a GCC extension" |
| 172 | 172 | msgstr "#%s ist eine GCC-Erweiterung" |
| 173 | 173 | |
| 174 | −#: directives.c:390 | |
| 174 | +#: directives.c:384 | |
| 175 | 175 | #, c-format |
| 176 | 176 | msgid "#%s is a deprecated GCC extension" |
| 177 | 177 | msgstr "#%s ist eine veraltete GCC-Erweiterung" |
| 178 | 178 | |
| 179 | −#: directives.c:403 | |
| 179 | +#: directives.c:397 | |
| 180 | 180 | msgid "suggest not using #elif in traditional C" |
| 181 | 181 | msgstr "es wird empfohlen, in traditionellem C nicht #elif zu verwenden" |
| 182 | 182 | |
| 183 | −#: directives.c:406 | |
| 183 | +#: directives.c:400 | |
| 184 | 184 | #, c-format |
| 185 | 185 | msgid "traditional C ignores #%s with the # indented" |
| 186 | 186 | msgstr "traditionelles C ignoriert #%s mit eingerücktem #" |
| 187 | 187 | |
| 188 | −#: directives.c:410 | |
| 188 | +#: directives.c:404 | |
| 189 | 189 | #, c-format |
| 190 | 190 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 191 | 191 | msgstr "es wird empfohlen, #%s vor traditionellem C mit # zu verbergen" |
| 192 | 192 | |
| 193 | −#: directives.c:436 | |
| 193 | +#: directives.c:430 | |
| 194 | 194 | msgid "embedding a directive within macro arguments is not portable" |
| 195 | 195 | msgstr "das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht portierbar" |
| 196 | 196 | |
| 197 | −#: directives.c:456 | |
| 197 | +#: directives.c:450 | |
| 198 | 198 | msgid "style of line directive is a GCC extension" |
| 199 | 199 | msgstr "der Stil der line-Direktive ist eine GCC-Erweiterung" |
| 200 | 200 | |
| 201 | −#: directives.c:537 | |
| 201 | +#: directives.c:531 | |
| 202 | 202 | #, c-format |
| 203 | 203 | msgid "invalid preprocessing directive #%s" |
| 204 | 204 | msgstr "ungültige Präprozessordirektive #%s" |
| 205 | 205 | |
| 206 | −#: directives.c:606 | |
| 206 | +#: directives.c:600 | |
| 207 | 207 | msgid "\"defined\" cannot be used as a macro name" |
| 208 | 208 | msgstr "»defined« kann nicht als Makroname verwendet werden" |
| 209 | 209 | |
| 210 | −#: directives.c:611 | |
| 210 | +#: directives.c:605 | |
| 211 | 211 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 212 | 212 | msgstr "»__has_include__« kann nicht als Makroname verwendet werden" |
| 213 | 213 | |
| 214 | −#: directives.c:617 | |
| 214 | +#: directives.c:611 | |
| 215 | 215 | #, c-format |
| 216 | 216 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 217 | 217 | msgstr "»%s« kann nicht als Makroname verwendet werden, da es ein Operator in C++ ist" |
| 218 | 218 | |
| 219 | −#: directives.c:620 | |
| 219 | +#: directives.c:614 | |
| 220 | 220 | #, c-format |
| 221 | 221 | msgid "no macro name given in #%s directive" |
| 222 | 222 | msgstr "kein Makroname in Direktive #%s angegeben" |
| 223 | 223 | |
| 224 | −#: directives.c:623 | |
| 224 | +#: directives.c:617 | |
| 225 | 225 | msgid "macro names must be identifiers" |
| 226 | 226 | msgstr "Makronamen müssen Bezeichner sein" |
| 227 | 227 | |
| 228 | −#: directives.c:672 directives.c:677 | |
| 228 | +#: directives.c:666 directives.c:671 | |
| 229 | 229 | #, c-format |
| 230 | 230 | msgid "undefining \"%s\"" |
| 231 | 231 | msgstr "»%s« wird un-definiert" |
| 232 | 232 | |
| 233 | −#: directives.c:732 | |
| 233 | +#: directives.c:727 | |
| 234 | 234 | msgid "missing terminating > character" |
| 235 | 235 | msgstr "fehlendes abschließendes »>«-Zeichen" |
| 236 | 236 | |
| 237 | −#: directives.c:791 | |
| 237 | +#: directives.c:786 | |
| 238 | 238 | #, c-format |
| 239 | 239 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 240 | 240 | msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>" |
| 241 | 241 | |
| 242 | −#: directives.c:837 | |
| 242 | +#: directives.c:828 | |
| 243 | 243 | #, c-format |
| 244 | 244 | msgid "empty filename in #%s" |
| 245 | 245 | msgstr "leerer Dateiname in #%s" |
| 246 | 246 | |
| 247 | −#: directives.c:847 | |
| 247 | +#: directives.c:835 | |
| 248 | 248 | msgid "#include nested too deeply" |
| 249 | 249 | msgstr "#include ist zu tief geschachtelt" |
| 250 | 250 | |
| 251 | −#: directives.c:888 | |
| 251 | +#: directives.c:877 | |
| 252 | 252 | msgid "#include_next in primary source file" |
| 253 | 253 | msgstr "#include_next in erster Quelldatei" |
| 254 | 254 | |
| 255 | −#: directives.c:914 | |
| 255 | +#: directives.c:903 | |
| 256 | 256 | #, c-format |
| 257 | 257 | msgid "invalid flag \"%s\" in line directive" |
| 258 | 258 | msgstr "ungültiges Kennzeichen »%s« in line-Direktive" |
| 259 | 259 | |
| 260 | −#: directives.c:974 | |
| 260 | +#: directives.c:963 | |
| 261 | 261 | msgid "unexpected end of file after #line" |
| 262 | 262 | msgstr "unerwartetes Dateiende nach #line" |
| 263 | 263 | |
| 264 | −#: directives.c:977 | |
| 264 | +#: directives.c:966 | |
| 265 | 265 | #, c-format |
| 266 | 266 | msgid "\"%s\" after #line is not a positive integer" |
| 267 | 267 | msgstr "»%s« hinter #line ist keine positive Ganzzahl" |
| 268 | 268 | |
| 269 | −#: directives.c:983 directives.c:985 | |
| 269 | +#: directives.c:972 directives.c:974 | |
| 270 | 270 | msgid "line number out of range" |
| 271 | 271 | msgstr "Zeilennummer ist außerhalb des Wertebereiches" |
| 272 | 272 | |
| 273 | −#: directives.c:998 directives.c:1079 | |
| 273 | +#: directives.c:987 directives.c:1068 | |
| 274 | 274 | #, c-format |
| 275 | 275 | msgid "\"%s\" is not a valid filename" |
| 276 | 276 | msgstr "»%s« ist kein gültiger Dateiname" |
| 277 | 277 | |
| 278 | −#: directives.c:1039 | |
| 278 | +#: directives.c:1028 | |
| 279 | 279 | #, c-format |
| 280 | 280 | msgid "\"%s\" after # is not a positive integer" |
| 281 | 281 | msgstr "»%s« hinter # ist keine positive Ganzzahl" |
| 282 | 282 | |
| 283 | −#: directives.c:1098 | |
| 283 | +#: directives.c:1087 | |
| 284 | 284 | #, c-format |
| 285 | 285 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 286 | 286 | msgstr "der Zeilenmarker in der Datei »%s« wird aufgrung falscher Schachtelung ignoriert" |
| 287 | 287 | |
| 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 | |
| 289 | 289 | #, c-format |
| 290 | 290 | msgid "%s" |
| 291 | 291 | msgstr "%s" |
| 292 | 292 | |
| 293 | −#: directives.c:1185 | |
| 293 | +#: directives.c:1175 | |
| 294 | 294 | #, c-format |
| 295 | 295 | msgid "invalid #%s directive" |
| 296 | 296 | msgstr "ungültige #%s-Direktive" |
| 297 | 297 | |
| 298 | −#: directives.c:1248 | |
| 298 | +#: directives.c:1238 | |
| 299 | 299 | #, c-format |
| 300 | 300 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 301 | 301 | msgstr "Pragmas im Namensraum »%s« werden ohne passende Namensauflösung registriert" |
| 302 | 302 | |
| 303 | −#: directives.c:1257 | |
| 303 | +#: directives.c:1247 | |
| 304 | 304 | #, c-format |
| 305 | 305 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 306 | 306 | msgstr "Pragma »%s« wird mit Namensauflösung und ohne Namensraum registriert" |
| 307 | 307 | |
| 308 | −#: directives.c:1275 | |
| 308 | +#: directives.c:1265 | |
| 309 | 309 | #, c-format |
| 310 | 310 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 311 | 311 | msgstr "»%s« wird sowohl als Pragma als auch als Pragma-Namensraum registriert" |
| 312 | 312 | |
| 313 | −#: directives.c:1278 | |
| 313 | +#: directives.c:1268 | |
| 314 | 314 | #, c-format |
| 315 | 315 | msgid "#pragma %s %s is already registered" |
| 316 | 316 | msgstr "#pragma %s %s ist bereits registriert" |
| 317 | 317 | |
| 318 | −#: directives.c:1281 | |
| 318 | +#: directives.c:1271 | |
| 319 | 319 | #, c-format |
| 320 | 320 | msgid "#pragma %s is already registered" |
| 321 | 321 | msgstr "#pragma %s ist bereits registriert" |
| 322 | 322 | |
| 323 | −#: directives.c:1311 | |
| 323 | +#: directives.c:1301 | |
| 324 | 324 | msgid "registering pragma with NULL handler" |
| 325 | 325 | msgstr "Pragma mit NULL-Handler wird registriert" |
| 326 | 326 | |
| 327 | −#: directives.c:1528 | |
| 327 | +#: directives.c:1518 | |
| 328 | 328 | msgid "#pragma once in main file" |
| 329 | 329 | msgstr "#pragma once in Hauptdatei" |
| 330 | 330 | |
| 331 | −#: directives.c:1551 | |
| 331 | +#: directives.c:1541 | |
| 332 | 332 | msgid "invalid #pragma push_macro directive" |
| 333 | 333 | msgstr "ungültige #pragma push_macro Direktive" |
| 334 | 334 | |
| 335 | −#: directives.c:1606 | |
| 335 | +#: directives.c:1596 | |
| 336 | 336 | msgid "invalid #pragma pop_macro directive" |
| 337 | 337 | msgstr "ungültige #pragma pop_macro Direktive" |
| 338 | 338 | |
| 339 | −#: directives.c:1661 | |
| 339 | +#: directives.c:1651 | |
| 340 | 340 | msgid "invalid #pragma GCC poison directive" |
| 341 | 341 | msgstr "ungültige #pragma GCC Poison Direktive" |
| 342 | 342 | |
| 343 | −#: directives.c:1670 | |
| 343 | +#: directives.c:1660 | |
| 344 | 344 | #, c-format |
| 345 | 345 | msgid "poisoning existing macro \"%s\"" |
| 346 | 346 | msgstr "schlechtes existierendes Makro »%s«" |
| 347 | 347 | |
| 348 | −#: directives.c:1689 | |
| 348 | +#: directives.c:1679 | |
| 349 | 349 | msgid "#pragma system_header ignored outside include file" |
| 350 | 350 | msgstr "#pragma system_header außerhalb include-Datei ignoriert" |
| 351 | 351 | |
| 352 | −#: directives.c:1714 | |
| 352 | +#: directives.c:1704 | |
| 353 | 353 | #, c-format |
| 354 | 354 | msgid "cannot find source file %s" |
| 355 | 355 | msgstr "Quelldatei %s kann nicht gefunden werden" |
| 356 | 356 | |
| 357 | −#: directives.c:1718 | |
| 357 | +#: directives.c:1708 | |
| 358 | 358 | #, c-format |
| 359 | 359 | msgid "current file is older than %s" |
| 360 | 360 | msgstr "aktuelle Datei ist älter als %s" |
| 361 | 361 | |
| 362 | −#: directives.c:1742 | |
| 362 | +#: directives.c:1732 | |
| 363 | 363 | #, c-format |
| 364 | 364 | msgid "invalid \"#pragma GCC %s\" directive" |
| 365 | 365 | msgstr "ungültige »#pragma GCC %s« Direktive" |
| 366 | 366 | |
| 367 | −#: directives.c:1943 | |
| 367 | +#: directives.c:1933 | |
| 368 | 368 | msgid "_Pragma takes a parenthesized string literal" |
| 369 | 369 | msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral" |
| 370 | 370 | |
| 371 | −#: directives.c:2064 | |
| 371 | +#: directives.c:2021 | |
| 372 | 372 | msgid "#else without #if" |
| 373 | 373 | msgstr "#else ohne #if" |
| 374 | 374 | |
| 375 | −#: directives.c:2069 | |
| 375 | +#: directives.c:2026 | |
| 376 | 376 | msgid "#else after #else" |
| 377 | 377 | msgstr "#else hinter #else" |
| 378 | 378 | |
| 379 | −#: directives.c:2071 directives.c:2104 | |
| 379 | +#: directives.c:2028 directives.c:2061 | |
| 380 | 380 | msgid "the conditional began here" |
| 381 | 381 | msgstr "die Bedingung begann hier" |
| 382 | 382 | |
| 383 | −#: directives.c:2097 | |
| 383 | +#: directives.c:2054 | |
| 384 | 384 | msgid "#elif without #if" |
| 385 | 385 | msgstr "#elif ohne #if" |
| 386 | 386 | |
| 387 | −#: directives.c:2102 | |
| 387 | +#: directives.c:2059 | |
| 388 | 388 | msgid "#elif after #else" |
| 389 | 389 | msgstr "#elif hinter #else" |
| 390 | 390 | |
| 391 | −#: directives.c:2133 | |
| 391 | +#: directives.c:2090 | |
| 392 | 392 | msgid "#endif without #if" |
| 393 | 393 | msgstr "#endif ohne #if" |
| 394 | 394 | |
| 395 | −#: directives.c:2213 | |
| 395 | +#: directives.c:2166 | |
| 396 | 396 | msgid "missing '(' after predicate" |
| 397 | 397 | msgstr "fehlende »(« hinter Prädikat" |
| 398 | 398 | |
| 399 | −#: directives.c:2228 | |
| 399 | +#: directives.c:2184 | |
| 400 | 400 | msgid "missing ')' to complete answer" |
| 401 | 401 | msgstr "fehlende »)«, um Antwort abzuschließen" |
| 402 | 402 | |
| 403 | −#: directives.c:2248 | |
| 403 | +#: directives.c:2196 | |
| 404 | 404 | msgid "predicate's answer is empty" |
| 405 | 405 | msgstr "Prädikatantwort ist leer" |
| 406 | 406 | |
| 407 | −#: directives.c:2275 | |
| 407 | +#: directives.c:2226 | |
| 408 | 408 | msgid "assertion without predicate" |
| 409 | 409 | msgstr "Behauptung ohne Prädikat" |
| 410 | 410 | |
| 411 | −#: directives.c:2278 | |
| 411 | +#: directives.c:2229 | |
| 412 | 412 | msgid "predicate must be an identifier" |
| 413 | 413 | msgstr "Prädikat muss ein Bezeichner sein" |
| 414 | 414 | |
| 415 | −#: directives.c:2364 | |
| 415 | +#: directives.c:2311 | |
| 416 | 416 | #, c-format |
| 417 | 417 | msgid "\"%s\" re-asserted" |
| 418 | 418 | msgstr "»%s« wieder behauptet" |
| 419 | 419 | |
| 420 | −#: directives.c:2656 | |
| 420 | +#: directives.c:2587 | |
| 421 | 421 | #, c-format |
| 422 | 422 | msgid "unterminated #%s" |
| 423 | 423 | msgstr "unbeendetes #%s" |
| 424 | 424 | |
| 425 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 425 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 426 | 426 | msgid "unterminated comment" |
| 427 | 427 | msgstr "nicht beendeter Kommentar" |
| 428 | 428 | |
| 429 | −#: errors.c:284 | |
| 429 | +#: errors.c:291 | |
| 430 | 430 | #, c-format |
| 431 | 431 | msgid "%s: %s" |
| 432 | 432 | msgstr "%s: %s" |
| 433 | 433 | |
| 434 | −#: errors.c:296 | |
| 434 | +#: errors.c:304 | |
| 435 | 435 | msgid "stdout" |
| 436 | 436 | msgstr "Standardausgabe" |
| 437 | 437 | |
| @@ -524,84 +524,84 @@ msgstr "(»%s« ist ein alternatives Token for »%s« in C++)" · 86 unmodified lines | ||
| 524 | 524 | msgid "this use of \"defined\" may not be portable" |
| 525 | 525 | msgstr "diese Verwendung von »defined« könnte nicht portierbar sein" |
| 526 | 526 | |
| 527 | −#: expr.c:1125 | |
| 527 | +#: expr.c:1109 | |
| 528 | 528 | msgid "user-defined literal in preprocessor expression" |
| 529 | 529 | msgstr "benutzerdefiniertes Symbol in Präprozessorausdruck" |
| 530 | 530 | |
| 531 | −#: expr.c:1130 | |
| 531 | +#: expr.c:1114 | |
| 532 | 532 | msgid "floating constant in preprocessor expression" |
| 533 | 533 | msgstr "Gleitkommakonstante in Präprozessorausdruck" |
| 534 | 534 | |
| 535 | −#: expr.c:1136 | |
| 535 | +#: expr.c:1120 | |
| 536 | 536 | msgid "imaginary number in preprocessor expression" |
| 537 | 537 | msgstr "imaginäre Zahl in Präprozessorausdruck" |
| 538 | 538 | |
| 539 | −#: expr.c:1189 | |
| 539 | +#: expr.c:1173 | |
| 540 | 540 | #, c-format |
| 541 | 541 | msgid "\"%s\" is not defined, evaluates to 0" |
| 542 | 542 | msgstr "»%s« ist nicht definiert, wird zu 0 ausgewertet" |
| 543 | 543 | |
| 544 | −#: expr.c:1202 | |
| 544 | +#: expr.c:1186 | |
| 545 | 545 | msgid "assertions are a GCC extension" |
| 546 | 546 | msgstr "Assertions sind eine GCC-Erweiterung" |
| 547 | 547 | |
| 548 | −#: expr.c:1205 | |
| 548 | +#: expr.c:1189 | |
| 549 | 549 | msgid "assertions are a deprecated extension" |
| 550 | 550 | msgstr "Assertions sind eine veraltete Erweiterung" |
| 551 | 551 | |
| 552 | −#: expr.c:1451 | |
| 552 | +#: expr.c:1435 | |
| 553 | 553 | #, c-format |
| 554 | 554 | msgid "unbalanced stack in %s" |
| 555 | 555 | msgstr "unausgeglichener Keller in %s" |
| 556 | 556 | |
| 557 | −#: expr.c:1471 | |
| 557 | +#: expr.c:1455 | |
| 558 | 558 | #, c-format |
| 559 | 559 | msgid "impossible operator '%u'" |
| 560 | 560 | msgstr "unmöglicher Operator »%u«" |
| 561 | 561 | |
| 562 | −#: expr.c:1572 | |
| 562 | +#: expr.c:1556 | |
| 563 | 563 | msgid "missing ')' in expression" |
| 564 | 564 | msgstr "fehlende »)« in Ausdruck" |
| 565 | 565 | |
| 566 | −#: expr.c:1601 | |
| 566 | +#: expr.c:1585 | |
| 567 | 567 | msgid "'?' without following ':'" |
| 568 | 568 | msgstr "»?« ohne folgenden »:«" |
| 569 | 569 | |
| 570 | −#: expr.c:1611 | |
| 570 | +#: expr.c:1595 | |
| 571 | 571 | msgid "integer overflow in preprocessor expression" |
| 572 | 572 | msgstr "Ganzzahlüberlauf in Präprozessorausdruck" |
| 573 | 573 | |
| 574 | −#: expr.c:1616 | |
| 574 | +#: expr.c:1600 | |
| 575 | 575 | msgid "missing '(' in expression" |
| 576 | 576 | msgstr "fehlende »(« in Ausdruck" |
| 577 | 577 | |
| 578 | −#: expr.c:1648 | |
| 578 | +#: expr.c:1632 | |
| 579 | 579 | #, c-format |
| 580 | 580 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 581 | 581 | msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen" |
| 582 | 582 | |
| 583 | −#: expr.c:1653 | |
| 583 | +#: expr.c:1637 | |
| 584 | 584 | #, c-format |
| 585 | 585 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 586 | 586 | msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen" |
| 587 | 587 | |
| 588 | −#: expr.c:1912 | |
| 588 | +#: expr.c:1896 | |
| 589 | 589 | msgid "traditional C rejects the unary plus operator" |
| 590 | 590 | msgstr "traditionelles C weist den unären Plus-Operator zurück" |
| 591 | 591 | |
| 592 | −#: expr.c:2010 | |
| 592 | +#: expr.c:1994 | |
| 593 | 593 | msgid "comma operator in operand of #if" |
| 594 | 594 | msgstr "Kommaoperator in Operand von #if" |
| 595 | 595 | |
| 596 | −#: expr.c:2146 | |
| 596 | +#: expr.c:2130 | |
| 597 | 597 | msgid "division by zero in #if" |
| 598 | 598 | msgstr "Division durch Null in #if" |
| 599 | 599 | |
| 600 | −#: expr.c:2243 | |
| 600 | +#: expr.c:2227 | |
| 601 | 601 | msgid "operator \"__has_include__\" requires a header string" |
| 602 | 602 | msgstr "Operator »__has_include__« erfordert eine Header-Zeichenkette" |
| 603 | 603 | |
| 604 | −#: expr.c:2259 | |
| 604 | +#: expr.c:2243 | |
| 605 | 605 | msgid "missing ')' after \"__has_include__\"" |
| 606 | 606 | msgstr "fehlende »)« hinter »__has_include__«" |
| 607 | 607 | |
| @@ -618,40 +618,40 @@ msgstr "-Winvalid-pch für mehr Informationen verwenden" · 10 unmodified lines | ||
| 618 | 618 | msgid "no include path in which to search for %s" |
| 619 | 619 | msgstr "kein Include-Pfad, um %s zu finden" |
| 620 | 620 | |
| 621 | −#: files.c:1441 | |
| 621 | +#: files.c:1455 | |
| 622 | 622 | msgid "Multiple include guards may be useful for:\n" |
| 623 | 623 | msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n" |
| 624 | 624 | |
| 625 | −#: init.c:565 | |
| 625 | +#: init.c:569 | |
| 626 | 626 | msgid "cppchar_t must be an unsigned type" |
| 627 | 627 | msgstr "cppchar_t muss ein vorzeichenloser Typ sein" |
| 628 | 628 | |
| 629 | −#: init.c:569 | |
| 629 | +#: init.c:573 | |
| 630 | 630 | #, c-format |
| 631 | 631 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 632 | 632 | msgstr "Präprozessorarithmetik hat maximale Präzision von %lu Bits; Ziel erfordert %lu Bits" |
| 633 | 633 | |
| 634 | −#: init.c:576 | |
| 634 | +#: init.c:580 | |
| 635 | 635 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 636 | 636 | msgstr "CPP-Arithmetik muss mindestens so genau sein wie das Ziel int" |
| 637 | 637 | |
| 638 | −#: init.c:579 | |
| 638 | +#: init.c:583 | |
| 639 | 639 | msgid "target char is less than 8 bits wide" |
| 640 | 640 | msgstr "Ziel-char ist weniger als 8 Bits breit" |
| 641 | 641 | |
| 642 | −#: init.c:583 | |
| 642 | +#: init.c:587 | |
| 643 | 643 | msgid "target wchar_t is narrower than target char" |
| 644 | 644 | msgstr "Ziel-wchar_t ist schmaler als Ziel-char" |
| 645 | 645 | |
| 646 | −#: init.c:587 | |
| 646 | +#: init.c:591 | |
| 647 | 647 | msgid "target int is narrower than target char" |
| 648 | 648 | msgstr "Ziel-int ist schmaler als Ziel-char" |
| 649 | 649 | |
| 650 | −#: init.c:592 | |
| 650 | +#: init.c:596 | |
| 651 | 651 | msgid "CPP half-integer narrower than CPP character" |
| 652 | 652 | msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen" |
| 653 | 653 | |
| 654 | −#: init.c:596 | |
| 654 | +#: init.c:600 | |
| 655 | 655 | #, c-format |
| 656 | 656 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 657 | 657 | 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 | ||
| 723 | 723 | msgid "identifier \"%s\" is a special operator name in C++" |
| 724 | 724 | msgstr "Bezeichner »%s« ist ein besonderer Operatorname in C++" |
| 725 | 725 | |
| 726 | −#: lex.c:1811 | |
| 726 | +#: lex.c:1826 | |
| 727 | 727 | msgid "raw string delimiter longer than 16 characters" |
| 728 | 728 | msgstr "Roh-Zeichenketten-Trennsymbol länger als 16 Zeichen" |
| 729 | 729 | |
| 730 | −#: lex.c:1815 | |
| 730 | +#: lex.c:1830 | |
| 731 | 731 | msgid "invalid new-line in raw string delimiter" |
| 732 | 732 | msgstr "ungültiger Zeilenumbruch (neue Zeile) in Roh-Zeichenketten-Trennsymbol" |
| 733 | 733 | |
| 734 | −#: lex.c:1819 | |
| 734 | +#: lex.c:1834 | |
| 735 | 735 | #, c-format |
| 736 | 736 | msgid "invalid character '%c' in raw string delimiter" |
| 737 | 737 | msgstr "ungültiges Zeichen »%c« in Roh-Zeichenketten-Trennsymbol" |
| 738 | 738 | |
| 739 | −#: lex.c:1868 lex.c:1890 | |
| 739 | +#: lex.c:1883 lex.c:1905 | |
| 740 | 740 | msgid "unterminated raw string" |
| 741 | 741 | msgstr "unbeendete Roh-Zeichenkette" |
| 742 | 742 | |
| 743 | −#: lex.c:1912 lex.c:2043 | |
| 743 | +#: lex.c:1925 lex.c:2054 | |
| 744 | 744 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 745 | 745 | msgstr "ungültiges Suffix an Literal; C++11 erfordert Leerzeichen zwischen Literal und Zeichenketten-Makro" |
| 746 | 746 | |
| 747 | −#: lex.c:2024 | |
| 747 | +#: lex.c:2037 | |
| 748 | 748 | msgid "null character(s) preserved in literal" |
| 749 | 749 | msgstr "Null-Zeichen im Literal erhalten" |
| 750 | 750 | |
| 751 | −#: lex.c:2027 | |
| 751 | +#: lex.c:2040 | |
| 752 | 752 | #, c-format |
| 753 | 753 | msgid "missing terminating %c character" |
| 754 | 754 | msgstr "fehlendes abschließendes Zeichen %c" |
| 755 | 755 | |
| 756 | −#: lex.c:2061 | |
| 756 | +#: lex.c:2072 | |
| 757 | 757 | msgid "C++11 requires a space between string literal and macro" |
| 758 | 758 | msgstr "C++11 erfordert Leerzeichen zwischen Zeichenketten-Literal und Makro" |
| 759 | 759 | |
| 760 | −#: lex.c:2865 lex.c:2899 | |
| 760 | +#: lex.c:2876 lex.c:2910 | |
| 761 | 761 | msgid "C++ style comments are not allowed in ISO C90" |
| 762 | 762 | msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt" |
| 763 | 763 | |
| 764 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 764 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 765 | 765 | msgid "(this will be reported only once per input file)" |
| 766 | 766 | msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)" |
| 767 | 767 | |
| 768 | −#: lex.c:2876 | |
| 768 | +#: lex.c:2887 | |
| 769 | 769 | msgid "C++ style comments are incompatible with C90" |
| 770 | 770 | msgstr "C++-Stil-Kommentare sind zu C90 inkompatibel" |
| 771 | 771 | |
| 772 | −#: lex.c:2907 | |
| 772 | +#: lex.c:2919 | |
| 773 | 773 | msgid "multi-line comment" |
| 774 | 774 | msgstr "mehrzeiliger Kommentar" |
| 775 | 775 | |
| 776 | −#: lex.c:3287 | |
| 776 | +#: lex.c:3299 | |
| 777 | 777 | #, c-format |
| 778 | 778 | msgid "unspellable token %s" |
| 779 | 779 | msgstr "nicht buchstabierbares Token %s" |
| 780 | 780 | |
| 781 | −#: macro.c:93 | |
| 781 | +#: macro.c:94 | |
| 782 | 782 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 783 | 783 | msgstr "»##« kann an einem beliebigen Enden von __VA_OPT__ auftreten" |
| 784 | 784 | |
| 785 | −#: macro.c:352 | |
| 785 | +#: macro.c:354 | |
| 786 | 786 | #, c-format |
| 787 | 787 | msgid "macro \"%s\" is not used" |
| 788 | 788 | msgstr "Makro »%s« wird nicht benutzt" |
| 789 | 789 | |
| 790 | −#: macro.c:391 macro.c:639 | |
| 790 | +#: macro.c:393 macro.c:641 | |
| 791 | 791 | #, c-format |
| 792 | 792 | msgid "invalid built-in macro \"%s\"" |
| 793 | 793 | msgstr "ungültiges eingebautes Makro »%s«" |
| 794 | 794 | |
| 795 | −#: macro.c:398 macro.c:500 | |
| 795 | +#: macro.c:400 macro.c:502 | |
| 796 | 796 | #, c-format |
| 797 | 797 | msgid "macro \"%s\" might prevent reproducible builds" |
| 798 | 798 | msgstr "Das Makro »%s« könnte reproduzierbare Builds verhindern" |
| 799 | 799 | |
| 800 | −#: macro.c:429 | |
| 800 | +#: macro.c:431 | |
| 801 | 801 | msgid "could not determine file timestamp" |
| 802 | 802 | msgstr "Zeitstempel der Datei konnte nicht ermittelt werden" |
| 803 | 803 | |
| 804 | −#: macro.c:546 | |
| 804 | +#: macro.c:548 | |
| 805 | 805 | msgid "could not determine date and time" |
| 806 | 806 | msgstr "Datum und Zeit konnten nicht bestimmt werden" |
| 807 | 807 | |
| 808 | −#: macro.c:562 | |
| 808 | +#: macro.c:564 | |
| 809 | 809 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 810 | 810 | msgstr "__COUNTER__ innerhalb von Anweisung mit -fdirectives-only expandiert" |
| 811 | 811 | |
| 812 | −#: macro.c:758 | |
| 812 | +#: macro.c:760 | |
| 813 | 813 | msgid "invalid string literal, ignoring final '\\'" |
| 814 | 814 | msgstr "ungültiges Zeichenkettenliteral, abschließendes »\\« wird ignoriert" |
| 815 | 815 | |
| 816 | −#: macro.c:820 | |
| 816 | +#: macro.c:822 | |
| 817 | 817 | #, c-format |
| 818 | 818 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 819 | 819 | msgstr "das Einfügen von »%s« und »%s« ergibt kein gültiges Präprozessor-Token" |
| 820 | 820 | |
| 821 | −#: macro.c:946 | |
| 821 | +#: macro.c:948 | |
| 822 | 822 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 823 | 823 | msgstr "ISO-C++11 erfordert mindestens ein Argument für »...« in einem variadischen Makro" |
| 824 | 824 | |
| 825 | −#: macro.c:950 | |
| 825 | +#: macro.c:952 | |
| 826 | 826 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 827 | 827 | msgstr "ISO-C99 erfordert mindestens ein Argument für »...« in einem variadischen Makro" |
| 828 | 828 | |
| 829 | −#: macro.c:957 | |
| 829 | +#: macro.c:959 | |
| 830 | 830 | #, c-format |
| 831 | 831 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 832 | 832 | msgstr "Makro »%s« erfordert %u Argumente, aber nur %u wurden angegeben" |
| 833 | 833 | |
| 834 | −#: macro.c:962 | |
| 834 | +#: macro.c:964 | |
| 835 | 835 | #, c-format |
| 836 | 836 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 837 | 837 | msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es akzeptiert nur %u" |
| 838 | 838 | |
| 839 | −#: macro.c:1156 traditional.c:819 | |
| 839 | +#: macro.c:1162 traditional.c:827 | |
| 840 | 840 | #, c-format |
| 841 | 841 | msgid "unterminated argument list invoking macro \"%s\"" |
| 842 | 842 | msgstr "unvollendete Argumentliste beim Makroaufruf »%s«" |
| 843 | 843 | |
| 844 | −#: macro.c:1307 | |
| 844 | +#: macro.c:1304 | |
| 845 | 845 | #, c-format |
| 846 | 846 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 847 | 847 | msgstr "funktionsähnliches Makro »%s« muss mit Argumenten in traditionellem C verwendet werden" |
| 848 | 848 | |
| 849 | −#: macro.c:2003 | |
| 849 | +#: macro.c:2083 | |
| 850 | 850 | #, c-format |
| 851 | 851 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 852 | 852 | msgstr "Beim Ausführen des Arguments %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C++98 unbestimmt" |
| 853 | 853 | |
| 854 | −#: macro.c:2011 macro.c:2020 | |
| 854 | +#: macro.c:2091 macro.c:2100 | |
| 855 | 855 | #, c-format |
| 856 | 856 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 857 | 857 | msgstr "Beim Ausführen des Arguments %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C90 unbestimmt" |
| 858 | 858 | |
| 859 | −#: macro.c:2984 | |
| 859 | +#: macro.c:3059 | |
| 860 | 860 | #, c-format |
| 861 | 861 | msgid "duplicate macro parameter \"%s\"" |
| 862 | 862 | msgstr "doppelter Makroparameter »%s«" |
| 863 | 863 | |
| 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 | |
| 865 | 870 | #, 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" | |
| 868 | 873 | |
| 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" | |
| 872 | 877 | |
| 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" | |
| 876 | 881 | |
| 877 | −#: macro.c:3081 | |
| 882 | +#: macro.c:3145 | |
| 883 | +msgid "expected ')' after \"...\"" | |
| 884 | +msgstr "»)« nach »...« erwartet" | |
| 885 | + | |
| 886 | +#: macro.c:3202 | |
| 878 | 887 | msgid "anonymous variadic macros were introduced in C++11" |
| 879 | 888 | msgstr "anonyme variadische Makros wurden in C++11 eingeführt" |
| 880 | 889 | |
| 881 | −#: macro.c:3085 macro.c:3090 | |
| 890 | +#: macro.c:3203 macro.c:3207 | |
| 882 | 891 | msgid "anonymous variadic macros were introduced in C99" |
| 883 | 892 | msgstr "anonyme variadische Makros wurden in C99 eingeführt" |
| 884 | 893 | |
| 885 | −#: macro.c:3097 | |
| 894 | +#: macro.c:3213 | |
| 886 | 895 | msgid "ISO C++ does not permit named variadic macros" |
| 887 | 896 | msgstr "ISO-C++ erlaubt keine benannten variadischen Makros" |
| 888 | 897 | |
| 889 | −#: macro.c:3100 | |
| 898 | +#: macro.c:3214 | |
| 890 | 899 | msgid "ISO C does not permit named variadic macros" |
| 891 | 900 | msgstr "ISO-C erlaubt keine benannten variadischen Makros" |
| 892 | 901 | |
| 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 | |
| 898 | 903 | msgid "'##' cannot appear at either end of a macro expansion" |
| 899 | 904 | msgstr "»##« kann nicht an den Enden einer Makroexpansion auftreten" |
| 900 | 905 | |
| 901 | −#: macro.c:3198 | |
| 906 | +#: macro.c:3298 | |
| 902 | 907 | msgid "ISO C++11 requires whitespace after the macro name" |
| 903 | 908 | msgstr "ISO-C++11 erfordert Leerzeichen hinter Makroname" |
| 904 | 909 | |
| 905 | −#: macro.c:3201 | |
| 910 | +#: macro.c:3299 | |
| 906 | 911 | msgid "ISO C99 requires whitespace after the macro name" |
| 907 | 912 | msgstr "ISO-C99 erfordert Leerzeichen hinter Makroname" |
| 908 | 913 | |
| 909 | −#: macro.c:3226 | |
| 914 | +#: macro.c:3323 | |
| 910 | 915 | msgid "missing whitespace after the macro name" |
| 911 | 916 | msgstr "Leerzeichen hinter Makroname fehlt" |
| 912 | 917 | |
| 913 | −#: macro.c:3263 | |
| 918 | +#: macro.c:3373 | |
| 914 | 919 | msgid "'#' is not followed by a macro parameter" |
| 915 | 920 | msgstr "»#« wird nicht von einem Makroparameter gefolgt" |
| 916 | 921 | |
| 917 | −#: macro.c:3430 | |
| 922 | +#: macro.c:3524 | |
| 918 | 923 | #, c-format |
| 919 | 924 | msgid "\"%s\" redefined" |
| 920 | 925 | msgstr "»%s« redefiniert" |
| 921 | 926 | |
| 922 | −#: macro.c:3435 | |
| 927 | +#: macro.c:3529 | |
| 923 | 928 | msgid "this is the location of the previous definition" |
| 924 | 929 | msgstr "dies ist die Stelle der vorherigen Definition" |
| 925 | 930 | |
| 926 | −#: macro.c:3496 | |
| 931 | +#: macro.c:3633 | |
| 927 | 932 | #, c-format |
| 928 | 933 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 929 | 934 | msgstr "Makroargument »%s« würde in traditionellem C zur Zeichenkette umgewandelt werden" |
| 930 | 935 | |
| 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 | |
| 937 | 937 | msgid "while writing precompiled header" |
| 938 | 938 | msgstr "beim Schreiben des vorkompilierten Headers" |
| 939 | 939 | |
| 940 | −#: pch.c:621 | |
| 940 | +#: pch.c:616 | |
| 941 | 941 | #, c-format |
| 942 | 942 | msgid "%s: not used because `%.*s' is poisoned" |
| 943 | 943 | msgstr "%s: nicht verwendet, da »%.*s« vergiftet ist" |
| 944 | 944 | |
| 945 | −#: pch.c:643 | |
| 945 | +#: pch.c:638 | |
| 946 | 946 | #, c-format |
| 947 | 947 | msgid "%s: not used because `%.*s' not defined" |
| 948 | 948 | msgstr "%s: nicht verwendet, da »%.*s« nicht definiert" |
| 949 | 949 | |
| 950 | −#: pch.c:655 | |
| 950 | +#: pch.c:650 | |
| 951 | 951 | #, c-format |
| 952 | 952 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 953 | 953 | msgstr "%s: nicht verwendet, da »%.*s« als »%s« statt als »%.*s« definiert wurde" |
| 954 | 954 | |
| 955 | −#: pch.c:696 | |
| 955 | +#: pch.c:691 | |
| 956 | 956 | #, c-format |
| 957 | 957 | msgid "%s: not used because `%s' is defined" |
| 958 | 958 | msgstr "%s: nicht verwendet, da »%s« definiert ist" |
| 959 | 959 | |
| 960 | −#: pch.c:716 | |
| 960 | +#: pch.c:711 | |
| 961 | 961 | #, c-format |
| 962 | 962 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 963 | 963 | msgstr "%s: nicht verwendet, da »__COUNTER__« ungültig ist" |
| 964 | 964 | |
| 965 | −#: pch.c:725 pch.c:903 | |
| 965 | +#: pch.c:720 pch.c:878 | |
| 966 | 966 | msgid "while reading precompiled header" |
| 967 | 967 | msgstr "beim Lesen des vorkompilierten Headers" |
| 968 | 968 | |
| 969 | −#: traditional.c:889 | |
| 969 | +#: traditional.c:896 | |
| 970 | 970 | #, c-format |
| 971 | 971 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 972 | 972 | msgstr "Rekursion bei Expansion des Makros »%s« entdeckt" |
| 973 | 973 | |
| 974 | −#: traditional.c:1108 | |
| 974 | +#: traditional.c:1119 | |
| 975 | 975 | msgid "syntax error in macro parameter list" |
| 976 | 976 | msgstr "Syntaxfehler in Makroparameterliste" |
| 977 | 977 | |
| 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 | + | |
| 978 | 993 | #~ msgid "NULL directory in find_file" |
| 979 | 994 | #~ msgstr "NULL-Verzeichnis in find_file" |
| 980 | 995 | |
Binary file not shown.
| @@ -6,7 +6,7 @@ msgid "" · 5 unmodified lines | ||
| 6 | 6 | msgstr "" |
| 7 | 7 | "Project-Id-Version: gcc 3.2\n" |
| 8 | 8 | "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" | |
| 10 | 10 | "PO-Revision-Date: 2002-08-18 15:46+0100\n" |
| 11 | 11 | "Last-Translator: Simos Xenitellis <simos@hellug.gr>\n" |
| 12 | 12 | "Language-Team: Greek <nls@tux.hellug.gr>\n" |
| @@ -86,7 +86,7 @@ msgstr "" · 73 unmodified lines | ||
| 86 | 86 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 87 | 87 | msgstr "" |
| 88 | 88 | |
| 89 | −#: charset.c:1181 charset.c:2000 | |
| 89 | +#: charset.c:1181 charset.c:2002 | |
| 90 | 90 | msgid "converting UCN to source character set" |
| 91 | 91 | msgstr "" |
| 92 | 92 | |
| @@ -143,306 +143,306 @@ msgstr " · 50 unmodified lines | ||
| 143 | 143 | msgid "missing open quote" |
| 144 | 144 | msgstr "������� � ���������������� ��������" |
| 145 | 145 | |
| 146 | −#: charset.c:1827 charset.c:1891 | |
| 146 | +#: charset.c:1829 charset.c:1893 | |
| 147 | 147 | #, fuzzy |
| 148 | 148 | msgid "character constant too long for its type" |
| 149 | 149 | msgstr "�� ������� �������� ���������� ��� �������������" |
| 150 | 150 | |
| 151 | −#: charset.c:1830 | |
| 151 | +#: charset.c:1832 | |
| 152 | 152 | #, fuzzy |
| 153 | 153 | msgid "multi-character character constant" |
| 154 | 154 | msgstr "����� ����� ��������� `%s'" |
| 155 | 155 | |
| 156 | −#: charset.c:1931 | |
| 156 | +#: charset.c:1933 | |
| 157 | 157 | #, fuzzy |
| 158 | 158 | msgid "empty character constant" |
| 159 | 159 | msgstr "���� �������������" |
| 160 | 160 | |
| 161 | −#: charset.c:2047 | |
| 161 | +#: charset.c:2049 | |
| 162 | 162 | #, fuzzy, c-format |
| 163 | 163 | msgid "failure to convert %s to %s" |
| 164 | 164 | msgstr "��� ����� ������ �� ������������ �� %s `%s' ��� `%s'" |
| 165 | 165 | |
| 166 | −#: directives.c:235 directives.c:278 | |
| 166 | +#: directives.c:229 directives.c:272 | |
| 167 | 167 | #, c-format |
| 168 | 168 | msgid "extra tokens at end of #%s directive" |
| 169 | 169 | msgstr "" |
| 170 | 170 | |
| 171 | −#: directives.c:385 | |
| 171 | +#: directives.c:379 | |
| 172 | 172 | #, c-format |
| 173 | 173 | msgid "#%s is a GCC extension" |
| 174 | 174 | msgstr "" |
| 175 | 175 | |
| 176 | −#: directives.c:390 | |
| 176 | +#: directives.c:384 | |
| 177 | 177 | #, fuzzy, c-format |
| 178 | 178 | msgid "#%s is a deprecated GCC extension" |
| 179 | 179 | msgstr "�� `%s' ��� ����� �������� ������" |
| 180 | 180 | |
| 181 | −#: directives.c:403 | |
| 181 | +#: directives.c:397 | |
| 182 | 182 | msgid "suggest not using #elif in traditional C" |
| 183 | 183 | msgstr "" |
| 184 | 184 | |
| 185 | −#: directives.c:406 | |
| 185 | +#: directives.c:400 | |
| 186 | 186 | #, c-format |
| 187 | 187 | msgid "traditional C ignores #%s with the # indented" |
| 188 | 188 | msgstr "" |
| 189 | 189 | |
| 190 | −#: directives.c:410 | |
| 190 | +#: directives.c:404 | |
| 191 | 191 | #, c-format |
| 192 | 192 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 193 | 193 | msgstr "" |
| 194 | 194 | |
| 195 | −#: directives.c:436 | |
| 195 | +#: directives.c:430 | |
| 196 | 196 | msgid "embedding a directive within macro arguments is not portable" |
| 197 | 197 | msgstr "" |
| 198 | 198 | |
| 199 | −#: directives.c:456 | |
| 199 | +#: directives.c:450 | |
| 200 | 200 | msgid "style of line directive is a GCC extension" |
| 201 | 201 | msgstr "" |
| 202 | 202 | |
| 203 | −#: directives.c:537 | |
| 203 | +#: directives.c:531 | |
| 204 | 204 | #, c-format |
| 205 | 205 | msgid "invalid preprocessing directive #%s" |
| 206 | 206 | msgstr "" |
| 207 | 207 | |
| 208 | −#: directives.c:606 | |
| 208 | +#: directives.c:600 | |
| 209 | 209 | msgid "\"defined\" cannot be used as a macro name" |
| 210 | 210 | msgstr "" |
| 211 | 211 | |
| 212 | −#: directives.c:611 | |
| 212 | +#: directives.c:605 | |
| 213 | 213 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 214 | 214 | msgstr "" |
| 215 | 215 | |
| 216 | −#: directives.c:617 | |
| 216 | +#: directives.c:611 | |
| 217 | 217 | #, c-format |
| 218 | 218 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 219 | 219 | msgstr "" |
| 220 | 220 | |
| 221 | −#: directives.c:620 | |
| 221 | +#: directives.c:614 | |
| 222 | 222 | #, c-format |
| 223 | 223 | msgid "no macro name given in #%s directive" |
| 224 | 224 | msgstr "" |
| 225 | 225 | |
| 226 | −#: directives.c:623 | |
| 226 | +#: directives.c:617 | |
| 227 | 227 | #, fuzzy |
| 228 | 228 | msgid "macro names must be identifiers" |
| 229 | 229 | msgstr "������ ������������� ���������" |
| 230 | 230 | |
| 231 | −#: directives.c:672 directives.c:677 | |
| 231 | +#: directives.c:666 directives.c:671 | |
| 232 | 232 | #, fuzzy, c-format |
| 233 | 233 | msgid "undefining \"%s\"" |
| 234 | 234 | msgstr "�� �������� ����� %s" |
| 235 | 235 | |
| 236 | −#: directives.c:732 | |
| 236 | +#: directives.c:727 | |
| 237 | 237 | #, fuzzy |
| 238 | 238 | msgid "missing terminating > character" |
| 239 | 239 | msgstr "���� ���������� �� ������ ����������" |
| 240 | 240 | |
| 241 | −#: directives.c:791 | |
| 241 | +#: directives.c:786 | |
| 242 | 242 | #, c-format |
| 243 | 243 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 244 | 244 | msgstr "" |
| 245 | 245 | |
| 246 | −#: directives.c:837 | |
| 246 | +#: directives.c:828 | |
| 247 | 247 | #, fuzzy, c-format |
| 248 | 248 | msgid "empty filename in #%s" |
| 249 | 249 | msgstr "�� �������� ����� %s" |
| 250 | 250 | |
| 251 | −#: directives.c:847 | |
| 251 | +#: directives.c:835 | |
| 252 | 252 | msgid "#include nested too deeply" |
| 253 | 253 | msgstr "" |
| 254 | 254 | |
| 255 | −#: directives.c:888 | |
| 255 | +#: directives.c:877 | |
| 256 | 256 | msgid "#include_next in primary source file" |
| 257 | 257 | msgstr "" |
| 258 | 258 | |
| 259 | −#: directives.c:914 | |
| 259 | +#: directives.c:903 | |
| 260 | 260 | #, c-format |
| 261 | 261 | msgid "invalid flag \"%s\" in line directive" |
| 262 | 262 | msgstr "" |
| 263 | 263 | |
| 264 | −#: directives.c:974 | |
| 264 | +#: directives.c:963 | |
| 265 | 265 | msgid "unexpected end of file after #line" |
| 266 | 266 | msgstr "" |
| 267 | 267 | |
| 268 | −#: directives.c:977 | |
| 268 | +#: directives.c:966 | |
| 269 | 269 | #, fuzzy, c-format |
| 270 | 270 | msgid "\"%s\" after #line is not a positive integer" |
| 271 | 271 | msgstr "%s' ��� ����� ������ ������� ��������." |
| 272 | 272 | |
| 273 | −#: directives.c:983 directives.c:985 | |
| 273 | +#: directives.c:972 directives.c:974 | |
| 274 | 274 | #, fuzzy |
| 275 | 275 | msgid "line number out of range" |
| 276 | 276 | msgstr "%s: ������� ������� ��� ��� �� ����" |
| 277 | 277 | |
| 278 | −#: directives.c:998 directives.c:1079 | |
| 278 | +#: directives.c:987 directives.c:1068 | |
| 279 | 279 | #, fuzzy, c-format |
| 280 | 280 | msgid "\"%s\" is not a valid filename" |
| 281 | 281 | msgstr "%s' ��� ����� ������ ������� ��������." |
| 282 | 282 | |
| 283 | −#: directives.c:1039 | |
| 283 | +#: directives.c:1028 | |
| 284 | 284 | #, fuzzy, c-format |
| 285 | 285 | msgid "\"%s\" after # is not a positive integer" |
| 286 | 286 | msgstr "%s' ��� ����� ������ ������� ��������." |
| 287 | 287 | |
| 288 | −#: directives.c:1098 | |
| 288 | +#: directives.c:1087 | |
| 289 | 289 | #, c-format |
| 290 | 290 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 291 | 291 | msgstr "" |
| 292 | 292 | |
| 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 | |
| 294 | 294 | #, c-format |
| 295 | 295 | msgid "%s" |
| 296 | 296 | msgstr "%s" |
| 297 | 297 | |
| 298 | −#: directives.c:1185 | |
| 298 | +#: directives.c:1175 | |
| 299 | 299 | #, fuzzy, c-format |
| 300 | 300 | msgid "invalid #%s directive" |
| 301 | 301 | msgstr "%%%c: �������������� ������ �� ������." |
| 302 | 302 | |
| 303 | −#: directives.c:1248 | |
| 303 | +#: directives.c:1238 | |
| 304 | 304 | #, c-format |
| 305 | 305 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 306 | 306 | msgstr "" |
| 307 | 307 | |
| 308 | −#: directives.c:1257 | |
| 308 | +#: directives.c:1247 | |
| 309 | 309 | #, c-format |
| 310 | 310 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 311 | 311 | msgstr "" |
| 312 | 312 | |
| 313 | −#: directives.c:1275 | |
| 313 | +#: directives.c:1265 | |
| 314 | 314 | #, c-format |
| 315 | 315 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 316 | 316 | msgstr "" |
| 317 | 317 | |
| 318 | −#: directives.c:1278 | |
| 318 | +#: directives.c:1268 | |
| 319 | 319 | #, c-format |
| 320 | 320 | msgid "#pragma %s %s is already registered" |
| 321 | 321 | msgstr "" |
| 322 | 322 | |
| 323 | −#: directives.c:1281 | |
| 323 | +#: directives.c:1271 | |
| 324 | 324 | #, fuzzy, c-format |
| 325 | 325 | msgid "#pragma %s is already registered" |
| 326 | 326 | msgstr "� ������ ���������� `%s' �������� ���" |
| 327 | 327 | |
| 328 | −#: directives.c:1311 | |
| 328 | +#: directives.c:1301 | |
| 329 | 329 | msgid "registering pragma with NULL handler" |
| 330 | 330 | msgstr "" |
| 331 | 331 | |
| 332 | −#: directives.c:1528 | |
| 332 | +#: directives.c:1518 | |
| 333 | 333 | msgid "#pragma once in main file" |
| 334 | 334 | msgstr "" |
| 335 | 335 | |
| 336 | −#: directives.c:1551 | |
| 336 | +#: directives.c:1541 | |
| 337 | 337 | #, fuzzy |
| 338 | 338 | msgid "invalid #pragma push_macro directive" |
| 339 | 339 | msgstr "%%%c: �������������� ������ �� ������." |
| 340 | 340 | |
| 341 | −#: directives.c:1606 | |
| 341 | +#: directives.c:1596 | |
| 342 | 342 | #, fuzzy |
| 343 | 343 | msgid "invalid #pragma pop_macro directive" |
| 344 | 344 | msgstr "%%%c: �������������� ������ �� ������." |
| 345 | 345 | |
| 346 | −#: directives.c:1661 | |
| 346 | +#: directives.c:1651 | |
| 347 | 347 | msgid "invalid #pragma GCC poison directive" |
| 348 | 348 | msgstr "" |
| 349 | 349 | |
| 350 | −#: directives.c:1670 | |
| 350 | +#: directives.c:1660 | |
| 351 | 351 | #, c-format |
| 352 | 352 | msgid "poisoning existing macro \"%s\"" |
| 353 | 353 | msgstr "" |
| 354 | 354 | |
| 355 | −#: directives.c:1689 | |
| 355 | +#: directives.c:1679 | |
| 356 | 356 | msgid "#pragma system_header ignored outside include file" |
| 357 | 357 | msgstr "" |
| 358 | 358 | |
| 359 | −#: directives.c:1714 | |
| 359 | +#: directives.c:1704 | |
| 360 | 360 | #, fuzzy, c-format |
| 361 | 361 | msgid "cannot find source file %s" |
| 362 | 362 | msgstr "�������� ���������� ��������: %s" |
| 363 | 363 | |
| 364 | −#: directives.c:1718 | |
| 364 | +#: directives.c:1708 | |
| 365 | 365 | #, c-format |
| 366 | 366 | msgid "current file is older than %s" |
| 367 | 367 | msgstr "" |
| 368 | 368 | |
| 369 | −#: directives.c:1742 | |
| 369 | +#: directives.c:1732 | |
| 370 | 370 | #, fuzzy, c-format |
| 371 | 371 | msgid "invalid \"#pragma GCC %s\" directive" |
| 372 | 372 | msgstr "� ���������� `%s' ��� ����� ������." |
| 373 | 373 | |
| 374 | −#: directives.c:1943 | |
| 374 | +#: directives.c:1933 | |
| 375 | 375 | msgid "_Pragma takes a parenthesized string literal" |
| 376 | 376 | msgstr "" |
| 377 | 377 | |
| 378 | −#: directives.c:2064 | |
| 378 | +#: directives.c:2021 | |
| 379 | 379 | msgid "#else without #if" |
| 380 | 380 | msgstr "" |
| 381 | 381 | |
| 382 | −#: directives.c:2069 | |
| 382 | +#: directives.c:2026 | |
| 383 | 383 | msgid "#else after #else" |
| 384 | 384 | msgstr "#else ���� ��� #else" |
| 385 | 385 | |
| 386 | −#: directives.c:2071 directives.c:2104 | |
| 386 | +#: directives.c:2028 directives.c:2061 | |
| 387 | 387 | msgid "the conditional began here" |
| 388 | 388 | msgstr "" |
| 389 | 389 | |
| 390 | −#: directives.c:2097 | |
| 390 | +#: directives.c:2054 | |
| 391 | 391 | msgid "#elif without #if" |
| 392 | 392 | msgstr "" |
| 393 | 393 | |
| 394 | −#: directives.c:2102 | |
| 394 | +#: directives.c:2059 | |
| 395 | 395 | msgid "#elif after #else" |
| 396 | 396 | msgstr "#elif ���� ��� #else" |
| 397 | 397 | |
| 398 | −#: directives.c:2133 | |
| 398 | +#: directives.c:2090 | |
| 399 | 399 | msgid "#endif without #if" |
| 400 | 400 | msgstr "" |
| 401 | 401 | |
| 402 | −#: directives.c:2213 | |
| 402 | +#: directives.c:2166 | |
| 403 | 403 | msgid "missing '(' after predicate" |
| 404 | 404 | msgstr "" |
| 405 | 405 | |
| 406 | −#: directives.c:2228 | |
| 406 | +#: directives.c:2184 | |
| 407 | 407 | msgid "missing ')' to complete answer" |
| 408 | 408 | msgstr "" |
| 409 | 409 | |
| 410 | −#: directives.c:2248 | |
| 410 | +#: directives.c:2196 | |
| 411 | 411 | msgid "predicate's answer is empty" |
| 412 | 412 | msgstr "" |
| 413 | 413 | |
| 414 | −#: directives.c:2275 | |
| 414 | +#: directives.c:2226 | |
| 415 | 415 | #, fuzzy |
| 416 | 416 | msgid "assertion without predicate" |
| 417 | 417 | msgstr "� ���������� ��� �����������" |
| 418 | 418 | |
| 419 | −#: directives.c:2278 | |
| 419 | +#: directives.c:2229 | |
| 420 | 420 | #, fuzzy |
| 421 | 421 | msgid "predicate must be an identifier" |
| 422 | 422 | msgstr "������ ������������� ���������" |
| 423 | 423 | |
| 424 | −#: directives.c:2364 | |
| 424 | +#: directives.c:2311 | |
| 425 | 425 | #, c-format |
| 426 | 426 | msgid "\"%s\" re-asserted" |
| 427 | 427 | msgstr "" |
| 428 | 428 | |
| 429 | −#: directives.c:2656 | |
| 429 | +#: directives.c:2587 | |
| 430 | 430 | #, fuzzy, c-format |
| 431 | 431 | msgid "unterminated #%s" |
| 432 | 432 | msgstr "�� ������������o �������������" |
| 433 | 433 | |
| 434 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 434 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 435 | 435 | #, fuzzy |
| 436 | 436 | msgid "unterminated comment" |
| 437 | 437 | msgstr "�� ������������ ������ `s'" |
| 438 | 438 | |
| 439 | 439 | # src/request.c:37 |
| 440 | −#: errors.c:284 | |
| 440 | +#: errors.c:291 | |
| 441 | 441 | #, c-format |
| 442 | 442 | msgid "%s: %s" |
| 443 | 443 | msgstr "%s: %s" |
| 444 | 444 | |
| 445 | −#: errors.c:296 | |
| 445 | +#: errors.c:304 | |
| 446 | 446 | msgid "stdout" |
| 447 | 447 | msgstr "" |
| 448 | 448 | |
| @@ -542,30 +542,30 @@ msgstr "" · 93 unmodified lines | ||
| 542 | 542 | msgid "this use of \"defined\" may not be portable" |
| 543 | 543 | msgstr "" |
| 544 | 544 | |
| 545 | −#: expr.c:1125 | |
| 545 | +#: expr.c:1109 | |
| 546 | 546 | msgid "user-defined literal in preprocessor expression" |
| 547 | 547 | msgstr "" |
| 548 | 548 | |
| 549 | −#: expr.c:1130 | |
| 549 | +#: expr.c:1114 | |
| 550 | 550 | #, fuzzy |
| 551 | 551 | msgid "floating constant in preprocessor expression" |
| 552 | 552 | msgstr "�������� ������� ������������" |
| 553 | 553 | |
| 554 | −#: expr.c:1136 | |
| 554 | +#: expr.c:1120 | |
| 555 | 555 | #, fuzzy |
| 556 | 556 | msgid "imaginary number in preprocessor expression" |
| 557 | 557 | msgstr "�� ������� ������� ��� �������" |
| 558 | 558 | |
| 559 | −#: expr.c:1189 | |
| 559 | +#: expr.c:1173 | |
| 560 | 560 | #, fuzzy, c-format |
| 561 | 561 | msgid "\"%s\" is not defined, evaluates to 0" |
| 562 | 562 | msgstr "�� `%s' ��� ����� �������� ������" |
| 563 | 563 | |
| 564 | −#: expr.c:1202 | |
| 564 | +#: expr.c:1186 | |
| 565 | 565 | msgid "assertions are a GCC extension" |
| 566 | 566 | msgstr "" |
| 567 | 567 | |
| 568 | −#: expr.c:1205 | |
| 568 | +#: expr.c:1189 | |
| 569 | 569 | msgid "assertions are a deprecated extension" |
| 570 | 570 | msgstr "" |
| 571 | 571 | |
| @@ -573,63 +573,63 @@ msgstr "" · 1 unmodified line | ||
| 573 | 573 | # src/dfa.c:690 src/dfa.c:703 src/dfa.c:704 |
| 574 | 574 | # src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695 |
| 575 | 575 | # src/dfa.c:698 src/dfa.c:711 src/dfa.c:712 |
| 576 | −#: expr.c:1451 | |
| 576 | +#: expr.c:1435 | |
| 577 | 577 | #, fuzzy, c-format |
| 578 | 578 | msgid "unbalanced stack in %s" |
| 579 | 579 | msgstr "�� ������������ [" |
| 580 | 580 | |
| 581 | −#: expr.c:1471 | |
| 581 | +#: expr.c:1455 | |
| 582 | 582 | #, fuzzy, c-format |
| 583 | 583 | msgid "impossible operator '%u'" |
| 584 | 584 | msgstr "RPC: �� �������� �������� ��� RPC" |
| 585 | 585 | |
| 586 | −#: expr.c:1572 | |
| 586 | +#: expr.c:1556 | |
| 587 | 587 | #, fuzzy |
| 588 | 588 | msgid "missing ')' in expression" |
| 589 | 589 | msgstr "���� ���������� � ����� �� ��� ������" |
| 590 | 590 | |
| 591 | −#: expr.c:1601 | |
| 591 | +#: expr.c:1585 | |
| 592 | 592 | #, fuzzy |
| 593 | 593 | msgid "'?' without following ':'" |
| 594 | 594 | msgstr "���������� ������ ���� �������: %s" |
| 595 | 595 | |
| 596 | −#: expr.c:1611 | |
| 596 | +#: expr.c:1595 | |
| 597 | 597 | msgid "integer overflow in preprocessor expression" |
| 598 | 598 | msgstr "" |
| 599 | 599 | |
| 600 | −#: expr.c:1616 | |
| 600 | +#: expr.c:1600 | |
| 601 | 601 | #, fuzzy |
| 602 | 602 | msgid "missing '(' in expression" |
| 603 | 603 | msgstr "���� ���������� � ����� �� ��� ������" |
| 604 | 604 | |
| 605 | −#: expr.c:1648 | |
| 605 | +#: expr.c:1632 | |
| 606 | 606 | #, c-format |
| 607 | 607 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 608 | 608 | msgstr "" |
| 609 | 609 | |
| 610 | −#: expr.c:1653 | |
| 610 | +#: expr.c:1637 | |
| 611 | 611 | #, c-format |
| 612 | 612 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 613 | 613 | msgstr "" |
| 614 | 614 | |
| 615 | −#: expr.c:1912 | |
| 615 | +#: expr.c:1896 | |
| 616 | 616 | msgid "traditional C rejects the unary plus operator" |
| 617 | 617 | msgstr "" |
| 618 | 618 | |
| 619 | −#: expr.c:2010 | |
| 619 | +#: expr.c:1994 | |
| 620 | 620 | msgid "comma operator in operand of #if" |
| 621 | 621 | msgstr "" |
| 622 | 622 | |
| 623 | −#: expr.c:2146 | |
| 623 | +#: expr.c:2130 | |
| 624 | 624 | #, fuzzy |
| 625 | 625 | msgid "division by zero in #if" |
| 626 | 626 | msgstr "�������� �� ����� ���� ���������: %s" |
| 627 | 627 | |
| 628 | −#: expr.c:2243 | |
| 628 | +#: expr.c:2227 | |
| 629 | 629 | msgid "operator \"__has_include__\" requires a header string" |
| 630 | 630 | msgstr "" |
| 631 | 631 | |
| 632 | −#: expr.c:2259 | |
| 632 | +#: expr.c:2243 | |
| 633 | 633 | #, fuzzy |
| 634 | 634 | msgid "missing ')' after \"__has_include__\"" |
| 635 | 635 | msgstr "���� ���������� � ����� �� �� �����" |
| @@ -647,41 +647,41 @@ msgstr "" · 11 unmodified lines | ||
| 647 | 647 | msgid "no include path in which to search for %s" |
| 648 | 648 | msgstr "" |
| 649 | 649 | |
| 650 | −#: files.c:1441 | |
| 650 | +#: files.c:1455 | |
| 651 | 651 | msgid "Multiple include guards may be useful for:\n" |
| 652 | 652 | msgstr "" |
| 653 | 653 | |
| 654 | −#: init.c:565 | |
| 654 | +#: init.c:569 | |
| 655 | 655 | #, fuzzy |
| 656 | 656 | msgid "cppchar_t must be an unsigned type" |
| 657 | 657 | msgstr "������ ������������� ���������" |
| 658 | 658 | |
| 659 | −#: init.c:569 | |
| 659 | +#: init.c:573 | |
| 660 | 660 | #, c-format |
| 661 | 661 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 662 | 662 | msgstr "" |
| 663 | 663 | |
| 664 | −#: init.c:576 | |
| 664 | +#: init.c:580 | |
| 665 | 665 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 666 | 666 | msgstr "" |
| 667 | 667 | |
| 668 | −#: init.c:579 | |
| 668 | +#: init.c:583 | |
| 669 | 669 | msgid "target char is less than 8 bits wide" |
| 670 | 670 | msgstr "" |
| 671 | 671 | |
| 672 | −#: init.c:583 | |
| 672 | +#: init.c:587 | |
| 673 | 673 | msgid "target wchar_t is narrower than target char" |
| 674 | 674 | msgstr "" |
| 675 | 675 | |
| 676 | −#: init.c:587 | |
| 676 | +#: init.c:591 | |
| 677 | 677 | msgid "target int is narrower than target char" |
| 678 | 678 | msgstr "" |
| 679 | 679 | |
| 680 | −#: init.c:592 | |
| 680 | +#: init.c:596 | |
| 681 | 681 | msgid "CPP half-integer narrower than CPP character" |
| 682 | 682 | msgstr "" |
| 683 | 683 | |
| 684 | −#: init.c:596 | |
| 684 | +#: init.c:600 | |
| 685 | 685 | #, c-format |
| 686 | 686 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 687 | 687 | msgstr "" |
| @@ -755,262 +755,263 @@ msgstr "" · 67 unmodified lines | ||
| 755 | 755 | msgid "identifier \"%s\" is a special operator name in C++" |
| 756 | 756 | msgstr "" |
| 757 | 757 | |
| 758 | −#: lex.c:1811 | |
| 758 | +#: lex.c:1826 | |
| 759 | 759 | msgid "raw string delimiter longer than 16 characters" |
| 760 | 760 | msgstr "" |
| 761 | 761 | |
| 762 | −#: lex.c:1815 | |
| 762 | +#: lex.c:1830 | |
| 763 | 763 | msgid "invalid new-line in raw string delimiter" |
| 764 | 764 | msgstr "" |
| 765 | 765 | |
| 766 | −#: lex.c:1819 | |
| 766 | +#: lex.c:1834 | |
| 767 | 767 | #, fuzzy, c-format |
| 768 | 768 | msgid "invalid character '%c' in raw string delimiter" |
| 769 | 769 | msgstr "�� ������� ���������� `%c' ��� ���� �������������� `%s'" |
| 770 | 770 | |
| 771 | −#: lex.c:1868 lex.c:1890 | |
| 771 | +#: lex.c:1883 lex.c:1905 | |
| 772 | 772 | #, fuzzy |
| 773 | 773 | msgid "unterminated raw string" |
| 774 | 774 | msgstr "�� ������������o �������������" |
| 775 | 775 | |
| 776 | −#: lex.c:1912 lex.c:2043 | |
| 776 | +#: lex.c:1925 lex.c:2054 | |
| 777 | 777 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 778 | 778 | msgstr "" |
| 779 | 779 | |
| 780 | −#: lex.c:2024 | |
| 780 | +#: lex.c:2037 | |
| 781 | 781 | msgid "null character(s) preserved in literal" |
| 782 | 782 | msgstr "" |
| 783 | 783 | |
| 784 | −#: lex.c:2027 | |
| 784 | +#: lex.c:2040 | |
| 785 | 785 | #, c-format |
| 786 | 786 | msgid "missing terminating %c character" |
| 787 | 787 | msgstr "���� ���������� ���������� ���������� %c" |
| 788 | 788 | |
| 789 | −#: lex.c:2061 | |
| 789 | +#: lex.c:2072 | |
| 790 | 790 | msgid "C++11 requires a space between string literal and macro" |
| 791 | 791 | msgstr "" |
| 792 | 792 | |
| 793 | −#: lex.c:2865 lex.c:2899 | |
| 793 | +#: lex.c:2876 lex.c:2910 | |
| 794 | 794 | msgid "C++ style comments are not allowed in ISO C90" |
| 795 | 795 | msgstr "" |
| 796 | 796 | |
| 797 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 797 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 798 | 798 | msgid "(this will be reported only once per input file)" |
| 799 | 799 | msgstr "" |
| 800 | 800 | |
| 801 | −#: lex.c:2876 | |
| 801 | +#: lex.c:2887 | |
| 802 | 802 | msgid "C++ style comments are incompatible with C90" |
| 803 | 803 | msgstr "" |
| 804 | 804 | |
| 805 | −#: lex.c:2907 | |
| 805 | +#: lex.c:2919 | |
| 806 | 806 | msgid "multi-line comment" |
| 807 | 807 | msgstr "" |
| 808 | 808 | |
| 809 | −#: lex.c:3287 | |
| 809 | +#: lex.c:3299 | |
| 810 | 810 | #, fuzzy, c-format |
| 811 | 811 | msgid "unspellable token %s" |
| 812 | 812 | msgstr "%s: ������� �� ������� ��� %s: %m\n" |
| 813 | 813 | |
| 814 | −#: macro.c:93 | |
| 814 | +#: macro.c:94 | |
| 815 | 815 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 816 | 816 | msgstr "" |
| 817 | 817 | |
| 818 | −#: macro.c:352 | |
| 818 | +#: macro.c:354 | |
| 819 | 819 | #, fuzzy, c-format |
| 820 | 820 | msgid "macro \"%s\" is not used" |
| 821 | 821 | msgstr "�� `%s' ��� ����� �������� ������" |
| 822 | 822 | |
| 823 | −#: macro.c:391 macro.c:639 | |
| 823 | +#: macro.c:393 macro.c:641 | |
| 824 | 824 | #, fuzzy, c-format |
| 825 | 825 | msgid "invalid built-in macro \"%s\"" |
| 826 | 826 | msgstr "�� ������ ����� �������: %s" |
| 827 | 827 | |
| 828 | −#: macro.c:398 macro.c:500 | |
| 828 | +#: macro.c:400 macro.c:502 | |
| 829 | 829 | #, c-format |
| 830 | 830 | msgid "macro \"%s\" might prevent reproducible builds" |
| 831 | 831 | msgstr "" |
| 832 | 832 | |
| 833 | −#: macro.c:429 | |
| 833 | +#: macro.c:431 | |
| 834 | 834 | #, fuzzy |
| 835 | 835 | msgid "could not determine file timestamp" |
| 836 | 836 | msgstr "��� ������� �� ������ �� ������ %s" |
| 837 | 837 | |
| 838 | −#: macro.c:546 | |
| 838 | +#: macro.c:548 | |
| 839 | 839 | #, fuzzy |
| 840 | 840 | msgid "could not determine date and time" |
| 841 | 841 | msgstr "��� ������� �� ������ �� ������ %s" |
| 842 | 842 | |
| 843 | −#: macro.c:562 | |
| 843 | +#: macro.c:564 | |
| 844 | 844 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 845 | 845 | msgstr "" |
| 846 | 846 | |
| 847 | −#: macro.c:758 | |
| 847 | +#: macro.c:760 | |
| 848 | 848 | #, fuzzy |
| 849 | 849 | msgid "invalid string literal, ignoring final '\\'" |
| 850 | 850 | msgstr "�� ������� ������� ������� �������: `%s'" |
| 851 | 851 | |
| 852 | −#: macro.c:820 | |
| 852 | +#: macro.c:822 | |
| 853 | 853 | #, c-format |
| 854 | 854 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 855 | 855 | msgstr "" |
| 856 | 856 | |
| 857 | −#: macro.c:946 | |
| 857 | +#: macro.c:948 | |
| 858 | 858 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 859 | 859 | msgstr "" |
| 860 | 860 | |
| 861 | −#: macro.c:950 | |
| 861 | +#: macro.c:952 | |
| 862 | 862 | #, fuzzy |
| 863 | 863 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 864 | 864 | msgstr "���� ������ ����������" |
| 865 | 865 | |
| 866 | −#: macro.c:957 | |
| 866 | +#: macro.c:959 | |
| 867 | 867 | #, c-format |
| 868 | 868 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 869 | 869 | msgstr "" |
| 870 | 870 | |
| 871 | −#: macro.c:962 | |
| 871 | +#: macro.c:964 | |
| 872 | 872 | #, c-format |
| 873 | 873 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 874 | 874 | msgstr "" |
| 875 | 875 | |
| 876 | −#: macro.c:1156 traditional.c:819 | |
| 876 | +#: macro.c:1162 traditional.c:827 | |
| 877 | 877 | #, c-format |
| 878 | 878 | msgid "unterminated argument list invoking macro \"%s\"" |
| 879 | 879 | msgstr "" |
| 880 | 880 | |
| 881 | −#: macro.c:1307 | |
| 881 | +#: macro.c:1304 | |
| 882 | 882 | #, c-format |
| 883 | 883 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 884 | 884 | msgstr "" |
| 885 | 885 | |
| 886 | −#: macro.c:2003 | |
| 886 | +#: macro.c:2083 | |
| 887 | 887 | #, c-format |
| 888 | 888 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 889 | 889 | msgstr "" |
| 890 | 890 | |
| 891 | −#: macro.c:2011 macro.c:2020 | |
| 891 | +#: macro.c:2091 macro.c:2100 | |
| 892 | 892 | #, c-format |
| 893 | 893 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 894 | 894 | msgstr "" |
| 895 | 895 | |
| 896 | −#: macro.c:2984 | |
| 896 | +#: macro.c:3059 | |
| 897 | 897 | #, fuzzy, c-format |
| 898 | 898 | msgid "duplicate macro parameter \"%s\"" |
| 899 | 899 | msgstr "����� ����� ��������� `%s'" |
| 900 | 900 | |
| 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 | |
| 902 | 907 | #, c-format |
| 903 | −msgid "\"%s\" may not appear in macro parameter list" | |
| 908 | +msgid "expected ',' or ')', found \"%s\"" | |
| 904 | 909 | msgstr "" |
| 905 | 910 | |
| 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" | |
| 908 | 918 | msgstr "" |
| 909 | 919 | |
| 910 | −#: macro.c:3060 | |
| 911 | −msgid "parameter name missing" | |
| 920 | +#: macro.c:3145 | |
| 921 | +msgid "expected ')' after \"...\"" | |
| 912 | 922 | msgstr "" |
| 913 | 923 | |
| 914 | −#: macro.c:3081 | |
| 924 | +#: macro.c:3202 | |
| 915 | 925 | msgid "anonymous variadic macros were introduced in C++11" |
| 916 | 926 | msgstr "" |
| 917 | 927 | |
| 918 | −#: macro.c:3085 macro.c:3090 | |
| 928 | +#: macro.c:3203 macro.c:3207 | |
| 919 | 929 | msgid "anonymous variadic macros were introduced in C99" |
| 920 | 930 | msgstr "" |
| 921 | 931 | |
| 922 | −#: macro.c:3097 | |
| 932 | +#: macro.c:3213 | |
| 923 | 933 | msgid "ISO C++ does not permit named variadic macros" |
| 924 | 934 | msgstr "" |
| 925 | 935 | |
| 926 | −#: macro.c:3100 | |
| 936 | +#: macro.c:3214 | |
| 927 | 937 | msgid "ISO C does not permit named variadic macros" |
| 928 | 938 | msgstr "" |
| 929 | 939 | |
| 930 | −#: macro.c:3110 | |
| 931 | −msgid "missing ')' in macro parameter list" | |
| 932 | −msgstr "" | |
| 933 | − | |
| 934 | −#: macro.c:3161 | |
| 940 | +#: macro.c:3260 | |
| 935 | 941 | msgid "'##' cannot appear at either end of a macro expansion" |
| 936 | 942 | msgstr "" |
| 937 | 943 | |
| 938 | −#: macro.c:3198 | |
| 944 | +#: macro.c:3298 | |
| 939 | 945 | msgid "ISO C++11 requires whitespace after the macro name" |
| 940 | 946 | msgstr "" |
| 941 | 947 | |
| 942 | −#: macro.c:3201 | |
| 948 | +#: macro.c:3299 | |
| 943 | 949 | #, fuzzy |
| 944 | 950 | msgid "ISO C99 requires whitespace after the macro name" |
| 945 | 951 | msgstr "���� ������ ����������" |
| 946 | 952 | |
| 947 | −#: macro.c:3226 | |
| 953 | +#: macro.c:3323 | |
| 948 | 954 | msgid "missing whitespace after the macro name" |
| 949 | 955 | msgstr "" |
| 950 | 956 | |
| 951 | −#: macro.c:3263 | |
| 957 | +#: macro.c:3373 | |
| 952 | 958 | msgid "'#' is not followed by a macro parameter" |
| 953 | 959 | msgstr "" |
| 954 | 960 | |
| 955 | −#: macro.c:3430 | |
| 961 | +#: macro.c:3524 | |
| 956 | 962 | #, fuzzy, c-format |
| 957 | 963 | msgid "\"%s\" redefined" |
| 958 | 964 | msgstr "�������" |
| 959 | 965 | |
| 960 | −#: macro.c:3435 | |
| 966 | +#: macro.c:3529 | |
| 961 | 967 | #, fuzzy |
| 962 | 968 | msgid "this is the location of the previous definition" |
| 963 | 969 | msgstr "���� ����� � ���� ��� ������ �������" |
| 964 | 970 | |
| 965 | −#: macro.c:3496 | |
| 971 | +#: macro.c:3633 | |
| 966 | 972 | #, c-format |
| 967 | 973 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 968 | 974 | msgstr "" |
| 969 | 975 | |
| 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 | |
| 976 | 977 | msgid "while writing precompiled header" |
| 977 | 978 | msgstr "" |
| 978 | 979 | |
| 979 | −#: pch.c:621 | |
| 980 | +#: pch.c:616 | |
| 980 | 981 | #, c-format |
| 981 | 982 | msgid "%s: not used because `%.*s' is poisoned" |
| 982 | 983 | msgstr "" |
| 983 | 984 | |
| 984 | −#: pch.c:643 | |
| 985 | +#: pch.c:638 | |
| 985 | 986 | #, c-format |
| 986 | 987 | msgid "%s: not used because `%.*s' not defined" |
| 987 | 988 | msgstr "" |
| 988 | 989 | |
| 989 | −#: pch.c:655 | |
| 990 | +#: pch.c:650 | |
| 990 | 991 | #, c-format |
| 991 | 992 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 992 | 993 | msgstr "" |
| 993 | 994 | |
| 994 | −#: pch.c:696 | |
| 995 | +#: pch.c:691 | |
| 995 | 996 | #, c-format |
| 996 | 997 | msgid "%s: not used because `%s' is defined" |
| 997 | 998 | msgstr "" |
| 998 | 999 | |
| 999 | −#: pch.c:716 | |
| 1000 | +#: pch.c:711 | |
| 1000 | 1001 | #, c-format |
| 1001 | 1002 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 1002 | 1003 | msgstr "" |
| 1003 | 1004 | |
| 1004 | −#: pch.c:725 pch.c:903 | |
| 1005 | +#: pch.c:720 pch.c:878 | |
| 1005 | 1006 | msgid "while reading precompiled header" |
| 1006 | 1007 | msgstr "" |
| 1007 | 1008 | |
| 1008 | −#: traditional.c:889 | |
| 1009 | +#: traditional.c:896 | |
| 1009 | 1010 | #, c-format |
| 1010 | 1011 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 1011 | 1012 | msgstr "" |
| 1012 | 1013 | |
| 1013 | −#: traditional.c:1108 | |
| 1014 | +#: traditional.c:1119 | |
| 1014 | 1015 | #, fuzzy |
| 1015 | 1016 | msgid "syntax error in macro parameter list" |
| 1016 | 1017 | msgstr "���������� ������ ���� ������ ������ ����������" |
| @@ -1280,10 +1281,6 @@ msgstr " · 263 unmodified lines | ||
| 1280 | 1281 | #~ msgid "parameter `%s' declared void" |
| 1281 | 1282 | #~ msgstr "� ������ ���������� `%s' �������� ���" |
| 1282 | 1283 | |
| 1283 | −#, fuzzy | |
| 1284 | −#~ msgid "multiple parameters named `%s'" | |
| 1285 | −#~ msgstr "����� ����� ��������� `%s'" | |
| 1286 | − | |
| 1287 | 1284 | #, fuzzy |
| 1288 | 1285 | #~ msgid "no return statement in function returning non-void" |
| 1289 | 1286 | #~ msgstr "`return' ����� ����, �� ��������� ��� ���������� ��-����" |
| @@ -5179,10 +5176,6 @@ msgstr " · 3889 unmodified lines | ||
| 5179 | 5176 | #~ msgid "start label '%s' does not match end label '%s'" |
| 5180 | 5177 | #~ msgstr "�� ������ ��������� ������ `%s' ��� ��������� �� �� �������������� ����������� `%s'" |
| 5181 | 5178 | |
| 5182 | −#, fuzzy | |
| 5183 | −#~ msgid "expected a name here" | |
| 5184 | −#~ msgstr "%s: ���������� ���������� ����." | |
| 5185 | − | |
| 5186 | 5179 | #, fuzzy |
| 5187 | 5180 | #~ msgid "expected a name string here" |
| 5188 | 5181 | #~ msgstr "%s: ���������� ���������� ����." |
| @@ -1,14 +1,14 @@ | ||
| 1 | 1 | # 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. | |
| 3 | 3 | # 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. | |
| 5 | 5 | # |
| 6 | 6 | msgid "" |
| 7 | 7 | msgstr "" |
| 8 | −"Project-Id-Version: cpplib 8.1-b20180128\n" | |
| 8 | +"Project-Id-Version: cpplib 9.1-b20190203\n" | |
| 9 | 9 | "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" | |
| 12 | 12 | "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" |
| 13 | 13 | "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" |
| 14 | 14 | "Language: eo\n" |
| @@ -16,7 +16,7 @@ msgstr "" · 1 unmodified line | ||
| 16 | 16 | "Content-Type: text/plain; charset=utf-8\n" |
| 17 | 17 | "Content-Transfer-Encoding: 8bit\n" |
| 18 | 18 | "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" | |
| 20 | 20 | |
| 21 | 21 | #: charset.c:674 |
| 22 | 22 | #, c-format |
| @@ -87,7 +87,7 @@ msgstr "la universala signo %.*s ne estas valida en identiganto" · 64 unmodified lines | ||
| 87 | 87 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 88 | 88 | msgstr "la universala signo %.*s ne estas valida en komenco de identiganto" |
| 89 | 89 | |
| 90 | −#: charset.c:1181 charset.c:2000 | |
| 90 | +#: charset.c:1181 charset.c:2002 | |
| 91 | 91 | msgid "converting UCN to source character set" |
| 92 | 92 | msgstr "konverto de UCN al la fonta signaro" |
| 93 | 93 | |
| @@ -138,294 +138,294 @@ msgstr "konverto de eskapa sekvo al plenumiga signaro" · 44 unmodified lines | ||
| 138 | 138 | msgid "missing open quote" |
| 139 | 139 | msgstr "mankas komenca citilo" |
| 140 | 140 | |
| 141 | −#: charset.c:1827 charset.c:1891 | |
| 141 | +#: charset.c:1829 charset.c:1893 | |
| 142 | 142 | msgid "character constant too long for its type" |
| 143 | 143 | msgstr "signa konstanto tro longas por ties tipo" |
| 144 | 144 | |
| 145 | −#: charset.c:1830 | |
| 145 | +#: charset.c:1832 | |
| 146 | 146 | msgid "multi-character character constant" |
| 147 | 147 | msgstr "plursigna signa konstanto" |
| 148 | 148 | |
| 149 | −#: charset.c:1931 | |
| 149 | +#: charset.c:1933 | |
| 150 | 150 | msgid "empty character constant" |
| 151 | 151 | msgstr "malplena signa konstanto" |
| 152 | 152 | |
| 153 | −#: charset.c:2047 | |
| 153 | +#: charset.c:2049 | |
| 154 | 154 | #, c-format |
| 155 | 155 | msgid "failure to convert %s to %s" |
| 156 | 156 | msgstr "problemo por konverti %s al %s" |
| 157 | 157 | |
| 158 | −#: directives.c:235 directives.c:278 | |
| 158 | +#: directives.c:229 directives.c:272 | |
| 159 | 159 | #, c-format |
| 160 | 160 | msgid "extra tokens at end of #%s directive" |
| 161 | 161 | msgstr "kromaj ĵetonoj ĉe la fino de la instrukcio #%s" |
| 162 | 162 | |
| 163 | −#: directives.c:385 | |
| 163 | +#: directives.c:379 | |
| 164 | 164 | #, c-format |
| 165 | 165 | msgid "#%s is a GCC extension" |
| 166 | 166 | msgstr "#%s estas aldono de GCC" |
| 167 | 167 | |
| 168 | −#: directives.c:390 | |
| 168 | +#: directives.c:384 | |
| 169 | 169 | #, c-format |
| 170 | 170 | msgid "#%s is a deprecated GCC extension" |
| 171 | 171 | msgstr "#%s estas evitinda aldono de GCC" |
| 172 | 172 | |
| 173 | −#: directives.c:403 | |
| 173 | +#: directives.c:397 | |
| 174 | 174 | msgid "suggest not using #elif in traditional C" |
| 175 | 175 | msgstr "sugesti ne uzi #elif en tradicia C" |
| 176 | 176 | |
| 177 | −#: directives.c:406 | |
| 177 | +#: directives.c:400 | |
| 178 | 178 | #, c-format |
| 179 | 179 | msgid "traditional C ignores #%s with the # indented" |
| 180 | 180 | msgstr "tradicia C preteratentas #%s kun la # krommarĝenita" |
| 181 | 181 | |
| 182 | −#: directives.c:410 | |
| 182 | +#: directives.c:404 | |
| 183 | 183 | #, c-format |
| 184 | 184 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 185 | 185 | msgstr "sugesti kaŝi #%s el tradicia C per krommarĝenigo de #" |
| 186 | 186 | |
| 187 | −#: directives.c:436 | |
| 187 | +#: directives.c:430 | |
| 188 | 188 | msgid "embedding a directive within macro arguments is not portable" |
| 189 | 189 | msgstr "enkorpigi instrukcion ene de makroaj argumentoj ne estas portebla" |
| 190 | 190 | |
| 191 | −#: directives.c:456 | |
| 191 | +#: directives.c:450 | |
| 192 | 192 | msgid "style of line directive is a GCC extension" |
| 193 | 193 | msgstr "stilo de lini-instrukcioj estas aldono de GCC" |
| 194 | 194 | |
| 195 | −#: directives.c:537 | |
| 195 | +#: directives.c:531 | |
| 196 | 196 | #, c-format |
| 197 | 197 | msgid "invalid preprocessing directive #%s" |
| 198 | 198 | msgstr "malvalida antaŭproceza instrukcio #%s" |
| 199 | 199 | |
| 200 | −#: directives.c:606 | |
| 200 | +#: directives.c:600 | |
| 201 | 201 | msgid "\"defined\" cannot be used as a macro name" |
| 202 | 202 | msgstr "\"defined\" ne povas estis uzata kiel makroa nomo" |
| 203 | 203 | |
| 204 | −#: directives.c:611 | |
| 204 | +#: directives.c:605 | |
| 205 | 205 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 206 | 206 | msgstr "\"__has_include__\" ne povas estis uzata kiel makroa nomo" |
| 207 | 207 | |
| 208 | −#: directives.c:617 | |
| 208 | +#: directives.c:611 | |
| 209 | 209 | #, c-format |
| 210 | 210 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 211 | 211 | msgstr "\"%s\" ne povas esti uzata kiel makroa nomo ĉar ĝi estas operatoro en C++" |
| 212 | 212 | |
| 213 | −#: directives.c:620 | |
| 213 | +#: directives.c:614 | |
| 214 | 214 | #, c-format |
| 215 | 215 | msgid "no macro name given in #%s directive" |
| 216 | 216 | msgstr "neniu makroa nomo estas indikita en la instrukcio #%s" |
| 217 | 217 | |
| 218 | −#: directives.c:623 | |
| 218 | +#: directives.c:617 | |
| 219 | 219 | msgid "macro names must be identifiers" |
| 220 | 220 | msgstr "makroaj nomoj devas esti identigantoj" |
| 221 | 221 | |
| 222 | −#: directives.c:672 directives.c:677 | |
| 222 | +#: directives.c:666 directives.c:671 | |
| 223 | 223 | #, c-format |
| 224 | 224 | msgid "undefining \"%s\"" |
| 225 | 225 | msgstr "ni maldifinas \"%s\"" |
| 226 | 226 | |
| 227 | −#: directives.c:732 | |
| 227 | +#: directives.c:727 | |
| 228 | 228 | msgid "missing terminating > character" |
| 229 | 229 | msgstr "mankas finiganta signo >" |
| 230 | 230 | |
| 231 | −#: directives.c:791 | |
| 231 | +#: directives.c:786 | |
| 232 | 232 | #, c-format |
| 233 | 233 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 234 | 234 | msgstr "#%s atendas \"DOSIERNOMO\" aŭ <DOSIERNOMO>" |
| 235 | 235 | |
| 236 | −#: directives.c:837 | |
| 236 | +#: directives.c:828 | |
| 237 | 237 | #, c-format |
| 238 | 238 | msgid "empty filename in #%s" |
| 239 | 239 | msgstr "malplena dosiernomo en #%s" |
| 240 | 240 | |
| 241 | −#: directives.c:847 | |
| 241 | +#: directives.c:835 | |
| 242 | 242 | msgid "#include nested too deeply" |
| 243 | 243 | msgstr "#include estas ingita tro profunde" |
| 244 | 244 | |
| 245 | −#: directives.c:888 | |
| 245 | +#: directives.c:877 | |
| 246 | 246 | msgid "#include_next in primary source file" |
| 247 | 247 | msgstr "#include_next en ĉefa fonta dosiero" |
| 248 | 248 | |
| 249 | −#: directives.c:914 | |
| 249 | +#: directives.c:903 | |
| 250 | 250 | #, c-format |
| 251 | 251 | msgid "invalid flag \"%s\" in line directive" |
| 252 | 252 | msgstr "malvalida flago \"%s\" en lini-instrukcio" |
| 253 | 253 | |
| 254 | −#: directives.c:974 | |
| 254 | +#: directives.c:963 | |
| 255 | 255 | msgid "unexpected end of file after #line" |
| 256 | 256 | msgstr "neatendita dosierfino post #line" |
| 257 | 257 | |
| 258 | −#: directives.c:977 | |
| 258 | +#: directives.c:966 | |
| 259 | 259 | #, c-format |
| 260 | 260 | msgid "\"%s\" after #line is not a positive integer" |
| 261 | 261 | msgstr "\"%s\" post #line ne estas pozitiva entjero" |
| 262 | 262 | |
| 263 | −#: directives.c:983 directives.c:985 | |
| 263 | +#: directives.c:972 directives.c:974 | |
| 264 | 264 | msgid "line number out of range" |
| 265 | 265 | msgstr "lininumero estas for de intervalo" |
| 266 | 266 | |
| 267 | −#: directives.c:998 directives.c:1079 | |
| 267 | +#: directives.c:987 directives.c:1068 | |
| 268 | 268 | #, c-format |
| 269 | 269 | msgid "\"%s\" is not a valid filename" |
| 270 | 270 | msgstr "\"%s\" ne estas valida dosiernomo" |
| 271 | 271 | |
| 272 | −#: directives.c:1039 | |
| 272 | +#: directives.c:1028 | |
| 273 | 273 | #, c-format |
| 274 | 274 | msgid "\"%s\" after # is not a positive integer" |
| 275 | 275 | msgstr "\"%s\" post # ne estas pozitiva entjero" |
| 276 | 276 | |
| 277 | −#: directives.c:1098 | |
| 277 | +#: directives.c:1087 | |
| 278 | 278 | #, c-format |
| 279 | 279 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 280 | 280 | msgstr "linimarkilo de dosiero \"%s\" estis preteratentata pro malkorekta nesto" |
| 281 | 281 | |
| 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 | |
| 283 | 283 | #, c-format |
| 284 | 284 | msgid "%s" |
| 285 | 285 | msgstr "%s" |
| 286 | 286 | |
| 287 | −#: directives.c:1185 | |
| 287 | +#: directives.c:1175 | |
| 288 | 288 | #, c-format |
| 289 | 289 | msgid "invalid #%s directive" |
| 290 | 290 | msgstr "malvalida instrukcio #%s" |
| 291 | 291 | |
| 292 | −#: directives.c:1248 | |
| 292 | +#: directives.c:1238 | |
| 293 | 293 | #, c-format |
| 294 | 294 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 295 | 295 | msgstr "registro de pragma en nomspaco \"%s\" kun nekongrua nom-disvolviĝo" |
| 296 | 296 | |
| 297 | −#: directives.c:1257 | |
| 297 | +#: directives.c:1247 | |
| 298 | 298 | #, c-format |
| 299 | 299 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 300 | 300 | msgstr "registro de pragma \"%s\" kun nom-disvolviĝo kaj sen nomspaco" |
| 301 | 301 | |
| 302 | −#: directives.c:1275 | |
| 302 | +#: directives.c:1265 | |
| 303 | 303 | #, c-format |
| 304 | 304 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 305 | 305 | msgstr "registro de \"%s\" kaj kiel pragma kaj kiel pragma-nomspaco" |
| 306 | 306 | |
| 307 | −#: directives.c:1278 | |
| 307 | +#: directives.c:1268 | |
| 308 | 308 | #, c-format |
| 309 | 309 | msgid "#pragma %s %s is already registered" |
| 310 | 310 | msgstr "#pragma %s %s jam estas registrita" |
| 311 | 311 | |
| 312 | −#: directives.c:1281 | |
| 312 | +#: directives.c:1271 | |
| 313 | 313 | #, c-format |
| 314 | 314 | msgid "#pragma %s is already registered" |
| 315 | 315 | msgstr "#pragma %s jam estas registrita" |
| 316 | 316 | |
| 317 | −#: directives.c:1311 | |
| 317 | +#: directives.c:1301 | |
| 318 | 318 | msgid "registering pragma with NULL handler" |
| 319 | 319 | msgstr "registro de pragma kun traktilo de NULL" |
| 320 | 320 | |
| 321 | −#: directives.c:1528 | |
| 321 | +#: directives.c:1518 | |
| 322 | 322 | msgid "#pragma once in main file" |
| 323 | 323 | msgstr "#pragma unufoje en ĉefdosiero" |
| 324 | 324 | |
| 325 | −#: directives.c:1551 | |
| 325 | +#: directives.c:1541 | |
| 326 | 326 | msgid "invalid #pragma push_macro directive" |
| 327 | 327 | msgstr "malvalida instrukcio #pragma push_macro" |
| 328 | 328 | |
| 329 | −#: directives.c:1606 | |
| 329 | +#: directives.c:1596 | |
| 330 | 330 | msgid "invalid #pragma pop_macro directive" |
| 331 | 331 | msgstr "malvalida instrukcio #pragma pop_macro" |
| 332 | 332 | |
| 333 | −#: directives.c:1661 | |
| 333 | +#: directives.c:1651 | |
| 334 | 334 | msgid "invalid #pragma GCC poison directive" |
| 335 | 335 | msgstr "malvalida instrukcio #pragma GCC poison" |
| 336 | 336 | |
| 337 | −#: directives.c:1670 | |
| 337 | +#: directives.c:1660 | |
| 338 | 338 | #, c-format |
| 339 | 339 | msgid "poisoning existing macro \"%s\"" |
| 340 | 340 | msgstr "venenigo de ekzistanta makroo \"%s\"" |
| 341 | 341 | |
| 342 | −#: directives.c:1689 | |
| 342 | +#: directives.c:1679 | |
| 343 | 343 | msgid "#pragma system_header ignored outside include file" |
| 344 | 344 | msgstr "#pragma system_header estis preteratentata for de inkluziv-dosiero" |
| 345 | 345 | |
| 346 | −#: directives.c:1714 | |
| 346 | +#: directives.c:1704 | |
| 347 | 347 | #, c-format |
| 348 | 348 | msgid "cannot find source file %s" |
| 349 | 349 | msgstr "ne eblas trovi la fontan dosieron %s" |
| 350 | 350 | |
| 351 | −#: directives.c:1718 | |
| 351 | +#: directives.c:1708 | |
| 352 | 352 | #, c-format |
| 353 | 353 | msgid "current file is older than %s" |
| 354 | 354 | msgstr "nuna dosiero estas pli malnova ol %s" |
| 355 | 355 | |
| 356 | −#: directives.c:1742 | |
| 356 | +#: directives.c:1732 | |
| 357 | 357 | #, c-format |
| 358 | 358 | msgid "invalid \"#pragma GCC %s\" directive" |
| 359 | 359 | msgstr "malvalida instrukcio \"#pragma GCC %s\"" |
| 360 | 360 | |
| 361 | −#: directives.c:1943 | |
| 361 | +#: directives.c:1933 | |
| 362 | 362 | msgid "_Pragma takes a parenthesized string literal" |
| 363 | 363 | msgstr "_Pragma prenas kurbkrampitan ĉenan literaĵon" |
| 364 | 364 | |
| 365 | −#: directives.c:2064 | |
| 365 | +#: directives.c:2021 | |
| 366 | 366 | msgid "#else without #if" |
| 367 | 367 | msgstr "#else sen #if" |
| 368 | 368 | |
| 369 | −#: directives.c:2069 | |
| 369 | +#: directives.c:2026 | |
| 370 | 370 | msgid "#else after #else" |
| 371 | 371 | msgstr "#else post #else" |
| 372 | 372 | |
| 373 | −#: directives.c:2071 directives.c:2104 | |
| 373 | +#: directives.c:2028 directives.c:2061 | |
| 374 | 374 | msgid "the conditional began here" |
| 375 | 375 | msgstr "la kondiĉo komencis ĉi tie" |
| 376 | 376 | |
| 377 | −#: directives.c:2097 | |
| 377 | +#: directives.c:2054 | |
| 378 | 378 | msgid "#elif without #if" |
| 379 | 379 | msgstr "#elif sen #if" |
| 380 | 380 | |
| 381 | −#: directives.c:2102 | |
| 381 | +#: directives.c:2059 | |
| 382 | 382 | msgid "#elif after #else" |
| 383 | 383 | msgstr "#elif post #else" |
| 384 | 384 | |
| 385 | −#: directives.c:2133 | |
| 385 | +#: directives.c:2090 | |
| 386 | 386 | msgid "#endif without #if" |
| 387 | 387 | msgstr "#endif sen #if" |
| 388 | 388 | |
| 389 | −#: directives.c:2213 | |
| 389 | +#: directives.c:2166 | |
| 390 | 390 | msgid "missing '(' after predicate" |
| 391 | 391 | msgstr "mankas '(' post predikato" |
| 392 | 392 | |
| 393 | −#: directives.c:2228 | |
| 393 | +#: directives.c:2184 | |
| 394 | 394 | msgid "missing ')' to complete answer" |
| 395 | 395 | msgstr "mankas ')' por kompletigi respondon" |
| 396 | 396 | |
| 397 | −#: directives.c:2248 | |
| 397 | +#: directives.c:2196 | |
| 398 | 398 | msgid "predicate's answer is empty" |
| 399 | 399 | msgstr "respondo de predikato estas malplena" |
| 400 | 400 | |
| 401 | −#: directives.c:2275 | |
| 401 | +#: directives.c:2226 | |
| 402 | 402 | msgid "assertion without predicate" |
| 403 | 403 | msgstr "aserto sen predikato" |
| 404 | 404 | |
| 405 | −#: directives.c:2278 | |
| 405 | +#: directives.c:2229 | |
| 406 | 406 | msgid "predicate must be an identifier" |
| 407 | 407 | msgstr "predikato devas esti identiganto" |
| 408 | 408 | |
| 409 | −#: directives.c:2364 | |
| 409 | +#: directives.c:2311 | |
| 410 | 410 | #, c-format |
| 411 | 411 | msgid "\"%s\" re-asserted" |
| 412 | 412 | msgstr "\"%s\" estas re-asertita" |
| 413 | 413 | |
| 414 | −#: directives.c:2656 | |
| 414 | +#: directives.c:2587 | |
| 415 | 415 | #, c-format |
| 416 | 416 | msgid "unterminated #%s" |
| 417 | 417 | msgstr "nefinigita #%s" |
| 418 | 418 | |
| 419 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 419 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 420 | 420 | msgid "unterminated comment" |
| 421 | 421 | msgstr "nefinigita komento" |
| 422 | 422 | |
| 423 | −#: errors.c:284 | |
| 423 | +#: errors.c:291 | |
| 424 | 424 | #, c-format |
| 425 | 425 | msgid "%s: %s" |
| 426 | 426 | msgstr "%s: %s" |
| 427 | 427 | |
| 428 | −#: errors.c:296 | |
| 428 | +#: errors.c:304 | |
| 429 | 429 | msgid "stdout" |
| 430 | 430 | msgstr "ĉefeligujo" |
| 431 | 431 | |
| @@ -518,84 +518,84 @@ msgstr "(\"%s\" estas alternativa ĵetono por \"%s\" en C++)" · 86 unmodified lines | ||
| 518 | 518 | msgid "this use of \"defined\" may not be portable" |
| 519 | 519 | msgstr "tiu ĉi uzo de \"defined\" eble ne estas portebla" |
| 520 | 520 | |
| 521 | −#: expr.c:1125 | |
| 521 | +#: expr.c:1109 | |
| 522 | 522 | msgid "user-defined literal in preprocessor expression" |
| 523 | 523 | msgstr "uzant-difinita literaĵo en antaŭproceza esprimo" |
| 524 | 524 | |
| 525 | −#: expr.c:1130 | |
| 525 | +#: expr.c:1114 | |
| 526 | 526 | msgid "floating constant in preprocessor expression" |
| 527 | 527 | msgstr "glitkoma konstanto en antaŭproceza esprimo" |
| 528 | 528 | |
| 529 | −#: expr.c:1136 | |
| 529 | +#: expr.c:1120 | |
| 530 | 530 | msgid "imaginary number in preprocessor expression" |
| 531 | 531 | msgstr "imaginara numero en antaŭproceza esprimo" |
| 532 | 532 | |
| 533 | −#: expr.c:1189 | |
| 533 | +#: expr.c:1173 | |
| 534 | 534 | #, c-format |
| 535 | 535 | msgid "\"%s\" is not defined, evaluates to 0" |
| 536 | 536 | msgstr "\"%s\" ne estas difinita, rezultas al 0" |
| 537 | 537 | |
| 538 | −#: expr.c:1202 | |
| 538 | +#: expr.c:1186 | |
| 539 | 539 | msgid "assertions are a GCC extension" |
| 540 | 540 | msgstr "asertoj estas aldono de GCC" |
| 541 | 541 | |
| 542 | −#: expr.c:1205 | |
| 542 | +#: expr.c:1189 | |
| 543 | 543 | msgid "assertions are a deprecated extension" |
| 544 | 544 | msgstr "asertoj estas evitinda aldono" |
| 545 | 545 | |
| 546 | −#: expr.c:1451 | |
| 546 | +#: expr.c:1435 | |
| 547 | 547 | #, c-format |
| 548 | 548 | msgid "unbalanced stack in %s" |
| 549 | 549 | msgstr "neekvilibrita stako en %s" |
| 550 | 550 | |
| 551 | −#: expr.c:1471 | |
| 551 | +#: expr.c:1455 | |
| 552 | 552 | #, c-format |
| 553 | 553 | msgid "impossible operator '%u'" |
| 554 | 554 | msgstr "neebla operatoro '%u'" |
| 555 | 555 | |
| 556 | −#: expr.c:1572 | |
| 556 | +#: expr.c:1556 | |
| 557 | 557 | msgid "missing ')' in expression" |
| 558 | 558 | msgstr "mankas ')' en esprimo" |
| 559 | 559 | |
| 560 | −#: expr.c:1601 | |
| 560 | +#: expr.c:1585 | |
| 561 | 561 | msgid "'?' without following ':'" |
| 562 | 562 | msgstr "'?' sen sekvanta ':'" |
| 563 | 563 | |
| 564 | −#: expr.c:1611 | |
| 564 | +#: expr.c:1595 | |
| 565 | 565 | msgid "integer overflow in preprocessor expression" |
| 566 | 566 | msgstr "entjera troigo en antaŭproceza esprimo" |
| 567 | 567 | |
| 568 | −#: expr.c:1616 | |
| 568 | +#: expr.c:1600 | |
| 569 | 569 | msgid "missing '(' in expression" |
| 570 | 570 | msgstr "mankas '(' en esprimo" |
| 571 | 571 | |
| 572 | −#: expr.c:1648 | |
| 572 | +#: expr.c:1632 | |
| 573 | 573 | #, c-format |
| 574 | 574 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 575 | 575 | msgstr "la maldekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita" |
| 576 | 576 | |
| 577 | −#: expr.c:1653 | |
| 577 | +#: expr.c:1637 | |
| 578 | 578 | #, c-format |
| 579 | 579 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 580 | 580 | msgstr "la dekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita" |
| 581 | 581 | |
| 582 | −#: expr.c:1912 | |
| 582 | +#: expr.c:1896 | |
| 583 | 583 | msgid "traditional C rejects the unary plus operator" |
| 584 | 584 | msgstr "tradicia C rifuzas la unuloka plusan operatoron" |
| 585 | 585 | |
| 586 | −#: expr.c:2010 | |
| 586 | +#: expr.c:1994 | |
| 587 | 587 | msgid "comma operator in operand of #if" |
| 588 | 588 | msgstr "koma operatoro en operaciado de #if" |
| 589 | 589 | |
| 590 | −#: expr.c:2146 | |
| 590 | +#: expr.c:2130 | |
| 591 | 591 | msgid "division by zero in #if" |
| 592 | 592 | msgstr "divido per nulo en #if" |
| 593 | 593 | |
| 594 | −#: expr.c:2243 | |
| 594 | +#: expr.c:2227 | |
| 595 | 595 | msgid "operator \"__has_include__\" requires a header string" |
| 596 | 596 | msgstr "la operatoro \"__has_include__\" postulas kapan ĉenon" |
| 597 | 597 | |
| 598 | −#: expr.c:2259 | |
| 598 | +#: expr.c:2243 | |
| 599 | 599 | msgid "missing ')' after \"__has_include__\"" |
| 600 | 600 | msgstr "mankas ')' post \"__has_include__\"" |
| 601 | 601 | |
| @@ -612,40 +612,40 @@ msgstr "uzu -Winvalid-pch por pli da informo" · 10 unmodified lines | ||
| 612 | 612 | msgid "no include path in which to search for %s" |
| 613 | 613 | msgstr "estas neniu inkluziva vojo por serĉi %s" |
| 614 | 614 | |
| 615 | −#: files.c:1441 | |
| 615 | +#: files.c:1455 | |
| 616 | 616 | msgid "Multiple include guards may be useful for:\n" |
| 617 | 617 | msgstr "Multoblaj inkluzivaj gardnodoj povas esti utilaj por:\n" |
| 618 | 618 | |
| 619 | −#: init.c:565 | |
| 619 | +#: init.c:569 | |
| 620 | 620 | msgid "cppchar_t must be an unsigned type" |
| 621 | 621 | msgstr "cppchar_t devas esti sensignuma tipo" |
| 622 | 622 | |
| 623 | −#: init.c:569 | |
| 623 | +#: init.c:573 | |
| 624 | 624 | #, c-format |
| 625 | 625 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 626 | 626 | msgstr "antaŭproceza aritmetiko havas maksimuman precizecon de %lu bitoj; la celo postulas %lu bitojn" |
| 627 | 627 | |
| 628 | −#: init.c:576 | |
| 628 | +#: init.c:580 | |
| 629 | 629 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 630 | 630 | msgstr "Aritmetiko de CPP devas esti minimue tiel preciza kiel la celata int" |
| 631 | 631 | |
| 632 | −#: init.c:579 | |
| 632 | +#: init.c:583 | |
| 633 | 633 | msgid "target char is less than 8 bits wide" |
| 634 | 634 | msgstr "la celata char estas pli eta ol 8 bitoj" |
| 635 | 635 | |
| 636 | −#: init.c:583 | |
| 636 | +#: init.c:587 | |
| 637 | 637 | msgid "target wchar_t is narrower than target char" |
| 638 | 638 | msgstr "la celata wchar_t estas pli mallarĝa ol la celata char" |
| 639 | 639 | |
| 640 | −#: init.c:587 | |
| 640 | +#: init.c:591 | |
| 641 | 641 | msgid "target int is narrower than target char" |
| 642 | 642 | msgstr "la celata int estas pli mallarĝa ol la celata char" |
| 643 | 643 | |
| 644 | −#: init.c:592 | |
| 644 | +#: init.c:596 | |
| 645 | 645 | msgid "CPP half-integer narrower than CPP character" |
| 646 | 646 | msgstr "duon-entjero de CPP estas pli mallarĝa ol la signo de CPP" |
| 647 | 647 | |
| 648 | −#: init.c:596 | |
| 648 | +#: init.c:600 | |
| 649 | 649 | #, c-format |
| 650 | 650 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 651 | 651 | 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 | ||
| 717 | 717 | msgid "identifier \"%s\" is a special operator name in C++" |
| 718 | 718 | msgstr "la identiganto \"%s\" estas speciala operator-nomo en C++" |
| 719 | 719 | |
| 720 | −#: lex.c:1811 | |
| 720 | +#: lex.c:1826 | |
| 721 | 721 | msgid "raw string delimiter longer than 16 characters" |
| 722 | 722 | msgstr "kruda ĉen-apartigilo pli longas ol 16 signoj" |
| 723 | 723 | |
| 724 | −#: lex.c:1815 | |
| 724 | +#: lex.c:1830 | |
| 725 | 725 | msgid "invalid new-line in raw string delimiter" |
| 726 | 726 | msgstr "malvalida nov-linio en kruda ĉen-apartigilo" |
| 727 | 727 | |
| 728 | −#: lex.c:1819 | |
| 728 | +#: lex.c:1834 | |
| 729 | 729 | #, c-format |
| 730 | 730 | msgid "invalid character '%c' in raw string delimiter" |
| 731 | 731 | msgstr "malvalida signo '%c' en kruda ĉen-apartigilo" |
| 732 | 732 | |
| 733 | −#: lex.c:1868 lex.c:1890 | |
| 733 | +#: lex.c:1883 lex.c:1905 | |
| 734 | 734 | msgid "unterminated raw string" |
| 735 | 735 | msgstr "nefinigita kruda ĉeno" |
| 736 | 736 | |
| 737 | −#: lex.c:1912 lex.c:2043 | |
| 737 | +#: lex.c:1925 lex.c:2054 | |
| 738 | 738 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 739 | 739 | msgstr "malvalida sufikso en literaĵo; C++11 postulas spacon inter literaĵo kaj ĉena makroo" |
| 740 | 740 | |
| 741 | −#: lex.c:2024 | |
| 741 | +#: lex.c:2037 | |
| 742 | 742 | msgid "null character(s) preserved in literal" |
| 743 | 743 | msgstr "nul-signo(j) tenitaj en literaĵo" |
| 744 | 744 | |
| 745 | −#: lex.c:2027 | |
| 745 | +#: lex.c:2040 | |
| 746 | 746 | #, c-format |
| 747 | 747 | msgid "missing terminating %c character" |
| 748 | 748 | msgstr "mankas finigantan signon %c" |
| 749 | 749 | |
| 750 | −#: lex.c:2061 | |
| 750 | +#: lex.c:2072 | |
| 751 | 751 | msgid "C++11 requires a space between string literal and macro" |
| 752 | 752 | msgstr "C++11 postulas spacon inter ĉena literaĵo kaj makroo" |
| 753 | 753 | |
| 754 | −#: lex.c:2865 lex.c:2899 | |
| 754 | +#: lex.c:2876 lex.c:2910 | |
| 755 | 755 | msgid "C++ style comments are not allowed in ISO C90" |
| 756 | 756 | msgstr "Komentoj laŭ estilo de C++ ne estas permesataj en ISO C90" |
| 757 | 757 | |
| 758 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 758 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 759 | 759 | msgid "(this will be reported only once per input file)" |
| 760 | 760 | msgstr "(tio ĉi estos raportata nur po unu foje por ĉiu enigdosiero)" |
| 761 | 761 | |
| 762 | −#: lex.c:2876 | |
| 762 | +#: lex.c:2887 | |
| 763 | 763 | msgid "C++ style comments are incompatible with C90" |
| 764 | 764 | msgstr "Komentoj laŭ estilo de C++ ne interakordas kun C90" |
| 765 | 765 | |
| 766 | −#: lex.c:2907 | |
| 766 | +#: lex.c:2919 | |
| 767 | 767 | msgid "multi-line comment" |
| 768 | 768 | msgstr "plurlinia komento" |
| 769 | 769 | |
| 770 | −#: lex.c:3287 | |
| 770 | +#: lex.c:3299 | |
| 771 | 771 | #, c-format |
| 772 | 772 | msgid "unspellable token %s" |
| 773 | 773 | msgstr "neliterumebla ĵetono %s" |
| 774 | 774 | |
| 775 | −#: macro.c:93 | |
| 775 | +#: macro.c:94 | |
| 776 | 776 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 777 | 777 | msgstr "'##' ne povas aperi ĉe iu ajn flanko de __VA_OPT__" |
| 778 | 778 | |
| 779 | −#: macro.c:352 | |
| 779 | +#: macro.c:354 | |
| 780 | 780 | #, c-format |
| 781 | 781 | msgid "macro \"%s\" is not used" |
| 782 | 782 | msgstr "makroo \"%s\" ne estas uzata" |
| 783 | 783 | |
| 784 | −#: macro.c:391 macro.c:639 | |
| 784 | +#: macro.c:393 macro.c:641 | |
| 785 | 785 | #, c-format |
| 786 | 786 | msgid "invalid built-in macro \"%s\"" |
| 787 | 787 | msgstr "malvalida enkonstruita makroo \"%s\"" |
| 788 | 788 | |
| 789 | −#: macro.c:398 macro.c:500 | |
| 789 | +#: macro.c:400 macro.c:502 | |
| 790 | 790 | #, c-format |
| 791 | 791 | msgid "macro \"%s\" might prevent reproducible builds" |
| 792 | 792 | msgstr "la makroo \"%s\" povos malebligi reprodukteblajn konstruojn" |
| 793 | 793 | |
| 794 | −#: macro.c:429 | |
| 794 | +#: macro.c:431 | |
| 795 | 795 | msgid "could not determine file timestamp" |
| 796 | 796 | msgstr "ne eblis determini la dosieran tempomarkon" |
| 797 | 797 | |
| 798 | −#: macro.c:546 | |
| 798 | +#: macro.c:548 | |
| 799 | 799 | msgid "could not determine date and time" |
| 800 | 800 | msgstr "ne eblis determini la daton kaj horon" |
| 801 | 801 | |
| 802 | −#: macro.c:562 | |
| 802 | +#: macro.c:564 | |
| 803 | 803 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 804 | 804 | msgstr "__COUNTER__ estas etendigata interne de instrukcio per -fdirectives-only" |
| 805 | 805 | |
| 806 | −#: macro.c:758 | |
| 806 | +#: macro.c:760 | |
| 807 | 807 | msgid "invalid string literal, ignoring final '\\'" |
| 808 | 808 | msgstr "malvalida ĉena literaĵo, ni preterpasas finan '\\'" |
| 809 | 809 | |
| 810 | −#: macro.c:820 | |
| 810 | +#: macro.c:822 | |
| 811 | 811 | #, c-format |
| 812 | 812 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 813 | 813 | msgstr "algluo de \"%s\" kaj \"%s\" ne rezultas en valida antaŭproceza ĵetono" |
| 814 | 814 | |
| 815 | −#: macro.c:946 | |
| 815 | +#: macro.c:948 | |
| 816 | 816 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 817 | 817 | msgstr "ISO C++11 postulas minimume unu argumenton por la \"...\" en variebl-argumenta makroo" |
| 818 | 818 | |
| 819 | −#: macro.c:950 | |
| 819 | +#: macro.c:952 | |
| 820 | 820 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 821 | 821 | msgstr "ISO C99 postulas minimume unu argumenton por la \"...\" en variebl-argumenta makroo" |
| 822 | 822 | |
| 823 | −#: macro.c:957 | |
| 823 | +#: macro.c:959 | |
| 824 | 824 | #, c-format |
| 825 | 825 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 826 | 826 | msgstr "la makroo \"%s\" postulas %u argumentojn, sed nur %u estis indikataj" |
| 827 | 827 | |
| 828 | −#: macro.c:962 | |
| 828 | +#: macro.c:964 | |
| 829 | 829 | #, c-format |
| 830 | 830 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 831 | 831 | msgstr "la makroo \"%s\" pasis %u argumentojn, sed ĝi prenas nur %u" |
| 832 | 832 | |
| 833 | −#: macro.c:1156 traditional.c:819 | |
| 833 | +#: macro.c:1162 traditional.c:827 | |
| 834 | 834 | #, c-format |
| 835 | 835 | msgid "unterminated argument list invoking macro \"%s\"" |
| 836 | 836 | msgstr "nefinigita argumentlisto alvokanta la makroon \"%s\"" |
| 837 | 837 | |
| 838 | −#: macro.c:1307 | |
| 838 | +#: macro.c:1304 | |
| 839 | 839 | #, c-format |
| 840 | 840 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 841 | 841 | msgstr "funkci-simila makroo \"%s\" devas esti uzata kun argumentoj laŭ tradicia C" |
| 842 | 842 | |
| 843 | −#: macro.c:2003 | |
| 843 | +#: macro.c:2083 | |
| 844 | 844 | #, c-format |
| 845 | 845 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 846 | 846 | msgstr "alvoko de makroo %s, argumento %d: malplenaj makro-argumentoj estas nedifinitaj en ISO C++98" |
| 847 | 847 | |
| 848 | −#: macro.c:2011 macro.c:2020 | |
| 848 | +#: macro.c:2091 macro.c:2100 | |
| 849 | 849 | #, c-format |
| 850 | 850 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 851 | 851 | msgstr "alvoko de makroo %s, argumento %d: malplenaj makro-argumentoj estas nedifinitaj en ISO C90" |
| 852 | 852 | |
| 853 | −#: macro.c:2984 | |
| 853 | +#: macro.c:3059 | |
| 854 | 854 | #, c-format |
| 855 | 855 | msgid "duplicate macro parameter \"%s\"" |
| 856 | 856 | msgstr "duobligata makro-parametro \"%s\"" |
| 857 | 857 | |
| 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 | |
| 859 | 864 | #, 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\"" | |
| 862 | 867 | |
| 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" | |
| 866 | 871 | |
| 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" | |
| 870 | 875 | |
| 871 | −#: macro.c:3081 | |
| 876 | +#: macro.c:3145 | |
| 877 | +msgid "expected ')' after \"...\"" | |
| 878 | +msgstr "ni atendis ')' post \"...\"" | |
| 879 | + | |
| 880 | +#: macro.c:3202 | |
| 872 | 881 | msgid "anonymous variadic macros were introduced in C++11" |
| 873 | 882 | msgstr "sennomaj variebl-argumentaj makrooj estis enkondukataj en C++11" |
| 874 | 883 | |
| 875 | −#: macro.c:3085 macro.c:3090 | |
| 884 | +#: macro.c:3203 macro.c:3207 | |
| 876 | 885 | msgid "anonymous variadic macros were introduced in C99" |
| 877 | 886 | msgstr "sennomaj variebl-argumentaj makrooj estis enkondukataj en C99" |
| 878 | 887 | |
| 879 | −#: macro.c:3097 | |
| 888 | +#: macro.c:3213 | |
| 880 | 889 | msgid "ISO C++ does not permit named variadic macros" |
| 881 | 890 | msgstr "ISO C++ ne permesas nomitajn variebl-argumentajn makroojn" |
| 882 | 891 | |
| 883 | −#: macro.c:3100 | |
| 892 | +#: macro.c:3214 | |
| 884 | 893 | msgid "ISO C does not permit named variadic macros" |
| 885 | 894 | msgstr "ISO C ne permesas nomitajn variebl-argumentajn makroojn" |
| 886 | 895 | |
| 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 | |
| 892 | 897 | msgid "'##' cannot appear at either end of a macro expansion" |
| 893 | 898 | msgstr "'##' ne povas aperi ĉe iu ajn flanko de makroa disvolviĝo" |
| 894 | 899 | |
| 895 | −#: macro.c:3198 | |
| 900 | +#: macro.c:3298 | |
| 896 | 901 | msgid "ISO C++11 requires whitespace after the macro name" |
| 897 | 902 | msgstr "ISO C++11 postulas blankspacon post la makroa nomo" |
| 898 | 903 | |
| 899 | −#: macro.c:3201 | |
| 904 | +#: macro.c:3299 | |
| 900 | 905 | msgid "ISO C99 requires whitespace after the macro name" |
| 901 | 906 | msgstr "ISO C99 postulas blankspacon post la makroa nomo" |
| 902 | 907 | |
| 903 | −#: macro.c:3226 | |
| 908 | +#: macro.c:3323 | |
| 904 | 909 | msgid "missing whitespace after the macro name" |
| 905 | 910 | msgstr "mankas blankspacon post la makroa nomo" |
| 906 | 911 | |
| 907 | −#: macro.c:3263 | |
| 912 | +#: macro.c:3373 | |
| 908 | 913 | msgid "'#' is not followed by a macro parameter" |
| 909 | 914 | msgstr "'#' ne estas sekvata de makroa parametro" |
| 910 | 915 | |
| 911 | −#: macro.c:3430 | |
| 916 | +#: macro.c:3524 | |
| 912 | 917 | #, c-format |
| 913 | 918 | msgid "\"%s\" redefined" |
| 914 | 919 | msgstr "\"%s\" estas redifinita" |
| 915 | 920 | |
| 916 | −#: macro.c:3435 | |
| 921 | +#: macro.c:3529 | |
| 917 | 922 | msgid "this is the location of the previous definition" |
| 918 | 923 | msgstr "tiu ĉi estas la loko de la antaŭa difino" |
| 919 | 924 | |
| 920 | −#: macro.c:3496 | |
| 925 | +#: macro.c:3633 | |
| 921 | 926 | #, c-format |
| 922 | 927 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 923 | 928 | msgstr "makroa argumento \"%s\" devus esti ĉenigita laŭ tradicia C" |
| 924 | 929 | |
| 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 | |
| 931 | 931 | msgid "while writing precompiled header" |
| 932 | 932 | msgstr "dum skribo de antaŭkompilita kapo" |
| 933 | 933 | |
| 934 | −#: pch.c:621 | |
| 934 | +#: pch.c:616 | |
| 935 | 935 | #, c-format |
| 936 | 936 | msgid "%s: not used because `%.*s' is poisoned" |
| 937 | 937 | msgstr "%s: ne uzata ĉar '%.*s' estas venenita" |
| 938 | 938 | |
| 939 | −#: pch.c:643 | |
| 939 | +#: pch.c:638 | |
| 940 | 940 | #, c-format |
| 941 | 941 | msgid "%s: not used because `%.*s' not defined" |
| 942 | 942 | msgstr "%s: ne uzata ĉar '%.*s' ne estas difinita" |
| 943 | 943 | |
| 944 | −#: pch.c:655 | |
| 944 | +#: pch.c:650 | |
| 945 | 945 | #, c-format |
| 946 | 946 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 947 | 947 | msgstr "%s: ne uzata ĉar '%.*s' estas difinita kiel '%s', ne '%.*s'" |
| 948 | 948 | |
| 949 | −#: pch.c:696 | |
| 949 | +#: pch.c:691 | |
| 950 | 950 | #, c-format |
| 951 | 951 | msgid "%s: not used because `%s' is defined" |
| 952 | 952 | msgstr "%s: ne uzata ĉar '%s' estas difinita" |
| 953 | 953 | |
| 954 | −#: pch.c:716 | |
| 954 | +#: pch.c:711 | |
| 955 | 955 | #, c-format |
| 956 | 956 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 957 | 957 | msgstr "%s: ne uzata ĉar '__COUNTER__' estas malvalida" |
| 958 | 958 | |
| 959 | −#: pch.c:725 pch.c:903 | |
| 959 | +#: pch.c:720 pch.c:878 | |
| 960 | 960 | msgid "while reading precompiled header" |
| 961 | 961 | msgstr "dum lego de antaŭkompilita kapo" |
| 962 | 962 | |
| 963 | −#: traditional.c:889 | |
| 963 | +#: traditional.c:896 | |
| 964 | 964 | #, c-format |
| 965 | 965 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 966 | 966 | msgstr "estis detektata rekursigo dum etendigo de la makroo \"%s\"" |
| 967 | 967 | |
| 968 | −#: traditional.c:1108 | |
| 968 | +#: traditional.c:1119 | |
| 969 | 969 | msgid "syntax error in macro parameter list" |
| 970 | 970 | msgstr "sintaksa eraro en makroa parametro-listo" |
| 971 | 971 | |
| 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 | + | |
| 972 | 987 | #~ msgid "NULL directory in find_file" |
| 973 | 988 | #~ msgstr "NULL-dosierujo en find_file" |
| 974 | 989 | |
Binary file not shown.
| @@ -7,7 +7,7 @@ msgid "" · 6 unmodified lines | ||
| 7 | 7 | msgstr "" |
| 8 | 8 | "Project-Id-Version: cpplib 8.1-b20180128\n" |
| 9 | 9 | "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" | |
| 11 | 11 | "PO-Revision-Date: 2018-03-23 19:16+0100\n" |
| 12 | 12 | "Last-Translator: Francisco Javier Serrador <fserrador@gmail.com>\n" |
| 13 | 13 | "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 | ||
| 87 | 87 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 88 | 88 | msgstr "el carácter universal %.*s no es válido al inicio de un identificador" |
| 89 | 89 | |
| 90 | −#: charset.c:1181 charset.c:2000 | |
| 90 | +#: charset.c:1181 charset.c:2002 | |
| 91 | 91 | msgid "converting UCN to source character set" |
| 92 | 92 | msgstr "convirtiendo un NUC al conjunto de caracteres fuente" |
| 93 | 93 | |
| @@ -138,294 +138,294 @@ msgstr "convirtiendo una secuencia de escape al conjunto de caracteres de ejecuc · 44 unmodified lines | ||
| 138 | 138 | msgid "missing open quote" |
| 139 | 139 | msgstr "falta comilla abierta" |
| 140 | 140 | |
| 141 | −#: charset.c:1827 charset.c:1891 | |
| 141 | +#: charset.c:1829 charset.c:1893 | |
| 142 | 142 | msgid "character constant too long for its type" |
| 143 | 143 | msgstr "constante de carácter demasiado grande para su tipo" |
| 144 | 144 | |
| 145 | −#: charset.c:1830 | |
| 145 | +#: charset.c:1832 | |
| 146 | 146 | msgid "multi-character character constant" |
| 147 | 147 | msgstr "constante de carácter con múltiples caracteres" |
| 148 | 148 | |
| 149 | −#: charset.c:1931 | |
| 149 | +#: charset.c:1933 | |
| 150 | 150 | msgid "empty character constant" |
| 151 | 151 | msgstr "constante de carácter vacía" |
| 152 | 152 | |
| 153 | −#: charset.c:2047 | |
| 153 | +#: charset.c:2049 | |
| 154 | 154 | #, c-format |
| 155 | 155 | msgid "failure to convert %s to %s" |
| 156 | 156 | msgstr "no se puede convertir %s a %s" |
| 157 | 157 | |
| 158 | −#: directives.c:235 directives.c:278 | |
| 158 | +#: directives.c:229 directives.c:272 | |
| 159 | 159 | #, c-format |
| 160 | 160 | msgid "extra tokens at end of #%s directive" |
| 161 | 161 | msgstr "elementos extra al final de la directiva #%s" |
| 162 | 162 | |
| 163 | −#: directives.c:385 | |
| 163 | +#: directives.c:379 | |
| 164 | 164 | #, c-format |
| 165 | 165 | msgid "#%s is a GCC extension" |
| 166 | 166 | msgstr "#%s es una extensión de GCC" |
| 167 | 167 | |
| 168 | −#: directives.c:390 | |
| 168 | +#: directives.c:384 | |
| 169 | 169 | #, c-format |
| 170 | 170 | msgid "#%s is a deprecated GCC extension" |
| 171 | 171 | msgstr "#%s es una extensión de GCC obsoleta" |
| 172 | 172 | |
| 173 | −#: directives.c:403 | |
| 173 | +#: directives.c:397 | |
| 174 | 174 | msgid "suggest not using #elif in traditional C" |
| 175 | 175 | msgstr "se sugiere no usar #elif en C tradicional" |
| 176 | 176 | |
| 177 | −#: directives.c:406 | |
| 177 | +#: directives.c:400 | |
| 178 | 178 | #, c-format |
| 179 | 179 | msgid "traditional C ignores #%s with the # indented" |
| 180 | 180 | msgstr "C tradicional ignora #%s con el # indentado" |
| 181 | 181 | |
| 182 | −#: directives.c:410 | |
| 182 | +#: directives.c:404 | |
| 183 | 183 | #, c-format |
| 184 | 184 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 185 | 185 | msgstr "se sugiere ocultar #%s de C tradicional con un # indentado" |
| 186 | 186 | |
| 187 | −#: directives.c:436 | |
| 187 | +#: directives.c:430 | |
| 188 | 188 | msgid "embedding a directive within macro arguments is not portable" |
| 189 | 189 | msgstr "imbuir una directiva dentro de los argumentos de una macro no es transportable" |
| 190 | 190 | |
| 191 | −#: directives.c:456 | |
| 191 | +#: directives.c:450 | |
| 192 | 192 | msgid "style of line directive is a GCC extension" |
| 193 | 193 | msgstr "la directiva de estilo de línea es una extensión de GCC" |
| 194 | 194 | |
| 195 | −#: directives.c:537 | |
| 195 | +#: directives.c:531 | |
| 196 | 196 | #, c-format |
| 197 | 197 | msgid "invalid preprocessing directive #%s" |
| 198 | 198 | msgstr "directiva de preprocesamiento #%s inválida" |
| 199 | 199 | |
| 200 | −#: directives.c:606 | |
| 200 | +#: directives.c:600 | |
| 201 | 201 | msgid "\"defined\" cannot be used as a macro name" |
| 202 | 202 | msgstr "«defined» no se puede utilizarse como un nombre de macro" |
| 203 | 203 | |
| 204 | −#: directives.c:611 | |
| 204 | +#: directives.c:605 | |
| 205 | 205 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 206 | 206 | msgstr "\"__has_include__\" no puede ser usado como un nombre de macro" |
| 207 | 207 | |
| 208 | −#: directives.c:617 | |
| 208 | +#: directives.c:611 | |
| 209 | 209 | #, c-format |
| 210 | 210 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 211 | 211 | msgstr "no se puede usar «%s» como un nombre de macro porque es un operador en C++" |
| 212 | 212 | |
| 213 | −#: directives.c:620 | |
| 213 | +#: directives.c:614 | |
| 214 | 214 | #, c-format |
| 215 | 215 | msgid "no macro name given in #%s directive" |
| 216 | 216 | msgstr "no se dio un nombre de macro en la directiva #%s" |
| 217 | 217 | |
| 218 | −#: directives.c:623 | |
| 218 | +#: directives.c:617 | |
| 219 | 219 | msgid "macro names must be identifiers" |
| 220 | 220 | msgstr "los nombres de macro deben ser identificadores" |
| 221 | 221 | |
| 222 | −#: directives.c:672 directives.c:677 | |
| 222 | +#: directives.c:666 directives.c:671 | |
| 223 | 223 | #, c-format |
| 224 | 224 | msgid "undefining \"%s\"" |
| 225 | 225 | msgstr "borrando la definición de «%s»" |
| 226 | 226 | |
| 227 | −#: directives.c:732 | |
| 227 | +#: directives.c:727 | |
| 228 | 228 | msgid "missing terminating > character" |
| 229 | 229 | msgstr "falta el carácter de terminación >" |
| 230 | 230 | |
| 231 | −#: directives.c:791 | |
| 231 | +#: directives.c:786 | |
| 232 | 232 | #, c-format |
| 233 | 233 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 234 | 234 | msgstr "#%s espera «NOMBREFICHERO» o <NOMBREFICHERO>" |
| 235 | 235 | |
| 236 | −#: directives.c:837 | |
| 236 | +#: directives.c:828 | |
| 237 | 237 | #, c-format |
| 238 | 238 | msgid "empty filename in #%s" |
| 239 | 239 | msgstr "nombre de fichero vacío en #%s" |
| 240 | 240 | |
| 241 | −#: directives.c:847 | |
| 241 | +#: directives.c:835 | |
| 242 | 242 | msgid "#include nested too deeply" |
| 243 | 243 | msgstr "#include anidado con demasiada profundidad" |
| 244 | 244 | |
| 245 | −#: directives.c:888 | |
| 245 | +#: directives.c:877 | |
| 246 | 246 | msgid "#include_next in primary source file" |
| 247 | 247 | msgstr "#include_next en fichero primario de código fuente" |
| 248 | 248 | |
| 249 | −#: directives.c:914 | |
| 249 | +#: directives.c:903 | |
| 250 | 250 | #, c-format |
| 251 | 251 | msgid "invalid flag \"%s\" in line directive" |
| 252 | 252 | msgstr "indicador «%s» inválido en la línea de la directiva" |
| 253 | 253 | |
| 254 | −#: directives.c:974 | |
| 254 | +#: directives.c:963 | |
| 255 | 255 | msgid "unexpected end of file after #line" |
| 256 | 256 | msgstr "fin de fichero inesperado después de #line" |
| 257 | 257 | |
| 258 | −#: directives.c:977 | |
| 258 | +#: directives.c:966 | |
| 259 | 259 | #, c-format |
| 260 | 260 | msgid "\"%s\" after #line is not a positive integer" |
| 261 | 261 | msgstr "«%s» después de #line no es un entero positivo" |
| 262 | 262 | |
| 263 | −#: directives.c:983 directives.c:985 | |
| 263 | +#: directives.c:972 directives.c:974 | |
| 264 | 264 | msgid "line number out of range" |
| 265 | 265 | msgstr "número de línea fuera de rango" |
| 266 | 266 | |
| 267 | −#: directives.c:998 directives.c:1079 | |
| 267 | +#: directives.c:987 directives.c:1068 | |
| 268 | 268 | #, c-format |
| 269 | 269 | msgid "\"%s\" is not a valid filename" |
| 270 | 270 | msgstr "«%s» no es un nombre de fichero válido" |
| 271 | 271 | |
| 272 | −#: directives.c:1039 | |
| 272 | +#: directives.c:1028 | |
| 273 | 273 | #, c-format |
| 274 | 274 | msgid "\"%s\" after # is not a positive integer" |
| 275 | 275 | msgstr "«%s» después de # no es un entero positivo" |
| 276 | 276 | |
| 277 | −#: directives.c:1098 | |
| 277 | +#: directives.c:1087 | |
| 278 | 278 | #, c-format |
| 279 | 279 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 280 | 280 | msgstr "marca lineal de fichero «%s» ignorada debido a anidación incorrecta" |
| 281 | 281 | |
| 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 | |
| 283 | 283 | #, c-format |
| 284 | 284 | msgid "%s" |
| 285 | 285 | msgstr "%s" |
| 286 | 286 | |
| 287 | −#: directives.c:1185 | |
| 287 | +#: directives.c:1175 | |
| 288 | 288 | #, c-format |
| 289 | 289 | msgid "invalid #%s directive" |
| 290 | 290 | msgstr "directiva #%s inválida" |
| 291 | 291 | |
| 292 | −#: directives.c:1248 | |
| 292 | +#: directives.c:1238 | |
| 293 | 293 | #, c-format |
| 294 | 294 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 295 | 295 | msgstr "se registran pragmas en el espacio de nombres «%s» con una expansión de nombre que no coincide" |
| 296 | 296 | |
| 297 | −#: directives.c:1257 | |
| 297 | +#: directives.c:1247 | |
| 298 | 298 | #, c-format |
| 299 | 299 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 300 | 300 | msgstr "se registra el pragma «%s» con expansión de nombre y sin un espacio de nombres" |
| 301 | 301 | |
| 302 | −#: directives.c:1275 | |
| 302 | +#: directives.c:1265 | |
| 303 | 303 | #, c-format |
| 304 | 304 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 305 | 305 | msgstr "se registra «%s» como un pragma y como un espacio de nombres de pragma" |
| 306 | 306 | |
| 307 | −#: directives.c:1278 | |
| 307 | +#: directives.c:1268 | |
| 308 | 308 | #, c-format |
| 309 | 309 | msgid "#pragma %s %s is already registered" |
| 310 | 310 | msgstr "#pragma %s %s ya está registrado" |
| 311 | 311 | |
| 312 | −#: directives.c:1281 | |
| 312 | +#: directives.c:1271 | |
| 313 | 313 | #, c-format |
| 314 | 314 | msgid "#pragma %s is already registered" |
| 315 | 315 | msgstr "#pragma %s ya está registrado" |
| 316 | 316 | |
| 317 | −#: directives.c:1311 | |
| 317 | +#: directives.c:1301 | |
| 318 | 318 | msgid "registering pragma with NULL handler" |
| 319 | 319 | msgstr "se registra un pragma con manejador NULL" |
| 320 | 320 | |
| 321 | −#: directives.c:1528 | |
| 321 | +#: directives.c:1518 | |
| 322 | 322 | msgid "#pragma once in main file" |
| 323 | 323 | msgstr "#pragma una vez en el fichero principal" |
| 324 | 324 | |
| 325 | −#: directives.c:1551 | |
| 325 | +#: directives.c:1541 | |
| 326 | 326 | msgid "invalid #pragma push_macro directive" |
| 327 | 327 | msgstr "directiva #pragma push_macro inválida" |
| 328 | 328 | |
| 329 | −#: directives.c:1606 | |
| 329 | +#: directives.c:1596 | |
| 330 | 330 | msgid "invalid #pragma pop_macro directive" |
| 331 | 331 | msgstr "directiva #pragma pop_macro inválida" |
| 332 | 332 | |
| 333 | −#: directives.c:1661 | |
| 333 | +#: directives.c:1651 | |
| 334 | 334 | msgid "invalid #pragma GCC poison directive" |
| 335 | 335 | msgstr "directiva #pragma de GCC envenenada inválida" |
| 336 | 336 | |
| 337 | −#: directives.c:1670 | |
| 337 | +#: directives.c:1660 | |
| 338 | 338 | #, c-format |
| 339 | 339 | msgid "poisoning existing macro \"%s\"" |
| 340 | 340 | msgstr "se envenena la macro existente «%s»" |
| 341 | 341 | |
| 342 | −#: directives.c:1689 | |
| 342 | +#: directives.c:1679 | |
| 343 | 343 | msgid "#pragma system_header ignored outside include file" |
| 344 | 344 | msgstr "#pragma system_header ignorado fuera del fichero a incluir" |
| 345 | 345 | |
| 346 | −#: directives.c:1714 | |
| 346 | +#: directives.c:1704 | |
| 347 | 347 | #, c-format |
| 348 | 348 | msgid "cannot find source file %s" |
| 349 | 349 | msgstr "no se puede encontrar el fichero fuente %s" |
| 350 | 350 | |
| 351 | −#: directives.c:1718 | |
| 351 | +#: directives.c:1708 | |
| 352 | 352 | #, c-format |
| 353 | 353 | msgid "current file is older than %s" |
| 354 | 354 | msgstr "el fichero actual es más antiguo que %s" |
| 355 | 355 | |
| 356 | −#: directives.c:1742 | |
| 356 | +#: directives.c:1732 | |
| 357 | 357 | #, c-format |
| 358 | 358 | msgid "invalid \"#pragma GCC %s\" directive" |
| 359 | 359 | msgstr "directiva \"#pragma GCC %s\" inválida" |
| 360 | 360 | |
| 361 | −#: directives.c:1943 | |
| 361 | +#: directives.c:1933 | |
| 362 | 362 | msgid "_Pragma takes a parenthesized string literal" |
| 363 | 363 | msgstr "_Pragma lleva una cadena literal entre paréntesis" |
| 364 | 364 | |
| 365 | −#: directives.c:2064 | |
| 365 | +#: directives.c:2021 | |
| 366 | 366 | msgid "#else without #if" |
| 367 | 367 | msgstr "#else sin #if" |
| 368 | 368 | |
| 369 | −#: directives.c:2069 | |
| 369 | +#: directives.c:2026 | |
| 370 | 370 | msgid "#else after #else" |
| 371 | 371 | msgstr "#else tras #else" |
| 372 | 372 | |
| 373 | −#: directives.c:2071 directives.c:2104 | |
| 373 | +#: directives.c:2028 directives.c:2061 | |
| 374 | 374 | msgid "the conditional began here" |
| 375 | 375 | msgstr "el condicional empezó aquí" |
| 376 | 376 | |
| 377 | −#: directives.c:2097 | |
| 377 | +#: directives.c:2054 | |
| 378 | 378 | msgid "#elif without #if" |
| 379 | 379 | msgstr "#elif sin #if" |
| 380 | 380 | |
| 381 | −#: directives.c:2102 | |
| 381 | +#: directives.c:2059 | |
| 382 | 382 | msgid "#elif after #else" |
| 383 | 383 | msgstr "#elif después de #else" |
| 384 | 384 | |
| 385 | −#: directives.c:2133 | |
| 385 | +#: directives.c:2090 | |
| 386 | 386 | msgid "#endif without #if" |
| 387 | 387 | msgstr "#endif sin #if" |
| 388 | 388 | |
| 389 | −#: directives.c:2213 | |
| 389 | +#: directives.c:2166 | |
| 390 | 390 | msgid "missing '(' after predicate" |
| 391 | 391 | msgstr "falta '(' antes del predicado" |
| 392 | 392 | |
| 393 | −#: directives.c:2228 | |
| 393 | +#: directives.c:2184 | |
| 394 | 394 | msgid "missing ')' to complete answer" |
| 395 | 395 | msgstr "falta ')' para completar la respuesta" |
| 396 | 396 | |
| 397 | −#: directives.c:2248 | |
| 397 | +#: directives.c:2196 | |
| 398 | 398 | msgid "predicate's answer is empty" |
| 399 | 399 | msgstr "la respuesta del predicado está vacía" |
| 400 | 400 | |
| 401 | −#: directives.c:2275 | |
| 401 | +#: directives.c:2226 | |
| 402 | 402 | msgid "assertion without predicate" |
| 403 | 403 | msgstr "afirmación sin predicado" |
| 404 | 404 | |
| 405 | −#: directives.c:2278 | |
| 405 | +#: directives.c:2229 | |
| 406 | 406 | msgid "predicate must be an identifier" |
| 407 | 407 | msgstr "el predicado debe ser un identificador" |
| 408 | 408 | |
| 409 | −#: directives.c:2364 | |
| 409 | +#: directives.c:2311 | |
| 410 | 410 | #, c-format |
| 411 | 411 | msgid "\"%s\" re-asserted" |
| 412 | 412 | msgstr "«%s» reafirmado" |
| 413 | 413 | |
| 414 | −#: directives.c:2656 | |
| 414 | +#: directives.c:2587 | |
| 415 | 415 | #, c-format |
| 416 | 416 | msgid "unterminated #%s" |
| 417 | 417 | msgstr "#%s sin terminar" |
| 418 | 418 | |
| 419 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 419 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 420 | 420 | msgid "unterminated comment" |
| 421 | 421 | msgstr "comentario sin terminar" |
| 422 | 422 | |
| 423 | −#: errors.c:284 | |
| 423 | +#: errors.c:291 | |
| 424 | 424 | #, c-format |
| 425 | 425 | msgid "%s: %s" |
| 426 | 426 | msgstr "%s: %s" |
| 427 | 427 | |
| 428 | −#: errors.c:296 | |
| 428 | +#: errors.c:304 | |
| 429 | 429 | msgid "stdout" |
| 430 | 430 | msgstr "salida estándard" |
| 431 | 431 | |
| @@ -518,84 +518,84 @@ msgstr "(«%s» es una marca alternativa para «%s» en C++)" · 86 unmodified lines | ||
| 518 | 518 | msgid "this use of \"defined\" may not be portable" |
| 519 | 519 | msgstr "este uso de \"defined\" puede no ser transportable" |
| 520 | 520 | |
| 521 | −#: expr.c:1125 | |
| 521 | +#: expr.c:1109 | |
| 522 | 522 | msgid "user-defined literal in preprocessor expression" |
| 523 | 523 | msgstr "literal definida por el usuario en una expresión del preprocesador" |
| 524 | 524 | |
| 525 | −#: expr.c:1130 | |
| 525 | +#: expr.c:1114 | |
| 526 | 526 | msgid "floating constant in preprocessor expression" |
| 527 | 527 | msgstr "constante de coma flotante en una expresión del preprocesador" |
| 528 | 528 | |
| 529 | −#: expr.c:1136 | |
| 529 | +#: expr.c:1120 | |
| 530 | 530 | msgid "imaginary number in preprocessor expression" |
| 531 | 531 | msgstr "número imaginario en una expresión del preprocesador" |
| 532 | 532 | |
| 533 | −#: expr.c:1189 | |
| 533 | +#: expr.c:1173 | |
| 534 | 534 | #, c-format |
| 535 | 535 | msgid "\"%s\" is not defined, evaluates to 0" |
| 536 | 536 | msgstr "«%s» no está definido, evalúa a 0" |
| 537 | 537 | |
| 538 | −#: expr.c:1202 | |
| 538 | +#: expr.c:1186 | |
| 539 | 539 | msgid "assertions are a GCC extension" |
| 540 | 540 | msgstr "las aserciones son una extensión GCC" |
| 541 | 541 | |
| 542 | −#: expr.c:1205 | |
| 542 | +#: expr.c:1189 | |
| 543 | 543 | msgid "assertions are a deprecated extension" |
| 544 | 544 | msgstr "las aserciones son una extensión obsoleta" |
| 545 | 545 | |
| 546 | −#: expr.c:1451 | |
| 546 | +#: expr.c:1435 | |
| 547 | 547 | #, c-format |
| 548 | 548 | msgid "unbalanced stack in %s" |
| 549 | 549 | msgstr "pila desbalanceada en %s" |
| 550 | 550 | |
| 551 | −#: expr.c:1471 | |
| 551 | +#: expr.c:1455 | |
| 552 | 552 | #, c-format |
| 553 | 553 | msgid "impossible operator '%u'" |
| 554 | 554 | msgstr "operador '%u' imposible" |
| 555 | 555 | |
| 556 | −#: expr.c:1572 | |
| 556 | +#: expr.c:1556 | |
| 557 | 557 | msgid "missing ')' in expression" |
| 558 | 558 | msgstr "falta ')' en la expresión" |
| 559 | 559 | |
| 560 | −#: expr.c:1601 | |
| 560 | +#: expr.c:1585 | |
| 561 | 561 | msgid "'?' without following ':'" |
| 562 | 562 | msgstr "'?' sin ':' a continuación" |
| 563 | 563 | |
| 564 | −#: expr.c:1611 | |
| 564 | +#: expr.c:1595 | |
| 565 | 565 | msgid "integer overflow in preprocessor expression" |
| 566 | 566 | msgstr "desbordamiento entero en expresión del preprocesador" |
| 567 | 567 | |
| 568 | −#: expr.c:1616 | |
| 568 | +#: expr.c:1600 | |
| 569 | 569 | msgid "missing '(' in expression" |
| 570 | 570 | msgstr "falta '(' en la expresión" |
| 571 | 571 | |
| 572 | −#: expr.c:1648 | |
| 572 | +#: expr.c:1632 | |
| 573 | 573 | #, c-format |
| 574 | 574 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 575 | 575 | msgstr "el operando izquierdo de «%s» cambia de signo cuando es promovido" |
| 576 | 576 | |
| 577 | −#: expr.c:1653 | |
| 577 | +#: expr.c:1637 | |
| 578 | 578 | #, c-format |
| 579 | 579 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 580 | 580 | msgstr "el operando derecho de «%s» cambia de signo cuando es promovido" |
| 581 | 581 | |
| 582 | −#: expr.c:1912 | |
| 582 | +#: expr.c:1896 | |
| 583 | 583 | msgid "traditional C rejects the unary plus operator" |
| 584 | 584 | msgstr "C tradicional rechaza el operador unario mas" |
| 585 | 585 | |
| 586 | −#: expr.c:2010 | |
| 586 | +#: expr.c:1994 | |
| 587 | 587 | msgid "comma operator in operand of #if" |
| 588 | 588 | msgstr "operador coma en operando de #if" |
| 589 | 589 | |
| 590 | −#: expr.c:2146 | |
| 590 | +#: expr.c:2130 | |
| 591 | 591 | msgid "division by zero in #if" |
| 592 | 592 | msgstr "división por cero en #if" |
| 593 | 593 | |
| 594 | −#: expr.c:2243 | |
| 594 | +#: expr.c:2227 | |
| 595 | 595 | msgid "operator \"__has_include__\" requires a header string" |
| 596 | 596 | msgstr "el operador \"__has_include__\" requiere una cadena cabecera" |
| 597 | 597 | |
| 598 | −#: expr.c:2259 | |
| 598 | +#: expr.c:2243 | |
| 599 | 599 | msgid "missing ')' after \"__has_include__\"" |
| 600 | 600 | msgstr "falta ')' tras \"__has_include__\"" |
| 601 | 601 | |
| @@ -612,40 +612,40 @@ msgstr "use -Winvalid-pch para más información" · 10 unmodified lines | ||
| 612 | 612 | msgid "no include path in which to search for %s" |
| 613 | 613 | msgstr "no hay ruta de inclusión en la cual se pueda buscar %s" |
| 614 | 614 | |
| 615 | −#: files.c:1441 | |
| 615 | +#: files.c:1455 | |
| 616 | 616 | msgid "Multiple include guards may be useful for:\n" |
| 617 | 617 | msgstr "Guardias múltiples de include pueden ser útiles para:\n" |
| 618 | 618 | |
| 619 | −#: init.c:565 | |
| 619 | +#: init.c:569 | |
| 620 | 620 | msgid "cppchar_t must be an unsigned type" |
| 621 | 621 | msgstr "cppchar_t debe ser de un tipo unsigned" |
| 622 | 622 | |
| 623 | −#: init.c:569 | |
| 623 | +#: init.c:573 | |
| 624 | 624 | #, c-format |
| 625 | 625 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 626 | 626 | msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bits; el objetivo requiere de %lu bits" |
| 627 | 627 | |
| 628 | −#: init.c:576 | |
| 628 | +#: init.c:580 | |
| 629 | 629 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 630 | 630 | msgstr "la aritmética de CPP debe se al menos tan precisa como un int del objetivo" |
| 631 | 631 | |
| 632 | −#: init.c:579 | |
| 632 | +#: init.c:583 | |
| 633 | 633 | msgid "target char is less than 8 bits wide" |
| 634 | 634 | msgstr "el char del objetivo tiene menos de 8 bits de ancho" |
| 635 | 635 | |
| 636 | −#: init.c:583 | |
| 636 | +#: init.c:587 | |
| 637 | 637 | msgid "target wchar_t is narrower than target char" |
| 638 | 638 | msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo" |
| 639 | 639 | |
| 640 | −#: init.c:587 | |
| 640 | +#: init.c:591 | |
| 641 | 641 | msgid "target int is narrower than target char" |
| 642 | 642 | msgstr "el int del objetivo es más estrecho que el char del objetivo" |
| 643 | 643 | |
| 644 | −#: init.c:592 | |
| 644 | +#: init.c:596 | |
| 645 | 645 | msgid "CPP half-integer narrower than CPP character" |
| 646 | 646 | msgstr "el medio-entero de CPP es más estrecho que el carácter de CPP" |
| 647 | 647 | |
| 648 | −#: init.c:596 | |
| 648 | +#: init.c:600 | |
| 649 | 649 | #, c-format |
| 650 | 650 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 651 | 651 | 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 | ||
| 717 | 717 | msgid "identifier \"%s\" is a special operator name in C++" |
| 718 | 718 | msgstr "el identificador «%s» es un nombre de operador especial en C++" |
| 719 | 719 | |
| 720 | −#: lex.c:1811 | |
| 720 | +#: lex.c:1826 | |
| 721 | 721 | msgid "raw string delimiter longer than 16 characters" |
| 722 | 722 | msgstr "el delimitador de cadena cruda es más largo que 16 caracteres" |
| 723 | 723 | |
| 724 | −#: lex.c:1815 | |
| 724 | +#: lex.c:1830 | |
| 725 | 725 | msgid "invalid new-line in raw string delimiter" |
| 726 | 726 | msgstr "carácter inválido nueva línea en un delimitador de cadena cruda" |
| 727 | 727 | |
| 728 | −#: lex.c:1819 | |
| 728 | +#: lex.c:1834 | |
| 729 | 729 | #, c-format |
| 730 | 730 | msgid "invalid character '%c' in raw string delimiter" |
| 731 | 731 | msgstr "carácter inválido '%c' en un delimitador de cadena cruda" |
| 732 | 732 | |
| 733 | −#: lex.c:1868 lex.c:1890 | |
| 733 | +#: lex.c:1883 lex.c:1905 | |
| 734 | 734 | msgid "unterminated raw string" |
| 735 | 735 | msgstr "cadena cruda sin terminar" |
| 736 | 736 | |
| 737 | −#: lex.c:1912 lex.c:2043 | |
| 737 | +#: lex.c:1925 lex.c:2054 | |
| 738 | 738 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 739 | 739 | msgstr "sufijo inválido en literal; C++11 requiere un espacio entre literal y cadena macro" |
| 740 | 740 | |
| 741 | −#: lex.c:2024 | |
| 741 | +#: lex.c:2037 | |
| 742 | 742 | msgid "null character(s) preserved in literal" |
| 743 | 743 | msgstr "caracter(es) nulo(s) preservados en la literal" |
| 744 | 744 | |
| 745 | −#: lex.c:2027 | |
| 745 | +#: lex.c:2040 | |
| 746 | 746 | #, c-format |
| 747 | 747 | msgid "missing terminating %c character" |
| 748 | 748 | msgstr "falta el carácter de terminación %c" |
| 749 | 749 | |
| 750 | −#: lex.c:2061 | |
| 750 | +#: lex.c:2072 | |
| 751 | 751 | msgid "C++11 requires a space between string literal and macro" |
| 752 | 752 | msgstr "C++11 requiere un espacio entre cadena literal y macro" |
| 753 | 753 | |
| 754 | −#: lex.c:2865 lex.c:2899 | |
| 754 | +#: lex.c:2876 lex.c:2910 | |
| 755 | 755 | msgid "C++ style comments are not allowed in ISO C90" |
| 756 | 756 | msgstr "los comentarios de estilo C++ no se permiten en ISO C90" |
| 757 | 757 | |
| 758 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 758 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 759 | 759 | msgid "(this will be reported only once per input file)" |
| 760 | 760 | msgstr "(esto se reportará solamente una vez por cada fichero de entrada)" |
| 761 | 761 | |
| 762 | −#: lex.c:2876 | |
| 762 | +#: lex.c:2887 | |
| 763 | 763 | msgid "C++ style comments are incompatible with C90" |
| 764 | 764 | msgstr "los comentarios de estilo C++ son incompatibles con C90" |
| 765 | 765 | |
| 766 | −#: lex.c:2907 | |
| 766 | +#: lex.c:2919 | |
| 767 | 767 | msgid "multi-line comment" |
| 768 | 768 | msgstr "comentario en múltiples líneas" |
| 769 | 769 | |
| 770 | −#: lex.c:3287 | |
| 770 | +#: lex.c:3299 | |
| 771 | 771 | #, c-format |
| 772 | 772 | msgid "unspellable token %s" |
| 773 | 773 | msgstr "elemento %s impronunciable" |
| 774 | 774 | |
| 775 | −#: macro.c:93 | |
| 775 | +#: macro.c:94 | |
| 776 | 776 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 777 | 777 | msgstr "'##' no puede aparecer o en el final de una __VA_OPT__" |
| 778 | 778 | |
| 779 | −#: macro.c:352 | |
| 779 | +#: macro.c:354 | |
| 780 | 780 | #, c-format |
| 781 | 781 | msgid "macro \"%s\" is not used" |
| 782 | 782 | msgstr "la macro «%s» no se utiliza" |
| 783 | 783 | |
| 784 | −#: macro.c:391 macro.c:639 | |
| 784 | +#: macro.c:393 macro.c:641 | |
| 785 | 785 | #, c-format |
| 786 | 786 | msgid "invalid built-in macro \"%s\"" |
| 787 | 787 | msgstr "macro interna «%s» inválida" |
| 788 | 788 | |
| 789 | −#: macro.c:398 macro.c:500 | |
| 789 | +#: macro.c:400 macro.c:502 | |
| 790 | 790 | #, c-format |
| 791 | 791 | msgid "macro \"%s\" might prevent reproducible builds" |
| 792 | 792 | msgstr "macro «%s» quizá previene compilaciones reproducibles" |
| 793 | 793 | |
| 794 | −#: macro.c:429 | |
| 794 | +#: macro.c:431 | |
| 795 | 795 | msgid "could not determine file timestamp" |
| 796 | 796 | msgstr "no se puede determinar la marca de fecha del fichero" |
| 797 | 797 | |
| 798 | −#: macro.c:546 | |
| 798 | +#: macro.c:548 | |
| 799 | 799 | msgid "could not determine date and time" |
| 800 | 800 | msgstr "no se puede determinar la fecha y la hora" |
| 801 | 801 | |
| 802 | −#: macro.c:562 | |
| 802 | +#: macro.c:564 | |
| 803 | 803 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 804 | 804 | msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only" |
| 805 | 805 | |
| 806 | −#: macro.c:758 | |
| 806 | +#: macro.c:760 | |
| 807 | 807 | msgid "invalid string literal, ignoring final '\\'" |
| 808 | 808 | msgstr "cadena literal inválida, se ignora el '\\' final" |
| 809 | 809 | |
| 810 | −#: macro.c:820 | |
| 810 | +#: macro.c:822 | |
| 811 | 811 | #, c-format |
| 812 | 812 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 813 | 813 | msgstr "pegar «%s» y «%s» no da un elemento válido de preprocesamiento" |
| 814 | 814 | |
| 815 | −#: macro.c:946 | |
| 815 | +#: macro.c:948 | |
| 816 | 816 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 817 | 817 | msgstr "ISO C++ requiere al menos un argumento: para la \"...\" en una macro variadic" |
| 818 | 818 | |
| 819 | −#: macro.c:950 | |
| 819 | +#: macro.c:952 | |
| 820 | 820 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 821 | 821 | msgstr "ISO C99 requiere al menos un argumento para la \"...\" en una macro variadic" |
| 822 | 822 | |
| 823 | −#: macro.c:957 | |
| 823 | +#: macro.c:959 | |
| 824 | 824 | #, c-format |
| 825 | 825 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 826 | 826 | msgstr "la macro «%s» requiere %u argumentos, pero solo se proporcionan %u" |
| 827 | 827 | |
| 828 | −#: macro.c:962 | |
| 828 | +#: macro.c:964 | |
| 829 | 829 | #, c-format |
| 830 | 830 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 831 | 831 | msgstr "la macro «%s» pasó %u argumentos, pero solamente toma %u" |
| 832 | 832 | |
| 833 | −#: macro.c:1156 traditional.c:819 | |
| 833 | +#: macro.c:1162 traditional.c:827 | |
| 834 | 834 | #, c-format |
| 835 | 835 | msgid "unterminated argument list invoking macro \"%s\"" |
| 836 | 836 | msgstr "lista de argumentos sin terminar al invocar la macro «%s»" |
| 837 | 837 | |
| 838 | −#: macro.c:1307 | |
| 838 | +#: macro.c:1304 | |
| 839 | 839 | #, c-format |
| 840 | 840 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 841 | 841 | msgstr "la función de macro «%s» se debe usar con argumentos en C tradicional" |
| 842 | 842 | |
| 843 | −#: macro.c:2003 | |
| 843 | +#: macro.c:2083 | |
| 844 | 844 | #, c-format |
| 845 | 845 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 846 | 846 | msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos están indefinidos en ISO C++98" |
| 847 | 847 | |
| 848 | −#: macro.c:2011 macro.c:2020 | |
| 848 | +#: macro.c:2091 macro.c:2100 | |
| 849 | 849 | #, c-format |
| 850 | 850 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 851 | 851 | msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos están indefinidos en ISO C90" |
| 852 | 852 | |
| 853 | −#: macro.c:2984 | |
| 853 | +#: macro.c:3059 | |
| 854 | 854 | #, c-format |
| 855 | 855 | msgid "duplicate macro parameter \"%s\"" |
| 856 | 856 | msgstr "parámetro de macro «%s» duplicado" |
| 857 | 857 | |
| 858 | −#: macro.c:3033 | |
| 858 | +#: macro.c:3141 | |
| 859 | 859 | #, 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 "" | |
| 862 | 867 | |
| 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" | |
| 866 | 877 | |
| 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 "" | |
| 870 | 881 | |
| 871 | −#: macro.c:3081 | |
| 882 | +#: macro.c:3202 | |
| 872 | 883 | msgid "anonymous variadic macros were introduced in C++11" |
| 873 | 884 | msgstr "las macros variadic anónimas se introdujeron en C++11" |
| 874 | 885 | |
| 875 | −#: macro.c:3085 macro.c:3090 | |
| 886 | +#: macro.c:3203 macro.c:3207 | |
| 876 | 887 | msgid "anonymous variadic macros were introduced in C99" |
| 877 | 888 | msgstr "los macros variadic anónimos se introdujeron en C99" |
| 878 | 889 | |
| 879 | −#: macro.c:3097 | |
| 890 | +#: macro.c:3213 | |
| 880 | 891 | msgid "ISO C++ does not permit named variadic macros" |
| 881 | 892 | msgstr "ISO C++ no permite macros variadic nombrados" |
| 882 | 893 | |
| 883 | −#: macro.c:3100 | |
| 894 | +#: macro.c:3214 | |
| 884 | 895 | msgid "ISO C does not permit named variadic macros" |
| 885 | 896 | msgstr "ISO C no permite macros variadic nombrados" |
| 886 | 897 | |
| 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 | |
| 892 | 899 | msgid "'##' cannot appear at either end of a macro expansion" |
| 893 | 900 | msgstr "'##' no puede aparece en o al final de una expansión de macro" |
| 894 | 901 | |
| 895 | −#: macro.c:3198 | |
| 902 | +#: macro.c:3298 | |
| 896 | 903 | msgid "ISO C++11 requires whitespace after the macro name" |
| 897 | 904 | msgstr "ISO C++11 requiere espacios en blanco tras del nombre de macro" |
| 898 | 905 | |
| 899 | −#: macro.c:3201 | |
| 906 | +#: macro.c:3299 | |
| 900 | 907 | msgid "ISO C99 requires whitespace after the macro name" |
| 901 | 908 | msgstr "ISO C99 requiere espacios en blanco después del nombre de macro" |
| 902 | 909 | |
| 903 | −#: macro.c:3226 | |
| 910 | +#: macro.c:3323 | |
| 904 | 911 | msgid "missing whitespace after the macro name" |
| 905 | 912 | msgstr "faltan espacios en blanco después del nombre de macro" |
| 906 | 913 | |
| 907 | −#: macro.c:3263 | |
| 914 | +#: macro.c:3373 | |
| 908 | 915 | msgid "'#' is not followed by a macro parameter" |
| 909 | 916 | msgstr "'#' no es seguido por un parámetro de macro" |
| 910 | 917 | |
| 911 | −#: macro.c:3430 | |
| 918 | +#: macro.c:3524 | |
| 912 | 919 | #, c-format |
| 913 | 920 | msgid "\"%s\" redefined" |
| 914 | 921 | msgstr "«%s» redefinido" |
| 915 | 922 | |
| 916 | −#: macro.c:3435 | |
| 923 | +#: macro.c:3529 | |
| 917 | 924 | msgid "this is the location of the previous definition" |
| 918 | 925 | msgstr "esta es la ubicación de la definición previa" |
| 919 | 926 | |
| 920 | −#: macro.c:3496 | |
| 927 | +#: macro.c:3633 | |
| 921 | 928 | #, c-format |
| 922 | 929 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 923 | 930 | msgstr "el argumento de macro «%s» debería ser convertido a cadena en C tradicional" |
| 924 | 931 | |
| 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 | |
| 931 | 933 | msgid "while writing precompiled header" |
| 932 | 934 | msgstr "al escribir el encabezado precompilado" |
| 933 | 935 | |
| 934 | −#: pch.c:621 | |
| 936 | +#: pch.c:616 | |
| 935 | 937 | #, c-format |
| 936 | 938 | msgid "%s: not used because `%.*s' is poisoned" |
| 937 | 939 | msgstr "%s: no se usa porque `%.*s' está envenenado" |
| 938 | 940 | |
| 939 | −#: pch.c:643 | |
| 941 | +#: pch.c:638 | |
| 940 | 942 | #, c-format |
| 941 | 943 | msgid "%s: not used because `%.*s' not defined" |
| 942 | 944 | msgstr "%s: no se usa porque `%.*s' no está definido" |
| 943 | 945 | |
| 944 | −#: pch.c:655 | |
| 946 | +#: pch.c:650 | |
| 945 | 947 | #, c-format |
| 946 | 948 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 947 | 949 | msgstr "%s: no se usa porque `%.*s' está definido como `%s' no como `%.*s'" |
| 948 | 950 | |
| 949 | −#: pch.c:696 | |
| 951 | +#: pch.c:691 | |
| 950 | 952 | #, c-format |
| 951 | 953 | msgid "%s: not used because `%s' is defined" |
| 952 | 954 | msgstr "%s: no se usa porque `%s' está definido" |
| 953 | 955 | |
| 954 | −#: pch.c:716 | |
| 956 | +#: pch.c:711 | |
| 955 | 957 | #, c-format |
| 956 | 958 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 957 | 959 | msgstr "%s: no se usa porque `__COUNTER__' es inválido" |
| 958 | 960 | |
| 959 | −#: pch.c:725 pch.c:903 | |
| 961 | +#: pch.c:720 pch.c:878 | |
| 960 | 962 | msgid "while reading precompiled header" |
| 961 | 963 | msgstr "al leer el encabezado precompilado" |
| 962 | 964 | |
| 963 | −#: traditional.c:889 | |
| 965 | +#: traditional.c:896 | |
| 964 | 966 | #, c-format |
| 965 | 967 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 966 | 968 | msgstr "se detectó recursión al expandir la macro «%s»" |
| 967 | 969 | |
| 968 | −#: traditional.c:1108 | |
| 970 | +#: traditional.c:1119 | |
| 969 | 971 | msgid "syntax error in macro parameter list" |
| 970 | 972 | msgstr "error de sintaxis en la lista de parámetros de macro" |
| 971 | 973 | |
| 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 | + | |
| 972 | 989 | #~ msgid "Character %x might not be NFKC" |
| 973 | 990 | #~ msgstr "El carácter %x puede no ser NFKC" |
| 974 | 991 | |
Binary file not shown.
| @@ -1,15 +1,15 @@ | ||
| 1 | 1 | # 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. | |
| 3 | 3 | # This file is distributed under the same license as the gcc package. |
| 4 | 4 | # 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. | |
| 6 | 6 | # |
| 7 | 7 | msgid "" |
| 8 | 8 | msgstr "" |
| 9 | −"Project-Id-Version: cpplib 8.1-b20180128\n" | |
| 9 | +"Project-Id-Version: cpplib 9.1-b20190203\n" | |
| 10 | 10 | "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" | |
| 13 | 13 | "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" |
| 14 | 14 | "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" |
| 15 | 15 | "Language: fi\n" |
| @@ -18,7 +18,7 @@ msgstr "" · 2 unmodified lines | ||
| 18 | 18 | "Content-Transfer-Encoding: 8bit\n" |
| 19 | 19 | "X-Bugs: Report translation errors to the Language-Team address.\n" |
| 20 | 20 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" |
| 21 | −"X-Generator: Poedit 2.0.6\n" | |
| 21 | +"X-Generator: Poedit 2.2.1\n" | |
| 22 | 22 | |
| 23 | 23 | #: charset.c:674 |
| 24 | 24 | #, c-format |
| @@ -90,7 +90,7 @@ msgstr "universaali merkki %.*s ei ole kelvollinen tunniste" · 65 unmodified lines | ||
| 90 | 90 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 91 | 91 | msgstr "universaali merkki %.*s ei ole kelvollinen tunnisteen alussa" |
| 92 | 92 | |
| 93 | −#: charset.c:1181 charset.c:2000 | |
| 93 | +#: charset.c:1181 charset.c:2002 | |
| 94 | 94 | msgid "converting UCN to source character set" |
| 95 | 95 | msgstr "muunnetaan UCN lähdemerkistöön" |
| 96 | 96 | |
| @@ -141,295 +141,295 @@ msgstr "muunnetaan ohjaussarja suoritusmerkistöön" · 44 unmodified lines | ||
| 141 | 141 | msgid "missing open quote" |
| 142 | 142 | msgstr "avautuva sulje puuttuu" |
| 143 | 143 | |
| 144 | −#: charset.c:1827 charset.c:1891 | |
| 144 | +#: charset.c:1829 charset.c:1893 | |
| 145 | 145 | msgid "character constant too long for its type" |
| 146 | 146 | msgstr "merkkivakio on liian pitkä tyypilleen" |
| 147 | 147 | |
| 148 | −#: charset.c:1830 | |
| 148 | +#: charset.c:1832 | |
| 149 | 149 | msgid "multi-character character constant" |
| 150 | 150 | msgstr "monimerkkinen merkkivakio" |
| 151 | 151 | |
| 152 | −#: charset.c:1931 | |
| 152 | +#: charset.c:1933 | |
| 153 | 153 | msgid "empty character constant" |
| 154 | 154 | msgstr "tyhjä merkkivakio" |
| 155 | 155 | |
| 156 | −#: charset.c:2047 | |
| 156 | +#: charset.c:2049 | |
| 157 | 157 | #, c-format |
| 158 | 158 | msgid "failure to convert %s to %s" |
| 159 | 159 | msgstr "muunnos %s -> %s epäonnistui" |
| 160 | 160 | |
| 161 | −#: directives.c:235 directives.c:278 | |
| 161 | +#: directives.c:229 directives.c:272 | |
| 162 | 162 | #, c-format |
| 163 | 163 | msgid "extra tokens at end of #%s directive" |
| 164 | 164 | msgstr "ylimääräisiä merkkejä #%s-direktiivin lopussa" |
| 165 | 165 | |
| 166 | −#: directives.c:385 | |
| 166 | +#: directives.c:379 | |
| 167 | 167 | #, c-format |
| 168 | 168 | msgid "#%s is a GCC extension" |
| 169 | 169 | msgstr "#%s on GCC-laajennos" |
| 170 | 170 | |
| 171 | −#: directives.c:390 | |
| 171 | +#: directives.c:384 | |
| 172 | 172 | #, c-format |
| 173 | 173 | msgid "#%s is a deprecated GCC extension" |
| 174 | 174 | msgstr "#%s on vanhentunut GCC-laajennos" |
| 175 | 175 | |
| 176 | −#: directives.c:403 | |
| 176 | +#: directives.c:397 | |
| 177 | 177 | msgid "suggest not using #elif in traditional C" |
| 178 | 178 | msgstr "ehdotetaan #elif:in käytön välttämistä perinteisessä C:ssä" |
| 179 | 179 | |
| 180 | −#: directives.c:406 | |
| 180 | +#: directives.c:400 | |
| 181 | 181 | #, c-format |
| 182 | 182 | msgid "traditional C ignores #%s with the # indented" |
| 183 | 183 | msgstr "#%s ohitetaan perinteisessä C:ssä kun # on sisennetty" |
| 184 | 184 | |
| 185 | −#: directives.c:410 | |
| 185 | +#: directives.c:404 | |
| 186 | 186 | #, c-format |
| 187 | 187 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 188 | 188 | msgstr "ehdotetaan #%s:n piilottamista perinteiseltä C:ltä sisentämällä #" |
| 189 | 189 | |
| 190 | −#: directives.c:436 | |
| 190 | +#: directives.c:430 | |
| 191 | 191 | msgid "embedding a directive within macro arguments is not portable" |
| 192 | 192 | msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävää" |
| 193 | 193 | |
| 194 | −#: directives.c:456 | |
| 194 | +#: directives.c:450 | |
| 195 | 195 | msgid "style of line directive is a GCC extension" |
| 196 | 196 | msgstr "rividirektiivin tyyli on GCC-laajennos" |
| 197 | 197 | |
| 198 | −#: directives.c:537 | |
| 198 | +#: directives.c:531 | |
| 199 | 199 | #, c-format |
| 200 | 200 | msgid "invalid preprocessing directive #%s" |
| 201 | 201 | msgstr "virheellinen esikääntäjän direktiivi #%s" |
| 202 | 202 | |
| 203 | −#: directives.c:606 | |
| 203 | +#: directives.c:600 | |
| 204 | 204 | msgid "\"defined\" cannot be used as a macro name" |
| 205 | 205 | msgstr "”defined” ei ole kelvollinen makron nimi" |
| 206 | 206 | |
| 207 | −#: directives.c:611 | |
| 207 | +#: directives.c:605 | |
| 208 | 208 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 209 | 209 | msgstr "”__has_include__” ei ole kelvollinen makron nimi" |
| 210 | 210 | |
| 211 | −#: directives.c:617 | |
| 211 | +#: directives.c:611 | |
| 212 | 212 | #, c-format |
| 213 | 213 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 214 | 214 | msgstr "”%s” ei ole kelvollinen makron nimi, sillä se on C++:n operaattori" |
| 215 | 215 | |
| 216 | −#: directives.c:620 | |
| 216 | +#: directives.c:614 | |
| 217 | 217 | #, c-format |
| 218 | 218 | msgid "no macro name given in #%s directive" |
| 219 | 219 | msgstr "makron nimeä ei ole annettu #%s-direktiivissä" |
| 220 | 220 | |
| 221 | −#: directives.c:623 | |
| 221 | +#: directives.c:617 | |
| 222 | 222 | msgid "macro names must be identifiers" |
| 223 | 223 | msgstr "makrojen nimien on oltava tunnisteita" |
| 224 | 224 | |
| 225 | −#: directives.c:672 directives.c:677 | |
| 225 | +#: directives.c:666 directives.c:671 | |
| 226 | 226 | #, c-format |
| 227 | 227 | msgid "undefining \"%s\"" |
| 228 | 228 | msgstr "kumotaan määrittely ”%s”" |
| 229 | 229 | |
| 230 | −#: directives.c:732 | |
| 230 | +#: directives.c:727 | |
| 231 | 231 | msgid "missing terminating > character" |
| 232 | 232 | msgstr "päättävä >-merkki puuttuu" |
| 233 | 233 | |
| 234 | −#: directives.c:791 | |
| 234 | +#: directives.c:786 | |
| 235 | 235 | #, c-format |
| 236 | 236 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 237 | 237 | msgstr "#%s odottaa argumenttia \"TIEDOSTONIMI\" tai <TIEDOSTONIMI>" |
| 238 | 238 | |
| 239 | −#: directives.c:837 | |
| 239 | +#: directives.c:828 | |
| 240 | 240 | #, c-format |
| 241 | 241 | msgid "empty filename in #%s" |
| 242 | 242 | msgstr "tyhjä tiedostonimi direktiivissä #%s" |
| 243 | 243 | |
| 244 | −#: directives.c:847 | |
| 244 | +#: directives.c:835 | |
| 245 | 245 | msgid "#include nested too deeply" |
| 246 | 246 | msgstr "liikaa sisäkkäisiä #include:ja" |
| 247 | 247 | |
| 248 | −#: directives.c:888 | |
| 248 | +#: directives.c:877 | |
| 249 | 249 | msgid "#include_next in primary source file" |
| 250 | 250 | msgstr "#include_next ensisijaisessa lähdetiedostossa" |
| 251 | 251 | |
| 252 | −#: directives.c:914 | |
| 252 | +#: directives.c:903 | |
| 253 | 253 | #, c-format |
| 254 | 254 | msgid "invalid flag \"%s\" in line directive" |
| 255 | 255 | msgstr "virheellinen lippu ”%s” rividirektiivissä" |
| 256 | 256 | |
| 257 | −#: directives.c:974 | |
| 257 | +#: directives.c:963 | |
| 258 | 258 | msgid "unexpected end of file after #line" |
| 259 | 259 | msgstr "odottamaton tiedoston loppu #line-direktiivin jälkeen" |
| 260 | 260 | |
| 261 | −#: directives.c:977 | |
| 261 | +#: directives.c:966 | |
| 262 | 262 | #, c-format |
| 263 | 263 | msgid "\"%s\" after #line is not a positive integer" |
| 264 | 264 | msgstr "#line:n jälkeinen ”%s” ei ole positiivinen kokonaisluku" |
| 265 | 265 | |
| 266 | −#: directives.c:983 directives.c:985 | |
| 266 | +#: directives.c:972 directives.c:974 | |
| 267 | 267 | msgid "line number out of range" |
| 268 | 268 | msgstr "rivinumero sallitun välin ulkopuolella" |
| 269 | 269 | |
| 270 | −#: directives.c:998 directives.c:1079 | |
| 270 | +#: directives.c:987 directives.c:1068 | |
| 271 | 271 | #, c-format |
| 272 | 272 | msgid "\"%s\" is not a valid filename" |
| 273 | 273 | msgstr "”%s” ei ole kelvollinen tiedostonimi" |
| 274 | 274 | |
| 275 | −#: directives.c:1039 | |
| 275 | +#: directives.c:1028 | |
| 276 | 276 | #, c-format |
| 277 | 277 | msgid "\"%s\" after # is not a positive integer" |
| 278 | 278 | msgstr "#:n jälkeinen ”%s” ei ole positiivinen kokonaisluku" |
| 279 | 279 | |
| 280 | −#: directives.c:1098 | |
| 280 | +#: directives.c:1087 | |
| 281 | 281 | #, c-format |
| 282 | 282 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 283 | 283 | msgstr "tiedoston ”%s” rivinmerkitsin jätetään huomiotta virheellisen sisäkkäisyyden vuoksi" |
| 284 | 284 | |
| 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 | |
| 286 | 286 | #, c-format |
| 287 | 287 | msgid "%s" |
| 288 | 288 | msgstr "%s" |
| 289 | 289 | |
| 290 | −#: directives.c:1185 | |
| 290 | +#: directives.c:1175 | |
| 291 | 291 | #, c-format |
| 292 | 292 | msgid "invalid #%s directive" |
| 293 | 293 | msgstr "virheellinen #%s-direktiivi" |
| 294 | 294 | |
| 295 | −#: directives.c:1248 | |
| 295 | +#: directives.c:1238 | |
| 296 | 296 | #, c-format |
| 297 | 297 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 298 | 298 | msgstr "rekisteröidään pragmat nimiavaruudessa ”%s” epäsopivalla nimenlavennuksella" |
| 299 | 299 | |
| 300 | −#: directives.c:1257 | |
| 300 | +#: directives.c:1247 | |
| 301 | 301 | #, c-format |
| 302 | 302 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 303 | 303 | msgstr "rekisteröidään pragma ”%s” nimenlavennuksella ja ilman nimiavaruutta" |
| 304 | 304 | |
| 305 | −#: directives.c:1275 | |
| 305 | +#: directives.c:1265 | |
| 306 | 306 | #, c-format |
| 307 | 307 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 308 | 308 | msgstr "rekisteröidään ”%s” sekä pragmana että pragma-nimiavaruutena" |
| 309 | 309 | |
| 310 | −#: directives.c:1278 | |
| 310 | +#: directives.c:1268 | |
| 311 | 311 | #, c-format |
| 312 | 312 | msgid "#pragma %s %s is already registered" |
| 313 | 313 | msgstr "#pragma %s %s on jo rekisteröity" |
| 314 | 314 | |
| 315 | −#: directives.c:1281 | |
| 315 | +#: directives.c:1271 | |
| 316 | 316 | #, c-format |
| 317 | 317 | msgid "#pragma %s is already registered" |
| 318 | 318 | msgstr "#pragma %s on jo rekisteröity" |
| 319 | 319 | |
| 320 | −#: directives.c:1311 | |
| 320 | +#: directives.c:1301 | |
| 321 | 321 | msgid "registering pragma with NULL handler" |
| 322 | 322 | msgstr "rekisteröidään pragma NULL-käsittelijällä" |
| 323 | 323 | |
| 324 | −#: directives.c:1528 | |
| 324 | +#: directives.c:1518 | |
| 325 | 325 | msgid "#pragma once in main file" |
| 326 | 326 | msgstr "#pragma once päätiedostossa" |
| 327 | 327 | |
| 328 | −#: directives.c:1551 | |
| 328 | +#: directives.c:1541 | |
| 329 | 329 | msgid "invalid #pragma push_macro directive" |
| 330 | 330 | msgstr "virheellinen #pragma push_macro -direktiivi" |
| 331 | 331 | |
| 332 | −#: directives.c:1606 | |
| 332 | +#: directives.c:1596 | |
| 333 | 333 | msgid "invalid #pragma pop_macro directive" |
| 334 | 334 | msgstr "virheellinen #pragma pop_macro -direktiivi" |
| 335 | 335 | |
| 336 | 336 | # poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä |
| 337 | −#: directives.c:1661 | |
| 337 | +#: directives.c:1651 | |
| 338 | 338 | msgid "invalid #pragma GCC poison directive" |
| 339 | 339 | msgstr "virheellinen #pragma GCC poison -direktiivi" |
| 340 | 340 | |
| 341 | −#: directives.c:1670 | |
| 341 | +#: directives.c:1660 | |
| 342 | 342 | #, c-format |
| 343 | 343 | msgid "poisoning existing macro \"%s\"" |
| 344 | 344 | msgstr "myrkytetään olemassa oleva makro ”%s”" |
| 345 | 345 | |
| 346 | −#: directives.c:1689 | |
| 346 | +#: directives.c:1679 | |
| 347 | 347 | msgid "#pragma system_header ignored outside include file" |
| 348 | 348 | msgstr "#pragma system_header ohitetaan otsaketiedoston ulkopuolella" |
| 349 | 349 | |
| 350 | −#: directives.c:1714 | |
| 350 | +#: directives.c:1704 | |
| 351 | 351 | #, c-format |
| 352 | 352 | msgid "cannot find source file %s" |
| 353 | 353 | msgstr "lähdetiedostoa %s ei löydy" |
| 354 | 354 | |
| 355 | −#: directives.c:1718 | |
| 355 | +#: directives.c:1708 | |
| 356 | 356 | #, c-format |
| 357 | 357 | msgid "current file is older than %s" |
| 358 | 358 | msgstr "nykyinen tiedosto on vanhempi kuin %s" |
| 359 | 359 | |
| 360 | −#: directives.c:1742 | |
| 360 | +#: directives.c:1732 | |
| 361 | 361 | #, c-format |
| 362 | 362 | msgid "invalid \"#pragma GCC %s\" directive" |
| 363 | 363 | msgstr "virheellinen ”#pragma GCC %s” -direktiivi" |
| 364 | 364 | |
| 365 | −#: directives.c:1943 | |
| 365 | +#: directives.c:1933 | |
| 366 | 366 | msgid "_Pragma takes a parenthesized string literal" |
| 367 | 367 | msgstr "_Pragma ottaa sulkeilla ympäröidyn merkkijonoliteraalin" |
| 368 | 368 | |
| 369 | −#: directives.c:2064 | |
| 369 | +#: directives.c:2021 | |
| 370 | 370 | msgid "#else without #if" |
| 371 | 371 | msgstr "#else ilman #if:iä" |
| 372 | 372 | |
| 373 | −#: directives.c:2069 | |
| 373 | +#: directives.c:2026 | |
| 374 | 374 | msgid "#else after #else" |
| 375 | 375 | msgstr "#else #else:n jälkeen" |
| 376 | 376 | |
| 377 | −#: directives.c:2071 directives.c:2104 | |
| 377 | +#: directives.c:2028 directives.c:2061 | |
| 378 | 378 | msgid "the conditional began here" |
| 379 | 379 | msgstr "ehtolause alkoi tästä" |
| 380 | 380 | |
| 381 | −#: directives.c:2097 | |
| 381 | +#: directives.c:2054 | |
| 382 | 382 | msgid "#elif without #if" |
| 383 | 383 | msgstr "#elif ilman #if:iä" |
| 384 | 384 | |
| 385 | −#: directives.c:2102 | |
| 385 | +#: directives.c:2059 | |
| 386 | 386 | msgid "#elif after #else" |
| 387 | 387 | msgstr "#elif #else:n jälkeen" |
| 388 | 388 | |
| 389 | −#: directives.c:2133 | |
| 389 | +#: directives.c:2090 | |
| 390 | 390 | msgid "#endif without #if" |
| 391 | 391 | msgstr "#endif ilman #if:iä" |
| 392 | 392 | |
| 393 | −#: directives.c:2213 | |
| 393 | +#: directives.c:2166 | |
| 394 | 394 | msgid "missing '(' after predicate" |
| 395 | 395 | msgstr "’(’ puuttuu predikaatin jäljestä" |
| 396 | 396 | |
| 397 | −#: directives.c:2228 | |
| 397 | +#: directives.c:2184 | |
| 398 | 398 | msgid "missing ')' to complete answer" |
| 399 | 399 | msgstr "’)’ puuttuu vastauksen täydentämisestä" |
| 400 | 400 | |
| 401 | −#: directives.c:2248 | |
| 401 | +#: directives.c:2196 | |
| 402 | 402 | msgid "predicate's answer is empty" |
| 403 | 403 | msgstr "predikaatin vastaus on tyhjä" |
| 404 | 404 | |
| 405 | −#: directives.c:2275 | |
| 405 | +#: directives.c:2226 | |
| 406 | 406 | msgid "assertion without predicate" |
| 407 | 407 | msgstr "väite ilman predikaattia" |
| 408 | 408 | |
| 409 | −#: directives.c:2278 | |
| 409 | +#: directives.c:2229 | |
| 410 | 410 | msgid "predicate must be an identifier" |
| 411 | 411 | msgstr "predikaatin on oltava tunniste" |
| 412 | 412 | |
| 413 | −#: directives.c:2364 | |
| 413 | +#: directives.c:2311 | |
| 414 | 414 | #, c-format |
| 415 | 415 | msgid "\"%s\" re-asserted" |
| 416 | 416 | msgstr "”%s” väitetty uudelleen" |
| 417 | 417 | |
| 418 | −#: directives.c:2656 | |
| 418 | +#: directives.c:2587 | |
| 419 | 419 | #, c-format |
| 420 | 420 | msgid "unterminated #%s" |
| 421 | 421 | msgstr "päättämätön #%s" |
| 422 | 422 | |
| 423 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 423 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 424 | 424 | msgid "unterminated comment" |
| 425 | 425 | msgstr "päättämätön kommentti" |
| 426 | 426 | |
| 427 | −#: errors.c:284 | |
| 427 | +#: errors.c:291 | |
| 428 | 428 | #, c-format |
| 429 | 429 | msgid "%s: %s" |
| 430 | 430 | msgstr "%s: %s" |
| 431 | 431 | |
| 432 | −#: errors.c:296 | |
| 432 | +#: errors.c:304 | |
| 433 | 433 | msgid "stdout" |
| 434 | 434 | msgstr "vakiotuloste" |
| 435 | 435 | |
| @@ -522,85 +522,85 @@ msgstr "(”%s” on vaihtoehtoinen symboli ”%s”:lle C++:ssa)" · 86 unmodified lines | ||
| 522 | 522 | msgid "this use of \"defined\" may not be portable" |
| 523 | 523 | msgstr "tämä ”defined”-sanan käyttö ei ehkä ole siirrettävää" |
| 524 | 524 | |
| 525 | −#: expr.c:1125 | |
| 525 | +#: expr.c:1109 | |
| 526 | 526 | msgid "user-defined literal in preprocessor expression" |
| 527 | 527 | msgstr "käyttäjän määrittelemä literaali esikääntäjän lausekkeessa" |
| 528 | 528 | |
| 529 | −#: expr.c:1130 | |
| 529 | +#: expr.c:1114 | |
| 530 | 530 | msgid "floating constant in preprocessor expression" |
| 531 | 531 | msgstr "liukulukuvakio esikääntäjän lausekkeessa" |
| 532 | 532 | |
| 533 | −#: expr.c:1136 | |
| 533 | +#: expr.c:1120 | |
| 534 | 534 | msgid "imaginary number in preprocessor expression" |
| 535 | 535 | msgstr "imaginääriluku esikääntäjän lausekkeessa" |
| 536 | 536 | |
| 537 | −#: expr.c:1189 | |
| 537 | +#: expr.c:1173 | |
| 538 | 538 | #, c-format |
| 539 | 539 | msgid "\"%s\" is not defined, evaluates to 0" |
| 540 | 540 | msgstr "”%s” on määrittelemättä, evaluoituu 0:ksi" |
| 541 | 541 | |
| 542 | −#: expr.c:1202 | |
| 542 | +#: expr.c:1186 | |
| 543 | 543 | msgid "assertions are a GCC extension" |
| 544 | 544 | msgstr "väitteet ovat GCC-laajennos" |
| 545 | 545 | |
| 546 | −#: expr.c:1205 | |
| 546 | +#: expr.c:1189 | |
| 547 | 547 | msgid "assertions are a deprecated extension" |
| 548 | 548 | msgstr "väitteet ovat vanhentunut laajennos" |
| 549 | 549 | |
| 550 | 550 | # %s on #if tai #elif |
| 551 | −#: expr.c:1451 | |
| 551 | +#: expr.c:1435 | |
| 552 | 552 | #, c-format |
| 553 | 553 | msgid "unbalanced stack in %s" |
| 554 | 554 | msgstr "tasapainoton pino %s:ssä" |
| 555 | 555 | |
| 556 | −#: expr.c:1471 | |
| 556 | +#: expr.c:1455 | |
| 557 | 557 | #, c-format |
| 558 | 558 | msgid "impossible operator '%u'" |
| 559 | 559 | msgstr "mahdoton operaattori ’%u’" |
| 560 | 560 | |
| 561 | −#: expr.c:1572 | |
| 561 | +#: expr.c:1556 | |
| 562 | 562 | msgid "missing ')' in expression" |
| 563 | 563 | msgstr "’)’ puuttuu lausekkeesta" |
| 564 | 564 | |
| 565 | −#: expr.c:1601 | |
| 565 | +#: expr.c:1585 | |
| 566 | 566 | msgid "'?' without following ':'" |
| 567 | 567 | msgstr "’?’ ilman sitä seuraavaa ’:’-merkkiä" |
| 568 | 568 | |
| 569 | −#: expr.c:1611 | |
| 569 | +#: expr.c:1595 | |
| 570 | 570 | msgid "integer overflow in preprocessor expression" |
| 571 | 571 | msgstr "kokonaislukuylivuoto esikääntäjän lausekkeessa" |
| 572 | 572 | |
| 573 | −#: expr.c:1616 | |
| 573 | +#: expr.c:1600 | |
| 574 | 574 | msgid "missing '(' in expression" |
| 575 | 575 | msgstr "’(’ puuttuu lausekkeesta" |
| 576 | 576 | |
| 577 | −#: expr.c:1648 | |
| 577 | +#: expr.c:1632 | |
| 578 | 578 | #, c-format |
| 579 | 579 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 580 | 580 | msgstr "”%s”:n vasen operandi vaihtaa ylennettäessä etumerkkiään" |
| 581 | 581 | |
| 582 | −#: expr.c:1653 | |
| 582 | +#: expr.c:1637 | |
| 583 | 583 | #, c-format |
| 584 | 584 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 585 | 585 | msgstr "”%s”:n oikea operandi vaihtaa ylennettäessä etumerkkiään" |
| 586 | 586 | |
| 587 | −#: expr.c:1912 | |
| 587 | +#: expr.c:1896 | |
| 588 | 588 | msgid "traditional C rejects the unary plus operator" |
| 589 | 589 | msgstr "perinteinen C ei salli unaarista plus-operaattoria" |
| 590 | 590 | |
| 591 | −#: expr.c:2010 | |
| 591 | +#: expr.c:1994 | |
| 592 | 592 | msgid "comma operator in operand of #if" |
| 593 | 593 | msgstr "pilkkuoperaattori #if:in operandissa" |
| 594 | 594 | |
| 595 | −#: expr.c:2146 | |
| 595 | +#: expr.c:2130 | |
| 596 | 596 | msgid "division by zero in #if" |
| 597 | 597 | msgstr "jako nollalla #if-ehdossa" |
| 598 | 598 | |
| 599 | −#: expr.c:2243 | |
| 599 | +#: expr.c:2227 | |
| 600 | 600 | msgid "operator \"__has_include__\" requires a header string" |
| 601 | 601 | msgstr "operaattori ”__has_include__” vaatii otsakemerkkijonon" |
| 602 | 602 | |
| 603 | −#: expr.c:2259 | |
| 603 | +#: expr.c:2243 | |
| 604 | 604 | msgid "missing ')' after \"__has_include__\"" |
| 605 | 605 | msgstr "’)’ puuttuu ”__has_include__”-sanan jäljestä" |
| 606 | 606 | |
| @@ -617,40 +617,40 @@ msgstr "käytä valitsinta -Winvalid-pch lisätietojen saamiseksi" · 10 unmodified lines | ||
| 617 | 617 | msgid "no include path in which to search for %s" |
| 618 | 618 | msgstr "ei include-polkua, josta etsiä tiedostoa %s" |
| 619 | 619 | |
| 620 | −#: files.c:1441 | |
| 620 | +#: files.c:1455 | |
| 621 | 621 | msgid "Multiple include guards may be useful for:\n" |
| 622 | 622 | msgstr "Monen includen estimet voivat olla hyödyllisiä tiedostoille:\n" |
| 623 | 623 | |
| 624 | −#: init.c:565 | |
| 624 | +#: init.c:569 | |
| 625 | 625 | msgid "cppchar_t must be an unsigned type" |
| 626 | 626 | msgstr "cppchar_t:n on oltava etumerkitön tyyppi" |
| 627 | 627 | |
| 628 | −#: init.c:569 | |
| 628 | +#: init.c:573 | |
| 629 | 629 | #, c-format |
| 630 | 630 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 631 | 631 | msgstr "esikääntäjäaritmetiikan enimmäistarkkuus on %lu bittiä; kohde vaatii %lu bittiä" |
| 632 | 632 | |
| 633 | −#: init.c:576 | |
| 633 | +#: init.c:580 | |
| 634 | 634 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 635 | 635 | msgstr "CPP-aritmetiikan on oltava vähintään yhtä tarkka kuin kohteen int-tyypin" |
| 636 | 636 | |
| 637 | −#: init.c:579 | |
| 637 | +#: init.c:583 | |
| 638 | 638 | msgid "target char is less than 8 bits wide" |
| 639 | 639 | msgstr "kohteen char-tyyppi on alle 8 bittiä leveä" |
| 640 | 640 | |
| 641 | −#: init.c:583 | |
| 641 | +#: init.c:587 | |
| 642 | 642 | msgid "target wchar_t is narrower than target char" |
| 643 | 643 | msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi" |
| 644 | 644 | |
| 645 | −#: init.c:587 | |
| 645 | +#: init.c:591 | |
| 646 | 646 | msgid "target int is narrower than target char" |
| 647 | 647 | msgstr "kohteen int-tyyppi on kapeampi kuin kohteen char-tyyppi" |
| 648 | 648 | |
| 649 | −#: init.c:592 | |
| 649 | +#: init.c:596 | |
| 650 | 650 | msgid "CPP half-integer narrower than CPP character" |
| 651 | 651 | msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki" |
| 652 | 652 | |
| 653 | −#: init.c:596 | |
| 653 | +#: init.c:600 | |
| 654 | 654 | #, c-format |
| 655 | 655 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 656 | 656 | 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 | ||
| 729 | 729 | msgid "identifier \"%s\" is a special operator name in C++" |
| 730 | 730 | msgstr "tunniste ”%s” on operaattorin nimi C++:ssa" |
| 731 | 731 | |
| 732 | −#: lex.c:1811 | |
| 732 | +#: lex.c:1826 | |
| 733 | 733 | msgid "raw string delimiter longer than 16 characters" |
| 734 | 734 | msgstr "raa’an merkkijonon erotin pitempi kuin 16 merkkiä" |
| 735 | 735 | |
| 736 | −#: lex.c:1815 | |
| 736 | +#: lex.c:1830 | |
| 737 | 737 | msgid "invalid new-line in raw string delimiter" |
| 738 | 738 | msgstr "virheellinen rivinvaihto raa’an merkkijonon erottimessa" |
| 739 | 739 | |
| 740 | −#: lex.c:1819 | |
| 740 | +#: lex.c:1834 | |
| 741 | 741 | #, c-format |
| 742 | 742 | msgid "invalid character '%c' in raw string delimiter" |
| 743 | 743 | msgstr "virheellinen merkki ’%c’ raa’an merkkijonon erottimessa" |
| 744 | 744 | |
| 745 | −#: lex.c:1868 lex.c:1890 | |
| 745 | +#: lex.c:1883 lex.c:1905 | |
| 746 | 746 | msgid "unterminated raw string" |
| 747 | 747 | msgstr "päättämätön raaka merkkijono" |
| 748 | 748 | |
| 749 | −#: lex.c:1912 lex.c:2043 | |
| 749 | +#: lex.c:1925 lex.c:2054 | |
| 750 | 750 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 751 | 751 | msgstr "literaalissa virheellinen jälkiliite; C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin" |
| 752 | 752 | |
| 753 | −#: lex.c:2024 | |
| 753 | +#: lex.c:2037 | |
| 754 | 754 | msgid "null character(s) preserved in literal" |
| 755 | 755 | msgstr "null-merkit säilytetään literaalissa" |
| 756 | 756 | |
| 757 | −#: lex.c:2027 | |
| 757 | +#: lex.c:2040 | |
| 758 | 758 | #, c-format |
| 759 | 759 | msgid "missing terminating %c character" |
| 760 | 760 | msgstr "päättävä merkki %c puuttuu" |
| 761 | 761 | |
| 762 | −#: lex.c:2061 | |
| 762 | +#: lex.c:2072 | |
| 763 | 763 | msgid "C++11 requires a space between string literal and macro" |
| 764 | 764 | msgstr "C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin" |
| 765 | 765 | |
| 766 | −#: lex.c:2865 lex.c:2899 | |
| 766 | +#: lex.c:2876 lex.c:2910 | |
| 767 | 767 | msgid "C++ style comments are not allowed in ISO C90" |
| 768 | 768 | msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90:ssä" |
| 769 | 769 | |
| 770 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 770 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 771 | 771 | msgid "(this will be reported only once per input file)" |
| 772 | 772 | msgstr "(tästä ilmoitetaan vain kerran syötetiedostoa kohden)" |
| 773 | 773 | |
| 774 | −#: lex.c:2876 | |
| 774 | +#: lex.c:2887 | |
| 775 | 775 | msgid "C++ style comments are incompatible with C90" |
| 776 | 776 | msgstr "C++-tyyliset kommentit ovat epäyhteensopivia C90:n kanssa" |
| 777 | 777 | |
| 778 | −#: lex.c:2907 | |
| 778 | +#: lex.c:2919 | |
| 779 | 779 | msgid "multi-line comment" |
| 780 | 780 | msgstr "monirivinen kommentti" |
| 781 | 781 | |
| 782 | −#: lex.c:3287 | |
| 782 | +#: lex.c:3299 | |
| 783 | 783 | #, c-format |
| 784 | 784 | msgid "unspellable token %s" |
| 785 | 785 | msgstr "kirjoitusasuton symboli %s" |
| 786 | 786 | |
| 787 | −#: macro.c:93 | |
| 787 | +#: macro.c:94 | |
| 788 | 788 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 789 | 789 | msgstr "”##” ei voi esiintyä __VA_OPT__-makron kummassakaan päässä" |
| 790 | 790 | |
| 791 | −#: macro.c:352 | |
| 791 | +#: macro.c:354 | |
| 792 | 792 | #, c-format |
| 793 | 793 | msgid "macro \"%s\" is not used" |
| 794 | 794 | msgstr "makroa ”%s” ei käytetä" |
| 795 | 795 | |
| 796 | −#: macro.c:391 macro.c:639 | |
| 796 | +#: macro.c:393 macro.c:641 | |
| 797 | 797 | #, c-format |
| 798 | 798 | msgid "invalid built-in macro \"%s\"" |
| 799 | 799 | msgstr "virheellinen sisäinen makro ”%s”" |
| 800 | 800 | |
| 801 | −#: macro.c:398 macro.c:500 | |
| 801 | +#: macro.c:400 macro.c:502 | |
| 802 | 802 | #, c-format |
| 803 | 803 | msgid "macro \"%s\" might prevent reproducible builds" |
| 804 | 804 | msgstr "makro ”%s” saattaa estää toistettavat käännökset" |
| 805 | 805 | |
| 806 | −#: macro.c:429 | |
| 806 | +#: macro.c:431 | |
| 807 | 807 | msgid "could not determine file timestamp" |
| 808 | 808 | msgstr "ei voitu selvittää tiedoston aikaleimaa" |
| 809 | 809 | |
| 810 | −#: macro.c:546 | |
| 810 | +#: macro.c:548 | |
| 811 | 811 | msgid "could not determine date and time" |
| 812 | 812 | msgstr "ei voitu selvittää päivämäärää ja aikaa" |
| 813 | 813 | |
| 814 | −#: macro.c:562 | |
| 814 | +#: macro.c:564 | |
| 815 | 815 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 816 | 816 | msgstr "__COUNTER__ lavennettu direktiivin sisällä valitsimella -fdirectives-only" |
| 817 | 817 | |
| 818 | −#: macro.c:758 | |
| 818 | +#: macro.c:760 | |
| 819 | 819 | msgid "invalid string literal, ignoring final '\\'" |
| 820 | 820 | msgstr "virheellinen merkijonoliteraali, ohitetaan viimeinen ’\\’" |
| 821 | 821 | |
| 822 | −#: macro.c:820 | |
| 822 | +#: macro.c:822 | |
| 823 | 823 | #, c-format |
| 824 | 824 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 825 | 825 | msgstr "liittämällä ”%s” ja ”%s” ei saada kelvollista esikääntäjän symbolia" |
| 826 | 826 | |
| 827 | 827 | # Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella. |
| 828 | −#: macro.c:946 | |
| 828 | +#: macro.c:948 | |
| 829 | 829 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 830 | 830 | msgstr "ISO C++11 vaatii vähintään yhden argumentin variadisen makron ”...”:lle" |
| 831 | 831 | |
| 832 | 832 | # Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella. |
| 833 | −#: macro.c:950 | |
| 833 | +#: macro.c:952 | |
| 834 | 834 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 835 | 835 | msgstr "ISO C99 vaatii vähintään yhden argumentin variadisen makron ”...”:lle" |
| 836 | 836 | |
| 837 | −#: macro.c:957 | |
| 837 | +#: macro.c:959 | |
| 838 | 838 | #, c-format |
| 839 | 839 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 840 | 840 | msgstr "makro ”%s” vaatii %u argumenttia, mutta vain %u on annettu" |
| 841 | 841 | |
| 842 | −#: macro.c:962 | |
| 842 | +#: macro.c:964 | |
| 843 | 843 | #, c-format |
| 844 | 844 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 845 | 845 | msgstr "makrolle ”%s” annettu %u argumenttia, mutta se ottaa vain %u" |
| 846 | 846 | |
| 847 | −#: macro.c:1156 traditional.c:819 | |
| 847 | +#: macro.c:1162 traditional.c:827 | |
| 848 | 848 | #, c-format |
| 849 | 849 | msgid "unterminated argument list invoking macro \"%s\"" |
| 850 | 850 | msgstr "päättämätön argumenttiluettelo ”%s”-makron kutsussa" |
| 851 | 851 | |
| 852 | −#: macro.c:1307 | |
| 852 | +#: macro.c:1304 | |
| 853 | 853 | #, c-format |
| 854 | 854 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 855 | 855 | msgstr "funktion kaltaista makroa ”%s” on käytettävä argumenttien kanssa perinteisessä C:ssä" |
| 856 | 856 | |
| 857 | −#: macro.c:2003 | |
| 857 | +#: macro.c:2083 | |
| 858 | 858 | #, c-format |
| 859 | 859 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 860 | 860 | msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C++98:ssa" |
| 861 | 861 | |
| 862 | −#: macro.c:2011 macro.c:2020 | |
| 862 | +#: macro.c:2091 macro.c:2100 | |
| 863 | 863 | #, c-format |
| 864 | 864 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 865 | 865 | msgstr "%s-makron argumentin %d kutsu: tyhjät makroargumentit ovat määrittelemättömiä ISO C90:ssä" |
| 866 | 866 | |
| 867 | −#: macro.c:2984 | |
| 867 | +#: macro.c:3059 | |
| 868 | 868 | #, c-format |
| 869 | 869 | msgid "duplicate macro parameter \"%s\"" |
| 870 | 870 | msgstr "kahdenkertainen makroparametri ”%s”" |
| 871 | 871 | |
| 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 | |
| 873 | 878 | #, 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”" | |
| 876 | 881 | |
| 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" | |
| 880 | 885 | |
| 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" | |
| 884 | 889 | |
| 885 | −#: macro.c:3081 | |
| 890 | +#: macro.c:3145 | |
| 891 | +msgid "expected ')' after \"...\"" | |
| 892 | +msgstr "odotettiin ”...”:n jälkeen tulevan ”)”" | |
| 893 | + | |
| 894 | +#: macro.c:3202 | |
| 886 | 895 | msgid "anonymous variadic macros were introduced in C++11" |
| 887 | 896 | msgstr "anonyymit variadiset makrot esiteltiin C++11:ssä" |
| 888 | 897 | |
| 889 | −#: macro.c:3085 macro.c:3090 | |
| 898 | +#: macro.c:3203 macro.c:3207 | |
| 890 | 899 | msgid "anonymous variadic macros were introduced in C99" |
| 891 | 900 | msgstr "anonyymit variadiset makrot esiteltiin C99:ssä" |
| 892 | 901 | |
| 893 | −#: macro.c:3097 | |
| 902 | +#: macro.c:3213 | |
| 894 | 903 | msgid "ISO C++ does not permit named variadic macros" |
| 895 | 904 | msgstr "ISO C++ ei salli nimettyjä variadisia makroja" |
| 896 | 905 | |
| 897 | −#: macro.c:3100 | |
| 906 | +#: macro.c:3214 | |
| 898 | 907 | msgid "ISO C does not permit named variadic macros" |
| 899 | 908 | msgstr "ISO C ei salli nimettyjä variadisia makroja" |
| 900 | 909 | |
| 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 | |
| 906 | 911 | msgid "'##' cannot appear at either end of a macro expansion" |
| 907 | 912 | msgstr "”##” ei voi esiintyä makrolavennuksen kummassakaan päässä" |
| 908 | 913 | |
| 909 | −#: macro.c:3198 | |
| 914 | +#: macro.c:3298 | |
| 910 | 915 | msgid "ISO C++11 requires whitespace after the macro name" |
| 911 | 916 | msgstr "ISO C++11 vaatii tyhjemerkin makron nimen jälkeen" |
| 912 | 917 | |
| 913 | −#: macro.c:3201 | |
| 918 | +#: macro.c:3299 | |
| 914 | 919 | msgid "ISO C99 requires whitespace after the macro name" |
| 915 | 920 | msgstr "ISO C99 vaatii tyhjemerkin makron nimen jälkeen" |
| 916 | 921 | |
| 917 | −#: macro.c:3226 | |
| 922 | +#: macro.c:3323 | |
| 918 | 923 | msgid "missing whitespace after the macro name" |
| 919 | 924 | msgstr "tyhjemerkki puuttuu makron nimen jäljestä" |
| 920 | 925 | |
| 921 | −#: macro.c:3263 | |
| 926 | +#: macro.c:3373 | |
| 922 | 927 | msgid "'#' is not followed by a macro parameter" |
| 923 | 928 | msgstr "”#” ilman sitä seuraavaa makroparametria" |
| 924 | 929 | |
| 925 | −#: macro.c:3430 | |
| 930 | +#: macro.c:3524 | |
| 926 | 931 | #, c-format |
| 927 | 932 | msgid "\"%s\" redefined" |
| 928 | 933 | msgstr "”%s” määritelty uudelleen" |
| 929 | 934 | |
| 930 | −#: macro.c:3435 | |
| 935 | +#: macro.c:3529 | |
| 931 | 936 | msgid "this is the location of the previous definition" |
| 932 | 937 | msgstr "tämä on edellisen määrittelyn sijainti" |
| 933 | 938 | |
| 934 | −#: macro.c:3496 | |
| 939 | +#: macro.c:3633 | |
| 935 | 940 | #, c-format |
| 936 | 941 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 937 | 942 | msgstr "makron argumentti ”%s” merkkijonostettaisiin perinteisessä C:ssä" |
| 938 | 943 | |
| 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 | |
| 945 | 945 | msgid "while writing precompiled header" |
| 946 | 946 | msgstr "kirjoitettaessa esikäännettyä otsaketta" |
| 947 | 947 | |
| 948 | −#: pch.c:621 | |
| 948 | +#: pch.c:616 | |
| 949 | 949 | #, c-format |
| 950 | 950 | msgid "%s: not used because `%.*s' is poisoned" |
| 951 | 951 | msgstr "%s: ei käytetä, koska ”%.*s” on myrkytetty" |
| 952 | 952 | |
| 953 | −#: pch.c:643 | |
| 953 | +#: pch.c:638 | |
| 954 | 954 | #, c-format |
| 955 | 955 | msgid "%s: not used because `%.*s' not defined" |
| 956 | 956 | msgstr "%s: ei käytetä, koska ”%.*s” on määrittelemättä" |
| 957 | 957 | |
| 958 | −#: pch.c:655 | |
| 958 | +#: pch.c:650 | |
| 959 | 959 | #, c-format |
| 960 | 960 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 961 | 961 | msgstr "%s: ei käytetä, koska ”%.*s” on määritelty arvoon ”%s” eikä ”%.*s”" |
| 962 | 962 | |
| 963 | −#: pch.c:696 | |
| 963 | +#: pch.c:691 | |
| 964 | 964 | #, c-format |
| 965 | 965 | msgid "%s: not used because `%s' is defined" |
| 966 | 966 | msgstr "%s: ei käytetä, koska ”%s” on määritelty" |
| 967 | 967 | |
| 968 | −#: pch.c:716 | |
| 968 | +#: pch.c:711 | |
| 969 | 969 | #, c-format |
| 970 | 970 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 971 | 971 | msgstr "%s: ei käytetä, koska ”__COUNTER__” on virheellinen" |
| 972 | 972 | |
| 973 | −#: pch.c:725 pch.c:903 | |
| 973 | +#: pch.c:720 pch.c:878 | |
| 974 | 974 | msgid "while reading precompiled header" |
| 975 | 975 | msgstr "luettaessa esikäännettyä otsaketta" |
| 976 | 976 | |
| 977 | −#: traditional.c:889 | |
| 977 | +#: traditional.c:896 | |
| 978 | 978 | #, c-format |
| 979 | 979 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 980 | 980 | msgstr "havaittiin rekursio lavennettaessa makroa ”%s”" |
| 981 | 981 | |
| 982 | −#: traditional.c:1108 | |
| 982 | +#: traditional.c:1119 | |
| 983 | 983 | msgid "syntax error in macro parameter list" |
| 984 | 984 | msgstr "syntaksivirhe makron parameteriluettelossa" |
| 985 | 985 | |
| 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 | + | |
| 986 | 1001 | #~ msgid "NULL directory in find_file" |
| 987 | 1002 | #~ msgstr "NULL-hakemisto funktiossa find_file" |
| 988 | 1003 | |
Binary file not shown.
| @@ -4,7 +4,7 @@ · 3 unmodified lines | ||
| 4 | 4 | # Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996. |
| 5 | 5 | # François-Xavier Coudert <fxcoudert@gcc.gnu.org>, 2008. |
| 6 | 6 | # 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. | |
| 8 | 8 | # |
| 9 | 9 | # Vocabulaire utilisé |
| 10 | 10 | # lvalue = membre gauche |
| @@ -120,10 +120,10 @@ · 109 unmodified lines | ||
| 120 | 120 | # |
| 121 | 121 | msgid "" |
| 122 | 122 | msgstr "" |
| 123 | −"Project-Id-Version: GNU cpplib 8.1-b20180128\n" | |
| 123 | +"Project-Id-Version: GNU cpplib 9.1-b20190203\n" | |
| 124 | 124 | "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" | |
| 127 | 127 | "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n" |
| 128 | 128 | "Language-Team: French <traduc@traduc.org>\n" |
| 129 | 129 | "Language: fr\n" |
| @@ -203,7 +203,7 @@ msgstr "le caractère universel %.*s n’est pas valide dans un identificateur" · 73 unmodified lines | ||
| 203 | 203 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 204 | 204 | msgstr "le caractère universel %.*s n’est pas valide au début d’un identificateur" |
| 205 | 205 | |
| 206 | −#: charset.c:1181 charset.c:2000 | |
| 206 | +#: charset.c:1181 charset.c:2002 | |
| 207 | 207 | msgid "converting UCN to source character set" |
| 208 | 208 | msgstr "conversion d'un UCN vers le jeu de caractères source" |
| 209 | 209 | |
| @@ -254,294 +254,294 @@ msgstr "conversion d’une séquence d’échappement vers le jeu de caractères · 44 unmodified lines | ||
| 254 | 254 | msgid "missing open quote" |
| 255 | 255 | msgstr "guillemet ouvrant de chaîne de caractères manquant" |
| 256 | 256 | |
| 257 | −#: charset.c:1827 charset.c:1891 | |
| 257 | +#: charset.c:1829 charset.c:1893 | |
| 258 | 258 | msgid "character constant too long for its type" |
| 259 | 259 | msgstr "constante caractère trop longue pour son type" |
| 260 | 260 | |
| 261 | −#: charset.c:1830 | |
| 261 | +#: charset.c:1832 | |
| 262 | 262 | msgid "multi-character character constant" |
| 263 | 263 | msgstr "constante caractère multi-caractères" |
| 264 | 264 | |
| 265 | −#: charset.c:1931 | |
| 265 | +#: charset.c:1933 | |
| 266 | 266 | msgid "empty character constant" |
| 267 | 267 | msgstr "constante caractère vide" |
| 268 | 268 | |
| 269 | −#: charset.c:2047 | |
| 269 | +#: charset.c:2049 | |
| 270 | 270 | #, c-format |
| 271 | 271 | msgid "failure to convert %s to %s" |
| 272 | 272 | msgstr "échec de conversion de %s vers %s" |
| 273 | 273 | |
| 274 | −#: directives.c:235 directives.c:278 | |
| 274 | +#: directives.c:229 directives.c:272 | |
| 275 | 275 | #, c-format |
| 276 | 276 | msgid "extra tokens at end of #%s directive" |
| 277 | 277 | msgstr "éléments lexicaux superflus à la fin de la directive #%s" |
| 278 | 278 | |
| 279 | −#: directives.c:385 | |
| 279 | +#: directives.c:379 | |
| 280 | 280 | #, c-format |
| 281 | 281 | msgid "#%s is a GCC extension" |
| 282 | 282 | msgstr "#%s est une extension GCC" |
| 283 | 283 | |
| 284 | −#: directives.c:390 | |
| 284 | +#: directives.c:384 | |
| 285 | 285 | #, c-format |
| 286 | 286 | msgid "#%s is a deprecated GCC extension" |
| 287 | 287 | msgstr "#%s est une extension obsolète de GCC" |
| 288 | 288 | |
| 289 | −#: directives.c:403 | |
| 289 | +#: directives.c:397 | |
| 290 | 290 | msgid "suggest not using #elif in traditional C" |
| 291 | 291 | msgstr "il est suggéré de ne pas utiliser #elif en C traditionnel" |
| 292 | 292 | |
| 293 | −#: directives.c:406 | |
| 293 | +#: directives.c:400 | |
| 294 | 294 | #, c-format |
| 295 | 295 | msgid "traditional C ignores #%s with the # indented" |
| 296 | 296 | msgstr "le C traditionnel ignore la directive #%s si le caractère # est indenté" |
| 297 | 297 | |
| 298 | −#: directives.c:410 | |
| 298 | +#: directives.c:404 | |
| 299 | 299 | #, c-format |
| 300 | 300 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 301 | 301 | msgstr "il est suggéré de cacher #%s au C traditionnel en indentant le « # »" |
| 302 | 302 | |
| 303 | −#: directives.c:436 | |
| 303 | +#: directives.c:430 | |
| 304 | 304 | msgid "embedding a directive within macro arguments is not portable" |
| 305 | 305 | msgstr "placer une directive dans les arguments d’une macro n’est pas portable" |
| 306 | 306 | |
| 307 | −#: directives.c:456 | |
| 307 | +#: directives.c:450 | |
| 308 | 308 | msgid "style of line directive is a GCC extension" |
| 309 | 309 | msgstr "la directive de style de ligne est une extension GCC" |
| 310 | 310 | |
| 311 | −#: directives.c:537 | |
| 311 | +#: directives.c:531 | |
| 312 | 312 | #, c-format |
| 313 | 313 | msgid "invalid preprocessing directive #%s" |
| 314 | 314 | msgstr "la directive de pré-traitement #%s invalide" |
| 315 | 315 | |
| 316 | −#: directives.c:606 | |
| 316 | +#: directives.c:600 | |
| 317 | 317 | msgid "\"defined\" cannot be used as a macro name" |
| 318 | 318 | msgstr "« defined » ne peut être utilisé comme nom de macro" |
| 319 | 319 | |
| 320 | −#: directives.c:611 | |
| 320 | +#: directives.c:605 | |
| 321 | 321 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 322 | 322 | msgstr "« __has_include__ » ne peut être utilisé comme nom de macro" |
| 323 | 323 | |
| 324 | −#: directives.c:617 | |
| 324 | +#: directives.c:611 | |
| 325 | 325 | #, c-format |
| 326 | 326 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 327 | 327 | msgstr "« %s » ne peut être utilisé comme nom de macro car c’est un opérateur C++" |
| 328 | 328 | |
| 329 | −#: directives.c:620 | |
| 329 | +#: directives.c:614 | |
| 330 | 330 | #, c-format |
| 331 | 331 | msgid "no macro name given in #%s directive" |
| 332 | 332 | msgstr "aucun nom de macro donné dans la directive #%s" |
| 333 | 333 | |
| 334 | −#: directives.c:623 | |
| 334 | +#: directives.c:617 | |
| 335 | 335 | msgid "macro names must be identifiers" |
| 336 | 336 | msgstr "les noms de macro doivent être des identificateurs" |
| 337 | 337 | |
| 338 | −#: directives.c:672 directives.c:677 | |
| 338 | +#: directives.c:666 directives.c:671 | |
| 339 | 339 | #, c-format |
| 340 | 340 | msgid "undefining \"%s\"" |
| 341 | 341 | msgstr "suppression de la définition de « %s »" |
| 342 | 342 | |
| 343 | −#: directives.c:732 | |
| 343 | +#: directives.c:727 | |
| 344 | 344 | msgid "missing terminating > character" |
| 345 | 345 | msgstr "caractère > de terminaison manquant" |
| 346 | 346 | |
| 347 | −#: directives.c:791 | |
| 347 | +#: directives.c:786 | |
| 348 | 348 | #, c-format |
| 349 | 349 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 350 | 350 | msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>" |
| 351 | 351 | |
| 352 | −#: directives.c:837 | |
| 352 | +#: directives.c:828 | |
| 353 | 353 | #, c-format |
| 354 | 354 | msgid "empty filename in #%s" |
| 355 | 355 | msgstr "nom de fichier vide dans #%s" |
| 356 | 356 | |
| 357 | −#: directives.c:847 | |
| 357 | +#: directives.c:835 | |
| 358 | 358 | msgid "#include nested too deeply" |
| 359 | 359 | msgstr "#include imbriqué trop profondément" |
| 360 | 360 | |
| 361 | −#: directives.c:888 | |
| 361 | +#: directives.c:877 | |
| 362 | 362 | msgid "#include_next in primary source file" |
| 363 | 363 | msgstr "#include_next dans un fichier source primaire" |
| 364 | 364 | |
| 365 | −#: directives.c:914 | |
| 365 | +#: directives.c:903 | |
| 366 | 366 | #, c-format |
| 367 | 367 | msgid "invalid flag \"%s\" in line directive" |
| 368 | 368 | msgstr "drapeau « %s » invalide dans la ligne de directive" |
| 369 | 369 | |
| 370 | −#: directives.c:974 | |
| 370 | +#: directives.c:963 | |
| 371 | 371 | msgid "unexpected end of file after #line" |
| 372 | 372 | msgstr "fin de fichier inattendue après #line" |
| 373 | 373 | |
| 374 | −#: directives.c:977 | |
| 374 | +#: directives.c:966 | |
| 375 | 375 | #, c-format |
| 376 | 376 | msgid "\"%s\" after #line is not a positive integer" |
| 377 | 377 | msgstr "« %s » après #line n’est pas un nombre entier positif" |
| 378 | 378 | |
| 379 | −#: directives.c:983 directives.c:985 | |
| 379 | +#: directives.c:972 directives.c:974 | |
| 380 | 380 | msgid "line number out of range" |
| 381 | 381 | msgstr "numéro de ligne hors intervalle" |
| 382 | 382 | |
| 383 | −#: directives.c:998 directives.c:1079 | |
| 383 | +#: directives.c:987 directives.c:1068 | |
| 384 | 384 | #, c-format |
| 385 | 385 | msgid "\"%s\" is not a valid filename" |
| 386 | 386 | msgstr "« %s » n’est pas un nom de fichier valide" |
| 387 | 387 | |
| 388 | −#: directives.c:1039 | |
| 388 | +#: directives.c:1028 | |
| 389 | 389 | #, c-format |
| 390 | 390 | msgid "\"%s\" after # is not a positive integer" |
| 391 | 391 | msgstr "« %s » après # n’est pas un nombre entier positif" |
| 392 | 392 | |
| 393 | −#: directives.c:1098 | |
| 393 | +#: directives.c:1087 | |
| 394 | 394 | #, c-format |
| 395 | 395 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 396 | 396 | msgstr "le marqueur de ligne du fichier « %s » est ignoré à cause d’une imbrication incorrecte" |
| 397 | 397 | |
| 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 | |
| 399 | 399 | #, c-format |
| 400 | 400 | msgid "%s" |
| 401 | 401 | msgstr "%s" |
| 402 | 402 | |
| 403 | −#: directives.c:1185 | |
| 403 | +#: directives.c:1175 | |
| 404 | 404 | #, c-format |
| 405 | 405 | msgid "invalid #%s directive" |
| 406 | 406 | msgstr "directive #%s invalide" |
| 407 | 407 | |
| 408 | −#: directives.c:1248 | |
| 408 | +#: directives.c:1238 | |
| 409 | 409 | #, c-format |
| 410 | 410 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 411 | 411 | msgstr "enregistrement des pragmas dans l'espace de nom « %s » avec une expansion de nom ne correspondant pas" |
| 412 | 412 | |
| 413 | −#: directives.c:1257 | |
| 413 | +#: directives.c:1247 | |
| 414 | 414 | #, c-format |
| 415 | 415 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 416 | 416 | msgstr "enregistrement du pragma « %s » avec une expansion de nom mais pas d’espace de nom" |
| 417 | 417 | |
| 418 | −#: directives.c:1275 | |
| 418 | +#: directives.c:1265 | |
| 419 | 419 | #, c-format |
| 420 | 420 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 421 | 421 | msgstr "enregistrement de « %s » à la fois comme un pragma et un espace de nom de pragma" |
| 422 | 422 | |
| 423 | −#: directives.c:1278 | |
| 423 | +#: directives.c:1268 | |
| 424 | 424 | #, c-format |
| 425 | 425 | msgid "#pragma %s %s is already registered" |
| 426 | 426 | msgstr "le #pragma %s %s est déjà enregistré" |
| 427 | 427 | |
| 428 | −#: directives.c:1281 | |
| 428 | +#: directives.c:1271 | |
| 429 | 429 | #, c-format |
| 430 | 430 | msgid "#pragma %s is already registered" |
| 431 | 431 | msgstr "le #pragma %s est déjà enregistré" |
| 432 | 432 | |
| 433 | −#: directives.c:1311 | |
| 433 | +#: directives.c:1301 | |
| 434 | 434 | msgid "registering pragma with NULL handler" |
| 435 | 435 | msgstr "enregistrement d’un pragma avec un handler NULL" |
| 436 | 436 | |
| 437 | −#: directives.c:1528 | |
| 437 | +#: directives.c:1518 | |
| 438 | 438 | msgid "#pragma once in main file" |
| 439 | 439 | msgstr "#pragma once utilisé une seule fois dans le fichier principal" |
| 440 | 440 | |
| 441 | −#: directives.c:1551 | |
| 441 | +#: directives.c:1541 | |
| 442 | 442 | msgid "invalid #pragma push_macro directive" |
| 443 | 443 | msgstr "directive #pragma push_macro invalide" |
| 444 | 444 | |
| 445 | −#: directives.c:1606 | |
| 445 | +#: directives.c:1596 | |
| 446 | 446 | msgid "invalid #pragma pop_macro directive" |
| 447 | 447 | msgstr "directive #pragma pop_macro invalide" |
| 448 | 448 | |
| 449 | −#: directives.c:1661 | |
| 449 | +#: directives.c:1651 | |
| 450 | 450 | msgid "invalid #pragma GCC poison directive" |
| 451 | 451 | msgstr "directive #pragma GCC poison invalide" |
| 452 | 452 | |
| 453 | −#: directives.c:1670 | |
| 453 | +#: directives.c:1660 | |
| 454 | 454 | #, c-format |
| 455 | 455 | msgid "poisoning existing macro \"%s\"" |
| 456 | 456 | msgstr "empoisonnement de la macro existante « %s »" |
| 457 | 457 | |
| 458 | −#: directives.c:1689 | |
| 458 | +#: directives.c:1679 | |
| 459 | 459 | msgid "#pragma system_header ignored outside include file" |
| 460 | 460 | msgstr "#pragma system_header ignoré en dehors du fichier d'inclusion" |
| 461 | 461 | |
| 462 | −#: directives.c:1714 | |
| 462 | +#: directives.c:1704 | |
| 463 | 463 | #, c-format |
| 464 | 464 | msgid "cannot find source file %s" |
| 465 | 465 | msgstr "impossible de trouver le fichier source %s" |
| 466 | 466 | |
| 467 | −#: directives.c:1718 | |
| 467 | +#: directives.c:1708 | |
| 468 | 468 | #, c-format |
| 469 | 469 | msgid "current file is older than %s" |
| 470 | 470 | msgstr "le fichier courant est plus vieux que %s" |
| 471 | 471 | |
| 472 | −#: directives.c:1742 | |
| 472 | +#: directives.c:1732 | |
| 473 | 473 | #, c-format |
| 474 | 474 | msgid "invalid \"#pragma GCC %s\" directive" |
| 475 | 475 | msgstr "directive « #pragma GCC %s » invalide" |
| 476 | 476 | |
| 477 | −#: directives.c:1943 | |
| 477 | +#: directives.c:1933 | |
| 478 | 478 | msgid "_Pragma takes a parenthesized string literal" |
| 479 | 479 | msgstr "_Pragma attend une chaîne entourée de parenthèses" |
| 480 | 480 | |
| 481 | −#: directives.c:2064 | |
| 481 | +#: directives.c:2021 | |
| 482 | 482 | msgid "#else without #if" |
| 483 | 483 | msgstr "#else sans #if" |
| 484 | 484 | |
| 485 | −#: directives.c:2069 | |
| 485 | +#: directives.c:2026 | |
| 486 | 486 | msgid "#else after #else" |
| 487 | 487 | msgstr "#else après #else" |
| 488 | 488 | |
| 489 | −#: directives.c:2071 directives.c:2104 | |
| 489 | +#: directives.c:2028 directives.c:2061 | |
| 490 | 490 | msgid "the conditional began here" |
| 491 | 491 | msgstr "la condition débute ici" |
| 492 | 492 | |
| 493 | −#: directives.c:2097 | |
| 493 | +#: directives.c:2054 | |
| 494 | 494 | msgid "#elif without #if" |
| 495 | 495 | msgstr "#elif sans #if" |
| 496 | 496 | |
| 497 | −#: directives.c:2102 | |
| 497 | +#: directives.c:2059 | |
| 498 | 498 | msgid "#elif after #else" |
| 499 | 499 | msgstr "#elif après #else" |
| 500 | 500 | |
| 501 | −#: directives.c:2133 | |
| 501 | +#: directives.c:2090 | |
| 502 | 502 | msgid "#endif without #if" |
| 503 | 503 | msgstr "#endif sans #if" |
| 504 | 504 | |
| 505 | −#: directives.c:2213 | |
| 505 | +#: directives.c:2166 | |
| 506 | 506 | msgid "missing '(' after predicate" |
| 507 | 507 | msgstr "« ( » manquante après le prédicat" |
| 508 | 508 | |
| 509 | −#: directives.c:2228 | |
| 509 | +#: directives.c:2184 | |
| 510 | 510 | msgid "missing ')' to complete answer" |
| 511 | 511 | msgstr "« ) » manquante pour compléter la réponse" |
| 512 | 512 | |
| 513 | −#: directives.c:2248 | |
| 513 | +#: directives.c:2196 | |
| 514 | 514 | msgid "predicate's answer is empty" |
| 515 | 515 | msgstr "la réponse du prédicat est vide" |
| 516 | 516 | |
| 517 | −#: directives.c:2275 | |
| 517 | +#: directives.c:2226 | |
| 518 | 518 | msgid "assertion without predicate" |
| 519 | 519 | msgstr "assertion sans prédicat" |
| 520 | 520 | |
| 521 | −#: directives.c:2278 | |
| 521 | +#: directives.c:2229 | |
| 522 | 522 | msgid "predicate must be an identifier" |
| 523 | 523 | msgstr "le prédicat doit être un identificateur" |
| 524 | 524 | |
| 525 | −#: directives.c:2364 | |
| 525 | +#: directives.c:2311 | |
| 526 | 526 | #, c-format |
| 527 | 527 | msgid "\"%s\" re-asserted" |
| 528 | 528 | msgstr "assertion « %s » redondante" |
| 529 | 529 | |
| 530 | −#: directives.c:2656 | |
| 530 | +#: directives.c:2587 | |
| 531 | 531 | #, c-format |
| 532 | 532 | msgid "unterminated #%s" |
| 533 | 533 | msgstr "#%s non terminé" |
| 534 | 534 | |
| 535 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 535 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 536 | 536 | msgid "unterminated comment" |
| 537 | 537 | msgstr "commentaire non terminé" |
| 538 | 538 | |
| 539 | −#: errors.c:284 | |
| 539 | +#: errors.c:291 | |
| 540 | 540 | #, c-format |
| 541 | 541 | msgid "%s: %s" |
| 542 | 542 | msgstr "%s : %s" |
| 543 | 543 | |
| 544 | −#: errors.c:296 | |
| 544 | +#: errors.c:304 | |
| 545 | 545 | msgid "stdout" |
| 546 | 546 | msgstr "sortie standard" |
| 547 | 547 | |
| @@ -634,84 +634,84 @@ msgstr "(« %s » est un élément lexical alternatif pour « %s » en C++)" · 86 unmodified lines | ||
| 634 | 634 | msgid "this use of \"defined\" may not be portable" |
| 635 | 635 | msgstr "cette utilisation de « defined » peut ne pas être portable" |
| 636 | 636 | |
| 637 | −#: expr.c:1125 | |
| 637 | +#: expr.c:1109 | |
| 638 | 638 | msgid "user-defined literal in preprocessor expression" |
| 639 | 639 | msgstr "chaîne définie par l'utilisateur dans une expression pour le préprocesseur" |
| 640 | 640 | |
| 641 | −#: expr.c:1130 | |
| 641 | +#: expr.c:1114 | |
| 642 | 642 | msgid "floating constant in preprocessor expression" |
| 643 | 643 | msgstr "constante flottante dans une expression pour le préprocesseur" |
| 644 | 644 | |
| 645 | −#: expr.c:1136 | |
| 645 | +#: expr.c:1120 | |
| 646 | 646 | msgid "imaginary number in preprocessor expression" |
| 647 | 647 | msgstr "constante complexe dans une expression pour le préprocesseur" |
| 648 | 648 | |
| 649 | −#: expr.c:1189 | |
| 649 | +#: expr.c:1173 | |
| 650 | 650 | #, c-format |
| 651 | 651 | msgid "\"%s\" is not defined, evaluates to 0" |
| 652 | 652 | msgstr "« %s » n’est pas défini, évalué à 0" |
| 653 | 653 | |
| 654 | −#: expr.c:1202 | |
| 654 | +#: expr.c:1186 | |
| 655 | 655 | msgid "assertions are a GCC extension" |
| 656 | 656 | msgstr "les assertions sont une extension GCC" |
| 657 | 657 | |
| 658 | −#: expr.c:1205 | |
| 658 | +#: expr.c:1189 | |
| 659 | 659 | msgid "assertions are a deprecated extension" |
| 660 | 660 | msgstr "les assertions sont une extension obsolète" |
| 661 | 661 | |
| 662 | −#: expr.c:1451 | |
| 662 | +#: expr.c:1435 | |
| 663 | 663 | #, c-format |
| 664 | 664 | msgid "unbalanced stack in %s" |
| 665 | 665 | msgstr "pile non balancée dans %s" |
| 666 | 666 | |
| 667 | −#: expr.c:1471 | |
| 667 | +#: expr.c:1455 | |
| 668 | 668 | #, c-format |
| 669 | 669 | msgid "impossible operator '%u'" |
| 670 | 670 | msgstr "opérateur « %u » impossible" |
| 671 | 671 | |
| 672 | −#: expr.c:1572 | |
| 672 | +#: expr.c:1556 | |
| 673 | 673 | msgid "missing ')' in expression" |
| 674 | 674 | msgstr "« ) » manquante dans l'expression" |
| 675 | 675 | |
| 676 | −#: expr.c:1601 | |
| 676 | +#: expr.c:1585 | |
| 677 | 677 | msgid "'?' without following ':'" |
| 678 | 678 | msgstr "« ? » n’est pas suivi de « : »" |
| 679 | 679 | |
| 680 | −#: expr.c:1611 | |
| 680 | +#: expr.c:1595 | |
| 681 | 681 | msgid "integer overflow in preprocessor expression" |
| 682 | 682 | msgstr "débordement d’entier dans l'expression pour le préprocesseur" |
| 683 | 683 | |
| 684 | −#: expr.c:1616 | |
| 684 | +#: expr.c:1600 | |
| 685 | 685 | msgid "missing '(' in expression" |
| 686 | 686 | msgstr "« ( » manquante dans l'expression" |
| 687 | 687 | |
| 688 | −#: expr.c:1648 | |
| 688 | +#: expr.c:1632 | |
| 689 | 689 | #, c-format |
| 690 | 690 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 691 | 691 | msgstr "L'opérande de gauche de « %s » change de signe lors de sa promotion" |
| 692 | 692 | |
| 693 | −#: expr.c:1653 | |
| 693 | +#: expr.c:1637 | |
| 694 | 694 | #, c-format |
| 695 | 695 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 696 | 696 | msgstr "L'opérande de droite de « %s » change de signe lors de sa promotion" |
| 697 | 697 | |
| 698 | −#: expr.c:1912 | |
| 698 | +#: expr.c:1896 | |
| 699 | 699 | msgid "traditional C rejects the unary plus operator" |
| 700 | 700 | msgstr "le C traditionnel rejette l'opérateur d'addition unaire" |
| 701 | 701 | |
| 702 | −#: expr.c:2010 | |
| 702 | +#: expr.c:1994 | |
| 703 | 703 | msgid "comma operator in operand of #if" |
| 704 | 704 | msgstr "opérateur virgule dans l'opérande de #if" |
| 705 | 705 | |
| 706 | −#: expr.c:2146 | |
| 706 | +#: expr.c:2130 | |
| 707 | 707 | msgid "division by zero in #if" |
| 708 | 708 | msgstr "division par zéro dans #if" |
| 709 | 709 | |
| 710 | −#: expr.c:2243 | |
| 710 | +#: expr.c:2227 | |
| 711 | 711 | msgid "operator \"__has_include__\" requires a header string" |
| 712 | 712 | msgstr "l'opérateur « __has_include__ » requiert un chaîne d'entête" |
| 713 | 713 | |
| 714 | −#: expr.c:2259 | |
| 714 | +#: expr.c:2243 | |
| 715 | 715 | msgid "missing ')' after \"__has_include__\"" |
| 716 | 716 | msgstr "« ) » manquante après « __has_include__ »" |
| 717 | 717 | |
| @@ -728,40 +728,40 @@ msgstr "utilisez -Winvalid-pch pour plus d’informations" · 10 unmodified lines | ||
| 728 | 728 | msgid "no include path in which to search for %s" |
| 729 | 729 | msgstr "aucun chemin d’inclusion dans lequel on pourrait rechercher %s" |
| 730 | 730 | |
| 731 | −#: files.c:1441 | |
| 731 | +#: files.c:1455 | |
| 732 | 732 | msgid "Multiple include guards may be useful for:\n" |
| 733 | 733 | msgstr "Des garde-fous contre les inclusions multiples peuvent être utiles pour :\n" |
| 734 | 734 | |
| 735 | −#: init.c:565 | |
| 735 | +#: init.c:569 | |
| 736 | 736 | msgid "cppchar_t must be an unsigned type" |
| 737 | 737 | msgstr "cppchar_t doit être d’un type non signé" |
| 738 | 738 | |
| 739 | −#: init.c:569 | |
| 739 | +#: init.c:573 | |
| 740 | 740 | #, c-format |
| 741 | 741 | msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits" |
| 742 | 742 | msgstr "l'arithmétique du préprocesseur a une précision maximale de %lu bits ; la cible requière %lu bits" |
| 743 | 743 | |
| 744 | −#: init.c:576 | |
| 744 | +#: init.c:580 | |
| 745 | 745 | msgid "CPP arithmetic must be at least as precise as a target int" |
| 746 | 746 | msgstr "l'arithmétique du CPP doit être au moins aussi précise que le type int de la cible" |
| 747 | 747 | |
| 748 | −#: init.c:579 | |
| 748 | +#: init.c:583 | |
| 749 | 749 | msgid "target char is less than 8 bits wide" |
| 750 | 750 | msgstr "sur la cible, char fait moins de 8 bits" |
| 751 | 751 | |
| 752 | −#: init.c:583 | |
| 752 | +#: init.c:587 | |
| 753 | 753 | msgid "target wchar_t is narrower than target char" |
| 754 | 754 | msgstr "sur la cible, wchar_t est plus petit que char" |
| 755 | 755 | |
| 756 | −#: init.c:587 | |
| 756 | +#: init.c:591 | |
| 757 | 757 | msgid "target int is narrower than target char" |
| 758 | 758 | msgstr "sur la cible, int est plus petit que char" |
| 759 | 759 | |
| 760 | −#: init.c:592 | |
| 760 | +#: init.c:596 | |
| 761 | 761 | msgid "CPP half-integer narrower than CPP character" |
| 762 | 762 | msgstr "les demi-entiers de CPP sont plus petits que les caractères de CPP" |
| 763 | 763 | |
| 764 | −#: init.c:596 | |
| 764 | +#: init.c:600 | |
| 765 | 765 | #, c-format |
| 766 | 766 | msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits" |
| 767 | 767 | 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 | ||
| 834 | 834 | msgid "identifier \"%s\" is a special operator name in C++" |
| 835 | 835 | msgstr "l'identifiant « %s » est un nom d’opérateur spécial en C++" |
| 836 | 836 | |
| 837 | −#: lex.c:1811 | |
| 837 | +#: lex.c:1826 | |
| 838 | 838 | msgid "raw string delimiter longer than 16 characters" |
| 839 | 839 | msgstr "délimiteur de chaîne brute plus long que 16 caractères" |
| 840 | 840 | |
| 841 | −#: lex.c:1815 | |
| 841 | +#: lex.c:1830 | |
| 842 | 842 | msgid "invalid new-line in raw string delimiter" |
| 843 | 843 | msgstr "caractère de nouvelle ligne invalide dans un délimiteur de chaîne brute" |
| 844 | 844 | |
| 845 | −#: lex.c:1819 | |
| 845 | +#: lex.c:1834 | |
| 846 | 846 | #, c-format |
| 847 | 847 | msgid "invalid character '%c' in raw string delimiter" |
| 848 | 848 | msgstr "caractère « %c » invalide dans un délimiteur de chaîne brute" |
| 849 | 849 | |
| 850 | −#: lex.c:1868 lex.c:1890 | |
| 850 | +#: lex.c:1883 lex.c:1905 | |
| 851 | 851 | msgid "unterminated raw string" |
| 852 | 852 | msgstr "chaîne brute non terminée" |
| 853 | 853 | |
| 854 | −#: lex.c:1912 lex.c:2043 | |
| 854 | +#: lex.c:1925 lex.c:2054 | |
| 855 | 855 | msgid "invalid suffix on literal; C++11 requires a space between literal and string macro" |
| 856 | 856 | msgstr "suffixe de chaîne invalide ; C++11 requière un espace entre une chaîne et une macro de chaîne" |
| 857 | 857 | |
| 858 | −#: lex.c:2024 | |
| 858 | +#: lex.c:2037 | |
| 859 | 859 | msgid "null character(s) preserved in literal" |
| 860 | 860 | msgstr "caractère(s) nul préservé(s) dans la chaîne" |
| 861 | 861 | |
| 862 | −#: lex.c:2027 | |
| 862 | +#: lex.c:2040 | |
| 863 | 863 | #, c-format |
| 864 | 864 | msgid "missing terminating %c character" |
| 865 | 865 | msgstr "caractère %c de terminaison manquant" |
| 866 | 866 | |
| 867 | −#: lex.c:2061 | |
| 867 | +#: lex.c:2072 | |
| 868 | 868 | msgid "C++11 requires a space between string literal and macro" |
| 869 | 869 | msgstr "C++11 requière un espace entre une chaîne et une macro" |
| 870 | 870 | |
| 871 | −#: lex.c:2865 lex.c:2899 | |
| 871 | +#: lex.c:2876 lex.c:2910 | |
| 872 | 872 | msgid "C++ style comments are not allowed in ISO C90" |
| 873 | 873 | msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90 ISO" |
| 874 | 874 | |
| 875 | −#: lex.c:2867 lex.c:2878 lex.c:2901 | |
| 875 | +#: lex.c:2878 lex.c:2889 lex.c:2913 | |
| 876 | 876 | msgid "(this will be reported only once per input file)" |
| 877 | 877 | msgstr "(ceci sera rapporté une seule fois seulement par fichier d'entrée)" |
| 878 | 878 | |
| 879 | −#: lex.c:2876 | |
| 879 | +#: lex.c:2887 | |
| 880 | 880 | msgid "C++ style comments are incompatible with C90" |
| 881 | 881 | msgstr "La syntaxe des commentaires du C++ n’est pas permise en C90" |
| 882 | 882 | |
| 883 | −#: lex.c:2907 | |
| 883 | +#: lex.c:2919 | |
| 884 | 884 | msgid "multi-line comment" |
| 885 | 885 | msgstr "commentaire multi-lignes" |
| 886 | 886 | |
| 887 | −#: lex.c:3287 | |
| 887 | +#: lex.c:3299 | |
| 888 | 888 | #, c-format |
| 889 | 889 | msgid "unspellable token %s" |
| 890 | 890 | msgstr "l'élément lexical %s ne peut être épelé" |
| 891 | 891 | |
| 892 | −#: macro.c:93 | |
| 892 | +#: macro.c:94 | |
| 893 | 893 | msgid "'##' cannot appear at either end of __VA_OPT__" |
| 894 | 894 | msgstr "« ## » ne peut apparaître à aucune extrémité de __VA_OPT__" |
| 895 | 895 | |
| 896 | −#: macro.c:352 | |
| 896 | +#: macro.c:354 | |
| 897 | 897 | #, c-format |
| 898 | 898 | msgid "macro \"%s\" is not used" |
| 899 | 899 | msgstr "la macro « %s » n’est pas utilisée" |
| 900 | 900 | |
| 901 | −#: macro.c:391 macro.c:639 | |
| 901 | +#: macro.c:393 macro.c:641 | |
| 902 | 902 | #, c-format |
| 903 | 903 | msgid "invalid built-in macro \"%s\"" |
| 904 | 904 | msgstr "macro interne « %s » invalide" |
| 905 | 905 | |
| 906 | −#: macro.c:398 macro.c:500 | |
| 906 | +#: macro.c:400 macro.c:502 | |
| 907 | 907 | #, c-format |
| 908 | 908 | msgid "macro \"%s\" might prevent reproducible builds" |
| 909 | 909 | msgstr "la macro « %s » pourrait empêcher les compilations reproductibles" |
| 910 | 910 | |
| 911 | −#: macro.c:429 | |
| 911 | +#: macro.c:431 | |
| 912 | 912 | msgid "could not determine file timestamp" |
| 913 | 913 | msgstr "date de modification du fichier indéterminable" |
| 914 | 914 | |
| 915 | −#: macro.c:546 | |
| 915 | +#: macro.c:548 | |
| 916 | 916 | msgid "could not determine date and time" |
| 917 | 917 | msgstr "date et heure indéterminable" |
| 918 | 918 | |
| 919 | −#: macro.c:562 | |
| 919 | +#: macro.c:564 | |
| 920 | 920 | msgid "__COUNTER__ expanded inside directive with -fdirectives-only" |
| 921 | 921 | msgstr "Expansion de __COUNTER__ à l'intérieur d’une directive avec -fdirectives-only" |
| 922 | 922 | |
| 923 | −#: macro.c:758 | |
| 923 | +#: macro.c:760 | |
| 924 | 924 | msgid "invalid string literal, ignoring final '\\'" |
| 925 | 925 | msgstr "chaîne invalide, le « \\ » final est ignoré" |
| 926 | 926 | |
| 927 | −#: macro.c:820 | |
| 927 | +#: macro.c:822 | |
| 928 | 928 | #, c-format |
| 929 | 929 | msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token" |
| 930 | 930 | msgstr "le collage de « %s » et de « %s » ne donne pas un élément lexical de pré-traitement valide" |
| 931 | 931 | |
| 932 | −#: macro.c:946 | |
| 932 | +#: macro.c:948 | |
| 933 | 933 | msgid "ISO C++11 requires at least one argument for the \"...\" in a variadic macro" |
| 934 | 934 | msgstr "ISO C++11 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments" |
| 935 | 935 | |
| 936 | −#: macro.c:950 | |
| 936 | +#: macro.c:952 | |
| 937 | 937 | msgid "ISO C99 requires at least one argument for the \"...\" in a variadic macro" |
| 938 | 938 | msgstr "ISO C99 requiert au moins un argument pour « ... » dans une macro à nombre variable d’arguments" |
| 939 | 939 | |
| 940 | −#: macro.c:957 | |
| 940 | +#: macro.c:959 | |
| 941 | 941 | #, c-format |
| 942 | 942 | msgid "macro \"%s\" requires %u arguments, but only %u given" |
| 943 | 943 | msgstr "la macro « %s » requiert %u arguments, mais seulement %u ont été passés" |
| 944 | 944 | |
| 945 | −#: macro.c:962 | |
| 945 | +#: macro.c:964 | |
| 946 | 946 | #, c-format |
| 947 | 947 | msgid "macro \"%s\" passed %u arguments, but takes just %u" |
| 948 | 948 | msgstr "la macro « %s » a reçu %u arguments, mais elle n’en prend que %u" |
| 949 | 949 | |
| 950 | −#: macro.c:1156 traditional.c:819 | |
| 950 | +#: macro.c:1162 traditional.c:827 | |
| 951 | 951 | #, c-format |
| 952 | 952 | msgid "unterminated argument list invoking macro \"%s\"" |
| 953 | 953 | msgstr "liste d'arguments non terminée en invoquant la macro « %s »" |
| 954 | 954 | |
| 955 | −#: macro.c:1307 | |
| 955 | +#: macro.c:1304 | |
| 956 | 956 | #, c-format |
| 957 | 957 | msgid "function-like macro \"%s\" must be used with arguments in traditional C" |
| 958 | 958 | msgstr "la macro « %s » ressemblant à une fonction doit être utilisée avec des arguments en C traditionnel" |
| 959 | 959 | |
| 960 | −#: macro.c:2003 | |
| 960 | +#: macro.c:2083 | |
| 961 | 961 | #, c-format |
| 962 | 962 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C++98" |
| 963 | 963 | msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++98" |
| 964 | 964 | |
| 965 | −#: macro.c:2011 macro.c:2020 | |
| 965 | +#: macro.c:2091 macro.c:2100 | |
| 966 | 966 | #, c-format |
| 967 | 967 | msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90" |
| 968 | 968 | msgstr "appel de la macro %s avec l'argument %d : les arguments de macro vides sont indéfinis en ISO C++90" |
| 969 | 969 | |
| 970 | −#: macro.c:2984 | |
| 970 | +#: macro.c:3059 | |
| 971 | 971 | #, c-format |
| 972 | 972 | msgid "duplicate macro parameter \"%s\"" |
| 973 | 973 | msgstr "paramètre de macro « %s » dupliqués" |
| 974 | 974 | |
| 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 | |
| 976 | 981 | #, 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é" | |
| 979 | 984 | |
| 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" | |
| 983 | 988 | |
| 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" | |
| 987 | 992 | |
| 988 | −#: macro.c:3081 | |
| 993 | +#: macro.c:3145 | |
| 994 | +msgid "expected ')' after \"...\"" | |
| 995 | +msgstr "« ) » attendue après « ... »" | |
| 996 | + | |
| 997 | +#: macro.c:3202 | |
| 989 | 998 | msgid "anonymous variadic macros were introduced in C++11" |
| 990 | 999 | msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C++11" |
| 991 | 1000 | |
| 992 | −#: macro.c:3085 macro.c:3090 | |
| 1001 | +#: macro.c:3203 macro.c:3207 | |
| 993 | 1002 | msgid "anonymous variadic macros were introduced in C99" |
| 994 | 1003 | msgstr "les macros anonymes à nombre variable d’arguments ont été introduites avec le C99" |
| 995 | 1004 | |
| 996 | −#: macro.c:3097 | |
| 1005 | +#: macro.c:3213 | |
| 997 | 1006 | msgid "ISO C++ does not permit named variadic macros" |
| 998 | 1007 | msgstr "ISO C++ ne permet pas les macros nommées à nombre variable d’arguments" |
| 999 | 1008 | |
| 1000 | −#: macro.c:3100 | |
| 1009 | +#: macro.c:3214 | |
| 1001 | 1010 | msgid "ISO C does not permit named variadic macros" |
| 1002 | 1011 | msgstr "ISO C ne permet pas les macros nommées à nombre variable d’arguments" |
| 1003 | 1012 | |
| 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 | |
| 1009 | 1014 | msgid "'##' cannot appear at either end of a macro expansion" |
| 1010 | 1015 | msgstr "« ## » ne peut apparaître à aucune des extrémités d’une expansion de macro" |
| 1011 | 1016 | |
| 1012 | −#: macro.c:3198 | |
| 1017 | +#: macro.c:3298 | |
| 1013 | 1018 | msgid "ISO C++11 requires whitespace after the macro name" |
| 1014 | 1019 | msgstr "ISO C++11 requiert un blanc après le nom de la macro" |
| 1015 | 1020 | |
| 1016 | −#: macro.c:3201 | |
| 1021 | +#: macro.c:3299 | |
| 1017 | 1022 | msgid "ISO C99 requires whitespace after the macro name" |
| 1018 | 1023 | msgstr "ISO C99 requiert un blanc après le nom de la macro" |
| 1019 | 1024 | |
| 1020 | −#: macro.c:3226 | |
| 1025 | +#: macro.c:3323 | |
| 1021 | 1026 | msgid "missing whitespace after the macro name" |
| 1022 | 1027 | msgstr "espacement manquant après le nom de la macro" |
| 1023 | 1028 | |
| 1024 | −#: macro.c:3263 | |
| 1029 | +#: macro.c:3373 | |
| 1025 | 1030 | msgid "'#' is not followed by a macro parameter" |
| 1026 | 1031 | msgstr "« # » n'est pas suivi d’un paramètre de macro" |
| 1027 | 1032 | |
| 1028 | −#: macro.c:3430 | |
| 1033 | +#: macro.c:3524 | |
| 1029 | 1034 | #, c-format |
| 1030 | 1035 | msgid "\"%s\" redefined" |
| 1031 | 1036 | msgstr "« %s » redéfini" |
| 1032 | 1037 | |
| 1033 | −#: macro.c:3435 | |
| 1038 | +#: macro.c:3529 | |
| 1034 | 1039 | msgid "this is the location of the previous definition" |
| 1035 | 1040 | msgstr "ceci est l'emplacement d’une précédente définition" |
| 1036 | 1041 | |
| 1037 | −#: macro.c:3496 | |
| 1042 | +#: macro.c:3633 | |
| 1038 | 1043 | #, c-format |
| 1039 | 1044 | msgid "macro argument \"%s\" would be stringified in traditional C" |
| 1040 | 1045 | msgstr "l'argument de macro « %s » serait changé en chaine dans le C traditionnel" |
| 1041 | 1046 | |
| 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 | |
| 1048 | 1048 | msgid "while writing precompiled header" |
| 1049 | 1049 | msgstr "lors de l'écriture de l'en-tête pré-compilée" |
| 1050 | 1050 | |
| 1051 | −#: pch.c:621 | |
| 1051 | +#: pch.c:616 | |
| 1052 | 1052 | #, c-format |
| 1053 | 1053 | msgid "%s: not used because `%.*s' is poisoned" |
| 1054 | 1054 | msgstr "%s: n'est pas utilisé parce que « %.*s » est empoisonné" |
| 1055 | 1055 | |
| 1056 | −#: pch.c:643 | |
| 1056 | +#: pch.c:638 | |
| 1057 | 1057 | #, c-format |
| 1058 | 1058 | msgid "%s: not used because `%.*s' not defined" |
| 1059 | 1059 | msgstr "%s: n'est pas utilisé parce que « %.*s » n’est pas défini" |
| 1060 | 1060 | |
| 1061 | −#: pch.c:655 | |
| 1061 | +#: pch.c:650 | |
| 1062 | 1062 | #, c-format |
| 1063 | 1063 | msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'" |
| 1064 | 1064 | msgstr "%s: n’est pas utilisé parce que « %.*s » est défini en tant « %s » et non pas « %.*s »" |
| 1065 | 1065 | |
| 1066 | −#: pch.c:696 | |
| 1066 | +#: pch.c:691 | |
| 1067 | 1067 | #, c-format |
| 1068 | 1068 | msgid "%s: not used because `%s' is defined" |
| 1069 | 1069 | msgstr "%s: n'est pas utilisé parce que « %s » est défini" |
| 1070 | 1070 | |
| 1071 | −#: pch.c:716 | |
| 1071 | +#: pch.c:711 | |
| 1072 | 1072 | #, c-format |
| 1073 | 1073 | msgid "%s: not used because `__COUNTER__' is invalid" |
| 1074 | 1074 | msgstr "%s: non utilisé parce que « __COUNTER__ » est invalide" |
| 1075 | 1075 | |
| 1076 | −#: pch.c:725 pch.c:903 | |
| 1076 | +#: pch.c:720 pch.c:878 | |
| 1077 | 1077 | msgid "while reading precompiled header" |
| 1078 | 1078 | msgstr "lors de la lecture d’un entête pré-compilée" |
| 1079 | 1079 | |
| 1080 | −#: traditional.c:889 | |
| 1080 | +#: traditional.c:896 | |
| 1081 | 1081 | #, c-format |
| 1082 | 1082 | msgid "detected recursion whilst expanding macro \"%s\"" |
| 1083 | 1083 | msgstr "récursion détectée lors de l'expansion de la macro « %s »" |
| 1084 | 1084 | |
| 1085 | −#: traditional.c:1108 | |
| 1085 | +#: traditional.c:1119 | |
| 1086 | 1086 | msgid "syntax error in macro parameter list" |
| 1087 | 1087 | 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" | |
Binary file not shown.
| @@ -7,7 +7,7 @@ msgid "" · 6 unmodified lines | ||
| 7 | 7 | msgstr "" |
| 8 | 8 | "Project-Id-Version: cpplib 4.5-b20100204\n" |
| 9 | 9 | "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" | |
| 11 | 11 | "PO-Revision-Date: 2010-02-05 19:00+0700\n" |
| 12 | 12 | "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n" |
| 13 | 13 | "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 | ||
| 88 | 88 | msgid "universal character %.*s is not valid at the start of an identifier" |
| 89 | 89 | msgstr "karakter universal %.*s tidak valid di awal dari sebuah pengidentifikasi" |
| 90 | 90 | |
| 91 | −#: charset.c:1181 charset.c:2000 | |
| 91 | +#: charset.c:1181 charset.c:2002 | |
| 92 | 92 | msgid "converting UCN to source character set" |
| 93 | 93 | msgstr "mengubah UCN ke set karakter asal" |
| 94 | 94 | |
| @@ -139,297 +139,297 @@ msgstr "mengubah escape sequence ke set karakter eksekusi" · 44 unmodified lines | ||
| 139 | 139 | msgid "missing open quote" |
| 140 | 140 | msgstr "" |
| 141 | 141 | |
| 142 | −#: charset.c:1827 charset.c:1891 | |
| 142 | +#: charset.c:1829 charset.c:1893 | |
| 143 | 143 | msgid "character constant too long for its type" |
| 144 | 144 | msgstr "konstanta karakter terlalu panjang untuk tipenya" |
| 145 | 145 | |
| 146 | −#: charset.c:1830 | |
| 146 | +#: charset.c:1832 | |
| 147 | 147 | msgid "multi-character character constant" |
| 148 | 148 | msgstr "konstanta karakter multi-karakter" |
| 149 | 149 | |
| 150 | −#: charset.c:1931 | |
| 150 | +#: charset.c:1933 | |
| 151 | 151 | msgid "empty character constant" |
| 152 | 152 | msgstr "konstanta karakter kosong" |
| 153 | 153 | |
| 154 | −#: charset.c:2047 | |
| 154 | +#: charset.c:2049 | |
| 155 | 155 | #, c-format |
| 156 | 156 | msgid "failure to convert %s to %s" |
| 157 | 157 | msgstr "gagal untuk mengubah %s ke %s" |
| 158 | 158 | |
| 159 | −#: directives.c:235 directives.c:278 | |
| 159 | +#: directives.c:229 directives.c:272 | |
| 160 | 160 | #, c-format |
| 161 | 161 | msgid "extra tokens at end of #%s directive" |
| 162 | 162 | msgstr "ekstra token di akhir dari #%s direktif" |
| 163 | 163 | |
| 164 | −#: directives.c:385 | |
| 164 | +#: directives.c:379 | |
| 165 | 165 | #, c-format |
| 166 | 166 | msgid "#%s is a GCC extension" |
| 167 | 167 | msgstr "#%s adalah sebuah ekstensi GCC" |
| 168 | 168 | |
| 169 | −#: directives.c:390 | |
| 169 | +#: directives.c:384 | |
| 170 | 170 | #, c-format |
| 171 | 171 | msgid "#%s is a deprecated GCC extension" |
| 172 | 172 | msgstr "#%s adalah sebuah ekstensi GCC yang sudah ditinggalkan" |
| 173 | 173 | |
| 174 | −#: directives.c:403 | |
| 174 | +#: directives.c:397 | |
| 175 | 175 | msgid "suggest not using #elif in traditional C" |
| 176 | 176 | msgstr "disarankan tidak menggunakan #elif dalam tradisional C" |
| 177 | 177 | |
| 178 | −#: directives.c:406 | |
| 178 | +#: directives.c:400 | |
| 179 | 179 | #, c-format |
| 180 | 180 | msgid "traditional C ignores #%s with the # indented" |
| 181 | 181 | msgstr "tradisional C mengabaikan #%s dengan # terindentasi" |
| 182 | 182 | |
| 183 | −#: directives.c:410 | |
| 183 | +#: directives.c:404 | |
| 184 | 184 | #, c-format |
| 185 | 185 | msgid "suggest hiding #%s from traditional C with an indented #" |
| 186 | 186 | msgstr "disarankan menyembunyikan #%s dari tradisional C dengan sebuah indentasi #" |
| 187 | 187 | |
| 188 | −#: directives.c:436 | |
| 188 | +#: directives.c:430 | |
| 189 | 189 | msgid "embedding a directive within macro arguments is not portable" |
| 190 | 190 | msgstr "embedding sebuah direktif didalam argumen makro yang bukan portabel" |
| 191 | 191 | |
| 192 | −#: directives.c:456 | |
| 192 | +#: directives.c:450 | |
| 193 | 193 | msgid "style of line directive is a GCC extension" |
| 194 | 194 | msgstr "gaya dari baris direktif bukan sebuah ekstensi GCC" |
| 195 | 195 | |
| 196 | −#: directives.c:537 | |
| 196 | +#: directives.c:531 | |
| 197 | 197 | #, c-format |
| 198 | 198 | msgid "invalid preprocessing directive #%s" |
| 199 | 199 | msgstr "preprosesing direktif #%s tidak valid" |
| 200 | 200 | |
| 201 | −#: directives.c:606 | |
| 201 | +#: directives.c:600 | |
| 202 | 202 | msgid "\"defined\" cannot be used as a macro name" |
| 203 | 203 | msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro" |
| 204 | 204 | |
| 205 | −#: directives.c:611 | |
| 205 | +#: directives.c:605 | |
| 206 | 206 | #, fuzzy |
| 207 | 207 | #| msgid "\"defined\" cannot be used as a macro name" |
| 208 | 208 | msgid "\"__has_include__\" cannot be used as a macro name" |
| 209 | 209 | msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro" |
| 210 | 210 | |
| 211 | −#: directives.c:617 | |
| 211 | +#: directives.c:611 | |
| 212 | 212 | #, c-format |
| 213 | 213 | msgid "\"%s\" cannot be used as a macro name as it is an operator in C++" |
| 214 | 214 | msgstr "\"%s\" tidak dapat digunakan sebagai sebuah nama makro karena ini adalah sebuah operator dalam C++" |
| 215 | 215 | |
| 216 | −#: directives.c:620 | |
| 216 | +#: directives.c:614 | |
| 217 | 217 | #, c-format |
| 218 | 218 | msgid "no macro name given in #%s directive" |
| 219 | 219 | msgstr "tidak ada nama makro yang diberikan dalam direktif #%s" |
| 220 | 220 | |
| 221 | −#: directives.c:623 | |
| 221 | +#: directives.c:617 | |
| 222 | 222 | msgid "macro names must be identifiers" |
| 223 | 223 | msgstr "nama makro harus berupa pengidentifikasi" |
| 224 | 224 | |
| 225 | −#: directives.c:672 directives.c:677 | |
| 225 | +#: directives.c:666 directives.c:671 | |
| 226 | 226 | #, c-format |
| 227 | 227 | msgid "undefining \"%s\"" |
| 228 | 228 | msgstr "tidak terdefinisi \"%s\"" |
| 229 | 229 | |
| 230 | −#: directives.c:732 | |
| 230 | +#: directives.c:727 | |
| 231 | 231 | msgid "missing terminating > character" |
| 232 | 232 | msgstr "hilang karakter pengakhir >" |
| 233 | 233 | |
| 234 | −#: directives.c:791 | |
| 234 | +#: directives.c:786 | |
| 235 | 235 | #, c-format |
| 236 | 236 | msgid "#%s expects \"FILENAME\" or <FILENAME>" |
| 237 | 237 | msgstr "#%s diduga \"NAMA BERKAS\" atau <NAMA BERKAS>" |
| 238 | 238 | |
| 239 | −#: directives.c:837 | |
| 239 | +#: directives.c:828 | |
| 240 | 240 | #, c-format |
| 241 | 241 | msgid "empty filename in #%s" |
| 242 | 242 | msgstr "nama berkas kosong dalam #%s" |
| 243 | 243 | |
| 244 | −#: directives.c:847 | |
| 244 | +#: directives.c:835 | |
| 245 | 245 | msgid "#include nested too deeply" |
| 246 | 246 | msgstr "#include nested terlalu dalam" |
| 247 | 247 | |
| 248 | −#: directives.c:888 | |
| 248 | +#: directives.c:877 | |
| 249 | 249 | msgid "#include_next in primary source file" |
| 250 | 250 | msgstr "#include_next dalam berkas kode program utama" |
| 251 | 251 | |
| 252 | −#: directives.c:914 | |
| 252 | +#: directives.c:903 | |
| 253 | 253 | #, c-format |
| 254 | 254 | msgid "invalid flag \"%s\" in line directive" |
| 255 | 255 | msgstr "tanda \"%s\" tidak valid dalam baris direktif" |
| 256 | 256 | |
| 257 | −#: directives.c:974 | |
| 257 | +#: directives.c:963 | |
| 258 | 258 | msgid "unexpected end of file after #line" |
| 259 | 259 | msgstr "tidak terduga akhir dari berkas setelah #line" |
| 260 | 260 | |
| 261 | −#: directives.c:977 | |
| 261 | +#: directives.c:966 | |
| 262 | 262 | #, c-format |
| 263 | 263 | msgid "\"%s\" after #line is not a positive integer" |
| 264 | 264 | msgstr "\"%s\" setelah #line bukan sebuah integer positif" |
| 265 | 265 | |
| 266 | −#: directives.c:983 directives.c:985 | |
| 266 | +#: directives.c:972 directives.c:974 | |
| 267 | 267 | msgid "line number out of range" |
| 268 | 268 | msgstr "nomor baris diluar dari jangkauan" |
| 269 | 269 | |
| 270 | −#: directives.c:998 directives.c:1079 | |
| 270 | +#: directives.c:987 directives.c:1068 | |
| 271 | 271 | #, c-format |
| 272 | 272 | msgid "\"%s\" is not a valid filename" |
| 273 | 273 | msgstr "\"%s\" bukan sebuah nama berkas yang valid" |
| 274 | 274 | |
| 275 | −#: directives.c:1039 | |
| 275 | +#: directives.c:1028 | |
| 276 | 276 | #, c-format |
| 277 | 277 | msgid "\"%s\" after # is not a positive integer" |
| 278 | 278 | msgstr "\"%s\" setelah # bukan sebuah integer positif" |
| 279 | 279 | |
| 280 | −#: directives.c:1098 | |
| 280 | +#: directives.c:1087 | |
| 281 | 281 | #, c-format |
| 282 | 282 | msgid "file \"%s\" linemarker ignored due to incorrect nesting" |
| 283 | 283 | msgstr "" |
| 284 | 284 | |
| 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 | |
| 286 | 286 | #, c-format |
| 287 | 287 | msgid "%s" |
| 288 | 288 | msgstr "%s" |
| 289 | 289 | |
| 290 | −#: directives.c:1185 | |
| 290 | +#: directives.c:1175 | |
| 291 | 291 | #, c-format |
| 292 | 292 | msgid "invalid #%s directive" |
| 293 | 293 | msgstr "direktif #%s tidak valid" |
| 294 | 294 | |
| 295 | −#: directives.c:1248 | |
| 295 | +#: directives.c:1238 | |
| 296 | 296 | #, c-format |
| 297 | 297 | msgid "registering pragmas in namespace \"%s\" with mismatched name expansion" |
| 298 | 298 | msgstr "mendaftarkan pragma dalam ruang-nama \"%s\" dengan ekspansi nama yang tidak cocok" |
| 299 | 299 | |
| 300 | −#: directives.c:1257 | |
| 300 | +#: directives.c:1247 | |
| 301 | 301 | #, c-format |
| 302 | 302 | msgid "registering pragma \"%s\" with name expansion and no namespace" |
| 303 | 303 | msgstr "mendaftarkan pragma \"%s\" dengan ekspansi nama dan tidak ada ruang-nama" |
| 304 | 304 | |
| 305 | −#: directives.c:1275 | |
| 305 | +#: directives.c:1265 | |
| 306 | 306 | #, c-format |
| 307 | 307 | msgid "registering \"%s\" as both a pragma and a pragma namespace" |
| 308 | 308 | msgstr "mendaftarkan \"%s\" sebagai baik sebuah pragma dan sebuah ruang-nama" |
| 309 | 309 | |
| 310 | −#: directives.c:1278 | |
| 310 | +#: directives.c:1268 | |
| 311 | 311 | #, c-format |
| 312 | 312 | msgid "#pragma %s %s is already registered" |
| 313 | 313 | msgstr "#pragma %s %s telah terdaftar" |
| 314 | 314 | |
| 315 | −#: directives.c:1281 | |
| 315 | +#: directives.c:1271 | |
| 316 | 316 | #, c-format |
| 317 | 317 | msgid "#pragma %s is already registered" |
| 318 | 318 | msgstr "#pragma %s telah terdaftar" |
| 319 | 319 | |
| 320 | −#: directives.c:1311 | |
| 320 | +#: directives.c:1301 | |
| 321 | 321 | msgid "registering pragma with NULL handler" |
| 322 | 322 | msgstr "mendaftarkan pragma dengan penanganan KOSONG" |
| 323 | 323 | |
| 324 | −#: directives.c:1528 | |
| 324 | +#: directives.c:1518 | |
| 325 | 325 | msgid "#pragma once in main file" |
| 326 | 326 | msgstr "#pragma sekali dalam berkas utama" |
| 327 | 327 | |
| 328 | −#: directives.c:1551 | |
| 328 | +#: directives.c:1541 | |
| 329 | 329 | msgid "invalid #pragma push_macro directive" |
| 330 | 330 | msgstr "#pragma push_macro direktif tidak valid" |
| 331 | 331 | |
| 332 | −#: directives.c:1606 | |
| 332 | +#: directives.c:1596 | |
| 333 | 333 | msgid "invalid #pragma pop_macro directive" |
| 334 | 334 | msgstr "#pragma pop_macro direktif tidak valid" |
| 335 | 335 | |
| 336 | −#: directives.c:1661 | |
| 336 | +#: directives.c:1651 | |
| 337 | 337 | msgid "invalid #pragma GCC poison directive" |
| 338 | 338 | msgstr "#pragma GCC tidak valid merusak direktif" |
| 339 | 339 | |
| 340 | −#: directives.c:1670 | |
| 340 | +#: directives.c:1660 | |
| 341 | 341 | #, c-format |
| 342 | 342 | msgid "poisoning existing macro \"%s\"" |
| 343 | 343 | msgstr "merusak makro \"%s\" yang sudah ada" |
| 344 | 344 | |
| 345 | −#: directives.c:1689 | |
| 345 | +#: directives.c:1679 | |
| 346 | 346 | msgid "#pragma system_header ignored outside include file" |
| 347 | 347 | msgstr "#pragma system_header diabaikan diluar berkas include" |
| 348 | 348 | |
| 349 | −#: directives.c:1714 | |
| 349 | +#: directives.c:1704 | |
| 350 | 350 | #, c-format |
| 351 | 351 | msgid "cannot find source file %s" |
| 352 | 352 | msgstr "tidak dapat menemukan berkas sumber %s" |
| 353 | 353 | |
| 354 | −#: directives.c:1718 | |
| 354 | +#: directives.c:1708 | |
| 355 | 355 | #, c-format |
| 356 | 356 | msgid "current file is older than %s" |
| 357 | 357 | msgstr "berkas ini lebih lama daripada %s" |
| 358 | 358 | |
| 359 | −#: directives.c:1742 | |
| 359 | +#: directives.c:1732 | |
| 360 | 360 | #, fuzzy, c-format |
| 361 | 361 | #| msgid "invalid #pragma GCC poison directive" |
| 362 | 362 | msgid "invalid \"#pragma GCC %s\" directive" |
| 363 | 363 | msgstr "#pragma GCC tidak valid merusak direktif" |
| 364 | 364 | |
| 365 | −#: directives.c:1943 | |
| 365 | +#: directives.c:1933 | |
| 366 | 366 | msgid "_Pragma takes a parenthesized string literal" |
| 367 | 367 | msgstr "_Pragma mengambil sebuah string literal tanda kurung" |
| 368 | 368 | |
| 369 | −#: directives.c:2064 | |
| 369 | +#: directives.c:2021 | |
| 370 | 370 | msgid "#else without #if" |
| 371 | 371 | msgstr "#else tanpa #if" |
| 372 | 372 | |
| 373 | −#: directives.c:2069 | |
| 373 | +#: directives.c:2026 | |
| 374 | 374 | msgid "#else after #else" |
| 375 | 375 | msgstr "#else setelah #else" |
| 376 | 376 | |
| 377 | −#: directives.c:2071 directives.c:2104 | |
| 377 | +#: directives.c:2028 directives.c:2061 | |
| 378 | 378 | msgid "the conditional began here" |
| 379 | 379 | msgstr "kondisional berawal disini" |
| 380 | 380 | |
| 381 | −#: directives.c:2097 | |
| 381 | +#: directives.c:2054 | |
| 382 | 382 | msgid "#elif without #if" |
| 383 | 383 | msgstr "#elif tanpa #if" |
| 384 | 384 | |
| 385 | −#: directives.c:2102 | |
| 385 | +#: directives.c:2059 | |
| 386 | 386 | msgid "#elif after #else" |
| 387 | 387 | msgstr "#elif setelah #else" |
| 388 | 388 | |
| 389 | −#: directives.c:2133 | |
| 389 | +#: directives.c:2090 | |
| 390 | 390 | msgid "#endif without #if" |
| 391 | 391 | msgstr "#endif tanpa #if" |
| 392 | 392 | |
| 393 | −#: directives.c:2213 | |
| 393 | +#: directives.c:2166 | |
| 394 | 394 | msgid "missing '(' after predicate" |
| 395 | 395 | msgstr "hilang '(' setelah predikat" |
| 396 | 396 | |
| 397 | −#: directives.c:2228 | |
| 397 | +#: directives.c:2184 | |
| 398 | 398 | msgid "missing ')' to complete answer" |
| 399 | 399 | msgstr "hilang ')' untuk melengkapi jawaban" |
| 400 | 400 | |
| 401 | −#: directives.c:2248 | |
| 401 | +#: directives.c:2196 | |
| 402 | 402 | msgid "predicate's answer is empty" |
| 403 | 403 | msgstr "jawaban predikat kosong" |
| 404 | 404 | |
| 405 | −#: directives.c:2275 | |
| 405 | +#: directives.c:2226 | |
| 406 | 406 | msgid "assertion without predicate" |
| 407 | 407 | msgstr "assertion tanpa predikat" |
| 408 | 408 | |
| 409 | −#: directives.c:2278 | |
| 409 | +#: directives.c:2229 | |
| 410 | 410 | msgid "predicate must be an identifier" |
| 411 | 411 | msgstr "predikat harus berupa sebuah pengidentifikasi" |
| 412 | 412 | |
| 413 | −#: directives.c:2364 | |
| 413 | +#: directives.c:2311 | |
| 414 | 414 | #, c-format |
| 415 | 415 | msgid "\"%s\" re-asserted" |
| 416 | 416 | msgstr "\"%s\" re-asserted" |
| 417 | 417 | |
| 418 | −#: directives.c:2656 | |
| 418 | +#: directives.c:2587 | |
| 419 | 419 | #, c-format |
| 420 | 420 | msgid "unterminated #%s" |
| 421 | 421 | msgstr "tidak terakhiri #%s" |
| 422 | 422 | |
| 423 | −#: directives-only.c:221 lex.c:2851 traditional.c:167 | |
| 423 | +#: directives-only.c:221 lex.c:2862 traditional.c:175 | |
| 424 | 424 | msgid "unterminated comment" |
| 425 | 425 | msgstr "komentar tidak terakhiri" |
| 426 | 426 | |
| 427 | −#: errors.c:284 | |
| 427 | +#: errors.c:291 | |
| 428 | 428 | #, c-format |
| 429 | 429 | msgid "%s: %s" |
| 430 | 430 | msgstr "%s: %s" |
| 431 | 431 | |
| 432 | −#: errors.c:296 | |
| 432 | +#: errors.c:304 | |
| 433 | 433 | msgid "stdout" |
| 434 | 434 | msgstr "stdout" |
| 435 | 435 | |
| @@ -530,89 +530,89 @@ msgstr "(\"%s\" adalah sebuah tanda alternatif untuk \"%s\" dalam C++)" · 94 unmodified lines | ||
| 530 | 530 | msgid "this use of \"defined\" may not be portable" |
| 531 | 531 | msgstr "penggunaan ini dari \"defined\" mungkin tidak portabel" |
| 532 | 532 | |
| 533 | −#: expr.c:1125 | |
| 533 | +#: expr.c:1109 | |
| 534 | 534 | #, fuzzy |
| 535 | 535 | #| msgid "integer overflow in preprocessor expression" |
| 536 | 536 | msgid "user-defined literal in preprocessor expression" |
| 537 | 537 | msgstr "integer overflow dalam ekspresi preprosesor" |
| 538 | 538 | |
| 539 | −#: expr.c:1130 | |
| 539 | +#: expr.c:1114 | |
| 540 | 540 | msgid "floating constant in preprocessor expression" |
| 541 | 541 | msgstr "konstanta pecahan dalam ekspresi preprosesor" |
| 542 | 542 | |
| 543 | −#: expr.c:1136 | |
| 543 | +#: expr.c:1120 | |
| 544 | 544 | msgid "imaginary number in preprocessor expression" |
| 545 | 545 | msgstr "angka imaginari dalam ekspresi preprosesor" |
| 546 | 546 | |
| 547 | −#: expr.c:1189 | |
| 547 | +#: expr.c:1173 | |
| 548 | 548 | #, fuzzy, c-format |
| 549 | 549 | #| msgid "\"%s\" is not defined" |
| 550 | 550 | msgid "\"%s\" is not defined, evaluates to 0" |
| 551 | 551 | msgstr "\"%s\" tidak didefinisikan" |
| 552 | 552 | |
| 553 | −#: expr.c:1202 | |
| 553 | +#: expr.c:1186 | |
| 554 | 554 | msgid "assertions are a GCC extension" |
| 555 | 555 | msgstr "assertions adalah sebuah ekstensi GCC" |
| 556 | 556 | |
| 557 | −#: expr.c:1205 | |
| 557 | +#: expr.c:1189 | |
| 558 | 558 | msgid "assertions are a deprecated extension" |
| 559 | 559 | msgstr "assertions adalah sebuah ekstensi yang sudah ditinggalkan" |
| 560 | 560 | |
| 561 | −#: expr.c:1451 | |
| 561 | +#: expr.c:1435 | |
| 562 | 562 | #, c-format |
| 563 | 563 | msgid "unbalanced stack in %s" |
| 564 | 564 | msgstr "stack dalam %s tidak seimbang" |
| 565 | 565 | |
| 566 | −#: expr.c:1471 | |
| 566 | +#: expr.c:1455 | |
| 567 | 567 | #, c-format |
| 568 | 568 | msgid "impossible operator '%u'" |
| 569 | 569 | msgstr "operator '%u' tidak mungkin" |
| 570 | 570 | |
| 571 | −#: expr.c:1572 | |
| 571 | +#: expr.c:1556 | |
| 572 | 572 | msgid "missing ')' in expression" |
| 573 | 573 | msgstr "hilang ')' dalam ekspresi" |
| 574 | 574 | |
| 575 | −#: expr.c:1601 | |
| 575 | +#: expr.c:1585 | |
| 576 | 576 | msgid "'?' without following ':'" |
| 577 | 577 | msgstr "'?' tanpa diikuti ':'" |
| 578 | 578 | |
| 579 | −#: expr.c:1611 | |
| 579 | +#: expr.c:1595 | |
| 580 | 580 | msgid "integer overflow in preprocessor expression" |
| 581 | 581 | msgstr "integer overflow dalam ekspresi preprosesor" |
| 582 | 582 | |
| 583 | −#: expr.c:1616 | |
| 583 | +#: expr.c:1600 | |
| 584 | 584 | msgid "missing '(' in expression" |
| 585 | 585 | msgstr "hilang '(' dalam ekspresi" |
| 586 | 586 | |
| 587 | −#: expr.c:1648 | |
| 587 | +#: expr.c:1632 | |
| 588 | 588 | #, c-format |
| 589 | 589 | msgid "the left operand of \"%s\" changes sign when promoted" |
| 590 | 590 | msgstr "operan kiri dari \"%s\" berubah tanda ketika dipromosikan" |
| 591 | 591 | |
| 592 | −#: expr.c:1653 | |
| 592 | +#: expr.c:1637 | |
| 593 | 593 | #, c-format |
| 594 | 594 | msgid "the right operand of \"%s\" changes sign when promoted" |
| 595 | 595 | msgstr "operan kanan dari \"%s\" berubah tanda ketika dipromosikan" |
| 596 | 596 | |
| 597 | −#: expr.c:1912 | |
| 597 | +#: expr.c:1896 | |
| 598 | 598 | msgid "traditional C rejects the unary plus operator" |
| 599 | 599 | msgstr "tradisional C menolak operator unary plus" |
| 600 | 600 | |
| 601 | −#: expr.c:2010 | |
| 601 | +#: expr.c:1994 | |
| 602 | 602 | msgid "comma operator in operand of #if" |
| 603 | 603 | msgstr "operator koma dalam operator dari #if" |
| 604 | 604 | |
| 605 | −#: expr.c:2146 | |
| 605 | +#: expr.c:2130 | |
| 606 | 606 | msgid "division by zero in #if" |
| 607 | 607 | msgstr "pembagian oleh nol dalam #if" |
| 608 | 608 | |
| 609 | −#: expr.c:2243 | |
| 609 | +#: expr.c:2227 | |
| 610 | 610 | #, fuzzy |
| 611 | 611 | #| msgid "operator \"defined\" requires an identifier" |
| 612 | 612 | msgid "operator \"__has_include__\" requires a header string" |
| 613 | 613 | msgstr "operator \"defined\" membutuhkan sebuah pengidentifikasi" |
| 614 | 614 | |
| 615 | −#: expr.c:2259 | |
| 615 | +#: expr.c:2243 | |
| 616 | 616 | #, fuzzy |
| 617 | 617 | #| msgid "missing ')' after \"defined\"" |
| 618 | 618 | msgid "missing ')' after \"__has_include__\"" |
| @@ -631,40 +631,40 @@ msgstr "gunakan -Winvalid-pch untuk informasi lebih lanjut" · 12 unmodified lines | ||
| 631 | 631 | msgid "no include path in which to search for %s" |
| 632 | 632 | msgstr "tidak ada jalur include yang biasa digunakan untuk pencarian untuk %s" |
413 more lines aren’t shown here.
Binary file not shown.
This diff is large: its 903 lines aren’t shown here.
Binary file not shown.
This diff is large: its 901 lines aren’t shown here.
This diff is large: its 888 lines aren’t shown here.
Binary file not shown.
This diff is large: its 885 lines aren’t shown here.
This diff is large: its 880 lines aren’t shown here.
Binary file not shown.
This diff is large: its 871 lines aren’t shown here.
Binary file not shown.
This diff is large: its 907 lines aren’t shown here.
Binary file not shown.
This diff is large: its 894 lines aren’t shown here.
Binary file not shown.
This diff is large: its 887 lines aren’t shown here.
Binary file not shown.
This diff is large: its 906 lines aren’t shown here.
Binary file not shown.
This diff is large: its 886 lines aren’t shown here.
This diff is large: its 64 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 254 lines aren’t shown here.
This diff is large: its 7 lines aren’t shown here.
This diff is large: its 7 lines aren’t shown here.