aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/libcpp
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/libcpp
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/libcpp')
-rw-r--r--gcc-4.9/libcpp/ChangeLog3371
-rw-r--r--gcc-4.9/libcpp/Makefile.in279
-rw-r--r--gcc-4.9/libcpp/aclocal.m424
-rw-r--r--gcc-4.9/libcpp/charset.c1806
-rw-r--r--gcc-4.9/libcpp/config.in358
-rwxr-xr-xgcc-4.9/libcpp/configure8501
-rw-r--r--gcc-4.9/libcpp/configure.ac234
-rw-r--r--gcc-4.9/libcpp/directives-only.c240
-rw-r--r--gcc-4.9/libcpp/directives.c2603
-rw-r--r--gcc-4.9/libcpp/errors.c237
-rw-r--r--gcc-4.9/libcpp/expr.c2067
-rw-r--r--gcc-4.9/libcpp/files.c1941
-rw-r--r--gcc-4.9/libcpp/identifiers.c120
-rw-r--r--gcc-4.9/libcpp/include/cpp-id-data.h80
-rw-r--r--gcc-4.9/libcpp/include/cpplib.h1074
-rw-r--r--gcc-4.9/libcpp/include/line-map.h785
-rw-r--r--gcc-4.9/libcpp/include/mkdeps.h79
-rw-r--r--gcc-4.9/libcpp/include/symtab.h103
-rw-r--r--gcc-4.9/libcpp/init.c771
-rw-r--r--gcc-4.9/libcpp/internal.h876
-rw-r--r--gcc-4.9/libcpp/lex.c3132
-rw-r--r--gcc-4.9/libcpp/line-map.c1646
-rw-r--r--gcc-4.9/libcpp/macro.c3328
-rw-r--r--gcc-4.9/libcpp/makeucnid.c452
-rw-r--r--gcc-4.9/libcpp/mkdeps.c437
-rw-r--r--gcc-4.9/libcpp/pch.c900
-rw-r--r--gcc-4.9/libcpp/po/ChangeLog561
-rw-r--r--gcc-4.9/libcpp/po/be.po2960
-rw-r--r--gcc-4.9/libcpp/po/ca.po1009
-rw-r--r--gcc-4.9/libcpp/po/cpplib.pot948
-rw-r--r--gcc-4.9/libcpp/po/da.po16270
-rw-r--r--gcc-4.9/libcpp/po/de.po3889
-rw-r--r--gcc-4.9/libcpp/po/el.po5282
-rw-r--r--gcc-4.9/libcpp/po/eo.po952
-rw-r--r--gcc-4.9/libcpp/po/es.po983
-rw-r--r--gcc-4.9/libcpp/po/fi.po963
-rw-r--r--gcc-4.9/libcpp/po/fr.po20029
-rw-r--r--gcc-4.9/libcpp/po/id.po981
-rw-r--r--gcc-4.9/libcpp/po/ja.po964
-rw-r--r--gcc-4.9/libcpp/po/nl.po978
-rw-r--r--gcc-4.9/libcpp/po/pt_BR.po915
-rw-r--r--gcc-4.9/libcpp/po/ru.po953
-rw-r--r--gcc-4.9/libcpp/po/sr.po912
-rw-r--r--gcc-4.9/libcpp/po/sv.po912
-rw-r--r--gcc-4.9/libcpp/po/tr.po980
-rw-r--r--gcc-4.9/libcpp/po/uk.po976
-rw-r--r--gcc-4.9/libcpp/po/vi.po957
-rw-r--r--gcc-4.9/libcpp/po/zh_CN.po984
-rw-r--r--gcc-4.9/libcpp/po/zh_TW.po922
-rw-r--r--gcc-4.9/libcpp/symtab.c362
-rw-r--r--gcc-4.9/libcpp/system.h444
-rw-r--r--gcc-4.9/libcpp/traditional.c1169
-rw-r--r--gcc-4.9/libcpp/ucnid.h4524
-rw-r--r--gcc-4.9/libcpp/ucnid.tab243
54 files changed, 107466 insertions, 0 deletions
diff --git a/gcc-4.9/libcpp/ChangeLog b/gcc-4.9/libcpp/ChangeLog
new file mode 100644
index 000000000..3a6343415
--- /dev/null
+++ b/gcc-4.9/libcpp/ChangeLog
@@ -0,0 +1,3371 @@
+2014-02-24 Walter Lee <walt@tilera.com>
+
+ * configure.ac: Change "tilepro" triplet to "tilepro*".
+ * configure: Regenerate.
+
+2014-02-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/58844
+ * macro.c (enter_macro_context): Only push
+ macro_real_token_count (macro) tokens rather than
+ macro->count tokens, regardless of
+ CPP_OPTION (pfile, track-macro-expansion).
+
+2014-02-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/56824
+ * line-map.c (get_combined_adhoc_loc, linemap_get_expansion_line,
+ linemap_get_expansion_filename, linemap_location_in_system_header_p,
+ linemap_location_from_macro_expansion_p,
+ linemap_macro_loc_to_spelling_point, linemap_macro_loc_to_def_point,
+ linemap_macro_loc_to_exp_point, linemap_expand_location): Fix
+ formatting.
+ (linemap_compare_locations): Look through adhoc locations for both
+ l0 and l1.
+
+2014-01-23 Dodji Seketeli <dodji@redhat.com>
+
+ PR PR preprocessor/58580
+ * include/line-map.h (linemap_get_file_highest_location): Declare
+ new function.
+ * line-map.c (linemap_get_file_highest_location): Define it.
+
+2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
+
+ Update copyright years
+
+2013-12-09 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/55715
+ * expr.c (num_binary_op): Implement subtraction directly rather
+ than with negation and falling through into addition case.
+
+2013-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * lex.c (search_line_fast): Correct for little endian.
+
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * ucnid.tab: Add C11 and C11NOSTART data.
+ * makeucnid.c (digit): Rename enum value to N99.
+ (C11, N11, all_languages): New enum values.
+ (NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
+ (flags, decomp, combining_value): Use NUM_CODE_POINTS as array
+ size.
+ (decomp): Use unsigned int as element type.
+ (all_decomp): New array.
+ (read_ucnid): Handle C11 and C11NOSTART. Use MAX_CODE_POINT.
+ (read_table): Use MAX_CODE_POINT. Store all decompositions in
+ all_decomp.
+ (read_derived): Use MAX_CODE_POINT.
+ (write_table): Use NUM_CODE_POINTS. Print N99, C11 and N11
+ flags. Print whole array variable declaration rather than just
+ array contents.
+ (char_id_valid, write_context_switch): New functions.
+ (main): Call write_context_switch.
+ * ucnid.h: Regenerate.
+ * include/cpplib.h (struct cpp_options): Add c11_identifiers.
+ * init.c (struct lang_flags): Add c11_identifiers.
+ (cpp_set_lang): Set c11_identifiers option from selected language.
+ * internal.h (struct normalize_state): Document "previous" as
+ previous starter character.
+ (NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
+ * charset.c (DIG): Rename enum value to N99.
+ (C11, N11): New enum values.
+ (struct ucnrange): Give name to struct. Use short for flags and
+ unsigned int for end of range. Include ucnid.h for whole variable
+ declaration.
+ (ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
+ Allow for C11 in determining valid characters and valid start
+ characters. Use check_nfc for non-Hangul context-dependent
+ checks. Only store starter characters in nst->previous.
+ (_cpp_valid_ucn): Pass new argument to
+ NORMALIZE_STATE_UPDATE_IDNUM.
+ * lex.c (lex_identifier): Pass new argument to
+ NORMALIZE_STATE_UPDATE_IDNUM. Call NORMALIZE_STATE_UPDATE_IDNUM
+ after initial non-UCN part of identifier.
+ (lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.
+
+2013-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * ucnid.tab: Mark C99 digits as [C99DIG].
+ * makeucnid.c (read_ucnid): Handle [C99DIG].
+ (read_table): Don't check for digit characters.
+ * ucnid.h: Regenerate.
+
+2013-11-06 Tobias Burnus <burnus@net-b.de>
+
+ * macro.c (_cpp_builtin_macro_text): Correct
+ wording of two warnings.
+
+2013-11-05 Tobias Burnus <burnus@net-b.de>
+
+ * include/cpplib.h (CPP_W_DATE_TIME): Added.
+ (cpp_options): Add warn_date_time.
+ * init.c (cpp_create_reader): Init it.
+ * macro.c (_cpp_builtin_macro_text): Warn when
+ __DATE__/__TIME__/__TIMESTAMP__ is used.
+
+2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++14 digit separators.
+ * include/cpplib.h (cpp_options): Add digit_separators flag.
+ * internal.h (DIGIT_SEP(c)): New macro.
+ * expr.c (cpp_classify_number): Check improper placement of digit sep;
+ (cpp_interpret_integer): Skip over digit separators.
+ * init.c (lang_flags): Add digit_separators flag; (lang_defaults): Add
+ digit separator flags per language; (cpp_set_lang): Set
+ digit_separators
+ * lex.c (lex_number): Add digits separator to allowable characters for
+ C++14.
+
+2013-10-15 David Malcolm <dmalcolm@redhat.com>
+
+ * Makefile.in (PICFLAG): New.
+ (ALL_CFLAGS): Add PICFLAG.
+ (ALL_CXXFLAGS): Likewise.
+ * configure.ac: Add --enable-host-shared, setting up new
+ PICFLAG variable.
+ * configure: Regenerate.
+
+2013-08-07 Richard Earnshaw <rearnsha@arm.com>
+
+ * configure.ac: Set need_64bit_hwint for all arm targets.
+ * configure: Regenerated.
+
+2013-07-20 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/57620
+ * lex.c (lex_raw_string): Undo phase1 and phase2 transformations
+ between R" and final " rather than only in between R"del( and )del".
+
+2013-07-10 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/57824
+ * lex.c (lex_raw_string): Allow reading new-lines if
+ in_deferred_pragma or if parsing_args and there is still
+ data in the current buffer.
+
+ * include/cpplib.h (cpp_token_val_index): Change parameter type to
+ const cpp_token *.
+ * lex.c (cpp_token_val_index): Likewise.
+
+ PR preprocessor/57757
+ * lex.c (cpp_avoid_paste): Avoid pasting CPP_{,W,UTF8}STRING
+ or CPP_STRING{16,32} with CPP_NAME or SPELL_LITERAL token that
+ starts if a-zA-Z_.
+
+2013-06-28 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ * lex.c (lex_raw_string(), lex_string()): Constrain suffixes treated
+ as concatenated literal and macro to just the patterns found in
+ inttypes.h; (is_macro()): New.
+
+2013-06-24 Dehao Chen <dehao@google.com>
+
+ * files.c (_cpp_stack_include): Fix the highest_location when header
+ file is guarded by #ifndef and is included twice.
+
+2013-04-28 Jakub Jelinek <jakub@redhat.com>
+
+ N3472 binary constants
+ * include/cpplib.h (struct cpp_options): Fix a typo in user_literals
+ field comment. Add binary_constants field.
+ * init.c (struct lang_flags): Add binary_constants field.
+ (lang_defaults): Add bin_cst column to the table.
+ (cpp_set_lang): Initialize CPP_OPTION (pfile, binary_constants).
+ * expr.c (cpp_classify_number): Talk about C++11 instead of C++0x
+ in diagnostics. Accept binary constants if
+ CPP_OPTION (pfile, binary_constants) even when pedantic. Adjust
+ pedwarn message.
+
+2013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUCXX1Y and CLK_CXX1Y.
+ * init.c (lang_defaults): Add defaults for the latter.
+ (cpp_init_builtins): Define __cplusplus as 201300L for the latter.
+ * lex.c (_cpp_lex_direct): Update.
+
+2013-04-03 Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+ PR target/56771
+ * configure.ac: Require 64-bit int for arm*-*-rtems*.
+ * configure: Regenerate.
+
+2013-03-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/56461
+ * internal.h (struct cpp_buffer): Add to_free field.
+ (_cpp_pop_file_buffer): Add third argument.
+ * files.c (_cpp_stack_file): Set buffer->to_free.
+ (_cpp_pop_file_buffer): Add to_free argument. Free to_free
+ if non-NULL, and if equal to file->buffer_start, also clear
+ file->buffer{,_start,_valid}.
+ * directives.c (_cpp_pop_buffer): Pass buffer->to_free
+ to _cpp_pop_file_buffer.
+
+2013-03-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/56461
+ * files.c (_cpp_save_file_entries): Free result at the end.
+ * pch.c (cpp_string_free): New function.
+ (cpp_save_state): Use it in htab_create call.
+ (cpp_write_pch_deps): Free ss->defs. Destroy ss->definedhash.
+
+2013-02-28 Jakub Jelinek <jakub@redhat.com>
+
+ * files.c (_cpp_find_file): If returning early, before storing
+ something to *hash_slot and *hash_slot is NULL, call htab_clear_slot
+ on it. Access *hash_slot using void * type rather than
+ struct file_hash_entry * to avoid aliasing issues.
+
+ * configure.ac: Don't define ENABLE_CHECKING whenever
+ --enable-checking is seen, instead use similar --enable-checking=yes
+ vs. --enable-checking=release default as gcc/ subdir has and
+ define ENABLE_CHECKING if ENABLE_CHECKING is defined in gcc/.
+ Define ENABLE_VALGRIND_CHECKING if requested.
+ * lex.c (new_buff): If ENABLE_VALGRIND_CHECKING, put _cpp_buff
+ struct first in the allocated buffer and result->base after it.
+ (_cpp_free_buff): If ENABLE_VALGRIND_CHECKING, free buff itself
+ instead of buff->base.
+ * config.in: Regenerated.
+ * configure: Regenerated.
+
+2013-02-13 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/55582
+ * lex.c (lex_raw_string): Allow string literal with suffix
+ beginning with 's' to be parsed as a C++11 user-defined literal.
+
+2013-01-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ Update copyright years.
+
+2013-01-04 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR c++/54526 (again)
+ * lex.c (_cpp_lex_direct): In C++11 mode, implement 2.5 p3, bullet 2.
+
+2013-01-03 Marc Glisse <marc.glisse@inria.fr>
+
+ PR bootstrap/50177
+ * line-map.c (get_combined_adhoc_loc): Cast from extern "C" type.
+ (new_linemap): Likewise.
+ (linemap_enter_macro): Likewise.
+
+2012-12-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/55380
+ PR other/54691
+ * files.c (read_file_guts): Allocate extra 16 bytes instead of
+ 1 byte at the end of buf. Pass size + 16 instead of size
+ to _cpp_convert_input.
+ * charset.c (_cpp_convert_input): Reallocate if there aren't
+ at least 16 bytes beyond to.len in the buffer. Clear 16 bytes
+ at to.text + to.len.
+
+2012-11-21 Steve Ellcey <sellcey@mips.com>
+
+ PR pch/55399
+ * files.c (pch_open_file): Fix check for implicit_preinclude.
+
+2012-11-16 Simon Baldwin <simonb@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
+ * files.c (find_file_in_dir): Call maybe_shorter_path() only if
+ canonical_system_headers is set.
+ * init.c (cpp_create_reader): Initialize canonical_system_headers.
+ * configure.ac: Add new --enable-canonical-system-headers.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2012-11-09 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/54413
+ * include/cpplib.h (cpp_interpret_float_suffix): Add cpp_reader* arg.
+ (cpp_interpret_int_suffix): Add cpp_reader* arg.
+ * init.c (cpp_create_reader): Iitialize new flags.
+ * expr.c (interpret_float_suffix): Use new flags.
+ (cpp_interpret_float_suffix): Add cpp_reader* arg.
+ (interpret_int_suffix): Use new flags.
+ (cpp_interpret_int_suffix): Add cpp_reader* arg.
+ (cpp_classify_number): Adjust calls to interpret_x_suffix.
+
+2012-10-23 Ian Bolton <ian.bolton@arm.com>
+ Jim MacArthur <jim.macarthur@arm.com>
+ Marcus Shawcroft <marcus.shawcroft@arm.com>
+ Nigel Stephens <nigel.stephens@arm.com>
+ Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
+ Richard Earnshaw <rearnsha@arm.com>
+ Sofiane Naci <sofiane.naci@arm.com>
+ Stephen Thomas <stephen.thomas@arm.com>
+ Tejas Belagod <tejas.belagod@arm.com>
+ Yufeng Zhang <yufeng.zhang@arm.com>
+
+ * configure.ac: Enable AArch64.
+ * configure: Regenerate.
+
+2012-10-23 Joseph Myers <joseph@codesourcery.com>
+
+ * files.c (struct _cpp_file): Add implicit_preinclude.
+ (pch_open_file): Allow a previously opened implicitly included
+ file.
+ (_cpp_find_file): Add implicit_preinclude argument. Free file and
+ do not call open_file_failed if implicit_preinclude. Store
+ implicit_preinclude value.
+ (_cpp_stack_include, _cpp_fake_include, _cpp_compare_file_date):
+ Update calls to _cpp_find_file.
+ (_cpp_stack_include): Handle IT_DEFAULT.
+ (cpp_push_default_include): New.
+ * include/cpplib.h (cpp_push_default_include): Declare.
+ * init.c (cpp_read_main_file): Update call to _cpp_find_file.
+ * internal.h (enum include_type): Add IT_DEFAULT.
+ (_cpp_find_file): Update prototype.
+
+2012-10-15 Tobias Burnus <burnus@net-b.de>
+
+ * files.c (read_file_guts, _cpp_save_file_entries): Free memory
+ before returning.
+ * lex.c (warn_about_normalization): Ditto.
+ * mkdeps.c (deps_save): Ditto.
+ * pch.c (cpp_valid_state): Ditto.
+
+2012-10-04 Florian Weimer <fweimer@redhat.com>
+
+ * directives.c (do_pragma_warning_or_error): New.
+ (do_pragma_warning): New.
+ (do_pragma_error): New.
+ (_cpp_init_internal_pragmas): Register new pragmas.
+
+2012-09-25 Dehao Chen <dehao@google.com>
+
+ PR middle-end/54704
+ * line-map.c (location_adhoc_data_hash): Fix the hash function.
+
+2012-09-25 Dehao Chen <dehao@google.com>
+
+ PR middle-end/54645
+ * include/line-map.h (location_adhoc_data): Move location_adhoc_data
+ into GC.
+ (location_adhoc_data_map): Likewise.
+ (line_maps): Likewise.
+ (rebuild_location_adhoc_htab): New Function.
+ * line-map.c (+rebuild_location_adhoc_htab): new Funcion.
+ (get_combined_adhoc_loc): Move location_adhoc_data into GC.
+ (location_adhoc_data_fini): Likewise.
+ (linemap_init): Likewise.
+ (location_adhoc_data_init): Remove Function.
+
+2012-09-19 Dehao Chen <dehao@google.com>
+
+ * include/line-map.h (MAX_SOURCE_LOCATION): New value.
+ (location_adhoc_data_fini): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_map): New.
+ (COMBINE_LOCATION_DATA): New.
+ (IS_ADHOC_LOC): New.
+ (expanded_location): New field.
+ (line_maps): New field.
+ * line-map.c (location_adhoc_data): New.
+ (location_adhoc_data_hash): New.
+ (location_adhoc_data_eq): New.
+ (location_adhoc_data_update): New.
+ (get_combined_adhoc_loc): New.
+ (get_data_from_adhoc_loc): New.
+ (get_location_from_adhoc_loc): New.
+ (location_adhoc_data_init): New.
+ (location_adhoc_data_fini): New.
+ (linemap_init): Initialize location_adhoc_data.
+ (linemap_lookup): Change to use new location.
+ (linemap_ordinary_map_lookup): Likewise.
+ (linemap_macro_map_lookup): Likewise.
+ (linemap_macro_map_loc_to_def_point): Likewise.
+ (linemap_macro_map_loc_unwind_toward_spel): Likewise.
+ (linemap_get_expansion_line): Likewise.
+ (linemap_get_expansion_filename): Likewise.
+ (linemap_location_in_system_header_p): Likewise.
+ (linemap_location_from_macro_expansion_p): Likewise.
+ (linemap_macro_loc_to_spelling_point): Likewise.
+ (linemap_macro_loc_to_def_point): Likewise.
+ (linemap_macro_loc_to_exp_point): Likewise.
+ (linemap_resolve_location): Likewise.
+ (linemap_unwind_toward_expansion): Likewise.
+ (linemap_unwind_to_first_non_reserved_loc): Likewise.
+ (linemap_expand_location): Likewise.
+ (linemap_dump_location): Likewise.
+ (linemap_line_start): Likewise.
+
+2012-05-25 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53469
+ * directives.c (do_pragma): Use the virtual location for the
+ pragma token, instead of its spelling location.
+
+2012-08-14 Diego Novillo <dnovillo@google.com>
+
+ Merge from cxx-conversion branch. Configury.
+
+ * Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
+ * configure.ac: Likewise.
+ * configure: Regenerate.
+
+2012-08-14 Lawrence Crowl <crowl@google.com>
+
+ Merge from cxx-conversion branch. New C++ hash table.
+
+ * include/symtab.h (typedef struct ht hash_table): Change the typedef
+ name to cpp_hash_table. Update all users of the typedef.
+
+2012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * include/line-map.h (line_map_macro): Use the "atomic" GTY option
+ for the macro_locations field.
+
+2011-06-19 Uros Bizjak <ubizjak@gmail.com>
+
+ * lex.c (search_line_sse42): Use __builtin_ia32_loaddqu and
+ __builtin_ia32_pcmpestri128 instead of asm.
+
+2012-06-04 Dimitrios Apostolou <jimis@gmx.net>
+
+ * line-map.c (linemap_enter_macro): Don't zero max_column_hint in
+ every macro. This improves performance by reducing the number of
+ reallocations when track-macro-expansion is on.
+
+2012-06-04 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53463
+ * line-map.c (linemap_location_in_system_header_p): For built-in
+ macro tokens, check the first expansion point location that is not
+ for a token coming from a built-in macro.
+
+2012-05-29 Joseph Myers <joseph@codesourcery.com>
+
+ * directives.c: Fix typos.
+ * include/line-map.h: Fix typos.
+ * line-map.c: Fix typos.
+ * macro.c: Fix typos.
+
+2012-05-25 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/53459
+ * lex.c (search_line_fast): Avoid unused local typedefs to simulate
+ a static assertion.
+
+2012-05-29 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/53229
+ * internal.h (cpp_reader::set_invocation_location): Remove.
+ (cpp_reader::about_to_expand_macro_p): New member flag.
+ * directives.c (do_pragma): Remove Kludge as
+ pfile->set_invocation_location is no more.
+ * macro.c (cpp_get_token_1): Do away with the use of
+ cpp_reader::set_invocation_location. Just collect the macro
+ expansion point when we are about to expand the top-most macro.
+ Do not override cpp_reader::about_to_expand_macro_p.
+ This fixes gcc.dg/cpp/paste12.c by making get_token_no_padding
+ properly handle locations of expansion points.
+ (cpp_get_token_with_location): Adjust, as
+ cpp_reader::set_invocation_location is no more.
+ (paste_tokens): Take a virtual location parameter for
+ the LHS of the pasting operator. Use it in diagnostics. Update
+ comments.
+ (paste_all_tokens): Tighten the assert. Propagate the location of
+ the expansion point when no virtual locations are available.
+ Pass the virtual location to paste_tokens.
+ (in_macro_expansion_p): New static function.
+ (enter_macro_context): Set the cpp_reader::about_to_expand_macro_p
+ flag until we really start expanding the macro.
+
+2012-05-16 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/7263
+ * include/cpplib.h (cpp_classify_number): Take a location
+ parameter.
+ * expr.c (SYNTAX_ERROR_AT, SYNTAX_ERROR2_AT): New diagnostic
+ macros that take a location parameter.
+ (cpp_classify_number): Take a (virtual) location parameter. Use
+ it for diagnostics. Adjust comments.
+ (eval_token): Take a location parameter. Pass it to
+ cpp_classify_number and to diagnostic routines.
+ (_cpp_parse_expr): Use virtual locations of tokens when parsing
+ expressions. Pass a virtual location to eval_token and to
+ diagnostic routines.
+
+2012-05-10 Tristan Gingold <gingold@adacore.com>
+
+ * expr.c (interpret_float_suffix): Add a guard.
+
+2012-05-02 Dodji Seketeli <dodji@redhat.com>
+
+ Properly initialize cpp_context in destringize_and_run
+ * directives.c (destringize_and_run): Properly initialize the new
+ context.
+ * macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
+ the initial base context, which has the same life time as the
+ current instance of cpp_file.
+
+2012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
+ Dodji Seketeli <dodji@seketeli.org>
+
+ PR c++/52974
+ * libcpp/files.c (maybe_shorter_path): New.
+ (find_file_in_dir): Use it.
+
+2012-04-30 Dodji Seketeli <dodji@redhat.com>
+
+ Switch -ftrack-macro-expansion=2 on by default.
+ * init.c (cpp_create_reader): Switch -ftrack-macro-expansion=2 on
+ by default. Add comments.
+
+ Strip "<built-in>" loc from displayed expansion context
+ * include/line-map.h (linemap_unwind_toward_expansion): Fix typo
+ in comment.
+ (linemap_unwind_to_first_non_reserved_loc): Declare new function.
+ * line-map.c (linemap_unwind_to_first_non_reserved_loc): Define
+ new function.
+
+ Fix expansion point loc for macro-like tokens
+ * macro.c (macro_of_context): New static function.
+ (_cpp_push_token_context, push_extended_tokens_context): If the
+ macro argument is NULL, it means we are continuing the expansion
+ of the current macro, if any. Update comments.
+ (_cpp_pop_context): Re-enable expansion of the macro only when we
+ are really out of the context of the current expansion.
+
+ Fix token pasting with -ftrack-macro-expansion
+ * macro.c (paste_all_tokens): Put the token resulting from pasting
+ into an extended token context with -ftrack-macro-location is in
+ effect.
+
+ Fix cpp_sys_macro_p with -ftrack-macro-expansion
+ * macro.c (cpp_sys_macro_p): Support -ftrack-macro-expansion.
+
+2012-04-29 Dodji Seketeli <dodji@redhat.com>
+
+ * lex.c (lex_raw_string): Change C++ style comments into C style
+ comments.
+ (lex_string): Likewise.
+
+2012-04-27 Ollie Wild <aaw@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add new field,
+ warn_literal_suffix.
+ (CPP_W_LITERAL_SUFFIX): New enum.
+ * init.c (cpp_create_reader): Default initialization of
+ warn_literal_suffix.
+ * lex.c (lex_raw_string): Treat user-defined literals which don't
+ begin with '_' as separate tokens and produce a warning.
+ (lex_string): Ditto.
+
+2012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * line-map.c (linemap_resolve_location): Synchronize comments with
+ those in line-map.h.
+ * include/line-map.h (linemap_resolve_location): Fix spelling in
+ comment.
+
+2012-03-22 Richard Earnshaw <rearnsha@arm.com>
+
+ * lex.c (search_line_fast): Provide Neon-optimized version for ARM.
+
+2012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lex.c: Remove Solaris 8 reference.
+
+2012-02-14 Walter Lee <walt@tilera.com>
+
+ * configure.ac: Require 64-bit hwint for tilegx and tilepro.
+ * configure: Regenerate.
+
+2012-01-09 Richard Guenther <rguenther@suse.de>
+
+ * macro.c (_cpp_builtin_macro_text): Remove unused variable map.
+
+2012-01-09 Gary Funck <gary@intrepid.com>
+
+ PR preprocessor/33919
+ * files.c (_cpp_get_file_name): New. Implement file name
+ access function.
+ * internal.h (_cpp_get_file_name): New prototype.
+ * macro.c (_cpp_builtin_macro_text): Call _cpp_get_file_name()
+ to use pfile->main_file in lieu of traversing INCLUDED_FROM chain.
+
+2012-01-03 Olivier Hainque <hainque@adacore.com>
+
+ * system.h: Prior to #define, #undef fopen and freopen unconditionally.
+
+2011-12-20 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (CLK_GNUC1X): Change to CLK_GNUC11.
+ (CLK_STDC1X): Change to CLK_STDC11.
+ * init.c (lang_defaults): Update comments.
+ (cpp_init_builtins): Update language tests. Use 201112L for C11
+ __STDC_VERSION__.
+
+2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
+
+ * configure: Regenerate.
+
+2011-12-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/50237
+ * internal.h (_cpp_init_lexer): New prototype.
+ * init.c (init_library): Call it.
+ * lex.c (init_vectorized_lexer): Remove constructor attribute,
+ add inline keyword.
+ (HAVE_init_vectorized_lexer): Define.
+ (_cpp_init_lexer): New function.
+
+2011-12-03 Dodji Seketeli <dodji@redhat.com>
+
+ * macro.c (tokens_buff_remove_last_token)
+ (tokens_buff_put_token_to): Add an 'inline' function specifier to
+ the prototype.
+
+2011-11-22 Diego Novillo <dnovillo@google.com>
+
+ * include/line-map.h (linemap_dump): Declare.
+ (line_table_dump): Declare.
+ * line-map.c (linemap_dump): New.
+ (line_table_dump): New.
+
+2011-11-21 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ PR c++/50958
+ * expr.c (cpp_userdef_char_remove_type): Fix typo.
+
+2011-11-03 Michael Matz <matz@suse.de>
+
+ PR bootstrap/50857
+ * configure.ac: Check for -fno-exceptions -fno-rtti.
+ * configure: Regenerate.
+ * Makefile.in (NOEXCEPTION_FLAGS): New flag.
+ (ALL_CXXFLAGS): Use it.
+
+2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * internal.h (uxstrdup, ustrchr): Return const unsigned char *.
+
+2011-11-02 Jason Merrill <jason@redhat.com>
+
+ PR c++/50810
+ * configure.ac: Add -Wno-narrowing to warning options.
+
+2011-10-31 Jason Merrill <jason@redhat.com>
+
+ PR libstdc++/1773
+ * init.c (cpp_init_builtins): Set __cplusplus for C++11.
+
+ PR c++/50920
+ * include/cpplib.h (enum c_lang): Rename CLK_CXX0X to CLK_CXX11,
+ CLK_GNUCXX0X to CLK_GNUCXX11.
+
+2011-10-26 Ed Smith-Rowland <3dw4rd@verizon.net>
+
+ Implement C++11 user-defined literals.
+ * expr.c: (cpp_interpret_float_suffix, cpp_interpret_int_suffix,
+ cpp_userdef_string_remove_type, cpp_userdef_string_add_type,
+ cpp_userdef_char_remove_type, cpp_userdef_char_add_type,
+ cpp_userdef_string_p, cpp_userdef_char_p, cpp_get_userdef_suffix): New.
+ (cpp_classify_number): Classify unrecognized tokens as user-defined
+ literals.
+ * include/cpplib.h: Add new tokens for user-defined literals.
+ * init.c: Add new preprocessor flag (cxx11).
+ * lex.c: (lex_string, lex_raw_string): Handle user-defined literals
+ including concatenation and promotion with suffixes.
+
+2011-10-24 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_macro_map_lookup): Fix logic.
+
+2011-10-24 Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (linemap_expand_location): Take a line table
+ parameter. Update comment.
+ (linemap_resolve_location): Update comment.
+ (linemap_expand_location_full): Remove.
+ * line-map.c (linemap_resolve_location): Handle reserved
+ locations; return a NULL map in those cases.
+ (linemap_expand_location): If location is reserved, return a
+ zeroed expanded location. Update comment. Take a line table to
+ assert that the function takes non-virtual locations only.
+ (linemap_expand_location_full): remove.
+ (linemap_dump_location): Handle the fact that
+ linemap_resolve_location can return NULL line maps when the
+ location resolves to a reserved location.
+
+ * line-map.c (linemap_macro_map_lookup): Fix logic.
+
+2011-10-22 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50778
+ * include/internal.h (_cpp_remaining_tokens_num_in_context): Take the
+ context to act upon.
+ * lex.c (_cpp_remaining_tokens_num_in_context): Likewise. Update
+ comment.
+ (cpp_token_from_context_at): Likewise.
+ (cpp_peek_token): Use the context to peek tokens from.
+
+2011-10-20 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50801
+ * lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
+ number of tokens.
+
+2011-10-18 Dodji Seketeli <dodji@redhat.com>
+
+ PR bootstrap/50760
+ * include/line-map.h (struct linemap_stats): Change the type of
+ the members from size_t to long.
+ * macro.c (macro_arg_token_iter_init): Unconditionally initialize
+ iter->location_ptr.
+
+2011-10-17 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_macro_map_loc_to_exp_point): Avoid setting a
+ variable without using it if ENABLE_CHECKING is not defined. Mark
+ the LOCATION parameter as being unused.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (struct line_maps::alloced_size_for_request):
+ New member.
+ * line-map.c (new_linemap): Use set->alloced_size_for_request to
+ get the actual allocated size of line maps.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.h (struct linemap_stats): Declare new struct.
+ (linemap_get_statistics): Declare ...
+ * line-map.c (linemap_get_statistics): ... new function.
+ * macro.c (num_expanded_macros_counter, num_macro_tokens_counter):
+ Declare new counters.
+ (enter_macro_context, replace_args): Update
+ num_macro_tokens_counter.
+ (cpp_get_token_1): Update num_expanded_macros_counter.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/cpplib.h (struct cpp_options)<debug>: New struct member.
+ * include/line-map.h (linemap_dump_location): Declare ...
+ * line-map.c (linemap_dump_location): ... new function.
+
+2011-10-15 Tom Tromey <tromey@redhat.com>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/cpplib.h (struct cpp_options)<track_macro_expansion>:
+ New option.
+ * internal.h (struct macro_context): New struct.
+ (enum context_tokens_kind): New enum.
+ (struct cpp_context)<tokens_kind>: New member of type enum
+ context_tokens_kind.
+ (struct cpp_context)<macro>: Remove this. Replace it with an enum
+ of macro and macro_context.
+ (struct cpp_context)<direct_p>: Remove.
+ (_cpp_remaining_tokens_num_in_context): Declare new function.
+ * directives.c (destringize_and_run): Adjust.
+ * lex.c (_cpp_remaining_tokens_num_in_context)
+ (_cpp_token_from_context_at): Define new functions
+ (cpp_peek_token): Use them.
+ * init.c (cpp_create_reader): Initialize the base context to zero.
+ (_cpp_token_from_context_at): Define new static function.
+ (cpp_peek_token): Use new _cpp_remaining_tokens_num_in_context and
+ _cpp_token_from_context_at.
+ * macro.c (struct macro_arg)<virt_locs, expanded_virt_locs>: New
+ members.
+ (enum macro_arg_token_kind): New enum.
+ (struct macro_arg_token_iter): New struct.
+ (maybe_adjust_loc_for_trad_cpp, push_extended_tokens_context)
+ (alloc_expanded_arg_mem, ensure_expanded_arg_room)
+ (delete_macro_args, set_arg_token, get_arg_token_location)
+ (arg_token_ptr_at, macro_arg_token_iter_init)
+ (macro_arg_token_iter_get_token)
+ (macro_arg_token_iter_get_location, macro_arg_token_iter_forward)
+ (expanded_token_index, tokens_buff_new, tokens_buff_count)
+ (tokens_buff_last_token_ptr, tokens_buff_put_token_to)
+ (tokens_buff_add_token, tokens_buff_remove_last_token)
+ (reached_end_of_context, consume_next_token_from_context): New
+ static functions.
+ (cpp_get_token_1): New static function. Split and extended from
+ cpp_get_token. Use reached_end_of_context and
+ consume_next_token_from_context. Unify its return point. Move
+ the location tweaking from cpp_get_token_with_location in here.
+ (cpp_get_token): Use cpp_get_token_1
+ (stringify_arg): Use the new arg_token_at.
+ (paste_all_tokens): Support tokens coming from extended tokens
+ contexts.
+ (collect_args): Return the number of collected arguments, by
+ parameter. Store virtual locations of tokens that constitute the
+ collected args.
+ (funlike_invocation_p): Return the number of collected arguments,
+ by parameter.
+ (enter_macro_context): Add a parameter for macro expansion point.
+ Pass it to replace_args and to the "used" cpp callback. Get the
+ number of function-like macro arguments from funlike_invocation_p,
+ pass it to the new delete_macro_args to free the memory used by
+ macro args. When -ftrack-macro-expansion is in effect, for macros
+ that have no arguments, create a macro map for the macro expansion
+ and use it to allocate proper virtual locations for tokens
+ resulting from the expansion. Push an extended tokens context
+ containing the tokens resulting from macro expansion and their
+ virtual locations.
+ (replace_args): Rename the different variables named 'count' into
+ variables with more meaningful names. Create a macro map;
+ allocate virtual locations of tokens resulting from this
+ expansion. Use macro_arg_token_iter to iterate over tokens of a
+ given macro. Handle the case of the argument of
+ -ftrack-macro-expansion being < 2. Don't free macro arguments
+ memory resulting from expand_arg here, as these are freed by the
+ caller of replace_arg using delete_macro_args now. Push extended
+ token context.
+ (next_context, push_ptoken_context, _cpp_push_token_context)
+ (_cpp_push_text_context): Properly initialize the context.
+ (expand_arg): Use the new alloc_expanded_arg_mem,
+ push_extended_tokens_context, cpp_get_token_1, and set_arg_token.
+ (_cpp_pop_context): Really free the memory held by the context.
+ Handle freeing memory used by extended tokens contexts.
+ (cpp_get_token_with_location): Use cpp_get_token_1.
+ (cpp_sys_macro_p): Adjust.
+ (_cpp_backup_tokens): Support the new kinds of token contexts.
+ * traditional.c (recursive_macro): Adjust.
+
+2011-10-15 Tom Tromey <tromey@redhat>
+ Dodji Seketeli <dodji@redhat.com>
+
+ * include/line-map.h (enum lc_reason)<LC_ENTER_MACRO>: New enum
+ member.
+ (MAX_SOURCE_LOCATION): New constant.
+ (struct line_map_ordinary, struct line_map_macro): New structs.
+ (struct line_map): Turn this into a union of the two above. Add
+ comments.
+ (struct maps_info): New struct.
+ (struct line_maps)<info_ordinary, info_macro>: Two new fields.
+ These now carry the map information that was previously scattered
+ in struct line_maps.
+ (struct map_info::allocated): Fix comment.
+ (MAP_START_LOCATION, ORDINARY_MAP_FILE_NAME)
+ (ORDINARY_MAP_STARTING_LINE_NUMBER)
+ (ORDINARY_MAP_INCLUDER_FILE_INDEX)
+ (ORDINARY_MAP_IN_SYSTEM_HEADER_P)
+ (ORDINARY_MAP_NUMBER_OF_COLUMN_BITS, MACRO_MAP_MACRO)
+ (MACRO_MAP_NUM_MACRO_TOKENS MACRO_MAP_LOCATIONS)
+ (MACRO_MAP_EXPANSION_POINT_LOCATION)
+ (LOCATION_POSSIBLY_IN_MACRO_MAP_P, LINEMAPS_MAP_INFO)
+ (LINEMAPS_MAPS, LINEMAPS_ALLOCATE, LINEMAPS_USED, LINEMAPS_CACHE)
+ (LINEMAPS_LAST_MAP, LINEMAPS_LAST_ALLOCATED_MAP)
+ (LINEMAPS_ORDINARY_MAPS, LINEMAPS_ORDINARY_ALLOCATED)
+ (LINEMAPS_ORDINARY_USED, LINEMAPS_ORDINARY_CACHE)
+ (LINEMAPS_LAST_ORDINARY_MAP, LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP)
+ (LINEMAPS_MACRO_MAPS, LINEMAPS_MACRO_ALLOCATED)
+ (LINEMAPS_MACRO_USED, LINEMAPS_MACRO_CACHE)
+ (LINEMAPS_LAST_MACRO_MAP, LINEMAPS_LAST_ALLOCATED_MACRO_MAP)
+ (LINEMAPS_MAP_AT, LINEMAPS_ORDINARY_MAP_AT)
+ (LINEMAPS_MACRO_MAP_AT): New accessors for ordinary and macro map
+ information.
+ (linemap_check_ordinary, linemap_assert)
+ (linemap_location_before_p): New macros.
+ (linemap_position_for_line_and_column)
+ (linemap_tracks_macro_expansion_locs_p, linemap_add_macro_token)
+ (linemap_macro_expansion_map_p)
+ (linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_once)
+ (linemap_macro_map_loc_to_exp_point, linemap_step_out_once)
+ (linemap_get_source_line linemap_get_source_column)
+ (linemap_map_get_macro_name, linemap_get_file_path)
+ (linemap_location_in_system_header_p)
+ (linemap_location_from_macro_expansion_p): Declare new functions.
+ (SOURCE_LINE, SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION)
+ (LINEMAP_FILE, LINEMAP_LINE, LINEMAP_SYSP): Assert that this
+ accessors act on ordinary maps only.
+ (INCLUDED_FROM): Return NULL for main files; use the new
+ accessors.
+ (LINEMAP_POSITION_FOR_COLUMN): Use the new accessors.
+ (struct expanded_location): Move here from gcc/input.h
+ (linemap_resolve_location, linemap_expand_location)
+ (linemap_expand_location_full): Declare new functions.
+ * line-map.c: Include cpplib.h, internal.h
+ (linemap_enter_macro, linemap_add_macro_token)
+ (linemap_get_expansion_line, linemap_get_expansion_filename): New
+ functions that are private to libcpp.
+ (linemap_assert): New macro.
+ (linemap_macro_loc_to_exp_point, linemap_macro_loc_to_exp_point)
+ (linemap_macro_loc_unwind, linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_toward_spelling)
+ (linemap_macro_map_loc_to_exp_point)
+ (first_map_in_common_1, first_map_in_common): New static
+ functions.
+ (new_linemap): Define new static functions. Extracted and
+ enhanced from ...
+ (linemap_add): ... here. Use linemap_assert in lieu of abort
+ previously.
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_add_macro_token, linemap_macro_expansion_map_p)
+ (linemap_check_ordinary, linemap_macro_map_loc_to_exp_point)
+ (linemap_macro_map_loc_to_def_point)
+ (linemap_macro_map_loc_unwind_once)
+ (linemap_step_out_once, linemap_map_get_index)
+ (linemap_get_source_line,linemap_get_source_column)
+ (linemap_get_file_path, linemap_map_get_macro_name)
+ (linemap_location_in_system_header_p)
+ (linemap_location_originated_from_system_header_p)
+ (linemap_location_from_macro_expansion_p)
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_resolve_location, linemap_expand_location)
+ (linemap_expand_location_full)
+ (linemap_tracks_macro_expansion_locs_p)
+ (linemap_position_for_line_and_column, linemap_compare_locations):
+ Define new public functions.
+ (linemap_init): Initialize ordinary and macro maps information in
+ the map set.
+ (linemap_check_files_exited): Use the new accessors.
+ (linemap_free): Remove this dead code.
+ (linemap_line_start): Assert this uses an ordinary map. Adjust to
+ use the new ordinary map accessors and data structures. Don't
+ overflow past the lowest possible macro token's location.
+ (linemap_position_for_column): Assert the ordinary maps of the map
+ set are really ordinary. Use ordinary map accessors.
+ (linemap_lookup): Keep the same logic but generalize to allow
+ lookup of both ordinary and macro maps. Do not crash when called
+ with an empty line table.
+ * directives-only.c (_cpp_preprocess_dir_only): Adjust to use the
+ new API of line-map.h.
+ * directives.c (start_directive, do_line, do_linemarker)
+ (do_linemarker): Likewise.
+ * files.c (_cpp_find_file, _cpp_stack_include, open_file_failed)
+ (make_cpp_dir, cpp_make_system_header): Likewise.
+ * init.c (cpp_read_main_file): Likewise.
+ * internal.h (CPP_INCREMENT_LINE): Likewise.
+ (linemap_enter_macro, linemap_add_macro_token)
+ (linemap_get_expansion_line, linemap_get_expansion_filename): New
+ functions private to libcpp.
+ * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment)
+ (skip_line_comment, skip_whitespace, lex_raw_string)
+ (_cpp_lex_direct): Likewise.
+ * macro.c (_cpp_builtin_macro_text): Likewise.
+ (_cpp_aligned_alloc): Initialize the new name member of the macro.
+ * traditional.c (copy_comment, _cpp_scan_out_logical_line):
+ Likewise.
+ * errors.c (cpp_diagnostic): Adjust to new linemap API.
+
+2011-08-28 Dodji Seketeli <dodji@redhat.com>
+
+ * line-map.c (linemap_add): Assert that reason must not be
+ LC_RENAME when called for the first time on a "main input file".
+
+2011-08-22 Gabriel Charette <gchare@google.com>
+
+ * init.c (cpp_create_reader): Inititalize forced_token_location_p.
+ * internal.h (struct cpp_reader): Add field forced_token_location_p.
+ * lex.c (_cpp_lex_direct): Use forced_token_location_p.
+ (cpp_force_token_locations): New.
+ (cpp_stop_forcing_token_locations): New.
+
+2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR libstdc++/1773
+ * init.c (cpp_init_builtins): Define __cplusplus 19971L.
+
+2011-08-18 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Fix typo.
+
+2011-08-18 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Add rliterals.
+ * init.c (struct lang_flags, lang_defaults): Add rliterals.
+ (cpp_set_lang): Set rliterals option.
+ (cpp_init_builtins): Define __STDC_UTF_16__ and __STDC_UTF_32__.
+ * lex.c (_cpp_lex_direct): Only accept raw strings if rliterals.
+
+2011-08-15 Gabriel Charette <gchare@google.com>
+
+ * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Remove.
+ Update all users to use linemap_position_for_column instead.
+
+2011-07-28 Gabriel Charette <gchare@google.com>
+
+ * include/line-map.h (struct line_maps):
+ Remove unused field last_listed. Update all users.
+
+2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Set need_64bit_hwint to yes for x86 targets.
+ * configure: Regenerated.
+
+2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * system.h [__cplusplus]: Wrap C function declarations in extern "C".
+
+2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/49794
+ * configure.ac: Test AM_ICONV with CXX.
+ * configure: Regenerate.
+ * system.h (HAVE_DESIGNATED_INITIALIZERS): Never define for C++.
+
+2011-07-15 Dodji Seketeli <dodji@redhat.com>
+
+ * directives.c (struct if_stack): Use source_location as type
+ here.
+ * include/cpplib.h (struct cpp_callbacks)<include, define, undef,
+ indent, def_pragma, used_define, used_undef>: Properly use
+ source_location as parameter type, rather than unsigned int.
+
+2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/39150
+ * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9]
+ like i[34567]86-*-solaris2.1[0-9]*.
+ * configure: Regenerate.
+
+2011-06-16 Jason Merrill <jason@redhat.com>
+
+ PR c++/45399
+ * lex.c (lex_raw_string): Don't check for embedded NUL.
+
+2011-06-06 Dodji Seketeli <dodji@redhat.com>
+
+ PR preprocessor/48532
+ * directives.c (do_pragma): Don't forget the invocation location
+ when parsing the pragma name of a namespaced pragma directive.
+
+2011-05-29 John Tytgat <John.Tytgat@aaug.net>
+
+ * files.c (read_file_guts): Add test on non-zero value of S_ISREG.
+
+2011-05-22 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/49104
+ * lex.c (init_vectorized_lexer): Do not set "minimum" when __3dNOW_A__
+ is defined. Check bit_MMXEXT and bit_CMOV to use search_line_mmx.
+
+2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * system.h (ENUM_BITFIELD): Remove.
+
+2011-04-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/48740
+ * lex.c (lex_raw_string): When raw string ends with
+ ??) followed by raw prefix and ", ensure it is preprocessed
+ with ??) rather than ??].
+
+2011-04-20 Jim Meyering <meyering@redhat.com>
+
+ * files.c (destroy_cpp_file): Remove useless if-before-free.
+ * init.c (cpp_destroy): Likewise.
+ * macro.c (replace_args): Likewise.
+ * pch.c (cpp_valid_state): Likewise.
+
+2011-03-25 Kai Tietz <ktietz@redhat.com>
+
+ * files.c (file_hash_eq): Use filename_cmp
+ instead of strcmp.
+ (nonexistent_file_hash_eq): Likewise.
+ (remap_filename): Likewise.
+ Handle absolute DOS-path,
+ (append_file_to_dir): Check for IS_DIR_SEPARATOR
+ instead of slash.
+ (read_name_map): Likewise.
+ * linemap.c (linemap_add): Use filename_cmp
+ instead of strcmp.
+ * mkdeps.c (apply_vpath): Use filename_ncmp
+ instead of strncmp.
+ (deps_restore): Use filename_cmp instead of
+ strcmp.
+ * init.c (read_original_directory): Use
+ IS_DIR_SEPARATOR instead of checking for slash.
+
+2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ PR preprocessor/48192
+ * directives.c (do_ifdef): Do not consider conditional macros as
+ being defined.
+ (do_ifndef): Ditto.
+ * expr.c (parse_defined): Ditto.
+
+2011-03-18 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/45381
+ * lex.c [ALTIVEC] (search_line_fast): Require gcc version 4.5.
+
+2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/39213
+ * directives.c (end_directive): Call _cpp_remove_overlay for deferred
+ pragmas as well in traditional mode.
+
+2010-11-17 Ian Lance Taylor <iant@google.com>
+
+ PR bootstrap/45538
+ * configure.ac: Use AC_USE_SYSTEM_EXTENSIONS. Remove switch of
+ AC_LANG based on ENABLE_BUILD_WITH_CXX.
+
+2010-11-16 Kai Tietz <kai.tietz@onevision.com>
+
+ PR preprocessor/17349
+ * lex.c (save_comment): Handle in argument passing c++
+ comments special.
+
+2010-11-02 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Use AC_SYS_LARGEFILE.
+ * configure: Rebuild.
+ * config.in: Rebuild.
+
+2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
+
+ * line-map.h (source_location): Remove obsolete comment
+ mentioning location_s.
+
+2010-09-29 Kai Tietz <kai.tietz@onevision.com>
+
+ PR preprocessor/45362
+ * directives.c (cpp_pop_definition): Make static.
+ (do_pragma_push_macro): Reworked to store text
+ definition.
+ (do_pragma_pop_macro): Add free text definition.
+ (cpp_push_definition): Removed.
+ * include/cpplib.h (cpp_push_definition): Removed.
+ (cpp_pop_definition): Likewise.
+ * internal.h (def_pragma_macro): Remove member 'value'
+ and add new members 'definition', 'line',
+ 'syshdr', 'sued' and 'is_undef'.
+ * pch.c (_cpp_restore_pushed_macros): Rework to work
+ on text definition and store additional macro flags.
+ (_cpp_save_pushed_macros): Likewise.
+
+2010-09-29 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (cpp_options): Rename warn_deprecated,
+ warn_traditional, warn_long_long and pedantic.
+ * directives.c (directive_diagnostics, _cpp_handle_directive):
+ Update names of cpp_options members.
+ * expr.c (cpp_classify_number, eval_token): Update names of
+ cpp_options members.
+ * init.c (cpp_create_reader, post_options): Update names of
+ cpp_options members.
+ * internal.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Update names of
+ cpp_options members.
+ * macro.c (parse_params): Update names of cpp_options members.
+
+2010-09-15 Ian Lance Taylor <iant@google.com>
+
+ * init.c: Fix type name in comment.
+
+2010-08-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/45457
+ * expr.c (parse_defined): Call pfile->cb.user_builtin_macro hook if
+ needed.
+ * directives.c (do_ifdef, do_ifndef): Likewise.
+
+2010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * system.h [HAVE_INTTYPES_H]: Include inttypes.h.
+
+2010-08-24 Richard Henderson <rth@redhat.com>
+
+ PR bootstrap/45376
+ * configure.ac (HAVE_SSE4): New check.
+ * configure, config.in: Rebuild.
+ * lex.c (search_line_sse42): Omit if !HAVE_SSE4.
+
+2010-08-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * lex.c [__sun__ && __svr4__]: Disable init_vectorized_lexer
+ etc. on Solaris 2/x86.
+
+2010-08-21 Richard Henderson <rth@redhat.com>
+ Andi Kleen <ak@linux.intel.com>
+ David S. Miller <davem@davemloft.net>
+
+ * configure.ac (AC_C_BIGENDIAN, AC_TYPE_UINTPTR_T): New tests.
+ (ssize_t): Check via AC_TYPE_SSIZE_T instead of AC_CHECK_TYPE.
+ (ptrdiff_t): Check via AC_CHECK_TYPE.
+ * config.in, configure: Rebuild.
+ * system.h: Include stdint.h, if available.
+ * lex.c (WORDS_BIGENDIAN): Provide default.
+ (acc_char_mask_misalign, acc_char_replicate, acc_char_cmp,
+ acc_char_index, search_line_acc_char, repl_chars, search_line_mmx,
+ search_line_sse2, search_line_sse42, init_vectorized_lexer,
+ search_line_fast): New.
+ (_cpp_clean_line): Use search_line_fast. Restructure the fast
+ loop to make it clear when we're leaving the loop. Stay in the
+ fast loop for non-trigraph '?'.
+
+2010-06-11 Jakub Jelinek <jakub@redhat.com>
+
+ * include/cpplib.h (struct cpp_callbacks): Add user_builtin_macro
+ callback.
+ (enum cpp_builtin_type): Add BT_FIRST_USER and BT_LAST_USER.
+ (cpp_macro_definition): Remove const qual from second argument.
+ * macro.c (enter_macro_context): Call user_builtin_macro callback for
+ NODE_BUILTIN !NODE_USED macros.
+ (warn_of_redefinition): Likewise. Remove const qual from second
+ argument.
+ (cpp_macro_definition): Likewise.
+ * pch.c (write_macdef, save_macros): Call user_builtin_macro callback
+ for NODE_BUILTIN !NODE_USED macros.
+
+2010-06-10 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Remove show_column.
+ * init.c (cpp_create_reader, post_options): Don't set show_column.
+
+2010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
+
+ PR bootstrap/44432
+ * configure.ac: Before using ZW_PROG_COMPILER_DEPENDENCIES for C++,
+ check that C++ compiler works.
+ * configure: Regenerate.
+
+2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * include/symtab.h (ht_identifier_ptr): New.
+
+2010-06-03 Joern Rennecke <joern.rennecke@embecosm.com>
+ Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR bootstrap/42798
+ * configure.ac: Check for declaration of 'basename(char *)'.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+
+2010-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUC1X and CLK_STDC1X.
+ * init.c (lang_defaults): Add entries for new language variants.
+ (cpp_init_builtins): Define __STDC_VERSION__ to 201000L for C1X
+ variants.
+
+2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ PR cpp/43195
+ * files.c (report_missing_guard): Test for #pragma once.
+
+2010-04-07 Simon Baldwin <simonb@google.com>
+
+ * directives.c (do_diagnostic): Add warning reason argument,
+ call appropriate error reporting function for code.
+ (directive_diagnostics): Call specific warning functions with
+ warning reason where appropriate.
+ (do_error, do_warning, do_pragma_dependency): Add warning reason
+ argument to do_diagnostic calls.
+ * macro.c (_cpp_warn_if_unused_macro, enter_macro_context,
+ _cpp_create_definition): Call specific warning functions with
+ warning reason where appropriate.
+ * Makefile.in: Add new diagnostic functions to gettext translations.
+ * include/cpplib.h (struct cpp_callbacks): Add warning reason code
+ to error callback.
+ (CPP_DL_WARNING, CPP_DL_WARNING_SYSHDR, CPP_DL_PEDWARN, CPP_DL_ERROR,
+ CPP_DL_ICE, CPP_DL_NOTE, CPP_DL_FATAL): Replace macros with enums.
+ (CPP_W_NONE, CPP_W_DEPRECATED, CPP_W_COMMENTS,
+ CPP_W_MISSING_INCLUDE_DIRS, CPP_W_TRIGRAPHS, CPP_W_MULTICHAR,
+ CPP_W_TRADITIONAL, CPP_W_LONG_LONG, CPP_W_ENDIF_LABELS,
+ CPP_W_NUM_SIGN_CHANGE, CPP_W_VARIADIC_MACROS,
+ CPP_W_BUILTIN_MACRO_REDEFINED, CPP_W_DOLLARS, CPP_W_UNDEF,
+ CPP_W_UNUSED_MACROS, CPP_W_CXX_OPERATOR_NAMES, CPP_W_NORMALIZE,
+ CPP_W_INVALID_PCH, CPP_W_WARNING_DIRECTIVE): New enums for cpp
+ warning reason codes.
+ (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
+ cpp_warning_with_line, cpp_pedwarning_with_line,
+ cpp_warning_with_line_syshdr): New specific error reporting functions.
+ * pch.c (cpp_valid_state): Call specific warning functions with
+ warning reason where appropriate.
+ * errors.c (cpp_diagnostic, cpp_diagnostic_with_line): New central
+ diagnostic handlers.
+ (cpp_warning, cpp_pedwarning, cpp_warning_syshdr,
+ cpp_warning_with_line, cpp_pedwarning_with_line,
+ cpp_warning_with_line_syshdr): New specific error reporting functions.
+ * expr.c (cpp_classify_number, eval_token, num_unary_op): Call
+ specific warning functions with warning reason where appropriate.
+ * lex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
+ warn_about_normalization, lex_identifier_intern, lex_identifier,
+ _cpp_lex_direct): Ditto.
+ * charset.c (_cpp_valid_ucn, convert_hex, convert_escape,
+ narrow_str_to_charconst): Ditto.
+
+2010-04-06 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/43642
+ * lex.c (lex_raw_string): Change type of TYPE variable to
+ unsigned char.
+
+2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+
+2010-03-29 Jason Merrill <jason@redhat.com>
+
+ More N3077 raw string changes
+ * charset.c (cpp_interpret_string): Don't transform UCNs in raw
+ strings.
+ * lex.c (bufring_append): Split out from...
+ (lex_raw_string): ...here. Undo trigraph and line splicing
+ transformations. Do process line notes in multi-line literals.
+ (_cpp_process_line_notes): Ignore notes that were already handled.
+
+ Some raw string changes from N3077
+ * charset.c (cpp_interpret_string): Change inner delimiters to ().
+ * lex.c (lex_raw_string): Likewise. Also disallow '\' in delimiter.
+
+2010-02-11 Jakub Jelinek <jakub@redhat.com>
+
+ * init.c (read_original_filename): Don't call read_original_directory
+ if _cpp_handle_directive returns 0.
+
+2010-01-01 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/41947
+ * expr.c (cpp_classify_number): Give error for hexadecimal
+ floating-point constant with no digits before or after point.
+
+2009-11-20 Arnaud Charlet <charlet@adacore.com>
+
+ * macro.c (enter_macro_context): Call cb.used callback if defined.
+ * directives.c (do_idef, do_ifndef): Ditto.
+ * include/cpplib.h (struct cpp_callbacks): Add used callback.
+
+2009-11-11 Kai Tietz <kai.tietz@onevision.com>
+
+ * directives.c (do_pragma_push_macro): New pragma handler.
+ (do_pragma_pop_macro): Likewise.
+ (_cpp_init_internal_pragmas): Add push_macro and
+ pop_macro handler to internal pragmas.
+ (lex_macro_node_from_str): Removed.
+ (cpp_push_definition): Replace lex_macro_node_from_str
+ by _cpp_lex_identifier.
+ (cpp_pop_definition): Likewise.
+ * internal.h (_cpp_lex_identifier): New prototype.
+ (def_pragma_macro): New structure.
+ (cpp_reader): New member pushed_macros.
+ * lex.c (_cpp_lex_identifier): New function.
+ (lex_identifier_intern): New function.
+ * init.c (cpp_create_reader): Initialize pushed_macros
+ member.
+ (cpp_destroy): Free elements in pushed_macros member.
+ * pch.c (_cpp_save_pushed_macros): New function.
+ (_cpp_restore_pushed_macros): Likewise.
+ (_cpp_restore_pushed_macros): Use _cpp_save_pushed_macros.
+ (cpp_read_state): Use _cpp_restore_pushed_macros.
+
+2009-10-19 Jakub Jelinek <jakub@redhat.com>
+
+ * charset.c (cpp_init_iconv): Initialize utf8_cset_desc.
+ (_cpp_destroy_iconv): Destroy utf8_cset_desc, char16_cset_desc
+ and char32_cset_desc.
+ (converter_for_type): Handle CPP_UTF8STRING.
+ (cpp_interpret_string): Handle CPP_UTF8STRING and raw-strings.
+ * directives.c (get__Pragma_string): Handle CPP_UTF8STRING.
+ (parse_include): Reject raw strings.
+ * include/cpplib.h (CPP_UTF8STRING): New token type.
+ * internal.h (struct cpp_reader): Add utf8_cset_desc field.
+ * lex.c (lex_raw_string): New function.
+ (lex_string): Handle u8 string literals, call lex_raw_string
+ for raw string literals.
+ (_cpp_lex_direct): Call lex_string even for u8" and {,u,U,L,u8}R"
+ sequences.
+ * macro.c (stringify_arg): Handle CPP_UTF8STRING.
+
+2009-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/41543
+ * include/line-map.h (RESERVED_LOCATION_COUNT): Define.
+ * line-map.c (linemap_init): Initialize highest_location and
+ highest_line to RESERVED_LOCATION_COUNT-1 instead of 0.
+
+2009-10-09 Jason Merrill <jason@redhat.com>
+
+ * charset.c (_cpp_valid_ucn): Update C++0x restrictions.
+
+2009-10-09 Neil Vachharajani <nvachhar@google.com>
+
+ * directives.c (DIRECTIVE_TABLE): Remove DEPRECATED from ident and
+ sccs.
+
+2009-09-23 Loren J. Rittle <ljrittle@acm.org>
+
+ * configure.ac (AC_CHECK_HEADERS after AC_LANG(C++)): Add sys/stat.h.
+ * configure: Rebuilt.
+
+2009-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR pch/38987
+ * files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
+
+2009-09-18 Chris Demetriou <cgd@google.com>
+
+ PR preprocessor/28435:
+ * include/cpplib.h (struct cpp_options): Add new member
+ deps.need_preprocessor_output.
+ * files.c (open_file_failed): If preprocessor output is needed
+ always report an error.
+
+2009-09-13 Kai Tietz <kai.tietz@onevision.com>
+
+ * configure.ac: Set for i?86-w64-mingw*
+ need_64bit_hwint to yes.
+ * configure: Regenerated.
+
+2009-09-10 Jason Merrill <jason@redhat.com>
+
+ * directives.c (cpp_define): constify.
+
+2009-09-02 Ian Lance Taylor <iant@google.com>
+
+ * macro.c (stringify_arg): Escape CPP_WCHAR tokens.
+
+2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * configure.ac (AC_PREREQ): Bump to 2.64.
+
+2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * aclocal.m4: Regenerate.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+
+2009-08-17 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/41067:
+ * charset.c (convert_escape): Add missing ":" to error text.
+
+2009-07-27 Douglas B Rupp <rupp@gnat.com>
+
+ * include/cpplib.h (INO_T_CPP): New macro.
+ (struct cpp_dir): Use it.
+
+2009-07-20 Jerry Quinn <jlquinn@optonline.net>
+
+ PR regression/40800
+ * configure.ac: Use = instead of == for testing
+ ENABLE_BUILD_WITH_CXX.
+ * configure: Rebuild.
+
+2009-07-17 Jerry Quinn <jlquinn@optonline.net>
+
+ * directives.c (do_linemarker, do_line): Use CPP_STRING for
+ ignored enum value.
+ * files.c (find_file_in_dir): Add cast from void* to char*.
+ * symtab.c (ht_lookup_with_hash): Add cast from void* to char*.
+ * Makefile.in: (WARN_CFLAGS): Use general and C-specific
+ warnings.
+ (CXX, CXXFLAGS, WARN_CXXFLAGS, ALL_CXXFLAGS,
+ ENABLE_BUILD_WITH_CXX, CCDEPMODE, CXXDEPMODE, COMPILER,
+ COMPILER_FLAGS): New.
+ (DEPMODE): Set from CCDEPMODE or CXXDEPMODE.
+ (COMPILE.base): Use COMPILER instead of CC. Use COMPILER_FLAGS
+ instead of ALL_CFLAGS.
+ * configure.ac: Invoke AC_PROG_CXX. Separate C-specific warnings
+ from other warnings. Add -Wc++-compat to C-specific warnings.
+ Check for --enable-build-with-cxx. Set and substitute
+ ENABLE_BUILD_WITH_CXX. Invoke ZW_PROG_COMPILER_DEPENDENCIES
+ according to ENABLE_BUILD_WITH_CXX. Invoke AC_LANG before
+ AC_CHECK_HEADERS.
+ * configure: Rebuild.
+ * include/cpp-id-data.h: Remove extern "C".
+ * include/line-map.h: Likewise.
+ * include/mkdeps.h: Likewise.
+ * include/symtab.h: Likewise.
+ * internal.h: Likewise.
+
+2009-06-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * directives.c (parse_include): Add location argument. Update all
+ calls.
+ (parse_answer): Likewise.
+ (do_include_common): Error with exact location.
+ (parse_assertion): Likewise.
+
+2009-06-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * expr.c (num_div_op): Take explicit location.
+
+2009-06-17 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (progname): Don't declare.
+
+2009-06-12 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add
+ warn_cxx_operator_names field.
+ (NODE_WARN_OPERATOR): Define.
+ (struct cpp_hashnode): Increase flags field to 10 bits, decrease
+ type to 6 bits.
+ * init.c (mark_named_operators): Add flags parameter.
+ (cpp_post_options): Pick flags value to pass to
+ mark_named_operators.
+ * lex.c (lex_identifier): If NODE_WARN_OPERATOR is set, warn that
+ identifier is an operator name in C++.
+
+2009-06-01 Aldy Hernandez <aldyh@redhat.com>
+
+ * include/line-map.h (LAST_SOURCE_COLUMN): New.
+
+2009-06-01 Ian Lance Taylor <iant@google.com>
+
+ * include/cpp-id-data.h: Add extern "C".
+ * include/line-map.h: Likewise.
+ * include/mkdeps.h: Likewise.
+ * include/symtab.h: Likewise.
+ * internal.h: Likewise.
+
+2009-05-15 Ian Lance Taylor <iant@google.com>
+
+ * include/cpplib.h (enum cpp_builtin_type): Rename from enum
+ builtin_type. Change all uses.
+
+2009-05-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR cpp/36674
+ * directives (do_linemarker): Compensate for the increment in
+ location that occurs when we reach the end of line.
+ * files (_cpp_stack_include): Mention _cpp_find_file in the
+ comment.
+
+2009-05-10 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (enum cpp_token_fld_kind): Add
+ CPP_TOKEN_FLD_TOKEN_NO.
+ (struct cpp_macro_arg, struct cpp_identifier): Define.
+ (union cpp_token_u): Use struct cpp_identifier for identifiers.
+ Use struct cpp_macro_arg for macro arguments. Add token_no for
+ CPP_PASTE token numbers.
+ * directives.c (_cpp_handle_directive, lex_macro_node, do_pragma,
+ do_pragma_poison, parse_assertion): Use val.node.node in place of
+ val.node.
+ * expr.c (parse_defined, eval_token): Use val.node.node in place
+ of val.node.
+ * lex.c (cpp_ideq, _cpp_lex_direct, cpp_token_len,
+ cpp_spell_token, cpp_output_token, _cpp_equiv_tokens,
+ cpp_token_val_index): Use val.macro_arg.arg_no or val.token_no in
+ place of val.arg_no. Use val.node.node in place of val.node.
+ * macro.c (replace_args, cpp_get_token, parse_params,
+ lex_expansion_token, create_iso_definition, cpp_macro_definition):
+ Use val.macro_arg.arg_no or val.token_no in place of val.arg_no.
+ Use val.node.node in place of val.node.
+
+2009-05-03 Joseph Myers <joseph@codesourcery.com>
+
+ * charset.c (one_utf8_to_cppchar): Correct mask used for 5-byte
+ UTF-8 sequences.
+
+2009-04-25 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/39559
+ * expr.c (cpp_interpret_integer): Use a pedwarn for decimal
+ constants larger than intmax_t in C99 mode.
+
+2009-04-21 Taras Glek <tglek@mozilla.com>
+
+ * include/cpp-id-data.h: Update GTY annotations to new syntax.
+ * include/cpplib.h: Likewise.
+ * include/line-map.h: Likewise.
+ * include/symtab.h: Likewise.
+
+2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/14875
+ * lex.c (cpp_type2name): Take a flags parameter. Call
+ cpp_named_operator2name for named operators and cpp_digraph2name
+ for digraphs.
+ (cpp_digraph2name): New.
+ (cpp_spell_token): Use it.
+ (cpp_output_token): Likewise.
+ * include/cpplib.h (cpp_type2name): Update declaration.
+ * init.c (cpp_named_operator2name): New.
+ * internal.h (cpp_named_operator2name): Declare.
+
+2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/13358
+ * init.c (cpp_create_reader): Wlong_long is disabled by default.
+ * expr.c (cpp_classify_number): Give different messages for C and
+ C++ front-ends.
+
+2009-04-19 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/20078
+ * include/cpp-id-data.h (struct cpp_macro): Add extra_tokens
+ field.
+ * include/cpplib.h (SP_DIGRAPH, SP_PREV_WHITE): Define.
+ (struct cpp_token): Change flags to unsigned short.
+ * lex.c (_cpp_lex_direct): Initialize arg_no for CPP_PASTE tokens.
+ (_cpp_equiv_tokens): Check arg_no for CPP_PASTE tokens.
+ (cpp_token_val_index): Return CPP_TOKEN_FLD_ARG_NO for CPP_PASTE
+ tokens.
+ * macro.c (macro_real_token_count): New.
+ (enter_macro_context, replace_args): Use macro_real_token_count.
+ (create_iso_definition): Record whitespace surrounding and digraph
+ spelling of # and ## tokens using SP_PREV_WHITE and SP_DIGRAPH.
+ Set extra_tokens and save CPP_PASTE tokens with arg_no set for
+ multiple consecutive ## tokens.
+ (_cpp_create_definition): Initialize extra_tokens.
+ (cpp_macro_definition): Use macro_real_token_count.
+
+2009-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ * directives.c (parse_include): Pass true to check_eol.
+
+2009-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/39646
+ * include/line-map.h (enum lc_reason): Add LC_RENAME_VERBATIM.
+ * line-map.c (linemap_add): Handle LC_RENAME_VERBATIM.
+ * directives.c (do_line, do_linemarker): Use LC_RENAME_VERBATIM in
+ place of LC_RENAME.
+
+2009-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/39647
+ * directives.c (check_eol): Add parameter expand.
+ (do_undef, parse_include, do_line, do_linemarker, do_ident,
+ do_pragma_once, do_pragma_system_header, do_ifdef, do_ifndef,
+ do_else, do_endif, do_assert, do_unassert): All callers changed.
+ Pass true from do_line, false elsewhere.
+
+2009-04-12 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/31869
+ * macro.c (stringify_arg): Handle NULL source token in padding
+ token where previous padding token did not have source token with
+ preceding whitespace.
+
+2009-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ * Makefile.in: Change copyright header to refer to version
+ 3 of the GNU General Public License and to point readers at the
+ COPYING3 file and the FSF's license web page.
+ * charset.c: Likewise.
+ * directives-only.c: Likewise.
+ * directives.c: Likewise.
+ * errors.c: Likewise.
+ * expr.c: Likewise.
+ * files.c: Likewise.
+ * identifiers.c: Likewise.
+ * include/cpp-id-data.h: Likewise.
+ * include/cpplib.h: Likewise.
+ * include/line-map.h: Likewise.
+ * include/mkdeps.h: Likewise.
+ * include/symtab.h: Likewise.
+ * init.c: Likewise.
+ * internal.h: Likewise.
+ * lex.c: Likewise.
+ * line-map.c: Likewise.
+ * macro.c: Likewise.
+ * makeucnid.c: Likewise.
+ * mkdeps.c: Likewise.
+ * pch.c: Likewise.
+ * symtab.c: Likewise.
+ * system.h: Likewise.
+ * traditional.c: Likewise.
+ * ucnid.tab: Likewise.
+ * ucnid.h: Regenerate.
+
+2009-04-01 Janis Johnson <janis187@us.ibm.com>
+
+ PR c/39027
+ * include/cpplib.h (CPP_N_DEFAULT): Define.
+ * expr.c (interpret_float_suffix): Recognize d or D for double,
+ return new value for default.
+ (cpp_classify_number): Issue pedwarn for use of d or D in suffix.
+
+ PR c/33466
+ * expr.c (interpret_float_suffix): Reject invalid suffix that uses
+ letters from decimal float and fixed-point suffixes.
+
+2009-03-31 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/15638
+ * files.c (_cpp_find_file): Call open_file_failed after diagnosing
+ invalid PCH.
+ (open_file_failed): Make error for missing file fatal.
+ * include/cpplib.h (CPP_DL_FATAL): Define.
+
+2009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net>
+
+ PR preprocessor/31932:
+ * internal.h: Don't mention HAVE_ICONV_H.
+ * configure, config.in: Rebuild.
+ * configure.ac: Don't check for iconv.h.
+
+2009-03-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/39512:
+ * line-map.c (linemap_init): Initialize 'reallocator' field.
+
+2009-03-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/39558
+ * macro.c (cpp_get_token): If macro_to_expand returns NULL
+ and used some tokens, add CPP_PADDING before next token.
+
+2009-03-29 Joseph Myers <joseph@codesourcery.com>
+
+ PR preprocessor/34695
+ * makedepend.c: Remove.
+ * Makefile.in (makedepend_OBJS, makedepend$(EXEEXT)): Remove.
+ (all, clean, TAGS_SOURCES, include): Remove makedepend handling.
+ * directives.c (cpp_errors): Remove.
+ * errors.c (print_location, _cpp_begin_message, v_message):
+ Remove.
+ (cpp_error, cpp_error_with_line): Always use error callback.
+ (cpp_error, cpp_error_with_line, cpp_errno): Return bool.
+ * include/cpplib.h (cpp_options): Remove pedantic_errors,
+ inhibit_warnings, warn_system_headers, inhibit_errors,
+ warnings_are_errors, client_diagnostic.
+ (cpp_callbacks): Add extra arguments to error callback; make it
+ return bool.
+ (cpp_finish): Return void.
+ (cpp_destroy): Remove inaccurate comment about return value.
+ (cpp_errors, CPP_DL_EXTRACT, CPP_DL_WARNING_P): Remove.
+ (CPP_DL_NOTE): Define.
+ * include/line-map.h (linemap_print_containing_files): Remove.
+ * init.c (cpp_finish): Do not check for or return number of
+ errors.
+ * internal.h (cpp_reader): Remove errors field.
+ * line-map.c (linemap_print_containing_files): Remove.
+ * macro.c (_cpp_create_definition): Use CPP_DL_NOTE for message
+ about previous definition. Only emit it if previous diagnostic
+ was emitted.
+
+2009-03-28 Joseph Myers <joseph@codesourcery.com>
+
+ * Makefile.in (po/$(PACKAGE).pot): Use $(mkinstalldirs) not
+ mkinstalldirs.
+
+2009-03-18 Jakub Jelinek <jakub@redhat.com>
+
+ * include/cpplib.h (struct cpp_dir): Reorder fields for 64-bit hosts.
+
+2009-02-21 Joseph Myers <joseph@codesourcery.com>
+
+ * lex.c (lex_string): Return a CPP_LESS token for missing '>' in a
+ header name.
+ (_cpp_lex_direct): Handle this.
+
+2009-02-15 Richard Guenther <rguenther@suse.de>
+
+ Revert last change.
+
+2009-02-13 Richard Guenther <rguenther@suse.de>
+
+ * configure.ac: Enable LFS.
+ * configure: Re-generate.
+ * config.in: Likewise.
+
+2009-01-05 Ben Elliston <bje@au.ibm.com>
+
+ * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
+ (.po.pox): Likewise.
+ (po/$(PACKAGE).pot): Likewise.
+
+2008-12-10 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/37033
+ * pch.c (cpp_valid_state): Improve message for poisoned symbols.
+ Allow for differences in __GCC_HAVE_DWARF2_CFI_ASM.
+
+2008-11-29 Joseph Myers <joseph@codesourcery.com>
+
+ * lex.c (cpp_token_len): Use 6 as default length.
+
+2008-10-31 Manuel López-Ibáñez <manu@gcc.gnu.org>
+
+ * expr.c (struct op): Add location.
+ (_cpp_parse_expr): Propagate locations throught the stack
+ of expressions.
+ (reduce): Likewise.
+ (check_promotion): Use explicit location in errors.
+
+2008-10-05 Matthew Gingell <gingell@adacore.com>
+ Arnaud Charlet <charlet@adacore.com>
+
+ * include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
+ (cpp_get_comments): New function.
+ * internal.h (struct cpp_reader): Add comments field.
+ * init.c (cpp_destroy): Free comments.
+ * lex.c (store_comment, cpp_get_comments): New functions.
+ (comments): New struct.
+ (save_comment): Store comments in comments struct.
+
+2008-09-18 Simon Baldwin <simonb@google.com>
+
+ * include/cpplib.h (struct cpp_options): Add new boolean flag
+ warn_builtin_macro_redefined.
+ * init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
+ * (struct builtin_operator): Split out from previous struct builtin,
+ enhance extra const correctness.
+ * (struct builtin_macro): Split out from previous struct builtin, add
+ new always_warn_if_redefined flag, enhance const correctness.
+ * (mark_named_operators): Use struct builtin_operator.
+ * (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
+ to builtins selectively.
+ * macro.c (warn_of_redefinition): Return false if a builtin macro
+ is not flagged with NODE_WARN.
+
+2008-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/36649
+ * files.c (struct report_missing_guard_data): New type.
+ (report_missing_guard): Put paths into an array instead of printing
+ them right away. Return 1 rather than 0.
+ (report_missing_guard_cmp): New function.
+ (_cpp_report_missing_guards): Sort and print paths gathered by
+ report_missing_guard callback.
+
+2008-07-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR 28079
+ * directives.c (strtolinenum): Handle overflow.
+ (do_line): Give a warning if line number overflowed.
+ (do_linemarker): Update call to strtolinenum.
+
+2008-07-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * include/line-map.h (linenum_type): New typedef.
+ (struct line_map): Use it.
+ (SOURCE_LINE): Second arguments is a LOCATION not a LINE.
+ (SOURCE_COLUMN): Likewise.
+ * macro.c (_cpp_builtin_macro_text): Use linenum_type. Don't store
+ source_location values in a variable of type linenum_type.
+ * directives.c (struct if_stack): Use linenum_type.
+ (strtoul_for_line): Rename as strtolinenum.
+ (do_line): Use linenum_type.
+ (do_linemarker): Use linenum_type and strtolinenum.
+ (_cpp_do_file_change): Use linenum_t.
+ * line-map.c (linemap_add): Likewise.
+ (linemap_line_start): Likewise.
+ * traditional.c (struct fun_macro): 'line' is a source_location.
+ * errors.c (print_location): Use linenum_type.
+ * directives-only.c (_cpp_preprocess_dir_only): Likewise.
+ * internal.h (CPP_INCREMENT_LINE): Likewise.
+ * lex.c (_cpp_skip_block_comment): Use source_location.
+
+2008-07-14 Ben Elliston <bje@au.ibm.com>
+
+ * include/cpplib.h (NODE_CONDITIONAL): New.
+ (struct cpp_callbacks): New macro_to_expand field.
+ (struct cpp_hashnode): Adjust size of flags and type fields.
+ (cpp_peek_token): Prototype.
+ * lex.c (cpp_peek_token): New function.
+ (_cpp_temp_token): Protect pre-existing lookaheads.
+ * macro.c (cpp_get_token): Expand any conditional macros.
+ (_cpp_backup_tokens_direct): New.
+ (_cpp_backup_tokens): Call _cpp_backup_tokens_direct.
+ (warn_of_redefinition): Silently allow redefined conditional
+ macros.
+ (_cpp_create_definition): Remove the conditional flag when a user
+ defines one of the conditional macros.
+ * internal.h (_cpp_backup_tokens_direct): New prototype.
+
+2008-06-13 Andrew Haley <aph@redhat.com>
+
+ PR preprocessor/33305
+ * macro.c (replace_args): Print a warning for empty macro
+ arguments in C89 and C++.
+
+2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies.
+ * configure: Regenerate.
+
+2008-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (datarootdir): New variable.
+
+2008-06-12 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR preprocessor/36479
+ * charset.c (cpp_interpret_string_notranslate): Also set
+ narrow_cset_desc.width.
+
+2008-06-07 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (parisc*64*-*-*): Remove.
+ * configure: Regenerate.
+
+2008-05-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/36320:
+ * internal.h (_cpp_parse_expr): Update.
+ * expr.c (_cpp_parse_expr): Add 'is_if' argument. Update error
+ messages.
+ * directives.c (do_if): Update.
+ (do_elif): Require expression if processing group.
+
+2008-05-30 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/cpplib.h (struct cpp_dir): Add new field, canonical_name.
+
+2008-05-21 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/27777:
+ * lex.c (cpp_output_line_to_string): New function.
+ * internal.h (_cpp_begin_message): Don't declare.
+ * errors.c (_cpp_begin_message): Now static.
+ * include/cpplib.h (cpp_output_line_to_string): Declare.
+ * directives.c (do_diagnostic): Rewrote. Use
+ cpp_output_line_to_string. Don't use _cpp_begin_message.
+
+2008-05-21 Tom Tromey <tromey@redhat.com>
+
+ * include/symtab.h (HT_ALLOCED): Remove.
+ (ht_purge): Declare.
+ * symtab.c (DELETED): New define.
+ (ht_lookup): Update comment.
+ (ht_lookup_with_hash): Handle deleted entries. Remove HT_ALLOCED
+ code. Use subobject allocator for strings, if it exists.
+ (ht_expand): Handle deleted entries.
+ (ht_forall): Likewise.
+ (ht_purge): New function.
+ (ht_dump_statistics): Print deletion statistics.
+
+2008-05-13 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/22168:
+ * include/cpplib.h (struct cpp_options) <objc>: Update
+ documentation.
+ * expr.c (eval_token): Warn for use of assertions.
+ * directives.c (directive_diagnostics): Warn about extensions.
+ (DEPRECATED): New define.
+ (DIRECTIVE_TABLE): Use it.
+
+2008-05-06 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/35313, PR preprocessor/36088:
+ * expr.c (optab) <QUERY, COMMA>: Set precedence to 4.
+ (reduce) <case CPP_QUERY>: Special case CPP_COMMA and CPP_COLON.
+
+2008-05-04 David S. Miller <davem@davemloft.net>
+
+ * configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
+ * configure: Regenerate.
+
+2008-04-22 Daniel Franke <franke.daniel@gmail.com>
+
+ * include/cpplib.h (cpp_define_formatted): New.
+ * directives.c (cpp_define_formatted): New.
+
+2008-04-21 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/33415:
+ * charset.c (_cpp_convert_input): Add buffer_start argument.
+ Ignore UTF-8 BOM if seen.
+ * internal.h (_cpp_convert_input): Add argument.
+ * files.c (struct _cpp_file) <buffer_start>: New field.
+ (destroy_cpp_file): Free buffer_start, not buffer.
+ (_cpp_pop_file_buffer): Likewise.
+ (read_file_guts): Update.
+
+2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
+
+ * include/cpp-id-data.h (UC): Was U, conflicts with U"..." literal.
+ * include/cpplib.h (CHAR16, CHAR32, STRING16, STRING32): New tokens.
+ (struct cpp_options): Added uliterals.
+ (cpp_interpret_string): Update prototype.
+ (cpp_interpret_string_notranslate): Idem.
+ * charset.c (init_iconv_desc): New width member in cset_converter.
+ (cpp_init_iconv): Add support for char{16,32}_cset_desc.
+ (convert_ucn): Idem.
+ (emit_numeric_escape): Idem.
+ (convert_hex): Idem.
+ (convert_oct): Idem.
+ (convert_escape): Idem.
+ (converter_for_type): New function.
+ (cpp_interpret_string): Use converter_for_type, support u and U prefix.
+ (cpp_interpret_string_notranslate): Match changed prototype.
+ (wide_str_to_charconst): Use converter_for_type.
+ (cpp_interpret_charconst): Add support for CPP_CHAR{16,32}.
+ * directives.c (linemarker_dir): Macro U changed to UC.
+ (parse_include): Idem.
+ (register_pragma_1): Idem.
+ (restore_registered_pragmas): Idem.
+ (get__Pragma_string): Support CPP_STRING{16,32}.
+ * expr.c (eval_token): Support CPP_CHAR{16,32}.
+ * init.c (struct lang_flags): Added uliterals.
+ (lang_defaults): Idem.
+ * internal.h (struct cset_converter) <width>: New field.
+ (struct cpp_reader) <char16_cset_desc>: Idem.
+ (struct cpp_reader) <char32_cset_desc>: Idem.
+ * lex.c (digraph_spellings): Macro U changed to UC.
+ (OP, TK): Idem.
+ (lex_string): Add support for u'...', U'...', u"..." and U"...".
+ (_cpp_lex_direct): Idem.
+ * macro.c (_cpp_builtin_macro_text): Macro U changed to UC.
+ (stringify_arg): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
+
+2008-04-18 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/35457
+ * aclocal.m4: Regenerate.
+ * configure: Regenerate.
+
+2008-04-17 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/34866:
+ * errors.c (cpp_error): Don't reference a token before the start
+ of the current run.
+
+2008-04-16 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (TAGS_SOURCES): New variable.
+ (TAGS): New target.
+
+2008-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * configure.ac: (need_64bit_hwint): Need 64bit hwint for sh-*-*
+ and shbe-*-*.
+ * configure: Rebuilt.
+
+2008-04-02 Joseph Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_callbacks): Add used_define,
+ used_undef and before_define.
+ (NODE_USED): Define.
+ * directives.c (do_define, do_undef, undefine_macros, do_ifdef,
+ do_ifndef, cpp_pop_definition): Handle new flag and use new
+ callbacks.
+ * expr.c (parse_defined): Handle new flag and use new callbacks.
+ * macro.c (enter_macro_context, _cpp_free_definition): Handle new
+ flag and use new callbacks.
+
+2008-04-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR pch/13675
+ * files.c (struct _cpp_file): Remove pch field.
+ (pch_open_file): Don't set file->pch, just file->pchname.
+ (should_stack_file): After pfile->cb.read_pch call
+ free pchname and clear pchname, don't close file->fd.
+ Test file->pchname instead of file->pch. Don't close fd after cb.
+ (_cpp_stack_include): Test file->pchname instead of file->pch.
+
+2008-03-28 Tom Tromey <tromey@redhat.com>
+
+ * Makefile.in (POSTCOMPILE): New variable.
+ (.c.o): Use it.
+
+2008-03-13 Tom Tromey <tromey@redhat.com>
+
+ PR libcpp/35322:
+ * directives.c (destringize_and_run): Set pfile->directive.
+
+2008-03-06 Markus Milleder <markus.milleder@generali.at>
+
+ PR preprocessor/35458
+ * mkdeps.c (munge): Quote '#' with a '\'.
+
+2008-02-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR preprocessor/35379
+ * mkdeps.c (deps_write): Ensure the first target always appears
+ in the first column, without leading backslash newline. Avoid
+ some more extra whitespace.
+
+2008-02-25 Thiemo Seufer <ths@mips.com>
+
+ * Makefile.in ($(srcdir)/config.in): Depend on configure.ac.
+
+2008-02-19 Tom Tromey <tromey@redhat.com>
+
+ * traditional.c (lex_identifier): Use CPP_HASHNODE.
+ * lex.c (lex_identifier): Use CPP_HASHNODE.
+ * include/line-map.h (LINEMAP_POSITION_FOR_COLUMN): Wrap in
+ do-while.
+ * identifiers.c (alloc_node): Change return type.
+ (_cpp_init_hashtable): Don't cast 'alloc_node'.
+ (proxy_assertion_broken): New declaration.
+ (cpp_forall_identifiers): Move comment.
+ * line-map.c (linemap_add): Comment fix.
+ (linemap_line_start): Indentation fix.
+
+2008-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/34692
+ * macro.c (collect_args): Add pragma_buff argument. Push
+ CPP_PRAGMA ... CPP_PRAGMA_EOL tokens to *pragma_buff, rather
+ than into arguments. Reset prevent_expansion and parsing_args
+ state at CPP_PRAGMA_EOL/CPP_EOF.
+ (funlike_invocation_p): Add pragma_buff argument, pass it through
+ to collect_args.
+ (enter_macro_context): Add result argument. Adjust
+ funlike_invocation_p caller. Emit all deferred pragma tokens
+ gathered during collect_args before the expansion, add a padding
+ token. Return 2 instead of 1 if any pragma tokens were prepended.
+ (cpp_get_token): If enter_macro_context returns 2, don't return
+ a padding token, instead cycle to grab CPP_PRAGMA token.
+ * directives.c (_cpp_handle_directive): If was_parsing_args
+ in deferred pragma, leave parsing_args and prevent_expansion as is.
+
+2008-01-22 Tom Tromey <tromey@redhat.com>
+
+ PR c++/34859
+ * macro.c (_cpp_create_definition): Handle __STDC_LIMIT_MACROS and
+ __STDC_CONSTANT_MACROS.
+
+2008-01-07 Fred Fish <fnf@specifix.com>
+
+ PR preprocessor/30363
+ * traditional.c (replace_args_and_push): Add local variable
+ cxtquote, calculate the replacement text size assuming a
+ worst case of every input character quoted with backslash,
+ and properly handle output quoting of quote characters in
+ actual arguments used in function-like macros.
+
+2008-01-03 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/34602
+ * directives.c (do_line): Don't try to spell EOF token.
+ (do_linemarker): Add comment.
+
+2007-12-11 DJ Delorie <dj@redhat.com>
+
+ * charset.c (convert_using_iconv): Close out any shift states,
+ returning to the initial state.
+
+2007-12-06 Tom Tromey <tromey@redhat.com>
+
+ PR c/29172
+ * internal.h (struct cpp_reader) <file_hash_entries>: Changed
+ type.
+ <file_hash_entries_allocated, file_hash_entries_used>: Removed.
+ * files.c (FILE_HASH_POOL_SIZE): New macro.
+ (struct file_hash_entry_pool): New.
+ (destroy_all_cpp_files): New function.
+ (allocate_file_hash_entries): Allocate a file_hash_entry_pool.
+ (new_file_hash_entry): Update.
+ (free_file_hash_entries): New function.
+ (_cpp_cleanup_files): Call free_file_hash_entries and
+ destroy_all_cpp_files.
+ (cpp_clear_file_cache): New function.
+ * include/cpplib.h (cpp_clear_file_cache): Declare.
+
+2007-12-03 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/34288
+ * configure.ac, config.in: Rebuilt.
+ * configure.ac: Check for ssize_t.
+
+2007-11-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/32868
+ * macro.c (_cpp_create_definition): Special case
+ __STDC_FORMAT_MACROS.
+
+2007-11-16 Michael Matz <matz@suse.de>
+
+ * files.c (search_path_head): Fix check for absolute paths.
+
+2007-11-11 Tom Tromey <tromey@redhat.com>
+
+ PR c++/17557
+ * include/cpplib.h (cpp_included_before): Declare.
+ * files.c (struct file_hash_entry) <location>: New field.
+ (_cpp_find_file): Initialize new field.
+ (make_cpp_dir): Likewise.
+ (cpp_included_before): New function.
+
+2007-11-01 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/30805
+ * macro.c (paste_tokens): Handle padding token.
+ (paste_tokens): Don't abort unless padding has PASTE_LEFT flag.
+
+2007-10-31 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/30786
+ * macro.c (builtin_macro): Return result of _cpp_do__Pragma.
+ * directives.c (_cpp_do__Pragma): Return error status.
+ * internal.h (_cpp_do__Pragma): Update.
+ * directives.c (get__Pragma_string): Back up if EOF seen.
+
+2007-09-06 Tom Tromey <tromey@redhat.com>
+
+ * internal.h (struct cpp_reader) <invocation_location>: New
+ field.
+ (struct cpp_reader) <set_invocation_location>: Likewise.
+ * init.c (cpp_set_line_map): New function.
+ * line-map.c (linemap_add): Use linemap's allocator.
+ * include/line-map.h (GTY): Define.
+ (line_map_realloc): New typedef.
+ (struct line_map): Mark with GTY.
+ (struct line_maps): Likewise.
+ (struct line_maps) <maps>: Likewise.
+ (struct line_maps) <reallocator>: New field.
+ * include/symtab.h (GTY): Conditionally define.
+ * include/cpplib.h (cpp_set_line_map): Declare.
+ (cpp_get_token_with_location): Declare.
+ * macro.c (cpp_get_token): Set invocation_location on the reader.
+ (cpp_get_token_with_location): New function.
+
+2007-08-30 Chao-ying Fu <fu@mips.com>
+
+ * expr.c (interpret_float_suffix): Support hr, r, lr, llr, uhr, ur,
+ ulr, ullr, hk, k, lk, llk, uhk, uk, ulk, ullk.
+ (cpp_classify_number): Support decimal fixed-point constants without
+ exponents.
+ Warn about fixed-point constants when -pedantic.
+ * include/cpplib.h (CPP_N_SMALL, CPP_N_MEDIUM, CPP_N_LARGE): Change
+ comments to support fixed-point values.
+ (CPP_N_FRACT, CPP_N_ACCUM): Define.
+
+2007-08-18 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/32974
+ * directives.c (parse_include): Don't check for EOL when
+ processing #pragma dependency.
+
+2007-07-30 Ollie Wild <aaw@google.com>
+
+ * directives-only.c: New file.
+ * internal.h (struct _cpp_dir_only_callbacks): New.
+ (_cpp_preprocess_dir_only): New function.
+ * directives.c (_cpp_handle_directive): Check directives_only before
+ disabling execution of indented directives.
+ * files.c (_cpp_stack_file): Add directives_only check.
+ * include/cpplib.h (struct cpp_options): Add directives_only.
+ (cpp_init_special_builtins): New function.
+ * init.c (cpp_init_special_builtins): New function.
+ (cpp_init_builtins): Move builtin_array initialization to
+ cpp_init_special_builtins.
+ (post_options): Check directives_only before setting
+ pfile->state.prevent_expansion = 1.
+ * macro.c (_cpp_builtin_macro_text): Print an error if __COUNTER__
+ is expanded inside a directive while -fdirectives-only is enabled.
+ * Makefile.in (libcpp_a_OBJS): Add directives-only.o.
+ (libcpp_a_SOURCES): Add directives-only.c.
+
+2007-07-04 Uros Bizjak <ubizjak@gmail.com>
+
+ * traditional.c (_cpp_scan_out_logical_line): Initialize
+ fmacro.args, fmacro.node, fmacro.offset, fmacro.line and
+ fmacro.args to prevent 'may be used uninitialized' warning.
+
+2007-07-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * include/cpplib.h (CPP_N_WIDTH_MD, CPP_N_MD_W, CPP_N_MD_Q):
+ Add new constants.
+ * expr.c (interpret_float_suffix): Process 'w', 'W', 'q' and 'Q'
+ suffixes. Return CPP_N_MD_W for 'w' or 'W' suffixes and CPP_N_MD_Q
+ for 'q' or 'Q' suffixes.
+
+2007-06-17 Danny Smith <dannysmith@users.sourceforge.net
+
+ * files.c (open_file): Correct typo.
+
+2007-06-16 Vladimir Prus <vladimir@codesourcery.com>
+
+ * files.c (open_file): Prevent the call
+ for stat from overwriting errno.
+
+2007-06-09 Vladimir Prus <vladimir@codesourcery.com>
+
+ * files.c (open_file): Account for the
+ fact that on windows, opening a directory gives
+ EACCES.
+
+2007-06-05 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+ PR preprocessor/23479
+ * expr.c (cpp_classify_number): Implement 0b-prefixed binary
+ integer constants.
+ (append_digit): Likewise.
+ * include/cpplib.h: Add CPP_N_BINARY, to be used for 0b-prefixed
+ binary integer constants.
+
+2007-05-31 Dave Korn <dave.korn@artimi.com>
+
+ PR preprocessor/14331
+ * lex.c (_cpp_get_fresh_line): Don't warn if no newline at EOF.
+
+2007-05-24 Ollie Wild <aaw@google.com>
+
+ * macro.c (_cpp_builtin_macro_text): Handle BT_COUNTER.
+ * pch.c (cpp_write_pch_deps): Save __COUNTER__ state.
+ (cpp_write_pch_state): Save __COUNTER__ state.
+ (cpp_valid_state): Check valid __COUNTER__ state.
+ (cpp_read_state): Read new __COUNTER__ state.
+ * include/cpplib.h (enum builtin_type): Add BT_COUNTER enumerator.
+ * init.c (builtin_array): Add __COUNTER__/BT_COUNTER.
+ * internal.h (struct cpp_reader): Add counter member.
+
+2007-05-23 Simon Martin <simartin@users.sourceforge.net>
+
+ PR preprocessor/20077
+ * macro.c (create_iso_definition): Fixed the method to determine
+ whether the token-pasting operator appears at the beginning or the end
+ of a macro.
+
+2007-05-21 Ian Lance Taylor <iant@google.com>
+
+ * internal.h (struct cpp_reader): Add new fields:
+ nonexistent_file_hash and nonexistent_file_ob.
+ * files.c: Include "obstack.h".
+ (find_file_in_dir): Before trying to open the file, look up the
+ path name in the hash table of nonexistent files. After failing
+ to open the file, add the path name to the hash table.
+ (_cpp_find_file): Cache the results of looking up the file name
+ starting with the quote and bracket chain heads, if we can.
+ (nonexistent_file_hash_eq): New static function.
+ (_cpp_init_files): Initialize pfile->nonexistent_file_hash and
+ pfile->nonexistent_file_ob.
+ (_cpp_cleanup_files): Free pfile->nonexistent_file_hash and
+ pfile->nonexistent_file_ob.
+
+2007-05-14 Janis Johnson <janis187@us.ibm.com>
+
+ * expr.c (cpp_classify_number): Warn about dfp constant for -pedantic.
+
+ PR c/31924
+ * expr.c (interpret_float_suffix): Check for invalid suffix.
+
+2007-05-02 Eric Christopher <echristo@apple.com>
+
+ * expr.c (num_div_op): Don't overflow if the result is
+ zero.
+
+2007-05-02 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/28709
+ * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs.
+
+2007-03-30 Michael Meissner <michael.meissner@amd.com>
+
+ * directives.c (lex_macro_node_from_str): Fix alloca call to be
+ type correct.
+
+2007-03-30 Richard Henderson <rth@redhat.com>
+
+ * directives.c (lex_macro_node_from_str): New.
+ (cpp_push_definition, cpp_pop_definition): New.
+ * include/cpplib.h (cpp_push_definition, cpp_pop_definition): Declare.
+
+2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * Makefile.in: Add dummy install-pdf target.
+
+2007-01-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/30468
+ * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
+ './'.
+
+2007-01-30 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/29966
+ * macro.c (lex_expansion_token): Save and restore cpp_reader's
+ cur_token.
+ (_cpp_create_definition): Don't restore cur_token here.
+ * lex.c (_cpp_lex_token): Added assertion.
+
+2007-01-27 Tom Tromey <tromey@redhat.com>
+
+ * configure: Rebuilt.
+
+2007-01-12 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/28227
+ * directives.c (lex_macro_node): Added 'is_def_or_undef'
+ argument.
+ (do_define): Update.
+ (do_undef): Update.
+ (do_ifdef): Update.
+ (do_ifndef): Update.
+
+2007-01-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure: Regenerate.
+
+2007-01-11 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure: Regenerate.
+
+2007-01-04 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/28165
+ * internal.h (cpp_in_primary_file): New function.
+ * directives.c (do_include_next): Use cpp_in_primary_file.
+ (do_pragma_once): Likewise.
+ (do_pragma_system_header): Likewise.
+
+2006-12-29 Ian Lance Taylor <iant@google.com>
+
+ * lex.c (_cpp_clean_line): Add uses of __builtin_expect. Don't
+ look backward at the end of the line unless we saw a backslash.
+
+2006-12-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/29612
+ * directives.c (do_linemarker): Set pfile->buffer->sysp always, not
+ only when new_sysp is non-zero.
+
+2006-12-28 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/30001
+ * charset.c (_cpp_convert_input): Check that to.len is greater
+ than zero.
+
+2006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
+
+ * configure.ac (need_64bit_hwint): Need 64bit hwint for SPU.
+ * configure: Rebuilt.
+
+2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
+
+ * include/cpplib.h (enum c_lang): Add CLK_GNUCXX0X and CLK_CXX0X
+ for experimental C++0x mode.
+ * init.c (lang_defaults): Add defaults for C++0x modes. C++0x has
+ adopted the preprocessor changes introduced in C99.
+
+2006-10-29 Joseph Myers <joseph@codesourcery.com>
+
+ * configure.ac (need_64bit_hwint): Set for i[34567]86-*-linux*
+ depending on --enable-targets=all.
+ * configure: Regenerate.
+
+2006-10-12 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/28709
+ * macro.c (paste_tokens): Do error reporting here, use BUF with the
+ spelled LHS token as opposed to spelling it again.
+ (paste_all_tokens): Don't report errors here, just break on failure.
+
+2006-10-10 Brooks Moses <bmoses@stanford.edu>
+
+ * Makefile.in: Added empty "pdf" target.
+
+2006-09-22 Geoffrey Keating <geoffk@apple.com>
+
+ * configure.ac: Make need_64_bit_hwint case for x86-darwin
+ match exactly the glob in gcc/config.gcc.
+ * configure: Regenerate.
+
+2006-09-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/28768
+ PR preprocessor/14634
+ * lex.c (lex_string): Pedwarn for unterminated literals.
+
+2006-09-08 Eric Christopher <echristo@apple.com>
+
+ * configure.ac: Add 64-bit HWI support for i?86-darwin.
+
+2006-08-14 Steve Ellcey <sje@cup.hp.com>
+
+ PR c++/28288
+ PR c++/14556
+ * include/cpplib.h: Remove <?, >?, <?=, and >?= tokens.
+ (CPP_LAST_EQ): Change.
+ (CPP_LAST_PUNCTUATOR): Change.
+ * expr.c (cpp_operator): Remove MIN and MAX.
+ (reduce): Remove CPP_MIN and CPP_MAX.
+ (num_binary_op): Ditto.
+ * lex.c (_cpp_lex_direct): Ditto.
+ (cpp_avoid_paste): Remove ? as legal symbol after > or <.
+
+2006-06-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/27746
+ * directives.c (do_pragma): Handle pragma with valid namespace
+ and invalid name coming from macro expansion.
+ * directives.c (destringize_and_run): Initialize next field in
+ context.
+
+ PR c/27747
+ PR c++/27748
+ * directives.c (destringize_and_run): Set NO_EXPAND on the
+ tokens.
+
+ * macro.c (_cpp_backup_tokens): Fix comment typo.
+
+2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * Makefile.in (CATALOGS): Add po/ prefix.
+ * configure: Regenerated.
+
+2006-05-23 Carlos O'Donell <carlos@codesourcery.com>
+
+ * Makefile.in: Add install-html target. Add install-html to .PHONY
+
+2006-02-17 Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
+
+ * macro.c (_cpp_builtin_macro_text): Handle BT_TIMESTAMP.
+ * files.c (_cpp_get_file_stat): New function.
+ * include/cpplib.h (builtin_type): Add BT_TIMESTAMP.
+ * init.c (builtin_array): Add support for __TIMESTAMP__/BT_TIMESTAMP.
+ * internal.h (_cpp_get_file_stat): Prototype.
+ (struct cpp_buffer): Add timestamp.
+
+2006-01-23 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/25717
+ * init.c (cpp_init_builtins): If __STDC__ will not change value
+ between system headers and other sources, define it as a normal
+ macro rather than a builtin.
+ * macro.c (_cpp_builtin_macro_text) <case BT_STDC>: Only check
+ cpp_in_system_header condition.
+
+2006-01-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in: Use -MMD instead of -MD.
+
+2006-01-04 Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
+ Richard Henderson <rth@redhat.com>
+
+ Merge from gomp branch:
+ * directives.c (struct pragma_entry): Add is_deferred. Add ident
+ entry to value union.
+ (end_directive): Don't eat the line if in_deferred_pragma.
+ (run_directive): Remove pragma hacks.
+ (insert_pragma_entry): Remove.
+ (new_pragma_entry): New.
+ (register_pragma_1): Split out of register_pragma. Only handle
+ the lookup tree and return the new entry.
+ (cpp_register_pragma): Fill in the pragma entry here.
+ (cpp_register_deferred_pragma): New.
+ (register_pragma_internal): New.
+ (_cpp_init_internal_pragmas): Use register_pragma_internal.
+ (do_pragma): Allow pragma expansion after namespace. For deferred
+ pragmas, don't slurp the line into a string.
+ (destringize_and_run): Save tokens for deferred pragmas.
+ (cpp_handle_deferred_pragma): Remove.
+ * macro.c (builtin_macro): Remove pragma token hack.
+ (_cpp_push_token_context): Rename from push_token_context and export.
+ * internal.h (struct lexer_state): Add pragma_allow_expansion.
+ (_cpp_push_token_context): Declare.
+ * lex.c (_cpp_lex_token): Allow _cpp_handle_directive to return
+ a token. Update the line number correctly if so.
+ (_cpp_lex_direct): Emit CPP_PRAGMA_EOL tokens.
+ (cpp_token_val_index): Return CPP_TOKEN_FLD_PRAGMA for pragmas.
+ * include/cpplib.h (PRAGMA_EOL): New.
+ (CPP_TOKEN_FLD_PRAGMA): New.
+ (struct cpp_token): Add val.pragma.
+ (struct cpp_options): Remove defer_pragmas.
+ (cpp_handle_deferred_pragma): Remove.
+ (cpp_register_deferred_pragma): Declare.
+
+2006-01-01 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/25294
+ * directives.c (do_pragma): If pragma line ends with multi-line
+ block comment, end the saved deferred pragma string before that
+ comment. Handle embedded '\0' chars on the pragma line.
+
+2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/23333
+ * include/cpplib.h: Add PURE_ZERO to flags for the cpp_token structure.
+
+2005-12-07 Jon Grimm <jgrimm2@us.ibm.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * include/cpplib.h (CPP_N_DFLOAT): New.
+ * expr.c (interpret_float_suffix): Identify df, dd, and dl
+ suffixes as decimal floating point constants.
+ (cpp_classify_number): Disallow hexadecimal DFP constants.
+
+2005-11-14 Gerald Pfeifer <gerald@pfeifer.com>
+ Ian Lance Taylor <ian@airs.com>
+
+ * include/cpplib.h (struct cpp_callbacks): Annotate error with
+ ATTRIBUTE_FPTR_PRINTF(3,0) instead of ATTRIBUTE_PRINTF(3,0).
+
+2005-11-09 Per Bothner <per@bothner.com>
+ Uros Bizjak <uros@kss-loka.si>
+
+ PR c/24101
+ * init.c (read_original_filename): Temporarily set
+ state.in_directive before calling _cpp_lex_direct for
+ CPP_HASH tokens.
+
+2005-11-03 James E Wilson <wilson@specifix.com>
+
+ PR preprocessor/24202
+ * files.c (_cpp_pop_file_buffer): Set buffer_valid to false.
+
+2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_callbacks): Make error take
+ va_list* parameter.
+ * errors.c (cpp_error): Update call to callback.
+
+2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR preprocessor/22042
+ * macro.c (_cpp_builtin_macro_text): Lower the needed max
+ buffer size.
+ (cpp_quote_string): Don't octalify non printable
+ charactors.
+
+2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c++/17964
+ * include/cpplib.h (struct cpp_options): Add client_diagnostic.
+ (struct cpp_callbacks): Add error.
+ * errors.c (cpp_error): If client_diagnostic, use error callback.
+ * charset.c (convert_escape): Don't use %03o in diagnostic.
+
+2005-10-21 James E Wilson <wilson@specifix.com>
+
+ PR preprocessor/15220
+ * files.c (_cpp_find_file): New parameter angle_brackets. Fix all
+ callers. Pass to open_file_failed.
+ (open_file_failed): New parameter angle_brackets. Fix all callers.
+ Use in print_dep assignment.
+ * init.c (cpp_read_main_file): Pass additional arg to _cpp_find_file.
+ * internal.h (_cpp_find_file): Add new parm to declaration.
+
+2005-10-08 Kazu Hirata <kazu@codesourcery.com>
+
+ * configure.ac: Require 64-bit int for arm*-*-*eabi*.
+ * configure: Regenerate.
+
+2005-10-04 Ian Lance Taylor <ian@airs.com>
+
+ PR preprocessor/13726
+ * directives.c (check_eol_return_comments): New static function.
+ (parse_include): Add buf parameter. Change all callers.
+ (do_include_common): If not discard comments, turn on
+ save_comments. Pass collected comments to include callback.
+ * include/cpplib.h (struct cpp_callbacks): Add new parameter to
+ include callback: cpp_token list.
+
+2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * include/cpplib.h (struct cpp_options): Add extended_identifiers.
+ * init.c (struct lang_flags, lang_defaults): Add
+ extended_identifiers.
+ (cpp_set_lang): Use it.
+ * lex.c (forms_identifier_p): Check extended_identifiers.
+
+2005-08-30 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/20348
+ PR preprocessor/20356
+ * files.c (_cpp_find_file, search_cache): Revert 2004-06-26 and
+ 2004-06-05 changes.
+
+2005-07-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.ac (ACX_PROG_CC_WARNING_OPTS): add
+ -Wmissing-format-attribute.
+
+ * configure: Regenerate.
+
+2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
+
+ * all files: Update FSF address in copyright headers.
+ * makeucnid.c (write_copyright): Update outputted FSF address.
+
+2005-06-13 Zack Weinberg <zack@codesourcery.com>
+
+ * configure.ac: Invoke ZW_CREATE_DEPDIR and
+ ZW_PROG_COMPILER_DEPENDENCIES.
+ * aclocal.m4, configure: Regenerate.
+ * Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
+ New variables.
+ (distclean): Clean up $(DEPDIR) and its contents.
+ (.c.o): Use $(COMPILE).
+ Include $(DEPDIR)/*.Po for most object->header dependencies.
+
+2005-05-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * configure.ac: Check declarations for asprintf and vasprintf.
+ * config.in: Regenerate.
+ * configure: Likewise.
+
+ * charset.c (conversion_loop): Use XRESIZEVEC.
+ (convert_no_conversion): Likewise.
+ (convert_using_iconv): Likewise.
+ (init_iconv_desc): Cast return value of alloca.
+ (cpp_host_to_exec_charset): Use XNEWVEC.
+ (emit_numeric_escape): Use XRESIZEVEC.
+ (cpp_interpret_string): Use XNEWVEC.
+ (cpp_interpret_string): Use XRESIZEVEC.
+ (_cpp_interpret_identifier): Cast return value of alloca.
+ (_cpp_convert_input): Use XNEWVEC and XRESIZEVEC.
+ * directives.c (glue_header_name): Use XNEWVEC and XRESIZEVEC.
+ (parse_include): Use XNEWVEC.
+ (insert_pragma_entry): Rename local variable "new" to
+ "new_entry".
+ (save_registered_pragmas): Cast return value of xmemdup.
+ (destringize_and_run): Same for alloca.
+ (parse_assertion): Likewise.
+ (do_assert): Cast allocated storage to proper type.
+ (cpp_define): Likewise.
+ (_cpp_define_builtin): Likewise.
+ (cpp_undef): Likewise.
+ (handle_assertion): Likewise.
+ (cpp_push_buffer): Rename local variable "new" to "new_buffer".
+ * expr.c (CPP_UPLUS): Cast value to type cpp_ttype.
+ (CPP_UMINUS): Likewise.
+ (struct cpp_operator): Rename from struct operator.
+ (_cpp_expand_op_stack): Use XRESIZEVEC.
+ * files.c (pch_open_file): Use XNEWVEC.
+ (pch_open_file): Use XRESIZEVEC.
+ (read_file_guts): Use XNEWVEC and XRESIZEVEC.
+ (dir_name_of_file): Use XNEWVEC.
+ (make_cpp_file): Use XCNEW.
+ (make_cpp_dir): Likewise.
+ (allocate_file_hash_entries): USE XNEWVEC.
+ (cpp_included): Cast return value of htab_find_with_hash.
+ (append_file_to_dir): Use XNEWVEC.
+ (read_filename_string): Likewise. Use XRESIZEVEC too.
+ (read_name_map): Cast return value of alloca. Use XRESIZEVEC.
+ (remap_filename): Use XNEWVEC.
+ (struct pchf_entry): Move definition out of struct pchf_data.
+ (_cpp_save_file_entries): Use XCNEWVAR.
+ (_cpp_read_file_entries): Use XNEWVAR.
+ * identifiers.c (alloc_node): Use XOBNEW.
+ * init.c (cpp_create_reader): Use XCNEW.
+ (cpp_init_builtins): Cast of b->value to enum builtin_type.
+ (read_original_directory): Cast return value of alloca.
+ * lex.c (add_line_note): Use XRESIZEVEC.
+ (warn_about_normalization): Use XNEWVEC.
+ (_cpp_lex_direct): Cast node->directive_index to (enum cpp_ttype).
+ (new_buff): Use XNEWVEC.
+ * line-map.c (linemap_add): Use XRESIZEVEC.
+ * macro.c (builtin_macro): Cast return value of alloca.
+ (paste_tokens): Likewise.
+ (expand_arg): Use XNEWVEC and XRESIZEVEC.
+ (_cpp_save_parameter): Use XRESIZEVEC.
+ (create_iso_definition): Cast allocated storage to proper type.
+ (_cpp_create_definition): Likewise.
+ (cpp_macro_definition): Use XRESIZEVEC.
+ * makedepend.c (add_clm): Use XNEW.
+ (add_dir): Likewise.
+ * mkdeps.c (munge): Use XNEWVEC.
+ (deps_init): Use XCNEW.
+ (deps_add_target): Use XRESIZEVEC.
+ (deps_add_default_target): Cast return value of alloca.
+ (deps_add_dep): Use XRESIZEVEC.
+ (deps_add_vpath): Likewise. Use XNEWVEC too.
+ (deps_restore): Likewise.
+ * pch.c (save_idents): Use XNEW and XNEWVEC.
+ (cpp_save_state): Use XNEW.
+ (count_defs): Cast return value of htab_find.
+ (write_defs): Likewise.
+ (cpp_write_pch_deps): Use XNEWVEC.
+ (collect_ht_nodes): Use XRESIZEVEC.
+ (cpp_valid_state): Use XNEWVEC.
+ (save_macros): Use XRESIZEVEC. Cast return value of xmemdup.
+ * symtab.c (ht_create): Use XCNEW.
+ (ht_lookup_with_hash): Cast return value of obstack_copy0.
+ (ht_expand): Use XCNEWVEC.
+ * system.h (HAVE_DESIGNATED_INITIALIZERS): False if __cplusplus.
+ (bool): Do not define if __cplusplus.
+
+2005-05-12 Zack Weinberg <zack@codesourcery.com>
+
+ * directives.c (#sccs table entry): Mark IN_I, consistent with #ident.
+ (do_sccs): Delete function definition, #define to do_ident.
+ (do_ident): Don't hardwire directive name.
+
+2005-05-12 Ryota Kunisawa <kunisawa@access.co.jp>
+
+ PR bootstrap/21230
+ * configure: Regenerate.
+
+2005-04-27 Andris Pavenis <pavenis@latnet.lv>
+
+ * files.c: Include io.h for DJGPP to get prototype of setmode.
+
+2005-04-19 Per Bothner <per@bothner.com>
+
+ PR preprocessor/20907
+ * line-map.c (linemap_line_start): Fix bug when we need to increse
+ column_bits but can re-use the current line_map.
+
+2005-04-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * system.h (fopen, fdopen, freopen): Define these to the unlocked
+ libiberty functions.
+
+2005-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * configure.ac (libcpp_UNLOCKED_FUNCS): New.
+ (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
+ * system.h (putchar, getc, getchar, clearerr, feof, fileno,
+ fflush, fgetc, fgets, ferror, fread): Redefine to the associated
+ _unlocked function.
+ (fwrite_unlocked): Fix prototype.
+
+ * configure, config.in: Regenerate.
+
+2005-04-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR preprocessor/19475
+ * macro.c (create_iso_definition): For < ISO C99, don't
+ pedwarn if there is no whitespace between macro name and its
+ replacement, but the replacement starts with a basic character
+ set character.
+
+2005-03-28 Andreas Jaeger <aj@suse.de>
+
+ * lex.c (warn_about_normalization): Cast field width to int to
+ avoid warning.
+
+2005-03-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * configure.ac: Consistently use solaris2.1[0-9]* instead of
+ solaris2.1[0-9].
+ * configure: Regenerate.
+
+2005-03-15 Geoffrey Keating <geoffk@apple.com>
+
+ * charset.c (_cpp_valid_ucn): In identifiers, reject a partial
+ UCN rather than printing an error.
+
+2005-03-14 Geoffrey Keating <geoffk@apple.com>
+
+ * lex.c (forms_identifier_p): Disable UCNs in C89 mode.
+
+2005-03-14 Geoffrey Keating <geoffk@apple.com>
+
+ * init.c (cpp_create_reader): Default warn_normalize to normalized_C.
+ * charset.c: Update for new format of ucnid.h.
+ (ucn_valid_in_identifier): Update for new format of ucnid.h.
+ Add NST parameter, and update it; update callers.
+ (cpp_valid_ucn): Add NST parameter, update callers. Replace abort
+ with cpp_error.
+ (convert_ucn): Pass normalize_state to cpp_valid_ucn.
+ * internal.h (struct normalize_state): New.
+ (INITIAL_NORMALIZE_STATE): New.
+ (NORMALIZE_STATE_RESULT): New.
+ (NORMALIZE_STATE_UPDATE_IDNUM): New.
+ (_cpp_valid_ucn): New.
+ * lex.c (warn_about_normalization): New.
+ (forms_identifier_p): Add normalize_state parameter, update callers.
+ (lex_identifier): Add normalize_state parameter, update callers. Keep
+ the state current.
+ (lex_number): Likewise.
+ (_cpp_lex_direct): Pass normalize_state to subroutines. Check
+ it with warn_about_normalization.
+ * makeucnid.c: New.
+ * ucnid.h: Replace.
+ * ucnid.pl: Remove.
+ * ucnid.tab: Make appropriate for input to makeucnid.c. Remove
+ comments about obsolete version of C++.
+ * include/cpplib.h (enum cpp_normalize_level): New.
+ (struct cpp_options): Add warn_normalize field.
+
+2005-03-11 Geoffrey Keating <geoffk@apple.com>
+
+ * directives.c (glue_header_name): Update call to cpp_spell_token.
+ * internal.h (_cpp_interpret_identifier): New.
+ * charset.c (_cpp_interpret_identifier): New.
+ (_cpp_valid_ucn): Allow UCN version of '$'.
+ * lex.c (lex_identifier): Add extra parameter to indicate if initial
+ character was '$' or '\'. Support identifiers with UCNs.
+ (forms_identifier_p): Allow UCNs.
+ (_cpp_lex_direct): Pass extra parameter to lex_identifier.
+ (utf8_to_ucn): New.
+ (cpp_spell_token): Add FORSTRING parameter. Use it.
+ (cpp_token_as_text): Update call to cpp_spell_token.
+ (cpp_output_token): Write UCNs back out.
+ (stringify_arg): Update call to cpp_spell_token.
+ (paste_tokens): Likewise.
+ (cpp_macro_definition): Likewise.
+ * macro.c (stringify_arg): Likewise.
+ (paste_tokens): Likewise.
+ (cpp_macro_definition): Likewise.
+ * include/cpplib.h: Add parameter to cpp_spell_token.
+
+2005-03-04 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/20282
+ PR bootstrap/20305
+ * macro.c (replace_args, cpp_get_token): Copy whole
+ cpp_token_u instead of just cpp_string field from it.
+
+2005-02-28 Devang Patel <dpatel@apple.com>
+
+ * directives.c (do_line): Save sysp early before line table is
+ realloc'ed.
+
+2005-02-20 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18785
+ * charset.c (LAST_POSSIBLY_BASIC_SOURCE_CHAR): New helper macro.
+ (cpp_host_to_exec_charset): New function.
+ * include/cpplib.h: Declare cpp_host_to_exec_charset.
+
+2005-02-19 Devang Patel <dpatel@apple.com>
+
+ * charset.c (_cpp_convert_input): Check '\r' before inserting
+ '\n' at the end.
+
+2005-02-15 Eric Christopher <echristo@redhat.com>
+
+ PR preprocessor/19077
+ * macro.c (cpp_macro_definition): Move handling of whitespace
+ to PREV_WHITE conditional. Remove overloading of len
+ variable.
+
+2005-02-14 Kazu Hirata <kazu@cs.umass.edu>
+
+ * directives.c, files.c, init.c, internal.h, macro.c, pch.c,
+ traditional.c: Update copyright.
+
+2005-02-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/19818
+ * configure.ac: Check for declaration of basename and getopt.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * internal.h (ustrcspn): New.
+ * macro.c (create_iso_definition): Fix allocation of memory.
+ (padding_token): Add cast to remove const-ness.
+ * pch.c (cpp_read_state): Use ustrcspn.
+
+2005-02-08 Mike Stump <mrs@apple.com>
+
+ * files.c (pchf_adder): Remove.
+ (struct pchf_adder_info): Likewise.
+ (_cpp_save_file_entries): Write out all files so that #import works.
+
+2005-01-23 Joseph S. Myers <joseph@codesourcery.com>
+
+ * configure: Regenerate.
+
+2005-01-11 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
+
+ * include/cpplib.h (c_lang): Fix comment to say cpp_create_reader.
+
+ * include/cpplib.h: Also update copyright years.
+
+2005-01-03 Geoffrey Keating <geoffk@apple.com>
+
+ * files.c (_cpp_find_file): Add files found by search_path_exhausted
+ to the list of all files.
+
+2005-01-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * internal.h: Update references to Cpp lib filenames.
+ * directives.c: Likewise.
+ * init.c: Likewise.
+ * macro.c: Likewise.
+ * traditional.c: Likewise.
+
+2004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR preprocessor/15167
+ * files.c (destroy_cpp_file): New function.
+ (should_stack_file): Make a new file if the
+ compared file is still stacked.
+
+2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ PR preprocessor/17610
+ * directives.c (do_include_common): Error out if an empty filename
+ is given for #include (or #include_next or #import).
+
+2004-11-27 Roger Sayle <roger@eyesopen.com>
+ Zack Weinberg <zack@codesourcery.com>
+
+ * internal.h: Replace all uses of uchar with unsigned char.
+ * include/cpp-id-data.h: Likewise. Guard typedef of uchar
+ with !IN_GCC, so uchar is only defined whilst building libcpp.
+
+2004-11-24 Kelley Cook <kcook@gcc.gnu.org>
+
+ * aclocal.m4: Regenerate.
+
+2004-11-24 Roger Sayle <roger@eyesopen.com>
+
+ PR preprocessor/15824
+ * configure.ac: Correct HAVE_UCHAR test to #include <sys/types.h>
+ directly, instead of the non-existant "system.h" and "ansidecl.h".
+ * configure: Regenerate.
+
+2004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * internal.h (struct lexer_state): Add in_deferred_pragma.
+ * directives.c (struct pragma_entry): Add allow_expansion.
+ (insert_pragma_entry): Take allow_expansion flag.
+ (register_pragma): Likewise.
+ (cpp_register_pragma): Likewise.
+ (_cpp_init_internal_pragmas): Update calls to cpp_register_pragma.
+ (do_pragma): Honor allow_expansion.
+ (cpp_handle_deferred_pragma): Set in_deferred_pragma.
+ * include/cpplib.h (cpp_register_pragma): Update prototype.
+
+2004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * configure.ac (i[34567]86-*-solaris2.1[0-9]*): Set
+ need_64bit_hwint=yes.
+ * configure: Regenerate.
+
+2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
+
+ * Makefile.in ($(PACKAGE).pot): New rule. Depend on
+ po/$(PACKAGE).pot.
+ (po/$(PACKAGE).pot): Use ":" instead of "," in --keyword
+ arguments. Add keywords _, N_, SYNTAX_ERROR and SYNTAX_ERROR2.
+ Remove local srcdir path from generated file.
+
+2004-11-04 Zack Weinberg <zack@codesourcery.com>
+ Gerald Pfeifer <gerald@pfeifer.com>
+
+ * internal.h (HAVE_ICONV): Undefine if we do not have HAVE_ICONV_H
+ as well.
+
+2004-10-27 Zack Weinberg <zack@codesourcery.com>
+
+ PR 18075
+ * directives.c (do_pragma): Do not defer pragmas which are unknown.
+ (cpp_handle_deferred_pragma): Add cast to silence warning.
+
+2004-10-14 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * errors.c (_cpp_begin_message): Print "error: " for errors.
+
+2004-10-10 Andreas Jaeger <aj@suse.de>
+
+ * makedepend.c: Include mkdeps.h for prototype of deps_add_vpath.
+ * Makefile.in (makedepend.o): Add dependency on mkdeps.h.
+
+2004-10-08 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * pch.c (cpp_write_pch_state): Remove variable z as it is not
+ used.
+ (cpp_read_state): Remove unused variables, m, d and mac_count.
+
+2004-09-29 Per Bothner <per@bothner.com>
+
+ * directives.c (cpp_handle_deferred_pragma): Save, clear and restore
+ cb.line_change. Otherwise do_pragma will call the line_change
+ call-back with a meaningless line number.
+
+2004-09-24 Zack Weinberg <zack@codesourcery.com>
+
+ * configure.ac: Move AC_PROG_MAKE_SET, AC_PROG_INSTALL to
+ programs cluster. Use ACX_PROG_CC_WARNING_OPTS,
+ ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_PROG_CC_WARNINGS_ARE_ERRORS.
+ * aclocal.m4, configure: Regenerate.
+ * init.c: Include localedir.h.
+ * Makefile.in (WARN_CFLAGS, ALL_CFLAGS): New variables.
+ (DEFS): Delete.
+ (.c.o): Use $(ALL_CFLAGS).
+ (localedir.h, localedir.hs): New rules.
+ (clean): Use rm -rf to remove directories.
+ (distclean): Also delete localedir.h and localedir.hs.
+ (init.o): Update dependencies.
+
+2004-09-22 Kelley Cook <kcook@gcc.gnu.org>
+
+ * Makefile.in (aclocal.m4): Update dependencies.
+ * configure.ac (AC_CONFIG_MACRO_DIR): New.
+ * aclocal.m4, configure: Regenerate.
+
+2004-09-17 Zack Weinberg <zack@codesourcery.com>
+
+ * charset.c (_cpp_destroy_iconv, emit_numeric_escape)
+ (_cpp_convert_input, _cpp_default_encoding): Add comments.
+ Some other comments in this file also tweaked.
+
+ * directives.c (do_pragma): Save current buffer position
+ before lexing the pragma keywords; don't call
+ _cpp_backup_tokens in the defer_pragmas case.
+
+2004-09-15 Per Bothner <per@bothner.com>
+
+ * include/line-map.h (line_map_start): Add parameter names so
+ preceding comment makes sense.
+ (linemap_add): Remove from comment mention of non-existing parameter.
+
+2004-09-09 Matt Austern <austern@apple.com>
+ Zack Weinberg <zack@codesourcery.com>
+
+ * include/cpplib.h (TTYPE_TABLE): Remove CPP_ and SPELL_
+ prefixes throughout. Add entry for PRAGMA. Remove
+ unnecessary "= 0" from EQ.
+ (enum cpp_ttype): Adjust OP and TK definitions to restore
+ prefixes, via token-paste.
+ (CPP_LAST_EQ, CPP_FIRST_DIGRAPH, CPP_LAST_PUNCTUATOR, CPP_LAST_CPP_OP):
+ Change from #defines to additional cpp_ttype enumerators.
+ (struct cpp_options): Add defer_pragmas.
+ (cpp_handle_deferred_pragma): Prototype new interface.
+
+ * internal.h (struct cpp_reader): Add directive_result.
+ * directives.c (struct pragma_entry): Add is_internal field;
+ give boolean fields type bool.
+ (start_directive): Initialize pfile->directive_result.type.
+ (_cpp_do__Pragma): Likewise.
+ (run_directive): Do not crash if pfile->buffer->prev is NULL.
+ (insert_pragma_entry): Add 'internal' argument; set new->is_internal
+ from it.
+ (register_pragma): New static function, bulk of former
+ cpp_register_pragma here; add 'internal' argument, pass along
+ to insert_pragma_entry.
+ (cpp_register_pragma): Now a wrapper around register_pragma which
+ always passes false for 'internal' argument.
+ (_cpp_init_internal_pragmas): Call register_pragma directly, passing
+ true for 'internal'.
+ (do_pragma): If CPP_OPTION (pfile, defer_pragmas) and this isn't
+ an internal pragma, save text till the end of the line as a CPP_PRAGMA
+ token instead of executing the pragma.
+ (cpp_handle_deferred_pragma): New interface.
+ * lex.c (token_spellings): Adjust OP and TK definitions to
+ match changes to cpplib.h.
+ (_cpp_lex_token): Check for a directive-result token and
+ return it if present.
+ (cpp_token_val_index): Handle CPP_PRAGMA.
+ * macro.c (cpp_builtin_macro_text): Correct comment.
+ (builtin_macro): Handle directive-result tokens from _cpp_do__Pragma.
+
+2004-09-06 Serge Belyshev <belyshev@lubercy.com>
+
+ PR preprocessor/14699
+ * symtab.c (ht_dump_statistics): Change type of sum_of_squares
+ from size_t to double.
+
+2004-08-28 Andreas Schwab <schwab@suse.de>
+ Andreas Jaeger <aj@suse.de>
+
+ * configure.ac: Set PACKAGE correctly.
+ * configure: Regenerated.
+
+2004-08-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in: Add back top_builddir.
+
+2004-08-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * configure.ac: Replace Automake macro invocations
+ with manual Autoconf checks and substitutions.
+ * configure: Regenerate.
+ * aclocal.m4: Regenerate.
+ * config.in: Regenerate.
+ * Makefile.am: Removed.
+ * Makefile.in: Heavy simplification and reorganization.
+
+2004-08-09 Mark Mitchell <mark@codesourcery.com>
+
+ * configure.ac (arm*-*-eabi*): New target.
+ (arm*-*-symbianelf*): Likewise.
+ * configure: Regenerated.
+
+2004-07-24 Bernardo Innocenti <bernie@develer.com>
+
+ * internal.h (xnew, xcnew, xnewvec, xcnewvec, xobnew): Remove.
+ * directives.c: Use XNEW-family macros from libiberty.
+ * lex.c: Likewise.
+ * macro.c: Likewise.
+ * cpplib.h (cpp_deps_style): Export enum with name.
+
+2004-07-23 Matthias Klose <doko@debian.org>
+
+ * init.c (init_library): Use PACKAGE for the text domain.
+
+2004-07-16 Andris Pavenis <pavenis@latnet.lv>
+
+ PR preprocessor/16366
+ * internal.h (struct cpp_reader): New field dir_hash.
+ * files.c (make_cpp_dir): Use dir_hash, not file_hash.
+ (_cpp_init_files, _cpp_cleanup_files): Update for new field.
+
+2004-07-04 Neil Booth <neil@duron.akihabara.co.uk>
+
+ PR preprocessor/16192
+ PR preprocessor/15913
+ PR preprocessor/15572
+ * expr.c (_cpp_parse_expr): Handle remaining cases where an
+ expression is missing.
+ * init.c (post_options): Traditional cpp doesn't do // comments.
+
+2004-06-30 Per Bothner <per@bothner.com>
+
+ * include/line-map.h (fileline): Remove old typedef.
+ * internal.h (struct cpp_reader): Use source_location typedef instead.
+
+2004-06-26 Zack Weinberg <zack@codesourcery.com>
+
+ Partially revert patch of 2004-06-05.
+ * files.c (search_cache): Remove pfile argument. Don't check
+ for file that would be found by "" or <> search here...
+ (_cpp_find_file): ...do it here, before calling find_file_in_dir.
+ Do not apply directory-of-current-file correction to files
+ found by this check. Rearrange code slightly.
+
+2004-06-21 Geoffrey Keating <geoffk@apple.com>
+
+ * files.c (should_stack_file): Correct swapped parameters to call
+ to cb.read_pch.
+ * pch.c (cpp_valid_state): Handle -fpreprocessed.
+
+2004-06-15 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.in: Regenerate with automake 1.8.5.
+ * aclocal.m4: Likewise.
+ * configure: Regenerate.
+
+2004-06-11 Zack Weinberg <zack@codesourcery.com>
+
+ * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
+ * configure, config.in: Regenerate.
+ * system.h: Unconditionally define bool as unsigned char,
+ BOOL_BITFIELD as unsigned int.
+ * .cvsignore: New file.
+
+2004-06-09 Geoffrey Keating <geoffk@apple.com>
+
+ * traditional.c (push_replacement_text): Set macro->traditional.
+ (save_replacement_text): Likewise.
+ * pch.c (cpp_write_pch_state): Don't write list of defined macros.
+ (struct save_macro_item): Delete.
+ (struct save_macro_data): Use a character array not the previous
+ structured format.
+ (save_macros): Save macro as text not as internal structures.
+ (cpp_prepare_state): Update for changes to save_macro_data.
+ (cpp_read_state): Don't read macros defined in PCH. Restore
+ -D macros as text.
+ * macro.c (create_iso_definition): Honour alloc_subobject.
+ Clear traditional flag.
+ (_cpp_create_definition): Honour alloc_subobject.
+ * lex.c (cpp_token_val_index): New.
+ * internal.h: Include cpp-id-data.h.
+ (uchar): Move definition to cpp-id-data.h.
+ (U): Likewise.
+ (cpp_macro): Likewise.
+ * directives.c (struct answer): Move to cpp-id-data.h.
+ (do_assert): Honour alloc_subobject.
+
+ * include/symtab.h (struct ht): Add field 'alloc_subobject'.
+ * include/cpplib.h (struct cpp_string): Add GTY marker.
+ (enum cpp_token_fld_kind): New.
+ (struct cpp_token): Add GTY markers.
+ (cpp_token_val_index): Prototype.
+ (CPP_HASHNODE_VALUE_IDX): New.
+ (struct cpp_hashnode): Don't skip fields of 'value' when marking.
+ * include/cpp-id-data.h: New file.
+
+2004-06-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.am (all-local): New.
+ * Makefile.in: Regenerate.
+
+2004-06-06 Roger Sayle <roger@eyesopen.com>
+
+ * Makefile.am (LIBICONV): Declare.
+ (makedepend_LDADD): Use LIBICONV.
+ * Makefile.in: Regenerate.
+
+2004-06-05 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * Makefile.am (LIBINTL): Declare
+ (makedepend_LDADD): Use LIBINTL.
+ * Makefile.in: Regenerate.
+
+2004-06-05 Zack Weinberg <zack@codesourcery.com>
+
+ * Makefile.am: Add makedepend.
+ * Makefile.in, aclocal.m4: Regenerate.
+ * charset.c: Insert a space to avoid a warning.
+ * directives.c: Include mkdeps.h.
+ (_cpp_handle_directive): Reenable macro expander if appropriate.
+ (undefine_macros): Inline body of _cpp_free_definition for speed.
+ Do not call undef callback or _cpp_warn_if_unused_macro.
+ (cpp_get_deps): New interface.
+ * files.c (search_cache): Add pfile argument. Check for file
+ that would be found by "" or <> search here...
+ (_cpp_find_file): ...not here. Correct recorded start_dir of
+ files found by directory-of-current-file search that would be
+ found by "" or <> search.
+ * init.c (cpp_add_dependency_target): Delete.
+ * internal.h (struct lexer_state): Add discarding_output flag.
+ * lex.c (lex_identifier): Compute hash function while scanning.
+ * macro.c (cpp_scan_nooutput): Disable macro expansion outside
+ directives.
+ * makedepend.c: New file.
+ * mkdeps.c (struct deps): Add vpath vector.
+ (apply_vpath, deps_add_vpath): New function.
+ (deps_free): Free vpath vector.
+ (deps_add_dep, deps_add_target): Use apply_vpath.
+ * symtab.c (calc_hash): Use HT_HASHSTEP and HT_FINISH.
+ (ht_lookup_with_hash): New function.
+ * cpplib.h, mkdeps.h: Update prototypes.
+ * symtab.h: Update prototypes.
+ (HT_HASHSTEP, HT_FINISH): New macros.
+
+2004-05-29 Geoffrey Keating <geoffk@apple.com>
+
+ * symtab.c (ht_create): Set entries_owned.
+ (ht_destroy): Honour entries_owned.
+ (ht_expand): Likewise.
+ (ht_load): New.
+ * include/symtab.h (struct ht): New field 'entries_owned'
+ (ht_load): New prototype.
+
+2004-05-26 Paolo Bonzini <bonzini@gnu.org>
+
+ PR bootstrap/15651
+ * configure.ac: Fix m4 quoting when picking
+ the size of HOST_WIDE_INT.
+ * configure: Regenerate.
+
+2004-05-25 Paolo Bonzini <bonzini@gnu.org>
+
+ * Makefile.am: the correct directory for
+ gettext include files is given by @INCINTL@.
+ * Makefile.in: Regenerate.
+
+2004-05-24 Paolo Bonzini <bonzini@gnu.org>
+
+ * system.h [!ENABLE_NLS]: dgettext takes two
+ parameters.
+
+2004-05-23 Paolo Bonzini <bonzini@gnu.org>
+
+ Moved libcpp from the gcc subdirectory to the toplevel.
+ * Makefile.am: New file.
+ * Makefile.in: Regenerate.
+ * configure.ac: New file.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * charset.c: Moved from gcc/cppcharset.c. Add note about
+ brokenness of input charset detection. Adjust for change
+ in name of cppucnid.h.
+ * errors.c: Moved from gcc/cpperror.c. Do not include intl.h.
+ * expr.c: Moved from gcc/cppexp.c.
+ * files.c: Moved from gcc/cppfiles.c. Do not include intl.h.
+ Remove #define of O_BINARY, it is in system.h.
+ * identifiers.c: Moved from gcc/cpphash.c.
+ * internal.h: Moved from gcc/cpphash.h. Change header
+ guard name. All other files adjusted to match name change.
+ * init.c: Moved from gcc/cppinit.c.
+ (init_library) [ENABLE_NLS]: Call bindtextdomain.
+ * lex.c: Moved from gcc/cpplex.c.
+ * directives.c: Moved from gcc/cpplib.c.
+ * macro.c: Moved from gcc/cppmacro.c.
+ * pch.c: Moved from gcc/cpppch.c. Do not include intl.h.
+ * traditional.c: Moved from gcc/cpptrad.c.
+ * ucnid.h: Moved from gcc/cppucnid.h. Change header
+ guard name.
+ * ucnid.pl: Moved from gcc/cppucnid.pl.
+ * ucnid.tab: Moved from gcc/cppucnid.tab. Change header
+ guard name.
+ * symtab.c: Moved from gcc/hashtable.c.
+ * line-map.c: Moved from gcc. Do not include intl.h.
+ * mkdeps.c: Moved from gcc.
+ * system.h: New file.
+ * include/cpplib.h: Moved from gcc. Change header guard name.
+ * include/line-map.h: Moved from gcc. Change header guard name.
+ * include/mkdeps.h: Moved from gcc. Change header guard name.
+ * include/symtab.h: Moved from gcc/hashtable.h. Change header
+ guard name.
diff --git a/gcc-4.9/libcpp/Makefile.in b/gcc-4.9/libcpp/Makefile.in
new file mode 100644
index 000000000..5561c972f
--- /dev/null
+++ b/gcc-4.9/libcpp/Makefile.in
@@ -0,0 +1,279 @@
+# @configure_input@
+# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in
+
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
+
+#This file is part of libcpp.
+
+#libcpp is free software; you can redistribute it and/or modify
+#it under the terms of the GNU General Public License as published by
+#the Free Software Foundation; either version 3, or (at your option)
+#any later version.
+
+#libcpp is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+#GNU General Public License for more details.
+
+#You should have received a copy of the GNU General Public License
+#along with libcpp; see the file COPYING3. If not see
+#<http://www.gnu.org/licenses/>.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_builddir = .
+VPATH = @srcdir@
+INSTALL = @INSTALL@
+AR = ar
+ARFLAGS = cru
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+CATALOGS = $(patsubst %,po/%,@CATALOGS@)
+CC = @CC@
+CFLAGS = @CFLAGS@
+WARN_CFLAGS = @warn@ @c_warn@ @WARN_PEDANTIC@ @WERROR@
+CXX = @CXX@
+CXXFLAGS = @CXXFLAGS@
+WARN_CXXFLAGS = @warn@ @WARN_PEDANTIC@ @WERROR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+INCINTL = @INCINTL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+SHELL = @SHELL@
+USED_CATALOGS = @USED_CATALOGS@
+XGETTEXT = @XGETTEXT@
+CCDEPMODE = @CCDEPMODE@
+CXXDEPMODE = @CXXDEPMODE@
+DEPDIR = @DEPDIR@
+NOEXCEPTION_FLAGS = @noexception_flags@
+PICFLAG = @PICFLAG@
+
+datarootdir = @datarootdir@
+datadir = @datadir@
+exec_prefix = @prefix@
+libdir = @libdir@
+localedir = $(datadir)/locale
+prefix = @prefix@
+
+MSGMERGE = msgmerge
+mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs
+depcomp = $(SHELL) $(srcdir)/../depcomp
+
+INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \
+ -I$(srcdir)/include
+
+ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG)
+ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
+ $(CPPFLAGS) $(PICFLAG)
+
+# The name of the compiler to use.
+COMPILER = $(CXX)
+COMPILER_FLAGS = $(ALL_CXXFLAGS)
+DEPMODE = $(CXXDEPMODE)
+
+
+libcpp_a_OBJS = charset.o directives.o directives-only.o errors.o \
+ expr.o files.o identifiers.o init.o lex.o line-map.o macro.o \
+ mkdeps.o pch.o symtab.o traditional.o
+
+libcpp_a_SOURCES = charset.c directives.c directives-only.c errors.c \
+ expr.c files.c identifiers.c init.c lex.c line-map.c macro.c \
+ mkdeps.c pch.c symtab.c traditional.c
+
+all: libcpp.a $(USED_CATALOGS)
+
+.SUFFIXES:
+.SUFFIXES: .c .gmo .o .obj .po .pox
+
+libcpp.a: $(libcpp_a_OBJS)
+ -rm -f libcpp.a
+ $(AR) $(ARFLAGS) libcpp.a $(libcpp_a_OBJS)
+ $(RANLIB) libcpp.a
+
+# Rules to rebuild the configuration
+
+Makefile: $(srcdir)/Makefile.in config.status
+ $(SHELL) ./config.status Makefile
+
+config.status: $(srcdir)/configure
+ $(SHELL) ./config.status --recheck
+
+$(srcdir)/configure: @MAINT@ $(srcdir)/aclocal.m4
+ cd $(srcdir) && $(AUTOCONF)
+
+$(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/../config/acx.m4 \
+ $(srcdir)/../config/gettext-sister.m4 $(srcdir)/../config/iconv.m4 \
+ $(srcdir)/../config/codeset.m4 $(srcdir)/../config/lib-ld.m4 \
+ $(srcdir)/../config/lib-link.m4 $(srcdir)/../config/lib-prefix.m4 \
+ $(srcdir)/../config/override.m4 $(srcdir)/../config/proginstall.m4 \
+ $(srcdir)/configure.ac
+ cd $(srcdir) && $(ACLOCAL) -I ../config
+
+config.h: stamp-h1
+ test -f config.h || (rm -f stamp-h1 && $(MAKE) stamp-h1)
+
+stamp-h1: $(srcdir)/config.in config.status
+ -rm -f stamp-h1
+ $(SHELL) ./config.status config.h
+
+$(srcdir)/config.in: @MAINT@ $(srcdir)/configure.ac
+ cd $(srcdir) && $(AUTOHEADER)
+ -rm -f stamp-h1
+
+# It is not possible to get LOCALEDIR defined in config.h because
+# the value it needs to be defined to is only determined in the
+# Makefile. Hence we do this instead.
+localedir.h: localedir.hs; @true
+localedir.hs: Makefile
+ echo "#define LOCALEDIR \"$(localedir)\"" > localedir.new
+ $(srcdir)/../move-if-change localedir.new localedir.h
+ echo timestamp > localedir.hs
+
+# Installation rules and other phony targets
+
+# These rule has to look for .gmo modules in both srcdir and
+# the cwd, and has to check that we actually have a catalog
+# for each language, in case they weren't built or included
+# with the distribution.
+installdirs:
+ @$(mkinstalldirs) $(DESTDIR)$(datadir); \
+ cats="$(CATALOGS)"; for cat in $$cats; do \
+ lang=`basename $$cat | sed 's/\.gmo$$//'`; \
+ if [ -f $$cat ] || [ -f $(srcdir)/$$cat ]; then \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
+ fi; \
+ done
+
+install-strip install: all installdirs
+ cats="$(CATALOGS)"; for cat in $$cats; do \
+ lang=`basename $$cat | sed 's/\.gmo$$//'`; \
+ if [ -f $$cat ]; then :; \
+ elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \
+ else continue; \
+ fi; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ done
+
+mostlyclean:
+ -rm -f *.o
+
+clean: mostlyclean
+ -rm -rf libcpp.a $(srcdir)/autom4te.cache
+
+distclean: clean
+ -rm -f config.h stamp-h1 config.status config.cache config.log \
+ configure.lineno configure.status.lineno Makefile localedir.h \
+ localedir.hs $(DEPDIR)/*.Po
+ -rmdir $(DEPDIR)
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -rm -f $(srcdir)/configure $(srcdir)/aclocal.m4
+
+check:
+installcheck:
+dvi:
+pdf:
+html:
+info:
+install-info:
+install-pdf:
+install-man:
+install-html:
+
+update-po: $(CATALOGS:.gmo=.pox)
+
+.PHONY: installdirs install install-strip mostlyclean clean distclean \
+ maintainer-clean check installcheck dvi pdf html info install-info \
+ install-man update-po install-html
+
+# Dependency rule.
+COMPILE.base = $(COMPILER) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(COMPILER_FLAGS) -c
+ifeq ($(DEPMODE),depmode=gcc3)
+# Note that we put the dependencies into a .Tpo file, then move them
+# into place if the compile succeeds. We need this because gcc does
+# not atomically write the dependency output file.
+COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Tpo
+POSTCOMPILE = @mv $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+else
+COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \
+ $(depcomp) $(COMPILE.base)
+# depcomp handles atomicity for us, so we don't need a postcompile
+# step.
+POSTCOMPILE =
+endif
+
+# Implicit rules and I18N
+
+.c.o:
+ $(COMPILE) $<
+ $(POSTCOMPILE)
+
+# N.B. We do not attempt to copy these into $(srcdir).
+.po.gmo:
+ $(mkinstalldirs) po
+ $(GMSGFMT) --statistics -o $@ $<
+
+# The new .po has to be gone over by hand, so we deposit it into
+# build/po with a different extension.
+# If build/po/$(PACKAGE).pot exists, use it (it was just created),
+# else use the one in srcdir.
+.po.pox:
+ $(mkinstalldirs) po
+ $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \
+ then echo po/$(PACKAGE).pot; \
+ else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@
+
+# Rule for regenerating the message template.
+$(PACKAGE).pot: po/$(PACKAGE).pot
+po/$(PACKAGE).pot: $(libcpp_a_SOURCES)
+ $(mkinstalldirs) $(srcdir)/po
+ $(XGETTEXT) --default-domain=$(PACKAGE) \
+ --keyword=_ --keyword=N_ \
+ --keyword=cpp_error:3 \
+ --keyword=cpp_warning:3 \
+ --keyword=cpp_pedwarning:3 \
+ --keyword=cpp_warning_syshdr:3 \
+ --keyword=cpp_error_with_line:5 \
+ --keyword=cpp_warning_with_line:5 \
+ --keyword=cpp_pedwarning_with_line:5 \
+ --keyword=cpp_warning_with_line_syshdr:5 \
+ --keyword=cpp_errno:3 \
+ --keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \
+ --copyright-holder="Free Software Foundation, Inc." \
+ --msgid-bugs-address="http://gcc.gnu.org/bugs.html" \
+ --language=c -o po/$(PACKAGE).pot.tmp $^
+ sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot
+ rm po/$(PACKAGE).pot.tmp
+
+TAGS_SOURCES = $(libcpp_a_SOURCES) internal.h ucnid.h \
+ include/line-map.h include/symtab.h include/cpp-id-data.h \
+ include/cpplib.h include/mkdeps.h system.h
+
+TAGS: $(TAGS_SOURCES)
+ cd $(srcdir) && etags $(TAGS_SOURCES)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+# Dependencies
+-include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS))
+
+# Dependencies on generated headers have to be explicit.
+init.o: localedir.h
diff --git a/gcc-4.9/libcpp/aclocal.m4 b/gcc-4.9/libcpp/aclocal.m4
new file mode 100644
index 000000000..c3a9f037a
--- /dev/null
+++ b/gcc-4.9/libcpp/aclocal.m4
@@ -0,0 +1,24 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_include([../config/acx.m4])
+m4_include([../config/codeset.m4])
+m4_include([../config/depstand.m4])
+m4_include([../config/gettext-sister.m4])
+m4_include([../config/iconv.m4])
+m4_include([../config/lead-dot.m4])
+m4_include([../config/lib-ld.m4])
+m4_include([../config/lib-link.m4])
+m4_include([../config/lib-prefix.m4])
+m4_include([../config/override.m4])
+m4_include([../config/warnings.m4])
diff --git a/gcc-4.9/libcpp/charset.c b/gcc-4.9/libcpp/charset.c
new file mode 100644
index 000000000..a3c24d686
--- /dev/null
+++ b/gcc-4.9/libcpp/charset.c
@@ -0,0 +1,1806 @@
+/* CPP Library - charsets
+ Copyright (C) 1998-2014 Free Software Foundation, Inc.
+
+ Broken out of c-lex.c Apr 2003, adding valid C99 UCN ranges.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+/* Character set handling for C-family languages.
+
+ Terminological note: In what follows, "charset" or "character set"
+ will be taken to mean both an abstract set of characters and an
+ encoding for that set.
+
+ The C99 standard discusses two character sets: source and execution.
+ The source character set is used for internal processing in translation
+ phases 1 through 4; the execution character set is used thereafter.
+ Both are required by 5.2.1.2p1 to be multibyte encodings, not wide
+ character encodings (see 3.7.2, 3.7.3 for the standardese meanings
+ of these terms). Furthermore, the "basic character set" (listed in
+ 5.2.1p3) is to be encoded in each with values one byte wide, and is
+ to appear in the initial shift state.
+
+ It is not explicitly mentioned, but there is also a "wide execution
+ character set" used to encode wide character constants and wide
+ string literals; this is supposed to be the result of applying the
+ standard library function mbstowcs() to an equivalent narrow string
+ (6.4.5p5). However, the behavior of hexadecimal and octal
+ \-escapes is at odds with this; they are supposed to be translated
+ directly to wchar_t values (6.4.4.4p5,6).
+
+ The source character set is not necessarily the character set used
+ to encode physical source files on disk; translation phase 1 converts
+ from whatever that encoding is to the source character set.
+
+ The presence of universal character names in C99 (6.4.3 et seq.)
+ forces the source character set to be isomorphic to ISO 10646,
+ that is, Unicode. There is no such constraint on the execution
+ character set; note also that the conversion from source to
+ execution character set does not occur for identifiers (5.1.1.2p1#5).
+
+ For convenience of implementation, the source character set's
+ encoding of the basic character set should be identical to the
+ execution character set OF THE HOST SYSTEM's encoding of the basic
+ character set, and it should not be a state-dependent encoding.
+
+ cpplib uses UTF-8 or UTF-EBCDIC for the source character set,
+ depending on whether the host is based on ASCII or EBCDIC (see
+ respectively Unicode section 2.3/ISO10646 Amendment 2, and Unicode
+ Technical Report #16). With limited exceptions, it relies on the
+ system library's iconv() primitive to do charset conversion
+ (specified in SUSv2). */
+
+#if !HAVE_ICONV
+/* Make certain that the uses of iconv(), iconv_open(), iconv_close()
+ below, which are guarded only by if statements with compile-time
+ constant conditions, do not cause link errors. */
+#define iconv_open(x, y) (errno = EINVAL, (iconv_t)-1)
+#define iconv(a,b,c,d,e) (errno = EINVAL, (size_t)-1)
+#define iconv_close(x) (void)0
+#define ICONV_CONST
+#endif
+
+#if HOST_CHARSET == HOST_CHARSET_ASCII
+#define SOURCE_CHARSET "UTF-8"
+#define LAST_POSSIBLY_BASIC_SOURCE_CHAR 0x7e
+#elif HOST_CHARSET == HOST_CHARSET_EBCDIC
+#define SOURCE_CHARSET "UTF-EBCDIC"
+#define LAST_POSSIBLY_BASIC_SOURCE_CHAR 0xFF
+#else
+#error "Unrecognized basic host character set"
+#endif
+
+#ifndef EILSEQ
+#define EILSEQ EINVAL
+#endif
+
+/* This structure is used for a resizable string buffer throughout. */
+/* Don't call it strbuf, as that conflicts with unistd.h on systems
+ such as DYNIX/ptx where unistd.h includes stropts.h. */
+struct _cpp_strbuf
+{
+ uchar *text;
+ size_t asize;
+ size_t len;
+};
+
+/* This is enough to hold any string that fits on a single 80-column
+ line, even if iconv quadruples its size (e.g. conversion from
+ ASCII to UTF-32) rounded up to a power of two. */
+#define OUTBUF_BLOCK_SIZE 256
+
+/* Conversions between UTF-8 and UTF-16/32 are implemented by custom
+ logic. This is because a depressing number of systems lack iconv,
+ or have have iconv libraries that do not do these conversions, so
+ we need a fallback implementation for them. To ensure the fallback
+ doesn't break due to neglect, it is used on all systems.
+
+ UTF-32 encoding is nice and simple: a four-byte binary number,
+ constrained to the range 00000000-7FFFFFFF to avoid questions of
+ signedness. We do have to cope with big- and little-endian
+ variants.
+
+ UTF-16 encoding uses two-byte binary numbers, again in big- and
+ little-endian variants, for all values in the 00000000-0000FFFF
+ range. Values in the 00010000-0010FFFF range are encoded as pairs
+ of two-byte numbers, called "surrogate pairs": given a number S in
+ this range, it is mapped to a pair (H, L) as follows:
+
+ H = (S - 0x10000) / 0x400 + 0xD800
+ L = (S - 0x10000) % 0x400 + 0xDC00
+
+ Two-byte values in the D800...DFFF range are ill-formed except as a
+ component of a surrogate pair. Even if the encoding within a
+ two-byte value is little-endian, the H member of the surrogate pair
+ comes first.
+
+ There is no way to encode values in the 00110000-7FFFFFFF range,
+ which is not currently a problem as there are no assigned code
+ points in that range; however, the author expects that it will
+ eventually become necessary to abandon UTF-16 due to this
+ limitation. Note also that, because of these pairs, UTF-16 does
+ not meet the requirements of the C standard for a wide character
+ encoding (see 3.7.3 and 6.4.4.4p11).
+
+ UTF-8 encoding looks like this:
+
+ value range encoded as
+ 00000000-0000007F 0xxxxxxx
+ 00000080-000007FF 110xxxxx 10xxxxxx
+ 00000800-0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
+ 00010000-001FFFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ 00200000-03FFFFFF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+ 04000000-7FFFFFFF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
+
+ Values in the 0000D800 ... 0000DFFF range (surrogates) are invalid,
+ which means that three-byte sequences ED xx yy, with A0 <= xx <= BF,
+ never occur. Note also that any value that can be encoded by a
+ given row of the table can also be encoded by all successive rows,
+ but this is not done; only the shortest possible encoding for any
+ given value is valid. For instance, the character 07C0 could be
+ encoded as any of DF 80, E0 9F 80, F0 80 9F 80, F8 80 80 9F 80, or
+ FC 80 80 80 9F 80. Only the first is valid.
+
+ An implementation note: the transformation from UTF-16 to UTF-8, or
+ vice versa, is easiest done by using UTF-32 as an intermediary. */
+
+/* Internal primitives which go from an UTF-8 byte stream to native-endian
+ UTF-32 in a cppchar_t, or vice versa; this avoids an extra marshal/unmarshal
+ operation in several places below. */
+static inline int
+one_utf8_to_cppchar (const uchar **inbufp, size_t *inbytesleftp,
+ cppchar_t *cp)
+{
+ static const uchar masks[6] = { 0x7F, 0x1F, 0x0F, 0x07, 0x03, 0x01 };
+ static const uchar patns[6] = { 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
+
+ cppchar_t c;
+ const uchar *inbuf = *inbufp;
+ size_t nbytes, i;
+
+ if (*inbytesleftp < 1)
+ return EINVAL;
+
+ c = *inbuf;
+ if (c < 0x80)
+ {
+ *cp = c;
+ *inbytesleftp -= 1;
+ *inbufp += 1;
+ return 0;
+ }
+
+ /* The number of leading 1-bits in the first byte indicates how many
+ bytes follow. */
+ for (nbytes = 2; nbytes < 7; nbytes++)
+ if ((c & ~masks[nbytes-1]) == patns[nbytes-1])
+ goto found;
+ return EILSEQ;
+ found:
+
+ if (*inbytesleftp < nbytes)
+ return EINVAL;
+
+ c = (c & masks[nbytes-1]);
+ inbuf++;
+ for (i = 1; i < nbytes; i++)
+ {
+ cppchar_t n = *inbuf++;
+ if ((n & 0xC0) != 0x80)
+ return EILSEQ;
+ c = ((c << 6) + (n & 0x3F));
+ }
+
+ /* Make sure the shortest possible encoding was used. */
+ if (c <= 0x7F && nbytes > 1) return EILSEQ;
+ if (c <= 0x7FF && nbytes > 2) return EILSEQ;
+ if (c <= 0xFFFF && nbytes > 3) return EILSEQ;
+ if (c <= 0x1FFFFF && nbytes > 4) return EILSEQ;
+ if (c <= 0x3FFFFFF && nbytes > 5) return EILSEQ;
+
+ /* Make sure the character is valid. */
+ if (c > 0x7FFFFFFF || (c >= 0xD800 && c <= 0xDFFF)) return EILSEQ;
+
+ *cp = c;
+ *inbufp = inbuf;
+ *inbytesleftp -= nbytes;
+ return 0;
+}
+
+static inline int
+one_cppchar_to_utf8 (cppchar_t c, uchar **outbufp, size_t *outbytesleftp)
+{
+ static const uchar masks[6] = { 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
+ static const uchar limits[6] = { 0x80, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE };
+ size_t nbytes;
+ uchar buf[6], *p = &buf[6];
+ uchar *outbuf = *outbufp;
+
+ nbytes = 1;
+ if (c < 0x80)
+ *--p = c;
+ else
+ {
+ do
+ {
+ *--p = ((c & 0x3F) | 0x80);
+ c >>= 6;
+ nbytes++;
+ }
+ while (c >= 0x3F || (c & limits[nbytes-1]));
+ *--p = (c | masks[nbytes-1]);
+ }
+
+ if (*outbytesleftp < nbytes)
+ return E2BIG;
+
+ while (p < &buf[6])
+ *outbuf++ = *p++;
+ *outbytesleftp -= nbytes;
+ *outbufp = outbuf;
+ return 0;
+}
+
+/* The following four functions transform one character between the two
+ encodings named in the function name. All have the signature
+ int (*)(iconv_t bigend, const uchar **inbufp, size_t *inbytesleftp,
+ uchar **outbufp, size_t *outbytesleftp)
+
+ BIGEND must have the value 0 or 1, coerced to (iconv_t); it is
+ interpreted as a boolean indicating whether big-endian or
+ little-endian encoding is to be used for the member of the pair
+ that is not UTF-8.
+
+ INBUFP, INBYTESLEFTP, OUTBUFP, OUTBYTESLEFTP work exactly as they
+ do for iconv.
+
+ The return value is either 0 for success, or an errno value for
+ failure, which may be E2BIG (need more space), EILSEQ (ill-formed
+ input sequence), ir EINVAL (incomplete input sequence). */
+
+static inline int
+one_utf8_to_utf32 (iconv_t bigend, const uchar **inbufp, size_t *inbytesleftp,
+ uchar **outbufp, size_t *outbytesleftp)
+{
+ uchar *outbuf;
+ cppchar_t s = 0;
+ int rval;
+
+ /* Check for space first, since we know exactly how much we need. */
+ if (*outbytesleftp < 4)
+ return E2BIG;
+
+ rval = one_utf8_to_cppchar (inbufp, inbytesleftp, &s);
+ if (rval)
+ return rval;
+
+ outbuf = *outbufp;
+ outbuf[bigend ? 3 : 0] = (s & 0x000000FF);
+ outbuf[bigend ? 2 : 1] = (s & 0x0000FF00) >> 8;
+ outbuf[bigend ? 1 : 2] = (s & 0x00FF0000) >> 16;
+ outbuf[bigend ? 0 : 3] = (s & 0xFF000000) >> 24;
+
+ *outbufp += 4;
+ *outbytesleftp -= 4;
+ return 0;
+}
+
+static inline int
+one_utf32_to_utf8 (iconv_t bigend, const uchar **inbufp, size_t *inbytesleftp,
+ uchar **outbufp, size_t *outbytesleftp)
+{
+ cppchar_t s;
+ int rval;
+ const uchar *inbuf;
+
+ if (*inbytesleftp < 4)
+ return EINVAL;
+
+ inbuf = *inbufp;
+
+ s = inbuf[bigend ? 0 : 3] << 24;
+ s += inbuf[bigend ? 1 : 2] << 16;
+ s += inbuf[bigend ? 2 : 1] << 8;
+ s += inbuf[bigend ? 3 : 0];
+
+ if (s >= 0x7FFFFFFF || (s >= 0xD800 && s <= 0xDFFF))
+ return EILSEQ;
+
+ rval = one_cppchar_to_utf8 (s, outbufp, outbytesleftp);
+ if (rval)
+ return rval;
+
+ *inbufp += 4;
+ *inbytesleftp -= 4;
+ return 0;
+}
+
+static inline int
+one_utf8_to_utf16 (iconv_t bigend, const uchar **inbufp, size_t *inbytesleftp,
+ uchar **outbufp, size_t *outbytesleftp)
+{
+ int rval;
+ cppchar_t s = 0;
+ const uchar *save_inbuf = *inbufp;
+ size_t save_inbytesleft = *inbytesleftp;
+ uchar *outbuf = *outbufp;
+
+ rval = one_utf8_to_cppchar (inbufp, inbytesleftp, &s);
+ if (rval)
+ return rval;
+
+ if (s > 0x0010FFFF)
+ {
+ *inbufp = save_inbuf;
+ *inbytesleftp = save_inbytesleft;
+ return EILSEQ;
+ }
+
+ if (s < 0xFFFF)
+ {
+ if (*outbytesleftp < 2)
+ {
+ *inbufp = save_inbuf;
+ *inbytesleftp = save_inbytesleft;
+ return E2BIG;
+ }
+ outbuf[bigend ? 1 : 0] = (s & 0x00FF);
+ outbuf[bigend ? 0 : 1] = (s & 0xFF00) >> 8;
+
+ *outbufp += 2;
+ *outbytesleftp -= 2;
+ return 0;
+ }
+ else
+ {
+ cppchar_t hi, lo;
+
+ if (*outbytesleftp < 4)
+ {
+ *inbufp = save_inbuf;
+ *inbytesleftp = save_inbytesleft;
+ return E2BIG;
+ }
+
+ hi = (s - 0x10000) / 0x400 + 0xD800;
+ lo = (s - 0x10000) % 0x400 + 0xDC00;
+
+ /* Even if we are little-endian, put the high surrogate first.
+ ??? Matches practice? */
+ outbuf[bigend ? 1 : 0] = (hi & 0x00FF);
+ outbuf[bigend ? 0 : 1] = (hi & 0xFF00) >> 8;
+ outbuf[bigend ? 3 : 2] = (lo & 0x00FF);
+ outbuf[bigend ? 2 : 3] = (lo & 0xFF00) >> 8;
+
+ *outbufp += 4;
+ *outbytesleftp -= 4;
+ return 0;
+ }
+}
+
+static inline int
+one_utf16_to_utf8 (iconv_t bigend, const uchar **inbufp, size_t *inbytesleftp,
+ uchar **outbufp, size_t *outbytesleftp)
+{
+ cppchar_t s;
+ const uchar *inbuf = *inbufp;
+ int rval;
+
+ if (*inbytesleftp < 2)
+ return EINVAL;
+ s = inbuf[bigend ? 0 : 1] << 8;
+ s += inbuf[bigend ? 1 : 0];
+
+ /* Low surrogate without immediately preceding high surrogate is invalid. */
+ if (s >= 0xDC00 && s <= 0xDFFF)
+ return EILSEQ;
+ /* High surrogate must have a following low surrogate. */
+ else if (s >= 0xD800 && s <= 0xDBFF)
+ {
+ cppchar_t hi = s, lo;
+ if (*inbytesleftp < 4)
+ return EINVAL;
+
+ lo = inbuf[bigend ? 2 : 3] << 8;
+ lo += inbuf[bigend ? 3 : 2];
+
+ if (lo < 0xDC00 || lo > 0xDFFF)
+ return EILSEQ;
+
+ s = (hi - 0xD800) * 0x400 + (lo - 0xDC00) + 0x10000;
+ }
+
+ rval = one_cppchar_to_utf8 (s, outbufp, outbytesleftp);
+ if (rval)
+ return rval;
+
+ /* Success - update the input pointers (one_cppchar_to_utf8 has done
+ the output pointers for us). */
+ if (s <= 0xFFFF)
+ {
+ *inbufp += 2;
+ *inbytesleftp -= 2;
+ }
+ else
+ {
+ *inbufp += 4;
+ *inbytesleftp -= 4;
+ }
+ return 0;
+}
+
+/* Helper routine for the next few functions. The 'const' on
+ one_conversion means that we promise not to modify what function is
+ pointed to, which lets the inliner see through it. */
+
+static inline bool
+conversion_loop (int (*const one_conversion)(iconv_t, const uchar **, size_t *,
+ uchar **, size_t *),
+ iconv_t cd, const uchar *from, size_t flen, struct _cpp_strbuf *to)
+{
+ const uchar *inbuf;
+ uchar *outbuf;
+ size_t inbytesleft, outbytesleft;
+ int rval;
+
+ inbuf = from;
+ inbytesleft = flen;
+ outbuf = to->text + to->len;
+ outbytesleft = to->asize - to->len;
+
+ for (;;)
+ {
+ do
+ rval = one_conversion (cd, &inbuf, &inbytesleft,
+ &outbuf, &outbytesleft);
+ while (inbytesleft && !rval);
+
+ if (__builtin_expect (inbytesleft == 0, 1))
+ {
+ to->len = to->asize - outbytesleft;
+ return true;
+ }
+ if (rval != E2BIG)
+ {
+ errno = rval;
+ return false;
+ }
+
+ outbytesleft += OUTBUF_BLOCK_SIZE;
+ to->asize += OUTBUF_BLOCK_SIZE;
+ to->text = XRESIZEVEC (uchar, to->text, to->asize);
+ outbuf = to->text + to->asize - outbytesleft;
+ }
+}
+
+
+/* These functions convert entire strings between character sets.
+ They all have the signature
+
+ bool (*)(iconv_t cd, const uchar *from, size_t flen, struct _cpp_strbuf *to);
+
+ The input string FROM is converted as specified by the function
+ name plus the iconv descriptor CD (which may be fake), and the
+ result appended to TO. On any error, false is returned, otherwise true. */
+
+/* These four use the custom conversion code above. */
+static bool
+convert_utf8_utf16 (iconv_t cd, const uchar *from, size_t flen,
+ struct _cpp_strbuf *to)
+{
+ return conversion_loop (one_utf8_to_utf16, cd, from, flen, to);
+}
+
+static bool
+convert_utf8_utf32 (iconv_t cd, const uchar *from, size_t flen,
+ struct _cpp_strbuf *to)
+{
+ return conversion_loop (one_utf8_to_utf32, cd, from, flen, to);
+}
+
+static bool
+convert_utf16_utf8 (iconv_t cd, const uchar *from, size_t flen,
+ struct _cpp_strbuf *to)
+{
+ return conversion_loop (one_utf16_to_utf8, cd, from, flen, to);
+}
+
+static bool
+convert_utf32_utf8 (iconv_t cd, const uchar *from, size_t flen,
+ struct _cpp_strbuf *to)
+{
+ return conversion_loop (one_utf32_to_utf8, cd, from, flen, to);
+}
+
+/* Identity conversion, used when we have no alternative. */
+static bool
+convert_no_conversion (iconv_t cd ATTRIBUTE_UNUSED,
+ const uchar *from, size_t flen, struct _cpp_strbuf *to)
+{
+ if (to->len + flen > to->asize)
+ {
+ to->asize = to->len + flen;
+ to->text = XRESIZEVEC (uchar, to->text, to->asize);
+ }
+ memcpy (to->text + to->len, from, flen);
+ to->len += flen;
+ return true;
+}
+
+/* And this one uses the system iconv primitive. It's a little
+ different, since iconv's interface is a little different. */
+#if HAVE_ICONV
+
+#define CONVERT_ICONV_GROW_BUFFER \
+ do { \
+ outbytesleft += OUTBUF_BLOCK_SIZE; \
+ to->asize += OUTBUF_BLOCK_SIZE; \
+ to->text = XRESIZEVEC (uchar, to->text, to->asize); \
+ outbuf = (char *)to->text + to->asize - outbytesleft; \
+ } while (0)
+
+static bool
+convert_using_iconv (iconv_t cd, const uchar *from, size_t flen,
+ struct _cpp_strbuf *to)
+{
+ ICONV_CONST char *inbuf;
+ char *outbuf;
+ size_t inbytesleft, outbytesleft;
+
+ /* Reset conversion descriptor and check that it is valid. */
+ if (iconv (cd, 0, 0, 0, 0) == (size_t)-1)
+ return false;
+
+ inbuf = (ICONV_CONST char *)from;
+ inbytesleft = flen;
+ outbuf = (char *)to->text + to->len;
+ outbytesleft = to->asize - to->len;
+
+ for (;;)
+ {
+ iconv (cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
+ if (__builtin_expect (inbytesleft == 0, 1))
+ {
+ /* Close out any shift states, returning to the initial state. */
+ if (iconv (cd, 0, 0, &outbuf, &outbytesleft) == (size_t)-1)
+ {
+ if (errno != E2BIG)
+ return false;
+
+ CONVERT_ICONV_GROW_BUFFER;
+ if (iconv (cd, 0, 0, &outbuf, &outbytesleft) == (size_t)-1)
+ return false;
+ }
+
+ to->len = to->asize - outbytesleft;
+ return true;
+ }
+ if (errno != E2BIG)
+ return false;
+
+ CONVERT_ICONV_GROW_BUFFER;
+ }
+}
+#else
+#define convert_using_iconv 0 /* prevent undefined symbol error below */
+#endif
+
+/* Arrange for the above custom conversion logic to be used automatically
+ when conversion between a suitable pair of character sets is requested. */
+
+#define APPLY_CONVERSION(CONVERTER, FROM, FLEN, TO) \
+ CONVERTER.func (CONVERTER.cd, FROM, FLEN, TO)
+
+struct conversion
+{
+ const char *pair;
+ convert_f func;
+ iconv_t fake_cd;
+};
+static const struct conversion conversion_tab[] = {
+ { "UTF-8/UTF-32LE", convert_utf8_utf32, (iconv_t)0 },
+ { "UTF-8/UTF-32BE", convert_utf8_utf32, (iconv_t)1 },
+ { "UTF-8/UTF-16LE", convert_utf8_utf16, (iconv_t)0 },
+ { "UTF-8/UTF-16BE", convert_utf8_utf16, (iconv_t)1 },
+ { "UTF-32LE/UTF-8", convert_utf32_utf8, (iconv_t)0 },
+ { "UTF-32BE/UTF-8", convert_utf32_utf8, (iconv_t)1 },
+ { "UTF-16LE/UTF-8", convert_utf16_utf8, (iconv_t)0 },
+ { "UTF-16BE/UTF-8", convert_utf16_utf8, (iconv_t)1 },
+};
+
+/* Subroutine of cpp_init_iconv: initialize and return a
+ cset_converter structure for conversion from FROM to TO. If
+ iconv_open() fails, issue an error and return an identity
+ converter. Silently return an identity converter if FROM and TO
+ are identical. */
+static struct cset_converter
+init_iconv_desc (cpp_reader *pfile, const char *to, const char *from)
+{
+ struct cset_converter ret;
+ char *pair;
+ size_t i;
+
+ if (!strcasecmp (to, from))
+ {
+ ret.func = convert_no_conversion;
+ ret.cd = (iconv_t) -1;
+ ret.width = -1;
+ return ret;
+ }
+
+ pair = (char *) alloca(strlen(to) + strlen(from) + 2);
+
+ strcpy(pair, from);
+ strcat(pair, "/");
+ strcat(pair, to);
+ for (i = 0; i < ARRAY_SIZE (conversion_tab); i++)
+ if (!strcasecmp (pair, conversion_tab[i].pair))
+ {
+ ret.func = conversion_tab[i].func;
+ ret.cd = conversion_tab[i].fake_cd;
+ ret.width = -1;
+ return ret;
+ }
+
+ /* No custom converter - try iconv. */
+ if (HAVE_ICONV)
+ {
+ ret.func = convert_using_iconv;
+ ret.cd = iconv_open (to, from);
+ ret.width = -1;
+
+ if (ret.cd == (iconv_t) -1)
+ {
+ if (errno == EINVAL)
+ cpp_error (pfile, CPP_DL_ERROR, /* FIXME should be DL_SORRY */
+ "conversion from %s to %s not supported by iconv",
+ from, to);
+ else
+ cpp_errno (pfile, CPP_DL_ERROR, "iconv_open");
+
+ ret.func = convert_no_conversion;
+ }
+ }
+ else
+ {
+ cpp_error (pfile, CPP_DL_ERROR, /* FIXME: should be DL_SORRY */
+ "no iconv implementation, cannot convert from %s to %s",
+ from, to);
+ ret.func = convert_no_conversion;
+ ret.cd = (iconv_t) -1;
+ ret.width = -1;
+ }
+ return ret;
+}
+
+/* If charset conversion is requested, initialize iconv(3) descriptors
+ for conversion from the source character set to the execution
+ character sets. If iconv is not present in the C library, and
+ conversion is requested, issue an error. */
+
+void
+cpp_init_iconv (cpp_reader *pfile)
+{
+ const char *ncset = CPP_OPTION (pfile, narrow_charset);
+ const char *wcset = CPP_OPTION (pfile, wide_charset);
+ const char *default_wcset;
+
+ bool be = CPP_OPTION (pfile, bytes_big_endian);
+
+ if (CPP_OPTION (pfile, wchar_precision) >= 32)
+ default_wcset = be ? "UTF-32BE" : "UTF-32LE";
+ else if (CPP_OPTION (pfile, wchar_precision) >= 16)
+ default_wcset = be ? "UTF-16BE" : "UTF-16LE";
+ else
+ /* This effectively means that wide strings are not supported,
+ so don't do any conversion at all. */
+ default_wcset = SOURCE_CHARSET;
+
+ if (!ncset)
+ ncset = SOURCE_CHARSET;
+ if (!wcset)
+ wcset = default_wcset;
+
+ pfile->narrow_cset_desc = init_iconv_desc (pfile, ncset, SOURCE_CHARSET);
+ pfile->narrow_cset_desc.width = CPP_OPTION (pfile, char_precision);
+ pfile->utf8_cset_desc = init_iconv_desc (pfile, "UTF-8", SOURCE_CHARSET);
+ pfile->utf8_cset_desc.width = CPP_OPTION (pfile, char_precision);
+ pfile->char16_cset_desc = init_iconv_desc (pfile,
+ be ? "UTF-16BE" : "UTF-16LE",
+ SOURCE_CHARSET);
+ pfile->char16_cset_desc.width = 16;
+ pfile->char32_cset_desc = init_iconv_desc (pfile,
+ be ? "UTF-32BE" : "UTF-32LE",
+ SOURCE_CHARSET);
+ pfile->char32_cset_desc.width = 32;
+ pfile->wide_cset_desc = init_iconv_desc (pfile, wcset, SOURCE_CHARSET);
+ pfile->wide_cset_desc.width = CPP_OPTION (pfile, wchar_precision);
+}
+
+/* Destroy iconv(3) descriptors set up by cpp_init_iconv, if necessary. */
+void
+_cpp_destroy_iconv (cpp_reader *pfile)
+{
+ if (HAVE_ICONV)
+ {
+ if (pfile->narrow_cset_desc.func == convert_using_iconv)
+ iconv_close (pfile->narrow_cset_desc.cd);
+ if (pfile->utf8_cset_desc.func == convert_using_iconv)
+ iconv_close (pfile->utf8_cset_desc.cd);
+ if (pfile->char16_cset_desc.func == convert_using_iconv)
+ iconv_close (pfile->char16_cset_desc.cd);
+ if (pfile->char32_cset_desc.func == convert_using_iconv)
+ iconv_close (pfile->char32_cset_desc.cd);
+ if (pfile->wide_cset_desc.func == convert_using_iconv)
+ iconv_close (pfile->wide_cset_desc.cd);
+ }
+}
+
+/* Utility routine for use by a full compiler. C is a character taken
+ from the *basic* source character set, encoded in the host's
+ execution encoding. Convert it to (the target's) execution
+ encoding, and return that value.
+
+ Issues an internal error if C's representation in the narrow
+ execution character set fails to be a single-byte value (C99
+ 5.2.1p3: "The representation of each member of the source and
+ execution character sets shall fit in a byte.") May also issue an
+ internal error if C fails to be a member of the basic source
+ character set (testing this exactly is too hard, especially when
+ the host character set is EBCDIC). */
+cppchar_t
+cpp_host_to_exec_charset (cpp_reader *pfile, cppchar_t c)
+{
+ uchar sbuf[1];
+ struct _cpp_strbuf tbuf;
+
+ /* This test is merely an approximation, but it suffices to catch
+ the most important thing, which is that we don't get handed a
+ character outside the unibyte range of the host character set. */
+ if (c > LAST_POSSIBLY_BASIC_SOURCE_CHAR)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "character 0x%lx is not in the basic source character set\n",
+ (unsigned long)c);
+ return 0;
+ }
+
+ /* Being a character in the unibyte range of the host character set,
+ we can safely splat it into a one-byte buffer and trust that that
+ is a well-formed string. */
+ sbuf[0] = c;
+
+ /* This should never need to reallocate, but just in case... */
+ tbuf.asize = 1;
+ tbuf.text = XNEWVEC (uchar, tbuf.asize);
+ tbuf.len = 0;
+
+ if (!APPLY_CONVERSION (pfile->narrow_cset_desc, sbuf, 1, &tbuf))
+ {
+ cpp_errno (pfile, CPP_DL_ICE, "converting to execution character set");
+ return 0;
+ }
+ if (tbuf.len != 1)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "character 0x%lx is not unibyte in execution character set",
+ (unsigned long)c);
+ return 0;
+ }
+ c = tbuf.text[0];
+ free(tbuf.text);
+ return c;
+}
+
+
+
+/* Utility routine that computes a mask of the form 0000...111... with
+ WIDTH 1-bits. */
+static inline size_t
+width_to_mask (size_t width)
+{
+ width = MIN (width, BITS_PER_CPPCHAR_T);
+ if (width >= CHAR_BIT * sizeof (size_t))
+ return ~(size_t) 0;
+ else
+ return ((size_t) 1 << width) - 1;
+}
+
+/* A large table of unicode character information. */
+enum {
+ /* Valid in a C99 identifier? */
+ C99 = 1,
+ /* Valid in a C99 identifier, but not as the first character? */
+ N99 = 2,
+ /* Valid in a C++ identifier? */
+ CXX = 4,
+ /* Valid in a C11/C++11 identifier? */
+ C11 = 8,
+ /* Valid in a C11/C++11 identifier, but not as the first character? */
+ N11 = 16,
+ /* NFC representation is not valid in an identifier? */
+ CID = 32,
+ /* Might be valid NFC form? */
+ NFC = 64,
+ /* Might be valid NFKC form? */
+ NKC = 128,
+ /* Certain preceding characters might make it not valid NFC/NKFC form? */
+ CTX = 256
+};
+
+struct ucnrange {
+ /* Bitmap of flags above. */
+ unsigned short flags;
+ /* Combining class of the character. */
+ unsigned char combine;
+ /* Last character in the range described by this entry. */
+ unsigned int end;
+};
+#include "ucnid.h"
+
+/* Returns 1 if C is valid in an identifier, 2 if C is valid except at
+ the start of an identifier, and 0 if C is not valid in an
+ identifier. We assume C has already gone through the checks of
+ _cpp_valid_ucn. Also update NST for C if returning nonzero. The
+ algorithm is a simple binary search on the table defined in
+ ucnid.h. */
+
+static int
+ucn_valid_in_identifier (cpp_reader *pfile, cppchar_t c,
+ struct normalize_state *nst)
+{
+ int mn, mx, md;
+ unsigned short valid_flags, invalid_start_flags;
+
+ if (c > 0x10FFFF)
+ return 0;
+
+ mn = 0;
+ mx = ARRAY_SIZE (ucnranges) - 1;
+ while (mx != mn)
+ {
+ md = (mn + mx) / 2;
+ if (c <= ucnranges[md].end)
+ mx = md;
+ else
+ mn = md + 1;
+ }
+
+ /* When -pedantic, we require the character to have been listed by
+ the standard for the current language. Otherwise, we accept the
+ union of the acceptable sets for all supported language versions. */
+ valid_flags = C99 | CXX | C11;
+ if (CPP_PEDANTIC (pfile))
+ {
+ if (CPP_OPTION (pfile, c11_identifiers))
+ valid_flags = C11;
+ else if (CPP_OPTION (pfile, c99))
+ valid_flags = C99;
+ else if (CPP_OPTION (pfile, cplusplus))
+ valid_flags = CXX;
+ }
+ if (! (ucnranges[mn].flags & valid_flags))
+ return 0;
+ if (CPP_OPTION (pfile, c11_identifiers))
+ invalid_start_flags = N11;
+ else if (CPP_OPTION (pfile, c99))
+ invalid_start_flags = N99;
+ else
+ invalid_start_flags = 0;
+
+ /* Update NST. */
+ if (ucnranges[mn].combine != 0 && ucnranges[mn].combine < nst->prev_class)
+ nst->level = normalized_none;
+ else if (ucnranges[mn].flags & CTX)
+ {
+ bool safe;
+ cppchar_t p = nst->previous;
+
+ /* For Hangul, characters in the range AC00-D7A3 are NFC/NFKC,
+ and are combined algorithmically from a sequence of the form
+ 1100-1112 1161-1175 11A8-11C2
+ (if the third is not present, it is treated as 11A7, which is not
+ really a valid character).
+ Unfortunately, C99 allows (only) the NFC form, but C++ allows
+ only the combining characters. */
+ if (c >= 0x1161 && c <= 0x1175)
+ safe = p < 0x1100 || p > 0x1112;
+ else if (c >= 0x11A8 && c <= 0x11C2)
+ safe = (p < 0xAC00 || p > 0xD7A3 || (p - 0xAC00) % 28 != 0);
+ else
+ safe = check_nfc (pfile, c, p);
+ if (!safe)
+ {
+ if ((c >= 0x1161 && c <= 0x1175) || (c >= 0x11A8 && c <= 0x11C2))
+ nst->level = MAX (nst->level, normalized_identifier_C);
+ else
+ nst->level = normalized_none;
+ }
+ }
+ else if (ucnranges[mn].flags & NKC)
+ ;
+ else if (ucnranges[mn].flags & NFC)
+ nst->level = MAX (nst->level, normalized_C);
+ else if (ucnranges[mn].flags & CID)
+ nst->level = MAX (nst->level, normalized_identifier_C);
+ else
+ nst->level = normalized_none;
+ if (ucnranges[mn].combine == 0)
+ nst->previous = c;
+ nst->prev_class = ucnranges[mn].combine;
+
+ /* In C99, UCN digits may not begin identifiers. In C11 and C++11,
+ UCN combining characters may not begin identifiers. */
+ if (ucnranges[mn].flags & invalid_start_flags)
+ return 2;
+
+ return 1;
+}
+
+/* [lex.charset]: The character designated by the universal character
+ name \UNNNNNNNN is that character whose character short name in
+ ISO/IEC 10646 is NNNNNNNN; the character designated by the
+ universal character name \uNNNN is that character whose character
+ short name in ISO/IEC 10646 is 0000NNNN. If the hexadecimal value
+ for a universal character name corresponds to a surrogate code point
+ (in the range 0xD800-0xDFFF, inclusive), the program is ill-formed.
+ Additionally, if the hexadecimal value for a universal-character-name
+ outside a character or string literal corresponds to a control character
+ (in either of the ranges 0x00-0x1F or 0x7F-0x9F, both inclusive) or to a
+ character in the basic source character set, the program is ill-formed.
+
+ C99 6.4.3: A universal character name shall not specify a character
+ whose short identifier is less than 00A0 other than 0024 ($), 0040 (@),
+ or 0060 (`), nor one in the range D800 through DFFF inclusive.
+
+ *PSTR must be preceded by "\u" or "\U"; it is assumed that the
+ buffer end is delimited by a non-hex digit. Returns zero if the
+ UCN has not been consumed.
+
+ Otherwise the nonzero value of the UCN, whether valid or invalid,
+ is returned. Diagnostics are emitted for invalid values. PSTR
+ is updated to point one beyond the UCN, or to the syntactically
+ invalid character.
+
+ IDENTIFIER_POS is 0 when not in an identifier, 1 for the start of
+ an identifier, or 2 otherwise. */
+
+cppchar_t
+_cpp_valid_ucn (cpp_reader *pfile, const uchar **pstr,
+ const uchar *limit, int identifier_pos,
+ struct normalize_state *nst)
+{
+ cppchar_t result, c;
+ unsigned int length;
+ const uchar *str = *pstr;
+ const uchar *base = str - 2;
+
+ if (!CPP_OPTION (pfile, cplusplus) && !CPP_OPTION (pfile, c99))
+ cpp_error (pfile, CPP_DL_WARNING,
+ "universal character names are only valid in C++ and C99");
+ else if (CPP_WTRADITIONAL (pfile) && identifier_pos == 0)
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "the meaning of '\\%c' is different in traditional C",
+ (int) str[-1]);
+
+ if (str[-1] == 'u')
+ length = 4;
+ else if (str[-1] == 'U')
+ length = 8;
+ else
+ {
+ cpp_error (pfile, CPP_DL_ICE, "In _cpp_valid_ucn but not a UCN");
+ length = 4;
+ }
+
+ result = 0;
+ do
+ {
+ c = *str;
+ if (!ISXDIGIT (c))
+ break;
+ str++;
+ result = (result << 4) + hex_value (c);
+ }
+ while (--length && str < limit);
+
+ /* Partial UCNs are not valid in strings, but decompose into
+ multiple tokens in identifiers, so we can't give a helpful
+ error message in that case. */
+ if (length && identifier_pos)
+ return 0;
+
+ *pstr = str;
+ if (length)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "incomplete universal character name %.*s",
+ (int) (str - base), base);
+ result = 1;
+ }
+ /* The C99 standard permits $, @ and ` to be specified as UCNs. We use
+ hex escapes so that this also works with EBCDIC hosts.
+ C++0x permits everything below 0xa0 within literals;
+ ucn_valid_in_identifier will complain about identifiers. */
+ else if ((result < 0xa0
+ && !CPP_OPTION (pfile, cplusplus)
+ && (result != 0x24 && result != 0x40 && result != 0x60))
+ || (result & 0x80000000)
+ || (result >= 0xD800 && result <= 0xDFFF))
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "%.*s is not a valid universal character",
+ (int) (str - base), base);
+ result = 1;
+ }
+ else if (identifier_pos && result == 0x24
+ && CPP_OPTION (pfile, dollars_in_ident))
+ {
+ if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping)
+ {
+ CPP_OPTION (pfile, warn_dollars) = 0;
+ cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
+ }
+ NORMALIZE_STATE_UPDATE_IDNUM (nst, result);
+ }
+ else if (identifier_pos)
+ {
+ int validity = ucn_valid_in_identifier (pfile, result, nst);
+
+ if (validity == 0)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "universal character %.*s is not valid in an identifier",
+ (int) (str - base), base);
+ else if (validity == 2 && identifier_pos == 1)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "universal character %.*s is not valid at the start of an identifier",
+ (int) (str - base), base);
+ }
+
+ if (result == 0)
+ result = 1;
+
+ return result;
+}
+
+/* Convert an UCN, pointed to by FROM, to UTF-8 encoding, then translate
+ it to the execution character set and write the result into TBUF.
+ An advanced pointer is returned. Issues all relevant diagnostics. */
+static const uchar *
+convert_ucn (cpp_reader *pfile, const uchar *from, const uchar *limit,
+ struct _cpp_strbuf *tbuf, struct cset_converter cvt)
+{
+ cppchar_t ucn;
+ uchar buf[6];
+ uchar *bufp = buf;
+ size_t bytesleft = 6;
+ int rval;
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+
+ from++; /* Skip u/U. */
+ ucn = _cpp_valid_ucn (pfile, &from, limit, 0, &nst);
+
+ rval = one_cppchar_to_utf8 (ucn, &bufp, &bytesleft);
+ if (rval)
+ {
+ errno = rval;
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "converting UCN to source character set");
+ }
+ else if (!APPLY_CONVERSION (cvt, buf, 6 - bytesleft, tbuf))
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "converting UCN to execution character set");
+
+ return from;
+}
+
+/* Subroutine of convert_hex and convert_oct. N is the representation
+ in the execution character set of a numeric escape; write it into the
+ string buffer TBUF and update the end-of-string pointer therein. WIDE
+ is true if it's a wide string that's being assembled in TBUF. This
+ function issues no diagnostics and never fails. */
+static void
+emit_numeric_escape (cpp_reader *pfile, cppchar_t n,
+ struct _cpp_strbuf *tbuf, struct cset_converter cvt)
+{
+ size_t width = cvt.width;
+
+ if (width != CPP_OPTION (pfile, char_precision))
+ {
+ /* We have to render this into the target byte order, which may not
+ be our byte order. */
+ bool bigend = CPP_OPTION (pfile, bytes_big_endian);
+ size_t cwidth = CPP_OPTION (pfile, char_precision);
+ size_t cmask = width_to_mask (cwidth);
+ size_t nbwc = width / cwidth;
+ size_t i;
+ size_t off = tbuf->len;
+ cppchar_t c;
+
+ if (tbuf->len + nbwc > tbuf->asize)
+ {
+ tbuf->asize += OUTBUF_BLOCK_SIZE;
+ tbuf->text = XRESIZEVEC (uchar, tbuf->text, tbuf->asize);
+ }
+
+ for (i = 0; i < nbwc; i++)
+ {
+ c = n & cmask;
+ n >>= cwidth;
+ tbuf->text[off + (bigend ? nbwc - i - 1 : i)] = c;
+ }
+ tbuf->len += nbwc;
+ }
+ else
+ {
+ /* Note: this code does not handle the case where the target
+ and host have a different number of bits in a byte. */
+ if (tbuf->len + 1 > tbuf->asize)
+ {
+ tbuf->asize += OUTBUF_BLOCK_SIZE;
+ tbuf->text = XRESIZEVEC (uchar, tbuf->text, tbuf->asize);
+ }
+ tbuf->text[tbuf->len++] = n;
+ }
+}
+
+/* Convert a hexadecimal escape, pointed to by FROM, to the execution
+ character set and write it into the string buffer TBUF. Returns an
+ advanced pointer, and issues diagnostics as necessary.
+ No character set translation occurs; this routine always produces the
+ execution-set character with numeric value equal to the given hex
+ number. You can, e.g. generate surrogate pairs this way. */
+static const uchar *
+convert_hex (cpp_reader *pfile, const uchar *from, const uchar *limit,
+ struct _cpp_strbuf *tbuf, struct cset_converter cvt)
+{
+ cppchar_t c, n = 0, overflow = 0;
+ int digits_found = 0;
+ size_t width = cvt.width;
+ size_t mask = width_to_mask (width);
+
+ if (CPP_WTRADITIONAL (pfile))
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "the meaning of '\\x' is different in traditional C");
+
+ from++; /* Skip 'x'. */
+ while (from < limit)
+ {
+ c = *from;
+ if (! hex_p (c))
+ break;
+ from++;
+ overflow |= n ^ (n << 4 >> 4);
+ n = (n << 4) + hex_value (c);
+ digits_found = 1;
+ }
+
+ if (!digits_found)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\\x used with no following hex digits");
+ return from;
+ }
+
+ if (overflow | (n != (n & mask)))
+ {
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "hex escape sequence out of range");
+ n &= mask;
+ }
+
+ emit_numeric_escape (pfile, n, tbuf, cvt);
+
+ return from;
+}
+
+/* Convert an octal escape, pointed to by FROM, to the execution
+ character set and write it into the string buffer TBUF. Returns an
+ advanced pointer, and issues diagnostics as necessary.
+ No character set translation occurs; this routine always produces the
+ execution-set character with numeric value equal to the given octal
+ number. */
+static const uchar *
+convert_oct (cpp_reader *pfile, const uchar *from, const uchar *limit,
+ struct _cpp_strbuf *tbuf, struct cset_converter cvt)
+{
+ size_t count = 0;
+ cppchar_t c, n = 0;
+ size_t width = cvt.width;
+ size_t mask = width_to_mask (width);
+ bool overflow = false;
+
+ while (from < limit && count++ < 3)
+ {
+ c = *from;
+ if (c < '0' || c > '7')
+ break;
+ from++;
+ overflow |= n ^ (n << 3 >> 3);
+ n = (n << 3) + c - '0';
+ }
+
+ if (n != (n & mask))
+ {
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "octal escape sequence out of range");
+ n &= mask;
+ }
+
+ emit_numeric_escape (pfile, n, tbuf, cvt);
+
+ return from;
+}
+
+/* Convert an escape sequence (pointed to by FROM) to its value on
+ the target, and to the execution character set. Do not scan past
+ LIMIT. Write the converted value into TBUF. Returns an advanced
+ pointer. Handles all relevant diagnostics. */
+static const uchar *
+convert_escape (cpp_reader *pfile, const uchar *from, const uchar *limit,
+ struct _cpp_strbuf *tbuf, struct cset_converter cvt)
+{
+ /* Values of \a \b \e \f \n \r \t \v respectively. */
+#if HOST_CHARSET == HOST_CHARSET_ASCII
+ static const uchar charconsts[] = { 7, 8, 27, 12, 10, 13, 9, 11 };
+#elif HOST_CHARSET == HOST_CHARSET_EBCDIC
+ static const uchar charconsts[] = { 47, 22, 39, 12, 21, 13, 5, 11 };
+#else
+#error "unknown host character set"
+#endif
+
+ uchar c;
+
+ c = *from;
+ switch (c)
+ {
+ /* UCNs, hex escapes, and octal escapes are processed separately. */
+ case 'u': case 'U':
+ return convert_ucn (pfile, from, limit, tbuf, cvt);
+
+ case 'x':
+ return convert_hex (pfile, from, limit, tbuf, cvt);
+ break;
+
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ return convert_oct (pfile, from, limit, tbuf, cvt);
+
+ /* Various letter escapes. Get the appropriate host-charset
+ value into C. */
+ case '\\': case '\'': case '"': case '?': break;
+
+ case '(': case '{': case '[': case '%':
+ /* '\(', etc, can be used at the beginning of a line in a long
+ string split onto multiple lines with \-newline, to prevent
+ Emacs or other text editors from getting confused. '\%' can
+ be used to prevent SCCS from mangling printf format strings. */
+ if (CPP_PEDANTIC (pfile))
+ goto unknown;
+ break;
+
+ case 'b': c = charconsts[1]; break;
+ case 'f': c = charconsts[3]; break;
+ case 'n': c = charconsts[4]; break;
+ case 'r': c = charconsts[5]; break;
+ case 't': c = charconsts[6]; break;
+ case 'v': c = charconsts[7]; break;
+
+ case 'a':
+ if (CPP_WTRADITIONAL (pfile))
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "the meaning of '\\a' is different in traditional C");
+ c = charconsts[0];
+ break;
+
+ case 'e': case 'E':
+ if (CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "non-ISO-standard escape sequence, '\\%c'", (int) c);
+ c = charconsts[2];
+ break;
+
+ default:
+ unknown:
+ if (ISGRAPH (c))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "unknown escape sequence: '\\%c'", (int) c);
+ else
+ {
+ /* diagnostic.c does not support "%03o". When it does, this
+ code can use %03o directly in the diagnostic again. */
+ char buf[32];
+ sprintf(buf, "%03o", (int) c);
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "unknown escape sequence: '\\%s'", buf);
+ }
+ }
+
+ /* Now convert what we have to the execution character set. */
+ if (!APPLY_CONVERSION (cvt, &c, 1, tbuf))
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "converting escape sequence to execution character set");
+
+ return from + 1;
+}
+
+/* TYPE is a token type. The return value is the conversion needed to
+ convert from source to execution character set for the given type. */
+static struct cset_converter
+converter_for_type (cpp_reader *pfile, enum cpp_ttype type)
+{
+ switch (type)
+ {
+ default:
+ return pfile->narrow_cset_desc;
+ case CPP_UTF8STRING:
+ return pfile->utf8_cset_desc;
+ case CPP_CHAR16:
+ case CPP_STRING16:
+ return pfile->char16_cset_desc;
+ case CPP_CHAR32:
+ case CPP_STRING32:
+ return pfile->char32_cset_desc;
+ case CPP_WCHAR:
+ case CPP_WSTRING:
+ return pfile->wide_cset_desc;
+ }
+}
+
+/* FROM is an array of cpp_string structures of length COUNT. These
+ are to be converted from the source to the execution character set,
+ escape sequences translated, and finally all are to be
+ concatenated. WIDE indicates whether or not to produce a wide
+ string. The result is written into TO. Returns true for success,
+ false for failure. */
+bool
+cpp_interpret_string (cpp_reader *pfile, const cpp_string *from, size_t count,
+ cpp_string *to, enum cpp_ttype type)
+{
+ struct _cpp_strbuf tbuf;
+ const uchar *p, *base, *limit;
+ size_t i;
+ struct cset_converter cvt = converter_for_type (pfile, type);
+
+ tbuf.asize = MAX (OUTBUF_BLOCK_SIZE, from->len);
+ tbuf.text = XNEWVEC (uchar, tbuf.asize);
+ tbuf.len = 0;
+
+ for (i = 0; i < count; i++)
+ {
+ p = from[i].text;
+ if (*p == 'u')
+ {
+ if (*++p == '8')
+ p++;
+ }
+ else if (*p == 'L' || *p == 'U') p++;
+ if (*p == 'R')
+ {
+ const uchar *prefix;
+
+ /* Skip over 'R"'. */
+ p += 2;
+ prefix = p;
+ while (*p != '(')
+ p++;
+ p++;
+ limit = from[i].text + from[i].len;
+ if (limit >= p + (p - prefix) + 1)
+ limit -= (p - prefix) + 1;
+
+ /* Raw strings are all normal characters; these can be fed
+ directly to convert_cset. */
+ if (!APPLY_CONVERSION (cvt, p, limit - p, &tbuf))
+ goto fail;
+
+ continue;
+ }
+
+ p++; /* Skip leading quote. */
+ limit = from[i].text + from[i].len - 1; /* Skip trailing quote. */
+
+ for (;;)
+ {
+ base = p;
+ while (p < limit && *p != '\\')
+ p++;
+ if (p > base)
+ {
+ /* We have a run of normal characters; these can be fed
+ directly to convert_cset. */
+ if (!APPLY_CONVERSION (cvt, base, p - base, &tbuf))
+ goto fail;
+ }
+ if (p == limit)
+ break;
+
+ p = convert_escape (pfile, p + 1, limit, &tbuf, cvt);
+ }
+ }
+ /* NUL-terminate the 'to' buffer and translate it to a cpp_string
+ structure. */
+ emit_numeric_escape (pfile, 0, &tbuf, cvt);
+ tbuf.text = XRESIZEVEC (uchar, tbuf.text, tbuf.len);
+ to->text = tbuf.text;
+ to->len = tbuf.len;
+ return true;
+
+ fail:
+ cpp_errno (pfile, CPP_DL_ERROR, "converting to execution character set");
+ free (tbuf.text);
+ return false;
+}
+
+/* Subroutine of do_line and do_linemarker. Convert escape sequences
+ in a string, but do not perform character set conversion. */
+bool
+cpp_interpret_string_notranslate (cpp_reader *pfile, const cpp_string *from,
+ size_t count, cpp_string *to,
+ enum cpp_ttype type ATTRIBUTE_UNUSED)
+{
+ struct cset_converter save_narrow_cset_desc = pfile->narrow_cset_desc;
+ bool retval;
+
+ pfile->narrow_cset_desc.func = convert_no_conversion;
+ pfile->narrow_cset_desc.cd = (iconv_t) -1;
+ pfile->narrow_cset_desc.width = CPP_OPTION (pfile, char_precision);
+
+ retval = cpp_interpret_string (pfile, from, count, to, CPP_STRING);
+
+ pfile->narrow_cset_desc = save_narrow_cset_desc;
+ return retval;
+}
+
+
+/* Subroutine of cpp_interpret_charconst which performs the conversion
+ to a number, for narrow strings. STR is the string structure returned
+ by cpp_interpret_string. PCHARS_SEEN and UNSIGNEDP are as for
+ cpp_interpret_charconst. */
+static cppchar_t
+narrow_str_to_charconst (cpp_reader *pfile, cpp_string str,
+ unsigned int *pchars_seen, int *unsignedp)
+{
+ size_t width = CPP_OPTION (pfile, char_precision);
+ size_t max_chars = CPP_OPTION (pfile, int_precision) / width;
+ size_t mask = width_to_mask (width);
+ size_t i;
+ cppchar_t result, c;
+ bool unsigned_p;
+
+ /* The value of a multi-character character constant, or a
+ single-character character constant whose representation in the
+ execution character set is more than one byte long, is
+ implementation defined. This implementation defines it to be the
+ number formed by interpreting the byte sequence in memory as a
+ big-endian binary number. If overflow occurs, the high bytes are
+ lost, and a warning is issued.
+
+ We don't want to process the NUL terminator handed back by
+ cpp_interpret_string. */
+ result = 0;
+ for (i = 0; i < str.len - 1; i++)
+ {
+ c = str.text[i] & mask;
+ if (width < BITS_PER_CPPCHAR_T)
+ result = (result << width) | c;
+ else
+ result = c;
+ }
+
+ if (i > max_chars)
+ {
+ i = max_chars;
+ cpp_error (pfile, CPP_DL_WARNING,
+ "character constant too long for its type");
+ }
+ else if (i > 1 && CPP_OPTION (pfile, warn_multichar))
+ cpp_warning (pfile, CPP_W_MULTICHAR, "multi-character character constant");
+
+ /* Multichar constants are of type int and therefore signed. */
+ if (i > 1)
+ unsigned_p = 0;
+ else
+ unsigned_p = CPP_OPTION (pfile, unsigned_char);
+
+ /* Truncate the constant to its natural width, and simultaneously
+ sign- or zero-extend to the full width of cppchar_t.
+ For single-character constants, the value is WIDTH bits wide.
+ For multi-character constants, the value is INT_PRECISION bits wide. */
+ if (i > 1)
+ width = CPP_OPTION (pfile, int_precision);
+ if (width < BITS_PER_CPPCHAR_T)
+ {
+ mask = ((cppchar_t) 1 << width) - 1;
+ if (unsigned_p || !(result & (1 << (width - 1))))
+ result &= mask;
+ else
+ result |= ~mask;
+ }
+ *pchars_seen = i;
+ *unsignedp = unsigned_p;
+ return result;
+}
+
+/* Subroutine of cpp_interpret_charconst which performs the conversion
+ to a number, for wide strings. STR is the string structure returned
+ by cpp_interpret_string. PCHARS_SEEN and UNSIGNEDP are as for
+ cpp_interpret_charconst. TYPE is the token type. */
+static cppchar_t
+wide_str_to_charconst (cpp_reader *pfile, cpp_string str,
+ unsigned int *pchars_seen, int *unsignedp,
+ enum cpp_ttype type)
+{
+ bool bigend = CPP_OPTION (pfile, bytes_big_endian);
+ size_t width = converter_for_type (pfile, type).width;
+ size_t cwidth = CPP_OPTION (pfile, char_precision);
+ size_t mask = width_to_mask (width);
+ size_t cmask = width_to_mask (cwidth);
+ size_t nbwc = width / cwidth;
+ size_t off, i;
+ cppchar_t result = 0, c;
+
+ /* This is finicky because the string is in the target's byte order,
+ which may not be our byte order. Only the last character, ignoring
+ the NUL terminator, is relevant. */
+ off = str.len - (nbwc * 2);
+ result = 0;
+ for (i = 0; i < nbwc; i++)
+ {
+ c = bigend ? str.text[off + i] : str.text[off + nbwc - i - 1];
+ result = (result << cwidth) | (c & cmask);
+ }
+
+ /* Wide character constants have type wchar_t, and a single
+ character exactly fills a wchar_t, so a multi-character wide
+ character constant is guaranteed to overflow. */
+ if (str.len > nbwc * 2)
+ cpp_error (pfile, CPP_DL_WARNING,
+ "character constant too long for its type");
+
+ /* Truncate the constant to its natural width, and simultaneously
+ sign- or zero-extend to the full width of cppchar_t. */
+ if (width < BITS_PER_CPPCHAR_T)
+ {
+ if (type == CPP_CHAR16 || type == CPP_CHAR32
+ || CPP_OPTION (pfile, unsigned_wchar)
+ || !(result & (1 << (width - 1))))
+ result &= mask;
+ else
+ result |= ~mask;
+ }
+
+ if (type == CPP_CHAR16 || type == CPP_CHAR32
+ || CPP_OPTION (pfile, unsigned_wchar))
+ *unsignedp = 1;
+ else
+ *unsignedp = 0;
+
+ *pchars_seen = 1;
+ return result;
+}
+
+/* Interpret a (possibly wide) character constant in TOKEN.
+ PCHARS_SEEN points to a variable that is filled in with the number
+ of characters seen, and UNSIGNEDP to a variable that indicates
+ whether the result has signed type. */
+cppchar_t
+cpp_interpret_charconst (cpp_reader *pfile, const cpp_token *token,
+ unsigned int *pchars_seen, int *unsignedp)
+{
+ cpp_string str = { 0, 0 };
+ bool wide = (token->type != CPP_CHAR);
+ cppchar_t result;
+
+ /* an empty constant will appear as L'', u'', U'' or '' */
+ if (token->val.str.len == (size_t) (2 + wide))
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "empty character constant");
+ return 0;
+ }
+ else if (!cpp_interpret_string (pfile, &token->val.str, 1, &str, token->type))
+ return 0;
+
+ if (wide)
+ result = wide_str_to_charconst (pfile, str, pchars_seen, unsignedp,
+ token->type);
+ else
+ result = narrow_str_to_charconst (pfile, str, pchars_seen, unsignedp);
+
+ if (str.text != token->val.str.text)
+ free ((void *)str.text);
+
+ return result;
+}
+
+/* Convert an identifier denoted by ID and LEN, which might contain
+ UCN escapes, to the source character set, either UTF-8 or
+ UTF-EBCDIC. Assumes that the identifier is actually a valid identifier. */
+cpp_hashnode *
+_cpp_interpret_identifier (cpp_reader *pfile, const uchar *id, size_t len)
+{
+ /* It turns out that a UCN escape always turns into fewer characters
+ than the escape itself, so we can allocate a temporary in advance. */
+ uchar * buf = (uchar *) alloca (len + 1);
+ uchar * bufp = buf;
+ size_t idp;
+
+ for (idp = 0; idp < len; idp++)
+ if (id[idp] != '\\')
+ *bufp++ = id[idp];
+ else
+ {
+ unsigned length = id[idp+1] == 'u' ? 4 : 8;
+ cppchar_t value = 0;
+ size_t bufleft = len - (bufp - buf);
+ int rval;
+
+ idp += 2;
+ while (length && idp < len && ISXDIGIT (id[idp]))
+ {
+ value = (value << 4) + hex_value (id[idp]);
+ idp++;
+ length--;
+ }
+ idp--;
+
+ /* Special case for EBCDIC: if the identifier contains
+ a '$' specified using a UCN, translate it to EBCDIC. */
+ if (value == 0x24)
+ {
+ *bufp++ = '$';
+ continue;
+ }
+
+ rval = one_cppchar_to_utf8 (value, &bufp, &bufleft);
+ if (rval)
+ {
+ errno = rval;
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "converting UCN to source character set");
+ break;
+ }
+ }
+
+ return CPP_HASHNODE (ht_lookup (pfile->hash_table,
+ buf, bufp - buf, HT_ALLOC));
+}
+
+/* Convert an input buffer (containing the complete contents of one
+ source file) from INPUT_CHARSET to the source character set. INPUT
+ points to the input buffer, SIZE is its allocated size, and LEN is
+ the length of the meaningful data within the buffer. The
+ translated buffer is returned, *ST_SIZE is set to the length of
+ the meaningful data within the translated buffer, and *BUFFER_START
+ is set to the start of the returned buffer. *BUFFER_START may
+ differ from the return value in the case of a BOM or other ignored
+ marker information.
+
+ INPUT is expected to have been allocated with xmalloc. This
+ function will either set *BUFFER_START to INPUT, or free it and set
+ *BUFFER_START to a pointer to another xmalloc-allocated block of
+ memory. */
+uchar *
+_cpp_convert_input (cpp_reader *pfile, const char *input_charset,
+ uchar *input, size_t size, size_t len,
+ const unsigned char **buffer_start, off_t *st_size)
+{
+ struct cset_converter input_cset;
+ struct _cpp_strbuf to;
+ unsigned char *buffer;
+
+ input_cset = init_iconv_desc (pfile, SOURCE_CHARSET, input_charset);
+ if (input_cset.func == convert_no_conversion)
+ {
+ to.text = input;
+ to.asize = size;
+ to.len = len;
+ }
+ else
+ {
+ to.asize = MAX (65536, len);
+ to.text = XNEWVEC (uchar, to.asize);
+ to.len = 0;
+
+ if (!APPLY_CONVERSION (input_cset, input, len, &to))
+ cpp_error (pfile, CPP_DL_ERROR,
+ "failure to convert %s to %s",
+ CPP_OPTION (pfile, input_charset), SOURCE_CHARSET);
+
+ free (input);
+ }
+
+ /* Clean up the mess. */
+ if (input_cset.func == convert_using_iconv)
+ iconv_close (input_cset.cd);
+
+ /* Resize buffer if we allocated substantially too much, or if we
+ haven't enough space for the \n-terminator or following
+ 15 bytes of padding (used to quiet warnings from valgrind or
+ Address Sanitizer, when the optimized lexer accesses aligned
+ 16-byte memory chunks, including the bytes after the malloced,
+ area, and stops lexing on '\n'). */
+ if (to.len + 4096 < to.asize || to.len + 16 > to.asize)
+ to.text = XRESIZEVEC (uchar, to.text, to.len + 16);
+
+ memset (to.text + to.len, '\0', 16);
+
+ /* If the file is using old-school Mac line endings (\r only),
+ terminate with another \r, not an \n, so that we do not mistake
+ the \r\n sequence for a single DOS line ending and erroneously
+ issue the "No newline at end of file" diagnostic. */
+ if (to.len && to.text[to.len - 1] == '\r')
+ to.text[to.len] = '\r';
+ else
+ to.text[to.len] = '\n';
+
+ buffer = to.text;
+ *st_size = to.len;
+#if HOST_CHARSET == HOST_CHARSET_ASCII
+ /* The HOST_CHARSET test just above ensures that the source charset
+ is UTF-8. So, ignore a UTF-8 BOM if we see one. Note that
+ glib'c UTF-8 iconv() provider (as of glibc 2.7) does not ignore a
+ BOM -- however, even if it did, we would still need this code due
+ to the 'convert_no_conversion' case. */
+ if (to.len >= 3 && to.text[0] == 0xef && to.text[1] == 0xbb
+ && to.text[2] == 0xbf)
+ {
+ *st_size -= 3;
+ buffer += 3;
+ }
+#endif
+
+ *buffer_start = to.text;
+ return buffer;
+}
+
+/* Decide on the default encoding to assume for input files. */
+const char *
+_cpp_default_encoding (void)
+{
+ const char *current_encoding = NULL;
+
+ /* We disable this because the default codeset is 7-bit ASCII on
+ most platforms, and this causes conversion failures on every
+ file in GCC that happens to have one of the upper 128 characters
+ in it -- most likely, as part of the name of a contributor.
+ We should definitely recognize in-band markers of file encoding,
+ like:
+ - the appropriate Unicode byte-order mark (FE FF) to recognize
+ UTF16 and UCS4 (in both big-endian and little-endian flavors)
+ and UTF8
+ - a "#i", "#d", "/ *", "//", " #p" or "#p" (for #pragma) to
+ distinguish ASCII and EBCDIC.
+ - now we can parse something like "#pragma GCC encoding <xyz>
+ on the first line, or even Emacs/VIM's mode line tags (there's
+ a problem here in that VIM uses the last line, and Emacs has
+ its more elaborate "local variables" convention).
+ - investigate whether Java has another common convention, which
+ would be friendly to support.
+ (Zack Weinberg and Paolo Bonzini, May 20th 2004) */
+#if defined (HAVE_LOCALE_H) && defined (HAVE_LANGINFO_CODESET) && 0
+ setlocale (LC_CTYPE, "");
+ current_encoding = nl_langinfo (CODESET);
+#endif
+ if (current_encoding == NULL || *current_encoding == '\0')
+ current_encoding = SOURCE_CHARSET;
+
+ return current_encoding;
+}
diff --git a/gcc-4.9/libcpp/config.in b/gcc-4.9/libcpp/config.in
new file mode 100644
index 000000000..1b0b25555
--- /dev/null
+++ b/gcc-4.9/libcpp/config.in
@@ -0,0 +1,358 @@
+/* config.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for `alloca.c' support on those systems.
+ */
+#undef CRAY_STACKSEG_END
+
+/* Define to 1 if using `alloca.c'. */
+#undef C_ALLOCA
+
+/* Define to enable system headers canonicalization. */
+#undef ENABLE_CANONICAL_SYSTEM_HEADERS
+
+/* Define if you want more run-time sanity checks. */
+#undef ENABLE_CHECKING
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#undef ENABLE_NLS
+
+/* Define if you want to workaround valgrind (a memory checker) warnings about
+ possible memory leaks because of libcpp use of interior pointers. */
+#undef ENABLE_VALGRIND_CHECKING
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+#undef HAVE_ALLOCA_H
+
+/* Define to 1 if you have the `clearerr_unlocked' function. */
+#undef HAVE_CLEARERR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `abort', and to 0 if you don't.
+ */
+#undef HAVE_DECL_ABORT
+
+/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ASPRINTF
+
+/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if
+ you don't. */
+#undef HAVE_DECL_BASENAME
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_CLEARERR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `errno', and to 0 if you don't.
+ */
+#undef HAVE_DECL_ERRNO
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_FEOF_UNLOCKED
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FERROR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FFLUSH_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fgetc_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FGETC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FGETS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fileno_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FILENO_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fprintf_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FPRINTF_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FPUTC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FPUTS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FREAD_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FWRITE_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_GETCHAR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getopt', and to 0 if you don't.
+ */
+#undef HAVE_DECL_GETOPT
+
+/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_PUTCHAR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PUTC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
+ don't. */
+#undef HAVE_DECL_VASPRINTF
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the `feof_unlocked' function. */
+#undef HAVE_FEOF_UNLOCKED
+
+/* Define to 1 if you have the `ferror_unlocked' function. */
+#undef HAVE_FERROR_UNLOCKED
+
+/* Define to 1 if you have the `fflush_unlocked' function. */
+#undef HAVE_FFLUSH_UNLOCKED
+
+/* Define to 1 if you have the `fgetc_unlocked' function. */
+#undef HAVE_FGETC_UNLOCKED
+
+/* Define to 1 if you have the `fgets_unlocked' function. */
+#undef HAVE_FGETS_UNLOCKED
+
+/* Define to 1 if you have the `fileno_unlocked' function. */
+#undef HAVE_FILENO_UNLOCKED
+
+/* Define to 1 if you have the `fprintf_unlocked' function. */
+#undef HAVE_FPRINTF_UNLOCKED
+
+/* Define to 1 if you have the `fputc_unlocked' function. */
+#undef HAVE_FPUTC_UNLOCKED
+
+/* Define to 1 if you have the `fputs_unlocked' function. */
+#undef HAVE_FPUTS_UNLOCKED
+
+/* Define to 1 if you have the `fread_unlocked' function. */
+#undef HAVE_FREAD_UNLOCKED
+
+/* Define to 1 if you have the `fwrite_unlocked' function. */
+#undef HAVE_FWRITE_UNLOCKED
+
+/* Define to 1 if you have the `getchar_unlocked' function. */
+#undef HAVE_GETCHAR_UNLOCKED
+
+/* Define to 1 if you have the `getc_unlocked' function. */
+#undef HAVE_GETC_UNLOCKED
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+#undef HAVE_LANGINFO_CODESET
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if libc includes obstacks. */
+#undef HAVE_OBSTACK
+
+/* Define to 1 if you have the `putchar_unlocked' function. */
+#undef HAVE_PUTCHAR_UNLOCKED
+
+/* Define to 1 if you have the `putc_unlocked' function. */
+#undef HAVE_PUTC_UNLOCKED
+
+/* Define to 1 if you can assemble SSE4 insns. */
+#undef HAVE_SSE4
+
+/* Define to 1 if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#undef HAVE_SYS_FILE_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if <sys/types.h> defines \`uchar'. */
+#undef HAVE_UCHAR
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#undef HAVE_UINTPTR_T
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to the widest efficient host integer type at least as wide as the
+ target's size_t type. */
+#undef HOST_WIDE_INT
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
+/* Define to the name of this package. */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+#undef STACK_DIRECTION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Define if you can safely include both <string.h> and <strings.h>. */
+#undef STRING_WITH_STRINGS
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#undef TIME_WITH_SYS_TIME
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+#undef TM_IN_SYS_TIME
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#undef off_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef ptrdiff_t
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef ssize_t
+
+/* Define to the type of an unsigned integer type wide enough to hold a
+ pointer, if such a type exists, and if the system does not define it. */
+#undef uintptr_t
diff --git a/gcc-4.9/libcpp/configure b/gcc-4.9/libcpp/configure
new file mode 100755
index 000000000..b421e48fd
--- /dev/null
+++ b/gcc-4.9/libcpp/configure
@@ -0,0 +1,8501 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.64 for cpplib .
+#
+# Report bugs to <gcc-bugs@gcc.gnu.org>.
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and
+$0: gcc-bugs@gcc.gnu.org about your system, including any
+$0: error possibly output before this message. Then install
+$0: a modern shell, or manually run the script under such a
+$0: shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 7<&0 </dev/null 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='cpplib'
+PACKAGE_TARNAME='cpplib'
+PACKAGE_VERSION=' '
+PACKAGE_STRING='cpplib '
+PACKAGE_BUGREPORT='gcc-bugs@gcc.gnu.org'
+PACKAGE_URL=''
+
+ac_unique_file="ucnid.h"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='LTLIBOBJS
+PICFLAG
+MAINT
+USED_CATALOGS
+PACKAGE
+LTLIBICONV
+LIBICONV
+CATOBJEXT
+GENCAT
+INSTOBJEXT
+DATADIRNAME
+CATALOGS
+POSUB
+GMSGFMT
+XGETTEXT
+INCINTL
+LIBINTL_DEP
+LIBINTL
+USE_NLS
+ALLOCA
+LIBOBJS
+CXXDEPMODE
+DEPDIR
+am__leading_dot
+WERROR
+noexception_flags
+WARN_PEDANTIC
+c_warn
+warn
+AUTOHEADER
+AUTOCONF
+ACLOCAL
+EGREP
+GREP
+CPP
+RANLIB
+ac_ct_CXX
+CXXFLAGS
+CXX
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+SET_MAKE
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_largefile
+enable_werror_always
+with_gnu_ld
+enable_rpath
+with_libiconv_prefix
+enable_maintainer_mode
+enable_checking
+enable_canonical_system_headers
+enable_host_shared
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CXX
+CXXFLAGS
+CCC
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures cpplib to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/cpplib]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of cpplib :";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-largefile omit support for large files
+ --enable-werror-always enable -Werror despite compiler version
+ --disable-rpath do not hardcode runtime library paths
+ --enable-maintainer-mode enable rules only needed by maintainers
+ --enable-checking[=LIST]
+ enable expensive run-time checks. With LIST, enable
+ only specific categories of checks. Categories are:
+ yes,no,all,none,release. Flags are: misc,valgrind or
+ other strings
+ --enable-canonical-system-headers
+ enable or disable system headers canonicalization
+ --enable-host-shared build host code as shared libraries
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-gnu-ld assume the C compiler uses GNU ld default=no
+ --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
+ --without-libiconv-prefix don't search for libiconv in includedir and libdir
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <gcc-bugs@gcc.gnu.org>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+cpplib configure
+generated by GNU Autoconf 2.64
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+ yes:no: )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( cat <<\_ASBOX
+## ----------------------------------- ##
+## Report this to gcc-bugs@gcc.gnu.org ##
+## ----------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%lu", i);
+ }
+ /* Do not output a trailing newline, as this causes \r\n confusion
+ on some platforms. */
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_decl
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+ return $ac_retval
+
+} # ac_fn_cxx_try_link
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by cpplib $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+ for ac_t in install-sh install.sh shtool; do
+ if test -f "$ac_dir/$ac_t"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/$ac_t -c"
+ break 2
+ fi
+ done
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if test "${ac_cv_target+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
+
+# Checks for programs.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
+fi
+ac_exeext=$ac_cv_exeext
+
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CXX" && break
+done
+
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ rm -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
+else
+ GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
+else
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+ test $ac_cv_safe_to_define___extensions__ = yes &&
+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test "${ac_cv_sys_large_files+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+fi
+
+
+MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
+for ac_prog in aclocal
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ACLOCAL+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ACLOCAL"; then
+ ac_cv_prog_ACLOCAL="$ACLOCAL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ACLOCAL="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ACLOCAL=$ac_cv_prog_ACLOCAL
+if test -n "$ACLOCAL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACLOCAL" >&5
+$as_echo "$ACLOCAL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ACLOCAL" && break
+done
+test -n "$ACLOCAL" || ACLOCAL="$MISSING aclocal"
+
+for ac_prog in autoconf
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AUTOCONF+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AUTOCONF"; then
+ ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AUTOCONF="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AUTOCONF=$ac_cv_prog_AUTOCONF
+if test -n "$AUTOCONF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOCONF" >&5
+$as_echo "$AUTOCONF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AUTOCONF" && break
+done
+test -n "$AUTOCONF" || AUTOCONF="$MISSING autoconf"
+
+for ac_prog in autoheader
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_AUTOHEADER+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AUTOHEADER"; then
+ ac_cv_prog_AUTOHEADER="$AUTOHEADER" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AUTOHEADER="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AUTOHEADER=$ac_cv_prog_AUTOHEADER
+if test -n "$AUTOHEADER"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AUTOHEADER" >&5
+$as_echo "$AUTOHEADER" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AUTOHEADER" && break
+done
+test -n "$AUTOHEADER" || AUTOHEADER="$MISSING autoheader"
+
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+warn=
+save_CFLAGS="$CFLAGS"
+for real_option in -W -Wall -Wno-narrowing -Wwrite-strings \
+ -Wmissing-format-attribute; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ warn="$warn${warn:+ }$real_option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+c_warn=
+save_CFLAGS="$CFLAGS"
+for real_option in -Wstrict-prototypes -Wmissing-prototypes \
+ -Wold-style-definition -Wc++-compat; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ c_warn="$c_warn${c_warn:+ }$real_option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+WARN_PEDANTIC=
+# Do the check with the no- prefix removed from the warning options
+# since gcc silently accepts any -Wno-* option on purpose
+if test "$GCC" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long" >&5
+$as_echo_n "checking whether $CC supports -pedantic -Wlong-long... " >&6; }
+if test "${acx_cv_prog_cc_pedantic__Wlong_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_CFLAGS="$CFLAGS"
+CFLAGS="-pedantic -Wlong-long"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ acx_cv_prog_cc_pedantic__Wlong_long=yes
+else
+ acx_cv_prog_cc_pedantic__Wlong_long=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wlong_long" >&5
+$as_echo "$acx_cv_prog_cc_pedantic__Wlong_long" >&6; }
+if test $acx_cv_prog_cc_pedantic__Wlong_long = yes; then :
+ WARN_PEDANTIC="$WARN_PEDANTIC${WARN_PEDANTIC:+ }-pedantic -Wno-long-long"
+fi
+
+fi
+
+
+# Disable exceptions and RTTI if building with g++
+noexception_flags=
+save_CFLAGS="$CFLAGS"
+for real_option in -fno-exceptions -fno-rtti; do
+ # Do the check with the no- prefix removed since gcc silently
+ # accepts any -Wno-* option on purpose
+ case $real_option in
+ -Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
+ *) option=$real_option ;;
+ esac
+ as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
+$as_echo_n "checking whether $CC supports $option... " >&6; }
+if { as_var=$as_acx_Woption; eval "test \"\${$as_var+set}\" = set"; }; then :
+ $as_echo_n "(cached) " >&6
+else
+ CFLAGS="$option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_acx_Woption=yes"
+else
+ eval "$as_acx_Woption=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+eval ac_res=\$$as_acx_Woption
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
+ noexception_flags="$noexception_flags${noexception_flags:+ }$real_option"
+fi
+ done
+CFLAGS="$save_CFLAGS"
+
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+WERROR=
+# Check whether --enable-werror-always was given.
+if test "${enable_werror_always+set}" = set; then :
+ enableval=$enable_werror_always;
+else
+ enable_werror_always=no
+fi
+
+if test $enable_werror_always = yes; then :
+ WERROR="$WERROR${WERROR:+ }-Werror"
+fi
+
+
+
+# Dependency checking.
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depdir"
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int i;
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+ as_fn_error "C++ compiler missing or inoperational" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX" am_compiler_list=
+
+am_depcomp=$ac_aux_dir/depcomp
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ if test $depmode = none; then break; fi
+
+ $as_echo "$as_me:$LINENO: trying $depmode" >&5
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "include sub/conftest.Po" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ depcmd="depmode=$depmode \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c"
+ echo "| $depcmd" | sed -e 's/ */ /g' >&5
+ if env $depcmd > conftest.err 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po >>conftest.err 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po >>conftest.err 2>&1 &&
+ ${MAKE-make} -s -f confmf >>conftest.err 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ $as_echo "$as_me:$LINENO: success" >&5
+ break
+ fi
+ fi
+ $as_echo "$as_me:$LINENO: failure, diagnostics are:" >&5
+ sed -e 's/^/| /' < conftest.err >&5
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+if test x${am_cv_CXX_dependencies_compiler_type-none} = xnone
+then as_fn_error "no usable dependency style found" "$LINENO" 5
+else CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+fi
+
+
+# Checks for header files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
+if test "${ac_cv_header_time+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_time=yes
+else
+ ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether string.h and strings.h may both be included" >&5
+$as_echo_n "checking whether string.h and strings.h may both be included... " >&6; }
+if test "${gcc_cv_header_string+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+#include <strings.h>
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gcc_cv_header_string=yes
+else
+ gcc_cv_header_string=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_header_string" >&5
+$as_echo "$gcc_cv_header_string" >&6; }
+if test $gcc_cv_header_string = yes; then
+
+$as_echo "#define STRING_WITH_STRINGS 1" >>confdefs.h
+
+fi
+
+
+for ac_header in locale.h fcntl.h limits.h stddef.h \
+ stdlib.h strings.h string.h sys/file.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+ no)
+ ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ as_fn_error "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
+if test "${ac_cv_c_const+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *pcpcc;
+ char **ppc;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ pcpcc = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++pcpcc;
+ ppc = (char**) pcpcc;
+ pcpcc = (char const *const *) ppc;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ if (s) return 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ if (!foo) return 0;
+ }
+ return !cs[0] && !zero.x;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_const=yes
+else
+ ac_cv_c_const=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
+if test $ac_cv_c_const = no; then
+
+$as_echo "#define const /**/" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if test "${ac_cv_c_inline+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
+$as_echo_n "checking for obstacks... " >&6; }
+if test "${ac_cv_func_obstack+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include "obstack.h"
+int
+main ()
+{
+struct obstack mem;
+ #define obstack_chunk_alloc malloc
+ #define obstack_chunk_free free
+ obstack_init (&mem);
+ obstack_free (&mem, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_obstack=yes
+else
+ ac_cv_func_obstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_obstack" >&5
+$as_echo "$ac_cv_func_obstack" >&6; }
+if test $ac_cv_func_obstack = yes; then
+
+$as_echo "#define HAVE_OBSTACK 1" >>confdefs.h
+
+else
+ case " $LIBOBJS " in
+ *" obstack.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS obstack.$ac_objext"
+ ;;
+esac
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define ssize_t int
+_ACEOF
+
+fi
+
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintptr_t" = x""yes; then :
+
+$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+
+else
+ for ac_type in 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define uintptr_t $ac_type
+_ACEOF
+
+ ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -z "$ac_type" && break
+ done
+fi
+
+
+ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define ptrdiff_t int
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
+$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
+if test "${ac_cv_struct_tm+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main ()
+{
+struct tm tm;
+ int *p = &tm.tm_sec;
+ return !p;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_struct_tm=time.h
+else
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
+
+fi
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+$as_echo_n "checking size of int... " >&6; }
+if test "${ac_cv_sizeof_int+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_int" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (int)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_int=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+$as_echo "$ac_cv_sizeof_int" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+
+# The cast to long int works around a bug in the HP C Compiler
+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+# This bug is HP SR number 8606223364.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+$as_echo_n "checking size of long... " >&6; }
+if test "${ac_cv_sizeof_long+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then :
+
+else
+ if test "$ac_cv_type_long" = yes; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (long)
+See \`config.log' for more details." "$LINENO" 5; }; }
+ else
+ ac_cv_sizeof_long=0
+ fi
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+$as_echo "$ac_cv_sizeof_long" >&6; }
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+
+
+for ac_func in clearerr_unlocked feof_unlocked ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked putchar_unlocked putc_unlocked
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ac_fn_c_check_decl "$LINENO" "abort" "ac_cv_have_decl_abort" "$ac_includes_default"
+if test "x$ac_cv_have_decl_abort" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ABORT $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_asprintf" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ASPRINTF $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "basename(char *)" "ac_cv_have_decl_basename_char_p_" "$ac_includes_default"
+if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_BASENAME $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" "$ac_includes_default"
+if test "x$ac_cv_have_decl_errno" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ERRNO $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "getopt" "ac_cv_have_decl_getopt" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getopt" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETOPT $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vasprintf" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_VASPRINTF $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_clearerr_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_feof_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ferror_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fflush_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fgetc_unlocked" "ac_cv_have_decl_fgetc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgetc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgets_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fileno_unlocked" "ac_cv_have_decl_fileno_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fileno_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FILENO_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fprintf_unlocked" "ac_cv_have_decl_fprintf_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fprintf_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPRINTF_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getchar_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putchar_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putc_unlocked" = x""yes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+# Checks for library functions.
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
+if test "${ac_cv_working_alloca_h+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_working_alloca_h=yes
+else
+ ac_cv_working_alloca_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
+$as_echo "$ac_cv_working_alloca_h" >&6; }
+if test $ac_cv_working_alloca_h = yes; then
+
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
+if test "${ac_cv_func_alloca_works+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_alloca_works=yes
+else
+ ac_cv_func_alloca_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
+$as_echo "$ac_cv_func_alloca_works" >&6; }
+
+if test $ac_cv_func_alloca_works = yes; then
+
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
+if test "${ac_cv_os_cray+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then :
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
+$as_echo "$ac_cv_os_cray" >&6; }
+if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+ if test "x$as_val" = x""yes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
+if test "${ac_cv_c_stack_direction+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+
+int
+main ()
+{
+ return find_stack_direction () < 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_stack_direction=1
+else
+ ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
+$as_echo "$ac_cv_c_stack_direction" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if test "${am_cv_langinfo_codeset+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_langinfo_codeset=yes
+else
+ am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+ if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+
+ fi
+
+# If we haven't got the data from the intl directory,
+# assume NLS is disabled.
+USE_NLS=no
+LIBINTL=
+LIBINTL_DEP=
+INCINTL=
+XGETTEXT=
+GMSGFMT=
+POSUB=
+
+if test -f ../intl/config.intl; then
+ . ../intl/config.intl
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+if test x"$USE_NLS" != xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for catalogs to be installed" >&5
+$as_echo_n "checking for catalogs to be installed... " >&6; }
+ # Look for .po and .gmo files in the source directory.
+ CATALOGS=
+ XLINGUAS=
+ for cat in $srcdir/po/*.gmo $srcdir/po/*.po; do
+ # If there aren't any .gmo files the shell will give us the
+ # literal string "../path/to/srcdir/po/*.gmo" which has to be
+ # weeded out.
+ case "$cat" in *\**)
+ continue;;
+ esac
+ # The quadruple backslash is collapsed to a double backslash
+ # by the backticks, then collapsed again by the double quotes,
+ # leaving us with one backslash in the sed expression (right
+ # before the dot that mustn't act as a wildcard).
+ cat=`echo $cat | sed -e "s!$srcdir/po/!!" -e "s!\\\\.po!.gmo!"`
+ lang=`echo $cat | sed -e "s!\\\\.gmo!!"`
+ # The user is allowed to set LINGUAS to a list of languages to
+ # install catalogs for. If it's empty that means "all of them."
+ if test "x$LINGUAS" = x; then
+ CATALOGS="$CATALOGS $cat"
+ XLINGUAS="$XLINGUAS $lang"
+ else
+ case "$LINGUAS" in *$lang*)
+ CATALOGS="$CATALOGS $cat"
+ XLINGUAS="$XLINGUAS $lang"
+ ;;
+ esac
+ fi
+ done
+ LINGUAS="$XLINGUAS"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINGUAS" >&5
+$as_echo "$LINGUAS" >&6; }
+
+
+ DATADIRNAME=share
+
+ INSTOBJEXT=.mo
+
+ GENCAT=gencat
+
+ CATOBJEXT=.gmo
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uchar" >&5
+$as_echo_n "checking for uchar... " >&6; }
+if test "${gcc_cv_type_uchar+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+
+int
+main ()
+{
+if ((uchar *)0) return 0;
+ if (sizeof(uchar)) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_uchar=yes
+else
+ ac_cv_type_uchar=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_type_uchar" >&5
+$as_echo "$gcc_cv_type_uchar" >&6; }
+if test $ac_cv_type_uchar = yes; then
+
+$as_echo "#define HAVE_UCHAR 1" >>confdefs.h
+
+fi
+
+# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different
+# iconv() prototype.
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
+$as_echo_n "checking for ld used by GCC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${acl_cv_path_LD+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ acl_cv_prog_gnu_ld=yes
+else
+ acl_cv_prog_gnu_ld=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if test "${acl_cv_rpath+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+$as_echo "$acl_cv_rpath" >&6; }
+ wl="$acl_cv_wl"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+ enableval=$enable_rpath; :
+else
+ enable_rpath=yes
+fi
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+
+fi
+
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if test "${am_cv_func_iconv+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if test "${am_cv_proto_iconv+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ am_cv_proto_iconv_arg1=""
+else
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:-
+ }$am_cv_proto_iconv" >&5
+$as_echo "${ac_t:-
+ }$am_cv_proto_iconv" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+_ACEOF
+
+ fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# More defines and substitutions.
+PACKAGE="$PACKAGE_TARNAME"
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+
+if test "x$enable_nls" != xno; then
+ USED_CATALOGS='$(CATALOGS)'
+else
+ USED_CATALOGS=
+fi
+
+
+# Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode;
+else
+ enable_maintainer_mode=no
+fi
+
+
+if test "x$enable_maintainer_mode" = xno; then
+ MAINT='#'
+else
+ MAINT=
+fi
+
+
+# Enable expensive internal checks
+is_release=
+if test -f $srcdir/../gcc/DEV-PHASE \
+ && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
+ is_release=yes
+fi
+
+# Check whether --enable-checking was given.
+if test "${enable_checking+set}" = set; then :
+ enableval=$enable_checking; ac_checking_flags="${enableval}"
+else
+
+# Determine the default checks.
+if test x$is_release = x ; then
+ ac_checking_flags=yes
+else
+ ac_checking_flags=release
+fi
+fi
+
+IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+ case $check in
+ # these set all the flags to specific states
+ yes|all) ac_checking=1 ; ac_valgrind_checking= ;;
+ no|none|release) ac_checking= ; ac_valgrind_checking= ;;
+ # these enable particular checks
+ misc) ac_checking=1 ;;
+ valgrind) ac_valgrind_checking=1 ;;
+ # accept
+ *) ;;
+ esac
+done
+IFS="$ac_save_IFS"
+
+if test x$ac_checking != x ; then
+
+$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
+
+fi
+
+if test x$ac_valgrind_checking != x ; then
+
+$as_echo "#define ENABLE_VALGRIND_CHECKING 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-canonical-system-headers was given.
+if test "${enable_canonical_system_headers+set}" = set; then :
+ enableval=$enable_canonical_system_headers;
+else
+ enable_canonical_system_headers=yes
+fi
+
+if test $enable_canonical_system_headers != no; then
+
+$as_echo "#define ENABLE_CANONICAL_SYSTEM_HEADERS 1" >>confdefs.h
+
+fi
+
+
+case $target in
+ aarch64*-*-* | \
+ alpha*-*-* | \
+ arm*-*-* | \
+ x86_64-*-* | \
+ ia64-*-* | \
+ hppa*64*-*-* | \
+ i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
+ mips*-*-* | \
+ mmix-*-* | \
+ powerpc*-*-* | \
+ rs6000*-*-* | \
+ s390*-*-* | \
+ sparc*-*-* | \
+ spu-*-* | \
+ sh[123456789lbe]*-*-* | sh-*-* | \
+ tilegx*-*-* | tilepro*-*-* )
+ need_64bit_hwint=yes ;;
+ *)
+ need_64bit_hwint=no ;;
+esac
+
+case $need_64bit_hwint:$ac_cv_sizeof_long in
+ *:8 | no:*) host_wide_int=long ;;
+ *) host_wide_int='long long' ;;
+esac
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define HOST_WIDE_INT $host_wide_int
+_ACEOF
+
+
+case $target in
+ i?86-* | x86_64-*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define HAVE_SSE4 1" >>confdefs.h
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+esac
+
+# Enable --enable-host-shared.
+# Check whether --enable-host-shared was given.
+if test "${enable_host_shared+set}" = set; then :
+ enableval=$enable_host_shared; PICFLAG=-fPIC
+else
+ PICFLAG=
+fi
+
+
+
+# Output.
+
+ac_config_headers="$ac_config_headers config.h:config.in"
+
+ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ test "x$cache_file" != "x/dev/null" &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ cat confcache >$cache_file
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$?; test $as_status -eq 0 && as_status=1
+ if test "$3"; then
+ as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+ fi
+ $as_echo "$as_me: error: $1" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by cpplib $as_me , which was
+generated by GNU Autoconf 2.64. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <gcc-bugs@gcc.gnu.org>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_version="\\
+cpplib config.status
+configured by $0, generated by GNU Autoconf 2.64,
+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2009 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depdir") CONFIG_COMMANDS="$CONFIG_COMMANDS depdir" ;;
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.in" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp=
+ trap 'exit_status=$?
+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+ || as_fn_error "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[ ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_t"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$tmp/stdin" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined." >&2;}
+
+ rm -f "$tmp/stdin"
+ case $ac_file in
+ -) cat "$tmp/out" && rm -f "$tmp/out";;
+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+ } >"$tmp/config.h" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$tmp/config.h" "$ac_file" \
+ || as_fn_error "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error "could not create -" "$LINENO" 5
+ fi
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depdir":C) $SHELL $ac_aux_dir/mkinstalldirs $DEPDIR ;;
+ "config.h":H) echo timestamp > stamp-h1 ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit $?
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/gcc-4.9/libcpp/configure.ac b/gcc-4.9/libcpp/configure.ac
new file mode 100644
index 000000000..8515abff2
--- /dev/null
+++ b/gcc-4.9/libcpp/configure.ac
@@ -0,0 +1,234 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.64)
+AC_INIT(cpplib, [ ], gcc-bugs@gcc.gnu.org, cpplib)
+AC_CONFIG_SRCDIR(ucnid.h)
+AC_CONFIG_MACRO_DIR(../config)
+AC_CANONICAL_SYSTEM
+
+# Checks for programs.
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+AC_PROG_CC
+AC_PROG_CXX
+AC_PROG_RANLIB
+
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+
+MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
+AC_CHECK_PROGS([ACLOCAL], [aclocal], [$MISSING aclocal])
+AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf])
+AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader])
+
+# Figure out what compiler warnings we can enable.
+# See config/warnings.m4 for details.
+
+ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wno-narrowing -Wwrite-strings \
+ -Wmissing-format-attribute], [warn])
+ACX_PROG_CC_WARNING_OPTS([-Wstrict-prototypes -Wmissing-prototypes \
+ -Wold-style-definition -Wc++-compat], [c_warn])
+ACX_PROG_CC_WARNING_ALMOST_PEDANTIC([-Wno-long-long])
+
+# Disable exceptions and RTTI if building with g++
+ACX_PROG_CC_WARNING_OPTS(
+ m4_quote(m4_do([-fno-exceptions -fno-rtti])), [noexception_flags])
+
+# Only enable with --enable-werror-always until existing warnings are
+# corrected.
+ACX_PROG_CC_WARNINGS_ARE_ERRORS([manual])
+
+# Dependency checking.
+ZW_CREATE_DEPDIR
+AC_LANG_PUSH([C++])
+AC_COMPILE_IFELSE([[int i;]], [],
+ [AC_MSG_ERROR([C++ compiler missing or inoperational])])
+AC_LANG_POP([C++])
+ZW_PROG_COMPILER_DEPENDENCIES([CXX])
+
+# Checks for header files.
+AC_HEADER_TIME
+ACX_HEADER_STRING
+
+AC_CHECK_HEADERS(locale.h fcntl.h limits.h stddef.h \
+ stdlib.h strings.h string.h sys/file.h unistd.h)
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_BIGENDIAN
+AC_C_CONST
+AC_C_INLINE
+AC_FUNC_OBSTACK
+AC_TYPE_OFF_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UINTPTR_T
+AC_CHECK_TYPE(ptrdiff_t, int)
+AC_STRUCT_TM
+AC_CHECK_SIZEOF(int)
+AC_CHECK_SIZEOF(long)
+define(libcpp_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
+ ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
+ fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
+ fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
+ putchar_unlocked putc_unlocked)
+AC_CHECK_FUNCS(libcpp_UNLOCKED_FUNCS)
+AC_CHECK_DECLS([abort, asprintf, basename(char *), errno, getopt, vasprintf])
+AC_CHECK_DECLS(m4_split(m4_normalize(libcpp_UNLOCKED_FUNCS)))
+
+# Checks for library functions.
+AC_FUNC_ALLOCA
+AC_HEADER_STDC
+AM_LANGINFO_CODESET
+ZW_GNU_GETTEXT_SISTER_DIR
+
+AC_CACHE_CHECK(for uchar, gcc_cv_type_uchar,
+[AC_TRY_COMPILE([
+#include <sys/types.h>
+],
+[if ((uchar *)0) return 0;
+ if (sizeof(uchar)) return 0;],
+ac_cv_type_uchar=yes, ac_cv_type_uchar=no)])
+if test $ac_cv_type_uchar = yes; then
+ AC_DEFINE(HAVE_UCHAR, 1,
+ [Define if <sys/types.h> defines \`uchar'.])
+fi
+
+# g++ on Solaris 10+ defines _XOPEN_SOURCE=600, which exposes a different
+# iconv() prototype.
+AC_LANG_PUSH([C++])
+AM_ICONV
+AC_LANG_POP([C++])
+
+# More defines and substitutions.
+PACKAGE="$PACKAGE_TARNAME"
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define to the name of this package.])
+AC_SUBST(PACKAGE)
+
+if test "x$enable_nls" != xno; then
+ USED_CATALOGS='$(CATALOGS)'
+else
+ USED_CATALOGS=
+fi
+AC_SUBST(USED_CATALOGS)
+
+AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable rules only needed by maintainers],,
+enable_maintainer_mode=no)
+
+if test "x$enable_maintainer_mode" = xno; then
+ MAINT='#'
+else
+ MAINT=
+fi
+AC_SUBST(MAINT)
+
+# Enable expensive internal checks
+is_release=
+if test -f $srcdir/../gcc/DEV-PHASE \
+ && test x"`cat $srcdir/../gcc/DEV-PHASE`" != xexperimental; then
+ is_release=yes
+fi
+
+AC_ARG_ENABLE(checking,
+[AS_HELP_STRING([[--enable-checking[=LIST]]],
+ [enable expensive run-time checks. With LIST,
+ enable only specific categories of checks.
+ Categories are: yes,no,all,none,release.
+ Flags are: misc,valgrind or other strings])],
+[ac_checking_flags="${enableval}"],[
+# Determine the default checks.
+if test x$is_release = x ; then
+ ac_checking_flags=yes
+else
+ ac_checking_flags=release
+fi])
+IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+ case $check in
+ # these set all the flags to specific states
+ yes|all) ac_checking=1 ; ac_valgrind_checking= ;;
+ no|none|release) ac_checking= ; ac_valgrind_checking= ;;
+ # these enable particular checks
+ misc) ac_checking=1 ;;
+ valgrind) ac_valgrind_checking=1 ;;
+ # accept
+ *) ;;
+ esac
+done
+IFS="$ac_save_IFS"
+
+if test x$ac_checking != x ; then
+ AC_DEFINE(ENABLE_CHECKING, 1,
+[Define if you want more run-time sanity checks.])
+fi
+
+if test x$ac_valgrind_checking != x ; then
+ AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
+[Define if you want to workaround valgrind (a memory checker) warnings about
+ possible memory leaks because of libcpp use of interior pointers.])
+fi
+
+AC_ARG_ENABLE(canonical-system-headers,
+[ --enable-canonical-system-headers
+ enable or disable system headers canonicalization],
+[],
+enable_canonical_system_headers=yes)
+if test $enable_canonical_system_headers != no; then
+ AC_DEFINE(ENABLE_CANONICAL_SYSTEM_HEADERS,
+ 1, [Define to enable system headers canonicalization.])
+fi
+
+m4_changequote(,)
+case $target in
+ aarch64*-*-* | \
+ alpha*-*-* | \
+ arm*-*-* | \
+ x86_64-*-* | \
+ ia64-*-* | \
+ hppa*64*-*-* | \
+ i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
+ mips*-*-* | \
+ mmix-*-* | \
+ powerpc*-*-* | \
+ rs6000*-*-* | \
+ s390*-*-* | \
+ sparc*-*-* | \
+ spu-*-* | \
+ sh[123456789lbe]*-*-* | sh-*-* | \
+ tilegx*-*-* | tilepro*-*-* )
+ need_64bit_hwint=yes ;;
+ *)
+ need_64bit_hwint=no ;;
+esac
+
+case $need_64bit_hwint:$ac_cv_sizeof_long in
+ *:8 | no:*) host_wide_int=long ;;
+ *) host_wide_int='long long' ;;
+esac
+m4_changequote([,])
+
+AC_DEFINE_UNQUOTED(HOST_WIDE_INT, $host_wide_int,
+[Define to the widest efficient host integer type at least
+ as wide as the target's size_t type.])
+
+case $target in
+ i?86-* | x86_64-*)
+ AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))],
+ [AC_DEFINE([HAVE_SSE4], [1],
+ [Define to 1 if you can assemble SSE4 insns.])])
+esac
+
+# Enable --enable-host-shared.
+AC_ARG_ENABLE(host-shared,
+[AS_HELP_STRING([--enable-host-shared],
+ [build host code as shared libraries])],
+[PICFLAG=-fPIC], [PICFLAG=])
+AC_SUBST(PICFLAG)
+
+# Output.
+
+AC_CONFIG_HEADERS(config.h:config.in, [echo timestamp > stamp-h1])
+AC_CONFIG_FILES(Makefile)
+AC_OUTPUT
diff --git a/gcc-4.9/libcpp/directives-only.c b/gcc-4.9/libcpp/directives-only.c
new file mode 100644
index 000000000..c6e130464
--- /dev/null
+++ b/gcc-4.9/libcpp/directives-only.c
@@ -0,0 +1,240 @@
+/* CPP Library - directive only preprocessing for distributed compilation.
+ Copyright (C) 2007-2014 Free Software Foundation, Inc.
+ Contributed by Ollie Wild <aaw@google.com>.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+/* DO (Directive only) flags. */
+#define DO_BOL (1 << 0) /* At the beginning of a logical line. */
+#define DO_STRING (1 << 1) /* In a string constant. */
+#define DO_CHAR (1 << 2) /* In a character constant. */
+#define DO_BLOCK_COMMENT (1 << 3) /* In a block comment. */
+#define DO_LINE_COMMENT (1 << 4) /* In a single line "//-style" comment. */
+
+#define DO_LINE_SPECIAL (DO_STRING | DO_CHAR | DO_LINE_COMMENT)
+#define DO_SPECIAL (DO_LINE_SPECIAL | DO_BLOCK_COMMENT)
+
+/* Writes out the preprocessed file, handling spacing and paste
+ avoidance issues. */
+void
+_cpp_preprocess_dir_only (cpp_reader *pfile,
+ const struct _cpp_dir_only_callbacks *cb)
+{
+ struct cpp_buffer *buffer;
+ const unsigned char *cur, *base, *next_line, *rlimit;
+ cppchar_t c, last_c;
+ unsigned flags;
+ linenum_type lines;
+ int col;
+ source_location loc;
+
+ restart:
+ /* Buffer initialization ala _cpp_clean_line(). */
+ buffer = pfile->buffer;
+ buffer->cur_note = buffer->notes_used = 0;
+ buffer->cur = buffer->line_base = buffer->next_line;
+ buffer->need_line = false;
+
+ /* This isn't really needed. It prevents a compiler warning, though. */
+ loc = pfile->line_table->highest_line;
+
+ /* Scan initialization. */
+ next_line = cur = base = buffer->cur;
+ rlimit = buffer->rlimit;
+ flags = DO_BOL;
+ lines = 0;
+ col = 1;
+
+ for (last_c = '\n', c = *cur; cur < rlimit; last_c = c, c = *++cur, ++col)
+ {
+ /* Skip over escaped newlines. */
+ if (__builtin_expect (c == '\\', false))
+ {
+ const unsigned char *tmp = cur + 1;
+
+ while (is_nvspace (*tmp) && tmp < rlimit)
+ tmp++;
+ if (*tmp == '\r')
+ tmp++;
+ if (*tmp == '\n' && tmp < rlimit)
+ {
+ CPP_INCREMENT_LINE (pfile, 0);
+ lines++;
+ col = 0;
+ cur = tmp;
+ c = last_c;
+ continue;
+ }
+ }
+
+ if (__builtin_expect (last_c == '#', false) && !(flags & DO_SPECIAL))
+ {
+ if (c != '#' && (flags & DO_BOL))
+ {
+ struct line_maps *line_table;
+
+ if (!pfile->state.skipping && next_line != base)
+ cb->print_lines (lines, base, next_line - base);
+
+ /* Prep things for directive handling. */
+ buffer->next_line = cur;
+ buffer->need_line = true;
+ _cpp_get_fresh_line (pfile);
+
+ /* Ensure proper column numbering for generated error messages. */
+ buffer->line_base -= col - 1;
+
+ _cpp_handle_directive (pfile, 0 /* ignore indented */);
+
+ /* Sanitize the line settings. Duplicate #include's can mess
+ things up. */
+ line_table = pfile->line_table;
+ line_table->highest_location = line_table->highest_line;
+
+ /* The if block prevents us from outputing line information when
+ the file ends with a directive and no newline. Note that we
+ must use pfile->buffer, not buffer. */
+ if (pfile->buffer->next_line < pfile->buffer->rlimit)
+ cb->maybe_print_line (pfile->line_table->highest_line);
+
+ goto restart;
+ }
+
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+ else if (__builtin_expect (last_c == '/', false) \
+ && !(flags & DO_SPECIAL) && c != '*' && c != '/')
+ {
+ /* If a previous slash is not starting a block comment, clear the
+ DO_BOL flag. */
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+
+ switch (c)
+ {
+ case '/':
+ if ((flags & DO_BLOCK_COMMENT) && last_c == '*')
+ {
+ flags &= ~DO_BLOCK_COMMENT;
+ c = 0;
+ }
+ else if (!(flags & DO_SPECIAL) && last_c == '/')
+ flags |= DO_LINE_COMMENT;
+ else if (!(flags & DO_SPECIAL))
+ /* Mark the position for possible error reporting. */
+ loc = linemap_position_for_column (pfile->line_table, col);
+
+ break;
+
+ case '*':
+ if (!(flags & DO_SPECIAL))
+ {
+ if (last_c == '/')
+ flags |= DO_BLOCK_COMMENT;
+ else
+ {
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+ }
+
+ break;
+
+ case '\'':
+ case '"':
+ {
+ unsigned state = (c == '"') ? DO_STRING : DO_CHAR;
+
+ if (!(flags & DO_SPECIAL))
+ {
+ flags |= state;
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+ else if ((flags & state) && last_c != '\\')
+ flags &= ~state;
+
+ break;
+ }
+
+ case '\\':
+ {
+ if ((flags & (DO_STRING | DO_CHAR)) && last_c == '\\')
+ c = 0;
+
+ if (!(flags & DO_SPECIAL))
+ {
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+
+ break;
+ }
+
+ case '\n':
+ CPP_INCREMENT_LINE (pfile, 0);
+ lines++;
+ col = 0;
+ flags &= ~DO_LINE_SPECIAL;
+ if (!(flags & DO_SPECIAL))
+ flags |= DO_BOL;
+ break;
+
+ case '#':
+ next_line = cur;
+ /* Don't update DO_BOL yet. */
+ break;
+
+ case ' ': case '\t': case '\f': case '\v': case '\0':
+ break;
+
+ default:
+ if (!(flags & DO_SPECIAL))
+ {
+ flags &= ~DO_BOL;
+ pfile->mi_valid = false;
+ }
+ break;
+ }
+ }
+
+ if (flags & DO_BLOCK_COMMENT)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, loc, 0, "unterminated comment");
+
+ if (!pfile->state.skipping && cur != base)
+ {
+ /* If the file was not newline terminated, add rlimit, which is
+ guaranteed to point to a newline, to the end of our range. */
+ if (cur[-1] != '\n')
+ {
+ cur++;
+ CPP_INCREMENT_LINE (pfile, 0);
+ lines++;
+ }
+
+ cb->print_lines (lines, base, cur - base);
+ }
+
+ _cpp_pop_buffer (pfile);
+ if (pfile->buffer)
+ goto restart;
+}
diff --git a/gcc-4.9/libcpp/directives.c b/gcc-4.9/libcpp/directives.c
new file mode 100644
index 000000000..3486a48d2
--- /dev/null
+++ b/gcc-4.9/libcpp/directives.c
@@ -0,0 +1,2603 @@
+/* CPP Library. (Directive handling.)
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Contributed by Per Bothner, 1994-95.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+#include "mkdeps.h"
+#include "obstack.h"
+
+/* Stack of conditionals currently in progress
+ (including both successful and failing conditionals). */
+struct if_stack
+{
+ struct if_stack *next;
+ source_location line; /* Line where condition started. */
+ const cpp_hashnode *mi_cmacro;/* macro name for #ifndef around entire file */
+ bool skip_elses; /* Can future #else / #elif be skipped? */
+ bool was_skipping; /* If were skipping on entry. */
+ int type; /* Most recent conditional for diagnostics. */
+};
+
+/* Contains a registered pragma or pragma namespace. */
+typedef void (*pragma_cb) (cpp_reader *);
+struct pragma_entry
+{
+ struct pragma_entry *next;
+ const cpp_hashnode *pragma; /* Name and length. */
+ bool is_nspace;
+ bool is_internal;
+ bool is_deferred;
+ bool allow_expansion;
+ union {
+ pragma_cb handler;
+ struct pragma_entry *space;
+ unsigned int ident;
+ } u;
+};
+
+/* Values for the origin field of struct directive. KANDR directives
+ come from traditional (K&R) C. STDC89 directives come from the
+ 1989 C standard. EXTENSION directives are extensions. */
+#define KANDR 0
+#define STDC89 1
+#define EXTENSION 2
+
+/* Values for the flags field of struct directive. COND indicates a
+ conditional; IF_COND an opening conditional. INCL means to treat
+ "..." and <...> as q-char and h-char sequences respectively. IN_I
+ means this directive should be handled even if -fpreprocessed is in
+ effect (these are the directives with callback hooks).
+
+ EXPAND is set on directives that are always macro-expanded. */
+#define COND (1 << 0)
+#define IF_COND (1 << 1)
+#define INCL (1 << 2)
+#define IN_I (1 << 3)
+#define EXPAND (1 << 4)
+#define DEPRECATED (1 << 5)
+
+/* Defines one #-directive, including how to handle it. */
+typedef void (*directive_handler) (cpp_reader *);
+typedef struct directive directive;
+struct directive
+{
+ directive_handler handler; /* Function to handle directive. */
+ const uchar *name; /* Name of directive. */
+ unsigned short length; /* Length of name. */
+ unsigned char origin; /* Origin of directive. */
+ unsigned char flags; /* Flags describing this directive. */
+};
+
+/* Forward declarations. */
+
+static void skip_rest_of_line (cpp_reader *);
+static void check_eol (cpp_reader *, bool);
+static void start_directive (cpp_reader *);
+static void prepare_directive_trad (cpp_reader *);
+static void end_directive (cpp_reader *, int);
+static void directive_diagnostics (cpp_reader *, const directive *, int);
+static void run_directive (cpp_reader *, int, const char *, size_t);
+static char *glue_header_name (cpp_reader *);
+static const char *parse_include (cpp_reader *, int *, const cpp_token ***,
+ source_location *);
+static void push_conditional (cpp_reader *, int, int, const cpp_hashnode *);
+static unsigned int read_flag (cpp_reader *, unsigned int);
+static bool strtolinenum (const uchar *, size_t, linenum_type *, bool *);
+static void do_diagnostic (cpp_reader *, int, int, int);
+static cpp_hashnode *lex_macro_node (cpp_reader *, bool);
+static int undefine_macros (cpp_reader *, cpp_hashnode *, void *);
+static void do_include_common (cpp_reader *, enum include_type);
+static struct pragma_entry *lookup_pragma_entry (struct pragma_entry *,
+ const cpp_hashnode *);
+static int count_registered_pragmas (struct pragma_entry *);
+static char ** save_registered_pragmas (struct pragma_entry *, char **);
+static char ** restore_registered_pragmas (cpp_reader *, struct pragma_entry *,
+ char **);
+static void do_pragma_once (cpp_reader *);
+static void do_pragma_poison (cpp_reader *);
+static void do_pragma_system_header (cpp_reader *);
+static void do_pragma_dependency (cpp_reader *);
+static void do_pragma_warning_or_error (cpp_reader *, bool error);
+static void do_pragma_warning (cpp_reader *);
+static void do_pragma_error (cpp_reader *);
+static void do_linemarker (cpp_reader *);
+static const cpp_token *get_token_no_padding (cpp_reader *);
+static const cpp_token *get__Pragma_string (cpp_reader *);
+static void destringize_and_run (cpp_reader *, const cpp_string *);
+static int parse_answer (cpp_reader *, struct answer **, int, source_location);
+static cpp_hashnode *parse_assertion (cpp_reader *, struct answer **, int);
+static struct answer ** find_answer (cpp_hashnode *, const struct answer *);
+static void handle_assertion (cpp_reader *, const char *, int);
+static void do_pragma_push_macro (cpp_reader *);
+static void do_pragma_pop_macro (cpp_reader *);
+static void cpp_pop_definition (cpp_reader *, struct def_pragma_macro *);
+
+/* This is the table of directive handlers. It is ordered by
+ frequency of occurrence; the numbers at the end are directive
+ counts from all the source code I have lying around (egcs and libc
+ CVS as of 1999-05-18, plus grub-0.5.91, linux-2.2.9, and
+ pcmcia-cs-3.0.9). This is no longer important as directive lookup
+ is now O(1). All extensions other than #warning, #include_next,
+ and #import are deprecated. The name is where the extension
+ appears to have come from. */
+
+#define DIRECTIVE_TABLE \
+D(define, T_DEFINE = 0, KANDR, IN_I) /* 270554 */ \
+D(include, T_INCLUDE, KANDR, INCL | EXPAND) /* 52262 */ \
+D(endif, T_ENDIF, KANDR, COND) /* 45855 */ \
+D(ifdef, T_IFDEF, KANDR, COND | IF_COND) /* 22000 */ \
+D(if, T_IF, KANDR, COND | IF_COND | EXPAND) /* 18162 */ \
+D(else, T_ELSE, KANDR, COND) /* 9863 */ \
+D(ifndef, T_IFNDEF, KANDR, COND | IF_COND) /* 9675 */ \
+D(undef, T_UNDEF, KANDR, IN_I) /* 4837 */ \
+D(line, T_LINE, KANDR, EXPAND) /* 2465 */ \
+D(elif, T_ELIF, STDC89, COND | EXPAND) /* 610 */ \
+D(error, T_ERROR, STDC89, 0) /* 475 */ \
+D(pragma, T_PRAGMA, STDC89, IN_I) /* 195 */ \
+D(warning, T_WARNING, EXTENSION, 0) /* 22 */ \
+D(include_next, T_INCLUDE_NEXT, EXTENSION, INCL | EXPAND) /* 19 */ \
+D(ident, T_IDENT, EXTENSION, IN_I) /* 11 */ \
+D(import, T_IMPORT, EXTENSION, INCL | EXPAND) /* 0 ObjC */ \
+D(assert, T_ASSERT, EXTENSION, DEPRECATED) /* 0 SVR4 */ \
+D(unassert, T_UNASSERT, EXTENSION, DEPRECATED) /* 0 SVR4 */ \
+D(sccs, T_SCCS, EXTENSION, IN_I) /* 0 SVR4? */
+
+/* #sccs is synonymous with #ident. */
+#define do_sccs do_ident
+
+/* Use the table to generate a series of prototypes, an enum for the
+ directive names, and an array of directive handlers. */
+
+#define D(name, t, o, f) static void do_##name (cpp_reader *);
+DIRECTIVE_TABLE
+#undef D
+
+#define D(n, tag, o, f) tag,
+enum
+{
+ DIRECTIVE_TABLE
+ N_DIRECTIVES
+};
+#undef D
+
+#define D(name, t, origin, flags) \
+{ do_##name, (const uchar *) #name, \
+ sizeof #name - 1, origin, flags },
+static const directive dtable[] =
+{
+DIRECTIVE_TABLE
+};
+#undef D
+#undef DIRECTIVE_TABLE
+
+/* Wrapper struct directive for linemarkers.
+ The origin is more or less true - the original K+R cpp
+ did use this notation in its preprocessed output. */
+static const directive linemarker_dir =
+{
+ do_linemarker, UC"#", 1, KANDR, IN_I
+};
+
+#define SEEN_EOL() (pfile->cur_token[-1].type == CPP_EOF)
+
+/* Skip any remaining tokens in a directive. */
+static void
+skip_rest_of_line (cpp_reader *pfile)
+{
+ /* Discard all stacked contexts. */
+ while (pfile->context->prev)
+ _cpp_pop_context (pfile);
+
+ /* Sweep up all tokens remaining on the line. */
+ if (! SEEN_EOL ())
+ while (_cpp_lex_token (pfile)->type != CPP_EOF)
+ ;
+}
+
+/* Ensure there are no stray tokens at the end of a directive. If
+ EXPAND is true, tokens macro-expanding to nothing are allowed. */
+static void
+check_eol (cpp_reader *pfile, bool expand)
+{
+ if (! SEEN_EOL () && (expand
+ ? cpp_get_token (pfile)
+ : _cpp_lex_token (pfile))->type != CPP_EOF)
+ cpp_error (pfile, CPP_DL_PEDWARN, "extra tokens at end of #%s directive",
+ pfile->directive->name);
+}
+
+/* Ensure there are no stray tokens other than comments at the end of
+ a directive, and gather the comments. */
+static const cpp_token **
+check_eol_return_comments (cpp_reader *pfile)
+{
+ size_t c;
+ size_t capacity = 8;
+ const cpp_token **buf;
+
+ buf = XNEWVEC (const cpp_token *, capacity);
+ c = 0;
+ if (! SEEN_EOL ())
+ {
+ while (1)
+ {
+ const cpp_token *tok;
+
+ tok = _cpp_lex_token (pfile);
+ if (tok->type == CPP_EOF)
+ break;
+ if (tok->type != CPP_COMMENT)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "extra tokens at end of #%s directive",
+ pfile->directive->name);
+ else
+ {
+ if (c + 1 >= capacity)
+ {
+ capacity *= 2;
+ buf = XRESIZEVEC (const cpp_token *, buf, capacity);
+ }
+ buf[c] = tok;
+ ++c;
+ }
+ }
+ }
+ buf[c] = NULL;
+ return buf;
+}
+
+/* Called when entering a directive, _Pragma or command-line directive. */
+static void
+start_directive (cpp_reader *pfile)
+{
+ /* Setup in-directive state. */
+ pfile->state.in_directive = 1;
+ pfile->state.save_comments = 0;
+ pfile->directive_result.type = CPP_PADDING;
+
+ /* Some handlers need the position of the # for diagnostics. */
+ pfile->directive_line = pfile->line_table->highest_line;
+}
+
+/* Called when leaving a directive, _Pragma or command-line directive. */
+static void
+end_directive (cpp_reader *pfile, int skip_line)
+{
+ if (CPP_OPTION (pfile, traditional))
+ {
+ /* Revert change of prepare_directive_trad. */
+ if (!pfile->state.in_deferred_pragma)
+ pfile->state.prevent_expansion--;
+
+ if (pfile->directive != &dtable[T_DEFINE])
+ _cpp_remove_overlay (pfile);
+ }
+ else if (pfile->state.in_deferred_pragma)
+ ;
+ /* We don't skip for an assembler #. */
+ else if (skip_line)
+ {
+ skip_rest_of_line (pfile);
+ if (!pfile->keep_tokens)
+ {
+ pfile->cur_run = &pfile->base_run;
+ pfile->cur_token = pfile->base_run.base;
+ }
+ }
+
+ /* Restore state. */
+ pfile->state.save_comments = ! CPP_OPTION (pfile, discard_comments);
+ pfile->state.in_directive = 0;
+ pfile->state.in_expression = 0;
+ pfile->state.angled_headers = 0;
+ pfile->directive = 0;
+}
+
+/* Prepare to handle the directive in pfile->directive. */
+static void
+prepare_directive_trad (cpp_reader *pfile)
+{
+ if (pfile->directive != &dtable[T_DEFINE])
+ {
+ bool no_expand = (pfile->directive
+ && ! (pfile->directive->flags & EXPAND));
+ bool was_skipping = pfile->state.skipping;
+
+ pfile->state.in_expression = (pfile->directive == &dtable[T_IF]
+ || pfile->directive == &dtable[T_ELIF]);
+ if (pfile->state.in_expression)
+ pfile->state.skipping = false;
+
+ if (no_expand)
+ pfile->state.prevent_expansion++;
+ _cpp_scan_out_logical_line (pfile, NULL);
+ if (no_expand)
+ pfile->state.prevent_expansion--;
+
+ pfile->state.skipping = was_skipping;
+ _cpp_overlay_buffer (pfile, pfile->out.base,
+ pfile->out.cur - pfile->out.base);
+ }
+
+ /* Stop ISO C from expanding anything. */
+ pfile->state.prevent_expansion++;
+}
+
+/* Output diagnostics for a directive DIR. INDENTED is nonzero if
+ the '#' was indented. */
+static void
+directive_diagnostics (cpp_reader *pfile, const directive *dir, int indented)
+{
+ /* Issue -pedantic or deprecated warnings for extensions. We let
+ -pedantic take precedence if both are applicable. */
+ if (! pfile->state.skipping)
+ {
+ if (dir->origin == EXTENSION
+ && !(dir == &dtable[T_IMPORT] && CPP_OPTION (pfile, objc))
+ && CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_PEDWARN, "#%s is a GCC extension", dir->name);
+ else if (((dir->flags & DEPRECATED) != 0
+ || (dir == &dtable[T_IMPORT] && !CPP_OPTION (pfile, objc)))
+ && CPP_OPTION (pfile, cpp_warn_deprecated))
+ cpp_warning (pfile, CPP_W_DEPRECATED,
+ "#%s is a deprecated GCC extension", dir->name);
+ }
+
+ /* Traditionally, a directive is ignored unless its # is in
+ column 1. Therefore in code intended to work with K+R
+ compilers, directives added by C89 must have their #
+ indented, and directives present in traditional C must not.
+ This is true even of directives in skipped conditional
+ blocks. #elif cannot be used at all. */
+ if (CPP_WTRADITIONAL (pfile))
+ {
+ if (dir == &dtable[T_ELIF])
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "suggest not using #elif in traditional C");
+ else if (indented && dir->origin == KANDR)
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "traditional C ignores #%s with the # indented",
+ dir->name);
+ else if (!indented && dir->origin != KANDR)
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "suggest hiding #%s from traditional C with an indented #",
+ dir->name);
+ }
+}
+
+/* Check if we have a known directive. INDENTED is nonzero if the
+ '#' of the directive was indented. This function is in this file
+ to save unnecessarily exporting dtable etc. to lex.c. Returns
+ nonzero if the line of tokens has been handled, zero if we should
+ continue processing the line. */
+int
+_cpp_handle_directive (cpp_reader *pfile, int indented)
+{
+ const directive *dir = 0;
+ const cpp_token *dname;
+ bool was_parsing_args = pfile->state.parsing_args;
+ bool was_discarding_output = pfile->state.discarding_output;
+ int skip = 1;
+
+ if (was_discarding_output)
+ pfile->state.prevent_expansion = 0;
+
+ if (was_parsing_args)
+ {
+ if (CPP_OPTION (pfile, cpp_pedantic))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "embedding a directive within macro arguments is not portable");
+ pfile->state.parsing_args = 0;
+ pfile->state.prevent_expansion = 0;
+ }
+ start_directive (pfile);
+ dname = _cpp_lex_token (pfile);
+
+ if (dname->type == CPP_NAME)
+ {
+ if (dname->val.node.node->is_directive)
+ dir = &dtable[dname->val.node.node->directive_index];
+ }
+ /* We do not recognize the # followed by a number extension in
+ assembler code. */
+ else if (dname->type == CPP_NUMBER && CPP_OPTION (pfile, lang) != CLK_ASM)
+ {
+ dir = &linemarker_dir;
+ if (CPP_PEDANTIC (pfile) && ! CPP_OPTION (pfile, preprocessed)
+ && ! pfile->state.skipping)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "style of line directive is a GCC extension");
+ }
+
+ if (dir)
+ {
+ /* If we have a directive that is not an opening conditional,
+ invalidate any control macro. */
+ if (! (dir->flags & IF_COND))
+ pfile->mi_valid = false;
+
+ /* Kluge alert. In order to be sure that code like this
+
+ #define HASH #
+ HASH define foo bar
+
+ does not cause '#define foo bar' to get executed when
+ compiled with -save-temps, we recognize directives in
+ -fpreprocessed mode only if the # is in column 1. macro.c
+ puts a space in front of any '#' at the start of a macro.
+
+ We exclude the -fdirectives-only case because macro expansion
+ has not been performed yet, and block comments can cause spaces
+ to precede the directive. */
+ if (CPP_OPTION (pfile, preprocessed)
+ && !CPP_OPTION (pfile, directives_only)
+ && (indented || !(dir->flags & IN_I)))
+ {
+ skip = 0;
+ dir = 0;
+ }
+ else
+ {
+ /* In failed conditional groups, all non-conditional
+ directives are ignored. Before doing that, whether
+ skipping or not, we should lex angle-bracketed headers
+ correctly, and maybe output some diagnostics. */
+ pfile->state.angled_headers = dir->flags & INCL;
+ pfile->state.directive_wants_padding = dir->flags & INCL;
+ if (! CPP_OPTION (pfile, preprocessed))
+ directive_diagnostics (pfile, dir, indented);
+ if (pfile->state.skipping && !(dir->flags & COND))
+ dir = 0;
+ }
+ }
+ else if (dname->type == CPP_EOF)
+ ; /* CPP_EOF is the "null directive". */
+ else
+ {
+ /* An unknown directive. Don't complain about it in assembly
+ source: we don't know where the comments are, and # may
+ introduce assembler pseudo-ops. Don't complain about invalid
+ directives in skipped conditional groups (6.10 p4). */
+ if (CPP_OPTION (pfile, lang) == CLK_ASM)
+ skip = 0;
+ else if (!pfile->state.skipping)
+ cpp_error (pfile, CPP_DL_ERROR, "invalid preprocessing directive #%s",
+ cpp_token_as_text (pfile, dname));
+ }
+
+ pfile->directive = dir;
+ if (CPP_OPTION (pfile, traditional))
+ prepare_directive_trad (pfile);
+
+ if (dir)
+ pfile->directive->handler (pfile);
+ else if (skip == 0)
+ _cpp_backup_tokens (pfile, 1);
+
+ end_directive (pfile, skip);
+ if (was_parsing_args && !pfile->state.in_deferred_pragma)
+ {
+ /* Restore state when within macro args. */
+ pfile->state.parsing_args = 2;
+ pfile->state.prevent_expansion = 1;
+ }
+ if (was_discarding_output)
+ pfile->state.prevent_expansion = 1;
+ return skip;
+}
+
+/* Directive handler wrapper used by the command line option
+ processor. BUF is \n terminated. */
+static void
+run_directive (cpp_reader *pfile, int dir_no, const char *buf, size_t count)
+{
+ cpp_push_buffer (pfile, (const uchar *) buf, count,
+ /* from_stage3 */ true);
+ start_directive (pfile);
+
+ /* This is a short-term fix to prevent a leading '#' being
+ interpreted as a directive. */
+ _cpp_clean_line (pfile);
+
+ pfile->directive = &dtable[dir_no];
+ if (CPP_OPTION (pfile, traditional))
+ prepare_directive_trad (pfile);
+ pfile->directive->handler (pfile);
+ end_directive (pfile, 1);
+ _cpp_pop_buffer (pfile);
+}
+
+/* Checks for validity the macro name in #define, #undef, #ifdef and
+ #ifndef directives. IS_DEF_OR_UNDEF is true if this call is
+ processing a #define or #undefine directive, and false
+ otherwise. */
+static cpp_hashnode *
+lex_macro_node (cpp_reader *pfile, bool is_def_or_undef)
+{
+ const cpp_token *token = _cpp_lex_token (pfile);
+
+ /* The token immediately after #define must be an identifier. That
+ identifier may not be "defined", per C99 6.10.8p4.
+ In C++, it may not be any of the "named operators" either,
+ per C++98 [lex.digraph], [lex.key].
+ Finally, the identifier may not have been poisoned. (In that case
+ the lexer has issued the error message for us.) */
+
+ if (token->type == CPP_NAME)
+ {
+ cpp_hashnode *node = token->val.node.node;
+
+ if (is_def_or_undef && node == pfile->spec_nodes.n_defined)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\"defined\" cannot be used as a macro name");
+ else if (! (node->flags & NODE_POISONED))
+ return node;
+ }
+ else if (token->flags & NAMED_OP)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\"%s\" cannot be used as a macro name as it is an operator in C++",
+ NODE_NAME (token->val.node.node));
+ else if (token->type == CPP_EOF)
+ cpp_error (pfile, CPP_DL_ERROR, "no macro name given in #%s directive",
+ pfile->directive->name);
+ else
+ cpp_error (pfile, CPP_DL_ERROR, "macro names must be identifiers");
+
+ return NULL;
+}
+
+/* Process a #define directive. Most work is done in macro.c. */
+static void
+do_define (cpp_reader *pfile)
+{
+ cpp_hashnode *node = lex_macro_node (pfile, true);
+
+ if (node)
+ {
+ /* If we have been requested to expand comments into macros,
+ then re-enable saving of comments. */
+ pfile->state.save_comments =
+ ! CPP_OPTION (pfile, discard_comments_in_macro_exp);
+
+ if (pfile->cb.before_define)
+ pfile->cb.before_define (pfile);
+
+ if (_cpp_create_definition (pfile, node))
+ if (pfile->cb.define)
+ pfile->cb.define (pfile, pfile->directive_line, node);
+
+ node->flags &= ~NODE_USED;
+ }
+}
+
+/* Handle #undef. Mark the identifier NT_VOID in the hash table. */
+static void
+do_undef (cpp_reader *pfile)
+{
+ cpp_hashnode *node = lex_macro_node (pfile, true);
+
+ if (node)
+ {
+ if (pfile->cb.before_define)
+ pfile->cb.before_define (pfile);
+
+ if (pfile->cb.undef)
+ pfile->cb.undef (pfile, pfile->directive_line, node);
+
+ /* 6.10.3.5 paragraph 2: [#undef] is ignored if the specified
+ identifier is not currently defined as a macro name. */
+ if (node->type == NT_MACRO)
+ {
+ if (node->flags & NODE_WARN)
+ cpp_error (pfile, CPP_DL_WARNING,
+ "undefining \"%s\"", NODE_NAME (node));
+
+ if (CPP_OPTION (pfile, warn_unused_macros))
+ _cpp_warn_if_unused_macro (pfile, node, NULL);
+
+ _cpp_free_definition (node);
+ }
+ }
+
+ check_eol (pfile, false);
+}
+
+/* Undefine a single macro/assertion/whatever. */
+
+static int
+undefine_macros (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *h,
+ void *data_p ATTRIBUTE_UNUSED)
+{
+ /* Body of _cpp_free_definition inlined here for speed.
+ Macros and assertions no longer have anything to free. */
+ h->type = NT_VOID;
+ h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
+ return 1;
+}
+
+/* Undefine all macros and assertions. */
+
+void
+cpp_undef_all (cpp_reader *pfile)
+{
+ cpp_forall_identifiers (pfile, undefine_macros, NULL);
+}
+
+
+/* Helper routine used by parse_include. Reinterpret the current line
+ as an h-char-sequence (< ... >); we are looking at the first token
+ after the <. Returns a malloced filename. */
+static char *
+glue_header_name (cpp_reader *pfile)
+{
+ const cpp_token *token;
+ char *buffer;
+ size_t len, total_len = 0, capacity = 1024;
+
+ /* To avoid lexed tokens overwriting our glued name, we can only
+ allocate from the string pool once we've lexed everything. */
+ buffer = XNEWVEC (char, capacity);
+ for (;;)
+ {
+ token = get_token_no_padding (pfile);
+
+ if (token->type == CPP_GREATER)
+ break;
+ if (token->type == CPP_EOF)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "missing terminating > character");
+ break;
+ }
+
+ len = cpp_token_len (token) + 2; /* Leading space, terminating \0. */
+ if (total_len + len > capacity)
+ {
+ capacity = (capacity + len) * 2;
+ buffer = XRESIZEVEC (char, buffer, capacity);
+ }
+
+ if (token->flags & PREV_WHITE)
+ buffer[total_len++] = ' ';
+
+ total_len = (cpp_spell_token (pfile, token, (uchar *) &buffer[total_len],
+ true)
+ - (uchar *) buffer);
+ }
+
+ buffer[total_len] = '\0';
+ return buffer;
+}
+
+/* Returns the file name of #include, #include_next, #import and
+ #pragma dependency. The string is malloced and the caller should
+ free it. Returns NULL on error. LOCATION is the source location
+ of the file name. */
+
+static const char *
+parse_include (cpp_reader *pfile, int *pangle_brackets,
+ const cpp_token ***buf, source_location *location)
+{
+ char *fname;
+ const cpp_token *header;
+
+ /* Allow macro expansion. */
+ header = get_token_no_padding (pfile);
+ *location = header->src_loc;
+ if ((header->type == CPP_STRING && header->val.str.text[0] != 'R')
+ || header->type == CPP_HEADER_NAME)
+ {
+ fname = XNEWVEC (char, header->val.str.len - 1);
+ memcpy (fname, header->val.str.text + 1, header->val.str.len - 2);
+ fname[header->val.str.len - 2] = '\0';
+ *pangle_brackets = header->type == CPP_HEADER_NAME;
+ }
+ else if (header->type == CPP_LESS)
+ {
+ fname = glue_header_name (pfile);
+ *pangle_brackets = 1;
+ }
+ else
+ {
+ const unsigned char *dir;
+
+ if (pfile->directive == &dtable[T_PRAGMA])
+ dir = UC"pragma dependency";
+ else
+ dir = pfile->directive->name;
+ cpp_error (pfile, CPP_DL_ERROR, "#%s expects \"FILENAME\" or <FILENAME>",
+ dir);
+
+ return NULL;
+ }
+
+ if (pfile->directive == &dtable[T_PRAGMA])
+ {
+ /* This pragma allows extra tokens after the file name. */
+ }
+ else if (buf == NULL || CPP_OPTION (pfile, discard_comments))
+ check_eol (pfile, true);
+ else
+ {
+ /* If we are not discarding comments, then gather them while
+ doing the eol check. */
+ *buf = check_eol_return_comments (pfile);
+ }
+
+ return fname;
+}
+
+/* Handle #include, #include_next and #import. */
+static void
+do_include_common (cpp_reader *pfile, enum include_type type)
+{
+ const char *fname;
+ int angle_brackets;
+ const cpp_token **buf = NULL;
+ source_location location;
+
+ /* Re-enable saving of comments if requested, so that the include
+ callback can dump comments which follow #include. */
+ pfile->state.save_comments = ! CPP_OPTION (pfile, discard_comments);
+
+ fname = parse_include (pfile, &angle_brackets, &buf, &location);
+ if (!fname)
+ {
+ if (buf)
+ XDELETEVEC (buf);
+ return;
+ }
+
+ if (!*fname)
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
+ "empty filename in #%s",
+ pfile->directive->name);
+ XDELETEVEC (fname);
+ if (buf)
+ XDELETEVEC (buf);
+ return;
+ }
+
+ /* Prevent #include recursion. */
+ if (pfile->line_table->depth >= CPP_STACK_MAX)
+ cpp_error (pfile, CPP_DL_ERROR, "#include nested too deeply");
+ else
+ {
+ /* Get out of macro context, if we are. */
+ skip_rest_of_line (pfile);
+
+ if (pfile->cb.include)
+ pfile->cb.include (pfile, pfile->directive_line,
+ pfile->directive->name, fname, angle_brackets,
+ buf);
+
+ _cpp_stack_include (pfile, fname, angle_brackets, type);
+ }
+
+ XDELETEVEC (fname);
+ if (buf)
+ XDELETEVEC (buf);
+}
+
+static void
+do_include (cpp_reader *pfile)
+{
+ do_include_common (pfile, IT_INCLUDE);
+}
+
+static void
+do_import (cpp_reader *pfile)
+{
+ do_include_common (pfile, IT_IMPORT);
+}
+
+static void
+do_include_next (cpp_reader *pfile)
+{
+ enum include_type type = IT_INCLUDE_NEXT;
+
+ /* If this is the primary source file, warn and use the normal
+ search logic. */
+ if (cpp_in_primary_file (pfile))
+ {
+ cpp_error (pfile, CPP_DL_WARNING,
+ "#include_next in primary source file");
+ type = IT_INCLUDE;
+ }
+ do_include_common (pfile, type);
+}
+
+/* Subroutine of do_linemarker. Read possible flags after file name.
+ LAST is the last flag seen; 0 if this is the first flag. Return the
+ flag if it is valid, 0 at the end of the directive. Otherwise
+ complain. */
+static unsigned int
+read_flag (cpp_reader *pfile, unsigned int last)
+{
+ const cpp_token *token = _cpp_lex_token (pfile);
+
+ if (token->type == CPP_NUMBER && token->val.str.len == 1)
+ {
+ unsigned int flag = token->val.str.text[0] - '0';
+
+ if (flag > last && flag <= 4
+ && (flag != 4 || last == 3)
+ && (flag != 2 || last == 0))
+ return flag;
+ }
+
+ if (token->type != CPP_EOF)
+ cpp_error (pfile, CPP_DL_ERROR, "invalid flag \"%s\" in line directive",
+ cpp_token_as_text (pfile, token));
+ return 0;
+}
+
+/* Subroutine of do_line and do_linemarker. Convert a number in STR,
+ of length LEN, to binary; store it in NUMP, and return false if the
+ number was well-formed, true if not. WRAPPED is set to true if the
+ number did not fit into 'unsigned long'. */
+static bool
+strtolinenum (const uchar *str, size_t len, linenum_type *nump, bool *wrapped)
+{
+ linenum_type reg = 0;
+ linenum_type reg_prev = 0;
+
+ uchar c;
+ *wrapped = false;
+ while (len--)
+ {
+ c = *str++;
+ if (!ISDIGIT (c))
+ return true;
+ reg *= 10;
+ reg += c - '0';
+ if (reg < reg_prev)
+ *wrapped = true;
+ reg_prev = reg;
+ }
+ *nump = reg;
+ return false;
+}
+
+/* Interpret #line command.
+ Note that the filename string (if any) is a true string constant
+ (escapes are interpreted), unlike in #line. */
+static void
+do_line (cpp_reader *pfile)
+{
+ const struct line_maps *line_table = pfile->line_table;
+ const struct line_map *map = LINEMAPS_LAST_ORDINARY_MAP (line_table);
+
+ /* skip_rest_of_line() may cause line table to be realloc()ed so note down
+ sysp right now. */
+
+ unsigned char map_sysp = ORDINARY_MAP_IN_SYSTEM_HEADER_P (map);
+ const cpp_token *token;
+ const char *new_file = ORDINARY_MAP_FILE_NAME (map);
+ linenum_type new_lineno;
+
+ /* C99 raised the minimum limit on #line numbers. */
+ linenum_type cap = CPP_OPTION (pfile, c99) ? 2147483647 : 32767;
+ bool wrapped;
+
+ /* #line commands expand macros. */
+ token = cpp_get_token (pfile);
+ if (token->type != CPP_NUMBER
+ || strtolinenum (token->val.str.text, token->val.str.len,
+ &new_lineno, &wrapped))
+ {
+ if (token->type == CPP_EOF)
+ cpp_error (pfile, CPP_DL_ERROR, "unexpected end of file after #line");
+ else
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\"%s\" after #line is not a positive integer",
+ cpp_token_as_text (pfile, token));
+ return;
+ }
+
+ if (CPP_PEDANTIC (pfile) && (new_lineno == 0 || new_lineno > cap || wrapped))
+ cpp_error (pfile, CPP_DL_PEDWARN, "line number out of range");
+ else if (wrapped)
+ cpp_error (pfile, CPP_DL_WARNING, "line number out of range");
+
+ token = cpp_get_token (pfile);
+ if (token->type == CPP_STRING)
+ {
+ cpp_string s = { 0, 0 };
+ if (cpp_interpret_string_notranslate (pfile, &token->val.str, 1,
+ &s, CPP_STRING))
+ new_file = (const char *)s.text;
+ check_eol (pfile, true);
+ }
+ else if (token->type != CPP_EOF)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename",
+ cpp_token_as_text (pfile, token));
+ return;
+ }
+
+ skip_rest_of_line (pfile);
+ _cpp_do_file_change (pfile, LC_RENAME_VERBATIM, new_file, new_lineno,
+ map_sysp);
+}
+
+/* Interpret the # 44 "file" [flags] notation, which has slightly
+ different syntax and semantics from #line: Flags are allowed,
+ and we never complain about the line number being too big. */
+static void
+do_linemarker (cpp_reader *pfile)
+{
+ const struct line_maps *line_table = pfile->line_table;
+ const struct line_map *map = LINEMAPS_LAST_ORDINARY_MAP (line_table);
+ const cpp_token *token;
+ const char *new_file = ORDINARY_MAP_FILE_NAME (map);
+ linenum_type new_lineno;
+ unsigned int new_sysp = ORDINARY_MAP_IN_SYSTEM_HEADER_P (map);
+ enum lc_reason reason = LC_RENAME_VERBATIM;
+ int flag;
+ bool wrapped;
+
+ /* Back up so we can get the number again. Putting this in
+ _cpp_handle_directive risks two calls to _cpp_backup_tokens in
+ some circumstances, which can segfault. */
+ _cpp_backup_tokens (pfile, 1);
+
+ /* #line commands expand macros. */
+ token = cpp_get_token (pfile);
+ if (token->type != CPP_NUMBER
+ || strtolinenum (token->val.str.text, token->val.str.len,
+ &new_lineno, &wrapped))
+ {
+ /* Unlike #line, there does not seem to be a way to get an EOF
+ here. So, it should be safe to always spell the token. */
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\"%s\" after # is not a positive integer",
+ cpp_token_as_text (pfile, token));
+ return;
+ }
+
+ token = cpp_get_token (pfile);
+ if (token->type == CPP_STRING)
+ {
+ cpp_string s = { 0, 0 };
+ if (cpp_interpret_string_notranslate (pfile, &token->val.str,
+ 1, &s, CPP_STRING))
+ new_file = (const char *)s.text;
+
+ new_sysp = 0;
+ flag = read_flag (pfile, 0);
+ if (flag == 1)
+ {
+ reason = LC_ENTER;
+ /* Fake an include for cpp_included (). */
+ _cpp_fake_include (pfile, new_file);
+ flag = read_flag (pfile, flag);
+ }
+ else if (flag == 2)
+ {
+ reason = LC_LEAVE;
+ flag = read_flag (pfile, flag);
+ }
+ if (flag == 3)
+ {
+ new_sysp = 1;
+ flag = read_flag (pfile, flag);
+ if (flag == 4)
+ new_sysp = 2;
+ }
+ pfile->buffer->sysp = new_sysp;
+
+ check_eol (pfile, false);
+ }
+ else if (token->type != CPP_EOF)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "\"%s\" is not a valid filename",
+ cpp_token_as_text (pfile, token));
+ return;
+ }
+
+ skip_rest_of_line (pfile);
+
+ /* Compensate for the increment in linemap_add that occurs in
+ _cpp_do_file_change. We're currently at the start of the line
+ *following* the #line directive. A separate source_location for this
+ location makes no sense (until we do the LC_LEAVE), and
+ complicates LAST_SOURCE_LINE_LOCATION. */
+ pfile->line_table->highest_location--;
+
+ _cpp_do_file_change (pfile, reason, new_file, new_lineno, new_sysp);
+}
+
+/* Arrange the file_change callback. pfile->line has changed to
+ FILE_LINE of TO_FILE, for reason REASON. SYSP is 1 for a system
+ header, 2 for a system header that needs to be extern "C" protected,
+ and zero otherwise. */
+void
+_cpp_do_file_change (cpp_reader *pfile, enum lc_reason reason,
+ const char *to_file, linenum_type file_line,
+ unsigned int sysp)
+{
+ const struct line_map *map = linemap_add (pfile->line_table, reason, sysp,
+ to_file, file_line);
+ if (map != NULL)
+ linemap_line_start (pfile->line_table,
+ ORDINARY_MAP_STARTING_LINE_NUMBER (map),
+ 127);
+
+ if (pfile->cb.file_change)
+ pfile->cb.file_change (pfile, map);
+}
+
+/* Report a warning or error detected by the program we are
+ processing. Use the directive's tokens in the error message. */
+static void
+do_diagnostic (cpp_reader *pfile, int code, int reason, int print_dir)
+{
+ const unsigned char *dir_name;
+ unsigned char *line;
+ source_location src_loc = pfile->cur_token[-1].src_loc;
+
+ if (print_dir)
+ dir_name = pfile->directive->name;
+ else
+ dir_name = NULL;
+ pfile->state.prevent_expansion++;
+ line = cpp_output_line_to_string (pfile, dir_name);
+ pfile->state.prevent_expansion--;
+
+ if (code == CPP_DL_WARNING_SYSHDR && reason)
+ cpp_warning_with_line_syshdr (pfile, reason, src_loc, 0, "%s", line);
+ else if (code == CPP_DL_WARNING && reason)
+ cpp_warning_with_line (pfile, reason, src_loc, 0, "%s", line);
+ else
+ cpp_error_with_line (pfile, code, src_loc, 0, "%s", line);
+ free (line);
+}
+
+static void
+do_error (cpp_reader *pfile)
+{
+ do_diagnostic (pfile, CPP_DL_ERROR, 0, 1);
+}
+
+static void
+do_warning (cpp_reader *pfile)
+{
+ /* We want #warning diagnostics to be emitted in system headers too. */
+ do_diagnostic (pfile, CPP_DL_WARNING_SYSHDR, CPP_W_WARNING_DIRECTIVE, 1);
+}
+
+/* Report program identification. */
+static void
+do_ident (cpp_reader *pfile)
+{
+ const cpp_token *str = cpp_get_token (pfile);
+
+ if (str->type != CPP_STRING)
+ cpp_error (pfile, CPP_DL_ERROR, "invalid #%s directive",
+ pfile->directive->name);
+ else if (pfile->cb.ident)
+ pfile->cb.ident (pfile, pfile->directive_line, &str->val.str);
+
+ check_eol (pfile, false);
+}
+
+/* Lookup a PRAGMA name in a singly-linked CHAIN. Returns the
+ matching entry, or NULL if none is found. The returned entry could
+ be the start of a namespace chain, or a pragma. */
+static struct pragma_entry *
+lookup_pragma_entry (struct pragma_entry *chain, const cpp_hashnode *pragma)
+{
+ while (chain && chain->pragma != pragma)
+ chain = chain->next;
+
+ return chain;
+}
+
+/* Create and insert a blank pragma entry at the beginning of a
+ singly-linked CHAIN. */
+static struct pragma_entry *
+new_pragma_entry (cpp_reader *pfile, struct pragma_entry **chain)
+{
+ struct pragma_entry *new_entry;
+
+ new_entry = (struct pragma_entry *)
+ _cpp_aligned_alloc (pfile, sizeof (struct pragma_entry));
+
+ memset (new_entry, 0, sizeof (struct pragma_entry));
+ new_entry->next = *chain;
+
+ *chain = new_entry;
+ return new_entry;
+}
+
+/* Register a pragma NAME in namespace SPACE. If SPACE is null, it
+ goes in the global namespace. */
+static struct pragma_entry *
+register_pragma_1 (cpp_reader *pfile, const char *space, const char *name,
+ bool allow_name_expansion)
+{
+ struct pragma_entry **chain = &pfile->pragmas;
+ struct pragma_entry *entry;
+ const cpp_hashnode *node;
+
+ if (space)
+ {
+ node = cpp_lookup (pfile, UC space, strlen (space));
+ entry = lookup_pragma_entry (*chain, node);
+ if (!entry)
+ {
+ entry = new_pragma_entry (pfile, chain);
+ entry->pragma = node;
+ entry->is_nspace = true;
+ entry->allow_expansion = allow_name_expansion;
+ }
+ else if (!entry->is_nspace)
+ goto clash;
+ else if (entry->allow_expansion != allow_name_expansion)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "registering pragmas in namespace \"%s\" with mismatched "
+ "name expansion", space);
+ return NULL;
+ }
+ chain = &entry->u.space;
+ }
+ else if (allow_name_expansion)
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "registering pragma \"%s\" with name expansion "
+ "and no namespace", name);
+ return NULL;
+ }
+
+ /* Check for duplicates. */
+ node = cpp_lookup (pfile, UC name, strlen (name));
+ entry = lookup_pragma_entry (*chain, node);
+ if (entry == NULL)
+ {
+ entry = new_pragma_entry (pfile, chain);
+ entry->pragma = node;
+ return entry;
+ }
+
+ if (entry->is_nspace)
+ clash:
+ cpp_error (pfile, CPP_DL_ICE,
+ "registering \"%s\" as both a pragma and a pragma namespace",
+ NODE_NAME (node));
+ else if (space)
+ cpp_error (pfile, CPP_DL_ICE, "#pragma %s %s is already registered",
+ space, name);
+ else
+ cpp_error (pfile, CPP_DL_ICE, "#pragma %s is already registered", name);
+
+ return NULL;
+}
+
+/* Register a cpplib internal pragma SPACE NAME with HANDLER. */
+static void
+register_pragma_internal (cpp_reader *pfile, const char *space,
+ const char *name, pragma_cb handler)
+{
+ struct pragma_entry *entry;
+
+ entry = register_pragma_1 (pfile, space, name, false);
+ entry->is_internal = true;
+ entry->u.handler = handler;
+}
+
+/* Register a pragma NAME in namespace SPACE. If SPACE is null, it
+ goes in the global namespace. HANDLER is the handler it will call,
+ which must be non-NULL. If ALLOW_EXPANSION is set, allow macro
+ expansion while parsing pragma NAME. This function is exported
+ from libcpp. */
+void
+cpp_register_pragma (cpp_reader *pfile, const char *space, const char *name,
+ pragma_cb handler, bool allow_expansion)
+{
+ struct pragma_entry *entry;
+
+ if (!handler)
+ {
+ cpp_error (pfile, CPP_DL_ICE, "registering pragma with NULL handler");
+ return;
+ }
+
+ entry = register_pragma_1 (pfile, space, name, false);
+ if (entry)
+ {
+ entry->allow_expansion = allow_expansion;
+ entry->u.handler = handler;
+ }
+}
+
+/* Similarly, but create mark the pragma for deferred processing.
+ When found, a CPP_PRAGMA token will be insertted into the stream
+ with IDENT in the token->u.pragma slot. */
+void
+cpp_register_deferred_pragma (cpp_reader *pfile, const char *space,
+ const char *name, unsigned int ident,
+ bool allow_expansion, bool allow_name_expansion)
+{
+ struct pragma_entry *entry;
+
+ entry = register_pragma_1 (pfile, space, name, allow_name_expansion);
+ if (entry)
+ {
+ entry->is_deferred = true;
+ entry->allow_expansion = allow_expansion;
+ entry->u.ident = ident;
+ }
+}
+
+/* Register the pragmas the preprocessor itself handles. */
+void
+_cpp_init_internal_pragmas (cpp_reader *pfile)
+{
+ /* Pragmas in the global namespace. */
+ register_pragma_internal (pfile, 0, "once", do_pragma_once);
+ register_pragma_internal (pfile, 0, "push_macro", do_pragma_push_macro);
+ register_pragma_internal (pfile, 0, "pop_macro", do_pragma_pop_macro);
+
+ /* New GCC-specific pragmas should be put in the GCC namespace. */
+ register_pragma_internal (pfile, "GCC", "poison", do_pragma_poison);
+ register_pragma_internal (pfile, "GCC", "system_header",
+ do_pragma_system_header);
+ register_pragma_internal (pfile, "GCC", "dependency", do_pragma_dependency);
+ register_pragma_internal (pfile, "GCC", "warning", do_pragma_warning);
+ register_pragma_internal (pfile, "GCC", "error", do_pragma_error);
+}
+
+/* Return the number of registered pragmas in PE. */
+
+static int
+count_registered_pragmas (struct pragma_entry *pe)
+{
+ int ct = 0;
+ for (; pe != NULL; pe = pe->next)
+ {
+ if (pe->is_nspace)
+ ct += count_registered_pragmas (pe->u.space);
+ ct++;
+ }
+ return ct;
+}
+
+/* Save into SD the names of the registered pragmas referenced by PE,
+ and return a pointer to the next free space in SD. */
+
+static char **
+save_registered_pragmas (struct pragma_entry *pe, char **sd)
+{
+ for (; pe != NULL; pe = pe->next)
+ {
+ if (pe->is_nspace)
+ sd = save_registered_pragmas (pe->u.space, sd);
+ *sd++ = (char *) xmemdup (HT_STR (&pe->pragma->ident),
+ HT_LEN (&pe->pragma->ident),
+ HT_LEN (&pe->pragma->ident) + 1);
+ }
+ return sd;
+}
+
+/* Return a newly-allocated array which saves the names of the
+ registered pragmas. */
+
+char **
+_cpp_save_pragma_names (cpp_reader *pfile)
+{
+ int ct = count_registered_pragmas (pfile->pragmas);
+ char **result = XNEWVEC (char *, ct);
+ (void) save_registered_pragmas (pfile->pragmas, result);
+ return result;
+}
+
+/* Restore from SD the names of the registered pragmas referenced by PE,
+ and return a pointer to the next unused name in SD. */
+
+static char **
+restore_registered_pragmas (cpp_reader *pfile, struct pragma_entry *pe,
+ char **sd)
+{
+ for (; pe != NULL; pe = pe->next)
+ {
+ if (pe->is_nspace)
+ sd = restore_registered_pragmas (pfile, pe->u.space, sd);
+ pe->pragma = cpp_lookup (pfile, UC *sd, strlen (*sd));
+ free (*sd);
+ sd++;
+ }
+ return sd;
+}
+
+/* Restore the names of the registered pragmas from SAVED. */
+
+void
+_cpp_restore_pragma_names (cpp_reader *pfile, char **saved)
+{
+ (void) restore_registered_pragmas (pfile, pfile->pragmas, saved);
+ free (saved);
+}
+
+/* Pragmata handling. We handle some, and pass the rest on to the
+ front end. C99 defines three pragmas and says that no macro
+ expansion is to be performed on them; whether or not macro
+ expansion happens for other pragmas is implementation defined.
+ This implementation allows for a mix of both, since GCC did not
+ traditionally macro expand its (few) pragmas, whereas OpenMP
+ specifies that macro expansion should happen. */
+static void
+do_pragma (cpp_reader *pfile)
+{
+ const struct pragma_entry *p = NULL;
+ const cpp_token *token, *pragma_token;
+ source_location pragma_token_virt_loc = 0;
+ cpp_token ns_token;
+ unsigned int count = 1;
+
+ pfile->state.prevent_expansion++;
+
+ pragma_token = token = cpp_get_token_with_location (pfile,
+ &pragma_token_virt_loc);
+ ns_token = *token;
+ if (token->type == CPP_NAME)
+ {
+ p = lookup_pragma_entry (pfile->pragmas, token->val.node.node);
+ if (p && p->is_nspace)
+ {
+ bool allow_name_expansion = p->allow_expansion;
+ if (allow_name_expansion)
+ pfile->state.prevent_expansion--;
+
+ token = cpp_get_token (pfile);
+ if (token->type == CPP_NAME)
+ p = lookup_pragma_entry (p->u.space, token->val.node.node);
+ else
+ p = NULL;
+ if (allow_name_expansion)
+ pfile->state.prevent_expansion++;
+ count = 2;
+ }
+ }
+
+ if (p)
+ {
+ if (p->is_deferred)
+ {
+ pfile->directive_result.src_loc = pragma_token_virt_loc;
+ pfile->directive_result.type = CPP_PRAGMA;
+ pfile->directive_result.flags = pragma_token->flags;
+ pfile->directive_result.val.pragma = p->u.ident;
+ pfile->state.in_deferred_pragma = true;
+ pfile->state.pragma_allow_expansion = p->allow_expansion;
+ if (!p->allow_expansion)
+ pfile->state.prevent_expansion++;
+ }
+ else
+ {
+ /* Since the handler below doesn't get the line number, that
+ it might need for diagnostics, make sure it has the right
+ numbers in place. */
+ if (pfile->cb.line_change)
+ (*pfile->cb.line_change) (pfile, pragma_token, false);
+ if (p->allow_expansion)
+ pfile->state.prevent_expansion--;
+ (*p->u.handler) (pfile);
+ if (p->allow_expansion)
+ pfile->state.prevent_expansion++;
+ }
+ }
+ else if (pfile->cb.def_pragma)
+ {
+ if (count == 1 || pfile->context->prev == NULL)
+ _cpp_backup_tokens (pfile, count);
+ else
+ {
+ /* Invalid name comes from macro expansion, _cpp_backup_tokens
+ won't allow backing 2 tokens. */
+ /* ??? The token buffer is leaked. Perhaps if def_pragma hook
+ reads both tokens, we could perhaps free it, but if it doesn't,
+ we don't know the exact lifespan. */
+ cpp_token *toks = XNEWVEC (cpp_token, 2);
+ toks[0] = ns_token;
+ toks[0].flags |= NO_EXPAND;
+ toks[1] = *token;
+ toks[1].flags |= NO_EXPAND;
+ _cpp_push_token_context (pfile, NULL, toks, 2);
+ }
+ pfile->cb.def_pragma (pfile, pfile->directive_line);
+ }
+
+ pfile->state.prevent_expansion--;
+}
+
+/* Handle #pragma once. */
+static void
+do_pragma_once (cpp_reader *pfile)
+{
+ if (cpp_in_primary_file (pfile))
+ cpp_error (pfile, CPP_DL_WARNING, "#pragma once in main file");
+
+ check_eol (pfile, false);
+ _cpp_mark_file_once_only (pfile, pfile->buffer->file);
+}
+
+/* Handle #pragma push_macro(STRING). */
+static void
+do_pragma_push_macro (cpp_reader *pfile)
+{
+ cpp_hashnode *node;
+ size_t defnlen;
+ const uchar *defn = NULL;
+ char *macroname, *dest;
+ const char *limit, *src;
+ const cpp_token *txt;
+ struct def_pragma_macro *c;
+
+ txt = get__Pragma_string (pfile);
+ if (!txt)
+ {
+ source_location src_loc = pfile->cur_token[-1].src_loc;
+ cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+ "invalid #pragma push_macro directive");
+ check_eol (pfile, false);
+ skip_rest_of_line (pfile);
+ return;
+ }
+ dest = macroname = (char *) alloca (txt->val.str.len + 2);
+ src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
+ limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
+ while (src < limit)
+ {
+ /* We know there is a character following the backslash. */
+ if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
+ src++;
+ *dest++ = *src++;
+ }
+ *dest = 0;
+ check_eol (pfile, false);
+ skip_rest_of_line (pfile);
+ c = XNEW (struct def_pragma_macro);
+ memset (c, 0, sizeof (struct def_pragma_macro));
+ c->name = XNEWVAR (char, strlen (macroname) + 1);
+ strcpy (c->name, macroname);
+ c->next = pfile->pushed_macros;
+ node = _cpp_lex_identifier (pfile, c->name);
+ if (node->type == NT_VOID)
+ c->is_undef = 1;
+ else
+ {
+ defn = cpp_macro_definition (pfile, node);
+ defnlen = ustrlen (defn);
+ c->definition = XNEWVEC (uchar, defnlen + 2);
+ c->definition[defnlen] = '\n';
+ c->definition[defnlen + 1] = 0;
+ c->line = node->value.macro->line;
+ c->syshdr = node->value.macro->syshdr;
+ c->used = node->value.macro->used;
+ memcpy (c->definition, defn, defnlen);
+ }
+
+ pfile->pushed_macros = c;
+}
+
+/* Handle #pragma pop_macro(STRING). */
+static void
+do_pragma_pop_macro (cpp_reader *pfile)
+{
+ char *macroname, *dest;
+ const char *limit, *src;
+ const cpp_token *txt;
+ struct def_pragma_macro *l = NULL, *c = pfile->pushed_macros;
+ txt = get__Pragma_string (pfile);
+ if (!txt)
+ {
+ source_location src_loc = pfile->cur_token[-1].src_loc;
+ cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+ "invalid #pragma pop_macro directive");
+ check_eol (pfile, false);
+ skip_rest_of_line (pfile);
+ return;
+ }
+ dest = macroname = (char *) alloca (txt->val.str.len + 2);
+ src = (const char *) (txt->val.str.text + 1 + (txt->val.str.text[0] == 'L'));
+ limit = (const char *) (txt->val.str.text + txt->val.str.len - 1);
+ while (src < limit)
+ {
+ /* We know there is a character following the backslash. */
+ if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
+ src++;
+ *dest++ = *src++;
+ }
+ *dest = 0;
+ check_eol (pfile, false);
+ skip_rest_of_line (pfile);
+
+ while (c != NULL)
+ {
+ if (!strcmp (c->name, macroname))
+ {
+ if (!l)
+ pfile->pushed_macros = c->next;
+ else
+ l->next = c->next;
+ cpp_pop_definition (pfile, c);
+ free (c->definition);
+ free (c->name);
+ free (c);
+ break;
+ }
+ l = c;
+ c = c->next;
+ }
+}
+
+/* Handle #pragma GCC poison, to poison one or more identifiers so
+ that the lexer produces a hard error for each subsequent usage. */
+static void
+do_pragma_poison (cpp_reader *pfile)
+{
+ const cpp_token *tok;
+ cpp_hashnode *hp;
+
+ pfile->state.poisoned_ok = 1;
+ for (;;)
+ {
+ tok = _cpp_lex_token (pfile);
+ if (tok->type == CPP_EOF)
+ break;
+ if (tok->type != CPP_NAME)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "invalid #pragma GCC poison directive");
+ break;
+ }
+
+ hp = tok->val.node.node;
+ if (hp->flags & NODE_POISONED)
+ continue;
+
+ if (hp->type == NT_MACRO)
+ cpp_error (pfile, CPP_DL_WARNING, "poisoning existing macro \"%s\"",
+ NODE_NAME (hp));
+ _cpp_free_definition (hp);
+ hp->flags |= NODE_POISONED | NODE_DIAGNOSTIC;
+ }
+ pfile->state.poisoned_ok = 0;
+}
+
+/* Mark the current header as a system header. This will suppress
+ some categories of warnings (notably those from -pedantic). It is
+ intended for use in system libraries that cannot be implemented in
+ conforming C, but cannot be certain that their headers appear in a
+ system include directory. To prevent abuse, it is rejected in the
+ primary source file. */
+static void
+do_pragma_system_header (cpp_reader *pfile)
+{
+ if (cpp_in_primary_file (pfile))
+ cpp_error (pfile, CPP_DL_WARNING,
+ "#pragma system_header ignored outside include file");
+ else
+ {
+ check_eol (pfile, false);
+ skip_rest_of_line (pfile);
+ cpp_make_system_header (pfile, 1, 0);
+ }
+}
+
+/* Check the modified date of the current include file against a specified
+ file. Issue a diagnostic, if the specified file is newer. We use this to
+ determine if a fixed header should be refixed. */
+static void
+do_pragma_dependency (cpp_reader *pfile)
+{
+ const char *fname;
+ int angle_brackets, ordering;
+ source_location location;
+
+ fname = parse_include (pfile, &angle_brackets, NULL, &location);
+ if (!fname)
+ return;
+
+ ordering = _cpp_compare_file_date (pfile, fname, angle_brackets);
+ if (ordering < 0)
+ cpp_error (pfile, CPP_DL_WARNING, "cannot find source file %s", fname);
+ else if (ordering > 0)
+ {
+ cpp_error (pfile, CPP_DL_WARNING,
+ "current file is older than %s", fname);
+ if (cpp_get_token (pfile)->type != CPP_EOF)
+ {
+ _cpp_backup_tokens (pfile, 1);
+ do_diagnostic (pfile, CPP_DL_WARNING, 0, 0);
+ }
+ }
+
+ free ((void *) fname);
+}
+
+/* Issue a diagnostic with the message taken from the pragma. If
+ ERROR is true, the diagnostic is a warning, otherwise, it is an
+ error. */
+static void
+do_pragma_warning_or_error (cpp_reader *pfile, bool error)
+{
+ const cpp_token *tok = _cpp_lex_token (pfile);
+ cpp_string str;
+ if (tok->type != CPP_STRING
+ || !cpp_interpret_string_notranslate (pfile, &tok->val.str, 1, &str,
+ CPP_STRING)
+ || str.len == 0)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "invalid \"#pragma GCC %s\" directive",
+ error ? "error" : "warning");
+ return;
+ }
+ cpp_error (pfile, error ? CPP_DL_ERROR : CPP_DL_WARNING,
+ "%s", str.text);
+ free ((void *)str.text);
+}
+
+/* Issue a warning diagnostic. */
+static void
+do_pragma_warning (cpp_reader *pfile)
+{
+ do_pragma_warning_or_error (pfile, false);
+}
+
+/* Issue an error diagnostic. */
+static void
+do_pragma_error (cpp_reader *pfile)
+{
+ do_pragma_warning_or_error (pfile, true);
+}
+
+/* Get a token but skip padding. */
+static const cpp_token *
+get_token_no_padding (cpp_reader *pfile)
+{
+ for (;;)
+ {
+ const cpp_token *result = cpp_get_token (pfile);
+ if (result->type != CPP_PADDING)
+ return result;
+ }
+}
+
+/* Check syntax is "(string-literal)". Returns the string on success,
+ or NULL on failure. */
+static const cpp_token *
+get__Pragma_string (cpp_reader *pfile)
+{
+ const cpp_token *string;
+ const cpp_token *paren;
+
+ paren = get_token_no_padding (pfile);
+ if (paren->type == CPP_EOF)
+ _cpp_backup_tokens (pfile, 1);
+ if (paren->type != CPP_OPEN_PAREN)
+ return NULL;
+
+ string = get_token_no_padding (pfile);
+ if (string->type == CPP_EOF)
+ _cpp_backup_tokens (pfile, 1);
+ if (string->type != CPP_STRING && string->type != CPP_WSTRING
+ && string->type != CPP_STRING32 && string->type != CPP_STRING16
+ && string->type != CPP_UTF8STRING)
+ return NULL;
+
+ paren = get_token_no_padding (pfile);
+ if (paren->type == CPP_EOF)
+ _cpp_backup_tokens (pfile, 1);
+ if (paren->type != CPP_CLOSE_PAREN)
+ return NULL;
+
+ return string;
+}
+
+/* Destringize IN into a temporary buffer, by removing the first \ of
+ \" and \\ sequences, and process the result as a #pragma directive. */
+static void
+destringize_and_run (cpp_reader *pfile, const cpp_string *in)
+{
+ const unsigned char *src, *limit;
+ char *dest, *result;
+ cpp_context *saved_context;
+ cpp_token *saved_cur_token;
+ tokenrun *saved_cur_run;
+ cpp_token *toks;
+ int count;
+ const struct directive *save_directive;
+
+ dest = result = (char *) alloca (in->len - 1);
+ src = in->text + 1 + (in->text[0] == 'L');
+ limit = in->text + in->len - 1;
+ while (src < limit)
+ {
+ /* We know there is a character following the backslash. */
+ if (*src == '\\' && (src[1] == '\\' || src[1] == '"'))
+ src++;
+ *dest++ = *src++;
+ }
+ *dest = '\n';
+
+ /* Ugh; an awful kludge. We are really not set up to be lexing
+ tokens when in the middle of a macro expansion. Use a new
+ context to force cpp_get_token to lex, and so skip_rest_of_line
+ doesn't go beyond the end of the text. Also, remember the
+ current lexing position so we can return to it later.
+
+ Something like line-at-a-time lexing should remove the need for
+ this. */
+ saved_context = pfile->context;
+ saved_cur_token = pfile->cur_token;
+ saved_cur_run = pfile->cur_run;
+
+ pfile->context = XCNEW (cpp_context);
+
+ /* Inline run_directive, since we need to delay the _cpp_pop_buffer
+ until we've read all of the tokens that we want. */
+ cpp_push_buffer (pfile, (const uchar *) result, dest - result,
+ /* from_stage3 */ true);
+ /* ??? Antique Disgusting Hack. What does this do? */
+ if (pfile->buffer->prev)
+ pfile->buffer->file = pfile->buffer->prev->file;
+
+ start_directive (pfile);
+ _cpp_clean_line (pfile);
+ save_directive = pfile->directive;
+ pfile->directive = &dtable[T_PRAGMA];
+ do_pragma (pfile);
+ end_directive (pfile, 1);
+ pfile->directive = save_directive;
+
+ /* We always insert at least one token, the directive result. It'll
+ either be a CPP_PADDING or a CPP_PRAGMA. In the later case, we
+ need to insert *all* of the tokens, including the CPP_PRAGMA_EOL. */
+
+ /* If we're not handling the pragma internally, read all of the tokens from
+ the string buffer now, while the string buffer is still installed. */
+ /* ??? Note that the token buffer allocated here is leaked. It's not clear
+ to me what the true lifespan of the tokens are. It would appear that
+ the lifespan is the entire parse of the main input stream, in which case
+ this may not be wrong. */
+ if (pfile->directive_result.type == CPP_PRAGMA)
+ {
+ int maxcount;
+
+ count = 1;
+ maxcount = 50;
+ toks = XNEWVEC (cpp_token, maxcount);
+ toks[0] = pfile->directive_result;
+
+ do
+ {
+ if (count == maxcount)
+ {
+ maxcount = maxcount * 3 / 2;
+ toks = XRESIZEVEC (cpp_token, toks, maxcount);
+ }
+ toks[count] = *cpp_get_token (pfile);
+ /* Macros have been already expanded by cpp_get_token
+ if the pragma allowed expansion. */
+ toks[count++].flags |= NO_EXPAND;
+ }
+ while (toks[count-1].type != CPP_PRAGMA_EOL);
+ }
+ else
+ {
+ count = 1;
+ toks = XNEW (cpp_token);
+ toks[0] = pfile->directive_result;
+
+ /* If we handled the entire pragma internally, make sure we get the
+ line number correct for the next token. */
+ if (pfile->cb.line_change)
+ pfile->cb.line_change (pfile, pfile->cur_token, false);
+ }
+
+ /* Finish inlining run_directive. */
+ pfile->buffer->file = NULL;
+ _cpp_pop_buffer (pfile);
+
+ /* Reset the old macro state before ... */
+ XDELETE (pfile->context);
+ pfile->context = saved_context;
+ pfile->cur_token = saved_cur_token;
+ pfile->cur_run = saved_cur_run;
+
+ /* ... inserting the new tokens we collected. */
+ _cpp_push_token_context (pfile, NULL, toks, count);
+}
+
+/* Handle the _Pragma operator. Return 0 on error, 1 if ok. */
+int
+_cpp_do__Pragma (cpp_reader *pfile)
+{
+ const cpp_token *string = get__Pragma_string (pfile);
+ pfile->directive_result.type = CPP_PADDING;
+
+ if (string)
+ {
+ destringize_and_run (pfile, &string->val.str);
+ return 1;
+ }
+ cpp_error (pfile, CPP_DL_ERROR,
+ "_Pragma takes a parenthesized string literal");
+ return 0;
+}
+
+/* Handle #ifdef. */
+static void
+do_ifdef (cpp_reader *pfile)
+{
+ int skip = 1;
+
+ if (! pfile->state.skipping)
+ {
+ cpp_hashnode *node = lex_macro_node (pfile, false);
+
+ if (node)
+ {
+ /* Do not treat conditional macros as being defined. This is due to
+ the powerpc and spu ports using conditional macros for 'vector',
+ 'bool', and 'pixel' to act as conditional keywords. This messes
+ up tests like #ifndef bool. */
+ skip = (node->type != NT_MACRO
+ || ((node->flags & NODE_CONDITIONAL) != 0));
+ _cpp_mark_macro_used (node);
+ if (!(node->flags & NODE_USED))
+ {
+ node->flags |= NODE_USED;
+ if (node->type == NT_MACRO)
+ {
+ if ((node->flags & NODE_BUILTIN)
+ && pfile->cb.user_builtin_macro)
+ pfile->cb.user_builtin_macro (pfile, node);
+ if (pfile->cb.used_define)
+ pfile->cb.used_define (pfile, pfile->directive_line, node);
+ }
+ else
+ {
+ if (pfile->cb.used_undef)
+ pfile->cb.used_undef (pfile, pfile->directive_line, node);
+ }
+ }
+ if (pfile->cb.used)
+ pfile->cb.used (pfile, pfile->directive_line, node);
+ check_eol (pfile, false);
+ }
+ }
+
+ push_conditional (pfile, skip, T_IFDEF, 0);
+}
+
+/* Handle #ifndef. */
+static void
+do_ifndef (cpp_reader *pfile)
+{
+ int skip = 1;
+ cpp_hashnode *node = 0;
+
+ if (! pfile->state.skipping)
+ {
+ node = lex_macro_node (pfile, false);
+
+ if (node)
+ {
+ /* Do not treat conditional macros as being defined. This is due to
+ the powerpc and spu ports using conditional macros for 'vector',
+ 'bool', and 'pixel' to act as conditional keywords. This messes
+ up tests like #ifndef bool. */
+ skip = (node->type == NT_MACRO
+ && ((node->flags & NODE_CONDITIONAL) == 0));
+ _cpp_mark_macro_used (node);
+ if (!(node->flags & NODE_USED))
+ {
+ node->flags |= NODE_USED;
+ if (node->type == NT_MACRO)
+ {
+ if ((node->flags & NODE_BUILTIN)
+ && pfile->cb.user_builtin_macro)
+ pfile->cb.user_builtin_macro (pfile, node);
+ if (pfile->cb.used_define)
+ pfile->cb.used_define (pfile, pfile->directive_line, node);
+ }
+ else
+ {
+ if (pfile->cb.used_undef)
+ pfile->cb.used_undef (pfile, pfile->directive_line, node);
+ }
+ }
+ if (pfile->cb.used)
+ pfile->cb.used (pfile, pfile->directive_line, node);
+ check_eol (pfile, false);
+ }
+ }
+
+ push_conditional (pfile, skip, T_IFNDEF, node);
+}
+
+/* _cpp_parse_expr puts a macro in a "#if !defined ()" expression in
+ pfile->mi_ind_cmacro so we can handle multiple-include
+ optimizations. If macro expansion occurs in the expression, we
+ cannot treat it as a controlling conditional, since the expansion
+ could change in the future. That is handled by cpp_get_token. */
+static void
+do_if (cpp_reader *pfile)
+{
+ int skip = 1;
+
+ if (! pfile->state.skipping)
+ skip = _cpp_parse_expr (pfile, true) == false;
+
+ push_conditional (pfile, skip, T_IF, pfile->mi_ind_cmacro);
+}
+
+/* Flip skipping state if appropriate and continue without changing
+ if_stack; this is so that the error message for missing #endif's
+ etc. will point to the original #if. */
+static void
+do_else (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ struct if_stack *ifs = buffer->if_stack;
+
+ if (ifs == NULL)
+ cpp_error (pfile, CPP_DL_ERROR, "#else without #if");
+ else
+ {
+ if (ifs->type == T_ELSE)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "#else after #else");
+ cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0,
+ "the conditional began here");
+ }
+ ifs->type = T_ELSE;
+
+ /* Skip any future (erroneous) #elses or #elifs. */
+ pfile->state.skipping = ifs->skip_elses;
+ ifs->skip_elses = true;
+
+ /* Invalidate any controlling macro. */
+ ifs->mi_cmacro = 0;
+
+ /* Only check EOL if was not originally skipping. */
+ if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
+ check_eol (pfile, false);
+ }
+}
+
+/* Handle a #elif directive by not changing if_stack either. See the
+ comment above do_else. */
+static void
+do_elif (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ struct if_stack *ifs = buffer->if_stack;
+
+ if (ifs == NULL)
+ cpp_error (pfile, CPP_DL_ERROR, "#elif without #if");
+ else
+ {
+ if (ifs->type == T_ELSE)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "#elif after #else");
+ cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0,
+ "the conditional began here");
+ }
+ ifs->type = T_ELIF;
+
+ if (! ifs->was_skipping)
+ {
+ bool value;
+ /* The standard mandates that the expression be parsed even
+ if we are skipping elses at this point -- the lexical
+ restrictions on #elif only apply to skipped groups, but
+ this group is not being skipped. Temporarily set
+ skipping to false to get lexer warnings. */
+ pfile->state.skipping = 0;
+ value = _cpp_parse_expr (pfile, false);
+ if (ifs->skip_elses)
+ pfile->state.skipping = 1;
+ else
+ {
+ pfile->state.skipping = ! value;
+ ifs->skip_elses = value;
+ }
+ }
+
+ /* Invalidate any controlling macro. */
+ ifs->mi_cmacro = 0;
+ }
+}
+
+/* #endif pops the if stack and resets pfile->state.skipping. */
+static void
+do_endif (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ struct if_stack *ifs = buffer->if_stack;
+
+ if (ifs == NULL)
+ cpp_error (pfile, CPP_DL_ERROR, "#endif without #if");
+ else
+ {
+ /* Only check EOL if was not originally skipping. */
+ if (!ifs->was_skipping && CPP_OPTION (pfile, warn_endif_labels))
+ check_eol (pfile, false);
+
+ /* If potential control macro, we go back outside again. */
+ if (ifs->next == 0 && ifs->mi_cmacro)
+ {
+ pfile->mi_valid = true;
+ pfile->mi_cmacro = ifs->mi_cmacro;
+ }
+
+ buffer->if_stack = ifs->next;
+ pfile->state.skipping = ifs->was_skipping;
+ obstack_free (&pfile->buffer_ob, ifs);
+ }
+}
+
+/* Push an if_stack entry for a preprocessor conditional, and set
+ pfile->state.skipping to SKIP. If TYPE indicates the conditional
+ is #if or #ifndef, CMACRO is a potentially controlling macro, and
+ we need to check here that we are at the top of the file. */
+static void
+push_conditional (cpp_reader *pfile, int skip, int type,
+ const cpp_hashnode *cmacro)
+{
+ struct if_stack *ifs;
+ cpp_buffer *buffer = pfile->buffer;
+
+ ifs = XOBNEW (&pfile->buffer_ob, struct if_stack);
+ ifs->line = pfile->directive_line;
+ ifs->next = buffer->if_stack;
+ ifs->skip_elses = pfile->state.skipping || !skip;
+ ifs->was_skipping = pfile->state.skipping;
+ ifs->type = type;
+ /* This condition is effectively a test for top-of-file. */
+ if (pfile->mi_valid && pfile->mi_cmacro == 0)
+ ifs->mi_cmacro = cmacro;
+ else
+ ifs->mi_cmacro = 0;
+
+ pfile->state.skipping = skip;
+ buffer->if_stack = ifs;
+}
+
+/* Read the tokens of the answer into the macro pool, in a directive
+ of type TYPE. Only commit the memory if we intend it as permanent
+ storage, i.e. the #assert case. Returns 0 on success, and sets
+ ANSWERP to point to the answer. PRED_LOC is the location of the
+ predicate. */
+static int
+parse_answer (cpp_reader *pfile, struct answer **answerp, int type,
+ source_location pred_loc)
+{
+ const cpp_token *paren;
+ struct answer *answer;
+ unsigned int acount;
+
+ /* In a conditional, it is legal to not have an open paren. We
+ should save the following token in this case. */
+ paren = cpp_get_token (pfile);
+
+ /* If not a paren, see if we're OK. */
+ if (paren->type != CPP_OPEN_PAREN)
+ {
+ /* In a conditional no answer is a test for any answer. It
+ could be followed by any token. */
+ if (type == T_IF)
+ {
+ _cpp_backup_tokens (pfile, 1);
+ return 0;
+ }
+
+ /* #unassert with no answer is valid - it removes all answers. */
+ if (type == T_UNASSERT && paren->type == CPP_EOF)
+ return 0;
+
+ cpp_error_with_line (pfile, CPP_DL_ERROR, pred_loc, 0,
+ "missing '(' after predicate");
+ return 1;
+ }
+
+ for (acount = 0;; acount++)
+ {
+ size_t room_needed;
+ const cpp_token *token = cpp_get_token (pfile);
+ cpp_token *dest;
+
+ if (token->type == CPP_CLOSE_PAREN)
+ break;
+
+ if (token->type == CPP_EOF)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "missing ')' to complete answer");
+ return 1;
+ }
+
+ /* struct answer includes the space for one token. */
+ room_needed = (sizeof (struct answer) + acount * sizeof (cpp_token));
+
+ if (BUFF_ROOM (pfile->a_buff) < room_needed)
+ _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (struct answer));
+
+ dest = &((struct answer *) BUFF_FRONT (pfile->a_buff))->first[acount];
+ *dest = *token;
+
+ /* Drop whitespace at start, for answer equivalence purposes. */
+ if (acount == 0)
+ dest->flags &= ~PREV_WHITE;
+ }
+
+ if (acount == 0)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "predicate's answer is empty");
+ return 1;
+ }
+
+ answer = (struct answer *) BUFF_FRONT (pfile->a_buff);
+ answer->count = acount;
+ answer->next = NULL;
+ *answerp = answer;
+
+ return 0;
+}
+
+/* Parses an assertion directive of type TYPE, returning a pointer to
+ the hash node of the predicate, or 0 on error. If an answer was
+ supplied, it is placed in ANSWERP, otherwise it is set to 0. */
+static cpp_hashnode *
+parse_assertion (cpp_reader *pfile, struct answer **answerp, int type)
+{
+ cpp_hashnode *result = 0;
+ const cpp_token *predicate;
+
+ /* We don't expand predicates or answers. */
+ pfile->state.prevent_expansion++;
+
+ *answerp = 0;
+ predicate = cpp_get_token (pfile);
+ if (predicate->type == CPP_EOF)
+ cpp_error (pfile, CPP_DL_ERROR, "assertion without predicate");
+ else if (predicate->type != CPP_NAME)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, predicate->src_loc, 0,
+ "predicate must be an identifier");
+ else if (parse_answer (pfile, answerp, type, predicate->src_loc) == 0)
+ {
+ unsigned int len = NODE_LEN (predicate->val.node.node);
+ unsigned char *sym = (unsigned char *) alloca (len + 1);
+
+ /* Prefix '#' to get it out of macro namespace. */
+ sym[0] = '#';
+ memcpy (sym + 1, NODE_NAME (predicate->val.node.node), len);
+ result = cpp_lookup (pfile, sym, len + 1);
+ }
+
+ pfile->state.prevent_expansion--;
+ return result;
+}
+
+/* Returns a pointer to the pointer to CANDIDATE in the answer chain,
+ or a pointer to NULL if the answer is not in the chain. */
+static struct answer **
+find_answer (cpp_hashnode *node, const struct answer *candidate)
+{
+ unsigned int i;
+ struct answer **result;
+
+ for (result = &node->value.answers; *result; result = &(*result)->next)
+ {
+ struct answer *answer = *result;
+
+ if (answer->count == candidate->count)
+ {
+ for (i = 0; i < answer->count; i++)
+ if (! _cpp_equiv_tokens (&answer->first[i], &candidate->first[i]))
+ break;
+
+ if (i == answer->count)
+ break;
+ }
+ }
+
+ return result;
+}
+
+/* Test an assertion within a preprocessor conditional. Returns
+ nonzero on failure, zero on success. On success, the result of
+ the test is written into VALUE, otherwise the value 0. */
+int
+_cpp_test_assertion (cpp_reader *pfile, unsigned int *value)
+{
+ struct answer *answer;
+ cpp_hashnode *node;
+
+ node = parse_assertion (pfile, &answer, T_IF);
+
+ /* For recovery, an erroneous assertion expression is handled as a
+ failing assertion. */
+ *value = 0;
+
+ if (node)
+ *value = (node->type == NT_ASSERTION &&
+ (answer == 0 || *find_answer (node, answer) != 0));
+ else if (pfile->cur_token[-1].type == CPP_EOF)
+ _cpp_backup_tokens (pfile, 1);
+
+ /* We don't commit the memory for the answer - it's temporary only. */
+ return node == 0;
+}
+
+/* Handle #assert. */
+static void
+do_assert (cpp_reader *pfile)
+{
+ struct answer *new_answer;
+ cpp_hashnode *node;
+
+ node = parse_assertion (pfile, &new_answer, T_ASSERT);
+ if (node)
+ {
+ size_t answer_size;
+
+ /* Place the new answer in the answer list. First check there
+ is not a duplicate. */
+ new_answer->next = 0;
+ if (node->type == NT_ASSERTION)
+ {
+ if (*find_answer (node, new_answer))
+ {
+ cpp_error (pfile, CPP_DL_WARNING, "\"%s\" re-asserted",
+ NODE_NAME (node) + 1);
+ return;
+ }
+ new_answer->next = node->value.answers;
+ }
+
+ answer_size = sizeof (struct answer) + ((new_answer->count - 1)
+ * sizeof (cpp_token));
+ /* Commit or allocate storage for the object. */
+ if (pfile->hash_table->alloc_subobject)
+ {
+ struct answer *temp_answer = new_answer;
+ new_answer = (struct answer *) pfile->hash_table->alloc_subobject
+ (answer_size);
+ memcpy (new_answer, temp_answer, answer_size);
+ }
+ else
+ BUFF_FRONT (pfile->a_buff) += answer_size;
+
+ node->type = NT_ASSERTION;
+ node->value.answers = new_answer;
+ check_eol (pfile, false);
+ }
+}
+
+/* Handle #unassert. */
+static void
+do_unassert (cpp_reader *pfile)
+{
+ cpp_hashnode *node;
+ struct answer *answer;
+
+ node = parse_assertion (pfile, &answer, T_UNASSERT);
+ /* It isn't an error to #unassert something that isn't asserted. */
+ if (node && node->type == NT_ASSERTION)
+ {
+ if (answer)
+ {
+ struct answer **p = find_answer (node, answer), *temp;
+
+ /* Remove the answer from the list. */
+ temp = *p;
+ if (temp)
+ *p = temp->next;
+
+ /* Did we free the last answer? */
+ if (node->value.answers == 0)
+ node->type = NT_VOID;
+
+ check_eol (pfile, false);
+ }
+ else
+ _cpp_free_definition (node);
+ }
+
+ /* We don't commit the memory for the answer - it's temporary only. */
+}
+
+/* These are for -D, -U, -A. */
+
+/* Process the string STR as if it appeared as the body of a #define.
+ If STR is just an identifier, define it with value 1.
+ If STR has anything after the identifier, then it should
+ be identifier=definition. */
+void
+cpp_define (cpp_reader *pfile, const char *str)
+{
+ char *buf;
+ const char *p;
+ size_t count;
+
+ /* Copy the entire option so we can modify it.
+ Change the first "=" in the string to a space. If there is none,
+ tack " 1" on the end. */
+
+ count = strlen (str);
+ buf = (char *) alloca (count + 3);
+ memcpy (buf, str, count);
+
+ p = strchr (str, '=');
+ if (p)
+ buf[p - str] = ' ';
+ else
+ {
+ buf[count++] = ' ';
+ buf[count++] = '1';
+ }
+ buf[count] = '\n';
+
+ run_directive (pfile, T_DEFINE, buf, count);
+}
+
+
+/* Use to build macros to be run through cpp_define() as
+ described above.
+ Example: cpp_define_formatted (pfile, "MACRO=%d", value); */
+
+void
+cpp_define_formatted (cpp_reader *pfile, const char *fmt, ...)
+{
+ char *ptr = NULL;
+
+ va_list ap;
+ va_start (ap, fmt);
+ vasprintf (&ptr, fmt, ap);
+ va_end (ap);
+
+ cpp_define (pfile, ptr);
+ free (ptr);
+}
+
+
+/* Slight variant of the above for use by initialize_builtins. */
+void
+_cpp_define_builtin (cpp_reader *pfile, const char *str)
+{
+ size_t len = strlen (str);
+ char *buf = (char *) alloca (len + 1);
+ memcpy (buf, str, len);
+ buf[len] = '\n';
+ run_directive (pfile, T_DEFINE, buf, len);
+}
+
+/* Process MACRO as if it appeared as the body of an #undef. */
+void
+cpp_undef (cpp_reader *pfile, const char *macro)
+{
+ size_t len = strlen (macro);
+ char *buf = (char *) alloca (len + 1);
+ memcpy (buf, macro, len);
+ buf[len] = '\n';
+ run_directive (pfile, T_UNDEF, buf, len);
+}
+
+/* Replace a previous definition DEF of the macro STR. If DEF is NULL,
+ or first element is zero, then the macro should be undefined. */
+static void
+cpp_pop_definition (cpp_reader *pfile, struct def_pragma_macro *c)
+{
+ cpp_hashnode *node = _cpp_lex_identifier (pfile, c->name);
+ if (node == NULL)
+ return;
+
+ if (pfile->cb.before_define)
+ pfile->cb.before_define (pfile);
+
+ if (node->type == NT_MACRO)
+ {
+ if (pfile->cb.undef)
+ pfile->cb.undef (pfile, pfile->directive_line, node);
+ if (CPP_OPTION (pfile, warn_unused_macros))
+ _cpp_warn_if_unused_macro (pfile, node, NULL);
+ }
+ if (node->type != NT_VOID)
+ _cpp_free_definition (node);
+
+ if (c->is_undef)
+ return;
+ {
+ size_t namelen;
+ const uchar *dn;
+ cpp_hashnode *h = NULL;
+ cpp_buffer *nbuf;
+
+ namelen = ustrcspn (c->definition, "( \n");
+ h = cpp_lookup (pfile, c->definition, namelen);
+ dn = c->definition + namelen;
+
+ h->type = NT_VOID;
+ h->flags &= ~(NODE_POISONED|NODE_BUILTIN|NODE_DISABLED|NODE_USED);
+ nbuf = cpp_push_buffer (pfile, dn, ustrchr (dn, '\n') - dn, true);
+ if (nbuf != NULL)
+ {
+ _cpp_clean_line (pfile);
+ nbuf->sysp = 1;
+ if (!_cpp_create_definition (pfile, h))
+ abort ();
+ _cpp_pop_buffer (pfile);
+ }
+ else
+ abort ();
+ h->value.macro->line = c->line;
+ h->value.macro->syshdr = c->syshdr;
+ h->value.macro->used = c->used;
+ }
+}
+
+/* Process the string STR as if it appeared as the body of a #assert. */
+void
+cpp_assert (cpp_reader *pfile, const char *str)
+{
+ handle_assertion (pfile, str, T_ASSERT);
+}
+
+/* Process STR as if it appeared as the body of an #unassert. */
+void
+cpp_unassert (cpp_reader *pfile, const char *str)
+{
+ handle_assertion (pfile, str, T_UNASSERT);
+}
+
+/* Common code for cpp_assert (-A) and cpp_unassert (-A-). */
+static void
+handle_assertion (cpp_reader *pfile, const char *str, int type)
+{
+ size_t count = strlen (str);
+ const char *p = strchr (str, '=');
+
+ /* Copy the entire option so we can modify it. Change the first
+ "=" in the string to a '(', and tack a ')' on the end. */
+ char *buf = (char *) alloca (count + 2);
+
+ memcpy (buf, str, count);
+ if (p)
+ {
+ buf[p - str] = '(';
+ buf[count++] = ')';
+ }
+ buf[count] = '\n';
+ str = buf;
+
+ run_directive (pfile, type, str, count);
+}
+
+/* The options structure. */
+cpp_options *
+cpp_get_options (cpp_reader *pfile)
+{
+ return &pfile->opts;
+}
+
+/* The callbacks structure. */
+cpp_callbacks *
+cpp_get_callbacks (cpp_reader *pfile)
+{
+ return &pfile->cb;
+}
+
+/* Copy the given callbacks structure to our own. */
+void
+cpp_set_callbacks (cpp_reader *pfile, cpp_callbacks *cb)
+{
+ pfile->cb = *cb;
+}
+
+/* The dependencies structure. (Creates one if it hasn't already been.) */
+struct deps *
+cpp_get_deps (cpp_reader *pfile)
+{
+ if (!pfile->deps)
+ pfile->deps = deps_init ();
+ return pfile->deps;
+}
+
+/* Push a new buffer on the buffer stack. Returns the new buffer; it
+ doesn't fail. It does not generate a file change call back; that
+ is the responsibility of the caller. */
+cpp_buffer *
+cpp_push_buffer (cpp_reader *pfile, const uchar *buffer, size_t len,
+ int from_stage3)
+{
+ cpp_buffer *new_buffer = XOBNEW (&pfile->buffer_ob, cpp_buffer);
+
+ /* Clears, amongst other things, if_stack and mi_cmacro. */
+ memset (new_buffer, 0, sizeof (cpp_buffer));
+
+ new_buffer->next_line = new_buffer->buf = buffer;
+ new_buffer->rlimit = buffer + len;
+ new_buffer->from_stage3 = from_stage3;
+ new_buffer->prev = pfile->buffer;
+ new_buffer->need_line = true;
+
+ pfile->buffer = new_buffer;
+
+ return new_buffer;
+}
+
+/* Pops a single buffer, with a file change call-back if appropriate.
+ Then pushes the next -include file, if any remain. */
+void
+_cpp_pop_buffer (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ struct _cpp_file *inc = buffer->file;
+ struct if_stack *ifs;
+ const unsigned char *to_free;
+
+ /* Walk back up the conditional stack till we reach its level at
+ entry to this file, issuing error messages. */
+ for (ifs = buffer->if_stack; ifs; ifs = ifs->next)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, ifs->line, 0,
+ "unterminated #%s", dtable[ifs->type].name);
+
+ /* In case of a missing #endif. */
+ pfile->state.skipping = 0;
+
+ /* _cpp_do_file_change expects pfile->buffer to be the new one. */
+ pfile->buffer = buffer->prev;
+
+ to_free = buffer->to_free;
+ free (buffer->notes);
+
+ /* Free the buffer object now; we may want to push a new buffer
+ in _cpp_push_next_include_file. */
+ obstack_free (&pfile->buffer_ob, buffer);
+
+ if (inc)
+ {
+ _cpp_pop_file_buffer (pfile, inc, to_free);
+
+ _cpp_do_file_change (pfile, LC_LEAVE, 0, 0, 0);
+ }
+}
+
+/* Enter all recognized directives in the hash table. */
+void
+_cpp_init_directives (cpp_reader *pfile)
+{
+ unsigned int i;
+ cpp_hashnode *node;
+
+ for (i = 0; i < (unsigned int) N_DIRECTIVES; i++)
+ {
+ node = cpp_lookup (pfile, dtable[i].name, dtable[i].length);
+ node->is_directive = 1;
+ node->directive_index = i;
+ }
+}
diff --git a/gcc-4.9/libcpp/errors.c b/gcc-4.9/libcpp/errors.c
new file mode 100644
index 000000000..d1ca7a12f
--- /dev/null
+++ b/gcc-4.9/libcpp/errors.c
@@ -0,0 +1,237 @@
+/* Default error handlers for CPP Library.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Written by Per Bothner, 1994.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+/* Print a diagnostic at the location of the previously lexed token. */
+
+ATTRIBUTE_FPTR_PRINTF(4,0)
+static bool
+cpp_diagnostic (cpp_reader * pfile, int level, int reason,
+ const char *msgid, va_list *ap)
+{
+ source_location src_loc;
+ bool ret;
+
+ if (CPP_OPTION (pfile, traditional))
+ {
+ if (pfile->state.in_directive)
+ src_loc = pfile->directive_line;
+ else
+ src_loc = pfile->line_table->highest_line;
+ }
+ /* We don't want to refer to a token before the beginning of the
+ current run -- that is invalid. */
+ else if (pfile->cur_token == pfile->cur_run->base)
+ {
+ if (pfile->cur_run->prev != NULL)
+ src_loc = pfile->cur_run->prev->limit->src_loc;
+ else
+ src_loc = 0;
+ }
+ else
+ {
+ src_loc = pfile->cur_token[-1].src_loc;
+ }
+
+ if (!pfile->cb.error)
+ abort ();
+ ret = pfile->cb.error (pfile, level, reason, src_loc, 0, _(msgid), ap);
+
+ return ret;
+}
+
+/* Print a warning or error, depending on the value of LEVEL. */
+
+bool
+cpp_error (cpp_reader * pfile, int level, const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic (pfile, level, CPP_W_NONE, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a warning. The warning reason may be given in REASON. */
+
+bool
+cpp_warning (cpp_reader * pfile, int reason, const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic (pfile, CPP_DL_WARNING, reason, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a pedantic warning. The warning reason may be given in REASON. */
+
+bool
+cpp_pedwarning (cpp_reader * pfile, int reason, const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic (pfile, CPP_DL_PEDWARN, reason, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a warning, including system headers. The warning reason may be
+ given in REASON. */
+
+bool
+cpp_warning_syshdr (cpp_reader * pfile, int reason, const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic (pfile, CPP_DL_WARNING_SYSHDR, reason, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a diagnostic at a specific location. */
+
+ATTRIBUTE_FPTR_PRINTF(6,0)
+static bool
+cpp_diagnostic_with_line (cpp_reader * pfile, int level, int reason,
+ source_location src_loc, unsigned int column,
+ const char *msgid, va_list *ap)
+{
+ bool ret;
+
+ if (!pfile->cb.error)
+ abort ();
+ ret = pfile->cb.error (pfile, level, reason, src_loc, column, _(msgid), ap);
+
+ return ret;
+}
+
+/* Print a warning or error, depending on the value of LEVEL. */
+
+bool
+cpp_error_with_line (cpp_reader *pfile, int level,
+ source_location src_loc, unsigned int column,
+ const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic_with_line (pfile, level, CPP_W_NONE, src_loc,
+ column, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a warning. The warning reason may be given in REASON. */
+
+bool
+cpp_warning_with_line (cpp_reader *pfile, int reason,
+ source_location src_loc, unsigned int column,
+ const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic_with_line (pfile, CPP_DL_WARNING, reason, src_loc,
+ column, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a pedantic warning. The warning reason may be given in REASON. */
+
+bool
+cpp_pedwarning_with_line (cpp_reader *pfile, int reason,
+ source_location src_loc, unsigned int column,
+ const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic_with_line (pfile, CPP_DL_PEDWARN, reason, src_loc,
+ column, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a warning, including system headers. The warning reason may be
+ given in REASON. */
+
+bool
+cpp_warning_with_line_syshdr (cpp_reader *pfile, int reason,
+ source_location src_loc, unsigned int column,
+ const char *msgid, ...)
+{
+ va_list ap;
+ bool ret;
+
+ va_start (ap, msgid);
+
+ ret = cpp_diagnostic_with_line (pfile, CPP_DL_WARNING_SYSHDR, reason, src_loc,
+ column, msgid, &ap);
+
+ va_end (ap);
+ return ret;
+}
+
+/* Print a warning or error, depending on the value of LEVEL. Include
+ information from errno. */
+
+bool
+cpp_errno (cpp_reader *pfile, int level, const char *msgid)
+{
+ if (msgid[0] == '\0')
+ msgid = _("stdout");
+
+ return cpp_error (pfile, level, "%s: %s", msgid, xstrerror (errno));
+}
diff --git a/gcc-4.9/libcpp/expr.c b/gcc-4.9/libcpp/expr.c
new file mode 100644
index 000000000..147bd97c5
--- /dev/null
+++ b/gcc-4.9/libcpp/expr.c
@@ -0,0 +1,2067 @@
+/* Parse C expressions for cpplib.
+ Copyright (C) 1987-2014 Free Software Foundation, Inc.
+ Contributed by Per Bothner, 1994.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+#define PART_PRECISION (sizeof (cpp_num_part) * CHAR_BIT)
+#define HALF_MASK (~(cpp_num_part) 0 >> (PART_PRECISION / 2))
+#define LOW_PART(num_part) (num_part & HALF_MASK)
+#define HIGH_PART(num_part) (num_part >> (PART_PRECISION / 2))
+
+struct op
+{
+ const cpp_token *token; /* The token forming op (for diagnostics). */
+ cpp_num value; /* The value logically "right" of op. */
+ source_location loc; /* The location of this value. */
+ enum cpp_ttype op;
+};
+
+/* Some simple utility routines on double integers. */
+#define num_zerop(num) ((num.low | num.high) == 0)
+#define num_eq(num1, num2) (num1.low == num2.low && num1.high == num2.high)
+static bool num_positive (cpp_num, size_t);
+static bool num_greater_eq (cpp_num, cpp_num, size_t);
+static cpp_num num_trim (cpp_num, size_t);
+static cpp_num num_part_mul (cpp_num_part, cpp_num_part);
+
+static cpp_num num_unary_op (cpp_reader *, cpp_num, enum cpp_ttype);
+static cpp_num num_binary_op (cpp_reader *, cpp_num, cpp_num, enum cpp_ttype);
+static cpp_num num_negate (cpp_num, size_t);
+static cpp_num num_bitwise_op (cpp_reader *, cpp_num, cpp_num, enum cpp_ttype);
+static cpp_num num_inequality_op (cpp_reader *, cpp_num, cpp_num,
+ enum cpp_ttype);
+static cpp_num num_equality_op (cpp_reader *, cpp_num, cpp_num,
+ enum cpp_ttype);
+static cpp_num num_mul (cpp_reader *, cpp_num, cpp_num);
+static cpp_num num_div_op (cpp_reader *, cpp_num, cpp_num, enum cpp_ttype,
+ source_location);
+static cpp_num num_lshift (cpp_num, size_t, size_t);
+static cpp_num num_rshift (cpp_num, size_t, size_t);
+
+static cpp_num append_digit (cpp_num, int, int, size_t);
+static cpp_num parse_defined (cpp_reader *);
+static cpp_num eval_token (cpp_reader *, const cpp_token *, source_location);
+static struct op *reduce (cpp_reader *, struct op *, enum cpp_ttype);
+static unsigned int interpret_float_suffix (cpp_reader *, const uchar *, size_t);
+static unsigned int interpret_int_suffix (cpp_reader *, const uchar *, size_t);
+static void check_promotion (cpp_reader *, const struct op *);
+
+/* Token type abuse to create unary plus and minus operators. */
+#define CPP_UPLUS ((enum cpp_ttype) (CPP_LAST_CPP_OP + 1))
+#define CPP_UMINUS ((enum cpp_ttype) (CPP_LAST_CPP_OP + 2))
+
+/* With -O2, gcc appears to produce nice code, moving the error
+ message load and subsequent jump completely out of the main path. */
+#define SYNTAX_ERROR(msgid) \
+ do { cpp_error (pfile, CPP_DL_ERROR, msgid); goto syntax_error; } while(0)
+#define SYNTAX_ERROR2(msgid, arg) \
+ do { cpp_error (pfile, CPP_DL_ERROR, msgid, arg); goto syntax_error; } \
+ while(0)
+#define SYNTAX_ERROR_AT(loc, msgid) \
+ do { cpp_error_with_line (pfile, CPP_DL_ERROR, (loc), 0, msgid); goto syntax_error; } \
+ while(0)
+#define SYNTAX_ERROR2_AT(loc, msgid, arg) \
+ do { cpp_error_with_line (pfile, CPP_DL_ERROR, (loc), 0, msgid, arg); goto syntax_error; } \
+ while(0)
+
+/* Subroutine of cpp_classify_number. S points to a float suffix of
+ length LEN, possibly zero. Returns 0 for an invalid suffix, or a
+ flag vector describing the suffix. */
+static unsigned int
+interpret_float_suffix (cpp_reader *pfile, const uchar *s, size_t len)
+{
+ size_t flags;
+ size_t f, d, l, w, q, i;
+
+ flags = 0;
+ f = d = l = w = q = i = 0;
+
+ /* Process decimal float suffixes, which are two letters starting
+ with d or D. Order and case are significant. */
+ if (len == 2 && (*s == 'd' || *s == 'D'))
+ {
+ bool uppercase = (*s == 'D');
+ switch (s[1])
+ {
+ case 'f': return (!uppercase ? (CPP_N_DFLOAT | CPP_N_SMALL): 0); break;
+ case 'F': return (uppercase ? (CPP_N_DFLOAT | CPP_N_SMALL) : 0); break;
+ case 'd': return (!uppercase ? (CPP_N_DFLOAT | CPP_N_MEDIUM): 0); break;
+ case 'D': return (uppercase ? (CPP_N_DFLOAT | CPP_N_MEDIUM) : 0); break;
+ case 'l': return (!uppercase ? (CPP_N_DFLOAT | CPP_N_LARGE) : 0); break;
+ case 'L': return (uppercase ? (CPP_N_DFLOAT | CPP_N_LARGE) : 0); break;
+ default:
+ /* Additional two-character suffixes beginning with D are not
+ for decimal float constants. */
+ break;
+ }
+ }
+
+ if (CPP_OPTION (pfile, ext_numeric_literals))
+ {
+ /* Recognize a fixed-point suffix. */
+ if (len != 0)
+ switch (s[len-1])
+ {
+ case 'k': case 'K': flags = CPP_N_ACCUM; break;
+ case 'r': case 'R': flags = CPP_N_FRACT; break;
+ default: break;
+ }
+
+ /* Continue processing a fixed-point suffix. The suffix is case
+ insensitive except for ll or LL. Order is significant. */
+ if (flags)
+ {
+ if (len == 1)
+ return flags;
+ len--;
+
+ if (*s == 'u' || *s == 'U')
+ {
+ flags |= CPP_N_UNSIGNED;
+ if (len == 1)
+ return flags;
+ len--;
+ s++;
+ }
+
+ switch (*s)
+ {
+ case 'h': case 'H':
+ if (len == 1)
+ return flags |= CPP_N_SMALL;
+ break;
+ case 'l':
+ if (len == 1)
+ return flags |= CPP_N_MEDIUM;
+ if (len == 2 && s[1] == 'l')
+ return flags |= CPP_N_LARGE;
+ break;
+ case 'L':
+ if (len == 1)
+ return flags |= CPP_N_MEDIUM;
+ if (len == 2 && s[1] == 'L')
+ return flags |= CPP_N_LARGE;
+ break;
+ default:
+ break;
+ }
+ /* Anything left at this point is invalid. */
+ return 0;
+ }
+ }
+
+ /* In any remaining valid suffix, the case and order don't matter. */
+ while (len--)
+ switch (s[len])
+ {
+ case 'f': case 'F': f++; break;
+ case 'd': case 'D': d++; break;
+ case 'l': case 'L': l++; break;
+ case 'w': case 'W': w++; break;
+ case 'q': case 'Q': q++; break;
+ case 'i': case 'I':
+ case 'j': case 'J': i++; break;
+ default:
+ return 0;
+ }
+
+ if (f + d + l + w + q > 1 || i > 1)
+ return 0;
+
+ if (i && !CPP_OPTION (pfile, ext_numeric_literals))
+ return 0;
+
+ if ((w || q) && !CPP_OPTION (pfile, ext_numeric_literals))
+ return 0;
+
+ return ((i ? CPP_N_IMAGINARY : 0)
+ | (f ? CPP_N_SMALL :
+ d ? CPP_N_MEDIUM :
+ l ? CPP_N_LARGE :
+ w ? CPP_N_MD_W :
+ q ? CPP_N_MD_Q : CPP_N_DEFAULT));
+}
+
+/* Return the classification flags for a float suffix. */
+unsigned int
+cpp_interpret_float_suffix (cpp_reader *pfile, const char *s, size_t len)
+{
+ return interpret_float_suffix (pfile, (const unsigned char *)s, len);
+}
+
+/* Subroutine of cpp_classify_number. S points to an integer suffix
+ of length LEN, possibly zero. Returns 0 for an invalid suffix, or a
+ flag vector describing the suffix. */
+static unsigned int
+interpret_int_suffix (cpp_reader *pfile, const uchar *s, size_t len)
+{
+ size_t u, l, i;
+
+ u = l = i = 0;
+
+ while (len--)
+ switch (s[len])
+ {
+ case 'u': case 'U': u++; break;
+ case 'i': case 'I':
+ case 'j': case 'J': i++; break;
+ case 'l': case 'L': l++;
+ /* If there are two Ls, they must be adjacent and the same case. */
+ if (l == 2 && s[len] != s[len + 1])
+ return 0;
+ break;
+ default:
+ return 0;
+ }
+
+ if (l > 2 || u > 1 || i > 1)
+ return 0;
+
+ if (i && !CPP_OPTION (pfile, ext_numeric_literals))
+ return 0;
+
+ return ((i ? CPP_N_IMAGINARY : 0)
+ | (u ? CPP_N_UNSIGNED : 0)
+ | ((l == 0) ? CPP_N_SMALL
+ : (l == 1) ? CPP_N_MEDIUM : CPP_N_LARGE));
+}
+
+/* Return the classification flags for an int suffix. */
+unsigned int
+cpp_interpret_int_suffix (cpp_reader *pfile, const char *s, size_t len)
+{
+ return interpret_int_suffix (pfile, (const unsigned char *)s, len);
+}
+
+/* Return the string type corresponding to the the input user-defined string
+ literal type. If the input type is not a user-defined string literal
+ type return the input type. */
+enum cpp_ttype
+cpp_userdef_string_remove_type (enum cpp_ttype type)
+{
+ if (type == CPP_STRING_USERDEF)
+ return CPP_STRING;
+ else if (type == CPP_WSTRING_USERDEF)
+ return CPP_WSTRING;
+ else if (type == CPP_STRING16_USERDEF)
+ return CPP_STRING16;
+ else if (type == CPP_STRING32_USERDEF)
+ return CPP_STRING32;
+ else if (type == CPP_UTF8STRING_USERDEF)
+ return CPP_UTF8STRING;
+ else
+ return type;
+}
+
+/* Return the user-defined string literal type corresponding to the input
+ string type. If the input type is not a string type return the input
+ type. */
+enum cpp_ttype
+cpp_userdef_string_add_type (enum cpp_ttype type)
+{
+ if (type == CPP_STRING)
+ return CPP_STRING_USERDEF;
+ else if (type == CPP_WSTRING)
+ return CPP_WSTRING_USERDEF;
+ else if (type == CPP_STRING16)
+ return CPP_STRING16_USERDEF;
+ else if (type == CPP_STRING32)
+ return CPP_STRING32_USERDEF;
+ else if (type == CPP_UTF8STRING)
+ return CPP_UTF8STRING_USERDEF;
+ else
+ return type;
+}
+
+/* Return the char type corresponding to the the input user-defined char
+ literal type. If the input type is not a user-defined char literal
+ type return the input type. */
+enum cpp_ttype
+cpp_userdef_char_remove_type (enum cpp_ttype type)
+{
+ if (type == CPP_CHAR_USERDEF)
+ return CPP_CHAR;
+ else if (type == CPP_WCHAR_USERDEF)
+ return CPP_WCHAR;
+ else if (type == CPP_CHAR16_USERDEF)
+ return CPP_CHAR16;
+ else if (type == CPP_CHAR32_USERDEF)
+ return CPP_CHAR32;
+ else
+ return type;
+}
+
+/* Return the user-defined char literal type corresponding to the input
+ char type. If the input type is not a char type return the input
+ type. */
+enum cpp_ttype
+cpp_userdef_char_add_type (enum cpp_ttype type)
+{
+ if (type == CPP_CHAR)
+ return CPP_CHAR_USERDEF;
+ else if (type == CPP_WCHAR)
+ return CPP_WCHAR_USERDEF;
+ else if (type == CPP_CHAR16)
+ return CPP_CHAR16_USERDEF;
+ else if (type == CPP_CHAR32)
+ return CPP_CHAR32_USERDEF;
+ else
+ return type;
+}
+
+/* Return true if the token type is a user-defined string literal. */
+bool
+cpp_userdef_string_p (enum cpp_ttype type)
+{
+ if (type == CPP_STRING_USERDEF
+ || type == CPP_WSTRING_USERDEF
+ || type == CPP_STRING16_USERDEF
+ || type == CPP_STRING32_USERDEF
+ || type == CPP_UTF8STRING_USERDEF)
+ return true;
+ else
+ return false;
+}
+
+/* Return true if the token type is a user-defined char literal. */
+bool
+cpp_userdef_char_p (enum cpp_ttype type)
+{
+ if (type == CPP_CHAR_USERDEF
+ || type == CPP_WCHAR_USERDEF
+ || type == CPP_CHAR16_USERDEF
+ || type == CPP_CHAR32_USERDEF)
+ return true;
+ else
+ return false;
+}
+
+/* Extract the suffix from a user-defined literal string or char. */
+const char *
+cpp_get_userdef_suffix (const cpp_token *tok)
+{
+ unsigned int len = tok->val.str.len;
+ const char *text = (const char *)tok->val.str.text;
+ char delim;
+ unsigned int i;
+ for (i = 0; i < len; ++i)
+ if (text[i] == '\'' || text[i] == '"')
+ break;
+ if (i == len)
+ return text + len;
+ delim = text[i];
+ for (i = len; i > 0; --i)
+ if (text[i - 1] == delim)
+ break;
+ return text + i;
+}
+
+/* Categorize numeric constants according to their field (integer,
+ floating point, or invalid), radix (decimal, octal, hexadecimal),
+ and type suffixes.
+
+ TOKEN is the token that represents the numeric constant to
+ classify.
+
+ In C++0X if UD_SUFFIX is non null it will be assigned
+ any unrecognized suffix for a user-defined literal.
+
+ VIRTUAL_LOCATION is the virtual location for TOKEN. */
+unsigned int
+cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
+ const char **ud_suffix, source_location virtual_location)
+{
+ const uchar *str = token->val.str.text;
+ const uchar *limit;
+ unsigned int max_digit, result, radix;
+ enum {NOT_FLOAT = 0, AFTER_POINT, AFTER_EXPON} float_flag;
+ bool seen_digit;
+ bool seen_digit_sep;
+
+ if (ud_suffix)
+ *ud_suffix = NULL;
+
+ /* If the lexer has done its job, length one can only be a single
+ digit. Fast-path this very common case. */
+ if (token->val.str.len == 1)
+ return CPP_N_INTEGER | CPP_N_SMALL | CPP_N_DECIMAL;
+
+ limit = str + token->val.str.len;
+ float_flag = NOT_FLOAT;
+ max_digit = 0;
+ radix = 10;
+ seen_digit = false;
+ seen_digit_sep = false;
+
+ /* First, interpret the radix. */
+ if (*str == '0')
+ {
+ radix = 8;
+ str++;
+
+ /* Require at least one hex digit to classify it as hex. */
+ if (*str == 'x' || *str == 'X')
+ {
+ if (str[1] == '.' || ISXDIGIT (str[1]))
+ {
+ radix = 16;
+ str++;
+ }
+ else if (DIGIT_SEP (str[1]))
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator after base indicator");
+ }
+ else if (*str == 'b' || *str == 'B')
+ {
+ if (str[1] == '0' || str[1] == '1')
+ {
+ radix = 2;
+ str++;
+ }
+ else if (DIGIT_SEP (str[1]))
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator after base indicator");
+ }
+ }
+
+ /* Now scan for a well-formed integer or float. */
+ for (;;)
+ {
+ unsigned int c = *str++;
+
+ if (ISDIGIT (c) || (ISXDIGIT (c) && radix == 16))
+ {
+ seen_digit_sep = false;
+ seen_digit = true;
+ c = hex_value (c);
+ if (c > max_digit)
+ max_digit = c;
+ }
+ else if (DIGIT_SEP (c))
+ {
+ if (seen_digit_sep)
+ SYNTAX_ERROR_AT (virtual_location, "adjacent digit separators");
+ seen_digit_sep = true;
+ }
+ else if (c == '.')
+ {
+ if (seen_digit_sep || DIGIT_SEP (*str))
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator adjacent to decimal point");
+ seen_digit_sep = false;
+ if (float_flag == NOT_FLOAT)
+ float_flag = AFTER_POINT;
+ else
+ SYNTAX_ERROR_AT (virtual_location,
+ "too many decimal points in number");
+ }
+ else if ((radix <= 10 && (c == 'e' || c == 'E'))
+ || (radix == 16 && (c == 'p' || c == 'P')))
+ {
+ if (seen_digit_sep || DIGIT_SEP (*str))
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator adjacent to exponent");
+ float_flag = AFTER_EXPON;
+ break;
+ }
+ else
+ {
+ /* Start of suffix. */
+ str--;
+ break;
+ }
+ }
+
+ if (seen_digit_sep && float_flag != AFTER_EXPON)
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator outside digit sequence");
+
+ /* The suffix may be for decimal fixed-point constants without exponent. */
+ if (radix != 16 && float_flag == NOT_FLOAT)
+ {
+ result = interpret_float_suffix (pfile, str, limit - str);
+ if ((result & CPP_N_FRACT) || (result & CPP_N_ACCUM))
+ {
+ result |= CPP_N_FLOATING;
+ /* We need to restore the radix to 10, if the radix is 8. */
+ if (radix == 8)
+ radix = 10;
+
+ if (CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "fixed-point constants are a GCC extension");
+ goto syntax_ok;
+ }
+ else
+ result = 0;
+ }
+
+ if (float_flag != NOT_FLOAT && radix == 8)
+ radix = 10;
+
+ if (max_digit >= radix)
+ {
+ if (radix == 2)
+ SYNTAX_ERROR2_AT (virtual_location,
+ "invalid digit \"%c\" in binary constant", '0' + max_digit);
+ else
+ SYNTAX_ERROR2_AT (virtual_location,
+ "invalid digit \"%c\" in octal constant", '0' + max_digit);
+ }
+
+ if (float_flag != NOT_FLOAT)
+ {
+ if (radix == 2)
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "invalid prefix \"0b\" for floating constant");
+ return CPP_N_INVALID;
+ }
+
+ if (radix == 16 && !seen_digit)
+ SYNTAX_ERROR_AT (virtual_location,
+ "no digits in hexadecimal floating constant");
+
+ if (radix == 16 && CPP_PEDANTIC (pfile) && !CPP_OPTION (pfile, c99))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "use of C99 hexadecimal floating constant");
+
+ if (float_flag == AFTER_EXPON)
+ {
+ if (*str == '+' || *str == '-')
+ str++;
+
+ /* Exponent is decimal, even if string is a hex float. */
+ if (!ISDIGIT (*str))
+ {
+ if (DIGIT_SEP (*str))
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator adjacent to exponent");
+ else
+ SYNTAX_ERROR_AT (virtual_location, "exponent has no digits");
+ }
+ do
+ {
+ seen_digit_sep = DIGIT_SEP (*str);
+ str++;
+ }
+ while (ISDIGIT (*str) || DIGIT_SEP (*str));
+ }
+ else if (radix == 16)
+ SYNTAX_ERROR_AT (virtual_location,
+ "hexadecimal floating constants require an exponent");
+
+ if (seen_digit_sep)
+ SYNTAX_ERROR_AT (virtual_location,
+ "digit separator outside digit sequence");
+
+ result = interpret_float_suffix (pfile, str, limit - str);
+ if (result == 0)
+ {
+ if (CPP_OPTION (pfile, user_literals))
+ {
+ if (ud_suffix)
+ *ud_suffix = (const char *) str;
+ result = CPP_N_LARGE | CPP_N_USERDEF;
+ }
+ else
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "invalid suffix \"%.*s\" on floating constant",
+ (int) (limit - str), str);
+ return CPP_N_INVALID;
+ }
+ }
+
+ /* Traditional C didn't accept any floating suffixes. */
+ if (limit != str
+ && CPP_WTRADITIONAL (pfile)
+ && ! cpp_sys_macro_p (pfile))
+ cpp_warning_with_line (pfile, CPP_W_TRADITIONAL, virtual_location, 0,
+ "traditional C rejects the \"%.*s\" suffix",
+ (int) (limit - str), str);
+
+ /* A suffix for double is a GCC extension via decimal float support.
+ If the suffix also specifies an imaginary value we'll catch that
+ later. */
+ if ((result == CPP_N_MEDIUM) && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "suffix for double constant is a GCC extension");
+
+ /* Radix must be 10 for decimal floats. */
+ if ((result & CPP_N_DFLOAT) && radix != 10)
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "invalid suffix \"%.*s\" with hexadecimal floating constant",
+ (int) (limit - str), str);
+ return CPP_N_INVALID;
+ }
+
+ if ((result & (CPP_N_FRACT | CPP_N_ACCUM)) && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "fixed-point constants are a GCC extension");
+
+ if ((result & CPP_N_DFLOAT) && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "decimal float constants are a GCC extension");
+
+ result |= CPP_N_FLOATING;
+ }
+ else
+ {
+ result = interpret_int_suffix (pfile, str, limit - str);
+ if (result == 0)
+ {
+ if (CPP_OPTION (pfile, user_literals))
+ {
+ if (ud_suffix)
+ *ud_suffix = (const char *) str;
+ result = CPP_N_UNSIGNED | CPP_N_LARGE | CPP_N_USERDEF;
+ }
+ else
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "invalid suffix \"%.*s\" on integer constant",
+ (int) (limit - str), str);
+ return CPP_N_INVALID;
+ }
+ }
+
+ /* Traditional C only accepted the 'L' suffix.
+ Suppress warning about 'LL' with -Wno-long-long. */
+ if (CPP_WTRADITIONAL (pfile) && ! cpp_sys_macro_p (pfile))
+ {
+ int u_or_i = (result & (CPP_N_UNSIGNED|CPP_N_IMAGINARY));
+ int large = (result & CPP_N_WIDTH) == CPP_N_LARGE
+ && CPP_OPTION (pfile, cpp_warn_long_long);
+
+ if (u_or_i || large)
+ cpp_warning_with_line (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL,
+ virtual_location, 0,
+ "traditional C rejects the \"%.*s\" suffix",
+ (int) (limit - str), str);
+ }
+
+ if ((result & CPP_N_WIDTH) == CPP_N_LARGE
+ && CPP_OPTION (pfile, cpp_warn_long_long))
+ {
+ const char *message = CPP_OPTION (pfile, cplusplus)
+ ? N_("use of C++11 long long integer constant")
+ : N_("use of C99 long long integer constant");
+
+ if (CPP_OPTION (pfile, c99))
+ cpp_warning_with_line (pfile, CPP_W_LONG_LONG, virtual_location,
+ 0, message);
+ else
+ cpp_pedwarning_with_line (pfile, CPP_W_LONG_LONG,
+ virtual_location, 0, message);
+ }
+
+ result |= CPP_N_INTEGER;
+ }
+
+ syntax_ok:
+ if ((result & CPP_N_IMAGINARY) && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ "imaginary constants are a GCC extension");
+ if (radix == 2
+ && !CPP_OPTION (pfile, binary_constants)
+ && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, virtual_location, 0,
+ CPP_OPTION (pfile, cplusplus)
+ ? "binary constants are a C++1y feature "
+ "or GCC extension"
+ : "binary constants are a GCC extension");
+
+ if (radix == 10)
+ result |= CPP_N_DECIMAL;
+ else if (radix == 16)
+ result |= CPP_N_HEX;
+ else if (radix == 2)
+ result |= CPP_N_BINARY;
+ else
+ result |= CPP_N_OCTAL;
+
+ return result;
+
+ syntax_error:
+ return CPP_N_INVALID;
+}
+
+/* cpp_interpret_integer converts an integer constant into a cpp_num,
+ of precision options->precision.
+
+ We do not provide any interface for decimal->float conversion,
+ because the preprocessor doesn't need it and we don't want to
+ drag in GCC's floating point emulator. */
+cpp_num
+cpp_interpret_integer (cpp_reader *pfile, const cpp_token *token,
+ unsigned int type)
+{
+ const uchar *p, *end;
+ cpp_num result;
+
+ result.low = 0;
+ result.high = 0;
+ result.unsignedp = !!(type & CPP_N_UNSIGNED);
+ result.overflow = false;
+
+ p = token->val.str.text;
+ end = p + token->val.str.len;
+
+ /* Common case of a single digit. */
+ if (token->val.str.len == 1)
+ result.low = p[0] - '0';
+ else
+ {
+ cpp_num_part max;
+ size_t precision = CPP_OPTION (pfile, precision);
+ unsigned int base = 10, c = 0;
+ bool overflow = false;
+
+ if ((type & CPP_N_RADIX) == CPP_N_OCTAL)
+ {
+ base = 8;
+ p++;
+ }
+ else if ((type & CPP_N_RADIX) == CPP_N_HEX)
+ {
+ base = 16;
+ p += 2;
+ }
+ else if ((type & CPP_N_RADIX) == CPP_N_BINARY)
+ {
+ base = 2;
+ p += 2;
+ }
+
+ /* We can add a digit to numbers strictly less than this without
+ needing the precision and slowness of double integers. */
+ max = ~(cpp_num_part) 0;
+ if (precision < PART_PRECISION)
+ max >>= PART_PRECISION - precision;
+ max = (max - base + 1) / base + 1;
+
+ for (; p < end; p++)
+ {
+ c = *p;
+
+ if (ISDIGIT (c) || (base == 16 && ISXDIGIT (c)))
+ c = hex_value (c);
+ else if (DIGIT_SEP (c))
+ continue;
+ else
+ break;
+
+ /* Strict inequality for when max is set to zero. */
+ if (result.low < max)
+ result.low = result.low * base + c;
+ else
+ {
+ result = append_digit (result, c, base, precision);
+ overflow |= result.overflow;
+ max = 0;
+ }
+ }
+
+ if (overflow && !(type & CPP_N_USERDEF))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "integer constant is too large for its type");
+ /* If too big to be signed, consider it unsigned. Only warn for
+ decimal numbers. Traditional numbers were always signed (but
+ we still honor an explicit U suffix); but we only have
+ traditional semantics in directives. */
+ else if (!result.unsignedp
+ && !(CPP_OPTION (pfile, traditional)
+ && pfile->state.in_directive)
+ && !num_positive (result, precision))
+ {
+ /* This is for constants within the range of uintmax_t but
+ not that of intmax_t. For such decimal constants, a
+ diagnostic is required for C99 as the selected type must
+ be signed and not having a type is a constraint violation
+ (DR#298, TC3), so this must be a pedwarn. For C90,
+ unsigned long is specified to be used for a constant that
+ does not fit in signed long; if uintmax_t has the same
+ range as unsigned long this means only a warning is
+ appropriate here. C90 permits the preprocessor to use a
+ wider range than unsigned long in the compiler, so if
+ uintmax_t is wider than unsigned long no diagnostic is
+ required for such constants in preprocessor #if
+ expressions and the compiler will pedwarn for such
+ constants outside the range of unsigned long that reach
+ the compiler so a diagnostic is not required there
+ either; thus, pedwarn for C99 but use a plain warning for
+ C90. */
+ if (base == 10)
+ cpp_error (pfile, (CPP_OPTION (pfile, c99)
+ ? CPP_DL_PEDWARN
+ : CPP_DL_WARNING),
+ "integer constant is so large that it is unsigned");
+ result.unsignedp = true;
+ }
+ }
+
+ return result;
+}
+
+/* Append DIGIT to NUM, a number of PRECISION bits being read in base BASE. */
+static cpp_num
+append_digit (cpp_num num, int digit, int base, size_t precision)
+{
+ cpp_num result;
+ unsigned int shift;
+ bool overflow;
+ cpp_num_part add_high, add_low;
+
+ /* Multiply by 2, 8 or 16. Catching this overflow here means we don't
+ need to worry about add_high overflowing. */
+ switch (base)
+ {
+ case 2:
+ shift = 1;
+ break;
+
+ case 16:
+ shift = 4;
+ break;
+
+ default:
+ shift = 3;
+ }
+ overflow = !!(num.high >> (PART_PRECISION - shift));
+ result.high = num.high << shift;
+ result.low = num.low << shift;
+ result.high |= num.low >> (PART_PRECISION - shift);
+ result.unsignedp = num.unsignedp;
+
+ if (base == 10)
+ {
+ add_low = num.low << 1;
+ add_high = (num.high << 1) + (num.low >> (PART_PRECISION - 1));
+ }
+ else
+ add_high = add_low = 0;
+
+ if (add_low + digit < add_low)
+ add_high++;
+ add_low += digit;
+
+ if (result.low + add_low < result.low)
+ add_high++;
+ if (result.high + add_high < result.high)
+ overflow = true;
+
+ result.low += add_low;
+ result.high += add_high;
+ result.overflow = overflow;
+
+ /* The above code catches overflow of a cpp_num type. This catches
+ overflow of the (possibly shorter) target precision. */
+ num.low = result.low;
+ num.high = result.high;
+ result = num_trim (result, precision);
+ if (!num_eq (result, num))
+ result.overflow = true;
+
+ return result;
+}
+
+/* Handle meeting "defined" in a preprocessor expression. */
+static cpp_num
+parse_defined (cpp_reader *pfile)
+{
+ cpp_num result;
+ int paren = 0;
+ cpp_hashnode *node = 0;
+ const cpp_token *token;
+ cpp_context *initial_context = pfile->context;
+
+ /* Don't expand macros. */
+ pfile->state.prevent_expansion++;
+
+ token = cpp_get_token (pfile);
+ if (token->type == CPP_OPEN_PAREN)
+ {
+ paren = 1;
+ token = cpp_get_token (pfile);
+ }
+
+ if (token->type == CPP_NAME)
+ {
+ node = token->val.node.node;
+ if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "missing ')' after \"defined\"");
+ node = 0;
+ }
+ }
+ else
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "operator \"defined\" requires an identifier");
+ if (token->flags & NAMED_OP)
+ {
+ cpp_token op;
+
+ op.flags = 0;
+ op.type = token->type;
+ cpp_error (pfile, CPP_DL_ERROR,
+ "(\"%s\" is an alternative token for \"%s\" in C++)",
+ cpp_token_as_text (pfile, token),
+ cpp_token_as_text (pfile, &op));
+ }
+ }
+
+ if (node)
+ {
+ if (pfile->context != initial_context && CPP_PEDANTIC (pfile))
+ cpp_error (pfile, CPP_DL_WARNING,
+ "this use of \"defined\" may not be portable");
+
+ _cpp_mark_macro_used (node);
+ if (!(node->flags & NODE_USED))
+ {
+ node->flags |= NODE_USED;
+ if (node->type == NT_MACRO)
+ {
+ if ((node->flags & NODE_BUILTIN)
+ && pfile->cb.user_builtin_macro)
+ pfile->cb.user_builtin_macro (pfile, node);
+ if (pfile->cb.used_define)
+ pfile->cb.used_define (pfile, pfile->directive_line, node);
+ }
+ else
+ {
+ if (pfile->cb.used_undef)
+ pfile->cb.used_undef (pfile, pfile->directive_line, node);
+ }
+ }
+
+ /* A possible controlling macro of the form #if !defined ().
+ _cpp_parse_expr checks there was no other junk on the line. */
+ pfile->mi_ind_cmacro = node;
+ }
+
+ pfile->state.prevent_expansion--;
+
+ /* Do not treat conditional macros as being defined. This is due to the
+ powerpc and spu ports using conditional macros for 'vector', 'bool', and
+ 'pixel' to act as conditional keywords. This messes up tests like #ifndef
+ bool. */
+ result.unsignedp = false;
+ result.high = 0;
+ result.overflow = false;
+ result.low = (node && node->type == NT_MACRO
+ && (node->flags & NODE_CONDITIONAL) == 0);
+ return result;
+}
+
+/* Convert a token into a CPP_NUMBER (an interpreted preprocessing
+ number or character constant, or the result of the "defined" or "#"
+ operators). */
+static cpp_num
+eval_token (cpp_reader *pfile, const cpp_token *token,
+ source_location virtual_location)
+{
+ cpp_num result;
+ unsigned int temp;
+ int unsignedp = 0;
+
+ result.unsignedp = false;
+ result.overflow = false;
+
+ switch (token->type)
+ {
+ case CPP_NUMBER:
+ temp = cpp_classify_number (pfile, token, NULL, virtual_location);
+ if (temp & CPP_N_USERDEF)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "user-defined literal in preprocessor expression");
+ switch (temp & CPP_N_CATEGORY)
+ {
+ case CPP_N_FLOATING:
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "floating constant in preprocessor expression");
+ break;
+ case CPP_N_INTEGER:
+ if (!(temp & CPP_N_IMAGINARY))
+ return cpp_interpret_integer (pfile, token, temp);
+ cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
+ "imaginary number in preprocessor expression");
+ break;
+
+ case CPP_N_INVALID:
+ /* Error already issued. */
+ break;
+ }
+ result.high = result.low = 0;
+ break;
+
+ case CPP_WCHAR:
+ case CPP_CHAR:
+ case CPP_CHAR16:
+ case CPP_CHAR32:
+ {
+ cppchar_t cc = cpp_interpret_charconst (pfile, token,
+ &temp, &unsignedp);
+
+ result.high = 0;
+ result.low = cc;
+ /* Sign-extend the result if necessary. */
+ if (!unsignedp && (cppchar_signed_t) cc < 0)
+ {
+ if (PART_PRECISION > BITS_PER_CPPCHAR_T)
+ result.low |= ~(~(cpp_num_part) 0
+ >> (PART_PRECISION - BITS_PER_CPPCHAR_T));
+ result.high = ~(cpp_num_part) 0;
+ result = num_trim (result, CPP_OPTION (pfile, precision));
+ }
+ }
+ break;
+
+ case CPP_NAME:
+ if (token->val.node.node == pfile->spec_nodes.n_defined)
+ return parse_defined (pfile);
+ else if (CPP_OPTION (pfile, cplusplus)
+ && (token->val.node.node == pfile->spec_nodes.n_true
+ || token->val.node.node == pfile->spec_nodes.n_false))
+ {
+ result.high = 0;
+ result.low = (token->val.node.node == pfile->spec_nodes.n_true);
+ }
+ else
+ {
+ result.high = 0;
+ result.low = 0;
+ if (CPP_OPTION (pfile, warn_undef) && !pfile->state.skip_eval)
+ cpp_warning_with_line (pfile, CPP_W_UNDEF, virtual_location, 0,
+ "\"%s\" is not defined",
+ NODE_NAME (token->val.node.node));
+ }
+ break;
+
+ case CPP_HASH:
+ if (!pfile->state.skipping)
+ {
+ /* A pedantic warning takes precedence over a deprecated
+ warning here. */
+ if (CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN,
+ virtual_location, 0,
+ "assertions are a GCC extension");
+ else if (CPP_OPTION (pfile, cpp_warn_deprecated))
+ cpp_warning_with_line (pfile, CPP_W_DEPRECATED, virtual_location, 0,
+ "assertions are a deprecated extension");
+ }
+ _cpp_test_assertion (pfile, &temp);
+ result.high = 0;
+ result.low = temp;
+ break;
+
+ default:
+ abort ();
+ }
+
+ result.unsignedp = !!unsignedp;
+ return result;
+}
+
+/* Operator precedence and flags table.
+
+After an operator is returned from the lexer, if it has priority less
+than the operator on the top of the stack, we reduce the stack by one
+operator and repeat the test. Since equal priorities do not reduce,
+this is naturally right-associative.
+
+We handle left-associative operators by decrementing the priority of
+just-lexed operators by one, but retaining the priority of operators
+already on the stack.
+
+The remaining cases are '(' and ')'. We handle '(' by skipping the
+reduction phase completely. ')' is given lower priority than
+everything else, including '(', effectively forcing a reduction of the
+parenthesized expression. If there is a matching '(', the routine
+reduce() exits immediately. If the normal exit route sees a ')', then
+there cannot have been a matching '(' and an error message is output.
+
+The parser assumes all shifted operators require a left operand unless
+the flag NO_L_OPERAND is set. These semantics are automatic; any
+extra semantics need to be handled with operator-specific code. */
+
+/* Flags. If CHECK_PROMOTION, we warn if the effective sign of an
+ operand changes because of integer promotions. */
+#define NO_L_OPERAND (1 << 0)
+#define LEFT_ASSOC (1 << 1)
+#define CHECK_PROMOTION (1 << 2)
+
+/* Operator to priority map. Must be in the same order as the first
+ N entries of enum cpp_ttype. */
+static const struct cpp_operator
+{
+ uchar prio;
+ uchar flags;
+} optab[] =
+{
+ /* EQ */ {0, 0}, /* Shouldn't happen. */
+ /* NOT */ {16, NO_L_OPERAND},
+ /* GREATER */ {12, LEFT_ASSOC | CHECK_PROMOTION},
+ /* LESS */ {12, LEFT_ASSOC | CHECK_PROMOTION},
+ /* PLUS */ {14, LEFT_ASSOC | CHECK_PROMOTION},
+ /* MINUS */ {14, LEFT_ASSOC | CHECK_PROMOTION},
+ /* MULT */ {15, LEFT_ASSOC | CHECK_PROMOTION},
+ /* DIV */ {15, LEFT_ASSOC | CHECK_PROMOTION},
+ /* MOD */ {15, LEFT_ASSOC | CHECK_PROMOTION},
+ /* AND */ {9, LEFT_ASSOC | CHECK_PROMOTION},
+ /* OR */ {7, LEFT_ASSOC | CHECK_PROMOTION},
+ /* XOR */ {8, LEFT_ASSOC | CHECK_PROMOTION},
+ /* RSHIFT */ {13, LEFT_ASSOC},
+ /* LSHIFT */ {13, LEFT_ASSOC},
+
+ /* COMPL */ {16, NO_L_OPERAND},
+ /* AND_AND */ {6, LEFT_ASSOC},
+ /* OR_OR */ {5, LEFT_ASSOC},
+ /* Note that QUERY, COLON, and COMMA must have the same precedence.
+ However, there are some special cases for these in reduce(). */
+ /* QUERY */ {4, 0},
+ /* COLON */ {4, LEFT_ASSOC | CHECK_PROMOTION},
+ /* COMMA */ {4, LEFT_ASSOC},
+ /* OPEN_PAREN */ {1, NO_L_OPERAND},
+ /* CLOSE_PAREN */ {0, 0},
+ /* EOF */ {0, 0},
+ /* EQ_EQ */ {11, LEFT_ASSOC},
+ /* NOT_EQ */ {11, LEFT_ASSOC},
+ /* GREATER_EQ */ {12, LEFT_ASSOC | CHECK_PROMOTION},
+ /* LESS_EQ */ {12, LEFT_ASSOC | CHECK_PROMOTION},
+ /* UPLUS */ {16, NO_L_OPERAND},
+ /* UMINUS */ {16, NO_L_OPERAND}
+};
+
+/* Parse and evaluate a C expression, reading from PFILE.
+ Returns the truth value of the expression.
+
+ The implementation is an operator precedence parser, i.e. a
+ bottom-up parser, using a stack for not-yet-reduced tokens.
+
+ The stack base is op_stack, and the current stack pointer is 'top'.
+ There is a stack element for each operator (only), and the most
+ recently pushed operator is 'top->op'. An operand (value) is
+ stored in the 'value' field of the stack element of the operator
+ that precedes it. */
+bool
+_cpp_parse_expr (cpp_reader *pfile, bool is_if)
+{
+ struct op *top = pfile->op_stack;
+ unsigned int lex_count;
+ bool saw_leading_not, want_value = true;
+ source_location virtual_location = 0;
+
+ pfile->state.skip_eval = 0;
+
+ /* Set up detection of #if ! defined(). */
+ pfile->mi_ind_cmacro = 0;
+ saw_leading_not = false;
+ lex_count = 0;
+
+ /* Lowest priority operator prevents further reductions. */
+ top->op = CPP_EOF;
+
+ for (;;)
+ {
+ struct op op;
+
+ lex_count++;
+ op.token = cpp_get_token_with_location (pfile, &virtual_location);
+ op.op = op.token->type;
+ op.loc = virtual_location;
+
+ switch (op.op)
+ {
+ /* These tokens convert into values. */
+ case CPP_NUMBER:
+ case CPP_CHAR:
+ case CPP_WCHAR:
+ case CPP_CHAR16:
+ case CPP_CHAR32:
+ case CPP_NAME:
+ case CPP_HASH:
+ if (!want_value)
+ SYNTAX_ERROR2_AT (op.loc,
+ "missing binary operator before token \"%s\"",
+ cpp_token_as_text (pfile, op.token));
+ want_value = false;
+ top->value = eval_token (pfile, op.token, op.loc);
+ continue;
+
+ case CPP_NOT:
+ saw_leading_not = lex_count == 1;
+ break;
+ case CPP_PLUS:
+ if (want_value)
+ op.op = CPP_UPLUS;
+ break;
+ case CPP_MINUS:
+ if (want_value)
+ op.op = CPP_UMINUS;
+ break;
+
+ default:
+ if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ)
+ SYNTAX_ERROR2_AT (op.loc,
+ "token \"%s\" is not valid in preprocessor expressions",
+ cpp_token_as_text (pfile, op.token));
+ break;
+ }
+
+ /* Check we have a value or operator as appropriate. */
+ if (optab[op.op].flags & NO_L_OPERAND)
+ {
+ if (!want_value)
+ SYNTAX_ERROR2_AT (op.loc,
+ "missing binary operator before token \"%s\"",
+ cpp_token_as_text (pfile, op.token));
+ }
+ else if (want_value)
+ {
+ /* We want a number (or expression) and haven't got one.
+ Try to emit a specific diagnostic. */
+ if (op.op == CPP_CLOSE_PAREN && top->op == CPP_OPEN_PAREN)
+ SYNTAX_ERROR_AT (op.loc,
+ "missing expression between '(' and ')'");
+
+ if (op.op == CPP_EOF && top->op == CPP_EOF)
+ SYNTAX_ERROR2_AT (op.loc,
+ "%s with no expression", is_if ? "#if" : "#elif");
+
+ if (top->op != CPP_EOF && top->op != CPP_OPEN_PAREN)
+ SYNTAX_ERROR2_AT (op.loc,
+ "operator '%s' has no right operand",
+ cpp_token_as_text (pfile, top->token));
+ else if (op.op == CPP_CLOSE_PAREN || op.op == CPP_EOF)
+ /* Complain about missing paren during reduction. */;
+ else
+ SYNTAX_ERROR2_AT (op.loc,
+ "operator '%s' has no left operand",
+ cpp_token_as_text (pfile, op.token));
+ }
+
+ top = reduce (pfile, top, op.op);
+ if (!top)
+ goto syntax_error;
+
+ if (op.op == CPP_EOF)
+ break;
+
+ switch (op.op)
+ {
+ case CPP_CLOSE_PAREN:
+ continue;
+ case CPP_OR_OR:
+ if (!num_zerop (top->value))
+ pfile->state.skip_eval++;
+ break;
+ case CPP_AND_AND:
+ case CPP_QUERY:
+ if (num_zerop (top->value))
+ pfile->state.skip_eval++;
+ break;
+ case CPP_COLON:
+ if (top->op != CPP_QUERY)
+ SYNTAX_ERROR_AT (op.loc,
+ " ':' without preceding '?'");
+ if (!num_zerop (top[-1].value)) /* Was '?' condition true? */
+ pfile->state.skip_eval++;
+ else
+ pfile->state.skip_eval--;
+ default:
+ break;
+ }
+
+ want_value = true;
+
+ /* Check for and handle stack overflow. */
+ if (++top == pfile->op_limit)
+ top = _cpp_expand_op_stack (pfile);
+
+ top->op = op.op;
+ top->token = op.token;
+ top->loc = op.loc;
+ }
+
+ /* The controlling macro expression is only valid if we called lex 3
+ times: <!> <defined expression> and <EOF>. push_conditional ()
+ checks that we are at top-of-file. */
+ if (pfile->mi_ind_cmacro && !(saw_leading_not && lex_count == 3))
+ pfile->mi_ind_cmacro = 0;
+
+ if (top != pfile->op_stack)
+ {
+ cpp_error_with_line (pfile, CPP_DL_ICE, top->loc, 0,
+ "unbalanced stack in %s",
+ is_if ? "#if" : "#elif");
+ syntax_error:
+ return false; /* Return false on syntax error. */
+ }
+
+ return !num_zerop (top->value);
+}
+
+/* Reduce the operator / value stack if possible, in preparation for
+ pushing operator OP. Returns NULL on error, otherwise the top of
+ the stack. */
+static struct op *
+reduce (cpp_reader *pfile, struct op *top, enum cpp_ttype op)
+{
+ unsigned int prio;
+
+ if (top->op <= CPP_EQ || top->op > CPP_LAST_CPP_OP + 2)
+ {
+ bad_op:
+ cpp_error (pfile, CPP_DL_ICE, "impossible operator '%u'", top->op);
+ return 0;
+ }
+
+ if (op == CPP_OPEN_PAREN)
+ return top;
+
+ /* Decrement the priority of left-associative operators to force a
+ reduction with operators of otherwise equal priority. */
+ prio = optab[op].prio - ((optab[op].flags & LEFT_ASSOC) != 0);
+ while (prio < optab[top->op].prio)
+ {
+ if (CPP_OPTION (pfile, warn_num_sign_change)
+ && optab[top->op].flags & CHECK_PROMOTION)
+ check_promotion (pfile, top);
+
+ switch (top->op)
+ {
+ case CPP_UPLUS:
+ case CPP_UMINUS:
+ case CPP_NOT:
+ case CPP_COMPL:
+ top[-1].value = num_unary_op (pfile, top->value, top->op);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_PLUS:
+ case CPP_MINUS:
+ case CPP_RSHIFT:
+ case CPP_LSHIFT:
+ case CPP_COMMA:
+ top[-1].value = num_binary_op (pfile, top[-1].value,
+ top->value, top->op);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_GREATER:
+ case CPP_LESS:
+ case CPP_GREATER_EQ:
+ case CPP_LESS_EQ:
+ top[-1].value
+ = num_inequality_op (pfile, top[-1].value, top->value, top->op);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_EQ_EQ:
+ case CPP_NOT_EQ:
+ top[-1].value
+ = num_equality_op (pfile, top[-1].value, top->value, top->op);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_AND:
+ case CPP_OR:
+ case CPP_XOR:
+ top[-1].value
+ = num_bitwise_op (pfile, top[-1].value, top->value, top->op);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_MULT:
+ top[-1].value = num_mul (pfile, top[-1].value, top->value);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_DIV:
+ case CPP_MOD:
+ top[-1].value = num_div_op (pfile, top[-1].value,
+ top->value, top->op, top->loc);
+ top[-1].loc = top->loc;
+ break;
+
+ case CPP_OR_OR:
+ top--;
+ if (!num_zerop (top->value))
+ pfile->state.skip_eval--;
+ top->value.low = (!num_zerop (top->value)
+ || !num_zerop (top[1].value));
+ top->value.high = 0;
+ top->value.unsignedp = false;
+ top->value.overflow = false;
+ top->loc = top[1].loc;
+ continue;
+
+ case CPP_AND_AND:
+ top--;
+ if (num_zerop (top->value))
+ pfile->state.skip_eval--;
+ top->value.low = (!num_zerop (top->value)
+ && !num_zerop (top[1].value));
+ top->value.high = 0;
+ top->value.unsignedp = false;
+ top->value.overflow = false;
+ top->loc = top[1].loc;
+ continue;
+
+ case CPP_OPEN_PAREN:
+ if (op != CPP_CLOSE_PAREN)
+ {
+ cpp_error_with_line (pfile, CPP_DL_ERROR,
+ top->token->src_loc,
+ 0, "missing ')' in expression");
+ return 0;
+ }
+ top--;
+ top->value = top[1].value;
+ top->loc = top[1].loc;
+ return top;
+
+ case CPP_COLON:
+ top -= 2;
+ if (!num_zerop (top->value))
+ {
+ pfile->state.skip_eval--;
+ top->value = top[1].value;
+ top->loc = top[1].loc;
+ }
+ else
+ {
+ top->value = top[2].value;
+ top->loc = top[2].loc;
+ }
+ top->value.unsignedp = (top[1].value.unsignedp
+ || top[2].value.unsignedp);
+ continue;
+
+ case CPP_QUERY:
+ /* COMMA and COLON should not reduce a QUERY operator. */
+ if (op == CPP_COMMA || op == CPP_COLON)
+ return top;
+ cpp_error (pfile, CPP_DL_ERROR, "'?' without following ':'");
+ return 0;
+
+ default:
+ goto bad_op;
+ }
+
+ top--;
+ if (top->value.overflow && !pfile->state.skip_eval)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "integer overflow in preprocessor expression");
+ }
+
+ if (op == CPP_CLOSE_PAREN)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "missing '(' in expression");
+ return 0;
+ }
+
+ return top;
+}
+
+/* Returns the position of the old top of stack after expansion. */
+struct op *
+_cpp_expand_op_stack (cpp_reader *pfile)
+{
+ size_t old_size = (size_t) (pfile->op_limit - pfile->op_stack);
+ size_t new_size = old_size * 2 + 20;
+
+ pfile->op_stack = XRESIZEVEC (struct op, pfile->op_stack, new_size);
+ pfile->op_limit = pfile->op_stack + new_size;
+
+ return pfile->op_stack + old_size;
+}
+
+/* Emits a warning if the effective sign of either operand of OP
+ changes because of integer promotions. */
+static void
+check_promotion (cpp_reader *pfile, const struct op *op)
+{
+ if (op->value.unsignedp == op[-1].value.unsignedp)
+ return;
+
+ if (op->value.unsignedp)
+ {
+ if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision)))
+ cpp_error_with_line (pfile, CPP_DL_WARNING, op[-1].loc, 0,
+ "the left operand of \"%s\" changes sign when promoted",
+ cpp_token_as_text (pfile, op->token));
+ }
+ else if (!num_positive (op->value, CPP_OPTION (pfile, precision)))
+ cpp_error_with_line (pfile, CPP_DL_WARNING, op->loc, 0,
+ "the right operand of \"%s\" changes sign when promoted",
+ cpp_token_as_text (pfile, op->token));
+}
+
+/* Clears the unused high order bits of the number pointed to by PNUM. */
+static cpp_num
+num_trim (cpp_num num, size_t precision)
+{
+ if (precision > PART_PRECISION)
+ {
+ precision -= PART_PRECISION;
+ if (precision < PART_PRECISION)
+ num.high &= ((cpp_num_part) 1 << precision) - 1;
+ }
+ else
+ {
+ if (precision < PART_PRECISION)
+ num.low &= ((cpp_num_part) 1 << precision) - 1;
+ num.high = 0;
+ }
+
+ return num;
+}
+
+/* True iff A (presumed signed) >= 0. */
+static bool
+num_positive (cpp_num num, size_t precision)
+{
+ if (precision > PART_PRECISION)
+ {
+ precision -= PART_PRECISION;
+ return (num.high & (cpp_num_part) 1 << (precision - 1)) == 0;
+ }
+
+ return (num.low & (cpp_num_part) 1 << (precision - 1)) == 0;
+}
+
+/* Sign extend a number, with PRECISION significant bits and all
+ others assumed clear, to fill out a cpp_num structure. */
+cpp_num
+cpp_num_sign_extend (cpp_num num, size_t precision)
+{
+ if (!num.unsignedp)
+ {
+ if (precision > PART_PRECISION)
+ {
+ precision -= PART_PRECISION;
+ if (precision < PART_PRECISION
+ && (num.high & (cpp_num_part) 1 << (precision - 1)))
+ num.high |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision));
+ }
+ else if (num.low & (cpp_num_part) 1 << (precision - 1))
+ {
+ if (precision < PART_PRECISION)
+ num.low |= ~(~(cpp_num_part) 0 >> (PART_PRECISION - precision));
+ num.high = ~(cpp_num_part) 0;
+ }
+ }
+
+ return num;
+}
+
+/* Returns the negative of NUM. */
+static cpp_num
+num_negate (cpp_num num, size_t precision)
+{
+ cpp_num copy;
+
+ copy = num;
+ num.high = ~num.high;
+ num.low = ~num.low;
+ if (++num.low == 0)
+ num.high++;
+ num = num_trim (num, precision);
+ num.overflow = (!num.unsignedp && num_eq (num, copy) && !num_zerop (num));
+
+ return num;
+}
+
+/* Returns true if A >= B. */
+static bool
+num_greater_eq (cpp_num pa, cpp_num pb, size_t precision)
+{
+ bool unsignedp;
+
+ unsignedp = pa.unsignedp || pb.unsignedp;
+
+ if (!unsignedp)
+ {
+ /* Both numbers have signed type. If they are of different
+ sign, the answer is the sign of A. */
+ unsignedp = num_positive (pa, precision);
+
+ if (unsignedp != num_positive (pb, precision))
+ return unsignedp;
+
+ /* Otherwise we can do an unsigned comparison. */
+ }
+
+ return (pa.high > pb.high) || (pa.high == pb.high && pa.low >= pb.low);
+}
+
+/* Returns LHS OP RHS, where OP is a bit-wise operation. */
+static cpp_num
+num_bitwise_op (cpp_reader *pfile ATTRIBUTE_UNUSED,
+ cpp_num lhs, cpp_num rhs, enum cpp_ttype op)
+{
+ lhs.overflow = false;
+ lhs.unsignedp = lhs.unsignedp || rhs.unsignedp;
+
+ /* As excess precision is zeroed, there is no need to num_trim () as
+ these operations cannot introduce a set bit there. */
+ if (op == CPP_AND)
+ {
+ lhs.low &= rhs.low;
+ lhs.high &= rhs.high;
+ }
+ else if (op == CPP_OR)
+ {
+ lhs.low |= rhs.low;
+ lhs.high |= rhs.high;
+ }
+ else
+ {
+ lhs.low ^= rhs.low;
+ lhs.high ^= rhs.high;
+ }
+
+ return lhs;
+}
+
+/* Returns LHS OP RHS, where OP is an inequality. */
+static cpp_num
+num_inequality_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs,
+ enum cpp_ttype op)
+{
+ bool gte = num_greater_eq (lhs, rhs, CPP_OPTION (pfile, precision));
+
+ if (op == CPP_GREATER_EQ)
+ lhs.low = gte;
+ else if (op == CPP_LESS)
+ lhs.low = !gte;
+ else if (op == CPP_GREATER)
+ lhs.low = gte && !num_eq (lhs, rhs);
+ else /* CPP_LESS_EQ. */
+ lhs.low = !gte || num_eq (lhs, rhs);
+
+ lhs.high = 0;
+ lhs.overflow = false;
+ lhs.unsignedp = false;
+ return lhs;
+}
+
+/* Returns LHS OP RHS, where OP is == or !=. */
+static cpp_num
+num_equality_op (cpp_reader *pfile ATTRIBUTE_UNUSED,
+ cpp_num lhs, cpp_num rhs, enum cpp_ttype op)
+{
+ /* Work around a 3.0.4 bug; see PR 6950. */
+ bool eq = num_eq (lhs, rhs);
+ if (op == CPP_NOT_EQ)
+ eq = !eq;
+ lhs.low = eq;
+ lhs.high = 0;
+ lhs.overflow = false;
+ lhs.unsignedp = false;
+ return lhs;
+}
+
+/* Shift NUM, of width PRECISION, right by N bits. */
+static cpp_num
+num_rshift (cpp_num num, size_t precision, size_t n)
+{
+ cpp_num_part sign_mask;
+ bool x = num_positive (num, precision);
+
+ if (num.unsignedp || x)
+ sign_mask = 0;
+ else
+ sign_mask = ~(cpp_num_part) 0;
+
+ if (n >= precision)
+ num.high = num.low = sign_mask;
+ else
+ {
+ /* Sign-extend. */
+ if (precision < PART_PRECISION)
+ num.high = sign_mask, num.low |= sign_mask << precision;
+ else if (precision < 2 * PART_PRECISION)
+ num.high |= sign_mask << (precision - PART_PRECISION);
+
+ if (n >= PART_PRECISION)
+ {
+ n -= PART_PRECISION;
+ num.low = num.high;
+ num.high = sign_mask;
+ }
+
+ if (n)
+ {
+ num.low = (num.low >> n) | (num.high << (PART_PRECISION - n));
+ num.high = (num.high >> n) | (sign_mask << (PART_PRECISION - n));
+ }
+ }
+
+ num = num_trim (num, precision);
+ num.overflow = false;
+ return num;
+}
+
+/* Shift NUM, of width PRECISION, left by N bits. */
+static cpp_num
+num_lshift (cpp_num num, size_t precision, size_t n)
+{
+ if (n >= precision)
+ {
+ num.overflow = !num.unsignedp && !num_zerop (num);
+ num.high = num.low = 0;
+ }
+ else
+ {
+ cpp_num orig, maybe_orig;
+ size_t m = n;
+
+ orig = num;
+ if (m >= PART_PRECISION)
+ {
+ m -= PART_PRECISION;
+ num.high = num.low;
+ num.low = 0;
+ }
+ if (m)
+ {
+ num.high = (num.high << m) | (num.low >> (PART_PRECISION - m));
+ num.low <<= m;
+ }
+ num = num_trim (num, precision);
+
+ if (num.unsignedp)
+ num.overflow = false;
+ else
+ {
+ maybe_orig = num_rshift (num, precision, n);
+ num.overflow = !num_eq (orig, maybe_orig);
+ }
+ }
+
+ return num;
+}
+
+/* The four unary operators: +, -, ! and ~. */
+static cpp_num
+num_unary_op (cpp_reader *pfile, cpp_num num, enum cpp_ttype op)
+{
+ switch (op)
+ {
+ case CPP_UPLUS:
+ if (CPP_WTRADITIONAL (pfile) && !pfile->state.skip_eval)
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "traditional C rejects the unary plus operator");
+ num.overflow = false;
+ break;
+
+ case CPP_UMINUS:
+ num = num_negate (num, CPP_OPTION (pfile, precision));
+ break;
+
+ case CPP_COMPL:
+ num.high = ~num.high;
+ num.low = ~num.low;
+ num = num_trim (num, CPP_OPTION (pfile, precision));
+ num.overflow = false;
+ break;
+
+ default: /* case CPP_NOT: */
+ num.low = num_zerop (num);
+ num.high = 0;
+ num.overflow = false;
+ num.unsignedp = false;
+ break;
+ }
+
+ return num;
+}
+
+/* The various binary operators. */
+static cpp_num
+num_binary_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op)
+{
+ cpp_num result;
+ size_t precision = CPP_OPTION (pfile, precision);
+ size_t n;
+
+ switch (op)
+ {
+ /* Shifts. */
+ case CPP_LSHIFT:
+ case CPP_RSHIFT:
+ if (!rhs.unsignedp && !num_positive (rhs, precision))
+ {
+ /* A negative shift is a positive shift the other way. */
+ if (op == CPP_LSHIFT)
+ op = CPP_RSHIFT;
+ else
+ op = CPP_LSHIFT;
+ rhs = num_negate (rhs, precision);
+ }
+ if (rhs.high)
+ n = ~0; /* Maximal. */
+ else
+ n = rhs.low;
+ if (op == CPP_LSHIFT)
+ lhs = num_lshift (lhs, precision, n);
+ else
+ lhs = num_rshift (lhs, precision, n);
+ break;
+
+ /* Arithmetic. */
+ case CPP_MINUS:
+ result.low = lhs.low - rhs.low;
+ result.high = lhs.high - rhs.high;
+ if (result.low > lhs.low)
+ result.high--;
+ result.unsignedp = lhs.unsignedp || rhs.unsignedp;
+ result.overflow = false;
+
+ result = num_trim (result, precision);
+ if (!result.unsignedp)
+ {
+ bool lhsp = num_positive (lhs, precision);
+ result.overflow = (lhsp != num_positive (rhs, precision)
+ && lhsp != num_positive (result, precision));
+ }
+ return result;
+
+ case CPP_PLUS:
+ result.low = lhs.low + rhs.low;
+ result.high = lhs.high + rhs.high;
+ if (result.low < lhs.low)
+ result.high++;
+ result.unsignedp = lhs.unsignedp || rhs.unsignedp;
+ result.overflow = false;
+
+ result = num_trim (result, precision);
+ if (!result.unsignedp)
+ {
+ bool lhsp = num_positive (lhs, precision);
+ result.overflow = (lhsp == num_positive (rhs, precision)
+ && lhsp != num_positive (result, precision));
+ }
+ return result;
+
+ /* Comma. */
+ default: /* case CPP_COMMA: */
+ if (CPP_PEDANTIC (pfile) && (!CPP_OPTION (pfile, c99)
+ || !pfile->state.skip_eval))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "comma operator in operand of #if");
+ lhs = rhs;
+ break;
+ }
+
+ return lhs;
+}
+
+/* Multiplies two unsigned cpp_num_parts to give a cpp_num. This
+ cannot overflow. */
+static cpp_num
+num_part_mul (cpp_num_part lhs, cpp_num_part rhs)
+{
+ cpp_num result;
+ cpp_num_part middle[2], temp;
+
+ result.low = LOW_PART (lhs) * LOW_PART (rhs);
+ result.high = HIGH_PART (lhs) * HIGH_PART (rhs);
+
+ middle[0] = LOW_PART (lhs) * HIGH_PART (rhs);
+ middle[1] = HIGH_PART (lhs) * LOW_PART (rhs);
+
+ temp = result.low;
+ result.low += LOW_PART (middle[0]) << (PART_PRECISION / 2);
+ if (result.low < temp)
+ result.high++;
+
+ temp = result.low;
+ result.low += LOW_PART (middle[1]) << (PART_PRECISION / 2);
+ if (result.low < temp)
+ result.high++;
+
+ result.high += HIGH_PART (middle[0]);
+ result.high += HIGH_PART (middle[1]);
+ result.unsignedp = true;
+ result.overflow = false;
+
+ return result;
+}
+
+/* Multiply two preprocessing numbers. */
+static cpp_num
+num_mul (cpp_reader *pfile, cpp_num lhs, cpp_num rhs)
+{
+ cpp_num result, temp;
+ bool unsignedp = lhs.unsignedp || rhs.unsignedp;
+ bool overflow, negate = false;
+ size_t precision = CPP_OPTION (pfile, precision);
+
+ /* Prepare for unsigned multiplication. */
+ if (!unsignedp)
+ {
+ if (!num_positive (lhs, precision))
+ negate = !negate, lhs = num_negate (lhs, precision);
+ if (!num_positive (rhs, precision))
+ negate = !negate, rhs = num_negate (rhs, precision);
+ }
+
+ overflow = lhs.high && rhs.high;
+ result = num_part_mul (lhs.low, rhs.low);
+
+ temp = num_part_mul (lhs.high, rhs.low);
+ result.high += temp.low;
+ if (temp.high)
+ overflow = true;
+
+ temp = num_part_mul (lhs.low, rhs.high);
+ result.high += temp.low;
+ if (temp.high)
+ overflow = true;
+
+ temp.low = result.low, temp.high = result.high;
+ result = num_trim (result, precision);
+ if (!num_eq (result, temp))
+ overflow = true;
+
+ if (negate)
+ result = num_negate (result, precision);
+
+ if (unsignedp)
+ result.overflow = false;
+ else
+ result.overflow = overflow || (num_positive (result, precision) ^ !negate
+ && !num_zerop (result));
+ result.unsignedp = unsignedp;
+
+ return result;
+}
+
+/* Divide two preprocessing numbers, LHS and RHS, returning the answer
+ or the remainder depending upon OP. LOCATION is the source location
+ of this operator (for diagnostics). */
+
+static cpp_num
+num_div_op (cpp_reader *pfile, cpp_num lhs, cpp_num rhs, enum cpp_ttype op,
+ source_location location)
+{
+ cpp_num result, sub;
+ cpp_num_part mask;
+ bool unsignedp = lhs.unsignedp || rhs.unsignedp;
+ bool negate = false, lhs_neg = false;
+ size_t i, precision = CPP_OPTION (pfile, precision);
+
+ /* Prepare for unsigned division. */
+ if (!unsignedp)
+ {
+ if (!num_positive (lhs, precision))
+ negate = !negate, lhs_neg = true, lhs = num_negate (lhs, precision);
+ if (!num_positive (rhs, precision))
+ negate = !negate, rhs = num_negate (rhs, precision);
+ }
+
+ /* Find the high bit. */
+ if (rhs.high)
+ {
+ i = precision - 1;
+ mask = (cpp_num_part) 1 << (i - PART_PRECISION);
+ for (; ; i--, mask >>= 1)
+ if (rhs.high & mask)
+ break;
+ }
+ else if (rhs.low)
+ {
+ if (precision > PART_PRECISION)
+ i = precision - PART_PRECISION - 1;
+ else
+ i = precision - 1;
+ mask = (cpp_num_part) 1 << i;
+ for (; ; i--, mask >>= 1)
+ if (rhs.low & mask)
+ break;
+ }
+ else
+ {
+ if (!pfile->state.skip_eval)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
+ "division by zero in #if");
+ return lhs;
+ }
+
+ /* First nonzero bit of RHS is bit I. Do naive division by
+ shifting the RHS fully left, and subtracting from LHS if LHS is
+ at least as big, and then repeating but with one less shift.
+ This is not very efficient, but is easy to understand. */
+
+ rhs.unsignedp = true;
+ lhs.unsignedp = true;
+ i = precision - i - 1;
+ sub = num_lshift (rhs, precision, i);
+
+ result.high = result.low = 0;
+ for (;;)
+ {
+ if (num_greater_eq (lhs, sub, precision))
+ {
+ lhs = num_binary_op (pfile, lhs, sub, CPP_MINUS);
+ if (i >= PART_PRECISION)
+ result.high |= (cpp_num_part) 1 << (i - PART_PRECISION);
+ else
+ result.low |= (cpp_num_part) 1 << i;
+ }
+ if (i-- == 0)
+ break;
+ sub.low = (sub.low >> 1) | (sub.high << (PART_PRECISION - 1));
+ sub.high >>= 1;
+ }
+
+ /* We divide so that the remainder has the sign of the LHS. */
+ if (op == CPP_DIV)
+ {
+ result.unsignedp = unsignedp;
+ result.overflow = false;
+ if (!unsignedp)
+ {
+ if (negate)
+ result = num_negate (result, precision);
+ result.overflow = (num_positive (result, precision) ^ !negate
+ && !num_zerop (result));
+ }
+
+ return result;
+ }
+
+ /* CPP_MOD. */
+ lhs.unsignedp = unsignedp;
+ lhs.overflow = false;
+ if (lhs_neg)
+ lhs = num_negate (lhs, precision);
+
+ return lhs;
+}
diff --git a/gcc-4.9/libcpp/files.c b/gcc-4.9/libcpp/files.c
new file mode 100644
index 000000000..7e8877854
--- /dev/null
+++ b/gcc-4.9/libcpp/files.c
@@ -0,0 +1,1941 @@
+/* Part of CPP library. File handling.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Written by Per Bothner, 1994.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+ Split out of cpplib.c, Zack Weinberg, Oct 1998
+ Reimplemented, Neil Booth, Jul 2003
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+#include "mkdeps.h"
+#include "obstack.h"
+#include "hashtab.h"
+#include "md5.h"
+#include <dirent.h>
+
+/* Variable length record files on VMS will have a stat size that includes
+ record control characters that won't be included in the read size. */
+#ifdef VMS
+# define FAB_C_VAR 2 /* variable length records (see Starlet fabdef.h) */
+# define STAT_SIZE_RELIABLE(ST) ((ST).st_fab_rfm != FAB_C_VAR)
+#else
+# define STAT_SIZE_RELIABLE(ST) true
+#endif
+
+#ifdef __DJGPP__
+#include <io.h>
+ /* For DJGPP redirected input is opened in text mode. */
+# define set_stdin_to_binary_mode() \
+ if (! isatty (0)) setmode (0, O_BINARY)
+#else
+# define set_stdin_to_binary_mode() /* Nothing */
+#endif
+
+/* This structure represents a file searched for by CPP, whether it
+ exists or not. An instance may be pointed to by more than one
+ file_hash_entry; at present no reference count is kept. */
+struct _cpp_file
+{
+ /* Filename as given to #include or command line switch. */
+ const char *name;
+
+ /* The full path used to find the file. */
+ const char *path;
+
+ /* The full path of the pch file. */
+ const char *pchname;
+
+ /* The file's path with the basename stripped. NULL if it hasn't
+ been calculated yet. */
+ const char *dir_name;
+
+ /* Chain through all files. */
+ struct _cpp_file *next_file;
+
+ /* The contents of NAME after calling read_file(). */
+ const uchar *buffer;
+
+ /* Pointer to the real start of BUFFER. read_file() might increment
+ BUFFER; when freeing, this this pointer must be used instead. */
+ const uchar *buffer_start;
+
+ /* The macro, if any, preventing re-inclusion. */
+ const cpp_hashnode *cmacro;
+
+ /* The directory in the search path where FILE was found. Used for
+ #include_next and determining whether a header is a system
+ header. */
+ cpp_dir *dir;
+
+ /* As filled in by stat(2) for the file. */
+ struct stat st;
+
+ /* File descriptor. Invalid if -1, otherwise open. */
+ int fd;
+
+ /* Zero if this file was successfully opened and stat()-ed,
+ otherwise errno obtained from failure. */
+ int err_no;
+
+ /* Number of times the file has been stacked for preprocessing. */
+ unsigned short stack_count;
+
+ /* If opened with #import or contains #pragma once. */
+ bool once_only;
+
+ /* If read() failed before. */
+ bool dont_read;
+
+ /* If this file is the main file. */
+ bool main_file;
+
+ /* If BUFFER above contains the true contents of the file. */
+ bool buffer_valid;
+
+ /* If this file is implicitly preincluded. */
+ bool implicit_preinclude;
+};
+
+/* A singly-linked list for all searches for a given file name, with
+ its head pointed to by a slot in FILE_HASH. The file name is what
+ appeared between the quotes in a #include directive; it can be
+ determined implicitly from the hash table location or explicitly
+ from FILE->name.
+
+ FILE is a structure containing details about the file that was
+ found with that search, or details of how the search failed.
+
+ START_DIR is the starting location of the search in the include
+ chain. The current directories for "" includes are also hashed in
+ the hash table and therefore unique. Files that are looked up
+ without using a search path, such as absolute filenames and file
+ names from the command line share a special starting directory so
+ they don't cause cache hits with normal include-chain lookups.
+
+ If START_DIR is NULL then the entry is for a directory, not a file,
+ and the directory is in DIR. Since the starting point in a file
+ lookup chain is never NULL, this means that simple pointer
+ comparisons against START_DIR can be made to determine cache hits
+ in file lookups.
+
+ If a cache lookup fails because of e.g. an extra "./" in the path,
+ then nothing will break. It is just less efficient as CPP will
+ have to do more work re-preprocessing the file, and/or comparing
+ its contents against earlier once-only files.
+*/
+struct file_hash_entry
+{
+ struct file_hash_entry *next;
+ cpp_dir *start_dir;
+ source_location location;
+ union
+ {
+ _cpp_file *file;
+ cpp_dir *dir;
+ } u;
+};
+
+/* Number of entries to put in a file_hash_entry pool. */
+#define FILE_HASH_POOL_SIZE 127
+
+/* A file hash entry pool. We allocate file_hash_entry object from
+ one of these. */
+struct file_hash_entry_pool
+{
+ /* Number of entries used from this pool. */
+ unsigned int file_hash_entries_used;
+ /* Next pool in the chain; used when freeing. */
+ struct file_hash_entry_pool *next;
+ /* The memory pool. */
+ struct file_hash_entry pool[FILE_HASH_POOL_SIZE];
+};
+
+static bool open_file (_cpp_file *file);
+static bool pch_open_file (cpp_reader *pfile, _cpp_file *file,
+ bool *invalid_pch);
+static bool find_file_in_dir (cpp_reader *pfile, _cpp_file *file,
+ bool *invalid_pch);
+static bool read_file_guts (cpp_reader *pfile, _cpp_file *file);
+static bool read_file (cpp_reader *pfile, _cpp_file *file);
+static bool should_stack_file (cpp_reader *, _cpp_file *file, bool import);
+static struct cpp_dir *search_path_head (cpp_reader *, const char *fname,
+ int angle_brackets, enum include_type);
+static const char *dir_name_of_file (_cpp_file *file);
+static void open_file_failed (cpp_reader *pfile, _cpp_file *file, int);
+static struct file_hash_entry *search_cache (struct file_hash_entry *head,
+ const cpp_dir *start_dir);
+static _cpp_file *make_cpp_file (cpp_reader *, cpp_dir *, const char *fname);
+static void destroy_cpp_file (_cpp_file *);
+static cpp_dir *make_cpp_dir (cpp_reader *, const char *dir_name, int sysp);
+static void allocate_file_hash_entries (cpp_reader *pfile);
+static struct file_hash_entry *new_file_hash_entry (cpp_reader *pfile);
+static int report_missing_guard (void **slot, void *b);
+static hashval_t file_hash_hash (const void *p);
+static int file_hash_eq (const void *p, const void *q);
+static char *read_filename_string (int ch, FILE *f);
+static void read_name_map (cpp_dir *dir);
+static char *remap_filename (cpp_reader *pfile, _cpp_file *file);
+static char *append_file_to_dir (const char *fname, cpp_dir *dir);
+static bool validate_pch (cpp_reader *, _cpp_file *file, const char *pchname);
+static int pchf_save_compare (const void *e1, const void *e2);
+static int pchf_compare (const void *d_p, const void *e_p);
+static bool check_file_against_entries (cpp_reader *, _cpp_file *, bool);
+
+/* Given a filename in FILE->PATH, with the empty string interpreted
+ as <stdin>, open it.
+
+ On success FILE contains an open file descriptor and stat
+ information for the file. On failure the file descriptor is -1 and
+ the appropriate errno is also stored in FILE. Returns TRUE iff
+ successful.
+
+ We used to open files in nonblocking mode, but that caused more
+ problems than it solved. Do take care not to acquire a controlling
+ terminal by mistake (this can't happen on sane systems, but
+ paranoia is a virtue).
+
+ Use the three-argument form of open even though we aren't
+ specifying O_CREAT, to defend against broken system headers.
+
+ O_BINARY tells some runtime libraries (notably DJGPP) not to do
+ newline translation; we can handle DOS line breaks just fine
+ ourselves. */
+static bool
+open_file (_cpp_file *file)
+{
+ if (file->path[0] == '\0')
+ {
+ file->fd = 0;
+ set_stdin_to_binary_mode ();
+ }
+ else
+ file->fd = open (file->path, O_RDONLY | O_NOCTTY | O_BINARY, 0666);
+
+ if (file->fd != -1)
+ {
+ if (fstat (file->fd, &file->st) == 0)
+ {
+ if (!S_ISDIR (file->st.st_mode))
+ {
+ file->err_no = 0;
+ return true;
+ }
+
+ /* Ignore a directory and continue the search. The file we're
+ looking for may be elsewhere in the search path. */
+ errno = ENOENT;
+ }
+
+ close (file->fd);
+ file->fd = -1;
+ }
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ else if (errno == EACCES)
+ {
+ /* On most UNIX systems, open succeeds on a directory. Above,
+ we check if we have opened a directory and if so, set errno
+ to ENOENT. However, on Windows, opening a directory
+ fails with EACCES. We want to return ENOENT in that
+ case too. */
+ if (stat (file->path, &file->st) == 0
+ && S_ISDIR (file->st.st_mode))
+ errno = ENOENT;
+ else
+ /* The call to stat may have reset errno. */
+ errno = EACCES;
+ }
+#endif
+ else if (errno == ENOTDIR)
+ errno = ENOENT;
+
+ file->err_no = errno;
+
+ return false;
+}
+
+/* Temporary PCH intercept of opening a file. Try to find a PCH file
+ based on FILE->name and FILE->dir, and test those found for
+ validity using PFILE->cb.valid_pch. Return true iff a valid file is
+ found. Set *INVALID_PCH if a PCH file is found but wasn't valid. */
+
+static bool
+pch_open_file (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
+{
+ static const char extension[] = ".gch";
+ const char *path = file->path;
+ size_t len, flen;
+ char *pchname;
+ struct stat st;
+ bool valid = false;
+
+ /* No PCH on <stdin> or if not requested. */
+ if (file->name[0] == '\0' || !pfile->cb.valid_pch)
+ return false;
+
+ /* If the file is not included as first include from either the toplevel
+ file or the command-line it is not a valid use of PCH. */
+ if (pfile->all_files
+ && pfile->all_files->next_file
+ && !(pfile->all_files->implicit_preinclude
+ || pfile->all_files->next_file->implicit_preinclude))
+ return false;
+
+ flen = strlen (path);
+ len = flen + sizeof (extension);
+ pchname = XNEWVEC (char, len);
+ memcpy (pchname, path, flen);
+ memcpy (pchname + flen, extension, sizeof (extension));
+
+ if (stat (pchname, &st) == 0)
+ {
+ DIR *pchdir;
+ struct dirent *d;
+ size_t dlen, plen = len;
+
+ if (!S_ISDIR (st.st_mode))
+ valid = validate_pch (pfile, file, pchname);
+ else if ((pchdir = opendir (pchname)) != NULL)
+ {
+ pchname[plen - 1] = '/';
+ while ((d = readdir (pchdir)) != NULL)
+ {
+ dlen = strlen (d->d_name) + 1;
+ if ((strcmp (d->d_name, ".") == 0)
+ || (strcmp (d->d_name, "..") == 0))
+ continue;
+ if (dlen + plen > len)
+ {
+ len += dlen + 64;
+ pchname = XRESIZEVEC (char, pchname, len);
+ }
+ memcpy (pchname + plen, d->d_name, dlen);
+ valid = validate_pch (pfile, file, pchname);
+ if (valid)
+ break;
+ }
+ closedir (pchdir);
+ }
+ if (!valid)
+ *invalid_pch = true;
+ }
+
+ if (valid)
+ file->pchname = pchname;
+ else
+ free (pchname);
+
+ return valid;
+}
+
+/* Canonicalize the path to FILE. Return the canonical form if it is
+ shorter, otherwise return NULL. This function does NOT free the
+ memory pointed by FILE. */
+
+static char *
+maybe_shorter_path (const char * file)
+{
+ char * file2 = lrealpath (file);
+ if (file2 && strlen (file2) < strlen (file))
+ {
+ return file2;
+ }
+ else
+ {
+ free (file2);
+ return NULL;
+ }
+}
+
+/* Try to open the path FILE->name appended to FILE->dir. This is
+ where remap and PCH intercept the file lookup process. Return true
+ if the file was found, whether or not the open was successful.
+ Set *INVALID_PCH to true if a PCH file is found but wasn't valid. */
+
+static bool
+find_file_in_dir (cpp_reader *pfile, _cpp_file *file, bool *invalid_pch)
+{
+ char *path;
+
+ if (CPP_OPTION (pfile, remap) && (path = remap_filename (pfile, file)))
+ ;
+ else
+ if (file->dir->construct)
+ path = file->dir->construct (file->name, file->dir);
+ else
+ path = append_file_to_dir (file->name, file->dir);
+
+ if (path)
+ {
+ hashval_t hv;
+ char *copy;
+ void **pp;
+
+ /* We try to canonicalize system headers. */
+ if (CPP_OPTION (pfile, canonical_system_headers) && file->dir->sysp)
+ {
+ char * canonical_path = maybe_shorter_path (path);
+ if (canonical_path)
+ {
+ /* The canonical path was newly allocated. Let's free the
+ non-canonical one. */
+ free (path);
+ path = canonical_path;
+ }
+ }
+
+ hv = htab_hash_string (path);
+ if (htab_find_with_hash (pfile->nonexistent_file_hash, path, hv) != NULL)
+ {
+ file->err_no = ENOENT;
+ return false;
+ }
+
+ file->path = path;
+ if (pch_open_file (pfile, file, invalid_pch))
+ return true;
+
+ if (open_file (file))
+ return true;
+
+ if (file->err_no != ENOENT)
+ {
+ open_file_failed (pfile, file, 0);
+ return true;
+ }
+
+ /* We copy the path name onto an obstack partly so that we don't
+ leak the memory, but mostly so that we don't fragment the
+ heap. */
+ copy = (char *) obstack_copy0 (&pfile->nonexistent_file_ob, path,
+ strlen (path));
+ free (path);
+ pp = htab_find_slot_with_hash (pfile->nonexistent_file_hash,
+ copy, hv, INSERT);
+ *pp = copy;
+
+ file->path = file->name;
+ }
+ else
+ {
+ file->err_no = ENOENT;
+ file->path = NULL;
+ }
+
+ return false;
+}
+
+/* Return tue iff the missing_header callback found the given HEADER. */
+static bool
+search_path_exhausted (cpp_reader *pfile, const char *header, _cpp_file *file)
+{
+ missing_header_cb func = pfile->cb.missing_header;
+
+ /* When the regular search path doesn't work, try context dependent
+ headers search paths. */
+ if (func
+ && file->dir == NULL)
+ {
+ if ((file->path = func (pfile, header, &file->dir)) != NULL)
+ {
+ if (open_file (file))
+ return true;
+ free ((void *)file->path);
+ }
+ file->path = file->name;
+ }
+
+ return false;
+}
+
+bool
+_cpp_find_failed (_cpp_file *file)
+{
+ return file->err_no != 0;
+}
+
+/* Given a filename FNAME search for such a file in the include path
+ starting from START_DIR. If FNAME is the empty string it is
+ interpreted as STDIN if START_DIR is PFILE->no_search_path.
+
+ If the file is not found in the file cache fall back to the O/S and
+ add the result to our cache.
+
+ If the file was not found in the filesystem, or there was an error
+ opening it, then ERR_NO is nonzero and FD is -1. If the file was
+ found, then ERR_NO is zero and FD could be -1 or an open file
+ descriptor. FD can be -1 if the file was found in the cache and
+ had previously been closed. To open it again pass the return value
+ to open_file().
+
+ If IMPLICIT_PREINCLUDE then it is OK for the file to be missing.
+ If present, it is OK for a precompiled header to be included after
+ it.
+*/
+_cpp_file *
+_cpp_find_file (cpp_reader *pfile, const char *fname, cpp_dir *start_dir,
+ bool fake, int angle_brackets, bool implicit_preinclude)
+{
+ struct file_hash_entry *entry;
+ void **hash_slot;
+ _cpp_file *file;
+ bool invalid_pch = false;
+ bool saw_bracket_include = false;
+ bool saw_quote_include = false;
+ struct cpp_dir *found_in_cache = NULL;
+
+ /* Ensure we get no confusion between cached files and directories. */
+ if (start_dir == NULL)
+ cpp_error (pfile, CPP_DL_ICE, "NULL directory in find_file");
+
+ hash_slot
+ = htab_find_slot_with_hash (pfile->file_hash, fname,
+ htab_hash_string (fname), INSERT);
+
+ /* First check the cache before we resort to memory allocation. */
+ entry = search_cache ((struct file_hash_entry *) *hash_slot, start_dir);
+ if (entry)
+ return entry->u.file;
+
+ file = make_cpp_file (pfile, start_dir, fname);
+ file->implicit_preinclude = implicit_preinclude;
+
+ /* Try each path in the include chain. */
+ for (; !fake ;)
+ {
+ if (find_file_in_dir (pfile, file, &invalid_pch))
+ break;
+
+ file->dir = file->dir->next;
+ if (file->dir == NULL)
+ {
+ if (search_path_exhausted (pfile, fname, file))
+ {
+ /* Although this file must not go in the cache, because
+ the file found might depend on things (like the current file)
+ that aren't represented in the cache, it still has to go in
+ the list of all files so that #import works. */
+ file->next_file = pfile->all_files;
+ pfile->all_files = file;
+ if (*hash_slot == NULL)
+ {
+ /* If *hash_slot is NULL, the above htab_find_slot_with_hash
+ call just created the slot, but we aren't going to store
+ there anything, so need to remove the newly created entry.
+ htab_clear_slot requires that it is non-NULL, so store
+ there some non-NULL pointer, htab_clear_slot will
+ overwrite it immediately. */
+ *hash_slot = file;
+ htab_clear_slot (pfile->file_hash, hash_slot);
+ }
+ return file;
+ }
+
+ if (invalid_pch)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "one or more PCH files were found, but they were invalid");
+ if (!cpp_get_options (pfile)->warn_invalid_pch)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "use -Winvalid-pch for more information");
+ }
+ if (implicit_preinclude)
+ {
+ free ((char *) file->name);
+ free (file);
+ if (*hash_slot == NULL)
+ {
+ /* See comment on the above htab_clear_slot call. */
+ *hash_slot = file;
+ htab_clear_slot (pfile->file_hash, hash_slot);
+ }
+ return NULL;
+ }
+ else
+ open_file_failed (pfile, file, angle_brackets);
+ break;
+ }
+
+ /* Only check the cache for the starting location (done above)
+ and the quote and bracket chain heads because there are no
+ other possible starting points for searches. */
+ if (file->dir == pfile->bracket_include)
+ saw_bracket_include = true;
+ else if (file->dir == pfile->quote_include)
+ saw_quote_include = true;
+ else
+ continue;
+
+ entry = search_cache ((struct file_hash_entry *) *hash_slot, file->dir);
+ if (entry)
+ {
+ found_in_cache = file->dir;
+ break;
+ }
+ }
+
+ if (entry)
+ {
+ /* Cache for START_DIR too, sharing the _cpp_file structure. */
+ free ((char *) file->name);
+ free (file);
+ file = entry->u.file;
+ }
+ else
+ {
+ /* This is a new file; put it in the list. */
+ file->next_file = pfile->all_files;
+ pfile->all_files = file;
+ }
+
+ /* Store this new result in the hash table. */
+ entry = new_file_hash_entry (pfile);
+ entry->next = (struct file_hash_entry *) *hash_slot;
+ entry->start_dir = start_dir;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = (void *) entry;
+
+ /* If we passed the quote or bracket chain heads, cache them also.
+ This speeds up processing if there are lots of -I options. */
+ if (saw_bracket_include
+ && pfile->bracket_include != start_dir
+ && found_in_cache != pfile->bracket_include)
+ {
+ entry = new_file_hash_entry (pfile);
+ entry->next = (struct file_hash_entry *) *hash_slot;
+ entry->start_dir = pfile->bracket_include;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = (void *) entry;
+ }
+ if (saw_quote_include
+ && pfile->quote_include != start_dir
+ && found_in_cache != pfile->quote_include)
+ {
+ entry = new_file_hash_entry (pfile);
+ entry->next = (struct file_hash_entry *) *hash_slot;
+ entry->start_dir = pfile->quote_include;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.file = file;
+ *hash_slot = (void *) entry;
+ }
+
+ return file;
+}
+
+/* Read a file into FILE->buffer, returning true on success.
+
+ If FILE->fd is something weird, like a block device, we don't want
+ to read it at all. Don't even try to figure out what something is,
+ except for plain files and block devices, since there is no
+ reliable portable way of doing this.
+
+ FIXME: Flush file cache and try again if we run out of memory. */
+static bool
+read_file_guts (cpp_reader *pfile, _cpp_file *file)
+{
+ ssize_t size, total, count;
+ uchar *buf;
+ bool regular;
+
+ if (S_ISBLK (file->st.st_mode))
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "%s is a block device", file->path);
+ return false;
+ }
+
+ regular = S_ISREG (file->st.st_mode) != 0;
+ if (regular)
+ {
+ /* off_t might have a wider range than ssize_t - in other words,
+ the max size of a file might be bigger than the address
+ space. We can't handle a file that large. (Anyone with
+ a single source file bigger than 2GB needs to rethink
+ their coding style.) Some systems (e.g. AIX 4.1) define
+ SSIZE_MAX to be much smaller than the actual range of the
+ type. Use INTTYPE_MAXIMUM unconditionally to ensure this
+ does not bite us. */
+ if (file->st.st_size > INTTYPE_MAXIMUM (ssize_t))
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "%s is too large", file->path);
+ return false;
+ }
+
+ size = file->st.st_size;
+ }
+ else
+ /* 8 kilobytes is a sensible starting size. It ought to be bigger
+ than the kernel pipe buffer, and it's definitely bigger than
+ the majority of C source files. */
+ size = 8 * 1024;
+
+ /* The + 16 here is space for the final '\n' and 15 bytes of padding,
+ used to quiet warnings from valgrind or Address Sanitizer, when the
+ optimized lexer accesses aligned 16-byte memory chunks, including
+ the bytes after the malloced, area, and stops lexing on '\n'. */
+ buf = XNEWVEC (uchar, size + 16);
+ total = 0;
+ while ((count = read (file->fd, buf + total, size - total)) > 0)
+ {
+ total += count;
+
+ if (total == size)
+ {
+ if (regular)
+ break;
+ size *= 2;
+ buf = XRESIZEVEC (uchar, buf, size + 16);
+ }
+ }
+
+ if (count < 0)
+ {
+ cpp_errno (pfile, CPP_DL_ERROR, file->path);
+ free (buf);
+ return false;
+ }
+
+ if (regular && total != size && STAT_SIZE_RELIABLE (file->st))
+ cpp_error (pfile, CPP_DL_WARNING,
+ "%s is shorter than expected", file->path);
+
+ file->buffer = _cpp_convert_input (pfile,
+ CPP_OPTION (pfile, input_charset),
+ buf, size + 16, total,
+ &file->buffer_start,
+ &file->st.st_size);
+ file->buffer_valid = true;
+
+ return true;
+}
+
+/* Convenience wrapper around read_file_guts that opens the file if
+ necessary and closes the file descriptor after reading. FILE must
+ have been passed through find_file() at some stage. */
+static bool
+read_file (cpp_reader *pfile, _cpp_file *file)
+{
+ /* If we already have its contents in memory, succeed immediately. */
+ if (file->buffer_valid)
+ return true;
+
+ /* If an earlier read failed for some reason don't try again. */
+ if (file->dont_read || file->err_no)
+ return false;
+
+ if (file->fd == -1 && !open_file (file))
+ {
+ open_file_failed (pfile, file, 0);
+ return false;
+ }
+
+ file->dont_read = !read_file_guts (pfile, file);
+ close (file->fd);
+ file->fd = -1;
+
+ return !file->dont_read;
+}
+
+/* Returns TRUE if FILE's contents have been successfully placed in
+ FILE->buffer and the file should be stacked, otherwise false. */
+static bool
+should_stack_file (cpp_reader *pfile, _cpp_file *file, bool import)
+{
+ _cpp_file *f;
+
+ /* Skip once-only files. */
+ if (file->once_only)
+ return false;
+
+ /* We must mark the file once-only if #import now, before header
+ guard checks. Otherwise, undefining the header guard might
+ cause the file to be re-stacked. */
+ if (import)
+ {
+ _cpp_mark_file_once_only (pfile, file);
+
+ /* Don't stack files that have been stacked before. */
+ if (file->stack_count)
+ return false;
+ }
+
+ /* Skip if the file had a header guard and the macro is defined.
+ PCH relies on this appearing before the PCH handler below. */
+ if (file->cmacro && file->cmacro->type == NT_MACRO)
+ return false;
+
+ /* Handle PCH files immediately; don't stack them. */
+ if (file->pchname)
+ {
+ pfile->cb.read_pch (pfile, file->pchname, file->fd, file->path);
+ file->fd = -1;
+ free ((void *) file->pchname);
+ file->pchname = NULL;
+ return false;
+ }
+
+ if (!read_file (pfile, file))
+ return false;
+
+ /* Check the file against the PCH file. This is done before
+ checking against files we've already seen, since it may save on
+ I/O. */
+ if (check_file_against_entries (pfile, file, import))
+ {
+ /* If this isn't a #import, but yet we can't include the file,
+ that means that it was #import-ed in the PCH file,
+ so we can never include it again. */
+ if (! import)
+ _cpp_mark_file_once_only (pfile, file);
+ return false;
+ }
+
+ /* Now we've read the file's contents, we can stack it if there
+ are no once-only files. */
+ if (!pfile->seen_once_only)
+ return true;
+
+ /* We may have read the file under a different name. Look
+ for likely candidates and compare file contents to be sure. */
+ for (f = pfile->all_files; f; f = f->next_file)
+ {
+ if (f == file)
+ continue;
+
+ if ((import || f->once_only)
+ && f->err_no == 0
+ && f->st.st_mtime == file->st.st_mtime
+ && f->st.st_size == file->st.st_size)
+ {
+ _cpp_file *ref_file;
+ bool same_file_p = false;
+
+ if (f->buffer && !f->buffer_valid)
+ {
+ /* We already have a buffer but it is not valid, because
+ the file is still stacked. Make a new one. */
+ ref_file = make_cpp_file (pfile, f->dir, f->name);
+ ref_file->path = f->path;
+ }
+ else
+ /* The file is not stacked anymore. We can reuse it. */
+ ref_file = f;
+
+ same_file_p = read_file (pfile, ref_file)
+ /* Size might have changed in read_file(). */
+ && ref_file->st.st_size == file->st.st_size
+ && !memcmp (ref_file->buffer,
+ file->buffer,
+ file->st.st_size);
+
+ if (f->buffer && !f->buffer_valid)
+ {
+ ref_file->path = 0;
+ destroy_cpp_file (ref_file);
+ }
+
+ if (same_file_p)
+ break;
+ }
+ }
+
+ return f == NULL;
+}
+
+/* Place the file referenced by FILE into a new buffer on the buffer
+ stack if possible. IMPORT is true if this stacking attempt is
+ because of a #import directive. Returns true if a buffer is
+ stacked. */
+bool
+_cpp_stack_file (cpp_reader *pfile, _cpp_file *file, bool import)
+{
+ cpp_buffer *buffer;
+ int sysp;
+
+ if (!should_stack_file (pfile, file, import))
+ return false;
+
+ if (pfile->buffer == NULL || file->dir == NULL)
+ sysp = 0;
+ else
+ sysp = MAX (pfile->buffer->sysp, file->dir->sysp);
+
+ /* Add the file to the dependencies on its first inclusion. */
+ if (CPP_OPTION (pfile, deps.style) > !!sysp && !file->stack_count)
+ {
+ if (!file->main_file || !CPP_OPTION (pfile, deps.ignore_main_file))
+ deps_add_dep (pfile->deps, file->path);
+ }
+
+ /* Clear buffer_valid since _cpp_clean_line messes it up. */
+ file->buffer_valid = false;
+ file->stack_count++;
+
+ /* Stack the buffer. */
+ buffer = cpp_push_buffer (pfile, file->buffer, file->st.st_size,
+ CPP_OPTION (pfile, preprocessed)
+ && !CPP_OPTION (pfile, directives_only));
+ buffer->file = file;
+ buffer->sysp = sysp;
+ buffer->to_free = file->buffer_start;
+
+ /* Initialize controlling macro state. */
+ pfile->mi_valid = true;
+ pfile->mi_cmacro = 0;
+
+ /* Generate the call back. */
+ _cpp_do_file_change (pfile, LC_ENTER, file->path, 1, sysp);
+
+ return true;
+}
+
+/* Mark FILE to be included once only. */
+void
+_cpp_mark_file_once_only (cpp_reader *pfile, _cpp_file *file)
+{
+ pfile->seen_once_only = true;
+ file->once_only = true;
+}
+
+/* Return the directory from which searching for FNAME should start,
+ considering the directive TYPE and ANGLE_BRACKETS. If there is
+ nothing left in the path, returns NULL. */
+static struct cpp_dir *
+search_path_head (cpp_reader *pfile, const char *fname, int angle_brackets,
+ enum include_type type)
+{
+ cpp_dir *dir;
+ _cpp_file *file;
+
+ if (IS_ABSOLUTE_PATH (fname))
+ return &pfile->no_search_path;
+
+ /* pfile->buffer is NULL when processing an -include command-line flag. */
+ file = pfile->buffer == NULL ? pfile->main_file : pfile->buffer->file;
+
+ /* For #include_next, skip in the search path past the dir in which
+ the current file was found, but if it was found via an absolute
+ path use the normal search logic. */
+ if (type == IT_INCLUDE_NEXT && file->dir
+ && file->dir != &pfile->no_search_path)
+ dir = file->dir->next;
+ else if (angle_brackets)
+ dir = pfile->bracket_include;
+ else if (type == IT_CMDLINE)
+ /* -include and -imacros use the #include "" chain with the
+ preprocessor's cwd prepended. */
+ return make_cpp_dir (pfile, "./", false);
+ else if (pfile->quote_ignores_source_dir)
+ dir = pfile->quote_include;
+ else
+ return make_cpp_dir (pfile, dir_name_of_file (file),
+ pfile->buffer ? pfile->buffer->sysp : 0);
+
+ if (dir == NULL)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "no include path in which to search for %s", fname);
+
+ return dir;
+}
+
+/* Strip the basename from the file's path. It ends with a slash if
+ of nonzero length. Note that this procedure also works for
+ <stdin>, which is represented by the empty string. */
+static const char *
+dir_name_of_file (_cpp_file *file)
+{
+ if (!file->dir_name)
+ {
+ size_t len = lbasename (file->path) - file->path;
+ char *dir_name = XNEWVEC (char, len + 1);
+
+ memcpy (dir_name, file->path, len);
+ dir_name[len] = '\0';
+ file->dir_name = dir_name;
+ }
+
+ return file->dir_name;
+}
+
+/* Handles #include-family directives (distinguished by TYPE),
+ including HEADER, and the command line -imacros and -include.
+ Returns true if a buffer was stacked. */
+bool
+_cpp_stack_include (cpp_reader *pfile, const char *fname, int angle_brackets,
+ enum include_type type)
+{
+ struct cpp_dir *dir;
+ _cpp_file *file;
+ bool stacked;
+
+ dir = search_path_head (pfile, fname, angle_brackets, type);
+ if (!dir)
+ return false;
+
+ file = _cpp_find_file (pfile, fname, dir, false, angle_brackets,
+ type == IT_DEFAULT);
+ if (type == IT_DEFAULT && file == NULL)
+ return false;
+
+ /* Compensate for the increment in linemap_add that occurs if
+ _cpp_stack_file actually stacks the file. In the case of a
+ normal #include, we're currently at the start of the line
+ *following* the #include. A separate source_location for this
+ location makes no sense (until we do the LC_LEAVE), and
+ complicates LAST_SOURCE_LINE_LOCATION. This does not apply if we
+ found a PCH file (in which case linemap_add is not called) or we
+ were included from the command-line. */
+ if (file->pchname == NULL && file->err_no == 0
+ && type != IT_CMDLINE && type != IT_DEFAULT)
+ pfile->line_table->highest_location--;
+
+ stacked = _cpp_stack_file (pfile, file, type == IT_IMPORT);
+
+ if (!stacked)
+ /* _cpp_stack_file didn't stack the file, so let's rollback the
+ compensation dance we performed above. */
+ pfile->line_table->highest_location++;
+
+ return stacked;
+}
+
+/* Could not open FILE. The complication is dependency output. */
+static void
+open_file_failed (cpp_reader *pfile, _cpp_file *file, int angle_brackets)
+{
+ int sysp = pfile->line_table->highest_line > 1 && pfile->buffer ? pfile->buffer->sysp : 0;
+ bool print_dep = CPP_OPTION (pfile, deps.style) > (angle_brackets || !!sysp);
+
+ errno = file->err_no;
+ if (print_dep && CPP_OPTION (pfile, deps.missing_files) && errno == ENOENT)
+ {
+ deps_add_dep (pfile->deps, file->name);
+ /* If the preprocessor output (other than dependency information) is
+ being used, we must also flag an error. */
+ if (CPP_OPTION (pfile, deps.need_preprocessor_output))
+ cpp_errno (pfile, CPP_DL_FATAL, file->path);
+ }
+ else
+ {
+ /* If we are not outputting dependencies, or if we are and dependencies
+ were requested for this file, or if preprocessor output is needed
+ in addition to dependency information, this is an error.
+
+ Otherwise (outputting dependencies but not for this file, and not
+ using the preprocessor output), we can still produce correct output
+ so it's only a warning. */
+ if (CPP_OPTION (pfile, deps.style) == DEPS_NONE
+ || print_dep
+ || CPP_OPTION (pfile, deps.need_preprocessor_output))
+ cpp_errno (pfile, CPP_DL_FATAL, file->path);
+ else
+ cpp_errno (pfile, CPP_DL_WARNING, file->path);
+ }
+}
+
+/* Search in the chain beginning at HEAD for a file whose search path
+ started at START_DIR != NULL. */
+static struct file_hash_entry *
+search_cache (struct file_hash_entry *head, const cpp_dir *start_dir)
+{
+ while (head && head->start_dir != start_dir)
+ head = head->next;
+
+ return head;
+}
+
+/* Allocate a new _cpp_file structure. */
+static _cpp_file *
+make_cpp_file (cpp_reader *pfile, cpp_dir *dir, const char *fname)
+{
+ _cpp_file *file;
+
+ file = XCNEW (_cpp_file);
+ file->main_file = !pfile->buffer;
+ file->fd = -1;
+ file->dir = dir;
+ file->name = xstrdup (fname);
+
+ return file;
+}
+
+/* Release a _cpp_file structure. */
+static void
+destroy_cpp_file (_cpp_file *file)
+{
+ free ((void *) file->buffer_start);
+ free ((void *) file->name);
+ free (file);
+}
+
+/* Release all the files allocated by this reader. */
+static void
+destroy_all_cpp_files (cpp_reader *pfile)
+{
+ _cpp_file *iter = pfile->all_files;
+ while (iter)
+ {
+ _cpp_file *next = iter->next_file;
+ destroy_cpp_file (iter);
+ iter = next;
+ }
+}
+
+/* A hash of directory names. The directory names are the path names
+ of files which contain a #include "", the included file name is
+ appended to this directories.
+
+ To avoid duplicate entries we follow the convention that all
+ non-empty directory names should end in a '/'. DIR_NAME must be
+ stored in permanently allocated memory. */
+static cpp_dir *
+make_cpp_dir (cpp_reader *pfile, const char *dir_name, int sysp)
+{
+ struct file_hash_entry *entry, **hash_slot;
+ cpp_dir *dir;
+
+ hash_slot = (struct file_hash_entry **)
+ htab_find_slot_with_hash (pfile->dir_hash, dir_name,
+ htab_hash_string (dir_name),
+ INSERT);
+
+ /* Have we already hashed this directory? */
+ for (entry = *hash_slot; entry; entry = entry->next)
+ if (entry->start_dir == NULL)
+ return entry->u.dir;
+
+ dir = XCNEW (cpp_dir);
+ dir->next = pfile->quote_include;
+ dir->name = (char *) dir_name;
+ dir->len = strlen (dir_name);
+ dir->sysp = sysp;
+ dir->construct = 0;
+
+ /* Store this new result in the hash table. */
+ entry = new_file_hash_entry (pfile);
+ entry->next = *hash_slot;
+ entry->start_dir = NULL;
+ entry->location = pfile->line_table->highest_location;
+ entry->u.dir = dir;
+ *hash_slot = entry;
+
+ return dir;
+}
+
+/* Create a new block of memory for file hash entries. */
+static void
+allocate_file_hash_entries (cpp_reader *pfile)
+{
+ struct file_hash_entry_pool *pool = XNEW (struct file_hash_entry_pool);
+ pool->file_hash_entries_used = 0;
+ pool->next = pfile->file_hash_entries;
+ pfile->file_hash_entries = pool;
+}
+
+/* Return a new file hash entry. */
+static struct file_hash_entry *
+new_file_hash_entry (cpp_reader *pfile)
+{
+ unsigned int idx;
+ if (pfile->file_hash_entries->file_hash_entries_used == FILE_HASH_POOL_SIZE)
+ allocate_file_hash_entries (pfile);
+
+ idx = pfile->file_hash_entries->file_hash_entries_used++;
+ return &pfile->file_hash_entries->pool[idx];
+}
+
+/* Free the file hash entry pools. */
+static void
+free_file_hash_entries (cpp_reader *pfile)
+{
+ struct file_hash_entry_pool *iter = pfile->file_hash_entries;
+ while (iter)
+ {
+ struct file_hash_entry_pool *next = iter->next;
+ free (iter);
+ iter = next;
+ }
+}
+
+/* Returns TRUE if a file FNAME has ever been successfully opened.
+ This routine is not intended to correctly handle filenames aliased
+ by links or redundant . or .. traversals etc. */
+bool
+cpp_included (cpp_reader *pfile, const char *fname)
+{
+ struct file_hash_entry *entry;
+
+ entry = (struct file_hash_entry *)
+ htab_find_with_hash (pfile->file_hash, fname, htab_hash_string (fname));
+
+ while (entry && (entry->start_dir == NULL || entry->u.file->err_no))
+ entry = entry->next;
+
+ return entry != NULL;
+}
+
+/* Returns TRUE if a file FNAME has ever been successfully opened
+ before LOCATION. This routine is not intended to correctly handle
+ filenames aliased by links or redundant . or .. traversals etc. */
+bool
+cpp_included_before (cpp_reader *pfile, const char *fname,
+ source_location location)
+{
+ struct file_hash_entry *entry;
+
+ entry = (struct file_hash_entry *)
+ htab_find_with_hash (pfile->file_hash, fname, htab_hash_string (fname));
+
+ while (entry && (entry->start_dir == NULL || entry->u.file->err_no
+ || entry->location > location))
+ entry = entry->next;
+
+ return entry != NULL;
+}
+
+/* Calculate the hash value of a file hash entry P. */
+
+static hashval_t
+file_hash_hash (const void *p)
+{
+ struct file_hash_entry *entry = (struct file_hash_entry *) p;
+ const char *hname;
+ if (entry->start_dir)
+ hname = entry->u.file->name;
+ else
+ hname = entry->u.dir->name;
+
+ return htab_hash_string (hname);
+}
+
+/* Compare a string Q against a file hash entry P. */
+static int
+file_hash_eq (const void *p, const void *q)
+{
+ struct file_hash_entry *entry = (struct file_hash_entry *) p;
+ const char *fname = (const char *) q;
+ const char *hname;
+
+ if (entry->start_dir)
+ hname = entry->u.file->name;
+ else
+ hname = entry->u.dir->name;
+
+ return filename_cmp (hname, fname) == 0;
+}
+
+/* Compare entries in the nonexistent file hash table. These are just
+ strings. */
+static int
+nonexistent_file_hash_eq (const void *p, const void *q)
+{
+ return filename_cmp ((const char *) p, (const char *) q) == 0;
+}
+
+/* Initialize everything in this source file. */
+void
+_cpp_init_files (cpp_reader *pfile)
+{
+ pfile->file_hash = htab_create_alloc (127, file_hash_hash, file_hash_eq,
+ NULL, xcalloc, free);
+ pfile->dir_hash = htab_create_alloc (127, file_hash_hash, file_hash_eq,
+ NULL, xcalloc, free);
+ allocate_file_hash_entries (pfile);
+ pfile->nonexistent_file_hash = htab_create_alloc (127, htab_hash_string,
+ nonexistent_file_hash_eq,
+ NULL, xcalloc, free);
+ _obstack_begin (&pfile->nonexistent_file_ob, 0, 0,
+ (void *(*) (long)) xmalloc,
+ (void (*) (void *)) free);
+}
+
+/* Finalize everything in this source file. */
+void
+_cpp_cleanup_files (cpp_reader *pfile)
+{
+ htab_delete (pfile->file_hash);
+ htab_delete (pfile->dir_hash);
+ htab_delete (pfile->nonexistent_file_hash);
+ obstack_free (&pfile->nonexistent_file_ob, 0);
+ free_file_hash_entries (pfile);
+ destroy_all_cpp_files (pfile);
+}
+
+/* Make the parser forget about files it has seen. This can be useful
+ for resetting the parser to start another run. */
+void
+cpp_clear_file_cache (cpp_reader *pfile)
+{
+ _cpp_cleanup_files (pfile);
+ pfile->file_hash_entries = NULL;
+ pfile->all_files = NULL;
+ _cpp_init_files (pfile);
+}
+
+/* Enter a file name in the hash for the sake of cpp_included. */
+void
+_cpp_fake_include (cpp_reader *pfile, const char *fname)
+{
+ _cpp_find_file (pfile, fname, pfile->buffer->file->dir, true, 0, false);
+}
+
+/* Not everyone who wants to set system-header-ness on a buffer can
+ see the details of a buffer. This is an exported interface because
+ fix-header needs it. */
+void
+cpp_make_system_header (cpp_reader *pfile, int syshdr, int externc)
+{
+ int flags = 0;
+ const struct line_maps *line_table = pfile->line_table;
+ const struct line_map *map = LINEMAPS_LAST_ORDINARY_MAP (line_table);
+ /* 1 = system header, 2 = system header to be treated as C. */
+ if (syshdr)
+ flags = 1 + (externc != 0);
+ pfile->buffer->sysp = flags;
+ _cpp_do_file_change (pfile, LC_RENAME, ORDINARY_MAP_FILE_NAME (map),
+ SOURCE_LINE (map, pfile->line_table->highest_line), flags);
+}
+
+/* Allow the client to change the current file. Used by the front end
+ to achieve pseudo-file names like <built-in>.
+ If REASON is LC_LEAVE, then NEW_NAME must be NULL. */
+void
+cpp_change_file (cpp_reader *pfile, enum lc_reason reason,
+ const char *new_name)
+{
+ _cpp_do_file_change (pfile, reason, new_name, 1, 0);
+}
+
+struct report_missing_guard_data
+{
+ const char **paths;
+ size_t count;
+};
+
+/* Callback function for htab_traverse. */
+static int
+report_missing_guard (void **slot, void *d)
+{
+ struct file_hash_entry *entry = (struct file_hash_entry *) *slot;
+ struct report_missing_guard_data *data
+ = (struct report_missing_guard_data *) d;
+
+ /* Skip directories. */
+ if (entry->start_dir != NULL)
+ {
+ _cpp_file *file = entry->u.file;
+
+ /* We don't want MI guard advice for the main file. */
+ if (!file->once_only && file->cmacro == NULL
+ && file->stack_count == 1 && !file->main_file)
+ {
+ if (data->paths == NULL)
+ {
+ data->paths = XCNEWVEC (const char *, data->count);
+ data->count = 0;
+ }
+
+ data->paths[data->count++] = file->path;
+ }
+ }
+
+ /* Keep traversing the hash table. */
+ return 1;
+}
+
+/* Comparison function for qsort. */
+static int
+report_missing_guard_cmp (const void *p1, const void *p2)
+{
+ return strcmp (*(const char *const *) p1, *(const char *const *) p2);
+}
+
+/* Report on all files that might benefit from a multiple include guard.
+ Triggered by -H. */
+void
+_cpp_report_missing_guards (cpp_reader *pfile)
+{
+ struct report_missing_guard_data data;
+
+ data.paths = NULL;
+ data.count = htab_elements (pfile->file_hash);
+ htab_traverse (pfile->file_hash, report_missing_guard, &data);
+
+ if (data.paths != NULL)
+ {
+ size_t i;
+
+ /* Sort the paths to avoid outputting them in hash table
+ order. */
+ qsort (data.paths, data.count, sizeof (const char *),
+ report_missing_guard_cmp);
+ fputs (_("Multiple include guards may be useful for:\n"),
+ stderr);
+ for (i = 0; i < data.count; i++)
+ {
+ fputs (data.paths[i], stderr);
+ putc ('\n', stderr);
+ }
+ free (data.paths);
+ }
+}
+
+/* Locate HEADER, and determine whether it is newer than the current
+ file. If it cannot be located or dated, return -1, if it is
+ newer, return 1, otherwise 0. */
+int
+_cpp_compare_file_date (cpp_reader *pfile, const char *fname,
+ int angle_brackets)
+{
+ _cpp_file *file;
+ struct cpp_dir *dir;
+
+ dir = search_path_head (pfile, fname, angle_brackets, IT_INCLUDE);
+ if (!dir)
+ return -1;
+
+ file = _cpp_find_file (pfile, fname, dir, false, angle_brackets, false);
+ if (file->err_no)
+ return -1;
+
+ if (file->fd != -1)
+ {
+ close (file->fd);
+ file->fd = -1;
+ }
+
+ return file->st.st_mtime > pfile->buffer->file->st.st_mtime;
+}
+
+/* Pushes the given file onto the buffer stack. Returns nonzero if
+ successful. */
+bool
+cpp_push_include (cpp_reader *pfile, const char *fname)
+{
+ return _cpp_stack_include (pfile, fname, false, IT_CMDLINE);
+}
+
+/* Pushes the given file, implicitly included at the start of a
+ compilation, onto the buffer stack but without any errors if the
+ file is not found. Returns nonzero if successful. */
+bool
+cpp_push_default_include (cpp_reader *pfile, const char *fname)
+{
+ return _cpp_stack_include (pfile, fname, true, IT_DEFAULT);
+}
+
+/* Do appropriate cleanup when a file INC's buffer is popped off the
+ input stack. */
+void
+_cpp_pop_file_buffer (cpp_reader *pfile, _cpp_file *file,
+ const unsigned char *to_free)
+{
+ /* Record the inclusion-preventing macro, which could be NULL
+ meaning no controlling macro. */
+ if (pfile->mi_valid && file->cmacro == NULL)
+ file->cmacro = pfile->mi_cmacro;
+
+ /* Invalidate control macros in the #including file. */
+ pfile->mi_valid = false;
+
+ if (to_free)
+ {
+ if (to_free == file->buffer_start)
+ {
+ file->buffer_start = NULL;
+ file->buffer = NULL;
+ file->buffer_valid = false;
+ }
+ free ((void *) to_free);
+ }
+}
+
+/* Return the file name associated with FILE. */
+const char *
+_cpp_get_file_name (_cpp_file *file)
+{
+ return file->name;
+}
+
+/* Inteface to file statistics record in _cpp_file structure. */
+struct stat *
+_cpp_get_file_stat (_cpp_file *file)
+{
+ return &file->st;
+}
+
+/* Set the include chain for "" to QUOTE, for <> to BRACKET. If
+ QUOTE_IGNORES_SOURCE_DIR, then "" includes do not look in the
+ directory of the including file.
+
+ If BRACKET does not lie in the QUOTE chain, it is set to QUOTE. */
+void
+cpp_set_include_chains (cpp_reader *pfile, cpp_dir *quote, cpp_dir *bracket,
+ int quote_ignores_source_dir)
+{
+ pfile->quote_include = quote;
+ pfile->bracket_include = quote;
+ pfile->quote_ignores_source_dir = quote_ignores_source_dir;
+
+ for (; quote; quote = quote->next)
+ {
+ quote->name_map = NULL;
+ quote->len = strlen (quote->name);
+ if (quote == bracket)
+ pfile->bracket_include = bracket;
+ }
+}
+
+/* Append the file name to the directory to create the path, but don't
+ turn / into // or // into ///; // may be a namespace escape. */
+static char *
+append_file_to_dir (const char *fname, cpp_dir *dir)
+{
+ size_t dlen, flen;
+ char *path;
+
+ dlen = dir->len;
+ flen = strlen (fname);
+ path = XNEWVEC (char, dlen + 1 + flen + 1);
+ memcpy (path, dir->name, dlen);
+ if (dlen && !IS_DIR_SEPARATOR (path[dlen - 1]))
+ path[dlen++] = '/';
+ memcpy (&path[dlen], fname, flen + 1);
+
+ return path;
+}
+
+/* Read a space delimited string of unlimited length from a stdio
+ file F. */
+static char *
+read_filename_string (int ch, FILE *f)
+{
+ char *alloc, *set;
+ int len;
+
+ len = 20;
+ set = alloc = XNEWVEC (char, len + 1);
+ if (! is_space (ch))
+ {
+ *set++ = ch;
+ while ((ch = getc (f)) != EOF && ! is_space (ch))
+ {
+ if (set - alloc == len)
+ {
+ len *= 2;
+ alloc = XRESIZEVEC (char, alloc, len + 1);
+ set = alloc + len / 2;
+ }
+ *set++ = ch;
+ }
+ }
+ *set = '\0';
+ ungetc (ch, f);
+ return alloc;
+}
+
+/* Read the file name map file for DIR. */
+static void
+read_name_map (cpp_dir *dir)
+{
+ static const char FILE_NAME_MAP_FILE[] = "header.gcc";
+ char *name;
+ FILE *f;
+ size_t len, count = 0, room = 9;
+
+ len = dir->len;
+ name = (char *) alloca (len + sizeof (FILE_NAME_MAP_FILE) + 1);
+ memcpy (name, dir->name, len);
+ if (len && !IS_DIR_SEPARATOR (name[len - 1]))
+ name[len++] = '/';
+ strcpy (name + len, FILE_NAME_MAP_FILE);
+ f = fopen (name, "r");
+
+ dir->name_map = XNEWVEC (const char *, room);
+
+ /* Silently return NULL if we cannot open. */
+ if (f)
+ {
+ int ch;
+
+ while ((ch = getc (f)) != EOF)
+ {
+ char *to;
+
+ if (is_space (ch))
+ continue;
+
+ if (count + 2 > room)
+ {
+ room += 8;
+ dir->name_map = XRESIZEVEC (const char *, dir->name_map, room);
+ }
+
+ dir->name_map[count] = read_filename_string (ch, f);
+ while ((ch = getc (f)) != EOF && is_hspace (ch))
+ ;
+
+ to = read_filename_string (ch, f);
+ if (IS_ABSOLUTE_PATH (to))
+ dir->name_map[count + 1] = to;
+ else
+ {
+ dir->name_map[count + 1] = append_file_to_dir (to, dir);
+ free (to);
+ }
+
+ count += 2;
+ while ((ch = getc (f)) != '\n')
+ if (ch == EOF)
+ break;
+ }
+
+ fclose (f);
+ }
+
+ /* Terminate the list of maps. */
+ dir->name_map[count] = NULL;
+}
+
+/* Remap a FILE's name based on the file_name_map, if any, for
+ FILE->dir. If the file name has any directory separators,
+ recursively check those directories too. */
+static char *
+remap_filename (cpp_reader *pfile, _cpp_file *file)
+{
+ const char *fname, *p;
+ char *new_dir;
+ cpp_dir *dir;
+ size_t index, len;
+
+ dir = file->dir;
+ fname = file->name;
+
+ for (;;)
+ {
+ if (!dir->name_map)
+ read_name_map (dir);
+
+ for (index = 0; dir->name_map[index]; index += 2)
+ if (!filename_cmp (dir->name_map[index], fname))
+ return xstrdup (dir->name_map[index + 1]);
+ if (IS_ABSOLUTE_PATH (fname))
+ return NULL;
+ p = strchr (fname, '/');
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+ {
+ char *p2 = strchr (fname, '\\');
+ if (!p || (p > p2))
+ p = p2;
+ }
+#endif
+ if (!p || p == fname)
+ return NULL;
+
+ len = dir->len + (p - fname + 1);
+ new_dir = XNEWVEC (char, len + 1);
+ memcpy (new_dir, dir->name, dir->len);
+ memcpy (new_dir + dir->len, fname, p - fname + 1);
+ new_dir[len] = '\0';
+
+ dir = make_cpp_dir (pfile, new_dir, dir->sysp);
+ fname = p + 1;
+ }
+}
+
+/* Returns true if PCHNAME is a valid PCH file for FILE. */
+static bool
+validate_pch (cpp_reader *pfile, _cpp_file *file, const char *pchname)
+{
+ const char *saved_path = file->path;
+ bool valid = false;
+
+ file->path = pchname;
+ if (open_file (file))
+ {
+ valid = 1 & pfile->cb.valid_pch (pfile, pchname, file->fd);
+
+ if (!valid)
+ {
+ close (file->fd);
+ file->fd = -1;
+ }
+
+ if (CPP_OPTION (pfile, print_include_names))
+ {
+ unsigned int i;
+ for (i = 1; i < pfile->line_table->depth; i++)
+ putc ('.', stderr);
+ fprintf (stderr, "%c %s\n",
+ valid ? '!' : 'x', pchname);
+ }
+ }
+
+ file->path = saved_path;
+ return valid;
+}
+
+/* Get the path associated with the _cpp_file F. The path includes
+ the base name from the include directive and the directory it was
+ found in via the search path. */
+
+const char *
+cpp_get_path (struct _cpp_file *f)
+{
+ return f->path;
+}
+
+/* Get the directory associated with the _cpp_file F. */
+
+cpp_dir *
+cpp_get_dir (struct _cpp_file *f)
+{
+ return f->dir;
+}
+
+/* Get the cpp_buffer currently associated with the cpp_reader
+ PFILE. */
+
+cpp_buffer *
+cpp_get_buffer (cpp_reader *pfile)
+{
+ return pfile->buffer;
+}
+
+/* Get the _cpp_file associated with the cpp_buffer B. */
+
+_cpp_file *
+cpp_get_file (cpp_buffer *b)
+{
+ return b->file;
+}
+
+/* Get the previous cpp_buffer given a cpp_buffer B. The previous
+ buffer is the buffer that included the given buffer. */
+
+cpp_buffer *
+cpp_get_prev (cpp_buffer *b)
+{
+ return b->prev;
+}
+
+/* This data structure holds the list of header files that were seen
+ while the PCH was being built. The 'entries' field is kept sorted
+ in memcmp() order; yes, this means that on little-endian systems,
+ it's sorted initially by the least-significant byte of 'size', but
+ that's OK. The code does rely on having entries with the same size
+ next to each other. */
+
+struct pchf_entry {
+ /* The size of this file. This is used to save running a MD5 checksum
+ if the sizes don't match. */
+ off_t size;
+ /* The MD5 checksum of this file. */
+ unsigned char sum[16];
+ /* Is this file to be included only once? */
+ bool once_only;
+};
+
+struct pchf_data {
+ /* Number of pchf_entry structures. */
+ size_t count;
+
+ /* Are there any values with once_only set?
+ This is used as an optimisation, it means we don't have to search
+ the structure if we're processing a regular #include. */
+ bool have_once_only;
+
+ struct pchf_entry entries[1];
+};
+
+static struct pchf_data *pchf;
+
+/* A qsort ordering function for pchf_entry structures. */
+
+static int
+pchf_save_compare (const void *e1, const void *e2)
+{
+ return memcmp (e1, e2, sizeof (struct pchf_entry));
+}
+
+/* Create and write to F a pchf_data structure. */
+
+bool
+_cpp_save_file_entries (cpp_reader *pfile, FILE *fp)
+{
+ size_t count = 0;
+ struct pchf_data *result;
+ size_t result_size;
+ _cpp_file *f;
+ bool ret;
+
+ for (f = pfile->all_files; f; f = f->next_file)
+ ++count;
+
+ result_size = (sizeof (struct pchf_data)
+ + sizeof (struct pchf_entry) * (count - 1));
+ result = XCNEWVAR (struct pchf_data, result_size);
+
+ result->count = 0;
+ result->have_once_only = false;
+
+ for (f = pfile->all_files; f; f = f->next_file)
+ {
+ size_t count;
+
+ /* This should probably never happen, since if a read error occurred
+ the PCH file shouldn't be written... */
+ if (f->dont_read || f->err_no)
+ continue;
+
+ if (f->stack_count == 0)
+ continue;
+
+ count = result->count++;
+
+ result->entries[count].once_only = f->once_only;
+ /* |= is avoided in the next line because of an HP C compiler bug */
+ result->have_once_only = result->have_once_only | f->once_only;
+ if (f->buffer_valid)
+ md5_buffer ((const char *)f->buffer,
+ f->st.st_size, result->entries[count].sum);
+ else
+ {
+ FILE *ff;
+ int oldfd = f->fd;
+
+ if (!open_file (f))
+ {
+ open_file_failed (pfile, f, 0);
+ free (result);
+ return false;
+ }
+ ff = fdopen (f->fd, "rb");
+ md5_stream (ff, result->entries[count].sum);
+ fclose (ff);
+ f->fd = oldfd;
+ }
+ result->entries[count].size = f->st.st_size;
+ }
+
+ result_size = (sizeof (struct pchf_data)
+ + sizeof (struct pchf_entry) * (result->count - 1));
+
+ qsort (result->entries, result->count, sizeof (struct pchf_entry),
+ pchf_save_compare);
+
+ ret = fwrite (result, result_size, 1, fp) == 1;
+ free (result);
+ return ret;
+}
+
+/* Read the pchf_data structure from F. */
+
+bool
+_cpp_read_file_entries (cpp_reader *pfile ATTRIBUTE_UNUSED, FILE *f)
+{
+ struct pchf_data d;
+
+ if (fread (&d, sizeof (struct pchf_data) - sizeof (struct pchf_entry), 1, f)
+ != 1)
+ return false;
+
+ pchf = XNEWVAR (struct pchf_data, sizeof (struct pchf_data)
+ + sizeof (struct pchf_entry) * (d.count - 1));
+ memcpy (pchf, &d, sizeof (struct pchf_data) - sizeof (struct pchf_entry));
+ if (fread (pchf->entries, sizeof (struct pchf_entry), d.count, f)
+ != d.count)
+ return false;
+ return true;
+}
+
+/* The parameters for pchf_compare. */
+
+struct pchf_compare_data
+{
+ /* The size of the file we're looking for. */
+ off_t size;
+
+ /* The MD5 checksum of the file, if it's been computed. */
+ unsigned char sum[16];
+
+ /* Is SUM valid? */
+ bool sum_computed;
+
+ /* Do we need to worry about entries that don't have ONCE_ONLY set? */
+ bool check_included;
+
+ /* The file that we're searching for. */
+ _cpp_file *f;
+};
+
+/* bsearch comparison function; look for D_P in E_P. */
+
+static int
+pchf_compare (const void *d_p, const void *e_p)
+{
+ const struct pchf_entry *e = (const struct pchf_entry *)e_p;
+ struct pchf_compare_data *d = (struct pchf_compare_data *)d_p;
+ int result;
+
+ result = memcmp (&d->size, &e->size, sizeof (off_t));
+ if (result != 0)
+ return result;
+
+ if (! d->sum_computed)
+ {
+ _cpp_file *const f = d->f;
+
+ md5_buffer ((const char *)f->buffer, f->st.st_size, d->sum);
+ d->sum_computed = true;
+ }
+
+ result = memcmp (d->sum, e->sum, 16);
+ if (result != 0)
+ return result;
+
+ if (d->check_included || e->once_only)
+ return 0;
+ else
+ return 1;
+}
+
+/* Check that F is not in a list read from a PCH file (if any).
+ Assumes that f->buffer_valid is true. Return TRUE if the file
+ should not be read. */
+
+static bool
+check_file_against_entries (cpp_reader *pfile ATTRIBUTE_UNUSED,
+ _cpp_file *f,
+ bool check_included)
+{
+ struct pchf_compare_data d;
+
+ if (pchf == NULL
+ || (! check_included && ! pchf->have_once_only))
+ return false;
+
+ d.size = f->st.st_size;
+ d.sum_computed = false;
+ d.f = f;
+ d.check_included = check_included;
+ return bsearch (&d, pchf->entries, pchf->count, sizeof (struct pchf_entry),
+ pchf_compare) != NULL;
+}
diff --git a/gcc-4.9/libcpp/identifiers.c b/gcc-4.9/libcpp/identifiers.c
new file mode 100644
index 000000000..cfb9979a6
--- /dev/null
+++ b/gcc-4.9/libcpp/identifiers.c
@@ -0,0 +1,120 @@
+/* Hash tables for the CPP library.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Written by Per Bothner, 1994.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+static hashnode alloc_node (cpp_hash_table *);
+
+/* Return an identifier node for hashtable.c. Used by cpplib except
+ when integrated with the C front ends. */
+static hashnode
+alloc_node (cpp_hash_table *table)
+{
+ cpp_hashnode *node;
+
+ node = XOBNEW (&table->pfile->hash_ob, cpp_hashnode);
+ memset (node, 0, sizeof (cpp_hashnode));
+ return HT_NODE (node);
+}
+
+/* Set up the identifier hash table. Use TABLE if non-null, otherwise
+ create our own. */
+void
+_cpp_init_hashtable (cpp_reader *pfile, cpp_hash_table *table)
+{
+ struct spec_nodes *s;
+
+ if (table == NULL)
+ {
+ pfile->our_hashtable = 1;
+ table = ht_create (13); /* 8K (=2^13) entries. */
+ table->alloc_node = alloc_node;
+
+ _obstack_begin (&pfile->hash_ob, 0, 0,
+ (void *(*) (long)) xmalloc,
+ (void (*) (void *)) free);
+ }
+
+ table->pfile = pfile;
+ pfile->hash_table = table;
+
+ /* Now we can initialize things that use the hash table. */
+ _cpp_init_directives (pfile);
+ _cpp_init_internal_pragmas (pfile);
+
+ s = &pfile->spec_nodes;
+ s->n_defined = cpp_lookup (pfile, DSC("defined"));
+ s->n_true = cpp_lookup (pfile, DSC("true"));
+ s->n_false = cpp_lookup (pfile, DSC("false"));
+ s->n__VA_ARGS__ = cpp_lookup (pfile, DSC("__VA_ARGS__"));
+ s->n__VA_ARGS__->flags |= NODE_DIAGNOSTIC;
+}
+
+/* Tear down the identifier hash table. */
+void
+_cpp_destroy_hashtable (cpp_reader *pfile)
+{
+ if (pfile->our_hashtable)
+ {
+ ht_destroy (pfile->hash_table);
+ obstack_free (&pfile->hash_ob, 0);
+ }
+}
+
+/* Returns the hash entry for the STR of length LEN, creating one
+ if necessary. */
+cpp_hashnode *
+cpp_lookup (cpp_reader *pfile, const unsigned char *str, unsigned int len)
+{
+ /* ht_lookup cannot return NULL. */
+ return CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_ALLOC));
+}
+
+/* Determine whether the str STR, of length LEN, is a defined macro. */
+int
+cpp_defined (cpp_reader *pfile, const unsigned char *str, int len)
+{
+ cpp_hashnode *node;
+
+ node = CPP_HASHNODE (ht_lookup (pfile->hash_table, str, len, HT_NO_INSERT));
+
+ /* If it's of type NT_MACRO, it cannot be poisoned. */
+ return node && node->type == NT_MACRO;
+}
+
+/* We don't need a proxy since the hash table's identifier comes first
+ in cpp_hashnode. However, in case this is ever changed, we have a
+ static assertion for it. */
+extern char proxy_assertion_broken[offsetof (struct cpp_hashnode, ident) == 0 ? 1 : -1];
+
+/* For all nodes in the hashtable, callback CB with parameters PFILE,
+ the node, and V. */
+void
+cpp_forall_identifiers (cpp_reader *pfile, cpp_cb cb, void *v)
+{
+ ht_forall (pfile->hash_table, (ht_cb) cb, v);
+}
diff --git a/gcc-4.9/libcpp/include/cpp-id-data.h b/gcc-4.9/libcpp/include/cpp-id-data.h
new file mode 100644
index 000000000..d4c00912a
--- /dev/null
+++ b/gcc-4.9/libcpp/include/cpp-id-data.h
@@ -0,0 +1,80 @@
+/* Structures that hang off cpp_identifier, for PCH.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "cpplib.h"
+
+#if !defined (HAVE_UCHAR) && !defined (IN_GCC)
+typedef unsigned char uchar;
+#endif
+
+#define UC (const unsigned char *) /* Intended use: UC"string" */
+
+/* Chained list of answers to an assertion. */
+struct GTY(()) answer {
+ struct answer *next;
+ unsigned int count;
+ cpp_token GTY ((length ("%h.count"))) first[1];
+};
+
+/* Each macro definition is recorded in a cpp_macro structure.
+ Variadic macros cannot occur with traditional cpp. */
+struct GTY(()) cpp_macro {
+ /* Parameters, if any. */
+ cpp_hashnode ** GTY ((nested_ptr (union tree_node,
+ "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
+ "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"),
+ length ("%h.paramc")))
+ params;
+
+ /* Replacement tokens (ISO) or replacement text (traditional). See
+ comment at top of cpptrad.c for how traditional function-like
+ macros are encoded. */
+ union cpp_macro_u
+ {
+ cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens;
+ const unsigned char * GTY ((tag ("1"))) text;
+ } GTY ((desc ("%1.traditional"))) exp;
+
+ /* Definition line number. */
+ source_location line;
+
+ /* Number of tokens in expansion, or bytes for traditional macros. */
+ unsigned int count;
+
+ /* Number of parameters. */
+ unsigned short paramc;
+
+ /* If a function-like macro. */
+ unsigned int fun_like : 1;
+
+ /* If a variadic macro. */
+ unsigned int variadic : 1;
+
+ /* If macro defined in system header. */
+ unsigned int syshdr : 1;
+
+ /* Nonzero if it has been expanded or had its existence tested. */
+ unsigned int used : 1;
+
+ /* Indicate which field of 'exp' is in use. */
+ unsigned int traditional : 1;
+
+ /* Indicate whether the tokens include extra CPP_PASTE tokens at the
+ end to track invalid redefinitions with consecutive CPP_PASTE
+ tokens. */
+ unsigned int extra_tokens : 1;
+};
diff --git a/gcc-4.9/libcpp/include/cpplib.h b/gcc-4.9/libcpp/include/cpplib.h
new file mode 100644
index 000000000..a9db7abbd
--- /dev/null
+++ b/gcc-4.9/libcpp/include/cpplib.h
@@ -0,0 +1,1074 @@
+/* Definitions for CPP library.
+ Copyright (C) 1995-2014 Free Software Foundation, Inc.
+ Written by Per Bothner, 1994-95.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+#ifndef LIBCPP_CPPLIB_H
+#define LIBCPP_CPPLIB_H
+
+#include <sys/types.h>
+#include "symtab.h"
+#include "line-map.h"
+
+typedef struct cpp_reader cpp_reader;
+typedef struct cpp_buffer cpp_buffer;
+typedef struct cpp_options cpp_options;
+typedef struct cpp_token cpp_token;
+typedef struct cpp_string cpp_string;
+typedef struct cpp_hashnode cpp_hashnode;
+typedef struct cpp_macro cpp_macro;
+typedef struct cpp_callbacks cpp_callbacks;
+typedef struct cpp_dir cpp_dir;
+
+struct answer;
+struct _cpp_file;
+
+/* The first three groups, apart from '=', can appear in preprocessor
+ expressions (+= and -= are used to indicate unary + and - resp.).
+ This allows a lookup table to be implemented in _cpp_parse_expr.
+
+ The first group, to CPP_LAST_EQ, can be immediately followed by an
+ '='. The lexer needs operators ending in '=', like ">>=", to be in
+ the same order as their counterparts without the '=', like ">>".
+
+ See the cpp_operator table optab in expr.c if you change the order or
+ add or remove anything in the first group. */
+
+#define TTYPE_TABLE \
+ OP(EQ, "=") \
+ OP(NOT, "!") \
+ OP(GREATER, ">") /* compare */ \
+ OP(LESS, "<") \
+ OP(PLUS, "+") /* math */ \
+ OP(MINUS, "-") \
+ OP(MULT, "*") \
+ OP(DIV, "/") \
+ OP(MOD, "%") \
+ OP(AND, "&") /* bit ops */ \
+ OP(OR, "|") \
+ OP(XOR, "^") \
+ OP(RSHIFT, ">>") \
+ OP(LSHIFT, "<<") \
+ \
+ OP(COMPL, "~") \
+ OP(AND_AND, "&&") /* logical */ \
+ OP(OR_OR, "||") \
+ OP(QUERY, "?") \
+ OP(COLON, ":") \
+ OP(COMMA, ",") /* grouping */ \
+ OP(OPEN_PAREN, "(") \
+ OP(CLOSE_PAREN, ")") \
+ TK(EOF, NONE) \
+ OP(EQ_EQ, "==") /* compare */ \
+ OP(NOT_EQ, "!=") \
+ OP(GREATER_EQ, ">=") \
+ OP(LESS_EQ, "<=") \
+ \
+ /* These two are unary + / - in preprocessor expressions. */ \
+ OP(PLUS_EQ, "+=") /* math */ \
+ OP(MINUS_EQ, "-=") \
+ \
+ OP(MULT_EQ, "*=") \
+ OP(DIV_EQ, "/=") \
+ OP(MOD_EQ, "%=") \
+ OP(AND_EQ, "&=") /* bit ops */ \
+ OP(OR_EQ, "|=") \
+ OP(XOR_EQ, "^=") \
+ OP(RSHIFT_EQ, ">>=") \
+ OP(LSHIFT_EQ, "<<=") \
+ /* Digraphs together, beginning with CPP_FIRST_DIGRAPH. */ \
+ OP(HASH, "#") /* digraphs */ \
+ OP(PASTE, "##") \
+ OP(OPEN_SQUARE, "[") \
+ OP(CLOSE_SQUARE, "]") \
+ OP(OPEN_BRACE, "{") \
+ OP(CLOSE_BRACE, "}") \
+ /* The remainder of the punctuation. Order is not significant. */ \
+ OP(SEMICOLON, ";") /* structure */ \
+ OP(ELLIPSIS, "...") \
+ OP(PLUS_PLUS, "++") /* increment */ \
+ OP(MINUS_MINUS, "--") \
+ OP(DEREF, "->") /* accessors */ \
+ OP(DOT, ".") \
+ OP(SCOPE, "::") \
+ OP(DEREF_STAR, "->*") \
+ OP(DOT_STAR, ".*") \
+ OP(ATSIGN, "@") /* used in Objective-C */ \
+ \
+ TK(NAME, IDENT) /* word */ \
+ TK(AT_NAME, IDENT) /* @word - Objective-C */ \
+ TK(NUMBER, LITERAL) /* 34_be+ta */ \
+ \
+ TK(CHAR, LITERAL) /* 'char' */ \
+ TK(WCHAR, LITERAL) /* L'char' */ \
+ TK(CHAR16, LITERAL) /* u'char' */ \
+ TK(CHAR32, LITERAL) /* U'char' */ \
+ TK(OTHER, LITERAL) /* stray punctuation */ \
+ \
+ TK(STRING, LITERAL) /* "string" */ \
+ TK(WSTRING, LITERAL) /* L"string" */ \
+ TK(STRING16, LITERAL) /* u"string" */ \
+ TK(STRING32, LITERAL) /* U"string" */ \
+ TK(UTF8STRING, LITERAL) /* u8"string" */ \
+ TK(OBJC_STRING, LITERAL) /* @"string" - Objective-C */ \
+ TK(HEADER_NAME, LITERAL) /* <stdio.h> in #include */ \
+ \
+ TK(CHAR_USERDEF, LITERAL) /* 'char'_suffix - C++-0x */ \
+ TK(WCHAR_USERDEF, LITERAL) /* L'char'_suffix - C++-0x */ \
+ TK(CHAR16_USERDEF, LITERAL) /* u'char'_suffix - C++-0x */ \
+ TK(CHAR32_USERDEF, LITERAL) /* U'char'_suffix - C++-0x */ \
+ TK(STRING_USERDEF, LITERAL) /* "string"_suffix - C++-0x */ \
+ TK(WSTRING_USERDEF, LITERAL) /* L"string"_suffix - C++-0x */ \
+ TK(STRING16_USERDEF, LITERAL) /* u"string"_suffix - C++-0x */ \
+ TK(STRING32_USERDEF, LITERAL) /* U"string"_suffix - C++-0x */ \
+ TK(UTF8STRING_USERDEF,LITERAL) /* u8"string"_suffix - C++-0x */ \
+ \
+ TK(COMMENT, LITERAL) /* Only if output comments. */ \
+ /* SPELL_LITERAL happens to DTRT. */ \
+ TK(MACRO_ARG, NONE) /* Macro argument. */ \
+ TK(PRAGMA, NONE) /* Only for deferred pragmas. */ \
+ TK(PRAGMA_EOL, NONE) /* End-of-line for deferred pragmas. */ \
+ TK(PADDING, NONE) /* Whitespace for -E. */
+
+#define OP(e, s) CPP_ ## e,
+#define TK(e, s) CPP_ ## e,
+enum cpp_ttype
+{
+ TTYPE_TABLE
+ N_TTYPES,
+
+ /* Positions in the table. */
+ CPP_LAST_EQ = CPP_LSHIFT,
+ CPP_FIRST_DIGRAPH = CPP_HASH,
+ CPP_LAST_PUNCTUATOR= CPP_ATSIGN,
+ CPP_LAST_CPP_OP = CPP_LESS_EQ
+};
+#undef OP
+#undef TK
+
+/* C language kind, used when calling cpp_create_reader. */
+enum c_lang {CLK_GNUC89 = 0, CLK_GNUC99, CLK_GNUC11,
+ CLK_STDC89, CLK_STDC94, CLK_STDC99, CLK_STDC11,
+ CLK_GNUCXX, CLK_CXX98, CLK_GNUCXX11, CLK_CXX11,
+ CLK_GNUCXX1Y, CLK_CXX1Y, CLK_ASM};
+
+/* Payload of a NUMBER, STRING, CHAR or COMMENT token. */
+struct GTY(()) cpp_string {
+ unsigned int len;
+ const unsigned char *text;
+};
+
+/* Flags for the cpp_token structure. */
+#define PREV_WHITE (1 << 0) /* If whitespace before this token. */
+#define DIGRAPH (1 << 1) /* If it was a digraph. */
+#define STRINGIFY_ARG (1 << 2) /* If macro argument to be stringified. */
+#define PASTE_LEFT (1 << 3) /* If on LHS of a ## operator. */
+#define NAMED_OP (1 << 4) /* C++ named operators. */
+#define NO_EXPAND (1 << 5) /* Do not macro-expand this token. */
+#define BOL (1 << 6) /* Token at beginning of line. */
+#define PURE_ZERO (1 << 7) /* Single 0 digit, used by the C++ frontend,
+ set in c-lex.c. */
+#define SP_DIGRAPH (1 << 8) /* # or ## token was a digraph. */
+#define SP_PREV_WHITE (1 << 9) /* If whitespace before a ##
+ operator, or before this token
+ after a # operator. */
+
+/* Specify which field, if any, of the cpp_token union is used. */
+
+enum cpp_token_fld_kind {
+ CPP_TOKEN_FLD_NODE,
+ CPP_TOKEN_FLD_SOURCE,
+ CPP_TOKEN_FLD_STR,
+ CPP_TOKEN_FLD_ARG_NO,
+ CPP_TOKEN_FLD_TOKEN_NO,
+ CPP_TOKEN_FLD_PRAGMA,
+ CPP_TOKEN_FLD_NONE
+};
+
+/* A macro argument in the cpp_token union. */
+struct GTY(()) cpp_macro_arg {
+ /* Argument number. */
+ unsigned int arg_no;
+};
+
+/* An identifier in the cpp_token union. */
+struct GTY(()) cpp_identifier {
+ /* The canonical (UTF-8) spelling of the identifier. */
+ cpp_hashnode *
+ GTY ((nested_ptr (union tree_node,
+ "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
+ "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
+ node;
+};
+
+/* A preprocessing token. This has been carefully packed and should
+ occupy 16 bytes on 32-bit hosts and 24 bytes on 64-bit hosts. */
+struct GTY(()) cpp_token {
+ source_location src_loc; /* Location of first char of token. */
+ ENUM_BITFIELD(cpp_ttype) type : CHAR_BIT; /* token type */
+ unsigned short flags; /* flags - see above */
+
+ union cpp_token_u
+ {
+ /* An identifier. */
+ struct cpp_identifier GTY ((tag ("CPP_TOKEN_FLD_NODE"))) node;
+
+ /* Inherit padding from this token. */
+ cpp_token * GTY ((tag ("CPP_TOKEN_FLD_SOURCE"))) source;
+
+ /* A string, or number. */
+ struct cpp_string GTY ((tag ("CPP_TOKEN_FLD_STR"))) str;
+
+ /* Argument no. for a CPP_MACRO_ARG. */
+ struct cpp_macro_arg GTY ((tag ("CPP_TOKEN_FLD_ARG_NO"))) macro_arg;
+
+ /* Original token no. for a CPP_PASTE (from a sequence of
+ consecutive paste tokens in a macro expansion). */
+ unsigned int GTY ((tag ("CPP_TOKEN_FLD_TOKEN_NO"))) token_no;
+
+ /* Caller-supplied identifier for a CPP_PRAGMA. */
+ unsigned int GTY ((tag ("CPP_TOKEN_FLD_PRAGMA"))) pragma;
+ } GTY ((desc ("cpp_token_val_index (&%1)"))) val;
+};
+
+/* Say which field is in use. */
+extern enum cpp_token_fld_kind cpp_token_val_index (const cpp_token *tok);
+
+/* A type wide enough to hold any multibyte source character.
+ cpplib's character constant interpreter requires an unsigned type.
+ Also, a typedef for the signed equivalent.
+ The width of this type is capped at 32 bits; there do exist targets
+ where wchar_t is 64 bits, but only in a non-default mode, and there
+ would be no meaningful interpretation for a wchar_t value greater
+ than 2^32 anyway -- the widest wide-character encoding around is
+ ISO 10646, which stops at 2^31. */
+#if CHAR_BIT * SIZEOF_INT >= 32
+# define CPPCHAR_SIGNED_T int
+#elif CHAR_BIT * SIZEOF_LONG >= 32
+# define CPPCHAR_SIGNED_T long
+#else
+# error "Cannot find a least-32-bit signed integer type"
+#endif
+typedef unsigned CPPCHAR_SIGNED_T cppchar_t;
+typedef CPPCHAR_SIGNED_T cppchar_signed_t;
+
+/* Style of header dependencies to generate. */
+enum cpp_deps_style { DEPS_NONE = 0, DEPS_USER, DEPS_SYSTEM };
+
+/* The possible normalization levels, from most restrictive to least. */
+enum cpp_normalize_level {
+ /* In NFKC. */
+ normalized_KC = 0,
+ /* In NFC. */
+ normalized_C,
+ /* In NFC, except for subsequences where being in NFC would make
+ the identifier invalid. */
+ normalized_identifier_C,
+ /* Not normalized at all. */
+ normalized_none
+};
+
+/* This structure is nested inside struct cpp_reader, and
+ carries all the options visible to the command line. */
+struct cpp_options
+{
+ /* Characters between tab stops. */
+ unsigned int tabstop;
+
+ /* The language we're preprocessing. */
+ enum c_lang lang;
+
+ /* Nonzero means use extra default include directories for C++. */
+ unsigned char cplusplus;
+
+ /* Nonzero means handle cplusplus style comments. */
+ unsigned char cplusplus_comments;
+
+ /* Nonzero means define __OBJC__, treat @ as a special token, use
+ the OBJC[PLUS]_INCLUDE_PATH environment variable, and allow
+ "#import". */
+ unsigned char objc;
+
+ /* Nonzero means don't copy comments into the output file. */
+ unsigned char discard_comments;
+
+ /* Nonzero means don't copy comments into the output file during
+ macro expansion. */
+ unsigned char discard_comments_in_macro_exp;
+
+ /* Nonzero means process the ISO trigraph sequences. */
+ unsigned char trigraphs;
+
+ /* Nonzero means process the ISO digraph sequences. */
+ unsigned char digraphs;
+
+ /* Nonzero means to allow hexadecimal floats and LL suffixes. */
+ unsigned char extended_numbers;
+
+ /* Nonzero means process u/U prefix literals (UTF-16/32). */
+ unsigned char uliterals;
+
+ /* Nonzero means process r/R raw strings. If this is set, uliterals
+ must be set as well. */
+ unsigned char rliterals;
+
+ /* Nonzero means print names of header files (-H). */
+ unsigned char print_include_names;
+
+ /* Nonzero means complain about deprecated features. */
+ unsigned char cpp_warn_deprecated;
+
+ /* Nonzero means warn if slash-star appears in a comment. */
+ unsigned char warn_comments;
+
+ /* Nonzero means to warn about __DATA__, __TIME__ and __TIMESTAMP__ usage. */
+ unsigned char warn_date_time;
+
+ /* Nonzero means warn if a user-supplied include directory does not
+ exist. */
+ unsigned char warn_missing_include_dirs;
+
+ /* Nonzero means warn if there are any trigraphs. */
+ unsigned char warn_trigraphs;
+
+ /* Nonzero means warn about multicharacter charconsts. */
+ unsigned char warn_multichar;
+
+ /* Nonzero means warn about various incompatibilities with
+ traditional C. */
+ unsigned char cpp_warn_traditional;
+
+ /* Nonzero means warn about long long numeric constants. */
+ unsigned char cpp_warn_long_long;
+
+ /* Nonzero means warn about text after an #endif (or #else). */
+ unsigned char warn_endif_labels;
+
+ /* Nonzero means warn about implicit sign changes owing to integer
+ promotions. */
+ unsigned char warn_num_sign_change;
+
+ /* Zero means don't warn about __VA_ARGS__ usage in c89 pedantic mode.
+ Presumably the usage is protected by the appropriate #ifdef. */
+ unsigned char warn_variadic_macros;
+
+ /* Nonzero means warn about builtin macros that are redefined or
+ explicitly undefined. */
+ unsigned char warn_builtin_macro_redefined;
+
+ /* Nonzero means we should look for header.gcc files that remap file
+ names. */
+ unsigned char remap;
+
+ /* Zero means dollar signs are punctuation. */
+ unsigned char dollars_in_ident;
+
+ /* Nonzero means UCNs are accepted in identifiers. */
+ unsigned char extended_identifiers;
+
+ /* True if we should warn about dollars in identifiers or numbers
+ for this translation unit. */
+ unsigned char warn_dollars;
+
+ /* Nonzero means warn if undefined identifiers are evaluated in an #if. */
+ unsigned char warn_undef;
+
+ /* Nonzero means warn of unused macros from the main file. */
+ unsigned char warn_unused_macros;
+
+ /* Nonzero for the 1999 C Standard, including corrigenda and amendments. */
+ unsigned char c99;
+
+ /* Nonzero if we are conforming to a specific C or C++ standard. */
+ unsigned char std;
+
+ /* Nonzero means give all the error messages the ANSI standard requires. */
+ unsigned char cpp_pedantic;
+
+ /* Nonzero means we're looking at already preprocessed code, so don't
+ bother trying to do macro expansion and whatnot. */
+ unsigned char preprocessed;
+
+ /* Nonzero means we are going to emit debugging logs during
+ preprocessing. */
+ unsigned char debug;
+
+ /* Nonzero means we are tracking locations of tokens involved in
+ macro expansion. 1 Means we track the location in degraded mode
+ where we do not track locations of tokens resulting from the
+ expansion of arguments of function-like macro. 2 Means we do
+ track all macro expansions. This last option is the one that
+ consumes the highest amount of memory. */
+ unsigned char track_macro_expansion;
+
+ /* Nonzero means handle C++ alternate operator names. */
+ unsigned char operator_names;
+
+ /* Nonzero means warn about use of C++ alternate operator names. */
+ unsigned char warn_cxx_operator_names;
+
+ /* True for traditional preprocessing. */
+ unsigned char traditional;
+
+ /* Nonzero for C++ 2011 Standard user-defined literals. */
+ unsigned char user_literals;
+
+ /* Nonzero means warn when a string or character literal is followed by a
+ ud-suffix which does not beging with an underscore. */
+ unsigned char warn_literal_suffix;
+
+ /* Nonzero means interpret imaginary, fixed-point, or other gnu extension
+ literal number suffixes as user-defined literal number suffixes. */
+ unsigned char ext_numeric_literals;
+
+ /* Nonzero means extended identifiers allow the characters specified
+ in C11 and C++11. */
+ unsigned char c11_identifiers;
+
+ /* Nonzero for C++ 2014 Standard binary constants. */
+ unsigned char binary_constants;
+
+ /* Nonzero for C++ 2014 Standard digit separators. */
+ unsigned char digit_separators;
+
+ /* Holds the name of the target (execution) character set. */
+ const char *narrow_charset;
+
+ /* Holds the name of the target wide character set. */
+ const char *wide_charset;
+
+ /* Holds the name of the input character set. */
+ const char *input_charset;
+
+ /* The minimum permitted level of normalization before a warning
+ is generated. */
+ enum cpp_normalize_level warn_normalize;
+
+ /* True to warn about precompiled header files we couldn't use. */
+ bool warn_invalid_pch;
+
+ /* True if dependencies should be restored from a precompiled header. */
+ bool restore_pch_deps;
+
+ /* Dependency generation. */
+ struct
+ {
+ /* Style of header dependencies to generate. */
+ enum cpp_deps_style style;
+
+ /* Assume missing files are generated files. */
+ bool missing_files;
+
+ /* Generate phony targets for each dependency apart from the first
+ one. */
+ bool phony_targets;
+
+ /* If true, no dependency is generated on the main file. */
+ bool ignore_main_file;
+
+ /* If true, intend to use the preprocessor output (e.g., for compilation)
+ in addition to the dependency info. */
+ bool need_preprocessor_output;
+ } deps;
+
+ /* Target-specific features set by the front end or client. */
+
+ /* Precision for target CPP arithmetic, target characters, target
+ ints and target wide characters, respectively. */
+ size_t precision, char_precision, int_precision, wchar_precision;
+
+ /* True means chars (wide chars) are unsigned. */
+ bool unsigned_char, unsigned_wchar;
+
+ /* True if the most significant byte in a word has the lowest
+ address in memory. */
+ bool bytes_big_endian;
+
+ /* Nonzero means __STDC__ should have the value 0 in system headers. */
+ unsigned char stdc_0_in_system_headers;
+
+ /* True disables tokenization outside of preprocessing directives. */
+ bool directives_only;
+
+ /* True enables canonicalization of system header file paths. */
+ bool canonical_system_headers;
+};
+
+/* Callback for header lookup for HEADER, which is the name of a
+ source file. It is used as a method of last resort to find headers
+ that are not otherwise found during the normal include processing.
+ The return value is the malloced name of a header to try and open,
+ if any, or NULL otherwise. This callback is called only if the
+ header is otherwise unfound. */
+typedef const char *(*missing_header_cb)(cpp_reader *, const char *header, cpp_dir **);
+
+/* Call backs to cpplib client. */
+struct cpp_callbacks
+{
+ /* Called when a new line of preprocessed output is started. */
+ void (*line_change) (cpp_reader *, const cpp_token *, int);
+
+ /* Called when switching to/from a new file.
+ The line_map is for the new file. It is NULL if there is no new file.
+ (In C this happens when done with <built-in>+<command line> and also
+ when done with a main file.) This can be used for resource cleanup. */
+ void (*file_change) (cpp_reader *, const struct line_map *);
+
+ void (*dir_change) (cpp_reader *, const char *);
+ void (*include) (cpp_reader *, source_location, const unsigned char *,
+ const char *, int, const cpp_token **);
+ void (*define) (cpp_reader *, source_location, cpp_hashnode *);
+ void (*undef) (cpp_reader *, source_location, cpp_hashnode *);
+ void (*ident) (cpp_reader *, source_location, const cpp_string *);
+ void (*def_pragma) (cpp_reader *, source_location);
+ int (*valid_pch) (cpp_reader *, const char *, int);
+ void (*read_pch) (cpp_reader *, const char *, int, const char *);
+ missing_header_cb missing_header;
+
+ /* Context-sensitive macro support. Returns macro (if any) that should
+ be expanded. */
+ cpp_hashnode * (*macro_to_expand) (cpp_reader *, const cpp_token *);
+
+ /* Called to emit a diagnostic. This callback receives the
+ translated message. */
+ bool (*error) (cpp_reader *, int, int, source_location, unsigned int,
+ const char *, va_list *)
+ ATTRIBUTE_FPTR_PRINTF(6,0);
+
+ /* Callbacks for when a macro is expanded, or tested (whether
+ defined or not at the time) in #ifdef, #ifndef or "defined". */
+ void (*used_define) (cpp_reader *, source_location, cpp_hashnode *);
+ void (*used_undef) (cpp_reader *, source_location, cpp_hashnode *);
+ /* Called before #define and #undef or other macro definition
+ changes are processed. */
+ void (*before_define) (cpp_reader *);
+ /* Called whenever a macro is expanded or tested.
+ Second argument is the location of the start of the current expansion. */
+ void (*used) (cpp_reader *, source_location, cpp_hashnode *);
+
+ /* Callback that can change a user builtin into normal macro. */
+ bool (*user_builtin_macro) (cpp_reader *, cpp_hashnode *);
+};
+
+#ifdef VMS
+#define INO_T_CPP ino_t ino[3]
+#else
+#define INO_T_CPP ino_t ino
+#endif
+
+/* Chain of directories to look for include files in. */
+struct cpp_dir
+{
+ /* NULL-terminated singly-linked list. */
+ struct cpp_dir *next;
+
+ /* NAME of the directory, NUL-terminated. */
+ char *name;
+ unsigned int len;
+
+ /* One if a system header, two if a system header that has extern
+ "C" guards for C++. */
+ unsigned char sysp;
+
+ /* Is this a user-supplied directory? */
+ bool user_supplied_p;
+
+ /* The canonicalized NAME as determined by lrealpath. This field
+ is only used by hosts that lack reliable inode numbers. */
+ char *canonical_name;
+
+ /* Mapping of file names for this directory for MS-DOS and related
+ platforms. A NULL-terminated array of (from, to) pairs. */
+ const char **name_map;
+
+ /* Routine to construct pathname, given the search path name and the
+ HEADER we are trying to find, return a constructed pathname to
+ try and open. If this is NULL, the constructed pathname is as
+ constructed by append_file_to_dir. */
+ char *(*construct) (const char *header, cpp_dir *dir);
+
+ /* The C front end uses these to recognize duplicated
+ directories in the search path. */
+ INO_T_CPP;
+ dev_t dev;
+};
+
+/* The structure of a node in the hash table. The hash table has
+ entries for all identifiers: either macros defined by #define
+ commands (type NT_MACRO), assertions created with #assert
+ (NT_ASSERTION), or neither of the above (NT_VOID). Builtin macros
+ like __LINE__ are flagged NODE_BUILTIN. Poisoned identifiers are
+ flagged NODE_POISONED. NODE_OPERATOR (C++ only) indicates an
+ identifier that behaves like an operator such as "xor".
+ NODE_DIAGNOSTIC is for speed in lex_token: it indicates a
+ diagnostic may be required for this node. Currently this only
+ applies to __VA_ARGS__, poisoned identifiers, and -Wc++-compat
+ warnings about NODE_OPERATOR. */
+
+/* Hash node flags. */
+#define NODE_OPERATOR (1 << 0) /* C++ named operator. */
+#define NODE_POISONED (1 << 1) /* Poisoned identifier. */
+#define NODE_BUILTIN (1 << 2) /* Builtin macro. */
+#define NODE_DIAGNOSTIC (1 << 3) /* Possible diagnostic when lexed. */
+#define NODE_WARN (1 << 4) /* Warn if redefined or undefined. */
+#define NODE_DISABLED (1 << 5) /* A disabled macro. */
+#define NODE_MACRO_ARG (1 << 6) /* Used during #define processing. */
+#define NODE_USED (1 << 7) /* Dumped with -dU. */
+#define NODE_CONDITIONAL (1 << 8) /* Conditional macro */
+#define NODE_WARN_OPERATOR (1 << 9) /* Warn about C++ named operator. */
+
+/* Different flavors of hash node. */
+enum node_type
+{
+ NT_VOID = 0, /* No definition yet. */
+ NT_MACRO, /* A macro of some form. */
+ NT_ASSERTION /* Predicate for #assert. */
+};
+
+/* Different flavors of builtin macro. _Pragma is an operator, but we
+ handle it with the builtin code for efficiency reasons. */
+enum cpp_builtin_type
+{
+ BT_SPECLINE = 0, /* `__LINE__' */
+ BT_DATE, /* `__DATE__' */
+ BT_FILE, /* `__FILE__' */
+ BT_BASE_FILE, /* `__BASE_FILE__' */
+ BT_INCLUDE_LEVEL, /* `__INCLUDE_LEVEL__' */
+ BT_TIME, /* `__TIME__' */
+ BT_STDC, /* `__STDC__' */
+ BT_PRAGMA, /* `_Pragma' operator */
+ BT_TIMESTAMP, /* `__TIMESTAMP__' */
+ BT_COUNTER, /* `__COUNTER__' */
+ BT_FIRST_USER, /* User defined builtin macros. */
+ BT_LAST_USER = BT_FIRST_USER + 31
+};
+
+#define CPP_HASHNODE(HNODE) ((cpp_hashnode *) (HNODE))
+#define HT_NODE(NODE) ((ht_identifier *) (NODE))
+#define NODE_LEN(NODE) HT_LEN (&(NODE)->ident)
+#define NODE_NAME(NODE) HT_STR (&(NODE)->ident)
+
+/* Specify which field, if any, of the union is used. */
+
+enum {
+ NTV_MACRO,
+ NTV_ANSWER,
+ NTV_BUILTIN,
+ NTV_ARGUMENT,
+ NTV_NONE
+};
+
+#define CPP_HASHNODE_VALUE_IDX(HNODE) \
+ ((HNODE.flags & NODE_MACRO_ARG) ? NTV_ARGUMENT \
+ : HNODE.type == NT_MACRO ? ((HNODE.flags & NODE_BUILTIN) \
+ ? NTV_BUILTIN : NTV_MACRO) \
+ : HNODE.type == NT_ASSERTION ? NTV_ANSWER \
+ : NTV_NONE)
+
+/* The common part of an identifier node shared amongst all 3 C front
+ ends. Also used to store CPP identifiers, which are a superset of
+ identifiers in the grammatical sense. */
+
+union GTY(()) _cpp_hashnode_value {
+ /* If a macro. */
+ cpp_macro * GTY((tag ("NTV_MACRO"))) macro;
+ /* Answers to an assertion. */
+ struct answer * GTY ((tag ("NTV_ANSWER"))) answers;
+ /* Code for a builtin macro. */
+ enum cpp_builtin_type GTY ((tag ("NTV_BUILTIN"))) builtin;
+ /* Macro argument index. */
+ unsigned short GTY ((tag ("NTV_ARGUMENT"))) arg_index;
+};
+
+struct GTY(()) cpp_hashnode {
+ struct ht_identifier ident;
+ unsigned int is_directive : 1;
+ unsigned int directive_index : 7; /* If is_directive,
+ then index into directive table.
+ Otherwise, a NODE_OPERATOR. */
+ unsigned char rid_code; /* Rid code - for front ends. */
+ ENUM_BITFIELD(node_type) type : 6; /* CPP node type. */
+ unsigned int flags : 10; /* CPP flags. */
+
+ union _cpp_hashnode_value GTY ((desc ("CPP_HASHNODE_VALUE_IDX (%1)"))) value;
+};
+
+/* Call this first to get a handle to pass to other functions.
+
+ If you want cpplib to manage its own hashtable, pass in a NULL
+ pointer. Otherwise you should pass in an initialized hash table
+ that cpplib will share; this technique is used by the C front
+ ends. */
+extern cpp_reader *cpp_create_reader (enum c_lang, struct ht *,
+ struct line_maps *);
+
+/* Reset the cpp_reader's line_map. This is only used after reading a
+ PCH file. */
+extern void cpp_set_line_map (cpp_reader *, struct line_maps *);
+
+/* Call this to change the selected language standard (e.g. because of
+ command line options). */
+extern void cpp_set_lang (cpp_reader *, enum c_lang);
+
+/* Set the include paths. */
+extern void cpp_set_include_chains (cpp_reader *, cpp_dir *, cpp_dir *, int);
+
+/* Call these to get pointers to the options, callback, and deps
+ structures for a given reader. These pointers are good until you
+ call cpp_finish on that reader. You can either edit the callbacks
+ through the pointer returned from cpp_get_callbacks, or set them
+ with cpp_set_callbacks. */
+extern cpp_options *cpp_get_options (cpp_reader *);
+extern cpp_callbacks *cpp_get_callbacks (cpp_reader *);
+extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);
+extern struct deps *cpp_get_deps (cpp_reader *);
+
+/* This function reads the file, but does not start preprocessing. It
+ returns the name of the original file; this is the same as the
+ input file, except for preprocessed input. This will generate at
+ least one file change callback, and possibly a line change callback
+ too. If there was an error opening the file, it returns NULL. */
+extern const char *cpp_read_main_file (cpp_reader *, const char *);
+
+/* Set up built-ins with special behavior. Use cpp_init_builtins()
+ instead unless your know what you are doing. */
+extern void cpp_init_special_builtins (cpp_reader *);
+
+/* Set up built-ins like __FILE__. */
+extern void cpp_init_builtins (cpp_reader *, int);
+
+/* This is called after options have been parsed, and partially
+ processed. */
+extern void cpp_post_options (cpp_reader *);
+
+/* Set up translation to the target character set. */
+extern void cpp_init_iconv (cpp_reader *);
+
+/* Call this to finish preprocessing. If you requested dependency
+ generation, pass an open stream to write the information to,
+ otherwise NULL. It is your responsibility to close the stream. */
+extern void cpp_finish (cpp_reader *, FILE *deps_stream);
+
+/* Call this to release the handle at the end of preprocessing. Any
+ use of the handle after this function returns is invalid. */
+extern void cpp_destroy (cpp_reader *);
+
+extern unsigned int cpp_token_len (const cpp_token *);
+extern unsigned char *cpp_token_as_text (cpp_reader *, const cpp_token *);
+extern unsigned char *cpp_spell_token (cpp_reader *, const cpp_token *,
+ unsigned char *, bool);
+extern void cpp_register_pragma (cpp_reader *, const char *, const char *,
+ void (*) (cpp_reader *), bool);
+extern void cpp_register_deferred_pragma (cpp_reader *, const char *,
+ const char *, unsigned, bool, bool);
+extern int cpp_avoid_paste (cpp_reader *, const cpp_token *,
+ const cpp_token *);
+extern const cpp_token *cpp_get_token (cpp_reader *);
+extern const cpp_token *cpp_get_token_with_location (cpp_reader *,
+ source_location *);
+extern const unsigned char *cpp_macro_definition (cpp_reader *,
+ cpp_hashnode *);
+extern void _cpp_backup_tokens (cpp_reader *, unsigned int);
+extern const cpp_token *cpp_peek_token (cpp_reader *, int);
+
+/* Evaluate a CPP_*CHAR* token. */
+extern cppchar_t cpp_interpret_charconst (cpp_reader *, const cpp_token *,
+ unsigned int *, int *);
+/* Evaluate a vector of CPP_*STRING* tokens. */
+extern bool cpp_interpret_string (cpp_reader *,
+ const cpp_string *, size_t,
+ cpp_string *, enum cpp_ttype);
+extern bool cpp_interpret_string_notranslate (cpp_reader *,
+ const cpp_string *, size_t,
+ cpp_string *, enum cpp_ttype);
+
+/* Convert a host character constant to the execution character set. */
+extern cppchar_t cpp_host_to_exec_charset (cpp_reader *, cppchar_t);
+
+/* Used to register macros and assertions, perhaps from the command line.
+ The text is the same as the command line argument. */
+extern void cpp_define (cpp_reader *, const char *);
+extern void cpp_define_formatted (cpp_reader *pfile,
+ const char *fmt, ...) ATTRIBUTE_PRINTF_2;
+extern void cpp_assert (cpp_reader *, const char *);
+extern void cpp_undef (cpp_reader *, const char *);
+extern void cpp_unassert (cpp_reader *, const char *);
+
+/* Undefine all macros and assertions. */
+extern void cpp_undef_all (cpp_reader *);
+
+extern cpp_buffer *cpp_push_buffer (cpp_reader *, const unsigned char *,
+ size_t, int);
+extern int cpp_defined (cpp_reader *, const unsigned char *, int);
+
+/* A preprocessing number. Code assumes that any unused high bits of
+ the double integer are set to zero. */
+typedef unsigned HOST_WIDE_INT cpp_num_part;
+typedef struct cpp_num cpp_num;
+struct cpp_num
+{
+ cpp_num_part high;
+ cpp_num_part low;
+ bool unsignedp; /* True if value should be treated as unsigned. */
+ bool overflow; /* True if the most recent calculation overflowed. */
+};
+
+/* cpplib provides two interfaces for interpretation of preprocessing
+ numbers.
+
+ cpp_classify_number categorizes numeric constants according to
+ their field (integer, floating point, or invalid), radix (decimal,
+ octal, hexadecimal), and type suffixes. */
+
+#define CPP_N_CATEGORY 0x000F
+#define CPP_N_INVALID 0x0000
+#define CPP_N_INTEGER 0x0001
+#define CPP_N_FLOATING 0x0002
+
+#define CPP_N_WIDTH 0x00F0
+#define CPP_N_SMALL 0x0010 /* int, float, shrot _Fract/Accum */
+#define CPP_N_MEDIUM 0x0020 /* long, double, long _Fract/_Accum. */
+#define CPP_N_LARGE 0x0040 /* long long, long double,
+ long long _Fract/Accum. */
+
+#define CPP_N_WIDTH_MD 0xF0000 /* machine defined. */
+#define CPP_N_MD_W 0x10000
+#define CPP_N_MD_Q 0x20000
+
+#define CPP_N_RADIX 0x0F00
+#define CPP_N_DECIMAL 0x0100
+#define CPP_N_HEX 0x0200
+#define CPP_N_OCTAL 0x0400
+#define CPP_N_BINARY 0x0800
+
+#define CPP_N_UNSIGNED 0x1000 /* Properties. */
+#define CPP_N_IMAGINARY 0x2000
+#define CPP_N_DFLOAT 0x4000
+#define CPP_N_DEFAULT 0x8000
+
+#define CPP_N_FRACT 0x100000 /* Fract types. */
+#define CPP_N_ACCUM 0x200000 /* Accum types. */
+
+#define CPP_N_USERDEF 0x1000000 /* C++0x user-defined literal. */
+
+/* Classify a CPP_NUMBER token. The return value is a combination of
+ the flags from the above sets. */
+extern unsigned cpp_classify_number (cpp_reader *, const cpp_token *,
+ const char **, source_location);
+
+/* Return the classification flags for a float suffix. */
+extern unsigned int cpp_interpret_float_suffix (cpp_reader *, const char *,
+ size_t);
+
+/* Return the classification flags for an int suffix. */
+extern unsigned int cpp_interpret_int_suffix (cpp_reader *, const char *,
+ size_t);
+
+/* Evaluate a token classified as category CPP_N_INTEGER. */
+extern cpp_num cpp_interpret_integer (cpp_reader *, const cpp_token *,
+ unsigned int);
+
+/* Sign extend a number, with PRECISION significant bits and all
+ others assumed clear, to fill out a cpp_num structure. */
+cpp_num cpp_num_sign_extend (cpp_num, size_t);
+
+/* Diagnostic levels. To get a diagnostic without associating a
+ position in the translation unit with it, use cpp_error_with_line
+ with a line number of zero. */
+
+enum {
+ /* Warning, an error with -Werror. */
+ CPP_DL_WARNING = 0,
+ /* Same as CPP_DL_WARNING, except it is not suppressed in system headers. */
+ CPP_DL_WARNING_SYSHDR,
+ /* Warning, an error with -pedantic-errors or -Werror. */
+ CPP_DL_PEDWARN,
+ /* An error. */
+ CPP_DL_ERROR,
+ /* An internal consistency check failed. Prints "internal error: ",
+ otherwise the same as CPP_DL_ERROR. */
+ CPP_DL_ICE,
+ /* An informative note following a warning. */
+ CPP_DL_NOTE,
+ /* A fatal error. */
+ CPP_DL_FATAL
+};
+
+/* Warning reason codes. Use a reason code of zero for unclassified warnings
+ and errors that are not warnings. */
+enum {
+ CPP_W_NONE = 0,
+ CPP_W_DEPRECATED,
+ CPP_W_COMMENTS,
+ CPP_W_MISSING_INCLUDE_DIRS,
+ CPP_W_TRIGRAPHS,
+ CPP_W_MULTICHAR,
+ CPP_W_TRADITIONAL,
+ CPP_W_LONG_LONG,
+ CPP_W_ENDIF_LABELS,
+ CPP_W_NUM_SIGN_CHANGE,
+ CPP_W_VARIADIC_MACROS,
+ CPP_W_BUILTIN_MACRO_REDEFINED,
+ CPP_W_DOLLARS,
+ CPP_W_UNDEF,
+ CPP_W_UNUSED_MACROS,
+ CPP_W_CXX_OPERATOR_NAMES,
+ CPP_W_NORMALIZE,
+ CPP_W_INVALID_PCH,
+ CPP_W_WARNING_DIRECTIVE,
+ CPP_W_LITERAL_SUFFIX,
+ CPP_W_DATE_TIME
+};
+
+/* Output a diagnostic of some kind. */
+extern bool cpp_error (cpp_reader *, int, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_3;
+extern bool cpp_warning (cpp_reader *, int, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_3;
+extern bool cpp_pedwarning (cpp_reader *, int, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_3;
+extern bool cpp_warning_syshdr (cpp_reader *, int, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_3;
+
+/* Output a diagnostic with "MSGID: " preceding the
+ error string of errno. No location is printed. */
+extern bool cpp_errno (cpp_reader *, int, const char *msgid);
+
+/* Same as cpp_error, except additionally specifies a position as a
+ (translation unit) physical line and physical column. If the line is
+ zero, then no location is printed. */
+extern bool cpp_error_with_line (cpp_reader *, int, source_location,
+ unsigned, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_5;
+extern bool cpp_warning_with_line (cpp_reader *, int, source_location,
+ unsigned, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_5;
+extern bool cpp_pedwarning_with_line (cpp_reader *, int, source_location,
+ unsigned, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_5;
+extern bool cpp_warning_with_line_syshdr (cpp_reader *, int, source_location,
+ unsigned, const char *msgid, ...)
+ ATTRIBUTE_PRINTF_5;
+
+/* In lex.c */
+extern int cpp_ideq (const cpp_token *, const char *);
+extern void cpp_output_line (cpp_reader *, FILE *);
+extern unsigned char *cpp_output_line_to_string (cpp_reader *,
+ const unsigned char *);
+extern void cpp_output_token (const cpp_token *, FILE *);
+extern const char *cpp_type2name (enum cpp_ttype, unsigned char flags);
+/* Returns the value of an escape sequence, truncated to the correct
+ target precision. PSTR points to the input pointer, which is just
+ after the backslash. LIMIT is how much text we have. WIDE is true
+ if the escape sequence is part of a wide character constant or
+ string literal. Handles all relevant diagnostics. */
+extern cppchar_t cpp_parse_escape (cpp_reader *, const unsigned char ** pstr,
+ const unsigned char *limit, int wide);
+
+/* Structure used to hold a comment block at a given location in the
+ source code. */
+
+typedef struct
+{
+ /* Text of the comment including the terminators. */
+ char *comment;
+
+ /* source location for the given comment. */
+ source_location sloc;
+} cpp_comment;
+
+/* Structure holding all comments for a given cpp_reader. */
+
+typedef struct
+{
+ /* table of comment entries. */
+ cpp_comment *entries;
+
+ /* number of actual entries entered in the table. */
+ int count;
+
+ /* number of entries allocated currently. */
+ int allocated;
+} cpp_comment_table;
+
+/* Returns the table of comments encountered by the preprocessor. This
+ table is only populated when pfile->state.save_comments is true. */
+extern cpp_comment_table *cpp_get_comments (cpp_reader *);
+
+/* In hash.c */
+
+/* Lookup an identifier in the hashtable. Puts the identifier in the
+ table if it is not already there. */
+extern cpp_hashnode *cpp_lookup (cpp_reader *, const unsigned char *,
+ unsigned int);
+
+typedef int (*cpp_cb) (cpp_reader *, cpp_hashnode *, void *);
+extern void cpp_forall_identifiers (cpp_reader *, cpp_cb, void *);
+
+/* In macro.c */
+extern void cpp_scan_nooutput (cpp_reader *);
+extern int cpp_sys_macro_p (cpp_reader *);
+extern unsigned char *cpp_quote_string (unsigned char *, const unsigned char *,
+ unsigned int);
+
+/* In files.c */
+extern bool cpp_included (cpp_reader *, const char *);
+extern bool cpp_included_before (cpp_reader *, const char *, source_location);
+extern void cpp_make_system_header (cpp_reader *, int, int);
+extern bool cpp_push_include (cpp_reader *, const char *);
+extern bool cpp_push_default_include (cpp_reader *, const char *);
+extern void cpp_change_file (cpp_reader *, enum lc_reason, const char *);
+extern const char *cpp_get_path (struct _cpp_file *);
+extern cpp_dir *cpp_get_dir (struct _cpp_file *);
+extern cpp_buffer *cpp_get_buffer (cpp_reader *);
+extern struct _cpp_file *cpp_get_file (cpp_buffer *);
+extern cpp_buffer *cpp_get_prev (cpp_buffer *);
+extern void cpp_clear_file_cache (cpp_reader *);
+
+/* In pch.c */
+struct save_macro_data;
+extern int cpp_save_state (cpp_reader *, FILE *);
+extern int cpp_write_pch_deps (cpp_reader *, FILE *);
+extern int cpp_write_pch_state (cpp_reader *, FILE *);
+extern int cpp_valid_state (cpp_reader *, const char *, int);
+extern void cpp_prepare_state (cpp_reader *, struct save_macro_data **);
+extern int cpp_read_state (cpp_reader *, const char *, FILE *,
+ struct save_macro_data *);
+
+/* In lex.c */
+extern void cpp_force_token_locations (cpp_reader *, source_location *);
+extern void cpp_stop_forcing_token_locations (cpp_reader *);
+
+/* In expr.c */
+extern enum cpp_ttype cpp_userdef_string_remove_type
+ (enum cpp_ttype type);
+extern enum cpp_ttype cpp_userdef_string_add_type
+ (enum cpp_ttype type);
+extern enum cpp_ttype cpp_userdef_char_remove_type
+ (enum cpp_ttype type);
+extern enum cpp_ttype cpp_userdef_char_add_type
+ (enum cpp_ttype type);
+extern bool cpp_userdef_string_p
+ (enum cpp_ttype type);
+extern bool cpp_userdef_char_p
+ (enum cpp_ttype type);
+extern const char * cpp_get_userdef_suffix
+ (const cpp_token *);
+
+#endif /* ! LIBCPP_CPPLIB_H */
diff --git a/gcc-4.9/libcpp/include/line-map.h b/gcc-4.9/libcpp/include/line-map.h
new file mode 100644
index 000000000..9886314b2
--- /dev/null
+++ b/gcc-4.9/libcpp/include/line-map.h
@@ -0,0 +1,785 @@
+/* Map logical line numbers to (source file, line number) pairs.
+ Copyright (C) 2001-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#ifndef LIBCPP_LINE_MAP_H
+#define LIBCPP_LINE_MAP_H
+
+#ifndef GTY
+#define GTY(x) /* nothing */
+#endif
+
+/* Reason for creating a new line map with linemap_add. LC_ENTER is
+ when including a new file, e.g. a #include directive in C.
+ LC_LEAVE is when reaching a file's end. LC_RENAME is when a file
+ name or line number changes for neither of the above reasons
+ (e.g. a #line directive in C); LC_RENAME_VERBATIM is like LC_RENAME
+ but a filename of "" is not specially interpreted as standard
+ input. LC_ENTER_MACRO is when a macro expansion is about to start. */
+enum lc_reason
+{
+ LC_ENTER = 0,
+ LC_LEAVE,
+ LC_RENAME,
+ LC_RENAME_VERBATIM,
+ LC_ENTER_MACRO
+ /* FIXME: add support for stringize and paste. */
+};
+
+/* The type of line numbers. */
+typedef unsigned int linenum_type;
+
+/* A logical line/column number, i.e. an "index" into a line_map. */
+typedef unsigned int source_location;
+
+/* Memory allocation function typedef. Works like xrealloc. */
+typedef void *(*line_map_realloc) (void *, size_t);
+
+/* Memory allocator function that returns the actual allocated size,
+ for a given requested allocation. */
+typedef size_t (*line_map_round_alloc_size_func) (size_t);
+
+/* An ordinary line map encodes physical source locations. Those
+ physical source locations are called "spelling locations".
+
+ Physical source file TO_FILE at line TO_LINE at column 0 is represented
+ by the logical START_LOCATION. TO_LINE+L at column C is represented by
+ START_LOCATION+(L*(1<<column_bits))+C, as long as C<(1<<column_bits),
+ and the result_location is less than the next line_map's start_location.
+ (The top line is line 1 and the leftmost column is column 1; line/column 0
+ means "entire file/line" or "unknown line/column" or "not applicable".)
+
+ The highest possible source location is MAX_SOURCE_LOCATION. */
+struct GTY(()) line_map_ordinary {
+ const char *to_file;
+ linenum_type to_line;
+
+ /* An index into the set that gives the line mapping at whose end
+ the current one was included. File(s) at the bottom of the
+ include stack have this set to -1. */
+ int included_from;
+
+ /* SYSP is one for a system header, two for a C system header file
+ that therefore needs to be extern "C" protected in C++, and zero
+ otherwise. This field isn't really needed now that it's in
+ cpp_buffer. */
+ unsigned char sysp;
+
+ /* Number of the low-order source_location bits used for a column number. */
+ unsigned int column_bits : 8;
+};
+
+/* This is the highest possible source location encoded within an
+ ordinary or macro map. */
+#define MAX_SOURCE_LOCATION 0x7FFFFFFF
+
+struct cpp_hashnode;
+
+/* A macro line map encodes location of tokens coming from a macro
+ expansion.
+
+ Please note that this struct line_map_macro is a field of struct
+ line_map below, go read the comments of struct line_map below and
+ then come back here.
+
+ The offset from START_LOCATION is used to index into
+ MACRO_LOCATIONS; this holds the original location of the token. */
+struct GTY(()) line_map_macro {
+ /* The cpp macro which expansion gave birth to this macro map. */
+ struct cpp_hashnode * GTY ((nested_ptr (union tree_node,
+ "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL",
+ "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL")))
+ macro;
+
+ /* The number of tokens inside the replacement-list of MACRO. */
+ unsigned int n_tokens;
+
+ /* This array of location is actually an array of pairs of
+ locations. The elements inside it thus look like:
+
+ x0,y0, x1,y1, x2,y2, ...., xn,yn.
+
+ where n == n_tokens;
+
+ Remember that these xI,yI are collected when libcpp is about to
+ expand a given macro.
+
+ yI is the location in the macro definition, either of the token
+ itself or of a macro parameter that it replaces.
+
+ Imagine this:
+
+ #define PLUS(A, B) A + B <--- #1
+
+ int a = PLUS (1,2); <--- #2
+
+ There is a macro map for the expansion of PLUS in #2. PLUS is
+ expanded into its expansion-list. The expansion-list is the
+ replacement-list of PLUS where the macro parameters are replaced
+ with their arguments. So the replacement-list of PLUS is made of
+ the tokens:
+
+ A, +, B
+
+ and the expansion-list is made of the tokens:
+
+ 1, +, 2
+
+ Let's consider the case of token "+". Its y1 [yI for I == 1] is
+ its spelling location in #1.
+
+ y0 (thus for token "1") is the spelling location of A in #1.
+
+ And y2 (of token "2") is the spelling location of B in #1.
+
+ When the token is /not/ an argument for a macro, xI is the same
+ location as yI. Otherwise, xI is the location of the token
+ outside this macro expansion. If this macro was expanded from
+ another macro expansion, xI is a virtual location representing
+ the token in that macro expansion; otherwise, it is the spelling
+ location of the token.
+
+ Note that a virtual location is a location returned by
+ linemap_add_macro_token. It encodes the relevant locations (x,y
+ pairs) of that token across the macro expansions from which it
+ (the token) might come from.
+
+ In the example above x1 (for token "+") is going to be the same
+ as y1. x0 is the spelling location for the argument token "1",
+ and x2 is the spelling location for the argument token "2". */
+ source_location * GTY((atomic)) macro_locations;
+
+ /* This is the location of the expansion point of the current macro
+ map. It's the location of the macro name. That location is held
+ by the map that was current right before the current one. It
+ could have been either a macro or an ordinary map, depending on
+ if we are in a nested expansion context not. */
+ source_location expansion;
+};
+
+/* A line_map encodes a sequence of locations.
+ There are two kinds of maps. Ordinary maps and macro expansion
+ maps, a.k.a macro maps.
+
+ A macro map encodes source locations of tokens that are part of a
+ macro replacement-list, at a macro expansion point. E.g, in:
+
+ #define PLUS(A,B) A + B
+
+ No macro map is going to be created there, because we are not at a
+ macro expansion point. We are at a macro /definition/ point. So the
+ locations of the tokens of the macro replacement-list (i.e, A + B)
+ will be locations in an ordinary map, not a macro map.
+
+ On the other hand, if we later do:
+
+ int a = PLUS (1,2);
+
+ The invocation of PLUS here is a macro expansion. So we are at a
+ macro expansion point. The preprocessor expands PLUS (1,2) and
+ replaces it with the tokens of its replacement-list: 1 + 2. A macro
+ map is going to be created to hold (or rather to map, haha ...) the
+ locations of the tokens 1, + and 2. The macro map also records the
+ location of the expansion point of PLUS. That location is mapped in
+ the map that is active right before the location of the invocation
+ of PLUS. */
+struct GTY(()) line_map {
+ source_location start_location;
+
+ /* The reason for creation of this line map. */
+ ENUM_BITFIELD (lc_reason) reason : CHAR_BIT;
+
+ union map_u {
+ struct line_map_ordinary GTY((tag ("0"))) ordinary;
+ struct line_map_macro GTY((tag ("1"))) macro;
+ } GTY((desc ("%1.reason == LC_ENTER_MACRO"))) d;
+};
+
+#define MAP_START_LOCATION(MAP) (MAP)->start_location
+
+#define ORDINARY_MAP_FILE_NAME(MAP) \
+ linemap_check_ordinary (MAP)->d.ordinary.to_file
+
+#define ORDINARY_MAP_STARTING_LINE_NUMBER(MAP) \
+ linemap_check_ordinary (MAP)->d.ordinary.to_line
+
+#define ORDINARY_MAP_INCLUDER_FILE_INDEX(MAP) \
+ linemap_check_ordinary (MAP)->d.ordinary.included_from
+
+#define ORDINARY_MAP_IN_SYSTEM_HEADER_P(MAP) \
+ linemap_check_ordinary (MAP)->d.ordinary.sysp
+
+#define ORDINARY_MAP_NUMBER_OF_COLUMN_BITS(MAP) \
+ linemap_check_ordinary (MAP)->d.ordinary.column_bits
+
+#define MACRO_MAP_MACRO(MAP) (MAP)->d.macro.macro
+
+#define MACRO_MAP_NUM_MACRO_TOKENS(MAP) (MAP)->d.macro.n_tokens
+
+#define MACRO_MAP_LOCATIONS(MAP) (MAP)->d.macro.macro_locations
+
+#define MACRO_MAP_EXPANSION_POINT_LOCATION(MAP) (MAP)->d.macro.expansion
+
+/* The abstraction of a set of location maps. There can be several
+ types of location maps. This abstraction contains the attributes
+ that are independent from the type of the map. */
+struct GTY(()) maps_info {
+ /* This array contains the different line maps.
+ A line map is created for the following events:
+ - when a new preprocessing unit start.
+ - when a preprocessing unit ends.
+ - when a macro expansion occurs. */
+ struct line_map * GTY ((length ("%h.used"))) maps;
+
+ /* The total number of allocated maps. */
+ unsigned int allocated;
+
+ /* The number of elements used in maps. This number is smaller
+ or equal to ALLOCATED. */
+ unsigned int used;
+
+ unsigned int cache;
+};
+
+/* Data structure to associate an arbitrary data to a source location. */
+struct GTY(()) location_adhoc_data {
+ source_location locus;
+ void * GTY((skip)) data;
+};
+
+struct htab;
+
+/* The following data structure encodes a location with some adhoc data
+ and maps it to a new unsigned integer (called an adhoc location)
+ that replaces the original location to represent the mapping.
+
+ The new adhoc_loc uses the highest bit as the enabling bit, i.e. if the
+ highest bit is 1, then the number is adhoc_loc. Otherwise, it serves as
+ the original location. Once identified as the adhoc_loc, the lower 31
+ bits of the integer is used to index the location_adhoc_data array,
+ in which the locus and associated data is stored. */
+
+struct GTY(()) location_adhoc_data_map {
+ struct htab * GTY((skip)) htab;
+ source_location curr_loc;
+ unsigned int allocated;
+ struct location_adhoc_data GTY((length ("%h.allocated"))) *data;
+};
+
+/* A set of chronological line_map structures. */
+struct GTY(()) line_maps {
+
+ struct maps_info info_ordinary;
+
+ struct maps_info info_macro;
+
+ /* Depth of the include stack, including the current file. */
+ unsigned int depth;
+
+ /* If true, prints an include trace a la -H. */
+ bool trace_includes;
+
+ /* Highest source_location "given out". */
+ source_location highest_location;
+
+ /* Start of line of highest source_location "given out". */
+ source_location highest_line;
+
+ /* The maximum column number we can quickly allocate. Higher numbers
+ may require allocating a new line_map. */
+ unsigned int max_column_hint;
+
+ /* If non-null, the allocator to use when resizing 'maps'. If null,
+ xrealloc is used. */
+ line_map_realloc reallocator;
+
+ /* The allocators' function used to know the actual size it
+ allocated, for a certain allocation size requested. */
+ line_map_round_alloc_size_func round_alloc_size;
+
+ struct location_adhoc_data_map location_adhoc_data_map;
+};
+
+/* Returns the pointer to the memory region where information about
+ maps are stored in the line table SET. MACRO_MAP_P is a flag
+ telling if we want macro or ordinary maps. */
+#define LINEMAPS_MAP_INFO(SET, MACRO_MAP_P) \
+ ((MACRO_MAP_P) \
+ ? &((SET)->info_macro) \
+ : &((SET)->info_ordinary))
+
+/* Returns the pointer to the memory region where maps are stored in
+ the line table SET. MAP_KIND shall be TRUE if we are interested in
+ macro maps false otherwise. */
+#define LINEMAPS_MAPS(SET, MAP_KIND) \
+ (LINEMAPS_MAP_INFO (SET, MAP_KIND))->maps
+
+/* Returns the number of allocated maps so far. MAP_KIND shall be TRUE
+ if we are interested in macro maps, FALSE otherwise. */
+#define LINEMAPS_ALLOCATED(SET, MAP_KIND) \
+ (LINEMAPS_MAP_INFO (SET, MAP_KIND))->allocated
+
+/* Returns the number of used maps so far. MAP_KIND shall be TRUE if
+ we are interested in macro maps, FALSE otherwise.*/
+#define LINEMAPS_USED(SET, MAP_KIND) \
+ (LINEMAPS_MAP_INFO (SET, MAP_KIND))->used
+
+/* Returns the index of the last map that was looked up with
+ linemap_lookup. MAP_KIND shall be TRUE if we are interested in
+ macro maps, FALSE otherwise. */
+#define LINEMAPS_CACHE(SET, MAP_KIND) \
+ (LINEMAPS_MAP_INFO (SET, MAP_KIND))->cache
+
+/* Return the map at a given index. */
+#define LINEMAPS_MAP_AT(SET, MAP_KIND, INDEX) \
+ (&((LINEMAPS_MAPS (SET, MAP_KIND))[(INDEX)]))
+
+/* Returns the last map used in the line table SET. MAP_KIND
+ shall be TRUE if we are interested in macro maps, FALSE
+ otherwise.*/
+#define LINEMAPS_LAST_MAP(SET, MAP_KIND) \
+ LINEMAPS_MAP_AT (SET, MAP_KIND, (LINEMAPS_USED (SET, MAP_KIND) - 1))
+
+/* Returns the last map that was allocated in the line table SET.
+ MAP_KIND shall be TRUE if we are interested in macro maps, FALSE
+ otherwise.*/
+#define LINEMAPS_LAST_ALLOCATED_MAP(SET, MAP_KIND) \
+ LINEMAPS_MAP_AT (SET, MAP_KIND, LINEMAPS_ALLOCATED (SET, MAP_KIND) - 1)
+
+/* Returns a pointer to the memory region where ordinary maps are
+ allocated in the line table SET. */
+#define LINEMAPS_ORDINARY_MAPS(SET) \
+ LINEMAPS_MAPS (SET, false)
+
+/* Returns the INDEXth ordinary map. */
+#define LINEMAPS_ORDINARY_MAP_AT(SET, INDEX) \
+ LINEMAPS_MAP_AT (SET, false, INDEX)
+
+/* Return the number of ordinary maps allocated in the line table
+ SET. */
+#define LINEMAPS_ORDINARY_ALLOCATED(SET) \
+ LINEMAPS_ALLOCATED(SET, false)
+
+/* Return the number of ordinary maps used in the line table SET. */
+#define LINEMAPS_ORDINARY_USED(SET) \
+ LINEMAPS_USED(SET, false)
+
+/* Return the index of the last ordinary map that was looked up with
+ linemap_lookup. */
+#define LINEMAPS_ORDINARY_CACHE(SET) \
+ LINEMAPS_CACHE(SET, false)
+
+/* Returns a pointer to the last ordinary map used in the line table
+ SET. */
+#define LINEMAPS_LAST_ORDINARY_MAP(SET) \
+ LINEMAPS_LAST_MAP(SET, false)
+
+/* Returns a pointer to the last ordinary map allocated the line table
+ SET. */
+#define LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP(SET) \
+ LINEMAPS_LAST_ALLOCATED_MAP(SET, false)
+
+/* Returns a pointer to the beginning of the region where macro maps
+ are allcoated. */
+#define LINEMAPS_MACRO_MAPS(SET) \
+ LINEMAPS_MAPS(SET, true)
+
+/* Returns the INDEXth macro map. */
+#define LINEMAPS_MACRO_MAP_AT(SET, INDEX) \
+ LINEMAPS_MAP_AT (SET, true, INDEX)
+
+/* Returns the number of macro maps that were allocated in the line
+ table SET. */
+#define LINEMAPS_MACRO_ALLOCATED(SET) \
+ LINEMAPS_ALLOCATED(SET, true)
+
+/* Returns the number of macro maps used in the line table SET. */
+#define LINEMAPS_MACRO_USED(SET) \
+ LINEMAPS_USED(SET, true)
+
+/* Returns the index of the last macro map looked up with
+ linemap_lookup. */
+#define LINEMAPS_MACRO_CACHE(SET) \
+ LINEMAPS_CACHE(SET, true)
+
+/* Returns the lowest location [of a token resulting from macro
+ expansion] encoded in this line table. */
+#define LINEMAPS_MACRO_LOWEST_LOCATION(SET) \
+ (LINEMAPS_MACRO_USED (set) \
+ ? MAP_START_LOCATION (LINEMAPS_LAST_MACRO_MAP (set)) \
+ : MAX_SOURCE_LOCATION)
+
+/* Returns the last macro map used in the line table SET. */
+#define LINEMAPS_LAST_MACRO_MAP(SET) \
+ LINEMAPS_LAST_MAP (SET, true)
+
+/* Returns the last macro map allocated in the line table SET. */
+#define LINEMAPS_LAST_ALLOCATED_MACRO_MAP(SET) \
+ LINEMAPS_LAST_ALLOCATED_MAP (SET, true)
+
+extern void location_adhoc_data_fini (struct line_maps *);
+extern source_location get_combined_adhoc_loc (struct line_maps *,
+ source_location, void *);
+extern void *get_data_from_adhoc_loc (struct line_maps *, source_location);
+extern source_location get_location_from_adhoc_loc (struct line_maps *,
+ source_location);
+
+#define IS_ADHOC_LOC(LOC) (((LOC) & MAX_SOURCE_LOCATION) != (LOC))
+#define COMBINE_LOCATION_DATA(SET, LOC, BLOCK) \
+ get_combined_adhoc_loc ((SET), (LOC), (BLOCK))
+
+extern void rebuild_location_adhoc_htab (struct line_maps *);
+
+/* Initialize a line map set. */
+extern void linemap_init (struct line_maps *);
+
+/* Check for and warn about line_maps entered but not exited. */
+
+extern void linemap_check_files_exited (struct line_maps *);
+
+/* Return a source_location for the start (i.e. column==0) of
+ (physical) line TO_LINE in the current source file (as in the
+ most recent linemap_add). MAX_COLUMN_HINT is the highest column
+ number we expect to use in this line (but it does not change
+ the highest_location). */
+
+extern source_location linemap_line_start
+(struct line_maps *set, linenum_type to_line, unsigned int max_column_hint);
+
+/* Add a mapping of logical source line to physical source file and
+ line number. This function creates an "ordinary map", which is a
+ map that records locations of tokens that are not part of macro
+ replacement-lists present at a macro expansion point.
+
+ The text pointed to by TO_FILE must have a lifetime
+ at least as long as the lifetime of SET. An empty
+ TO_FILE means standard input. If reason is LC_LEAVE, and
+ TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
+ natural values considering the file we are returning to.
+
+ A call to this function can relocate the previous set of
+ maps, so any stored line_map pointers should not be used. */
+extern const struct line_map *linemap_add
+ (struct line_maps *, enum lc_reason, unsigned int sysp,
+ const char *to_file, linenum_type to_line);
+
+/* Given a logical source location, returns the map which the
+ corresponding (source file, line, column) triplet can be deduced
+ from. Since the set is built chronologically, the logical lines are
+ monotonic increasing, and so the list is sorted and we can use a
+ binary search. If no line map have been allocated yet, this
+ function returns NULL. */
+extern const struct line_map *linemap_lookup
+ (struct line_maps *, source_location);
+
+/* Returns TRUE if the line table set tracks token locations across
+ macro expansion, FALSE otherwise. */
+bool linemap_tracks_macro_expansion_locs_p (struct line_maps *);
+
+/* Return TRUE if MAP encodes locations coming from a macro
+ replacement-list at macro expansion point. */
+bool linemap_macro_expansion_map_p (const struct line_map *);
+
+/* Return the name of the macro associated to MACRO_MAP. */
+const char* linemap_map_get_macro_name (const struct line_map*);
+
+/* Return a positive value if LOCATION is the locus of a token that is
+ located in a system header, O otherwise. It returns 1 if LOCATION
+ is the locus of a token that is located in a system header, and 2
+ if LOCATION is the locus of a token located in a C system header
+ that therefore needs to be extern "C" protected in C++.
+
+ Note that this function returns 1 if LOCATION belongs to a token
+ that is part of a macro replacement-list defined in a system
+ header, but expanded in a non-system file. */
+int linemap_location_in_system_header_p (struct line_maps *,
+ source_location);
+
+/* Return TRUE if LOCATION is a source code location of a token coming
+ from a macro replacement-list at a macro expansion point, FALSE
+ otherwise. */
+bool linemap_location_from_macro_expansion_p (struct line_maps *,
+ source_location);
+
+/* source_location values from 0 to RESERVED_LOCATION_COUNT-1 will
+ be reserved for libcpp user as special values, no token from libcpp
+ will contain any of those locations. */
+#define RESERVED_LOCATION_COUNT 2
+
+/* Converts a map and a source_location to source line. */
+#define SOURCE_LINE(MAP, LOC) \
+ (((((LOC) - linemap_check_ordinary (MAP)->start_location) \
+ >> (MAP)->d.ordinary.column_bits) + (MAP)->d.ordinary.to_line))
+
+/* Convert a map and source_location to source column number. */
+#define SOURCE_COLUMN(MAP, LOC) \
+ ((((LOC) - linemap_check_ordinary (MAP)->start_location) \
+ & ((1 << (MAP)->d.ordinary.column_bits) - 1)))
+
+/* Returns the last source line number within an ordinary map. This
+ is the (last) line of the #include, or other directive, that caused
+ a map change. */
+#define LAST_SOURCE_LINE(MAP) \
+ SOURCE_LINE (MAP, LAST_SOURCE_LINE_LOCATION (MAP))
+
+/* Return the last column number within an ordinary map. */
+#define LAST_SOURCE_COLUMN(MAP) \
+ SOURCE_COLUMN (MAP, LAST_SOURCE_LINE_LOCATION (MAP))
+
+/* Return the location of the last source line within an ordinary
+ map. */
+#define LAST_SOURCE_LINE_LOCATION(MAP) \
+ ((((linemap_check_ordinary (MAP)[1].start_location - 1 \
+ - (MAP)->start_location) \
+ & ~((1 << (MAP)->d.ordinary.column_bits) - 1)) \
+ + (MAP)->start_location))
+
+/* Returns the map a given map was included from, or NULL if the map
+ belongs to the main file, i.e, a file that wasn't included by
+ another one. */
+#define INCLUDED_FROM(SET, MAP) \
+ ((linemap_check_ordinary (MAP)->d.ordinary.included_from == -1) \
+ ? NULL \
+ : (&LINEMAPS_ORDINARY_MAPS (SET)[(MAP)->d.ordinary.included_from]))
+
+/* Nonzero if the map is at the bottom of the include stack. */
+#define MAIN_FILE_P(MAP) \
+ ((linemap_check_ordinary (MAP)->d.ordinary.included_from < 0))
+
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
+
+/* Assertion macro to be used in line-map code. */
+#define linemap_assert(EXPR) \
+ do { \
+ if (! (EXPR)) \
+ abort (); \
+ } while (0)
+
+/* Assert that MAP encodes locations of tokens that are not part of
+ the replacement-list of a macro expansion. */
+#define linemap_check_ordinary(LINE_MAP) __extension__ \
+ ({linemap_assert (!linemap_macro_expansion_map_p (LINE_MAP)); \
+ (LINE_MAP);})
+#else
+#define linemap_assert(EXPR)
+#define linemap_check_ordinary(LINE_MAP) (LINE_MAP)
+#endif
+
+/* Encode and return a source_location from a column number. The
+ source line considered is the last source line used to call
+ linemap_line_start, i.e, the last source line which a location was
+ encoded from. */
+extern source_location
+linemap_position_for_column (struct line_maps *, unsigned int);
+
+/* Encode and return a source location from a given line and
+ column. */
+source_location linemap_position_for_line_and_column (struct line_map *,
+ linenum_type,
+ unsigned int);
+/* Return the file this map is for. */
+#define LINEMAP_FILE(MAP) \
+ (linemap_check_ordinary (MAP)->d.ordinary.to_file)
+
+/* Return the line number this map started encoding location from. */
+#define LINEMAP_LINE(MAP) \
+ (linemap_check_ordinary (MAP)->d.ordinary.to_line)
+
+/* Return a positive value if map encodes locations from a system
+ header, 0 otherwise. Returns 1 if MAP encodes locations in a
+ system header and 2 if it encodes locations in a C system header
+ that therefore needs to be extern "C" protected in C++. */
+#define LINEMAP_SYSP(MAP) \
+ (linemap_check_ordinary (MAP)->d.ordinary.sysp)
+
+/* Return a positive value if PRE denotes the location of a token that
+ comes before the token of POST, 0 if PRE denotes the location of
+ the same token as the token for POST, and a negative value
+ otherwise. */
+int linemap_compare_locations (struct line_maps *set,
+ source_location pre,
+ source_location post);
+
+/* Return TRUE if LOC_A denotes the location a token that comes
+ topogically before the token denoted by location LOC_B, or if they
+ are equal. */
+#define linemap_location_before_p(SET, LOC_A, LOC_B) \
+ (linemap_compare_locations ((SET), (LOC_A), (LOC_B)) >= 0)
+
+typedef struct
+{
+ /* The name of the source file involved. */
+ const char *file;
+
+ /* The line-location in the source file. */
+ int line;
+
+ int column;
+
+ void *data;
+
+ /* In a system header?. */
+ bool sysp;
+} expanded_location;
+
+/* This is enum is used by the function linemap_resolve_location
+ below. The meaning of the values is explained in the comment of
+ that function. */
+enum location_resolution_kind
+{
+ LRK_MACRO_EXPANSION_POINT,
+ LRK_SPELLING_LOCATION,
+ LRK_MACRO_DEFINITION_LOCATION
+};
+
+/* Resolve a virtual location into either a spelling location, an
+ expansion point location or a token argument replacement point
+ location. Return the map that encodes the virtual location as well
+ as the resolved location.
+
+ If LOC is *NOT* the location of a token resulting from the
+ expansion of a macro, then the parameter LRK (which stands for
+ Location Resolution Kind) is ignored and the resulting location
+ just equals the one given in argument.
+
+ Now if LOC *IS* the location of a token resulting from the
+ expansion of a macro, this is what happens.
+
+ * If LRK is set to LRK_MACRO_EXPANSION_POINT
+ -------------------------------
+
+ The virtual location is resolved to the first macro expansion point
+ that led to this macro expansion.
+
+ * If LRK is set to LRK_SPELLING_LOCATION
+ -------------------------------------
+
+ The virtual location is resolved to the locus where the token has
+ been spelled in the source. This can follow through all the macro
+ expansions that led to the token.
+
+ * If LRK is set to LRK_MACRO_DEFINITION_LOCATION
+ --------------------------------------
+
+ The virtual location is resolved to the locus of the token in the
+ context of the macro definition.
+
+ If LOC is the locus of a token that is an argument of a
+ function-like macro [replacing a parameter in the replacement list
+ of the macro] the virtual location is resolved to the locus of the
+ parameter that is replaced, in the context of the definition of the
+ macro.
+
+ If LOC is the locus of a token that is not an argument of a
+ function-like macro, then the function behaves as if LRK was set to
+ LRK_SPELLING_LOCATION.
+
+ If LOC_MAP is not NULL, *LOC_MAP is set to the map encoding the
+ returned location. Note that if the returned location wasn't originally
+ encoded by a map, the *MAP is set to NULL. This can happen if LOC
+ resolves to a location reserved for the client code, like
+ UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */
+
+source_location linemap_resolve_location (struct line_maps *,
+ source_location loc,
+ enum location_resolution_kind lrk,
+ const struct line_map **loc_map);
+
+/* Suppose that LOC is the virtual location of a token coming from the
+ expansion of a macro M. This function then steps up to get the
+ location L of the point where M got expanded. If L is a spelling
+ location inside a macro expansion M', then this function returns
+ the point where M' was expanded. LOC_MAP is an output parameter.
+ When non-NULL, *LOC_MAP is set to the map of the returned
+ location. */
+source_location linemap_unwind_toward_expansion (struct line_maps *,
+ source_location loc,
+ const struct line_map **loc_map);
+
+/* If LOC is the virtual location of a token coming from the expansion
+ of a macro M and if its spelling location is reserved (e.g, a
+ location for a built-in token), then this function unwinds (using
+ linemap_unwind_toward_expansion) the location until a location that
+ is not reserved and is not in a system header is reached. In other
+ words, this unwinds the reserved location until a location that is
+ in real source code is reached.
+
+ Otherwise, if the spelling location for LOC is not reserved or if
+ LOC doesn't come from the expansion of a macro, the function
+ returns LOC as is and *MAP is not touched.
+
+ *MAP is set to the map of the returned location if the later is
+ different from LOC. */
+source_location linemap_unwind_to_first_non_reserved_loc (struct line_maps *,
+ source_location loc,
+ const struct line_map **map);
+
+/* Expand source code location LOC and return a user readable source
+ code location. LOC must be a spelling (non-virtual) location. If
+ it's a location < RESERVED_LOCATION_COUNT a zeroed expanded source
+ location is returned. */
+expanded_location linemap_expand_location (struct line_maps *,
+ const struct line_map *,
+ source_location loc);
+
+/* Statistics about maps allocation and usage as returned by
+ linemap_get_statistics. */
+struct linemap_stats
+{
+ long num_ordinary_maps_allocated;
+ long num_ordinary_maps_used;
+ long ordinary_maps_allocated_size;
+ long ordinary_maps_used_size;
+ long num_expanded_macros;
+ long num_macro_tokens;
+ long num_macro_maps_used;
+ long macro_maps_allocated_size;
+ long macro_maps_used_size;
+ long macro_maps_locations_size;
+ long duplicated_macro_maps_locations_size;
+};
+
+/* Return the highest location emitted for a given file for which
+ there is a line map in SET. FILE_NAME is the file name to
+ consider. If the function returns TRUE, *LOC is set to the highest
+ location emitted for that file. */
+bool linemap_get_file_highest_location (struct line_maps * set,
+ const char *file_name,
+ source_location *loc);
+
+/* Compute and return statistics about the memory consumption of some
+ parts of the line table SET. */
+void linemap_get_statistics (struct line_maps *, struct linemap_stats *);
+
+/* Dump debugging information about source location LOC into the file
+ stream STREAM. SET is the line map set LOC comes from. */
+void linemap_dump_location (struct line_maps *, source_location, FILE *);
+
+/* Dump line map at index IX in line table SET to STREAM. If STREAM
+ is NULL, use stderr. IS_MACRO is true if the caller wants to
+ dump a macro map, false otherwise. */
+void linemap_dump (FILE *, struct line_maps *, unsigned, bool);
+
+/* Dump line table SET to STREAM. If STREAM is NULL, stderr is used.
+ NUM_ORDINARY specifies how many ordinary maps to dump. NUM_MACRO
+ specifies how many macro maps to dump. */
+void line_table_dump (FILE *, struct line_maps *, unsigned int, unsigned int);
+
+#endif /* !LIBCPP_LINE_MAP_H */
diff --git a/gcc-4.9/libcpp/include/mkdeps.h b/gcc-4.9/libcpp/include/mkdeps.h
new file mode 100644
index 000000000..05ebd4e45
--- /dev/null
+++ b/gcc-4.9/libcpp/include/mkdeps.h
@@ -0,0 +1,79 @@
+/* Dependency generator for Makefile fragments.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+ Contributed by Zack Weinberg, Mar 2000
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#ifndef LIBCPP_MKDEPS_H
+#define LIBCPP_MKDEPS_H
+
+/* This is the data structure used by all the functions in mkdeps.c.
+ It's quite straightforward, but should be treated as opaque. */
+
+struct deps;
+
+/* Create a deps buffer. */
+extern struct deps *deps_init (void);
+
+/* Destroy a deps buffer. */
+extern void deps_free (struct deps *);
+
+/* Add a set of "vpath" directories. The second argument is a colon-
+ separated list of pathnames, like you would set Make's VPATH
+ variable to. If a dependency or target name begins with any of
+ these pathnames (and the next path element is not "..") that
+ pathname is stripped off. */
+extern void deps_add_vpath (struct deps *, const char *);
+
+/* Add a target (appears on left side of the colon) to the deps list. Takes
+ a boolean indicating whether to quote the target for MAKE. */
+extern void deps_add_target (struct deps *, const char *, int);
+
+/* Sets the default target if none has been given already. An empty
+ string as the default target is interpreted as stdin. */
+extern void deps_add_default_target (struct deps *, const char *);
+
+/* Add a dependency (appears on the right side of the colon) to the
+ deps list. Dependencies will be printed in the order that they
+ were entered with this function. By convention, the first
+ dependency entered should be the primary source file. */
+extern void deps_add_dep (struct deps *, const char *);
+
+/* Write out a deps buffer to a specified file. The third argument
+ is the number of columns to word-wrap at (0 means don't wrap). */
+extern void deps_write (const struct deps *, FILE *, unsigned int);
+
+/* Write out a deps buffer to a file, in a form that can be read back
+ with deps_restore. Returns nonzero on error, in which case the
+ error number will be in errno. */
+extern int deps_save (struct deps *, FILE *);
+
+/* Read back dependency information written with deps_save into
+ the deps buffer. The third argument may be NULL, in which case
+ the dependency information is just skipped, or it may be a filename,
+ in which case that filename is skipped. */
+extern int deps_restore (struct deps *, FILE *, const char *);
+
+/* For each dependency *except the first*, emit a dummy rule for that
+ file, causing it to depend on nothing. This is used to work around
+ the intermediate-file deletion misfeature in Make, in some
+ automatic dependency schemes. */
+extern void deps_phony_targets (const struct deps *, FILE *);
+
+#endif /* ! LIBCPP_MKDEPS_H */
diff --git a/gcc-4.9/libcpp/include/symtab.h b/gcc-4.9/libcpp/include/symtab.h
new file mode 100644
index 000000000..91a56c729
--- /dev/null
+++ b/gcc-4.9/libcpp/include/symtab.h
@@ -0,0 +1,103 @@
+/* Hash tables.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef LIBCPP_SYMTAB_H
+#define LIBCPP_SYMTAB_H
+
+#include "obstack.h"
+
+#ifndef GTY
+#define GTY(x) /* nothing */
+#endif
+
+/* This is what each hash table entry points to. It may be embedded
+ deeply within another object. */
+typedef struct ht_identifier ht_identifier;
+typedef struct ht_identifier *ht_identifier_ptr;
+struct GTY(()) ht_identifier {
+ const unsigned char *str;
+ unsigned int len;
+ unsigned int hash_value;
+};
+
+#define HT_LEN(NODE) ((NODE)->len)
+#define HT_STR(NODE) ((NODE)->str)
+
+typedef struct ht cpp_hash_table;
+typedef struct ht_identifier *hashnode;
+
+enum ht_lookup_option {HT_NO_INSERT = 0, HT_ALLOC};
+
+/* An identifier hash table for cpplib and the front ends. */
+struct ht
+{
+ /* Identifiers are allocated from here. */
+ struct obstack stack;
+
+ hashnode *entries;
+ /* Call back, allocate a node. */
+ hashnode (*alloc_node) (cpp_hash_table *);
+ /* Call back, allocate something that hangs off a node like a cpp_macro.
+ NULL means use the usual allocator. */
+ void * (*alloc_subobject) (size_t);
+
+ unsigned int nslots; /* Total slots in the entries array. */
+ unsigned int nelements; /* Number of live elements. */
+
+ /* Link to reader, if any. For the benefit of cpplib. */
+ struct cpp_reader *pfile;
+
+ /* Table usage statistics. */
+ unsigned int searches;
+ unsigned int collisions;
+
+ /* Should 'entries' be freed when it is no longer needed? */
+ bool entries_owned;
+};
+
+/* Initialize the hashtable with 2 ^ order entries. */
+extern cpp_hash_table *ht_create (unsigned int order);
+
+/* Frees all memory associated with a hash table. */
+extern void ht_destroy (cpp_hash_table *);
+
+extern hashnode ht_lookup (cpp_hash_table *, const unsigned char *,
+ size_t, enum ht_lookup_option);
+extern hashnode ht_lookup_with_hash (cpp_hash_table *, const unsigned char *,
+ size_t, unsigned int,
+ enum ht_lookup_option);
+#define HT_HASHSTEP(r, c) ((r) * 67 + ((c) - 113));
+#define HT_HASHFINISH(r, len) ((r) + (len))
+
+/* For all nodes in TABLE, make a callback. The callback takes
+ TABLE->PFILE, the node, and a PTR, and the callback sequence stops
+ if the callback returns zero. */
+typedef int (*ht_cb) (struct cpp_reader *, hashnode, const void *);
+extern void ht_forall (cpp_hash_table *, ht_cb, const void *);
+
+/* For all nodes in TABLE, call the callback. If the callback returns
+ a nonzero value, the node is removed from the table. */
+extern void ht_purge (cpp_hash_table *, ht_cb, const void *);
+
+/* Restore the hash table. */
+extern void ht_load (cpp_hash_table *ht, hashnode *entries,
+ unsigned int nslots, unsigned int nelements, bool own);
+
+/* Dump allocation statistics to stderr. */
+extern void ht_dump_statistics (cpp_hash_table *);
+
+#endif /* LIBCPP_SYMTAB_H */
diff --git a/gcc-4.9/libcpp/init.c b/gcc-4.9/libcpp/init.c
new file mode 100644
index 000000000..f10413ab3
--- /dev/null
+++ b/gcc-4.9/libcpp/init.c
@@ -0,0 +1,771 @@
+/* CPP Library.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Contributed by Per Bothner, 1994-95.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+#include "mkdeps.h"
+#include "localedir.h"
+#include "filenames.h"
+
+#ifndef ENABLE_CANONICAL_SYSTEM_HEADERS
+#define ENABLE_CANONICAL_SYSTEM_HEADERS 0
+#endif
+
+static void init_library (void);
+static void mark_named_operators (cpp_reader *, int);
+static void read_original_filename (cpp_reader *);
+static void read_original_directory (cpp_reader *);
+static void post_options (cpp_reader *);
+
+/* If we have designated initializers (GCC >2.7) these tables can be
+ initialized, constant data. Otherwise, they have to be filled in at
+ runtime. */
+#if HAVE_DESIGNATED_INITIALIZERS
+
+#define init_trigraph_map() /* Nothing. */
+#define TRIGRAPH_MAP \
+__extension__ const uchar _cpp_trigraph_map[UCHAR_MAX + 1] = {
+
+#define END };
+#define s(p, v) [p] = v,
+
+#else
+
+#define TRIGRAPH_MAP uchar _cpp_trigraph_map[UCHAR_MAX + 1] = { 0 }; \
+ static void init_trigraph_map (void) { \
+ unsigned char *x = _cpp_trigraph_map;
+
+#define END }
+#define s(p, v) x[p] = v;
+
+#endif
+
+TRIGRAPH_MAP
+ s('=', '#') s(')', ']') s('!', '|')
+ s('(', '[') s('\'', '^') s('>', '}')
+ s('/', '\\') s('<', '{') s('-', '~')
+END
+
+#undef s
+#undef END
+#undef TRIGRAPH_MAP
+
+/* A set of booleans indicating what CPP features each source language
+ requires. */
+struct lang_flags
+{
+ char c99;
+ char cplusplus;
+ char extended_numbers;
+ char extended_identifiers;
+ char c11_identifiers;
+ char std;
+ char cplusplus_comments;
+ char digraphs;
+ char uliterals;
+ char rliterals;
+ char user_literals;
+ char binary_constants;
+ char digit_separators;
+};
+
+static const struct lang_flags lang_defaults[] =
+{ /* c99 c++ xnum xid c11 std // digr ulit rlit udlit bin_cst dig_sep */
+ /* GNUC89 */ { 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 },
+ /* GNUC99 */ { 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0 },
+ /* GNUC11 */ { 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0 },
+ /* STDC89 */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
+ /* STDC94 */ { 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0 },
+ /* STDC99 */ { 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0 },
+ /* STDC11 */ { 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+ /* GNUCXX */ { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 },
+ /* CXX98 */ { 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0 },
+ /* GNUCXX11 */ { 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0 },
+ /* CXX11 */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 },
+ /* GNUCXX1Y */ { 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
+ /* CXX1Y */ { 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ /* ASM */ { 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
+ /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, CXX11,
+ GNUCXX1Y, and CXX1Y when no longer experimental (when all uses of
+ identifiers in the compiler have been audited for correct handling
+ of extended identifiers). */
+};
+
+/* Sets internal flags correctly for a given language. */
+void
+cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
+{
+ const struct lang_flags *l = &lang_defaults[(int) lang];
+
+ CPP_OPTION (pfile, lang) = lang;
+
+ CPP_OPTION (pfile, c99) = l->c99;
+ CPP_OPTION (pfile, cplusplus) = l->cplusplus;
+ CPP_OPTION (pfile, extended_numbers) = l->extended_numbers;
+ CPP_OPTION (pfile, extended_identifiers) = l->extended_identifiers;
+ CPP_OPTION (pfile, c11_identifiers) = l->c11_identifiers;
+ CPP_OPTION (pfile, std) = l->std;
+ CPP_OPTION (pfile, trigraphs) = l->std;
+ CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments;
+ CPP_OPTION (pfile, digraphs) = l->digraphs;
+ CPP_OPTION (pfile, uliterals) = l->uliterals;
+ CPP_OPTION (pfile, rliterals) = l->rliterals;
+ CPP_OPTION (pfile, user_literals) = l->user_literals;
+ CPP_OPTION (pfile, binary_constants) = l->binary_constants;
+ CPP_OPTION (pfile, digit_separators) = l->digit_separators;
+}
+
+/* Initialize library global state. */
+static void
+init_library (void)
+{
+ static int initialized = 0;
+
+ if (! initialized)
+ {
+ initialized = 1;
+
+ _cpp_init_lexer ();
+
+ /* Set up the trigraph map. This doesn't need to do anything if
+ we were compiled with a compiler that supports C99 designated
+ initializers. */
+ init_trigraph_map ();
+
+#ifdef ENABLE_NLS
+ (void) bindtextdomain (PACKAGE, LOCALEDIR);
+#endif
+ }
+}
+
+/* Initialize a cpp_reader structure. */
+cpp_reader *
+cpp_create_reader (enum c_lang lang, cpp_hash_table *table,
+ struct line_maps *line_table)
+{
+ cpp_reader *pfile;
+
+ /* Initialize this instance of the library if it hasn't been already. */
+ init_library ();
+
+ pfile = XCNEW (cpp_reader);
+ memset (&pfile->base_context, 0, sizeof (pfile->base_context));
+
+ cpp_set_lang (pfile, lang);
+ CPP_OPTION (pfile, warn_multichar) = 1;
+ CPP_OPTION (pfile, discard_comments) = 1;
+ CPP_OPTION (pfile, discard_comments_in_macro_exp) = 1;
+ CPP_OPTION (pfile, tabstop) = 8;
+ CPP_OPTION (pfile, operator_names) = 1;
+ CPP_OPTION (pfile, warn_trigraphs) = 2;
+ CPP_OPTION (pfile, warn_endif_labels) = 1;
+ CPP_OPTION (pfile, cpp_warn_deprecated) = 1;
+ CPP_OPTION (pfile, cpp_warn_long_long) = 0;
+ CPP_OPTION (pfile, dollars_in_ident) = 1;
+ CPP_OPTION (pfile, warn_dollars) = 1;
+ CPP_OPTION (pfile, warn_variadic_macros) = 1;
+ CPP_OPTION (pfile, warn_builtin_macro_redefined) = 1;
+ /* By default, track locations of tokens resulting from macro
+ expansion. The '2' means, track the locations with the highest
+ accuracy. Read the comments for struct
+ cpp_options::track_macro_expansion to learn about the other
+ values. */
+ CPP_OPTION (pfile, track_macro_expansion) = 2;
+ CPP_OPTION (pfile, warn_normalize) = normalized_C;
+ CPP_OPTION (pfile, warn_literal_suffix) = 1;
+ CPP_OPTION (pfile, canonical_system_headers)
+ = ENABLE_CANONICAL_SYSTEM_HEADERS;
+ CPP_OPTION (pfile, ext_numeric_literals) = 1;
+ CPP_OPTION (pfile, warn_date_time) = 0;
+
+ /* Default CPP arithmetic to something sensible for the host for the
+ benefit of dumb users like fix-header. */
+ CPP_OPTION (pfile, precision) = CHAR_BIT * sizeof (long);
+ CPP_OPTION (pfile, char_precision) = CHAR_BIT;
+ CPP_OPTION (pfile, wchar_precision) = CHAR_BIT * sizeof (int);
+ CPP_OPTION (pfile, int_precision) = CHAR_BIT * sizeof (int);
+ CPP_OPTION (pfile, unsigned_char) = 0;
+ CPP_OPTION (pfile, unsigned_wchar) = 1;
+ CPP_OPTION (pfile, bytes_big_endian) = 1; /* does not matter */
+
+ /* Default to no charset conversion. */
+ CPP_OPTION (pfile, narrow_charset) = _cpp_default_encoding ();
+ CPP_OPTION (pfile, wide_charset) = 0;
+
+ /* Default the input character set to UTF-8. */
+ CPP_OPTION (pfile, input_charset) = _cpp_default_encoding ();
+
+ /* A fake empty "directory" used as the starting point for files
+ looked up without a search path. Name cannot be '/' because we
+ don't want to prepend anything at all to filenames using it. All
+ other entries are correct zero-initialized. */
+ pfile->no_search_path.name = (char *) "";
+
+ /* Initialize the line map. */
+ pfile->line_table = line_table;
+
+ /* Initialize lexer state. */
+ pfile->state.save_comments = ! CPP_OPTION (pfile, discard_comments);
+
+ /* Set up static tokens. */
+ pfile->avoid_paste.type = CPP_PADDING;
+ pfile->avoid_paste.val.source = NULL;
+ pfile->eof.type = CPP_EOF;
+ pfile->eof.flags = 0;
+
+ /* Create a token buffer for the lexer. */
+ _cpp_init_tokenrun (&pfile->base_run, 250);
+ pfile->cur_run = &pfile->base_run;
+ pfile->cur_token = pfile->base_run.base;
+
+ /* Initialize the base context. */
+ pfile->context = &pfile->base_context;
+ pfile->base_context.c.macro = 0;
+ pfile->base_context.prev = pfile->base_context.next = 0;
+
+ /* Aligned and unaligned storage. */
+ pfile->a_buff = _cpp_get_buff (pfile, 0);
+ pfile->u_buff = _cpp_get_buff (pfile, 0);
+
+ /* Initialize table for push_macro/pop_macro. */
+ pfile->pushed_macros = 0;
+
+ /* Do not force token locations by default. */
+ pfile->forced_token_location_p = NULL;
+
+ /* The expression parser stack. */
+ _cpp_expand_op_stack (pfile);
+
+ /* Initialize the buffer obstack. */
+ _obstack_begin (&pfile->buffer_ob, 0, 0,
+ (void *(*) (long)) xmalloc,
+ (void (*) (void *)) free);
+
+ _cpp_init_files (pfile);
+
+ _cpp_init_hashtable (pfile, table);
+
+ return pfile;
+}
+
+/* Set the line_table entry in PFILE. This is called after reading a
+ PCH file, as the old line_table will be incorrect. */
+void
+cpp_set_line_map (cpp_reader *pfile, struct line_maps *line_table)
+{
+ pfile->line_table = line_table;
+}
+
+/* Free resources used by PFILE. Accessing PFILE after this function
+ returns leads to undefined behavior. Returns the error count. */
+void
+cpp_destroy (cpp_reader *pfile)
+{
+ cpp_context *context, *contextn;
+ struct def_pragma_macro *pmacro;
+ tokenrun *run, *runn;
+ int i;
+
+ free (pfile->op_stack);
+
+ while (CPP_BUFFER (pfile) != NULL)
+ _cpp_pop_buffer (pfile);
+
+ free (pfile->out.base);
+
+ if (pfile->macro_buffer)
+ {
+ free (pfile->macro_buffer);
+ pfile->macro_buffer = NULL;
+ pfile->macro_buffer_len = 0;
+ }
+
+ if (pfile->deps)
+ deps_free (pfile->deps);
+ obstack_free (&pfile->buffer_ob, 0);
+
+ _cpp_destroy_hashtable (pfile);
+ _cpp_cleanup_files (pfile);
+ _cpp_destroy_iconv (pfile);
+
+ _cpp_free_buff (pfile->a_buff);
+ _cpp_free_buff (pfile->u_buff);
+ _cpp_free_buff (pfile->free_buffs);
+
+ for (run = &pfile->base_run; run; run = runn)
+ {
+ runn = run->next;
+ free (run->base);
+ if (run != &pfile->base_run)
+ free (run);
+ }
+
+ for (context = pfile->base_context.next; context; context = contextn)
+ {
+ contextn = context->next;
+ free (context);
+ }
+
+ if (pfile->comments.entries)
+ {
+ for (i = 0; i < pfile->comments.count; i++)
+ free (pfile->comments.entries[i].comment);
+
+ free (pfile->comments.entries);
+ }
+ if (pfile->pushed_macros)
+ {
+ do
+ {
+ pmacro = pfile->pushed_macros;
+ pfile->pushed_macros = pmacro->next;
+ free (pmacro->name);
+ free (pmacro);
+ }
+ while (pfile->pushed_macros);
+ }
+
+ free (pfile);
+}
+
+/* This structure defines one built-in identifier. A node will be
+ entered in the hash table under the name NAME, with value VALUE.
+
+ There are two tables of these. builtin_array holds all the
+ "builtin" macros: these are handled by builtin_macro() in
+ macro.c. Builtin is somewhat of a misnomer -- the property of
+ interest is that these macros require special code to compute their
+ expansions. The value is a "cpp_builtin_type" enumerator.
+
+ operator_array holds the C++ named operators. These are keywords
+ which act as aliases for punctuators. In C++, they cannot be
+ altered through #define, and #if recognizes them as operators. In
+ C, these are not entered into the hash table at all (but see
+ <iso646.h>). The value is a token-type enumerator. */
+struct builtin_macro
+{
+ const uchar *const name;
+ const unsigned short len;
+ const unsigned short value;
+ const bool always_warn_if_redefined;
+};
+
+#define B(n, t, f) { DSC(n), t, f }
+static const struct builtin_macro builtin_array[] =
+{
+ B("__TIMESTAMP__", BT_TIMESTAMP, false),
+ B("__TIME__", BT_TIME, false),
+ B("__DATE__", BT_DATE, false),
+ B("__FILE__", BT_FILE, false),
+ B("__BASE_FILE__", BT_BASE_FILE, false),
+ B("__LINE__", BT_SPECLINE, true),
+ B("__INCLUDE_LEVEL__", BT_INCLUDE_LEVEL, true),
+ B("__COUNTER__", BT_COUNTER, true),
+ /* Keep builtins not used for -traditional-cpp at the end, and
+ update init_builtins() if any more are added. */
+ B("_Pragma", BT_PRAGMA, true),
+ B("__STDC__", BT_STDC, true),
+};
+#undef B
+
+struct builtin_operator
+{
+ const uchar *const name;
+ const unsigned short len;
+ const unsigned short value;
+};
+
+#define B(n, t) { DSC(n), t }
+static const struct builtin_operator operator_array[] =
+{
+ B("and", CPP_AND_AND),
+ B("and_eq", CPP_AND_EQ),
+ B("bitand", CPP_AND),
+ B("bitor", CPP_OR),
+ B("compl", CPP_COMPL),
+ B("not", CPP_NOT),
+ B("not_eq", CPP_NOT_EQ),
+ B("or", CPP_OR_OR),
+ B("or_eq", CPP_OR_EQ),
+ B("xor", CPP_XOR),
+ B("xor_eq", CPP_XOR_EQ)
+};
+#undef B
+
+/* Mark the C++ named operators in the hash table. */
+static void
+mark_named_operators (cpp_reader *pfile, int flags)
+{
+ const struct builtin_operator *b;
+
+ for (b = operator_array;
+ b < (operator_array + ARRAY_SIZE (operator_array));
+ b++)
+ {
+ cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
+ hp->flags |= flags;
+ hp->is_directive = 0;
+ hp->directive_index = b->value;
+ }
+}
+
+/* Helper function of cpp_type2name. Return the string associated with
+ named operator TYPE. */
+const char *
+cpp_named_operator2name (enum cpp_ttype type)
+{
+ const struct builtin_operator *b;
+
+ for (b = operator_array;
+ b < (operator_array + ARRAY_SIZE (operator_array));
+ b++)
+ {
+ if (type == b->value)
+ return (const char *) b->name;
+ }
+
+ return NULL;
+}
+
+void
+cpp_init_special_builtins (cpp_reader *pfile)
+{
+ const struct builtin_macro *b;
+ size_t n = ARRAY_SIZE (builtin_array);
+
+ if (CPP_OPTION (pfile, traditional))
+ n -= 2;
+ else if (! CPP_OPTION (pfile, stdc_0_in_system_headers)
+ || CPP_OPTION (pfile, std))
+ n--;
+
+ for (b = builtin_array; b < builtin_array + n; b++)
+ {
+ cpp_hashnode *hp = cpp_lookup (pfile, b->name, b->len);
+ hp->type = NT_MACRO;
+ hp->flags |= NODE_BUILTIN;
+ if (b->always_warn_if_redefined
+ || CPP_OPTION (pfile, warn_builtin_macro_redefined))
+ hp->flags |= NODE_WARN;
+ hp->value.builtin = (enum cpp_builtin_type) b->value;
+ }
+}
+
+/* Read the builtins table above and enter them, and language-specific
+ macros, into the hash table. HOSTED is true if this is a hosted
+ environment. */
+void
+cpp_init_builtins (cpp_reader *pfile, int hosted)
+{
+ cpp_init_special_builtins (pfile);
+
+ if (!CPP_OPTION (pfile, traditional)
+ && (! CPP_OPTION (pfile, stdc_0_in_system_headers)
+ || CPP_OPTION (pfile, std)))
+ _cpp_define_builtin (pfile, "__STDC__ 1");
+
+ if (CPP_OPTION (pfile, cplusplus))
+ {
+ if (CPP_OPTION (pfile, lang) == CLK_CXX1Y
+ || CPP_OPTION (pfile, lang) == CLK_GNUCXX1Y)
+ _cpp_define_builtin (pfile, "__cplusplus 201300L");
+ else if (CPP_OPTION (pfile, lang) == CLK_CXX11
+ || CPP_OPTION (pfile, lang) == CLK_GNUCXX11)
+ _cpp_define_builtin (pfile, "__cplusplus 201103L");
+ else
+ _cpp_define_builtin (pfile, "__cplusplus 199711L");
+ }
+ else if (CPP_OPTION (pfile, lang) == CLK_ASM)
+ _cpp_define_builtin (pfile, "__ASSEMBLER__ 1");
+ else if (CPP_OPTION (pfile, lang) == CLK_STDC94)
+ _cpp_define_builtin (pfile, "__STDC_VERSION__ 199409L");
+ else if (CPP_OPTION (pfile, lang) == CLK_STDC11
+ || CPP_OPTION (pfile, lang) == CLK_GNUC11)
+ _cpp_define_builtin (pfile, "__STDC_VERSION__ 201112L");
+ else if (CPP_OPTION (pfile, c99))
+ _cpp_define_builtin (pfile, "__STDC_VERSION__ 199901L");
+
+ if (CPP_OPTION (pfile, uliterals)
+ && !CPP_OPTION (pfile, cplusplus))
+ {
+ _cpp_define_builtin (pfile, "__STDC_UTF_16__ 1");
+ _cpp_define_builtin (pfile, "__STDC_UTF_32__ 1");
+ }
+
+ if (hosted)
+ _cpp_define_builtin (pfile, "__STDC_HOSTED__ 1");
+ else
+ _cpp_define_builtin (pfile, "__STDC_HOSTED__ 0");
+
+ if (CPP_OPTION (pfile, objc))
+ _cpp_define_builtin (pfile, "__OBJC__ 1");
+}
+
+/* Sanity-checks are dependent on command-line options, so it is
+ called as a subroutine of cpp_read_main_file (). */
+#if ENABLE_CHECKING
+static void sanity_checks (cpp_reader *);
+static void sanity_checks (cpp_reader *pfile)
+{
+ cppchar_t test = 0;
+ size_t max_precision = 2 * CHAR_BIT * sizeof (cpp_num_part);
+
+ /* Sanity checks for assumptions about CPP arithmetic and target
+ type precisions made by cpplib. */
+ test--;
+ if (test < 1)
+ cpp_error (pfile, CPP_DL_ICE, "cppchar_t must be an unsigned type");
+
+ if (CPP_OPTION (pfile, precision) > max_precision)
+ cpp_error (pfile, CPP_DL_ICE,
+ "preprocessor arithmetic has maximum precision of %lu bits;"
+ " target requires %lu bits",
+ (unsigned long) max_precision,
+ (unsigned long) CPP_OPTION (pfile, precision));
+
+ if (CPP_OPTION (pfile, precision) < CPP_OPTION (pfile, int_precision))
+ cpp_error (pfile, CPP_DL_ICE,
+ "CPP arithmetic must be at least as precise as a target int");
+
+ if (CPP_OPTION (pfile, char_precision) < 8)
+ cpp_error (pfile, CPP_DL_ICE, "target char is less than 8 bits wide");
+
+ if (CPP_OPTION (pfile, wchar_precision) < CPP_OPTION (pfile, char_precision))
+ cpp_error (pfile, CPP_DL_ICE,
+ "target wchar_t is narrower than target char");
+
+ if (CPP_OPTION (pfile, int_precision) < CPP_OPTION (pfile, char_precision))
+ cpp_error (pfile, CPP_DL_ICE,
+ "target int is narrower than target char");
+
+ /* This is assumed in eval_token() and could be fixed if necessary. */
+ if (sizeof (cppchar_t) > sizeof (cpp_num_part))
+ cpp_error (pfile, CPP_DL_ICE,
+ "CPP half-integer narrower than CPP character");
+
+ if (CPP_OPTION (pfile, wchar_precision) > BITS_PER_CPPCHAR_T)
+ cpp_error (pfile, CPP_DL_ICE,
+ "CPP on this host cannot handle wide character constants over"
+ " %lu bits, but the target requires %lu bits",
+ (unsigned long) BITS_PER_CPPCHAR_T,
+ (unsigned long) CPP_OPTION (pfile, wchar_precision));
+}
+#else
+# define sanity_checks(PFILE)
+#endif
+
+/* This is called after options have been parsed, and partially
+ processed. */
+void
+cpp_post_options (cpp_reader *pfile)
+{
+ int flags;
+
+ sanity_checks (pfile);
+
+ post_options (pfile);
+
+ /* Mark named operators before handling command line macros. */
+ flags = 0;
+ if (CPP_OPTION (pfile, cplusplus) && CPP_OPTION (pfile, operator_names))
+ flags |= NODE_OPERATOR;
+ if (CPP_OPTION (pfile, warn_cxx_operator_names))
+ flags |= NODE_DIAGNOSTIC | NODE_WARN_OPERATOR;
+ if (flags != 0)
+ mark_named_operators (pfile, flags);
+}
+
+/* Setup for processing input from the file named FNAME, or stdin if
+ it is the empty string. Return the original filename
+ on success (e.g. foo.i->foo.c), or NULL on failure. */
+const char *
+cpp_read_main_file (cpp_reader *pfile, const char *fname)
+{
+ if (CPP_OPTION (pfile, deps.style) != DEPS_NONE)
+ {
+ if (!pfile->deps)
+ pfile->deps = deps_init ();
+
+ /* Set the default target (if there is none already). */
+ deps_add_default_target (pfile->deps, fname);
+ }
+
+ pfile->main_file
+ = _cpp_find_file (pfile, fname, &pfile->no_search_path, false, 0, false);
+ if (_cpp_find_failed (pfile->main_file))
+ return NULL;
+
+ _cpp_stack_file (pfile, pfile->main_file, false);
+
+ /* For foo.i, read the original filename foo.c now, for the benefit
+ of the front ends. */
+ if (CPP_OPTION (pfile, preprocessed))
+ {
+ read_original_filename (pfile);
+ fname =
+ ORDINARY_MAP_FILE_NAME
+ ((LINEMAPS_LAST_ORDINARY_MAP (pfile->line_table)));
+ }
+ return fname;
+}
+
+/* For preprocessed files, if the first tokens are of the form # NUM.
+ handle the directive so we know the original file name. This will
+ generate file_change callbacks, which the front ends must handle
+ appropriately given their state of initialization. */
+static void
+read_original_filename (cpp_reader *pfile)
+{
+ const cpp_token *token, *token1;
+
+ /* Lex ahead; if the first tokens are of the form # NUM, then
+ process the directive, otherwise back up. */
+ token = _cpp_lex_direct (pfile);
+ if (token->type == CPP_HASH)
+ {
+ pfile->state.in_directive = 1;
+ token1 = _cpp_lex_direct (pfile);
+ _cpp_backup_tokens (pfile, 1);
+ pfile->state.in_directive = 0;
+
+ /* If it's a #line directive, handle it. */
+ if (token1->type == CPP_NUMBER
+ && _cpp_handle_directive (pfile, token->flags & PREV_WHITE))
+ {
+ read_original_directory (pfile);
+ return;
+ }
+ }
+
+ /* Backup as if nothing happened. */
+ _cpp_backup_tokens (pfile, 1);
+}
+
+/* For preprocessed files, if the tokens following the first filename
+ line is of the form # <line> "/path/name//", handle the
+ directive so we know the original current directory. */
+static void
+read_original_directory (cpp_reader *pfile)
+{
+ const cpp_token *hash, *token;
+
+ /* Lex ahead; if the first tokens are of the form # NUM, then
+ process the directive, otherwise back up. */
+ hash = _cpp_lex_direct (pfile);
+ if (hash->type != CPP_HASH)
+ {
+ _cpp_backup_tokens (pfile, 1);
+ return;
+ }
+
+ token = _cpp_lex_direct (pfile);
+
+ if (token->type != CPP_NUMBER)
+ {
+ _cpp_backup_tokens (pfile, 2);
+ return;
+ }
+
+ token = _cpp_lex_direct (pfile);
+
+ if (token->type != CPP_STRING
+ || ! (token->val.str.len >= 5
+ && IS_DIR_SEPARATOR (token->val.str.text[token->val.str.len-2])
+ && IS_DIR_SEPARATOR (token->val.str.text[token->val.str.len-3])))
+ {
+ _cpp_backup_tokens (pfile, 3);
+ return;
+ }
+
+ if (pfile->cb.dir_change)
+ {
+ char *debugdir = (char *) alloca (token->val.str.len - 3);
+
+ memcpy (debugdir, (const char *) token->val.str.text + 1,
+ token->val.str.len - 4);
+ debugdir[token->val.str.len - 4] = '\0';
+
+ pfile->cb.dir_change (pfile, debugdir);
+ }
+}
+
+/* This is called at the end of preprocessing. It pops the last
+ buffer and writes dependency output.
+
+ Maybe it should also reset state, such that you could call
+ cpp_start_read with a new filename to restart processing. */
+void
+cpp_finish (cpp_reader *pfile, FILE *deps_stream)
+{
+ /* Warn about unused macros before popping the final buffer. */
+ if (CPP_OPTION (pfile, warn_unused_macros))
+ cpp_forall_identifiers (pfile, _cpp_warn_if_unused_macro, NULL);
+
+ /* lex.c leaves the final buffer on the stack. This it so that
+ it returns an unending stream of CPP_EOFs to the client. If we
+ popped the buffer, we'd dereference a NULL buffer pointer and
+ segfault. It's nice to allow the client to do worry-free excess
+ cpp_get_token calls. */
+ while (pfile->buffer)
+ _cpp_pop_buffer (pfile);
+
+ if (CPP_OPTION (pfile, deps.style) != DEPS_NONE
+ && deps_stream)
+ {
+ deps_write (pfile->deps, deps_stream, 72);
+
+ if (CPP_OPTION (pfile, deps.phony_targets))
+ deps_phony_targets (pfile->deps, deps_stream);
+ }
+
+ /* Report on headers that could use multiple include guards. */
+ if (CPP_OPTION (pfile, print_include_names))
+ _cpp_report_missing_guards (pfile);
+}
+
+static void
+post_options (cpp_reader *pfile)
+{
+ /* -Wtraditional is not useful in C++ mode. */
+ if (CPP_OPTION (pfile, cplusplus))
+ CPP_OPTION (pfile, cpp_warn_traditional) = 0;
+
+ /* Permanently disable macro expansion if we are rescanning
+ preprocessed text. Read preprocesed source in ISO mode. */
+ if (CPP_OPTION (pfile, preprocessed))
+ {
+ if (!CPP_OPTION (pfile, directives_only))
+ pfile->state.prevent_expansion = 1;
+ CPP_OPTION (pfile, traditional) = 0;
+ }
+
+ if (CPP_OPTION (pfile, warn_trigraphs) == 2)
+ CPP_OPTION (pfile, warn_trigraphs) = !CPP_OPTION (pfile, trigraphs);
+
+ if (CPP_OPTION (pfile, traditional))
+ {
+ CPP_OPTION (pfile, cplusplus_comments) = 0;
+
+ CPP_OPTION (pfile, trigraphs) = 0;
+ CPP_OPTION (pfile, warn_trigraphs) = 0;
+ }
+}
diff --git a/gcc-4.9/libcpp/internal.h b/gcc-4.9/libcpp/internal.h
new file mode 100644
index 000000000..b5106211c
--- /dev/null
+++ b/gcc-4.9/libcpp/internal.h
@@ -0,0 +1,876 @@
+/* Part of CPP library.
+ Copyright (C) 1997-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* This header defines all the internal data structures and functions
+ that need to be visible across files. It should not be used outside
+ cpplib. */
+
+#ifndef LIBCPP_INTERNAL_H
+#define LIBCPP_INTERNAL_H
+
+#include "symtab.h"
+#include "cpp-id-data.h"
+
+#if HAVE_ICONV
+#include <iconv.h>
+#else
+#define HAVE_ICONV 0
+typedef int iconv_t; /* dummy */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct directive; /* Deliberately incomplete. */
+struct pending_option;
+struct op;
+struct _cpp_strbuf;
+
+typedef bool (*convert_f) (iconv_t, const unsigned char *, size_t,
+ struct _cpp_strbuf *);
+struct cset_converter
+{
+ convert_f func;
+ iconv_t cd;
+ int width;
+};
+
+#define BITS_PER_CPPCHAR_T (CHAR_BIT * sizeof (cppchar_t))
+
+/* Test if a sign is valid within a preprocessing number. */
+#define VALID_SIGN(c, prevc) \
+ (((c) == '+' || (c) == '-') && \
+ ((prevc) == 'e' || (prevc) == 'E' \
+ || (((prevc) == 'p' || (prevc) == 'P') \
+ && CPP_OPTION (pfile, extended_numbers))))
+
+#define DIGIT_SEP(c) ((c) == '\'' && CPP_OPTION (pfile, digit_separators))
+
+#define CPP_OPTION(PFILE, OPTION) ((PFILE)->opts.OPTION)
+#define CPP_BUFFER(PFILE) ((PFILE)->buffer)
+#define CPP_BUF_COLUMN(BUF, CUR) ((CUR) - (BUF)->line_base)
+#define CPP_BUF_COL(BUF) CPP_BUF_COLUMN(BUF, (BUF)->cur)
+
+#define CPP_INCREMENT_LINE(PFILE, COLS_HINT) do { \
+ const struct line_maps *line_table = PFILE->line_table; \
+ const struct line_map *map = \
+ LINEMAPS_LAST_ORDINARY_MAP (line_table); \
+ linenum_type line = SOURCE_LINE (map, line_table->highest_line); \
+ linemap_line_start (PFILE->line_table, line + 1, COLS_HINT); \
+ } while (0)
+
+/* Maximum nesting of cpp_buffers. We use a static limit, partly for
+ efficiency, and partly to limit runaway recursion. */
+#define CPP_STACK_MAX 200
+
+/* Host alignment handling. */
+struct dummy
+{
+ char c;
+ union
+ {
+ double d;
+ int *p;
+ } u;
+};
+
+#define DEFAULT_ALIGNMENT offsetof (struct dummy, u)
+#define CPP_ALIGN2(size, align) (((size) + ((align) - 1)) & ~((align) - 1))
+#define CPP_ALIGN(size) CPP_ALIGN2 (size, DEFAULT_ALIGNMENT)
+
+#define _cpp_mark_macro_used(NODE) do { \
+ if ((NODE)->type == NT_MACRO && !((NODE)->flags & NODE_BUILTIN)) \
+ (NODE)->value.macro->used = 1; } while (0)
+
+/* A generic memory buffer, and operations on it. */
+typedef struct _cpp_buff _cpp_buff;
+struct _cpp_buff
+{
+ struct _cpp_buff *next;
+ unsigned char *base, *cur, *limit;
+};
+
+extern _cpp_buff *_cpp_get_buff (cpp_reader *, size_t);
+extern void _cpp_release_buff (cpp_reader *, _cpp_buff *);
+extern void _cpp_extend_buff (cpp_reader *, _cpp_buff **, size_t);
+extern _cpp_buff *_cpp_append_extend_buff (cpp_reader *, _cpp_buff *, size_t);
+extern void _cpp_free_buff (_cpp_buff *);
+extern unsigned char *_cpp_aligned_alloc (cpp_reader *, size_t);
+extern unsigned char *_cpp_unaligned_alloc (cpp_reader *, size_t);
+
+#define BUFF_ROOM(BUFF) (size_t) ((BUFF)->limit - (BUFF)->cur)
+#define BUFF_FRONT(BUFF) ((BUFF)->cur)
+#define BUFF_LIMIT(BUFF) ((BUFF)->limit)
+
+/* #include types. */
+enum include_type {IT_INCLUDE, IT_INCLUDE_NEXT, IT_IMPORT, IT_CMDLINE, IT_DEFAULT};
+
+union utoken
+{
+ const cpp_token *token;
+ const cpp_token **ptoken;
+};
+
+/* A "run" of tokens; part of a chain of runs. */
+typedef struct tokenrun tokenrun;
+struct tokenrun
+{
+ tokenrun *next, *prev;
+ cpp_token *base, *limit;
+};
+
+/* Accessor macros for struct cpp_context. */
+#define FIRST(c) ((c)->u.iso.first)
+#define LAST(c) ((c)->u.iso.last)
+#define CUR(c) ((c)->u.trad.cur)
+#define RLIMIT(c) ((c)->u.trad.rlimit)
+
+/* This describes some additional data that is added to the macro
+ token context of type cpp_context, when -ftrack-macro-expansion is
+ on. */
+typedef struct
+{
+ /* The node of the macro we are referring to. */
+ cpp_hashnode *macro_node;
+ /* This buffer contains an array of virtual locations. The virtual
+ location at index 0 is the virtual location of the token at index
+ 0 in the current instance of cpp_context; similarly for all the
+ other virtual locations. */
+ source_location *virt_locs;
+ /* This is a pointer to the current virtual location. This is used
+ to iterate over the virtual locations while we iterate over the
+ tokens they belong to. */
+ source_location *cur_virt_loc;
+} macro_context;
+
+/* The kind of tokens carried by a cpp_context. */
+enum context_tokens_kind {
+ /* This is the value of cpp_context::tokens_kind if u.iso.first
+ contains an instance of cpp_token **. */
+ TOKENS_KIND_INDIRECT,
+ /* This is the value of cpp_context::tokens_kind if u.iso.first
+ contains an instance of cpp_token *. */
+ TOKENS_KIND_DIRECT,
+ /* This is the value of cpp_context::tokens_kind when the token
+ context contains tokens resulting from macro expansion. In that
+ case struct cpp_context::macro points to an instance of struct
+ macro_context. This is used only when the
+ -ftrack-macro-expansion flag is on. */
+ TOKENS_KIND_EXTENDED
+};
+
+typedef struct cpp_context cpp_context;
+struct cpp_context
+{
+ /* Doubly-linked list. */
+ cpp_context *next, *prev;
+
+ union
+ {
+ /* For ISO macro expansion. Contexts other than the base context
+ are contiguous tokens. e.g. macro expansions, expanded
+ argument tokens. */
+ struct
+ {
+ union utoken first;
+ union utoken last;
+ } iso;
+
+ /* For traditional macro expansion. */
+ struct
+ {
+ const unsigned char *cur;
+ const unsigned char *rlimit;
+ } trad;
+ } u;
+
+ /* If non-NULL, a buffer used for storage related to this context.
+ When the context is popped, the buffer is released. */
+ _cpp_buff *buff;
+
+ /* If tokens_kind is TOKEN_KIND_EXTENDED, then (as we thus are in a
+ macro context) this is a pointer to an instance of macro_context.
+ Otherwise if tokens_kind is *not* TOKEN_KIND_EXTENDED, then, if
+ we are in a macro context, this is a pointer to an instance of
+ cpp_hashnode, representing the name of the macro this context is
+ for. If we are not in a macro context, then this is just NULL.
+ Note that when tokens_kind is TOKEN_KIND_EXTENDED, the memory
+ used by the instance of macro_context pointed to by this member
+ is de-allocated upon de-allocation of the instance of struct
+ cpp_context. */
+ union
+ {
+ macro_context *mc;
+ cpp_hashnode *macro;
+ } c;
+
+ /* This determines the type of tokens held by this context. */
+ enum context_tokens_kind tokens_kind;
+};
+
+struct lexer_state
+{
+ /* Nonzero if first token on line is CPP_HASH. */
+ unsigned char in_directive;
+
+ /* Nonzero if in a directive that will handle padding tokens itself.
+ #include needs this to avoid problems with computed include and
+ spacing between tokens. */
+ unsigned char directive_wants_padding;
+
+ /* True if we are skipping a failed conditional group. */
+ unsigned char skipping;
+
+ /* Nonzero if in a directive that takes angle-bracketed headers. */
+ unsigned char angled_headers;
+
+ /* Nonzero if in a #if or #elif directive. */
+ unsigned char in_expression;
+
+ /* Nonzero to save comments. Turned off if discard_comments, and in
+ all directives apart from #define. */
+ unsigned char save_comments;
+
+ /* Nonzero if lexing __VA_ARGS__ is valid. */
+ unsigned char va_args_ok;
+
+ /* Nonzero if lexing poisoned identifiers is valid. */
+ unsigned char poisoned_ok;
+
+ /* Nonzero to prevent macro expansion. */
+ unsigned char prevent_expansion;
+
+ /* Nonzero when parsing arguments to a function-like macro. */
+ unsigned char parsing_args;
+
+ /* Nonzero if prevent_expansion is true only because output is
+ being discarded. */
+ unsigned char discarding_output;
+
+ /* Nonzero to skip evaluating part of an expression. */
+ unsigned int skip_eval;
+
+ /* Nonzero when handling a deferred pragma. */
+ unsigned char in_deferred_pragma;
+
+ /* Nonzero if the deferred pragma being handled allows macro expansion. */
+ unsigned char pragma_allow_expansion;
+};
+
+/* Special nodes - identifiers with predefined significance. */
+struct spec_nodes
+{
+ cpp_hashnode *n_defined; /* defined operator */
+ cpp_hashnode *n_true; /* C++ keyword true */
+ cpp_hashnode *n_false; /* C++ keyword false */
+ cpp_hashnode *n__VA_ARGS__; /* C99 vararg macros */
+};
+
+typedef struct _cpp_line_note _cpp_line_note;
+struct _cpp_line_note
+{
+ /* Location in the clean line the note refers to. */
+ const unsigned char *pos;
+
+ /* Type of note. The 9 'from' trigraph characters represent those
+ trigraphs, '\\' an escaped newline, ' ' an escaped newline with
+ intervening space, 0 represents a note that has already been handled,
+ and anything else is invalid. */
+ unsigned int type;
+};
+
+/* Represents the contents of a file cpplib has read in. */
+struct cpp_buffer
+{
+ const unsigned char *cur; /* Current location. */
+ const unsigned char *line_base; /* Start of current physical line. */
+ const unsigned char *next_line; /* Start of to-be-cleaned logical line. */
+
+ const unsigned char *buf; /* Entire character buffer. */
+ const unsigned char *rlimit; /* Writable byte at end of file. */
+ const unsigned char *to_free; /* Pointer that should be freed when
+ popping the buffer. */
+
+ _cpp_line_note *notes; /* Array of notes. */
+ unsigned int cur_note; /* Next note to process. */
+ unsigned int notes_used; /* Number of notes. */
+ unsigned int notes_cap; /* Size of allocated array. */
+
+ struct cpp_buffer *prev;
+
+ /* Pointer into the file table; non-NULL if this is a file buffer.
+ Used for include_next and to record control macros. */
+ struct _cpp_file *file;
+
+ /* Saved value of __TIMESTAMP__ macro - date and time of last modification
+ of the assotiated file. */
+ const unsigned char *timestamp;
+
+ /* Value of if_stack at start of this file.
+ Used to prohibit unmatched #endif (etc) in an include file. */
+ struct if_stack *if_stack;
+
+ /* True if we need to get the next clean line. */
+ bool need_line;
+
+ /* True if we have already warned about C++ comments in this file.
+ The warning happens only for C89 extended mode with -pedantic on,
+ or for -Wtraditional, and only once per file (otherwise it would
+ be far too noisy). */
+ unsigned int warned_cplusplus_comments : 1;
+
+ /* True if we don't process trigraphs and escaped newlines. True
+ for preprocessed input, command line directives, and _Pragma
+ buffers. */
+ unsigned int from_stage3 : 1;
+
+ /* At EOF, a buffer is automatically popped. If RETURN_AT_EOF is
+ true, a CPP_EOF token is then returned. Otherwise, the next
+ token from the enclosing buffer is returned. */
+ unsigned int return_at_eof : 1;
+
+ /* One for a system header, two for a C system header file that therefore
+ needs to be extern "C" protected in C++, and zero otherwise. */
+ unsigned char sysp;
+
+ /* The directory of the this buffer's file. Its NAME member is not
+ allocated, so we don't need to worry about freeing it. */
+ struct cpp_dir dir;
+
+ /* Descriptor for converting from the input character set to the
+ source character set. */
+ struct cset_converter input_cset_desc;
+};
+
+/* The list of saved macros by push_macro pragma. */
+struct def_pragma_macro {
+ /* Chain element to previous saved macro. */
+ struct def_pragma_macro *next;
+ /* Name of the macro. */
+ char *name;
+ /* The stored macro content. */
+ unsigned char *definition;
+
+ /* Definition line number. */
+ source_location line;
+ /* If macro defined in system header. */
+ unsigned int syshdr : 1;
+ /* Nonzero if it has been expanded or had its existence tested. */
+ unsigned int used : 1;
+
+ /* Mark if we save an undefined macro. */
+ unsigned int is_undef : 1;
+};
+
+/* A cpp_reader encapsulates the "state" of a pre-processor run.
+ Applying cpp_get_token repeatedly yields a stream of pre-processor
+ tokens. Usually, there is only one cpp_reader object active. */
+struct cpp_reader
+{
+ /* Top of buffer stack. */
+ cpp_buffer *buffer;
+
+ /* Overlaid buffer (can be different after processing #include). */
+ cpp_buffer *overlaid_buffer;
+
+ /* Lexer state. */
+ struct lexer_state state;
+
+ /* Source line tracking. */
+ struct line_maps *line_table;
+
+ /* The line of the '#' of the current directive. */
+ source_location directive_line;
+
+ /* Memory buffers. */
+ _cpp_buff *a_buff; /* Aligned permanent storage. */
+ _cpp_buff *u_buff; /* Unaligned permanent storage. */
+ _cpp_buff *free_buffs; /* Free buffer chain. */
+
+ /* Context stack. */
+ struct cpp_context base_context;
+ struct cpp_context *context;
+
+ /* If in_directive, the directive if known. */
+ const struct directive *directive;
+
+ /* Token generated while handling a directive, if any. */
+ cpp_token directive_result;
+
+ /* When expanding a macro at top-level, this is the location of the
+ macro invocation. */
+ source_location invocation_location;
+
+ /* Nonzero if we are about to expand a macro. Note that if we are
+ really expanding a macro, the function macro_of_context returns
+ the macro being expanded and this flag is set to false. Client
+ code should use the function in_macro_expansion_p to know if we
+ are either about to expand a macro, or are actually expanding
+ one. */
+ bool about_to_expand_macro_p;
+
+ /* Search paths for include files. */
+ struct cpp_dir *quote_include; /* "" */
+ struct cpp_dir *bracket_include; /* <> */
+ struct cpp_dir no_search_path; /* No path. */
+
+ /* Chain of all hashed _cpp_file instances. */
+ struct _cpp_file *all_files;
+
+ struct _cpp_file *main_file;
+
+ /* File and directory hash table. */
+ struct htab *file_hash;
+ struct htab *dir_hash;
+ struct file_hash_entry_pool *file_hash_entries;
+
+ /* Negative path lookup hash table. */
+ struct htab *nonexistent_file_hash;
+ struct obstack nonexistent_file_ob;
+
+ /* Nonzero means don't look for #include "foo" the source-file
+ directory. */
+ bool quote_ignores_source_dir;
+
+ /* Nonzero if any file has contained #pragma once or #import has
+ been used. */
+ bool seen_once_only;
+
+ /* Multiple include optimization. */
+ const cpp_hashnode *mi_cmacro;
+ const cpp_hashnode *mi_ind_cmacro;
+ bool mi_valid;
+
+ /* Lexing. */
+ cpp_token *cur_token;
+ tokenrun base_run, *cur_run;
+ unsigned int lookaheads;
+
+ /* Nonzero prevents the lexer from re-using the token runs. */
+ unsigned int keep_tokens;
+
+ /* Buffer to hold macro definition string. */
+ unsigned char *macro_buffer;
+ unsigned int macro_buffer_len;
+
+ /* Descriptor for converting from the source character set to the
+ execution character set. */
+ struct cset_converter narrow_cset_desc;
+
+ /* Descriptor for converting from the source character set to the
+ UTF-8 execution character set. */
+ struct cset_converter utf8_cset_desc;
+
+ /* Descriptor for converting from the source character set to the
+ UTF-16 execution character set. */
+ struct cset_converter char16_cset_desc;
+
+ /* Descriptor for converting from the source character set to the
+ UTF-32 execution character set. */
+ struct cset_converter char32_cset_desc;
+
+ /* Descriptor for converting from the source character set to the
+ wide execution character set. */
+ struct cset_converter wide_cset_desc;
+
+ /* Date and time text. Calculated together if either is requested. */
+ const unsigned char *date;
+ const unsigned char *time;
+
+ /* EOF token, and a token forcing paste avoidance. */
+ cpp_token avoid_paste;
+ cpp_token eof;
+
+ /* Opaque handle to the dependencies of mkdeps.c. */
+ struct deps *deps;
+
+ /* Obstack holding all macro hash nodes. This never shrinks.
+ See identifiers.c */
+ struct obstack hash_ob;
+
+ /* Obstack holding buffer and conditional structures. This is a
+ real stack. See directives.c. */
+ struct obstack buffer_ob;
+
+ /* Pragma table - dynamic, because a library user can add to the
+ list of recognized pragmas. */
+ struct pragma_entry *pragmas;
+
+ /* Call backs to cpplib client. */
+ struct cpp_callbacks cb;
+
+ /* Identifier hash table. */
+ struct ht *hash_table;
+
+ /* Expression parser stack. */
+ struct op *op_stack, *op_limit;
+
+ /* User visible options. */
+ struct cpp_options opts;
+
+ /* Special nodes - identifiers with predefined significance to the
+ preprocessor. */
+ struct spec_nodes spec_nodes;
+
+ /* Whether cpplib owns the hashtable. */
+ bool our_hashtable;
+
+ /* Traditional preprocessing output buffer (a logical line). */
+ struct
+ {
+ unsigned char *base;
+ unsigned char *limit;
+ unsigned char *cur;
+ source_location first_line;
+ } out;
+
+ /* Used for buffer overlays by traditional.c. */
+ const unsigned char *saved_cur, *saved_rlimit, *saved_line_base;
+
+ /* A saved list of the defined macros, for dependency checking
+ of precompiled headers. */
+ struct cpp_savedstate *savedstate;
+
+ /* Next value of __COUNTER__ macro. */
+ unsigned int counter;
+
+ /* Table of comments, when state.save_comments is true. */
+ cpp_comment_table comments;
+
+ /* List of saved macros by push_macro. */
+ struct def_pragma_macro *pushed_macros;
+
+ /* If non-null, the lexer will use this location for the next token
+ instead of getting a location from the linemap. */
+ source_location *forced_token_location_p;
+};
+
+/* Character classes. Based on the more primitive macros in safe-ctype.h.
+ If the definition of `numchar' looks odd to you, please look up the
+ definition of a pp-number in the C standard [section 6.4.8 of C99].
+
+ In the unlikely event that characters other than \r and \n enter
+ the set is_vspace, the macro handle_newline() in lex.c must be
+ updated. */
+#define _dollar_ok(x) ((x) == '$' && CPP_OPTION (pfile, dollars_in_ident))
+
+#define is_idchar(x) (ISIDNUM(x) || _dollar_ok(x))
+#define is_numchar(x) ISIDNUM(x)
+#define is_idstart(x) (ISIDST(x) || _dollar_ok(x))
+#define is_numstart(x) ISDIGIT(x)
+#define is_hspace(x) ISBLANK(x)
+#define is_vspace(x) IS_VSPACE(x)
+#define is_nvspace(x) IS_NVSPACE(x)
+#define is_space(x) IS_SPACE_OR_NUL(x)
+
+/* This table is constant if it can be initialized at compile time,
+ which is the case if cpp was compiled with GCC >=2.7, or another
+ compiler that supports C99. */
+#if HAVE_DESIGNATED_INITIALIZERS
+extern const unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
+#else
+extern unsigned char _cpp_trigraph_map[UCHAR_MAX + 1];
+#endif
+
+/* Macros. */
+
+static inline int cpp_in_system_header (cpp_reader *);
+static inline int
+cpp_in_system_header (cpp_reader *pfile)
+{
+ return pfile->buffer ? pfile->buffer->sysp : 0;
+}
+#define CPP_PEDANTIC(PF) CPP_OPTION (PF, cpp_pedantic)
+#define CPP_WTRADITIONAL(PF) CPP_OPTION (PF, cpp_warn_traditional)
+
+static inline int cpp_in_primary_file (cpp_reader *);
+static inline int
+cpp_in_primary_file (cpp_reader *pfile)
+{
+ return pfile->line_table->depth == 1;
+}
+
+/* In macro.c */
+extern void _cpp_free_definition (cpp_hashnode *);
+extern bool _cpp_create_definition (cpp_reader *, cpp_hashnode *);
+extern void _cpp_pop_context (cpp_reader *);
+extern void _cpp_push_text_context (cpp_reader *, cpp_hashnode *,
+ const unsigned char *, size_t);
+extern bool _cpp_save_parameter (cpp_reader *, cpp_macro *, cpp_hashnode *);
+extern bool _cpp_arguments_ok (cpp_reader *, cpp_macro *, const cpp_hashnode *,
+ unsigned int);
+extern const unsigned char *_cpp_builtin_macro_text (cpp_reader *,
+ cpp_hashnode *);
+extern int _cpp_warn_if_unused_macro (cpp_reader *, cpp_hashnode *, void *);
+extern void _cpp_push_token_context (cpp_reader *, cpp_hashnode *,
+ const cpp_token *, unsigned int);
+extern void _cpp_backup_tokens_direct (cpp_reader *, unsigned int);
+
+/* In identifiers.c */
+extern void _cpp_init_hashtable (cpp_reader *, cpp_hash_table *);
+extern void _cpp_destroy_hashtable (cpp_reader *);
+
+/* In files.c */
+typedef struct _cpp_file _cpp_file;
+extern _cpp_file *_cpp_find_file (cpp_reader *, const char *, cpp_dir *,
+ bool, int, bool);
+extern bool _cpp_find_failed (_cpp_file *);
+extern void _cpp_mark_file_once_only (cpp_reader *, struct _cpp_file *);
+extern void _cpp_fake_include (cpp_reader *, const char *);
+extern bool _cpp_stack_file (cpp_reader *, _cpp_file*, bool);
+extern bool _cpp_stack_include (cpp_reader *, const char *, int,
+ enum include_type);
+extern int _cpp_compare_file_date (cpp_reader *, const char *, int);
+extern void _cpp_report_missing_guards (cpp_reader *);
+extern void _cpp_init_files (cpp_reader *);
+extern void _cpp_cleanup_files (cpp_reader *);
+extern void _cpp_pop_file_buffer (cpp_reader *, struct _cpp_file *,
+ const unsigned char *);
+extern bool _cpp_save_file_entries (cpp_reader *pfile, FILE *f);
+extern bool _cpp_read_file_entries (cpp_reader *, FILE *);
+extern const char *_cpp_get_file_name (_cpp_file *);
+extern struct stat *_cpp_get_file_stat (_cpp_file *);
+
+/* In expr.c */
+extern bool _cpp_parse_expr (cpp_reader *, bool);
+extern struct op *_cpp_expand_op_stack (cpp_reader *);
+
+/* In lex.c */
+extern void _cpp_process_line_notes (cpp_reader *, int);
+extern void _cpp_clean_line (cpp_reader *);
+extern bool _cpp_get_fresh_line (cpp_reader *);
+extern bool _cpp_skip_block_comment (cpp_reader *);
+extern cpp_token *_cpp_temp_token (cpp_reader *);
+extern const cpp_token *_cpp_lex_token (cpp_reader *);
+extern cpp_token *_cpp_lex_direct (cpp_reader *);
+extern int _cpp_equiv_tokens (const cpp_token *, const cpp_token *);
+extern void _cpp_init_tokenrun (tokenrun *, unsigned int);
+extern cpp_hashnode *_cpp_lex_identifier (cpp_reader *, const char *);
+extern int _cpp_remaining_tokens_num_in_context (cpp_context *);
+extern void _cpp_init_lexer (void);
+
+/* In init.c. */
+extern void _cpp_maybe_push_include_file (cpp_reader *);
+extern const char *cpp_named_operator2name (enum cpp_ttype type);
+
+/* In directives.c */
+extern int _cpp_test_assertion (cpp_reader *, unsigned int *);
+extern int _cpp_handle_directive (cpp_reader *, int);
+extern void _cpp_define_builtin (cpp_reader *, const char *);
+extern char ** _cpp_save_pragma_names (cpp_reader *);
+extern void _cpp_restore_pragma_names (cpp_reader *, char **);
+extern int _cpp_do__Pragma (cpp_reader *);
+extern void _cpp_init_directives (cpp_reader *);
+extern void _cpp_init_internal_pragmas (cpp_reader *);
+extern void _cpp_do_file_change (cpp_reader *, enum lc_reason, const char *,
+ linenum_type, unsigned int);
+extern void _cpp_pop_buffer (cpp_reader *);
+
+/* In directives.c */
+struct _cpp_dir_only_callbacks
+{
+ /* Called to print a block of lines. */
+ void (*print_lines) (int, const void *, size_t);
+ void (*maybe_print_line) (source_location);
+};
+
+extern void _cpp_preprocess_dir_only (cpp_reader *,
+ const struct _cpp_dir_only_callbacks *);
+
+/* In traditional.c. */
+extern bool _cpp_scan_out_logical_line (cpp_reader *, cpp_macro *);
+extern bool _cpp_read_logical_line_trad (cpp_reader *);
+extern void _cpp_overlay_buffer (cpp_reader *pfile, const unsigned char *,
+ size_t);
+extern void _cpp_remove_overlay (cpp_reader *);
+extern bool _cpp_create_trad_definition (cpp_reader *, cpp_macro *);
+extern bool _cpp_expansions_different_trad (const cpp_macro *,
+ const cpp_macro *);
+extern unsigned char *_cpp_copy_replacement_text (const cpp_macro *,
+ unsigned char *);
+extern size_t _cpp_replacement_text_len (const cpp_macro *);
+
+/* In charset.c. */
+
+/* The normalization state at this point in the sequence.
+ It starts initialized to all zeros, and at the end
+ 'level' is the normalization level of the sequence. */
+
+struct normalize_state
+{
+ /* The previous starter character. */
+ cppchar_t previous;
+ /* The combining class of the previous character (whether or not a
+ starter). */
+ unsigned char prev_class;
+ /* The lowest normalization level so far. */
+ enum cpp_normalize_level level;
+};
+#define INITIAL_NORMALIZE_STATE { 0, 0, normalized_KC }
+#define NORMALIZE_STATE_RESULT(st) ((st)->level)
+
+/* We saw a character C that matches ISIDNUM(), update a
+ normalize_state appropriately. */
+#define NORMALIZE_STATE_UPDATE_IDNUM(st, c) \
+ ((st)->previous = (c), (st)->prev_class = 0)
+
+extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **,
+ const unsigned char *, int,
+ struct normalize_state *state);
+extern void _cpp_destroy_iconv (cpp_reader *);
+extern unsigned char *_cpp_convert_input (cpp_reader *, const char *,
+ unsigned char *, size_t, size_t,
+ const unsigned char **, off_t *);
+extern const char *_cpp_default_encoding (void);
+extern cpp_hashnode * _cpp_interpret_identifier (cpp_reader *pfile,
+ const unsigned char *id,
+ size_t len);
+
+/* Utility routines and macros. */
+#define DSC(str) (const unsigned char *)str, sizeof str - 1
+
+/* These are inline functions instead of macros so we can get type
+ checking. */
+static inline int ustrcmp (const unsigned char *, const unsigned char *);
+static inline int ustrncmp (const unsigned char *, const unsigned char *,
+ size_t);
+static inline size_t ustrlen (const unsigned char *);
+static inline const unsigned char *uxstrdup (const unsigned char *);
+static inline const unsigned char *ustrchr (const unsigned char *, int);
+static inline int ufputs (const unsigned char *, FILE *);
+
+/* Use a const char for the second parameter since it is usually a literal. */
+static inline int ustrcspn (const unsigned char *, const char *);
+
+static inline int
+ustrcmp (const unsigned char *s1, const unsigned char *s2)
+{
+ return strcmp ((const char *)s1, (const char *)s2);
+}
+
+static inline int
+ustrncmp (const unsigned char *s1, const unsigned char *s2, size_t n)
+{
+ return strncmp ((const char *)s1, (const char *)s2, n);
+}
+
+static inline int
+ustrcspn (const unsigned char *s1, const char *s2)
+{
+ return strcspn ((const char *)s1, s2);
+}
+
+static inline size_t
+ustrlen (const unsigned char *s1)
+{
+ return strlen ((const char *)s1);
+}
+
+static inline const unsigned char *
+uxstrdup (const unsigned char *s1)
+{
+ return (const unsigned char *) xstrdup ((const char *)s1);
+}
+
+static inline const unsigned char *
+ustrchr (const unsigned char *s1, int c)
+{
+ return (const unsigned char *) strchr ((const char *)s1, c);
+}
+
+static inline int
+ufputs (const unsigned char *s, FILE *f)
+{
+ return fputs ((const char *)s, f);
+}
+
+ /* In line-map.c. */
+
+/* Create a macro map. A macro map encodes source locations of tokens
+ that are part of a macro replacement-list, at a macro expansion
+ point. See the extensive comments of struct line_map and struct
+ line_map_macro, in line-map.h.
+
+ This map shall be created when the macro is expanded. The map
+ encodes the source location of the expansion point of the macro as
+ well as the "original" source location of each token that is part
+ of the macro replacement-list. If a macro is defined but never
+ expanded, it has no macro map. SET is the set of maps the macro
+ map should be part of. MACRO_NODE is the macro which the new macro
+ map should encode source locations for. EXPANSION is the location
+ of the expansion point of MACRO. For function-like macros
+ invocations, it's best to make it point to the closing parenthesis
+ of the macro, rather than the the location of the first character
+ of the macro. NUM_TOKENS is the number of tokens that are part of
+ the replacement-list of MACRO. */
+const struct line_map *linemap_enter_macro (struct line_maps *,
+ struct cpp_hashnode*,
+ source_location,
+ unsigned int);
+
+/* Create and return a virtual location for a token that is part of a
+ macro expansion-list at a macro expansion point. See the comment
+ inside struct line_map_macro to see what an expansion-list exactly
+ is.
+
+ A call to this function must come after a call to
+ linemap_enter_macro.
+
+ MAP is the map into which the source location is created. TOKEN_NO
+ is the index of the token in the macro replacement-list, starting
+ at number 0.
+
+ ORIG_LOC is the location of the token outside of this macro
+ expansion. If the token comes originally from the macro
+ definition, it is the locus in the macro definition; otherwise it
+ is a location in the context of the caller of this macro expansion
+ (which is a virtual location or a source location if the caller is
+ itself a macro expansion or not).
+
+ MACRO_DEFINITION_LOC is the location in the macro definition,
+ either of the token itself or of a macro parameter that it
+ replaces. */
+source_location linemap_add_macro_token (const struct line_map *,
+ unsigned int,
+ source_location,
+ source_location);
+
+/* Return the source line number corresponding to source location
+ LOCATION. SET is the line map set LOCATION comes from. If
+ LOCATION is the location of token that is part of the
+ expansion-list of a macro expansion return the line number of the
+ macro expansion point. */
+int linemap_get_expansion_line (struct line_maps *,
+ source_location);
+
+/* Return the path of the file corresponding to source code location
+ LOCATION.
+
+ If LOCATION is the location of a token that is part of the
+ replacement-list of a macro expansion return the file path of the
+ macro expansion point.
+
+ SET is the line map set LOCATION comes from. */
+const char* linemap_get_expansion_filename (struct line_maps *,
+ source_location);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ! LIBCPP_INTERNAL_H */
diff --git a/gcc-4.9/libcpp/lex.c b/gcc-4.9/libcpp/lex.c
new file mode 100644
index 000000000..a2168e412
--- /dev/null
+++ b/gcc-4.9/libcpp/lex.c
@@ -0,0 +1,3132 @@
+/* CPP Library - lexical analysis.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+ Contributed by Per Bothner, 1994-95.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+ Broken out to separate file, Zack Weinberg, Mar 2000
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+enum spell_type
+{
+ SPELL_OPERATOR = 0,
+ SPELL_IDENT,
+ SPELL_LITERAL,
+ SPELL_NONE
+};
+
+struct token_spelling
+{
+ enum spell_type category;
+ const unsigned char *name;
+};
+
+static const unsigned char *const digraph_spellings[] =
+{ UC"%:", UC"%:%:", UC"<:", UC":>", UC"<%", UC"%>" };
+
+#define OP(e, s) { SPELL_OPERATOR, UC s },
+#define TK(e, s) { SPELL_ ## s, UC #e },
+static const struct token_spelling token_spellings[N_TTYPES] = { TTYPE_TABLE };
+#undef OP
+#undef TK
+
+#define TOKEN_SPELL(token) (token_spellings[(token)->type].category)
+#define TOKEN_NAME(token) (token_spellings[(token)->type].name)
+
+static void add_line_note (cpp_buffer *, const uchar *, unsigned int);
+static int skip_line_comment (cpp_reader *);
+static void skip_whitespace (cpp_reader *, cppchar_t);
+static void lex_string (cpp_reader *, cpp_token *, const uchar *);
+static void save_comment (cpp_reader *, cpp_token *, const uchar *, cppchar_t);
+static void store_comment (cpp_reader *, cpp_token *);
+static void create_literal (cpp_reader *, cpp_token *, const uchar *,
+ unsigned int, enum cpp_ttype);
+static bool warn_in_comment (cpp_reader *, _cpp_line_note *);
+static int name_p (cpp_reader *, const cpp_string *);
+static tokenrun *next_tokenrun (tokenrun *);
+
+static _cpp_buff *new_buff (size_t);
+
+
+/* Utility routine:
+
+ Compares, the token TOKEN to the NUL-terminated string STRING.
+ TOKEN must be a CPP_NAME. Returns 1 for equal, 0 for unequal. */
+int
+cpp_ideq (const cpp_token *token, const char *string)
+{
+ if (token->type != CPP_NAME)
+ return 0;
+
+ return !ustrcmp (NODE_NAME (token->val.node.node), (const uchar *) string);
+}
+
+/* Record a note TYPE at byte POS into the current cleaned logical
+ line. */
+static void
+add_line_note (cpp_buffer *buffer, const uchar *pos, unsigned int type)
+{
+ if (buffer->notes_used == buffer->notes_cap)
+ {
+ buffer->notes_cap = buffer->notes_cap * 2 + 200;
+ buffer->notes = XRESIZEVEC (_cpp_line_note, buffer->notes,
+ buffer->notes_cap);
+ }
+
+ buffer->notes[buffer->notes_used].pos = pos;
+ buffer->notes[buffer->notes_used].type = type;
+ buffer->notes_used++;
+}
+
+
+/* Fast path to find line special characters using optimized character
+ scanning algorithms. Anything complicated falls back to the slow
+ path below. Since this loop is very hot it's worth doing these kinds
+ of optimizations.
+
+ One of the paths through the ifdefs should provide
+
+ const uchar *search_line_fast (const uchar *s, const uchar *end);
+
+ Between S and END, search for \n, \r, \\, ?. Return a pointer to
+ the found character.
+
+ Note that the last character of the buffer is *always* a newline,
+ as forced by _cpp_convert_input. This fact can be used to avoid
+ explicitly looking for the end of the buffer. */
+
+/* Configure gives us an ifdef test. */
+#ifndef WORDS_BIGENDIAN
+#define WORDS_BIGENDIAN 0
+#endif
+
+/* We'd like the largest integer that fits into a register. There's nothing
+ in <stdint.h> that gives us that. For most hosts this is unsigned long,
+ but MS decided on an LLP64 model. Thankfully when building with GCC we
+ can get the "real" word size. */
+#ifdef __GNUC__
+typedef unsigned int word_type __attribute__((__mode__(__word__)));
+#else
+typedef unsigned long word_type;
+#endif
+
+/* The code below is only expecting sizes 4 or 8.
+ Die at compile-time if this expectation is violated. */
+typedef char check_word_type_size
+ [(sizeof(word_type) == 8 || sizeof(word_type) == 4) * 2 - 1];
+
+/* Return X with the first N bytes forced to values that won't match one
+ of the interesting characters. Note that NUL is not interesting. */
+
+static inline word_type
+acc_char_mask_misalign (word_type val, unsigned int n)
+{
+ word_type mask = -1;
+ if (WORDS_BIGENDIAN)
+ mask >>= n * 8;
+ else
+ mask <<= n * 8;
+ return val & mask;
+}
+
+/* Return X replicated to all byte positions within WORD_TYPE. */
+
+static inline word_type
+acc_char_replicate (uchar x)
+{
+ word_type ret;
+
+ ret = (x << 24) | (x << 16) | (x << 8) | x;
+ if (sizeof(word_type) == 8)
+ ret = (ret << 16 << 16) | ret;
+ return ret;
+}
+
+/* Return non-zero if some byte of VAL is (probably) C. */
+
+static inline word_type
+acc_char_cmp (word_type val, word_type c)
+{
+#if defined(__GNUC__) && defined(__alpha__)
+ /* We can get exact results using a compare-bytes instruction.
+ Get (val == c) via (0 >= (val ^ c)). */
+ return __builtin_alpha_cmpbge (0, val ^ c);
+#else
+ word_type magic = 0x7efefefeU;
+ if (sizeof(word_type) == 8)
+ magic = (magic << 16 << 16) | 0xfefefefeU;
+ magic |= 1;
+
+ val ^= c;
+ return ((val + magic) ^ ~val) & ~magic;
+#endif
+}
+
+/* Given the result of acc_char_cmp is non-zero, return the index of
+ the found character. If this was a false positive, return -1. */
+
+static inline int
+acc_char_index (word_type cmp ATTRIBUTE_UNUSED,
+ word_type val ATTRIBUTE_UNUSED)
+{
+#if defined(__GNUC__) && defined(__alpha__) && !WORDS_BIGENDIAN
+ /* The cmpbge instruction sets *bits* of the result corresponding to
+ matches in the bytes with no false positives. */
+ return __builtin_ctzl (cmp);
+#else
+ unsigned int i;
+
+ /* ??? It would be nice to force unrolling here,
+ and have all of these constants folded. */
+ for (i = 0; i < sizeof(word_type); ++i)
+ {
+ uchar c;
+ if (WORDS_BIGENDIAN)
+ c = (val >> (sizeof(word_type) - i - 1) * 8) & 0xff;
+ else
+ c = (val >> i * 8) & 0xff;
+
+ if (c == '\n' || c == '\r' || c == '\\' || c == '?')
+ return i;
+ }
+
+ return -1;
+#endif
+}
+
+/* A version of the fast scanner using bit fiddling techniques.
+
+ For 32-bit words, one would normally perform 16 comparisons and
+ 16 branches. With this algorithm one performs 24 arithmetic
+ operations and one branch. Whether this is faster with a 32-bit
+ word size is going to be somewhat system dependent.
+
+ For 64-bit words, we eliminate twice the number of comparisons
+ and branches without increasing the number of arithmetic operations.
+ It's almost certainly going to be a win with 64-bit word size. */
+
+static const uchar * search_line_acc_char (const uchar *, const uchar *)
+ ATTRIBUTE_UNUSED;
+
+static const uchar *
+search_line_acc_char (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+{
+ const word_type repl_nl = acc_char_replicate ('\n');
+ const word_type repl_cr = acc_char_replicate ('\r');
+ const word_type repl_bs = acc_char_replicate ('\\');
+ const word_type repl_qm = acc_char_replicate ('?');
+
+ unsigned int misalign;
+ const word_type *p;
+ word_type val, t;
+
+ /* Align the buffer. Mask out any bytes from before the beginning. */
+ p = (word_type *)((uintptr_t)s & -sizeof(word_type));
+ val = *p;
+ misalign = (uintptr_t)s & (sizeof(word_type) - 1);
+ if (misalign)
+ val = acc_char_mask_misalign (val, misalign);
+
+ /* Main loop. */
+ while (1)
+ {
+ t = acc_char_cmp (val, repl_nl);
+ t |= acc_char_cmp (val, repl_cr);
+ t |= acc_char_cmp (val, repl_bs);
+ t |= acc_char_cmp (val, repl_qm);
+
+ if (__builtin_expect (t != 0, 0))
+ {
+ int i = acc_char_index (t, val);
+ if (i >= 0)
+ return (const uchar *)p + i;
+ }
+
+ val = *++p;
+ }
+}
+
+/* Disable on Solaris 2/x86 until the following problems can be properly
+ autoconfed:
+
+ The Solaris 9 assembler cannot assemble SSE4.2 insns.
+ Before Solaris 9 Update 6, SSE insns cannot be executed.
+ The Solaris 10+ assembler tags objects with the instruction set
+ extensions used, so SSE4.2 executables cannot run on machines that
+ don't support that extension. */
+
+#if (GCC_VERSION >= 4005) && (defined(__i386__) || defined(__x86_64__)) && !(defined(__sun__) && defined(__svr4__))
+
+/* Replicated character data to be shared between implementations.
+ Recall that outside of a context with vector support we can't
+ define compatible vector types, therefore these are all defined
+ in terms of raw characters. */
+static const char repl_chars[4][16] __attribute__((aligned(16))) = {
+ { '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
+ '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n' },
+ { '\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
+ '\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r' },
+ { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
+ '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' },
+ { '?', '?', '?', '?', '?', '?', '?', '?',
+ '?', '?', '?', '?', '?', '?', '?', '?' },
+};
+
+/* A version of the fast scanner using MMX vectorized byte compare insns.
+
+ This uses the PMOVMSKB instruction which was introduced with "MMX2",
+ which was packaged into SSE1; it is also present in the AMD MMX
+ extension. Mark the function as using "sse" so that we emit a real
+ "emms" instruction, rather than the 3dNOW "femms" instruction. */
+
+static const uchar *
+#ifndef __SSE__
+__attribute__((__target__("sse")))
+#endif
+search_line_mmx (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+{
+ typedef char v8qi __attribute__ ((__vector_size__ (8)));
+ typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
+
+ const v8qi repl_nl = *(const v8qi *)repl_chars[0];
+ const v8qi repl_cr = *(const v8qi *)repl_chars[1];
+ const v8qi repl_bs = *(const v8qi *)repl_chars[2];
+ const v8qi repl_qm = *(const v8qi *)repl_chars[3];
+
+ unsigned int misalign, found, mask;
+ const v8qi *p;
+ v8qi data, t, c;
+
+ /* Align the source pointer. While MMX doesn't generate unaligned data
+ faults, this allows us to safely scan to the end of the buffer without
+ reading beyond the end of the last page. */
+ misalign = (uintptr_t)s & 7;
+ p = (const v8qi *)((uintptr_t)s & -8);
+ data = *p;
+
+ /* Create a mask for the bytes that are valid within the first
+ 16-byte block. The Idea here is that the AND with the mask
+ within the loop is "free", since we need some AND or TEST
+ insn in order to set the flags for the branch anyway. */
+ mask = -1u << misalign;
+
+ /* Main loop processing 8 bytes at a time. */
+ goto start;
+ do
+ {
+ data = *++p;
+ mask = -1;
+
+ start:
+ t = __builtin_ia32_pcmpeqb(data, repl_nl);
+ c = __builtin_ia32_pcmpeqb(data, repl_cr);
+ t = (v8qi) __builtin_ia32_por ((__m64)t, (__m64)c);
+ c = __builtin_ia32_pcmpeqb(data, repl_bs);
+ t = (v8qi) __builtin_ia32_por ((__m64)t, (__m64)c);
+ c = __builtin_ia32_pcmpeqb(data, repl_qm);
+ t = (v8qi) __builtin_ia32_por ((__m64)t, (__m64)c);
+ found = __builtin_ia32_pmovmskb (t);
+ found &= mask;
+ }
+ while (!found);
+
+ __builtin_ia32_emms ();
+
+ /* FOUND contains 1 in bits for which we matched a relevant
+ character. Conversion to the byte index is trivial. */
+ found = __builtin_ctz(found);
+ return (const uchar *)p + found;
+}
+
+/* A version of the fast scanner using SSE2 vectorized byte compare insns. */
+
+static const uchar *
+#ifndef __SSE2__
+__attribute__((__target__("sse2")))
+#endif
+search_line_sse2 (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+{
+ typedef char v16qi __attribute__ ((__vector_size__ (16)));
+
+ const v16qi repl_nl = *(const v16qi *)repl_chars[0];
+ const v16qi repl_cr = *(const v16qi *)repl_chars[1];
+ const v16qi repl_bs = *(const v16qi *)repl_chars[2];
+ const v16qi repl_qm = *(const v16qi *)repl_chars[3];
+
+ unsigned int misalign, found, mask;
+ const v16qi *p;
+ v16qi data, t;
+
+ /* Align the source pointer. */
+ misalign = (uintptr_t)s & 15;
+ p = (const v16qi *)((uintptr_t)s & -16);
+ data = *p;
+
+ /* Create a mask for the bytes that are valid within the first
+ 16-byte block. The Idea here is that the AND with the mask
+ within the loop is "free", since we need some AND or TEST
+ insn in order to set the flags for the branch anyway. */
+ mask = -1u << misalign;
+
+ /* Main loop processing 16 bytes at a time. */
+ goto start;
+ do
+ {
+ data = *++p;
+ mask = -1;
+
+ start:
+ t = __builtin_ia32_pcmpeqb128(data, repl_nl);
+ t |= __builtin_ia32_pcmpeqb128(data, repl_cr);
+ t |= __builtin_ia32_pcmpeqb128(data, repl_bs);
+ t |= __builtin_ia32_pcmpeqb128(data, repl_qm);
+ found = __builtin_ia32_pmovmskb128 (t);
+ found &= mask;
+ }
+ while (!found);
+
+ /* FOUND contains 1 in bits for which we matched a relevant
+ character. Conversion to the byte index is trivial. */
+ found = __builtin_ctz(found);
+ return (const uchar *)p + found;
+}
+
+#ifdef HAVE_SSE4
+/* A version of the fast scanner using SSE 4.2 vectorized string insns. */
+
+static const uchar *
+#ifndef __SSE4_2__
+__attribute__((__target__("sse4.2")))
+#endif
+search_line_sse42 (const uchar *s, const uchar *end)
+{
+ typedef char v16qi __attribute__ ((__vector_size__ (16)));
+ static const v16qi search = { '\n', '\r', '?', '\\' };
+
+ uintptr_t si = (uintptr_t)s;
+ uintptr_t index;
+
+ /* Check for unaligned input. */
+ if (si & 15)
+ {
+ v16qi sv;
+
+ if (__builtin_expect (end - s < 16, 0)
+ && __builtin_expect ((si & 0xfff) > 0xff0, 0))
+ {
+ /* There are less than 16 bytes left in the buffer, and less
+ than 16 bytes left on the page. Reading 16 bytes at this
+ point might generate a spurious page fault. Defer to the
+ SSE2 implementation, which already handles alignment. */
+ return search_line_sse2 (s, end);
+ }
+
+ /* ??? The builtin doesn't understand that the PCMPESTRI read from
+ memory need not be aligned. */
+ sv = __builtin_ia32_loaddqu ((const char *) s);
+ index = __builtin_ia32_pcmpestri128 (search, 4, sv, 16, 0);
+
+ if (__builtin_expect (index < 16, 0))
+ goto found;
+
+ /* Advance the pointer to an aligned address. We will re-scan a
+ few bytes, but we no longer need care for reading past the
+ end of a page, since we're guaranteed a match. */
+ s = (const uchar *)((si + 16) & -16);
+ }
+
+ /* Main loop, processing 16 bytes at a time. By doing the whole loop
+ in inline assembly, we can make proper use of the flags set. */
+ __asm ( "sub $16, %1\n"
+ " .balign 16\n"
+ "0: add $16, %1\n"
+ " %vpcmpestri $0, (%1), %2\n"
+ " jnc 0b"
+ : "=&c"(index), "+r"(s)
+ : "x"(search), "a"(4), "d"(16));
+
+ found:
+ return s + index;
+}
+
+#else
+/* Work around out-dated assemblers without sse4 support. */
+#define search_line_sse42 search_line_sse2
+#endif
+
+/* Check the CPU capabilities. */
+
+#include "../gcc/config/i386/cpuid.h"
+
+typedef const uchar * (*search_line_fast_type) (const uchar *, const uchar *);
+static search_line_fast_type search_line_fast;
+
+#define HAVE_init_vectorized_lexer 1
+static inline void
+init_vectorized_lexer (void)
+{
+ unsigned dummy, ecx = 0, edx = 0;
+ search_line_fast_type impl = search_line_acc_char;
+ int minimum = 0;
+
+#if defined(__SSE4_2__)
+ minimum = 3;
+#elif defined(__SSE2__)
+ minimum = 2;
+#elif defined(__SSE__)
+ minimum = 1;
+#endif
+
+ if (minimum == 3)
+ impl = search_line_sse42;
+ else if (__get_cpuid (1, &dummy, &dummy, &ecx, &edx) || minimum == 2)
+ {
+ if (minimum == 3 || (ecx & bit_SSE4_2))
+ impl = search_line_sse42;
+ else if (minimum == 2 || (edx & bit_SSE2))
+ impl = search_line_sse2;
+ else if (minimum == 1 || (edx & bit_SSE))
+ impl = search_line_mmx;
+ }
+ else if (__get_cpuid (0x80000001, &dummy, &dummy, &dummy, &edx))
+ {
+ if (minimum == 1
+ || (edx & (bit_MMXEXT | bit_CMOV)) == (bit_MMXEXT | bit_CMOV))
+ impl = search_line_mmx;
+ }
+
+ search_line_fast = impl;
+}
+
+#elif (GCC_VERSION >= 4005) && defined(__ALTIVEC__)
+
+/* A vection of the fast scanner using AltiVec vectorized byte compares. */
+/* ??? Unfortunately, attribute(target("altivec")) is not yet supported,
+ so we can't compile this function without -maltivec on the command line
+ (or implied by some other switch). */
+
+static const uchar *
+search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+{
+ typedef __attribute__((altivec(vector))) unsigned char vc;
+
+ const vc repl_nl = {
+ '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
+ '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n'
+ };
+ const vc repl_cr = {
+ '\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r',
+ '\r', '\r', '\r', '\r', '\r', '\r', '\r', '\r'
+ };
+ const vc repl_bs = {
+ '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\',
+ '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\'
+ };
+ const vc repl_qm = {
+ '?', '?', '?', '?', '?', '?', '?', '?',
+ '?', '?', '?', '?', '?', '?', '?', '?',
+ };
+ const vc ones = {
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1,
+ };
+ const vc zero = { 0 };
+
+ vc data, mask, t;
+
+ /* Altivec loads automatically mask addresses with -16. This lets us
+ issue the first load as early as possible. */
+ data = __builtin_vec_ld(0, (const vc *)s);
+
+ /* Discard bytes before the beginning of the buffer. Do this by
+ beginning with all ones and shifting in zeros according to the
+ mis-alignment. The LVSR instruction pulls the exact shift we
+ want from the address. */
+#ifdef __BIG_ENDIAN__
+ mask = __builtin_vec_lvsr(0, s);
+ mask = __builtin_vec_perm(zero, ones, mask);
+#else
+ mask = __builtin_vec_lvsl(0, s);
+ mask = __builtin_vec_perm(ones, zero, mask);
+#endif
+ data &= mask;
+
+ /* While altivec loads mask addresses, we still need to align S so
+ that the offset we compute at the end is correct. */
+ s = (const uchar *)((uintptr_t)s & -16);
+
+ /* Main loop processing 16 bytes at a time. */
+ goto start;
+ do
+ {
+ vc m_nl, m_cr, m_bs, m_qm;
+
+ s += 16;
+ data = __builtin_vec_ld(0, (const vc *)s);
+
+ start:
+ m_nl = (vc) __builtin_vec_cmpeq(data, repl_nl);
+ m_cr = (vc) __builtin_vec_cmpeq(data, repl_cr);
+ m_bs = (vc) __builtin_vec_cmpeq(data, repl_bs);
+ m_qm = (vc) __builtin_vec_cmpeq(data, repl_qm);
+ t = (m_nl | m_cr) | (m_bs | m_qm);
+
+ /* T now contains 0xff in bytes for which we matched one of the relevant
+ characters. We want to exit the loop if any byte in T is non-zero.
+ Below is the expansion of vec_any_ne(t, zero). */
+ }
+ while (!__builtin_vec_vcmpeq_p(/*__CR6_LT_REV*/3, t, zero));
+
+ {
+#define N (sizeof(vc) / sizeof(long))
+
+ union {
+ vc v;
+ /* Statically assert that N is 2 or 4. */
+ unsigned long l[(N == 2 || N == 4) ? N : -1];
+ } u;
+ unsigned long l, i = 0;
+
+ u.v = t;
+
+ /* Find the first word of T that is non-zero. */
+ switch (N)
+ {
+ case 4:
+ l = u.l[i++];
+ if (l != 0)
+ break;
+ s += sizeof(unsigned long);
+ l = u.l[i++];
+ if (l != 0)
+ break;
+ s += sizeof(unsigned long);
+ case 2:
+ l = u.l[i++];
+ if (l != 0)
+ break;
+ s += sizeof(unsigned long);
+ l = u.l[i];
+ }
+
+ /* L now contains 0xff in bytes for which we matched one of the
+ relevant characters. We can find the byte index by finding
+ its bit index and dividing by 8. */
+#ifdef __BIG_ENDIAN__
+ l = __builtin_clzl(l) >> 3;
+#else
+ l = __builtin_ctzl(l) >> 3;
+#endif
+ return s + l;
+
+#undef N
+ }
+}
+
+#elif defined (__ARM_NEON__)
+#include "arm_neon.h"
+
+static const uchar *
+search_line_fast (const uchar *s, const uchar *end ATTRIBUTE_UNUSED)
+{
+ const uint8x16_t repl_nl = vdupq_n_u8 ('\n');
+ const uint8x16_t repl_cr = vdupq_n_u8 ('\r');
+ const uint8x16_t repl_bs = vdupq_n_u8 ('\\');
+ const uint8x16_t repl_qm = vdupq_n_u8 ('?');
+ const uint8x16_t xmask = (uint8x16_t) vdupq_n_u64 (0x8040201008040201ULL);
+
+ unsigned int misalign, found, mask;
+ const uint8_t *p;
+ uint8x16_t data;
+
+ /* Align the source pointer. */
+ misalign = (uintptr_t)s & 15;
+ p = (const uint8_t *)((uintptr_t)s & -16);
+ data = vld1q_u8 (p);
+
+ /* Create a mask for the bytes that are valid within the first
+ 16-byte block. The Idea here is that the AND with the mask
+ within the loop is "free", since we need some AND or TEST
+ insn in order to set the flags for the branch anyway. */
+ mask = (-1u << misalign) & 0xffff;
+
+ /* Main loop, processing 16 bytes at a time. */
+ goto start;
+
+ do
+ {
+ uint8x8_t l;
+ uint16x4_t m;
+ uint32x2_t n;
+ uint8x16_t t, u, v, w;
+
+ p += 16;
+ data = vld1q_u8 (p);
+ mask = 0xffff;
+
+ start:
+ t = vceqq_u8 (data, repl_nl);
+ u = vceqq_u8 (data, repl_cr);
+ v = vorrq_u8 (t, vceqq_u8 (data, repl_bs));
+ w = vorrq_u8 (u, vceqq_u8 (data, repl_qm));
+ t = vandq_u8 (vorrq_u8 (v, w), xmask);
+ l = vpadd_u8 (vget_low_u8 (t), vget_high_u8 (t));
+ m = vpaddl_u8 (l);
+ n = vpaddl_u16 (m);
+
+ found = vget_lane_u32 ((uint32x2_t) vorr_u64 ((uint64x1_t) n,
+ vshr_n_u64 ((uint64x1_t) n, 24)), 0);
+ found &= mask;
+ }
+ while (!found);
+
+ /* FOUND contains 1 in bits for which we matched a relevant
+ character. Conversion to the byte index is trivial. */
+ found = __builtin_ctz (found);
+ return (const uchar *)p + found;
+}
+
+#else
+
+/* We only have one accellerated alternative. Use a direct call so that
+ we encourage inlining. */
+
+#define search_line_fast search_line_acc_char
+
+#endif
+
+/* Initialize the lexer if needed. */
+
+void
+_cpp_init_lexer (void)
+{
+#ifdef HAVE_init_vectorized_lexer
+ init_vectorized_lexer ();
+#endif
+}
+
+/* Returns with a logical line that contains no escaped newlines or
+ trigraphs. This is a time-critical inner loop. */
+void
+_cpp_clean_line (cpp_reader *pfile)
+{
+ cpp_buffer *buffer;
+ const uchar *s;
+ uchar c, *d, *p;
+
+ buffer = pfile->buffer;
+ buffer->cur_note = buffer->notes_used = 0;
+ buffer->cur = buffer->line_base = buffer->next_line;
+ buffer->need_line = false;
+ s = buffer->next_line;
+
+ if (!buffer->from_stage3)
+ {
+ const uchar *pbackslash = NULL;
+
+ /* Fast path. This is the common case of an un-escaped line with
+ no trigraphs. The primary win here is by not writing any
+ data back to memory until we have to. */
+ while (1)
+ {
+ /* Perform an optimized search for \n, \r, \\, ?. */
+ s = search_line_fast (s, buffer->rlimit);
+
+ c = *s;
+ if (c == '\\')
+ {
+ /* Record the location of the backslash and continue. */
+ pbackslash = s++;
+ }
+ else if (__builtin_expect (c == '?', 0))
+ {
+ if (__builtin_expect (s[1] == '?', false)
+ && _cpp_trigraph_map[s[2]])
+ {
+ /* Have a trigraph. We may or may not have to convert
+ it. Add a line note regardless, for -Wtrigraphs. */
+ add_line_note (buffer, s, s[2]);
+ if (CPP_OPTION (pfile, trigraphs))
+ {
+ /* We do, and that means we have to switch to the
+ slow path. */
+ d = (uchar *) s;
+ *d = _cpp_trigraph_map[s[2]];
+ s += 2;
+ goto slow_path;
+ }
+ }
+ /* Not a trigraph. Continue on fast-path. */
+ s++;
+ }
+ else
+ break;
+ }
+
+ /* This must be \r or \n. We're either done, or we'll be forced
+ to write back to the buffer and continue on the slow path. */
+ d = (uchar *) s;
+
+ if (__builtin_expect (s == buffer->rlimit, false))
+ goto done;
+
+ /* DOS line ending? */
+ if (__builtin_expect (c == '\r', false) && s[1] == '\n')
+ {
+ s++;
+ if (s == buffer->rlimit)
+ goto done;
+ }
+
+ if (__builtin_expect (pbackslash == NULL, true))
+ goto done;
+
+ /* Check for escaped newline. */
+ p = d;
+ while (is_nvspace (p[-1]))
+ p--;
+ if (p - 1 != pbackslash)
+ goto done;
+
+ /* Have an escaped newline; process it and proceed to
+ the slow path. */
+ add_line_note (buffer, p - 1, p != d ? ' ' : '\\');
+ d = p - 2;
+ buffer->next_line = p - 1;
+
+ slow_path:
+ while (1)
+ {
+ c = *++s;
+ *++d = c;
+
+ if (c == '\n' || c == '\r')
+ {
+ /* Handle DOS line endings. */
+ if (c == '\r' && s != buffer->rlimit && s[1] == '\n')
+ s++;
+ if (s == buffer->rlimit)
+ break;
+
+ /* Escaped? */
+ p = d;
+ while (p != buffer->next_line && is_nvspace (p[-1]))
+ p--;
+ if (p == buffer->next_line || p[-1] != '\\')
+ break;
+
+ add_line_note (buffer, p - 1, p != d ? ' ': '\\');
+ d = p - 2;
+ buffer->next_line = p - 1;
+ }
+ else if (c == '?' && s[1] == '?' && _cpp_trigraph_map[s[2]])
+ {
+ /* Add a note regardless, for the benefit of -Wtrigraphs. */
+ add_line_note (buffer, d, s[2]);
+ if (CPP_OPTION (pfile, trigraphs))
+ {
+ *d = _cpp_trigraph_map[s[2]];
+ s += 2;
+ }
+ }
+ }
+ }
+ else
+ {
+ while (*s != '\n' && *s != '\r')
+ s++;
+ d = (uchar *) s;
+
+ /* Handle DOS line endings. */
+ if (*s == '\r' && s != buffer->rlimit && s[1] == '\n')
+ s++;
+ }
+
+ done:
+ *d = '\n';
+ /* A sentinel note that should never be processed. */
+ add_line_note (buffer, d + 1, '\n');
+ buffer->next_line = s + 1;
+}
+
+/* Return true if the trigraph indicated by NOTE should be warned
+ about in a comment. */
+static bool
+warn_in_comment (cpp_reader *pfile, _cpp_line_note *note)
+{
+ const uchar *p;
+
+ /* Within comments we don't warn about trigraphs, unless the
+ trigraph forms an escaped newline, as that may change
+ behavior. */
+ if (note->type != '/')
+ return false;
+
+ /* If -trigraphs, then this was an escaped newline iff the next note
+ is coincident. */
+ if (CPP_OPTION (pfile, trigraphs))
+ return note[1].pos == note->pos;
+
+ /* Otherwise, see if this forms an escaped newline. */
+ p = note->pos + 3;
+ while (is_nvspace (*p))
+ p++;
+
+ /* There might have been escaped newlines between the trigraph and the
+ newline we found. Hence the position test. */
+ return (*p == '\n' && p < note[1].pos);
+}
+
+/* Process the notes created by add_line_note as far as the current
+ location. */
+void
+_cpp_process_line_notes (cpp_reader *pfile, int in_comment)
+{
+ cpp_buffer *buffer = pfile->buffer;
+
+ for (;;)
+ {
+ _cpp_line_note *note = &buffer->notes[buffer->cur_note];
+ unsigned int col;
+
+ if (note->pos > buffer->cur)
+ break;
+
+ buffer->cur_note++;
+ col = CPP_BUF_COLUMN (buffer, note->pos + 1);
+
+ if (note->type == '\\' || note->type == ' ')
+ {
+ if (note->type == ' ' && !in_comment)
+ cpp_error_with_line (pfile, CPP_DL_WARNING, pfile->line_table->highest_line, col,
+ "backslash and newline separated by space");
+
+ if (buffer->next_line > buffer->rlimit)
+ {
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line, col,
+ "backslash-newline at end of file");
+ /* Prevent "no newline at end of file" warning. */
+ buffer->next_line = buffer->rlimit;
+ }
+
+ buffer->line_base = note->pos;
+ CPP_INCREMENT_LINE (pfile, 0);
+ }
+ else if (_cpp_trigraph_map[note->type])
+ {
+ if (CPP_OPTION (pfile, warn_trigraphs)
+ && (!in_comment || warn_in_comment (pfile, note)))
+ {
+ if (CPP_OPTION (pfile, trigraphs))
+ cpp_warning_with_line (pfile, CPP_W_TRIGRAPHS,
+ pfile->line_table->highest_line, col,
+ "trigraph ??%c converted to %c",
+ note->type,
+ (int) _cpp_trigraph_map[note->type]);
+ else
+ {
+ cpp_warning_with_line
+ (pfile, CPP_W_TRIGRAPHS,
+ pfile->line_table->highest_line, col,
+ "trigraph ??%c ignored, use -trigraphs to enable",
+ note->type);
+ }
+ }
+ }
+ else if (note->type == 0)
+ /* Already processed in lex_raw_string. */;
+ else
+ abort ();
+ }
+}
+
+/* Skip a C-style block comment. We find the end of the comment by
+ seeing if an asterisk is before every '/' we encounter. Returns
+ nonzero if comment terminated by EOF, zero otherwise.
+
+ Buffer->cur points to the initial asterisk of the comment. */
+bool
+_cpp_skip_block_comment (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ const uchar *cur = buffer->cur;
+ uchar c;
+
+ cur++;
+ if (*cur == '/')
+ cur++;
+
+ for (;;)
+ {
+ /* People like decorating comments with '*', so check for '/'
+ instead for efficiency. */
+ c = *cur++;
+
+ if (c == '/')
+ {
+ if (cur[-2] == '*')
+ break;
+
+ /* Warn about potential nested comments, but not if the '/'
+ comes immediately before the true comment delimiter.
+ Don't bother to get it right across escaped newlines. */
+ if (CPP_OPTION (pfile, warn_comments)
+ && cur[0] == '*' && cur[1] != '/')
+ {
+ buffer->cur = cur;
+ cpp_warning_with_line (pfile, CPP_W_COMMENTS,
+ pfile->line_table->highest_line,
+ CPP_BUF_COL (buffer),
+ "\"/*\" within comment");
+ }
+ }
+ else if (c == '\n')
+ {
+ unsigned int cols;
+ buffer->cur = cur - 1;
+ _cpp_process_line_notes (pfile, true);
+ if (buffer->next_line >= buffer->rlimit)
+ return true;
+ _cpp_clean_line (pfile);
+
+ cols = buffer->next_line - buffer->line_base;
+ CPP_INCREMENT_LINE (pfile, cols);
+
+ cur = buffer->cur;
+ }
+ }
+
+ buffer->cur = cur;
+ _cpp_process_line_notes (pfile, true);
+ return false;
+}
+
+/* Skip a C++ line comment, leaving buffer->cur pointing to the
+ terminating newline. Handles escaped newlines. Returns nonzero
+ if a multiline comment. */
+static int
+skip_line_comment (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ source_location orig_line = pfile->line_table->highest_line;
+
+ while (*buffer->cur != '\n')
+ buffer->cur++;
+
+ _cpp_process_line_notes (pfile, true);
+ return orig_line != pfile->line_table->highest_line;
+}
+
+/* Skips whitespace, saving the next non-whitespace character. */
+static void
+skip_whitespace (cpp_reader *pfile, cppchar_t c)
+{
+ cpp_buffer *buffer = pfile->buffer;
+ bool saw_NUL = false;
+
+ do
+ {
+ /* Horizontal space always OK. */
+ if (c == ' ' || c == '\t')
+ ;
+ /* Just \f \v or \0 left. */
+ else if (c == '\0')
+ saw_NUL = true;
+ else if (pfile->state.in_directive && CPP_PEDANTIC (pfile))
+ cpp_error_with_line (pfile, CPP_DL_PEDWARN, pfile->line_table->highest_line,
+ CPP_BUF_COL (buffer),
+ "%s in preprocessing directive",
+ c == '\f' ? "form feed" : "vertical tab");
+
+ c = *buffer->cur++;
+ }
+ /* We only want non-vertical space, i.e. ' ' \t \f \v \0. */
+ while (is_nvspace (c));
+
+ if (saw_NUL)
+ cpp_error (pfile, CPP_DL_WARNING, "null character(s) ignored");
+
+ buffer->cur--;
+}
+
+/* See if the characters of a number token are valid in a name (no
+ '.', '+' or '-'). */
+static int
+name_p (cpp_reader *pfile, const cpp_string *string)
+{
+ unsigned int i;
+
+ for (i = 0; i < string->len; i++)
+ if (!is_idchar (string->text[i]))
+ return 0;
+
+ return 1;
+}
+
+/* After parsing an identifier or other sequence, produce a warning about
+ sequences not in NFC/NFKC. */
+static void
+warn_about_normalization (cpp_reader *pfile,
+ const cpp_token *token,
+ const struct normalize_state *s)
+{
+ if (CPP_OPTION (pfile, warn_normalize) < NORMALIZE_STATE_RESULT (s)
+ && !pfile->state.skipping)
+ {
+ /* Make sure that the token is printed using UCNs, even
+ if we'd otherwise happily print UTF-8. */
+ unsigned char *buf = XNEWVEC (unsigned char, cpp_token_len (token));
+ size_t sz;
+
+ sz = cpp_spell_token (pfile, token, buf, false) - buf;
+ if (NORMALIZE_STATE_RESULT (s) == normalized_C)
+ cpp_warning_with_line (pfile, CPP_W_NORMALIZE, token->src_loc, 0,
+ "`%.*s' is not in NFKC", (int) sz, buf);
+ else
+ cpp_warning_with_line (pfile, CPP_W_NORMALIZE, token->src_loc, 0,
+ "`%.*s' is not in NFC", (int) sz, buf);
+ free (buf);
+ }
+}
+
+/* Returns TRUE if the sequence starting at buffer->cur is invalid in
+ an identifier. FIRST is TRUE if this starts an identifier. */
+static bool
+forms_identifier_p (cpp_reader *pfile, int first,
+ struct normalize_state *state)
+{
+ cpp_buffer *buffer = pfile->buffer;
+
+ if (*buffer->cur == '$')
+ {
+ if (!CPP_OPTION (pfile, dollars_in_ident))
+ return false;
+
+ buffer->cur++;
+ if (CPP_OPTION (pfile, warn_dollars) && !pfile->state.skipping)
+ {
+ CPP_OPTION (pfile, warn_dollars) = 0;
+ cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
+ }
+
+ return true;
+ }
+
+ /* Is this a syntactically valid UCN? */
+ if (CPP_OPTION (pfile, extended_identifiers)
+ && *buffer->cur == '\\'
+ && (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
+ {
+ buffer->cur += 2;
+ if (_cpp_valid_ucn (pfile, &buffer->cur, buffer->rlimit, 1 + !first,
+ state))
+ return true;
+ buffer->cur -= 2;
+ }
+
+ return false;
+}
+
+/* Helper function to get the cpp_hashnode of the identifier BASE. */
+static cpp_hashnode *
+lex_identifier_intern (cpp_reader *pfile, const uchar *base)
+{
+ cpp_hashnode *result;
+ const uchar *cur;
+ unsigned int len;
+ unsigned int hash = HT_HASHSTEP (0, *base);
+
+ cur = base + 1;
+ while (ISIDNUM (*cur))
+ {
+ hash = HT_HASHSTEP (hash, *cur);
+ cur++;
+ }
+ len = cur - base;
+ hash = HT_HASHFINISH (hash, len);
+ result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
+ base, len, hash, HT_ALLOC));
+
+ /* Rarely, identifiers require diagnostics when lexed. */
+ if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC)
+ && !pfile->state.skipping, 0))
+ {
+ /* It is allowed to poison the same identifier twice. */
+ if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok)
+ cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"",
+ NODE_NAME (result));
+
+ /* Constraint 6.10.3.5: __VA_ARGS__ should only appear in the
+ replacement list of a variadic macro. */
+ if (result == pfile->spec_nodes.n__VA_ARGS__
+ && !pfile->state.va_args_ok)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "__VA_ARGS__ can only appear in the expansion"
+ " of a C99 variadic macro");
+
+ /* For -Wc++-compat, warn about use of C++ named operators. */
+ if (result->flags & NODE_WARN_OPERATOR)
+ cpp_warning (pfile, CPP_W_CXX_OPERATOR_NAMES,
+ "identifier \"%s\" is a special operator name in C++",
+ NODE_NAME (result));
+ }
+
+ return result;
+}
+
+/* Get the cpp_hashnode of an identifier specified by NAME in
+ the current cpp_reader object. If none is found, NULL is returned. */
+cpp_hashnode *
+_cpp_lex_identifier (cpp_reader *pfile, const char *name)
+{
+ cpp_hashnode *result;
+ result = lex_identifier_intern (pfile, (uchar *) name);
+ return result;
+}
+
+/* Lex an identifier starting at BUFFER->CUR - 1. */
+static cpp_hashnode *
+lex_identifier (cpp_reader *pfile, const uchar *base, bool starts_ucn,
+ struct normalize_state *nst)
+{
+ cpp_hashnode *result;
+ const uchar *cur;
+ unsigned int len;
+ unsigned int hash = HT_HASHSTEP (0, *base);
+
+ cur = pfile->buffer->cur;
+ if (! starts_ucn)
+ {
+ while (ISIDNUM (*cur))
+ {
+ hash = HT_HASHSTEP (hash, *cur);
+ cur++;
+ }
+ NORMALIZE_STATE_UPDATE_IDNUM (nst, *(cur - 1));
+ }
+ pfile->buffer->cur = cur;
+ if (starts_ucn || forms_identifier_p (pfile, false, nst))
+ {
+ /* Slower version for identifiers containing UCNs (or $). */
+ do {
+ while (ISIDNUM (*pfile->buffer->cur))
+ {
+ NORMALIZE_STATE_UPDATE_IDNUM (nst, *pfile->buffer->cur);
+ pfile->buffer->cur++;
+ }
+ } while (forms_identifier_p (pfile, false, nst));
+ result = _cpp_interpret_identifier (pfile, base,
+ pfile->buffer->cur - base);
+ }
+ else
+ {
+ len = cur - base;
+ hash = HT_HASHFINISH (hash, len);
+
+ result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
+ base, len, hash, HT_ALLOC));
+ }
+
+ /* Rarely, identifiers require diagnostics when lexed. */
+ if (__builtin_expect ((result->flags & NODE_DIAGNOSTIC)
+ && !pfile->state.skipping, 0))
+ {
+ /* It is allowed to poison the same identifier twice. */
+ if ((result->flags & NODE_POISONED) && !pfile->state.poisoned_ok)
+ cpp_error (pfile, CPP_DL_ERROR, "attempt to use poisoned \"%s\"",
+ NODE_NAME (result));
+
+ /* Constraint 6.10.3.5: __VA_ARGS__ should only appear in the
+ replacement list of a variadic macro. */
+ if (result == pfile->spec_nodes.n__VA_ARGS__
+ && !pfile->state.va_args_ok)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "__VA_ARGS__ can only appear in the expansion"
+ " of a C99 variadic macro");
+
+ /* For -Wc++-compat, warn about use of C++ named operators. */
+ if (result->flags & NODE_WARN_OPERATOR)
+ cpp_warning (pfile, CPP_W_CXX_OPERATOR_NAMES,
+ "identifier \"%s\" is a special operator name in C++",
+ NODE_NAME (result));
+ }
+
+ return result;
+}
+
+/* Lex a number to NUMBER starting at BUFFER->CUR - 1. */
+static void
+lex_number (cpp_reader *pfile, cpp_string *number,
+ struct normalize_state *nst)
+{
+ const uchar *cur;
+ const uchar *base;
+ uchar *dest;
+
+ base = pfile->buffer->cur - 1;
+ do
+ {
+ cur = pfile->buffer->cur;
+
+ /* N.B. ISIDNUM does not include $. */
+ while (ISIDNUM (*cur) || *cur == '.' || DIGIT_SEP (*cur)
+ || VALID_SIGN (*cur, cur[-1]))
+ {
+ NORMALIZE_STATE_UPDATE_IDNUM (nst, *cur);
+ cur++;
+ }
+
+ pfile->buffer->cur = cur;
+ }
+ while (forms_identifier_p (pfile, false, nst));
+
+ number->len = cur - base;
+ dest = _cpp_unaligned_alloc (pfile, number->len + 1);
+ memcpy (dest, base, number->len);
+ dest[number->len] = '\0';
+ number->text = dest;
+}
+
+/* Create a token of type TYPE with a literal spelling. */
+static void
+create_literal (cpp_reader *pfile, cpp_token *token, const uchar *base,
+ unsigned int len, enum cpp_ttype type)
+{
+ uchar *dest = _cpp_unaligned_alloc (pfile, len + 1);
+
+ memcpy (dest, base, len);
+ dest[len] = '\0';
+ token->type = type;
+ token->val.str.len = len;
+ token->val.str.text = dest;
+}
+
+/* Subroutine of lex_raw_string: Append LEN chars from BASE to the buffer
+ sequence from *FIRST_BUFF_P to LAST_BUFF_P. */
+
+static void
+bufring_append (cpp_reader *pfile, const uchar *base, size_t len,
+ _cpp_buff **first_buff_p, _cpp_buff **last_buff_p)
+{
+ _cpp_buff *first_buff = *first_buff_p;
+ _cpp_buff *last_buff = *last_buff_p;
+
+ if (first_buff == NULL)
+ first_buff = last_buff = _cpp_get_buff (pfile, len);
+ else if (len > BUFF_ROOM (last_buff))
+ {
+ size_t room = BUFF_ROOM (last_buff);
+ memcpy (BUFF_FRONT (last_buff), base, room);
+ BUFF_FRONT (last_buff) += room;
+ base += room;
+ len -= room;
+ last_buff = _cpp_append_extend_buff (pfile, last_buff, len);
+ }
+
+ memcpy (BUFF_FRONT (last_buff), base, len);
+ BUFF_FRONT (last_buff) += len;
+
+ *first_buff_p = first_buff;
+ *last_buff_p = last_buff;
+}
+
+
+/* Returns true if a macro has been defined.
+ This might not work if compile with -save-temps,
+ or preprocess separately from compilation. */
+
+static bool
+is_macro(cpp_reader *pfile, const uchar *base)
+{
+ const uchar *cur = base;
+ if (! ISIDST (*cur))
+ return false;
+ unsigned int hash = HT_HASHSTEP (0, *cur);
+ ++cur;
+ while (ISIDNUM (*cur))
+ {
+ hash = HT_HASHSTEP (hash, *cur);
+ ++cur;
+ }
+ hash = HT_HASHFINISH (hash, cur - base);
+
+ cpp_hashnode *result = CPP_HASHNODE (ht_lookup_with_hash (pfile->hash_table,
+ base, cur - base, hash, HT_NO_INSERT));
+
+ return !result ? false : (result->type == NT_MACRO);
+}
+
+
+/* Lexes a raw string. The stored string contains the spelling, including
+ double quotes, delimiter string, '(' and ')', any leading
+ 'L', 'u', 'U' or 'u8' and 'R' modifier. It returns the type of the
+ literal, or CPP_OTHER if it was not properly terminated.
+
+ The spelling is NUL-terminated, but it is not guaranteed that this
+ is the first NUL since embedded NULs are preserved. */
+
+static void
+lex_raw_string (cpp_reader *pfile, cpp_token *token, const uchar *base,
+ const uchar *cur)
+{
+ uchar raw_prefix[17];
+ uchar temp_buffer[18];
+ const uchar *orig_base;
+ unsigned int raw_prefix_len = 0, raw_suffix_len = 0;
+ enum raw_str_phase { RAW_STR_PREFIX, RAW_STR, RAW_STR_SUFFIX };
+ raw_str_phase phase = RAW_STR_PREFIX;
+ enum cpp_ttype type;
+ size_t total_len = 0;
+ /* Index into temp_buffer during phases other than RAW_STR,
+ during RAW_STR phase 17 to tell BUF_APPEND that nothing should
+ be appended to temp_buffer. */
+ size_t temp_buffer_len = 0;
+ _cpp_buff *first_buff = NULL, *last_buff = NULL;
+ size_t raw_prefix_start;
+ _cpp_line_note *note = &pfile->buffer->notes[pfile->buffer->cur_note];
+
+ type = (*base == 'L' ? CPP_WSTRING :
+ *base == 'U' ? CPP_STRING32 :
+ *base == 'u' ? (base[1] == '8' ? CPP_UTF8STRING : CPP_STRING16)
+ : CPP_STRING);
+
+#define BUF_APPEND(STR,LEN) \
+ do { \
+ bufring_append (pfile, (const uchar *)(STR), (LEN), \
+ &first_buff, &last_buff); \
+ total_len += (LEN); \
+ if (__builtin_expect (temp_buffer_len < 17, 0) \
+ && (const uchar *)(STR) != base \
+ && (LEN) <= 2) \
+ { \
+ memcpy (temp_buffer + temp_buffer_len, \
+ (const uchar *)(STR), (LEN)); \
+ temp_buffer_len += (LEN); \
+ } \
+ } while (0);
+
+ orig_base = base;
+ ++cur;
+ raw_prefix_start = cur - base;
+ for (;;)
+ {
+ cppchar_t c;
+
+ /* If we previously performed any trigraph or line splicing
+ transformations, undo them in between the opening and closing
+ double quote. */
+ while (note->pos < cur)
+ ++note;
+ for (; note->pos == cur; ++note)
+ {
+ switch (note->type)
+ {
+ case '\\':
+ case ' ':
+ /* Restore backslash followed by newline. */
+ BUF_APPEND (base, cur - base);
+ base = cur;
+ BUF_APPEND ("\\", 1);
+ after_backslash:
+ if (note->type == ' ')
+ {
+ /* GNU backslash whitespace newline extension. FIXME
+ could be any sequence of non-vertical space. When we
+ can properly restore any such sequence, we should mark
+ this note as handled so _cpp_process_line_notes
+ doesn't warn. */
+ BUF_APPEND (" ", 1);
+ }
+
+ BUF_APPEND ("\n", 1);
+ break;
+
+ case 0:
+ /* Already handled. */
+ break;
+
+ default:
+ if (_cpp_trigraph_map[note->type])
+ {
+ /* Don't warn about this trigraph in
+ _cpp_process_line_notes, since trigraphs show up as
+ trigraphs in raw strings. */
+ uchar type = note->type;
+ note->type = 0;
+
+ if (!CPP_OPTION (pfile, trigraphs))
+ /* If we didn't convert the trigraph in the first
+ place, don't do anything now either. */
+ break;
+
+ BUF_APPEND (base, cur - base);
+ base = cur;
+ BUF_APPEND ("??", 2);
+
+ /* ??/ followed by newline gets two line notes, one for
+ the trigraph and one for the backslash/newline. */
+ if (type == '/' && note[1].pos == cur)
+ {
+ if (note[1].type != '\\'
+ && note[1].type != ' ')
+ abort ();
+ BUF_APPEND ("/", 1);
+ ++note;
+ goto after_backslash;
+ }
+ else
+ {
+ /* Skip the replacement character. */
+ base = ++cur;
+ BUF_APPEND (&type, 1);
+ c = type;
+ goto check_c;
+ }
+ }
+ else
+ abort ();
+ break;
+ }
+ }
+ c = *cur++;
+ if (__builtin_expect (temp_buffer_len < 17, 0))
+ temp_buffer[temp_buffer_len++] = c;
+
+ check_c:
+ if (phase == RAW_STR_PREFIX)
+ {
+ while (raw_prefix_len < temp_buffer_len)
+ {
+ raw_prefix[raw_prefix_len] = temp_buffer[raw_prefix_len];
+ switch (raw_prefix[raw_prefix_len])
+ {
+ case ' ': case '(': case ')': case '\\': case '\t':
+ case '\v': case '\f': case '\n': default:
+ break;
+ /* Basic source charset except the above chars. */
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ case '_': case '{': case '}': case '#': case '[': case ']':
+ case '<': case '>': case '%': case ':': case ';': case '.':
+ case '?': case '*': case '+': case '-': case '/': case '^':
+ case '&': case '|': case '~': case '!': case '=': case ',':
+ case '"': case '\'':
+ if (raw_prefix_len < 16)
+ {
+ raw_prefix_len++;
+ continue;
+ }
+ break;
+ }
+
+ if (raw_prefix[raw_prefix_len] != '(')
+ {
+ int col = CPP_BUF_COLUMN (pfile->buffer, cur) + 1;
+ if (raw_prefix_len == 16)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc,
+ col, "raw string delimiter longer "
+ "than 16 characters");
+ else if (raw_prefix[raw_prefix_len] == '\n')
+ cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc,
+ col, "invalid new-line in raw "
+ "string delimiter");
+ else
+ cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc,
+ col, "invalid character '%c' in "
+ "raw string delimiter",
+ (int) raw_prefix[raw_prefix_len]);
+ pfile->buffer->cur = orig_base + raw_prefix_start - 1;
+ create_literal (pfile, token, orig_base,
+ raw_prefix_start - 1, CPP_OTHER);
+ if (first_buff)
+ _cpp_release_buff (pfile, first_buff);
+ return;
+ }
+ raw_prefix[raw_prefix_len] = '"';
+ phase = RAW_STR;
+ /* Nothing should be appended to temp_buffer during
+ RAW_STR phase. */
+ temp_buffer_len = 17;
+ break;
+ }
+ continue;
+ }
+ else if (phase == RAW_STR_SUFFIX)
+ {
+ while (raw_suffix_len <= raw_prefix_len
+ && raw_suffix_len < temp_buffer_len
+ && temp_buffer[raw_suffix_len] == raw_prefix[raw_suffix_len])
+ raw_suffix_len++;
+ if (raw_suffix_len > raw_prefix_len)
+ break;
+ if (raw_suffix_len == temp_buffer_len)
+ continue;
+ phase = RAW_STR;
+ /* Nothing should be appended to temp_buffer during
+ RAW_STR phase. */
+ temp_buffer_len = 17;
+ }
+ if (c == ')')
+ {
+ phase = RAW_STR_SUFFIX;
+ raw_suffix_len = 0;
+ temp_buffer_len = 0;
+ }
+ else if (c == '\n')
+ {
+ if (pfile->state.in_directive
+ || (pfile->state.parsing_args
+ && pfile->buffer->next_line >= pfile->buffer->rlimit))
+ {
+ cur--;
+ type = CPP_OTHER;
+ cpp_error_with_line (pfile, CPP_DL_ERROR, token->src_loc, 0,
+ "unterminated raw string");
+ break;
+ }
+
+ BUF_APPEND (base, cur - base);
+
+ if (pfile->buffer->cur < pfile->buffer->rlimit)
+ CPP_INCREMENT_LINE (pfile, 0);
+ pfile->buffer->need_line = true;
+
+ pfile->buffer->cur = cur-1;
+ _cpp_process_line_notes (pfile, false);
+ if (!_cpp_get_fresh_line (pfile))
+ {
+ source_location src_loc = token->src_loc;
+ token->type = CPP_EOF;
+ /* Tell the compiler the line number of the EOF token. */
+ token->src_loc = pfile->line_table->highest_line;
+ token->flags = BOL;
+ if (first_buff != NULL)
+ _cpp_release_buff (pfile, first_buff);
+ cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+ "unterminated raw string");
+ return;
+ }
+
+ cur = base = pfile->buffer->cur;
+ note = &pfile->buffer->notes[pfile->buffer->cur_note];
+ }
+ }
+
+ if (CPP_OPTION (pfile, user_literals))
+ {
+ /* If a string format macro, say from inttypes.h, is placed touching
+ a string literal it could be parsed as a C++11 user-defined string
+ literal thus breaking the program.
+ Try to identify macros with is_macro. A warning is issued. */
+ if (is_macro (pfile, cur))
+ {
+ /* Raise a warning, but do not consume subsequent tokens. */
+ if (CPP_OPTION (pfile, warn_literal_suffix))
+ cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX,
+ token->src_loc, 0,
+ "invalid suffix on literal; C++11 requires "
+ "a space between literal and string macro");
+ }
+ /* Grab user defined literal suffix. */
+ else if (ISIDST (*cur))
+ {
+ type = cpp_userdef_string_add_type (type);
+ ++cur;
+
+ while (ISIDNUM (*cur))
+ ++cur;
+ }
+ }
+
+ pfile->buffer->cur = cur;
+ if (first_buff == NULL)
+ create_literal (pfile, token, base, cur - base, type);
+ else
+ {
+ uchar *dest = _cpp_unaligned_alloc (pfile, total_len + (cur - base) + 1);
+
+ token->type = type;
+ token->val.str.len = total_len + (cur - base);
+ token->val.str.text = dest;
+ last_buff = first_buff;
+ while (last_buff != NULL)
+ {
+ memcpy (dest, last_buff->base,
+ BUFF_FRONT (last_buff) - last_buff->base);
+ dest += BUFF_FRONT (last_buff) - last_buff->base;
+ last_buff = last_buff->next;
+ }
+ _cpp_release_buff (pfile, first_buff);
+ memcpy (dest, base, cur - base);
+ dest[cur - base] = '\0';
+ }
+}
+
+/* Lexes a string, character constant, or angle-bracketed header file
+ name. The stored string contains the spelling, including opening
+ quote and any leading 'L', 'u', 'U' or 'u8' and optional
+ 'R' modifier. It returns the type of the literal, or CPP_OTHER
+ if it was not properly terminated, or CPP_LESS for an unterminated
+ header name which must be relexed as normal tokens.
+
+ The spelling is NUL-terminated, but it is not guaranteed that this
+ is the first NUL since embedded NULs are preserved. */
+static void
+lex_string (cpp_reader *pfile, cpp_token *token, const uchar *base)
+{
+ bool saw_NUL = false;
+ const uchar *cur;
+ cppchar_t terminator;
+ enum cpp_ttype type;
+
+ cur = base;
+ terminator = *cur++;
+ if (terminator == 'L' || terminator == 'U')
+ terminator = *cur++;
+ else if (terminator == 'u')
+ {
+ terminator = *cur++;
+ if (terminator == '8')
+ terminator = *cur++;
+ }
+ if (terminator == 'R')
+ {
+ lex_raw_string (pfile, token, base, cur);
+ return;
+ }
+ if (terminator == '"')
+ type = (*base == 'L' ? CPP_WSTRING :
+ *base == 'U' ? CPP_STRING32 :
+ *base == 'u' ? (base[1] == '8' ? CPP_UTF8STRING : CPP_STRING16)
+ : CPP_STRING);
+ else if (terminator == '\'')
+ type = (*base == 'L' ? CPP_WCHAR :
+ *base == 'U' ? CPP_CHAR32 :
+ *base == 'u' ? CPP_CHAR16 : CPP_CHAR);
+ else
+ terminator = '>', type = CPP_HEADER_NAME;
+
+ for (;;)
+ {
+ cppchar_t c = *cur++;
+
+ /* In #include-style directives, terminators are not escapable. */
+ if (c == '\\' && !pfile->state.angled_headers && *cur != '\n')
+ cur++;
+ else if (c == terminator)
+ break;
+ else if (c == '\n')
+ {
+ cur--;
+ /* Unmatched quotes always yield undefined behavior, but
+ greedy lexing means that what appears to be an unterminated
+ header name may actually be a legitimate sequence of tokens. */
+ if (terminator == '>')
+ {
+ token->type = CPP_LESS;
+ return;
+ }
+ type = CPP_OTHER;
+ break;
+ }
+ else if (c == '\0')
+ saw_NUL = true;
+ }
+
+ if (saw_NUL && !pfile->state.skipping)
+ cpp_error (pfile, CPP_DL_WARNING,
+ "null character(s) preserved in literal");
+
+ if (type == CPP_OTHER && CPP_OPTION (pfile, lang) != CLK_ASM)
+ cpp_error (pfile, CPP_DL_PEDWARN, "missing terminating %c character",
+ (int) terminator);
+
+ if (CPP_OPTION (pfile, user_literals))
+ {
+ /* If a string format macro, say from inttypes.h, is placed touching
+ a string literal it could be parsed as a C++11 user-defined string
+ literal thus breaking the program.
+ Try to identify macros with is_macro. A warning is issued. */
+ if (is_macro (pfile, cur))
+ {
+ /* Raise a warning, but do not consume subsequent tokens. */
+ if (CPP_OPTION (pfile, warn_literal_suffix))
+ cpp_warning_with_line (pfile, CPP_W_LITERAL_SUFFIX,
+ token->src_loc, 0,
+ "invalid suffix on literal; C++11 requires "
+ "a space between literal and string macro");
+ }
+ /* Grab user defined literal suffix. */
+ else if (ISIDST (*cur))
+ {
+ type = cpp_userdef_char_add_type (type);
+ type = cpp_userdef_string_add_type (type);
+ ++cur;
+
+ while (ISIDNUM (*cur))
+ ++cur;
+ }
+ }
+
+ pfile->buffer->cur = cur;
+ create_literal (pfile, token, base, cur - base, type);
+}
+
+/* Return the comment table. The client may not make any assumption
+ about the ordering of the table. */
+cpp_comment_table *
+cpp_get_comments (cpp_reader *pfile)
+{
+ return &pfile->comments;
+}
+
+/* Append a comment to the end of the comment table. */
+static void
+store_comment (cpp_reader *pfile, cpp_token *token)
+{
+ int len;
+
+ if (pfile->comments.allocated == 0)
+ {
+ pfile->comments.allocated = 256;
+ pfile->comments.entries = (cpp_comment *) xmalloc
+ (pfile->comments.allocated * sizeof (cpp_comment));
+ }
+
+ if (pfile->comments.count == pfile->comments.allocated)
+ {
+ pfile->comments.allocated *= 2;
+ pfile->comments.entries = (cpp_comment *) xrealloc
+ (pfile->comments.entries,
+ pfile->comments.allocated * sizeof (cpp_comment));
+ }
+
+ len = token->val.str.len;
+
+ /* Copy comment. Note, token may not be NULL terminated. */
+ pfile->comments.entries[pfile->comments.count].comment =
+ (char *) xmalloc (sizeof (char) * (len + 1));
+ memcpy (pfile->comments.entries[pfile->comments.count].comment,
+ token->val.str.text, len);
+ pfile->comments.entries[pfile->comments.count].comment[len] = '\0';
+
+ /* Set source location. */
+ pfile->comments.entries[pfile->comments.count].sloc = token->src_loc;
+
+ /* Increment the count of entries in the comment table. */
+ pfile->comments.count++;
+}
+
+/* The stored comment includes the comment start and any terminator. */
+static void
+save_comment (cpp_reader *pfile, cpp_token *token, const unsigned char *from,
+ cppchar_t type)
+{
+ unsigned char *buffer;
+ unsigned int len, clen, i;
+
+ len = pfile->buffer->cur - from + 1; /* + 1 for the initial '/'. */
+
+ /* C++ comments probably (not definitely) have moved past a new
+ line, which we don't want to save in the comment. */
+ if (is_vspace (pfile->buffer->cur[-1]))
+ len--;
+
+ /* If we are currently in a directive or in argument parsing, then
+ we need to store all C++ comments as C comments internally, and
+ so we need to allocate a little extra space in that case.
+
+ Note that the only time we encounter a directive here is
+ when we are saving comments in a "#define". */
+ clen = ((pfile->state.in_directive || pfile->state.parsing_args)
+ && type == '/') ? len + 2 : len;
+
+ buffer = _cpp_unaligned_alloc (pfile, clen);
+
+ token->type = CPP_COMMENT;
+ token->val.str.len = clen;
+ token->val.str.text = buffer;
+
+ buffer[0] = '/';
+ memcpy (buffer + 1, from, len - 1);
+
+ /* Finish conversion to a C comment, if necessary. */
+ if ((pfile->state.in_directive || pfile->state.parsing_args) && type == '/')
+ {
+ buffer[1] = '*';
+ buffer[clen - 2] = '*';
+ buffer[clen - 1] = '/';
+ /* As there can be in a C++ comments illegal sequences for C comments
+ we need to filter them out. */
+ for (i = 2; i < (clen - 2); i++)
+ if (buffer[i] == '/' && (buffer[i - 1] == '*' || buffer[i + 1] == '*'))
+ buffer[i] = '|';
+ }
+
+ /* Finally store this comment for use by clients of libcpp. */
+ store_comment (pfile, token);
+}
+
+/* Allocate COUNT tokens for RUN. */
+void
+_cpp_init_tokenrun (tokenrun *run, unsigned int count)
+{
+ run->base = XNEWVEC (cpp_token, count);
+ run->limit = run->base + count;
+ run->next = NULL;
+}
+
+/* Returns the next tokenrun, or creates one if there is none. */
+static tokenrun *
+next_tokenrun (tokenrun *run)
+{
+ if (run->next == NULL)
+ {
+ run->next = XNEW (tokenrun);
+ run->next->prev = run;
+ _cpp_init_tokenrun (run->next, 250);
+ }
+
+ return run->next;
+}
+
+/* Return the number of not yet processed token in a given
+ context. */
+int
+_cpp_remaining_tokens_num_in_context (cpp_context *context)
+{
+ if (context->tokens_kind == TOKENS_KIND_DIRECT)
+ return (LAST (context).token - FIRST (context).token);
+ else if (context->tokens_kind == TOKENS_KIND_INDIRECT
+ || context->tokens_kind == TOKENS_KIND_EXTENDED)
+ return (LAST (context).ptoken - FIRST (context).ptoken);
+ else
+ abort ();
+}
+
+/* Returns the token present at index INDEX in a given context. If
+ INDEX is zero, the next token to be processed is returned. */
+static const cpp_token*
+_cpp_token_from_context_at (cpp_context *context, int index)
+{
+ if (context->tokens_kind == TOKENS_KIND_DIRECT)
+ return &(FIRST (context).token[index]);
+ else if (context->tokens_kind == TOKENS_KIND_INDIRECT
+ || context->tokens_kind == TOKENS_KIND_EXTENDED)
+ return FIRST (context).ptoken[index];
+ else
+ abort ();
+}
+
+/* Look ahead in the input stream. */
+const cpp_token *
+cpp_peek_token (cpp_reader *pfile, int index)
+{
+ cpp_context *context = pfile->context;
+ const cpp_token *peektok;
+ int count;
+
+ /* First, scan through any pending cpp_context objects. */
+ while (context->prev)
+ {
+ ptrdiff_t sz = _cpp_remaining_tokens_num_in_context (context);
+
+ if (index < (int) sz)
+ return _cpp_token_from_context_at (context, index);
+ index -= (int) sz;
+ context = context->prev;
+ }
+
+ /* We will have to read some new tokens after all (and do so
+ without invalidating preceding tokens). */
+ count = index;
+ pfile->keep_tokens++;
+
+ do
+ {
+ peektok = _cpp_lex_token (pfile);
+ if (peektok->type == CPP_EOF)
+ return peektok;
+ }
+ while (index--);
+
+ _cpp_backup_tokens_direct (pfile, count + 1);
+ pfile->keep_tokens--;
+
+ return peektok;
+}
+
+/* Allocate a single token that is invalidated at the same time as the
+ rest of the tokens on the line. Has its line and col set to the
+ same as the last lexed token, so that diagnostics appear in the
+ right place. */
+cpp_token *
+_cpp_temp_token (cpp_reader *pfile)
+{
+ cpp_token *old, *result;
+ ptrdiff_t sz = pfile->cur_run->limit - pfile->cur_token;
+ ptrdiff_t la = (ptrdiff_t) pfile->lookaheads;
+
+ old = pfile->cur_token - 1;
+ /* Any pre-existing lookaheads must not be clobbered. */
+ if (la)
+ {
+ if (sz <= la)
+ {
+ tokenrun *next = next_tokenrun (pfile->cur_run);
+
+ if (sz < la)
+ memmove (next->base + 1, next->base,
+ (la - sz) * sizeof (cpp_token));
+
+ next->base[0] = pfile->cur_run->limit[-1];
+ }
+
+ if (sz > 1)
+ memmove (pfile->cur_token + 1, pfile->cur_token,
+ MIN (la, sz - 1) * sizeof (cpp_token));
+ }
+
+ if (!sz && pfile->cur_token == pfile->cur_run->limit)
+ {
+ pfile->cur_run = next_tokenrun (pfile->cur_run);
+ pfile->cur_token = pfile->cur_run->base;
+ }
+
+ result = pfile->cur_token++;
+ result->src_loc = old->src_loc;
+ return result;
+}
+
+/* Lex a token into RESULT (external interface). Takes care of issues
+ like directive handling, token lookahead, multiple include
+ optimization and skipping. */
+const cpp_token *
+_cpp_lex_token (cpp_reader *pfile)
+{
+ cpp_token *result;
+
+ for (;;)
+ {
+ if (pfile->cur_token == pfile->cur_run->limit)
+ {
+ pfile->cur_run = next_tokenrun (pfile->cur_run);
+ pfile->cur_token = pfile->cur_run->base;
+ }
+ /* We assume that the current token is somewhere in the current
+ run. */
+ if (pfile->cur_token < pfile->cur_run->base
+ || pfile->cur_token >= pfile->cur_run->limit)
+ abort ();
+
+ if (pfile->lookaheads)
+ {
+ pfile->lookaheads--;
+ result = pfile->cur_token++;
+ }
+ else
+ result = _cpp_lex_direct (pfile);
+
+ if (result->flags & BOL)
+ {
+ /* Is this a directive. If _cpp_handle_directive returns
+ false, it is an assembler #. */
+ if (result->type == CPP_HASH
+ /* 6.10.3 p 11: Directives in a list of macro arguments
+ gives undefined behavior. This implementation
+ handles the directive as normal. */
+ && pfile->state.parsing_args != 1)
+ {
+ if (_cpp_handle_directive (pfile, result->flags & PREV_WHITE))
+ {
+ if (pfile->directive_result.type == CPP_PADDING)
+ continue;
+ result = &pfile->directive_result;
+ }
+ }
+ else if (pfile->state.in_deferred_pragma)
+ result = &pfile->directive_result;
+
+ if (pfile->cb.line_change && !pfile->state.skipping)
+ pfile->cb.line_change (pfile, result, pfile->state.parsing_args);
+ }
+
+ /* We don't skip tokens in directives. */
+ if (pfile->state.in_directive || pfile->state.in_deferred_pragma)
+ break;
+
+ /* Outside a directive, invalidate controlling macros. At file
+ EOF, _cpp_lex_direct takes care of popping the buffer, so we never
+ get here and MI optimization works. */
+ pfile->mi_valid = false;
+
+ if (!pfile->state.skipping || result->type == CPP_EOF)
+ break;
+ }
+
+ return result;
+}
+
+/* Returns true if a fresh line has been loaded. */
+bool
+_cpp_get_fresh_line (cpp_reader *pfile)
+{
+ int return_at_eof;
+
+ /* We can't get a new line until we leave the current directive. */
+ if (pfile->state.in_directive)
+ return false;
+
+ for (;;)
+ {
+ cpp_buffer *buffer = pfile->buffer;
+
+ if (!buffer->need_line)
+ return true;
+
+ if (buffer->next_line < buffer->rlimit)
+ {
+ _cpp_clean_line (pfile);
+ return true;
+ }
+
+ /* First, get out of parsing arguments state. */
+ if (pfile->state.parsing_args)
+ return false;
+
+ /* End of buffer. Non-empty files should end in a newline. */
+ if (buffer->buf != buffer->rlimit
+ && buffer->next_line > buffer->rlimit
+ && !buffer->from_stage3)
+ {
+ /* Clip to buffer size. */
+ buffer->next_line = buffer->rlimit;
+ }
+
+ return_at_eof = buffer->return_at_eof;
+ _cpp_pop_buffer (pfile);
+ if (pfile->buffer == NULL || return_at_eof)
+ return false;
+ }
+}
+
+#define IF_NEXT_IS(CHAR, THEN_TYPE, ELSE_TYPE) \
+ do \
+ { \
+ result->type = ELSE_TYPE; \
+ if (*buffer->cur == CHAR) \
+ buffer->cur++, result->type = THEN_TYPE; \
+ } \
+ while (0)
+
+/* Lex a token into pfile->cur_token, which is also incremented, to
+ get diagnostics pointing to the correct location.
+
+ Does not handle issues such as token lookahead, multiple-include
+ optimization, directives, skipping etc. This function is only
+ suitable for use by _cpp_lex_token, and in special cases like
+ lex_expansion_token which doesn't care for any of these issues.
+
+ When meeting a newline, returns CPP_EOF if parsing a directive,
+ otherwise returns to the start of the token buffer if permissible.
+ Returns the location of the lexed token. */
+cpp_token *
+_cpp_lex_direct (cpp_reader *pfile)
+{
+ cppchar_t c;
+ cpp_buffer *buffer;
+ const unsigned char *comment_start;
+ cpp_token *result = pfile->cur_token++;
+
+ fresh_line:
+ result->flags = 0;
+ buffer = pfile->buffer;
+ if (buffer->need_line)
+ {
+ if (pfile->state.in_deferred_pragma)
+ {
+ result->type = CPP_PRAGMA_EOL;
+ pfile->state.in_deferred_pragma = false;
+ if (!pfile->state.pragma_allow_expansion)
+ pfile->state.prevent_expansion--;
+ return result;
+ }
+ if (!_cpp_get_fresh_line (pfile))
+ {
+ result->type = CPP_EOF;
+ if (!pfile->state.in_directive)
+ {
+ /* Tell the compiler the line number of the EOF token. */
+ result->src_loc = pfile->line_table->highest_line;
+ result->flags = BOL;
+ }
+ return result;
+ }
+ if (!pfile->keep_tokens)
+ {
+ pfile->cur_run = &pfile->base_run;
+ result = pfile->base_run.base;
+ pfile->cur_token = result + 1;
+ }
+ result->flags = BOL;
+ if (pfile->state.parsing_args == 2)
+ result->flags |= PREV_WHITE;
+ }
+ buffer = pfile->buffer;
+ update_tokens_line:
+ result->src_loc = pfile->line_table->highest_line;
+
+ skipped_white:
+ if (buffer->cur >= buffer->notes[buffer->cur_note].pos
+ && !pfile->overlaid_buffer)
+ {
+ _cpp_process_line_notes (pfile, false);
+ result->src_loc = pfile->line_table->highest_line;
+ }
+ c = *buffer->cur++;
+
+ if (pfile->forced_token_location_p)
+ result->src_loc = *pfile->forced_token_location_p;
+ else
+ result->src_loc = linemap_position_for_column (pfile->line_table,
+ CPP_BUF_COLUMN (buffer, buffer->cur));
+
+ switch (c)
+ {
+ case ' ': case '\t': case '\f': case '\v': case '\0':
+ result->flags |= PREV_WHITE;
+ skip_whitespace (pfile, c);
+ goto skipped_white;
+
+ case '\n':
+ if (buffer->cur < buffer->rlimit)
+ CPP_INCREMENT_LINE (pfile, 0);
+ buffer->need_line = true;
+ goto fresh_line;
+
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+ result->type = CPP_NUMBER;
+ lex_number (pfile, &result->val.str, &nst);
+ warn_about_normalization (pfile, result, &nst);
+ break;
+ }
+
+ case 'L':
+ case 'u':
+ case 'U':
+ case 'R':
+ /* 'L', 'u', 'U', 'u8' or 'R' may introduce wide characters,
+ wide strings or raw strings. */
+ if (c == 'L' || CPP_OPTION (pfile, rliterals)
+ || (c != 'R' && CPP_OPTION (pfile, uliterals)))
+ {
+ if ((*buffer->cur == '\'' && c != 'R')
+ || *buffer->cur == '"'
+ || (*buffer->cur == 'R'
+ && c != 'R'
+ && buffer->cur[1] == '"'
+ && CPP_OPTION (pfile, rliterals))
+ || (*buffer->cur == '8'
+ && c == 'u'
+ && (buffer->cur[1] == '"'
+ || (buffer->cur[1] == 'R' && buffer->cur[2] == '"'
+ && CPP_OPTION (pfile, rliterals)))))
+ {
+ lex_string (pfile, result, buffer->cur - 1);
+ break;
+ }
+ }
+ /* Fall through. */
+
+ case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K':
+ case 'M': case 'N': case 'O': case 'P': case 'Q':
+ case 'S': case 'T': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ result->type = CPP_NAME;
+ {
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+ result->val.node.node = lex_identifier (pfile, buffer->cur - 1, false,
+ &nst);
+ warn_about_normalization (pfile, result, &nst);
+ }
+
+ /* Convert named operators to their proper types. */
+ if (result->val.node.node->flags & NODE_OPERATOR)
+ {
+ result->flags |= NAMED_OP;
+ result->type = (enum cpp_ttype) result->val.node.node->directive_index;
+ }
+ break;
+
+ case '\'':
+ case '"':
+ lex_string (pfile, result, buffer->cur - 1);
+ break;
+
+ case '/':
+ /* A potential block or line comment. */
+ comment_start = buffer->cur;
+ c = *buffer->cur;
+
+ if (c == '*')
+ {
+ if (_cpp_skip_block_comment (pfile))
+ cpp_error (pfile, CPP_DL_ERROR, "unterminated comment");
+ }
+ else if (c == '/' && (CPP_OPTION (pfile, cplusplus_comments)
+ || cpp_in_system_header (pfile)))
+ {
+ /* Warn about comments only if pedantically GNUC89, and not
+ in system headers. */
+ if (CPP_OPTION (pfile, lang) == CLK_GNUC89 && CPP_PEDANTIC (pfile)
+ && ! buffer->warned_cplusplus_comments)
+ {
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "C++ style comments are not allowed in ISO C90");
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "(this will be reported only once per input file)");
+ buffer->warned_cplusplus_comments = 1;
+ }
+
+ if (skip_line_comment (pfile) && CPP_OPTION (pfile, warn_comments))
+ cpp_warning (pfile, CPP_W_COMMENTS, "multi-line comment");
+ }
+ else if (c == '=')
+ {
+ buffer->cur++;
+ result->type = CPP_DIV_EQ;
+ break;
+ }
+ else
+ {
+ result->type = CPP_DIV;
+ break;
+ }
+
+ if (!pfile->state.save_comments)
+ {
+ result->flags |= PREV_WHITE;
+ goto update_tokens_line;
+ }
+
+ /* Save the comment as a token in its own right. */
+ save_comment (pfile, result, comment_start, c);
+ break;
+
+ case '<':
+ if (pfile->state.angled_headers)
+ {
+ lex_string (pfile, result, buffer->cur - 1);
+ if (result->type != CPP_LESS)
+ break;
+ }
+
+ result->type = CPP_LESS;
+ if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_LESS_EQ;
+ else if (*buffer->cur == '<')
+ {
+ buffer->cur++;
+ IF_NEXT_IS ('=', CPP_LSHIFT_EQ, CPP_LSHIFT);
+ }
+ else if (CPP_OPTION (pfile, digraphs))
+ {
+ if (*buffer->cur == ':')
+ {
+ /* C++11 [2.5/3 lex.pptoken], "Otherwise, if the next
+ three characters are <:: and the subsequent character
+ is neither : nor >, the < is treated as a preprocessor
+ token by itself". */
+ if (CPP_OPTION (pfile, cplusplus)
+ && CPP_OPTION (pfile, lang) != CLK_CXX98
+ && CPP_OPTION (pfile, lang) != CLK_GNUCXX
+ && buffer->cur[1] == ':'
+ && buffer->cur[2] != ':' && buffer->cur[2] != '>')
+ break;
+
+ buffer->cur++;
+ result->flags |= DIGRAPH;
+ result->type = CPP_OPEN_SQUARE;
+ }
+ else if (*buffer->cur == '%')
+ {
+ buffer->cur++;
+ result->flags |= DIGRAPH;
+ result->type = CPP_OPEN_BRACE;
+ }
+ }
+ break;
+
+ case '>':
+ result->type = CPP_GREATER;
+ if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_GREATER_EQ;
+ else if (*buffer->cur == '>')
+ {
+ buffer->cur++;
+ IF_NEXT_IS ('=', CPP_RSHIFT_EQ, CPP_RSHIFT);
+ }
+ break;
+
+ case '%':
+ result->type = CPP_MOD;
+ if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_MOD_EQ;
+ else if (CPP_OPTION (pfile, digraphs))
+ {
+ if (*buffer->cur == ':')
+ {
+ buffer->cur++;
+ result->flags |= DIGRAPH;
+ result->type = CPP_HASH;
+ if (*buffer->cur == '%' && buffer->cur[1] == ':')
+ buffer->cur += 2, result->type = CPP_PASTE, result->val.token_no = 0;
+ }
+ else if (*buffer->cur == '>')
+ {
+ buffer->cur++;
+ result->flags |= DIGRAPH;
+ result->type = CPP_CLOSE_BRACE;
+ }
+ }
+ break;
+
+ case '.':
+ result->type = CPP_DOT;
+ if (ISDIGIT (*buffer->cur))
+ {
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+ result->type = CPP_NUMBER;
+ lex_number (pfile, &result->val.str, &nst);
+ warn_about_normalization (pfile, result, &nst);
+ }
+ else if (*buffer->cur == '.' && buffer->cur[1] == '.')
+ buffer->cur += 2, result->type = CPP_ELLIPSIS;
+ else if (*buffer->cur == '*' && CPP_OPTION (pfile, cplusplus))
+ buffer->cur++, result->type = CPP_DOT_STAR;
+ break;
+
+ case '+':
+ result->type = CPP_PLUS;
+ if (*buffer->cur == '+')
+ buffer->cur++, result->type = CPP_PLUS_PLUS;
+ else if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_PLUS_EQ;
+ break;
+
+ case '-':
+ result->type = CPP_MINUS;
+ if (*buffer->cur == '>')
+ {
+ buffer->cur++;
+ result->type = CPP_DEREF;
+ if (*buffer->cur == '*' && CPP_OPTION (pfile, cplusplus))
+ buffer->cur++, result->type = CPP_DEREF_STAR;
+ }
+ else if (*buffer->cur == '-')
+ buffer->cur++, result->type = CPP_MINUS_MINUS;
+ else if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_MINUS_EQ;
+ break;
+
+ case '&':
+ result->type = CPP_AND;
+ if (*buffer->cur == '&')
+ buffer->cur++, result->type = CPP_AND_AND;
+ else if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_AND_EQ;
+ break;
+
+ case '|':
+ result->type = CPP_OR;
+ if (*buffer->cur == '|')
+ buffer->cur++, result->type = CPP_OR_OR;
+ else if (*buffer->cur == '=')
+ buffer->cur++, result->type = CPP_OR_EQ;
+ break;
+
+ case ':':
+ result->type = CPP_COLON;
+ if (*buffer->cur == ':' && CPP_OPTION (pfile, cplusplus))
+ buffer->cur++, result->type = CPP_SCOPE;
+ else if (*buffer->cur == '>' && CPP_OPTION (pfile, digraphs))
+ {
+ buffer->cur++;
+ result->flags |= DIGRAPH;
+ result->type = CPP_CLOSE_SQUARE;
+ }
+ break;
+
+ case '*': IF_NEXT_IS ('=', CPP_MULT_EQ, CPP_MULT); break;
+ case '=': IF_NEXT_IS ('=', CPP_EQ_EQ, CPP_EQ); break;
+ case '!': IF_NEXT_IS ('=', CPP_NOT_EQ, CPP_NOT); break;
+ case '^': IF_NEXT_IS ('=', CPP_XOR_EQ, CPP_XOR); break;
+ case '#': IF_NEXT_IS ('#', CPP_PASTE, CPP_HASH); result->val.token_no = 0; break;
+
+ case '?': result->type = CPP_QUERY; break;
+ case '~': result->type = CPP_COMPL; break;
+ case ',': result->type = CPP_COMMA; break;
+ case '(': result->type = CPP_OPEN_PAREN; break;
+ case ')': result->type = CPP_CLOSE_PAREN; break;
+ case '[': result->type = CPP_OPEN_SQUARE; break;
+ case ']': result->type = CPP_CLOSE_SQUARE; break;
+ case '{': result->type = CPP_OPEN_BRACE; break;
+ case '}': result->type = CPP_CLOSE_BRACE; break;
+ case ';': result->type = CPP_SEMICOLON; break;
+
+ /* @ is a punctuator in Objective-C. */
+ case '@': result->type = CPP_ATSIGN; break;
+
+ case '$':
+ case '\\':
+ {
+ const uchar *base = --buffer->cur;
+ struct normalize_state nst = INITIAL_NORMALIZE_STATE;
+
+ if (forms_identifier_p (pfile, true, &nst))
+ {
+ result->type = CPP_NAME;
+ result->val.node.node = lex_identifier (pfile, base, true, &nst);
+ warn_about_normalization (pfile, result, &nst);
+ break;
+ }
+ buffer->cur++;
+ }
+
+ default:
+ create_literal (pfile, result, buffer->cur - 1, 1, CPP_OTHER);
+ break;
+ }
+
+ return result;
+}
+
+/* An upper bound on the number of bytes needed to spell TOKEN.
+ Does not include preceding whitespace. */
+unsigned int
+cpp_token_len (const cpp_token *token)
+{
+ unsigned int len;
+
+ switch (TOKEN_SPELL (token))
+ {
+ default: len = 6; break;
+ case SPELL_LITERAL: len = token->val.str.len; break;
+ case SPELL_IDENT: len = NODE_LEN (token->val.node.node) * 10; break;
+ }
+
+ return len;
+}
+
+/* Parse UTF-8 out of NAMEP and place a \U escape in BUFFER.
+ Return the number of bytes read out of NAME. (There are always
+ 10 bytes written to BUFFER.) */
+
+static size_t
+utf8_to_ucn (unsigned char *buffer, const unsigned char *name)
+{
+ int j;
+ int ucn_len = 0;
+ int ucn_len_c;
+ unsigned t;
+ unsigned long utf32;
+
+ /* Compute the length of the UTF-8 sequence. */
+ for (t = *name; t & 0x80; t <<= 1)
+ ucn_len++;
+
+ utf32 = *name & (0x7F >> ucn_len);
+ for (ucn_len_c = 1; ucn_len_c < ucn_len; ucn_len_c++)
+ {
+ utf32 = (utf32 << 6) | (*++name & 0x3F);
+
+ /* Ill-formed UTF-8. */
+ if ((*name & ~0x3F) != 0x80)
+ abort ();
+ }
+
+ *buffer++ = '\\';
+ *buffer++ = 'U';
+ for (j = 7; j >= 0; j--)
+ *buffer++ = "0123456789abcdef"[(utf32 >> (4 * j)) & 0xF];
+ return ucn_len;
+}
+
+/* Given a token TYPE corresponding to a digraph, return a pointer to
+ the spelling of the digraph. */
+static const unsigned char *
+cpp_digraph2name (enum cpp_ttype type)
+{
+ return digraph_spellings[(int) type - (int) CPP_FIRST_DIGRAPH];
+}
+
+/* Write the spelling of a token TOKEN to BUFFER. The buffer must
+ already contain the enough space to hold the token's spelling.
+ Returns a pointer to the character after the last character written.
+ FORSTRING is true if this is to be the spelling after translation
+ phase 1 (this is different for UCNs).
+ FIXME: Would be nice if we didn't need the PFILE argument. */
+unsigned char *
+cpp_spell_token (cpp_reader *pfile, const cpp_token *token,
+ unsigned char *buffer, bool forstring)
+{
+ switch (TOKEN_SPELL (token))
+ {
+ case SPELL_OPERATOR:
+ {
+ const unsigned char *spelling;
+ unsigned char c;
+
+ if (token->flags & DIGRAPH)
+ spelling = cpp_digraph2name (token->type);
+ else if (token->flags & NAMED_OP)
+ goto spell_ident;
+ else
+ spelling = TOKEN_NAME (token);
+
+ while ((c = *spelling++) != '\0')
+ *buffer++ = c;
+ }
+ break;
+
+ spell_ident:
+ case SPELL_IDENT:
+ if (forstring)
+ {
+ memcpy (buffer, NODE_NAME (token->val.node.node),
+ NODE_LEN (token->val.node.node));
+ buffer += NODE_LEN (token->val.node.node);
+ }
+ else
+ {
+ size_t i;
+ const unsigned char * name = NODE_NAME (token->val.node.node);
+
+ for (i = 0; i < NODE_LEN (token->val.node.node); i++)
+ if (name[i] & ~0x7F)
+ {
+ i += utf8_to_ucn (buffer, name + i) - 1;
+ buffer += 10;
+ }
+ else
+ *buffer++ = NODE_NAME (token->val.node.node)[i];
+ }
+ break;
+
+ case SPELL_LITERAL:
+ memcpy (buffer, token->val.str.text, token->val.str.len);
+ buffer += token->val.str.len;
+ break;
+
+ case SPELL_NONE:
+ cpp_error (pfile, CPP_DL_ICE,
+ "unspellable token %s", TOKEN_NAME (token));
+ break;
+ }
+
+ return buffer;
+}
+
+/* Returns TOKEN spelt as a null-terminated string. The string is
+ freed when the reader is destroyed. Useful for diagnostics. */
+unsigned char *
+cpp_token_as_text (cpp_reader *pfile, const cpp_token *token)
+{
+ unsigned int len = cpp_token_len (token) + 1;
+ unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end;
+
+ end = cpp_spell_token (pfile, token, start, false);
+ end[0] = '\0';
+
+ return start;
+}
+
+/* Returns a pointer to a string which spells the token defined by
+ TYPE and FLAGS. Used by C front ends, which really should move to
+ using cpp_token_as_text. */
+const char *
+cpp_type2name (enum cpp_ttype type, unsigned char flags)
+{
+ if (flags & DIGRAPH)
+ return (const char *) cpp_digraph2name (type);
+ else if (flags & NAMED_OP)
+ return cpp_named_operator2name (type);
+
+ return (const char *) token_spellings[type].name;
+}
+
+/* Writes the spelling of token to FP, without any preceding space.
+ Separated from cpp_spell_token for efficiency - to avoid stdio
+ double-buffering. */
+void
+cpp_output_token (const cpp_token *token, FILE *fp)
+{
+ switch (TOKEN_SPELL (token))
+ {
+ case SPELL_OPERATOR:
+ {
+ const unsigned char *spelling;
+ int c;
+
+ if (token->flags & DIGRAPH)
+ spelling = cpp_digraph2name (token->type);
+ else if (token->flags & NAMED_OP)
+ goto spell_ident;
+ else
+ spelling = TOKEN_NAME (token);
+
+ c = *spelling;
+ do
+ putc (c, fp);
+ while ((c = *++spelling) != '\0');
+ }
+ break;
+
+ spell_ident:
+ case SPELL_IDENT:
+ {
+ size_t i;
+ const unsigned char * name = NODE_NAME (token->val.node.node);
+
+ for (i = 0; i < NODE_LEN (token->val.node.node); i++)
+ if (name[i] & ~0x7F)
+ {
+ unsigned char buffer[10];
+ i += utf8_to_ucn (buffer, name + i) - 1;
+ fwrite (buffer, 1, 10, fp);
+ }
+ else
+ fputc (NODE_NAME (token->val.node.node)[i], fp);
+ }
+ break;
+
+ case SPELL_LITERAL:
+ fwrite (token->val.str.text, 1, token->val.str.len, fp);
+ break;
+
+ case SPELL_NONE:
+ /* An error, most probably. */
+ break;
+ }
+}
+
+/* Compare two tokens. */
+int
+_cpp_equiv_tokens (const cpp_token *a, const cpp_token *b)
+{
+ if (a->type == b->type && a->flags == b->flags)
+ switch (TOKEN_SPELL (a))
+ {
+ default: /* Keep compiler happy. */
+ case SPELL_OPERATOR:
+ /* token_no is used to track where multiple consecutive ##
+ tokens were originally located. */
+ return (a->type != CPP_PASTE || a->val.token_no == b->val.token_no);
+ case SPELL_NONE:
+ return (a->type != CPP_MACRO_ARG
+ || a->val.macro_arg.arg_no == b->val.macro_arg.arg_no);
+ case SPELL_IDENT:
+ return a->val.node.node == b->val.node.node;
+ case SPELL_LITERAL:
+ return (a->val.str.len == b->val.str.len
+ && !memcmp (a->val.str.text, b->val.str.text,
+ a->val.str.len));
+ }
+
+ return 0;
+}
+
+/* Returns nonzero if a space should be inserted to avoid an
+ accidental token paste for output. For simplicity, it is
+ conservative, and occasionally advises a space where one is not
+ needed, e.g. "." and ".2". */
+int
+cpp_avoid_paste (cpp_reader *pfile, const cpp_token *token1,
+ const cpp_token *token2)
+{
+ enum cpp_ttype a = token1->type, b = token2->type;
+ cppchar_t c;
+
+ if (token1->flags & NAMED_OP)
+ a = CPP_NAME;
+ if (token2->flags & NAMED_OP)
+ b = CPP_NAME;
+
+ c = EOF;
+ if (token2->flags & DIGRAPH)
+ c = digraph_spellings[(int) b - (int) CPP_FIRST_DIGRAPH][0];
+ else if (token_spellings[b].category == SPELL_OPERATOR)
+ c = token_spellings[b].name[0];
+
+ /* Quickly get everything that can paste with an '='. */
+ if ((int) a <= (int) CPP_LAST_EQ && c == '=')
+ return 1;
+
+ switch (a)
+ {
+ case CPP_GREATER: return c == '>';
+ case CPP_LESS: return c == '<' || c == '%' || c == ':';
+ case CPP_PLUS: return c == '+';
+ case CPP_MINUS: return c == '-' || c == '>';
+ case CPP_DIV: return c == '/' || c == '*'; /* Comments. */
+ case CPP_MOD: return c == ':' || c == '>';
+ case CPP_AND: return c == '&';
+ case CPP_OR: return c == '|';
+ case CPP_COLON: return c == ':' || c == '>';
+ case CPP_DEREF: return c == '*';
+ case CPP_DOT: return c == '.' || c == '%' || b == CPP_NUMBER;
+ case CPP_HASH: return c == '#' || c == '%'; /* Digraph form. */
+ case CPP_NAME: return ((b == CPP_NUMBER
+ && name_p (pfile, &token2->val.str))
+ || b == CPP_NAME
+ || b == CPP_CHAR || b == CPP_STRING); /* L */
+ case CPP_NUMBER: return (b == CPP_NUMBER || b == CPP_NAME
+ || c == '.' || c == '+' || c == '-');
+ /* UCNs */
+ case CPP_OTHER: return ((token1->val.str.text[0] == '\\'
+ && b == CPP_NAME)
+ || (CPP_OPTION (pfile, objc)
+ && token1->val.str.text[0] == '@'
+ && (b == CPP_NAME || b == CPP_STRING)));
+ case CPP_STRING:
+ case CPP_WSTRING:
+ case CPP_UTF8STRING:
+ case CPP_STRING16:
+ case CPP_STRING32: return (CPP_OPTION (pfile, user_literals)
+ && (b == CPP_NAME
+ || (TOKEN_SPELL (token2) == SPELL_LITERAL
+ && ISIDST (token2->val.str.text[0]))));
+
+ default: break;
+ }
+
+ return 0;
+}
+
+/* Output all the remaining tokens on the current line, and a newline
+ character, to FP. Leading whitespace is removed. If there are
+ macros, special token padding is not performed. */
+void
+cpp_output_line (cpp_reader *pfile, FILE *fp)
+{
+ const cpp_token *token;
+
+ token = cpp_get_token (pfile);
+ while (token->type != CPP_EOF)
+ {
+ cpp_output_token (token, fp);
+ token = cpp_get_token (pfile);
+ if (token->flags & PREV_WHITE)
+ putc (' ', fp);
+ }
+
+ putc ('\n', fp);
+}
+
+/* Return a string representation of all the remaining tokens on the
+ current line. The result is allocated using xmalloc and must be
+ freed by the caller. */
+unsigned char *
+cpp_output_line_to_string (cpp_reader *pfile, const unsigned char *dir_name)
+{
+ const cpp_token *token;
+ unsigned int out = dir_name ? ustrlen (dir_name) : 0;
+ unsigned int alloced = 120 + out;
+ unsigned char *result = (unsigned char *) xmalloc (alloced);
+
+ /* If DIR_NAME is empty, there are no initial contents. */
+ if (dir_name)
+ {
+ sprintf ((char *) result, "#%s ", dir_name);
+ out += 2;
+ }
+
+ token = cpp_get_token (pfile);
+ while (token->type != CPP_EOF)
+ {
+ unsigned char *last;
+ /* Include room for a possible space and the terminating nul. */
+ unsigned int len = cpp_token_len (token) + 2;
+
+ if (out + len > alloced)
+ {
+ alloced *= 2;
+ if (out + len > alloced)
+ alloced = out + len;
+ result = (unsigned char *) xrealloc (result, alloced);
+ }
+
+ last = cpp_spell_token (pfile, token, &result[out], 0);
+ out = last - result;
+
+ token = cpp_get_token (pfile);
+ if (token->flags & PREV_WHITE)
+ result[out++] = ' ';
+ }
+
+ result[out] = '\0';
+ return result;
+}
+
+/* Memory buffers. Changing these three constants can have a dramatic
+ effect on performance. The values here are reasonable defaults,
+ but might be tuned. If you adjust them, be sure to test across a
+ range of uses of cpplib, including heavy nested function-like macro
+ expansion. Also check the change in peak memory usage (NJAMD is a
+ good tool for this). */
+#define MIN_BUFF_SIZE 8000
+#define BUFF_SIZE_UPPER_BOUND(MIN_SIZE) (MIN_BUFF_SIZE + (MIN_SIZE) * 3 / 2)
+#define EXTENDED_BUFF_SIZE(BUFF, MIN_EXTRA) \
+ (MIN_EXTRA + ((BUFF)->limit - (BUFF)->cur) * 2)
+
+#if MIN_BUFF_SIZE > BUFF_SIZE_UPPER_BOUND (0)
+ #error BUFF_SIZE_UPPER_BOUND must be at least as large as MIN_BUFF_SIZE!
+#endif
+
+/* Create a new allocation buffer. Place the control block at the end
+ of the buffer, so that buffer overflows will cause immediate chaos. */
+static _cpp_buff *
+new_buff (size_t len)
+{
+ _cpp_buff *result;
+ unsigned char *base;
+
+ if (len < MIN_BUFF_SIZE)
+ len = MIN_BUFF_SIZE;
+ len = CPP_ALIGN (len);
+
+#ifdef ENABLE_VALGRIND_CHECKING
+ /* Valgrind warns about uses of interior pointers, so put _cpp_buff
+ struct first. */
+ size_t slen = CPP_ALIGN2 (sizeof (_cpp_buff), 2 * DEFAULT_ALIGNMENT);
+ base = XNEWVEC (unsigned char, len + slen);
+ result = (_cpp_buff *) base;
+ base += slen;
+#else
+ base = XNEWVEC (unsigned char, len + sizeof (_cpp_buff));
+ result = (_cpp_buff *) (base + len);
+#endif
+ result->base = base;
+ result->cur = base;
+ result->limit = base + len;
+ result->next = NULL;
+ return result;
+}
+
+/* Place a chain of unwanted allocation buffers on the free list. */
+void
+_cpp_release_buff (cpp_reader *pfile, _cpp_buff *buff)
+{
+ _cpp_buff *end = buff;
+
+ while (end->next)
+ end = end->next;
+ end->next = pfile->free_buffs;
+ pfile->free_buffs = buff;
+}
+
+/* Return a free buffer of size at least MIN_SIZE. */
+_cpp_buff *
+_cpp_get_buff (cpp_reader *pfile, size_t min_size)
+{
+ _cpp_buff *result, **p;
+
+ for (p = &pfile->free_buffs;; p = &(*p)->next)
+ {
+ size_t size;
+
+ if (*p == NULL)
+ return new_buff (min_size);
+ result = *p;
+ size = result->limit - result->base;
+ /* Return a buffer that's big enough, but don't waste one that's
+ way too big. */
+ if (size >= min_size && size <= BUFF_SIZE_UPPER_BOUND (min_size))
+ break;
+ }
+
+ *p = result->next;
+ result->next = NULL;
+ result->cur = result->base;
+ return result;
+}
+
+/* Creates a new buffer with enough space to hold the uncommitted
+ remaining bytes of BUFF, and at least MIN_EXTRA more bytes. Copies
+ the excess bytes to the new buffer. Chains the new buffer after
+ BUFF, and returns the new buffer. */
+_cpp_buff *
+_cpp_append_extend_buff (cpp_reader *pfile, _cpp_buff *buff, size_t min_extra)
+{
+ size_t size = EXTENDED_BUFF_SIZE (buff, min_extra);
+ _cpp_buff *new_buff = _cpp_get_buff (pfile, size);
+
+ buff->next = new_buff;
+ memcpy (new_buff->base, buff->cur, BUFF_ROOM (buff));
+ return new_buff;
+}
+
+/* Creates a new buffer with enough space to hold the uncommitted
+ remaining bytes of the buffer pointed to by BUFF, and at least
+ MIN_EXTRA more bytes. Copies the excess bytes to the new buffer.
+ Chains the new buffer before the buffer pointed to by BUFF, and
+ updates the pointer to point to the new buffer. */
+void
+_cpp_extend_buff (cpp_reader *pfile, _cpp_buff **pbuff, size_t min_extra)
+{
+ _cpp_buff *new_buff, *old_buff = *pbuff;
+ size_t size = EXTENDED_BUFF_SIZE (old_buff, min_extra);
+
+ new_buff = _cpp_get_buff (pfile, size);
+ memcpy (new_buff->base, old_buff->cur, BUFF_ROOM (old_buff));
+ new_buff->next = old_buff;
+ *pbuff = new_buff;
+}
+
+/* Free a chain of buffers starting at BUFF. */
+void
+_cpp_free_buff (_cpp_buff *buff)
+{
+ _cpp_buff *next;
+
+ for (; buff; buff = next)
+ {
+ next = buff->next;
+#ifdef ENABLE_VALGRIND_CHECKING
+ free (buff);
+#else
+ free (buff->base);
+#endif
+ }
+}
+
+/* Allocate permanent, unaligned storage of length LEN. */
+unsigned char *
+_cpp_unaligned_alloc (cpp_reader *pfile, size_t len)
+{
+ _cpp_buff *buff = pfile->u_buff;
+ unsigned char *result = buff->cur;
+
+ if (len > (size_t) (buff->limit - result))
+ {
+ buff = _cpp_get_buff (pfile, len);
+ buff->next = pfile->u_buff;
+ pfile->u_buff = buff;
+ result = buff->cur;
+ }
+
+ buff->cur = result + len;
+ return result;
+}
+
+/* Allocate permanent, unaligned storage of length LEN from a_buff.
+ That buffer is used for growing allocations when saving macro
+ replacement lists in a #define, and when parsing an answer to an
+ assertion in #assert, #unassert or #if (and therefore possibly
+ whilst expanding macros). It therefore must not be used by any
+ code that they might call: specifically the lexer and the guts of
+ the macro expander.
+
+ All existing other uses clearly fit this restriction: storing
+ registered pragmas during initialization. */
+unsigned char *
+_cpp_aligned_alloc (cpp_reader *pfile, size_t len)
+{
+ _cpp_buff *buff = pfile->a_buff;
+ unsigned char *result = buff->cur;
+
+ if (len > (size_t) (buff->limit - result))
+ {
+ buff = _cpp_get_buff (pfile, len);
+ buff->next = pfile->a_buff;
+ pfile->a_buff = buff;
+ result = buff->cur;
+ }
+
+ buff->cur = result + len;
+ return result;
+}
+
+/* Say which field of TOK is in use. */
+
+enum cpp_token_fld_kind
+cpp_token_val_index (const cpp_token *tok)
+{
+ switch (TOKEN_SPELL (tok))
+ {
+ case SPELL_IDENT:
+ return CPP_TOKEN_FLD_NODE;
+ case SPELL_LITERAL:
+ return CPP_TOKEN_FLD_STR;
+ case SPELL_OPERATOR:
+ if (tok->type == CPP_PASTE)
+ return CPP_TOKEN_FLD_TOKEN_NO;
+ else
+ return CPP_TOKEN_FLD_NONE;
+ case SPELL_NONE:
+ if (tok->type == CPP_MACRO_ARG)
+ return CPP_TOKEN_FLD_ARG_NO;
+ else if (tok->type == CPP_PADDING)
+ return CPP_TOKEN_FLD_SOURCE;
+ else if (tok->type == CPP_PRAGMA)
+ return CPP_TOKEN_FLD_PRAGMA;
+ /* else fall through */
+ default:
+ return CPP_TOKEN_FLD_NONE;
+ }
+}
+
+/* All tokens lexed in R after calling this function will be forced to have
+ their source_location the same as the location referenced by P, until
+ cpp_stop_forcing_token_locations is called for R. */
+
+void
+cpp_force_token_locations (cpp_reader *r, source_location *p)
+{
+ r->forced_token_location_p = p;
+}
+
+/* Go back to assigning locations naturally for lexed tokens. */
+
+void
+cpp_stop_forcing_token_locations (cpp_reader *r)
+{
+ r->forced_token_location_p = NULL;
+}
diff --git a/gcc-4.9/libcpp/line-map.c b/gcc-4.9/libcpp/line-map.c
new file mode 100644
index 000000000..f9a7658cb
--- /dev/null
+++ b/gcc-4.9/libcpp/line-map.c
@@ -0,0 +1,1646 @@
+/* Map logical line numbers to (source file, line number) pairs.
+ Copyright (C) 2001-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "line-map.h"
+#include "cpplib.h"
+#include "internal.h"
+#include "hashtab.h"
+
+static void trace_include (const struct line_maps *, const struct line_map *);
+static const struct line_map * linemap_ordinary_map_lookup (struct line_maps *,
+ source_location);
+static const struct line_map* linemap_macro_map_lookup (struct line_maps *,
+ source_location);
+static source_location linemap_macro_map_loc_to_def_point
+(const struct line_map*, source_location);
+static source_location linemap_macro_map_loc_unwind_toward_spelling
+(const struct line_map*, source_location);
+static source_location linemap_macro_map_loc_to_exp_point
+(const struct line_map*, source_location);
+static source_location linemap_macro_loc_to_spelling_point
+(struct line_maps *, source_location, const struct line_map **);
+static source_location linemap_macro_loc_to_def_point (struct line_maps *,
+ source_location,
+ const struct line_map **);
+static source_location linemap_macro_loc_to_exp_point (struct line_maps *,
+ source_location,
+ const struct line_map **);
+
+/* Counters defined in macro.c. */
+extern unsigned num_expanded_macros_counter;
+extern unsigned num_macro_tokens_counter;
+
+/* Hash function for location_adhoc_data hashtable. */
+
+static hashval_t
+location_adhoc_data_hash (const void *l)
+{
+ const struct location_adhoc_data *lb =
+ (const struct location_adhoc_data *) l;
+ return (hashval_t) lb->locus + (size_t) lb->data;
+}
+
+/* Compare function for location_adhoc_data hashtable. */
+
+static int
+location_adhoc_data_eq (const void *l1, const void *l2)
+{
+ const struct location_adhoc_data *lb1 =
+ (const struct location_adhoc_data *) l1;
+ const struct location_adhoc_data *lb2 =
+ (const struct location_adhoc_data *) l2;
+ return lb1->locus == lb2->locus && lb1->data == lb2->data;
+}
+
+/* Update the hashtable when location_adhoc_data is reallocated. */
+
+static int
+location_adhoc_data_update (void **slot, void *data)
+{
+ *((char **) slot) += *((long long *) data);
+ return 1;
+}
+
+/* Rebuild the hash table from the location adhoc data. */
+
+void
+rebuild_location_adhoc_htab (struct line_maps *set)
+{
+ unsigned i;
+ set->location_adhoc_data_map.htab =
+ htab_create (100, location_adhoc_data_hash, location_adhoc_data_eq, NULL);
+ for (i = 0; i < set->location_adhoc_data_map.curr_loc; i++)
+ htab_find_slot (set->location_adhoc_data_map.htab,
+ set->location_adhoc_data_map.data + i, INSERT);
+}
+
+/* Combine LOCUS and DATA to a combined adhoc loc. */
+
+source_location
+get_combined_adhoc_loc (struct line_maps *set,
+ source_location locus, void *data)
+{
+ struct location_adhoc_data lb;
+ struct location_adhoc_data **slot;
+
+ linemap_assert (data);
+
+ if (IS_ADHOC_LOC (locus))
+ locus
+ = set->location_adhoc_data_map.data[locus & MAX_SOURCE_LOCATION].locus;
+ if (locus == 0 && data == NULL)
+ return 0;
+ lb.locus = locus;
+ lb.data = data;
+ slot = (struct location_adhoc_data **)
+ htab_find_slot (set->location_adhoc_data_map.htab, &lb, INSERT);
+ if (*slot == NULL)
+ {
+ if (set->location_adhoc_data_map.curr_loc >=
+ set->location_adhoc_data_map.allocated)
+ {
+ char *orig_data = (char *) set->location_adhoc_data_map.data;
+ long long offset;
+ /* Cast away extern "C" from the type of xrealloc. */
+ line_map_realloc reallocator = (set->reallocator
+ ? set->reallocator
+ : (line_map_realloc) xrealloc);
+
+ if (set->location_adhoc_data_map.allocated == 0)
+ set->location_adhoc_data_map.allocated = 128;
+ else
+ set->location_adhoc_data_map.allocated *= 2;
+ set->location_adhoc_data_map.data = (struct location_adhoc_data *)
+ reallocator (set->location_adhoc_data_map.data,
+ set->location_adhoc_data_map.allocated
+ * sizeof (struct location_adhoc_data));
+ offset = (char *) (set->location_adhoc_data_map.data) - orig_data;
+ if (set->location_adhoc_data_map.allocated > 128)
+ htab_traverse (set->location_adhoc_data_map.htab,
+ location_adhoc_data_update, &offset);
+ }
+ *slot = set->location_adhoc_data_map.data
+ + set->location_adhoc_data_map.curr_loc;
+ set->location_adhoc_data_map.data[set->location_adhoc_data_map.curr_loc++]
+ = lb;
+ }
+ return ((*slot) - set->location_adhoc_data_map.data) | 0x80000000;
+}
+
+/* Return the data for the adhoc loc. */
+
+void *
+get_data_from_adhoc_loc (struct line_maps *set, source_location loc)
+{
+ linemap_assert (IS_ADHOC_LOC (loc));
+ return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
+}
+
+/* Return the location for the adhoc loc. */
+
+source_location
+get_location_from_adhoc_loc (struct line_maps *set, source_location loc)
+{
+ linemap_assert (IS_ADHOC_LOC (loc));
+ return set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+}
+
+/* Finalize the location_adhoc_data structure. */
+void
+location_adhoc_data_fini (struct line_maps *set)
+{
+ htab_delete (set->location_adhoc_data_map.htab);
+}
+
+/* Initialize a line map set. */
+
+void
+linemap_init (struct line_maps *set)
+{
+ memset (set, 0, sizeof (struct line_maps));
+ set->highest_location = RESERVED_LOCATION_COUNT - 1;
+ set->highest_line = RESERVED_LOCATION_COUNT - 1;
+ set->location_adhoc_data_map.htab =
+ htab_create (100, location_adhoc_data_hash, location_adhoc_data_eq, NULL);
+}
+
+/* Check for and warn about line_maps entered but not exited. */
+
+void
+linemap_check_files_exited (struct line_maps *set)
+{
+ struct line_map *map;
+ /* Depending upon whether we are handling preprocessed input or
+ not, this can be a user error or an ICE. */
+ for (map = LINEMAPS_LAST_ORDINARY_MAP (set);
+ ! MAIN_FILE_P (map);
+ map = INCLUDED_FROM (set, map))
+ fprintf (stderr, "line-map.c: file \"%s\" entered but not left\n",
+ ORDINARY_MAP_FILE_NAME (map));
+}
+
+/* Create a new line map in the line map set SET, and return it.
+ REASON is the reason of creating the map. It determines the type
+ of map created (ordinary or macro map). Note that ordinary maps and
+ macro maps are allocated in different memory location. */
+
+static struct line_map *
+new_linemap (struct line_maps *set,
+ enum lc_reason reason)
+{
+ /* Depending on this variable, a macro map would be allocated in a
+ different memory location than an ordinary map. */
+ bool macro_map_p = (reason == LC_ENTER_MACRO);
+ struct line_map *result;
+
+ if (LINEMAPS_USED (set, macro_map_p) == LINEMAPS_ALLOCATED (set, macro_map_p))
+ {
+ /* We ran out of allocated line maps. Let's allocate more. */
+ unsigned alloc_size;
+
+ /* Cast away extern "C" from the type of xrealloc. */
+ line_map_realloc reallocator = (set->reallocator
+ ? set->reallocator
+ : (line_map_realloc) xrealloc);
+ line_map_round_alloc_size_func round_alloc_size =
+ set->round_alloc_size;
+
+ /* We are going to execute some dance to try to reduce the
+ overhead of the memory allocator, in case we are using the
+ ggc-page.c one.
+
+ The actual size of memory we are going to get back from the
+ allocator is the smallest power of 2 that is greater than the
+ size we requested. So let's consider that size then. */
+
+ alloc_size =
+ (2 * LINEMAPS_ALLOCATED (set, macro_map_p) + 256)
+ * sizeof (struct line_map);
+
+ /* Get the actual size of memory that is going to be allocated
+ by the allocator. */
+ alloc_size = round_alloc_size (alloc_size);
+
+ /* Now alloc_size contains the exact memory size we would get if
+ we have asked for the initial alloc_size amount of memory.
+ Let's get back to the number of macro map that amounts
+ to. */
+ LINEMAPS_ALLOCATED (set, macro_map_p) =
+ alloc_size / (sizeof (struct line_map));
+
+ /* And now let's really do the re-allocation. */
+ LINEMAPS_MAPS (set, macro_map_p) =
+ (struct line_map *) (*reallocator)
+ (LINEMAPS_MAPS (set, macro_map_p),
+ (LINEMAPS_ALLOCATED (set, macro_map_p)
+ * sizeof (struct line_map)));
+
+ result =
+ &LINEMAPS_MAPS (set, macro_map_p)[LINEMAPS_USED (set, macro_map_p)];
+ memset (result, 0,
+ ((LINEMAPS_ALLOCATED (set, macro_map_p)
+ - LINEMAPS_USED (set, macro_map_p))
+ * sizeof (struct line_map)));
+ }
+ else
+ result =
+ &LINEMAPS_MAPS (set, macro_map_p)[LINEMAPS_USED (set, macro_map_p)];
+
+ LINEMAPS_USED (set, macro_map_p)++;
+
+ result->reason = reason;
+ return result;
+}
+
+/* Add a mapping of logical source line to physical source file and
+ line number.
+
+ The text pointed to by TO_FILE must have a lifetime
+ at least as long as the final call to lookup_line (). An empty
+ TO_FILE means standard input. If reason is LC_LEAVE, and
+ TO_FILE is NULL, then TO_FILE, TO_LINE and SYSP are given their
+ natural values considering the file we are returning to.
+
+ FROM_LINE should be monotonic increasing across calls to this
+ function. A call to this function can relocate the previous set of
+ maps, so any stored line_map pointers should not be used. */
+
+const struct line_map *
+linemap_add (struct line_maps *set, enum lc_reason reason,
+ unsigned int sysp, const char *to_file, linenum_type to_line)
+{
+ struct line_map *map;
+ source_location start_location = set->highest_location + 1;
+
+ linemap_assert (!(LINEMAPS_ORDINARY_USED (set)
+ && (start_location
+ < MAP_START_LOCATION (LINEMAPS_LAST_ORDINARY_MAP (set)))));
+
+ /* When we enter the file for the first time reason cannot be
+ LC_RENAME. */
+ linemap_assert (!(set->depth == 0 && reason == LC_RENAME));
+
+ /* If we are leaving the main file, return a NULL map. */
+ if (reason == LC_LEAVE
+ && MAIN_FILE_P (LINEMAPS_LAST_ORDINARY_MAP (set))
+ && to_file == NULL)
+ {
+ set->depth--;
+ return NULL;
+ }
+
+ map = new_linemap (set, reason);
+
+ if (to_file && *to_file == '\0' && reason != LC_RENAME_VERBATIM)
+ to_file = "<stdin>";
+
+ if (reason == LC_RENAME_VERBATIM)
+ reason = LC_RENAME;
+
+ if (reason == LC_LEAVE)
+ {
+ /* When we are just leaving an "included" file, and jump to the next
+ location inside the "includer" right after the #include
+ "included", this variable points the map in use right before the
+ #include "included", inside the same "includer" file. */
+ struct line_map *from;
+ bool error;
+
+ if (MAIN_FILE_P (map - 1))
+ {
+ /* So this _should_ means we are leaving the main file --
+ effectively ending the compilation unit. But to_file not
+ being NULL means the caller thinks we are leaving to
+ another file. This is an erroneous behaviour but we'll
+ try to recover from it. Let's pretend we are not leaving
+ the main file. */
+ error = true;
+ reason = LC_RENAME;
+ from = map - 1;
+ }
+ else
+ {
+ /* (MAP - 1) points to the map we are leaving. The
+ map from which (MAP - 1) got included should be the map
+ that comes right before MAP in the same file. */
+ from = INCLUDED_FROM (set, map - 1);
+ error = to_file && filename_cmp (ORDINARY_MAP_FILE_NAME (from),
+ to_file);
+ }
+
+ /* Depending upon whether we are handling preprocessed input or
+ not, this can be a user error or an ICE. */
+ if (error)
+ fprintf (stderr, "line-map.c: file \"%s\" left but not entered\n",
+ to_file);
+
+ /* A TO_FILE of NULL is special - we use the natural values. */
+ if (error || to_file == NULL)
+ {
+ to_file = ORDINARY_MAP_FILE_NAME (from);
+ to_line = SOURCE_LINE (from, from[1].start_location);
+ sysp = ORDINARY_MAP_IN_SYSTEM_HEADER_P (from);
+ }
+ }
+
+ linemap_assert (reason != LC_ENTER_MACRO);
+ ORDINARY_MAP_IN_SYSTEM_HEADER_P (map) = sysp;
+ MAP_START_LOCATION (map) = start_location;
+ ORDINARY_MAP_FILE_NAME (map) = to_file;
+ ORDINARY_MAP_STARTING_LINE_NUMBER (map) = to_line;
+ LINEMAPS_ORDINARY_CACHE (set) = LINEMAPS_ORDINARY_USED (set) - 1;
+ ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) = 0;
+ set->highest_location = start_location;
+ set->highest_line = start_location;
+ set->max_column_hint = 0;
+
+ if (reason == LC_ENTER)
+ {
+ ORDINARY_MAP_INCLUDER_FILE_INDEX (map) =
+ set->depth == 0 ? -1 : (int) (LINEMAPS_ORDINARY_USED (set) - 2);
+ set->depth++;
+ if (set->trace_includes)
+ trace_include (set, map);
+ }
+ else if (reason == LC_RENAME)
+ ORDINARY_MAP_INCLUDER_FILE_INDEX (map) =
+ ORDINARY_MAP_INCLUDER_FILE_INDEX (&map[-1]);
+ else if (reason == LC_LEAVE)
+ {
+ set->depth--;
+ ORDINARY_MAP_INCLUDER_FILE_INDEX (map) =
+ ORDINARY_MAP_INCLUDER_FILE_INDEX (INCLUDED_FROM (set, map - 1));
+ }
+
+ return map;
+}
+
+/* Returns TRUE if the line table set tracks token locations across
+ macro expansion, FALSE otherwise. */
+
+bool
+linemap_tracks_macro_expansion_locs_p (struct line_maps *set)
+{
+ return LINEMAPS_MACRO_MAPS (set) != NULL;
+}
+
+/* Create a macro map. A macro map encodes source locations of tokens
+ that are part of a macro replacement-list, at a macro expansion
+ point. See the extensive comments of struct line_map and struct
+ line_map_macro, in line-map.h.
+
+ This map shall be created when the macro is expanded. The map
+ encodes the source location of the expansion point of the macro as
+ well as the "original" source location of each token that is part
+ of the macro replacement-list. If a macro is defined but never
+ expanded, it has no macro map. SET is the set of maps the macro
+ map should be part of. MACRO_NODE is the macro which the new macro
+ map should encode source locations for. EXPANSION is the location
+ of the expansion point of MACRO. For function-like macros
+ invocations, it's best to make it point to the closing parenthesis
+ of the macro, rather than the the location of the first character
+ of the macro. NUM_TOKENS is the number of tokens that are part of
+ the replacement-list of MACRO.
+
+ Note that when we run out of the integer space available for source
+ locations, this function returns NULL. In that case, callers of
+ this function cannot encode {line,column} pairs into locations of
+ macro tokens anymore. */
+
+const struct line_map *
+linemap_enter_macro (struct line_maps *set, struct cpp_hashnode *macro_node,
+ source_location expansion, unsigned int num_tokens)
+{
+ struct line_map *map;
+ source_location start_location;
+ /* Cast away extern "C" from the type of xrealloc. */
+ line_map_realloc reallocator = (set->reallocator
+ ? set->reallocator
+ : (line_map_realloc) xrealloc);
+
+ start_location = LINEMAPS_MACRO_LOWEST_LOCATION (set) - num_tokens;
+
+ if (start_location <= set->highest_line
+ || start_location > LINEMAPS_MACRO_LOWEST_LOCATION (set))
+ /* We ran out of macro map space. */
+ return NULL;
+
+ map = new_linemap (set, LC_ENTER_MACRO);
+
+ MAP_START_LOCATION (map) = start_location;
+ MACRO_MAP_MACRO (map) = macro_node;
+ MACRO_MAP_NUM_MACRO_TOKENS (map) = num_tokens;
+ MACRO_MAP_LOCATIONS (map)
+ = (source_location*) reallocator (NULL,
+ 2 * num_tokens
+ * sizeof (source_location));
+ MACRO_MAP_EXPANSION_POINT_LOCATION (map) = expansion;
+ memset (MACRO_MAP_LOCATIONS (map), 0,
+ num_tokens * sizeof (source_location));
+
+ LINEMAPS_MACRO_CACHE (set) = LINEMAPS_MACRO_USED (set) - 1;
+
+ return map;
+}
+
+/* Create and return a virtual location for a token that is part of a
+ macro expansion-list at a macro expansion point. See the comment
+ inside struct line_map_macro to see what an expansion-list exactly
+ is.
+
+ A call to this function must come after a call to
+ linemap_enter_macro.
+
+ MAP is the map into which the source location is created. TOKEN_NO
+ is the index of the token in the macro replacement-list, starting
+ at number 0.
+
+ ORIG_LOC is the location of the token outside of this macro
+ expansion. If the token comes originally from the macro
+ definition, it is the locus in the macro definition; otherwise it
+ is a location in the context of the caller of this macro expansion
+ (which is a virtual location or a source location if the caller is
+ itself a macro expansion or not).
+
+ MACRO_DEFINITION_LOC is the location in the macro definition,
+ either of the token itself or of a macro parameter that it
+ replaces. */
+
+source_location
+linemap_add_macro_token (const struct line_map *map,
+ unsigned int token_no,
+ source_location orig_loc,
+ source_location orig_parm_replacement_loc)
+{
+ source_location result;
+
+ linemap_assert (linemap_macro_expansion_map_p (map));
+ linemap_assert (token_no < MACRO_MAP_NUM_MACRO_TOKENS (map));
+
+ MACRO_MAP_LOCATIONS (map)[2 * token_no] = orig_loc;
+ MACRO_MAP_LOCATIONS (map)[2 * token_no + 1] = orig_parm_replacement_loc;
+
+ result = MAP_START_LOCATION (map) + token_no;
+ return result;
+}
+
+/* Return a source_location for the start (i.e. column==0) of
+ (physical) line TO_LINE in the current source file (as in the
+ most recent linemap_add). MAX_COLUMN_HINT is the highest column
+ number we expect to use in this line (but it does not change
+ the highest_location). */
+
+source_location
+linemap_line_start (struct line_maps *set, linenum_type to_line,
+ unsigned int max_column_hint)
+{
+ struct line_map *map = LINEMAPS_LAST_ORDINARY_MAP (set);
+ source_location highest = set->highest_location;
+ source_location r;
+ linenum_type last_line =
+ SOURCE_LINE (map, set->highest_line);
+ int line_delta = to_line - last_line;
+ bool add_map = false;
+
+ if (line_delta < 0
+ || (line_delta > 10
+ && line_delta * ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) > 1000)
+ || (max_column_hint >= (1U << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map)))
+ || (max_column_hint <= 80
+ && ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) >= 10))
+ {
+ add_map = true;
+ }
+ else
+ max_column_hint = set->max_column_hint;
+ if (add_map)
+ {
+ int column_bits;
+ if (max_column_hint > 100000 || highest > 0x60000000)
+ {
+ /* If the column number is ridiculous or we've allocated a huge
+ number of source_locations, give up on column numbers. */
+ max_column_hint = 0;
+ if (highest >0x70000000)
+ return 0;
+ column_bits = 0;
+ }
+ else
+ {
+ column_bits = 7;
+ while (max_column_hint >= (1U << column_bits))
+ column_bits++;
+ max_column_hint = 1U << column_bits;
+ }
+ /* Allocate the new line_map. However, if the current map only has a
+ single line we can sometimes just increase its column_bits instead. */
+ if (line_delta < 0
+ || last_line != ORDINARY_MAP_STARTING_LINE_NUMBER (map)
+ || SOURCE_COLUMN (map, highest) >= (1U << column_bits))
+ map = (struct line_map *) linemap_add (set, LC_RENAME,
+ ORDINARY_MAP_IN_SYSTEM_HEADER_P
+ (map),
+ ORDINARY_MAP_FILE_NAME (map),
+ to_line);
+ ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) = column_bits;
+ r = (MAP_START_LOCATION (map)
+ + ((to_line - ORDINARY_MAP_STARTING_LINE_NUMBER (map))
+ << column_bits));
+ }
+ else
+ r = highest - SOURCE_COLUMN (map, highest)
+ + (line_delta << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map));
+
+ /* Locations of ordinary tokens are always lower than locations of
+ macro tokens. */
+ if (r >= LINEMAPS_MACRO_LOWEST_LOCATION (set))
+ return 0;
+
+ set->highest_line = r;
+ if (r > set->highest_location)
+ set->highest_location = r;
+ set->max_column_hint = max_column_hint;
+ return r;
+}
+
+/* Encode and return a source_location from a column number. The
+ source line considered is the last source line used to call
+ linemap_line_start, i.e, the last source line which a location was
+ encoded from. */
+
+source_location
+linemap_position_for_column (struct line_maps *set, unsigned int to_column)
+{
+ source_location r = set->highest_line;
+
+ linemap_assert
+ (!linemap_macro_expansion_map_p (LINEMAPS_LAST_ORDINARY_MAP (set)));
+
+ if (to_column >= set->max_column_hint)
+ {
+ if (r >= 0xC000000 || to_column > 100000)
+ {
+ /* Running low on source_locations - disable column numbers. */
+ return r;
+ }
+ else
+ {
+ struct line_map *map = LINEMAPS_LAST_ORDINARY_MAP (set);
+ r = linemap_line_start (set, SOURCE_LINE (map, r), to_column + 50);
+ }
+ }
+ r = r + to_column;
+ if (r >= set->highest_location)
+ set->highest_location = r;
+ return r;
+}
+
+/* Encode and return a source location from a given line and
+ column. */
+
+source_location
+linemap_position_for_line_and_column (struct line_map *map,
+ linenum_type line,
+ unsigned column)
+{
+ linemap_assert (ORDINARY_MAP_STARTING_LINE_NUMBER (map) <= line);
+
+ return (MAP_START_LOCATION (map)
+ + ((line - ORDINARY_MAP_STARTING_LINE_NUMBER (map))
+ << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map))
+ + (column & ((1 << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map)) - 1)));
+}
+
+/* Given a virtual source location yielded by a map (either an
+ ordinary or a macro map), returns that map. */
+
+const struct line_map*
+linemap_lookup (struct line_maps *set, source_location line)
+{
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
+ if (linemap_location_from_macro_expansion_p (set, line))
+ return linemap_macro_map_lookup (set, line);
+ return linemap_ordinary_map_lookup (set, line);
+}
+
+/* Given a source location yielded by an ordinary map, returns that
+ map. Since the set is built chronologically, the logical lines are
+ monotonic increasing, and so the list is sorted and we can use a
+ binary search. */
+
+static const struct line_map *
+linemap_ordinary_map_lookup (struct line_maps *set, source_location line)
+{
+ unsigned int md, mn, mx;
+ const struct line_map *cached, *result;
+
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
+
+ if (set == NULL || line < RESERVED_LOCATION_COUNT)
+ return NULL;
+
+ mn = LINEMAPS_ORDINARY_CACHE (set);
+ mx = LINEMAPS_ORDINARY_USED (set);
+
+ cached = LINEMAPS_ORDINARY_MAP_AT (set, mn);
+ /* We should get a segfault if no line_maps have been added yet. */
+ if (line >= MAP_START_LOCATION (cached))
+ {
+ if (mn + 1 == mx || line < MAP_START_LOCATION (&cached[1]))
+ return cached;
+ }
+ else
+ {
+ mx = mn;
+ mn = 0;
+ }
+
+ while (mx - mn > 1)
+ {
+ md = (mn + mx) / 2;
+ if (MAP_START_LOCATION (LINEMAPS_ORDINARY_MAP_AT (set, md)) > line)
+ mx = md;
+ else
+ mn = md;
+ }
+
+ LINEMAPS_ORDINARY_CACHE (set) = mn;
+ result = LINEMAPS_ORDINARY_MAP_AT (set, mn);
+ linemap_assert (line >= MAP_START_LOCATION (result));
+ return result;
+}
+
+/* Given a source location yielded by a macro map, returns that map.
+ Since the set is built chronologically, the logical lines are
+ monotonic decreasing, and so the list is sorted and we can use a
+ binary search. */
+
+static const struct line_map*
+linemap_macro_map_lookup (struct line_maps *set, source_location line)
+{
+ unsigned int md, mn, mx;
+ const struct line_map *cached, *result;
+
+ if (IS_ADHOC_LOC (line))
+ line = set->location_adhoc_data_map.data[line & MAX_SOURCE_LOCATION].locus;
+
+ linemap_assert (line >= LINEMAPS_MACRO_LOWEST_LOCATION (set));
+
+ if (set == NULL)
+ return NULL;
+
+ mn = LINEMAPS_MACRO_CACHE (set);
+ mx = LINEMAPS_MACRO_USED (set);
+ cached = LINEMAPS_MACRO_MAP_AT (set, mn);
+
+ if (line >= MAP_START_LOCATION (cached))
+ {
+ if (mn == 0 || line < MAP_START_LOCATION (&cached[-1]))
+ return cached;
+ mx = mn - 1;
+ mn = 0;
+ }
+
+ while (mn < mx)
+ {
+ md = (mx + mn) / 2;
+ if (MAP_START_LOCATION (LINEMAPS_MACRO_MAP_AT (set, md)) > line)
+ mn = md + 1;
+ else
+ mx = md;
+ }
+
+ LINEMAPS_MACRO_CACHE (set) = mx;
+ result = LINEMAPS_MACRO_MAP_AT (set, LINEMAPS_MACRO_CACHE (set));
+ linemap_assert (MAP_START_LOCATION (result) <= line);
+
+ return result;
+}
+
+/* Return TRUE if MAP encodes locations coming from a macro
+ replacement-list at macro expansion point. */
+
+bool
+linemap_macro_expansion_map_p (const struct line_map *map)
+{
+ if (!map)
+ return false;
+ return (map->reason == LC_ENTER_MACRO);
+}
+
+/* If LOCATION is the locus of a token in a replacement-list of a
+ macro expansion return the location of the macro expansion point.
+
+ Read the comments of struct line_map and struct line_map_macro in
+ line-map.h to understand what a macro expansion point is. */
+
+static source_location
+linemap_macro_map_loc_to_exp_point (const struct line_map *map,
+ source_location location ATTRIBUTE_UNUSED)
+{
+ linemap_assert (linemap_macro_expansion_map_p (map)
+ && location >= MAP_START_LOCATION (map));
+
+ /* Make sure LOCATION is correct. */
+ linemap_assert ((location - MAP_START_LOCATION (map))
+ < MACRO_MAP_NUM_MACRO_TOKENS (map));
+
+ return MACRO_MAP_EXPANSION_POINT_LOCATION (map);
+}
+
+/* If LOCATION is the source location of a token that belongs to a
+ macro replacement-list -- as part of a macro expansion -- then
+ return the location of the token at the definition point of the
+ macro. Otherwise, return LOCATION. SET is the set of maps
+ location come from. ORIGINAL_MAP is an output parm. If non NULL,
+ the function sets *ORIGINAL_MAP to the ordinary (non-macro) map the
+ returned location comes from. */
+
+source_location
+linemap_macro_map_loc_to_def_point (const struct line_map *map,
+ source_location location)
+{
+ unsigned token_no;
+
+ linemap_assert (linemap_macro_expansion_map_p (map)
+ && location >= MAP_START_LOCATION (map));
+ linemap_assert (location >= RESERVED_LOCATION_COUNT);
+
+ token_no = location - MAP_START_LOCATION (map);
+ linemap_assert (token_no < MACRO_MAP_NUM_MACRO_TOKENS (map));
+
+ location = MACRO_MAP_LOCATIONS (map)[2 * token_no + 1];
+
+ return location;
+}
+
+/* If LOCATION is the locus of a token that is an argument of a
+ function-like macro M and appears in the expansion of M, return the
+ locus of that argument in the context of the caller of M.
+
+ In other words, this returns the xI location presented in the
+ comments of line_map_macro above. */
+source_location
+linemap_macro_map_loc_unwind_toward_spelling (const struct line_map* map,
+ source_location location)
+{
+ unsigned token_no;
+
+ linemap_assert (linemap_macro_expansion_map_p (map)
+ && location >= MAP_START_LOCATION (map));
+ linemap_assert (location >= RESERVED_LOCATION_COUNT);
+
+ token_no = location - MAP_START_LOCATION (map);
+ linemap_assert (token_no < MACRO_MAP_NUM_MACRO_TOKENS (map));
+
+ location = MACRO_MAP_LOCATIONS (map)[2 * token_no];
+
+ return location;
+}
+
+/* Return the source line number corresponding to source location
+ LOCATION. SET is the line map set LOCATION comes from. If
+ LOCATION is the source location of token that is part of the
+ replacement-list of a macro expansion return the line number of the
+ macro expansion point. */
+
+int
+linemap_get_expansion_line (struct line_maps *set,
+ source_location location)
+{
+ const struct line_map *map = NULL;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ if (location < RESERVED_LOCATION_COUNT)
+ return 0;
+
+ location =
+ linemap_macro_loc_to_exp_point (set, location, &map);
+
+ return SOURCE_LINE (map, location);
+}
+
+/* Return the path of the file corresponding to source code location
+ LOCATION.
+
+ If LOCATION is the source location of token that is part of the
+ replacement-list of a macro expansion return the file path of the
+ macro expansion point.
+
+ SET is the line map set LOCATION comes from. */
+
+const char*
+linemap_get_expansion_filename (struct line_maps *set,
+ source_location location)
+{
+ const struct line_map *map = NULL;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ if (location < RESERVED_LOCATION_COUNT)
+ return NULL;
+
+ location =
+ linemap_macro_loc_to_exp_point (set, location, &map);
+
+ return LINEMAP_FILE (map);
+}
+
+/* Return the name of the macro associated to MACRO_MAP. */
+
+const char*
+linemap_map_get_macro_name (const struct line_map* macro_map)
+{
+ linemap_assert (macro_map && linemap_macro_expansion_map_p (macro_map));
+ return (const char*) NODE_NAME (MACRO_MAP_MACRO (macro_map));
+}
+
+/* Return a positive value if LOCATION is the locus of a token that is
+ located in a system header, O otherwise. It returns 1 if LOCATION
+ is the locus of a token that is located in a system header, and 2
+ if LOCATION is the locus of a token located in a C system header
+ that therefore needs to be extern "C" protected in C++.
+
+ Note that this function returns 1 if LOCATION belongs to a token
+ that is part of a macro replacement-list defined in a system
+ header, but expanded in a non-system file. */
+
+int
+linemap_location_in_system_header_p (struct line_maps *set,
+ source_location location)
+{
+ const struct line_map *map = NULL;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ if (location < RESERVED_LOCATION_COUNT)
+ return false;
+
+ /* Let's look at where the token for LOCATION comes from. */
+ while (true)
+ {
+ map = linemap_lookup (set, location);
+ if (map != NULL)
+ {
+ if (!linemap_macro_expansion_map_p (map))
+ /* It's a normal token. */
+ return LINEMAP_SYSP (map);
+ else
+ {
+ /* It's a token resulting from a macro expansion. */
+ source_location loc =
+ linemap_macro_map_loc_unwind_toward_spelling (map, location);
+ if (loc < RESERVED_LOCATION_COUNT)
+ /* This token might come from a built-in macro. Let's
+ look at where that macro got expanded. */
+ location = linemap_macro_map_loc_to_exp_point (map, location);
+ else
+ location = loc;
+ }
+ }
+ else
+ break;
+ }
+ return false;
+}
+
+/* Return TRUE if LOCATION is a source code location of a token coming
+ from a macro replacement-list at a macro expansion point, FALSE
+ otherwise. */
+
+bool
+linemap_location_from_macro_expansion_p (struct line_maps *set,
+ source_location location)
+{
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ linemap_assert (location <= MAX_SOURCE_LOCATION
+ && (set->highest_location
+ < LINEMAPS_MACRO_LOWEST_LOCATION (set)));
+ if (set == NULL)
+ return false;
+ return (location > set->highest_location);
+}
+
+/* Given two virtual locations *LOC0 and *LOC1, return the first
+ common macro map in their macro expansion histories. Return NULL
+ if no common macro was found. *LOC0 (resp. *LOC1) is set to the
+ virtual location of the token inside the resulting macro. */
+
+static const struct line_map*
+first_map_in_common_1 (struct line_maps *set,
+ source_location *loc0,
+ source_location *loc1)
+{
+ source_location l0 = *loc0, l1 = *loc1;
+ const struct line_map *map0 = linemap_lookup (set, l0),
+ *map1 = linemap_lookup (set, l1);
+
+ while (linemap_macro_expansion_map_p (map0)
+ && linemap_macro_expansion_map_p (map1)
+ && (map0 != map1))
+ {
+ if (MAP_START_LOCATION (map0) < MAP_START_LOCATION (map1))
+ {
+ l0 = linemap_macro_map_loc_to_exp_point (map0, l0);
+ map0 = linemap_lookup (set, l0);
+ }
+ else
+ {
+ l1 = linemap_macro_map_loc_to_exp_point (map1, l1);
+ map1 = linemap_lookup (set, l1);
+ }
+ }
+
+ if (map0 == map1)
+ {
+ *loc0 = l0;
+ *loc1 = l1;
+ return map0;
+ }
+ return NULL;
+}
+
+/* Given two virtual locations LOC0 and LOC1, return the first common
+ macro map in their macro expansion histories. Return NULL if no
+ common macro was found. *RES_LOC0 (resp. *RES_LOC1) is set to the
+ virtual location of the token inside the resulting macro, upon
+ return of a non-NULL result. */
+
+static const struct line_map*
+first_map_in_common (struct line_maps *set,
+ source_location loc0,
+ source_location loc1,
+ source_location *res_loc0,
+ source_location *res_loc1)
+{
+ *res_loc0 = loc0;
+ *res_loc1 = loc1;
+
+ return first_map_in_common_1 (set, res_loc0, res_loc1);
+}
+
+/* Return a positive value if PRE denotes the location of a token that
+ comes before the token of POST, 0 if PRE denotes the location of
+ the same token as the token for POST, and a negative value
+ otherwise. */
+
+int
+linemap_compare_locations (struct line_maps *set,
+ source_location pre,
+ source_location post)
+{
+ bool pre_virtual_p, post_virtual_p;
+ source_location l0 = pre, l1 = post;
+
+ if (IS_ADHOC_LOC (l0))
+ l0 = set->location_adhoc_data_map.data[l0 & MAX_SOURCE_LOCATION].locus;
+ if (IS_ADHOC_LOC (l1))
+ l1 = set->location_adhoc_data_map.data[l1 & MAX_SOURCE_LOCATION].locus;
+
+ if (l0 == l1)
+ return 0;
+
+ if ((pre_virtual_p = linemap_location_from_macro_expansion_p (set, l0)))
+ l0 = linemap_resolve_location (set, l0,
+ LRK_MACRO_EXPANSION_POINT,
+ NULL);
+
+ if ((post_virtual_p = linemap_location_from_macro_expansion_p (set, l1)))
+ l1 = linemap_resolve_location (set, l1,
+ LRK_MACRO_EXPANSION_POINT,
+ NULL);
+
+ if (l0 == l1
+ && pre_virtual_p
+ && post_virtual_p)
+ {
+ /* So pre and post represent two tokens that are present in a
+ same macro expansion. Let's see if the token for pre was
+ before the token for post in that expansion. */
+ unsigned i0, i1;
+ const struct line_map *map =
+ first_map_in_common (set, pre, post, &l0, &l1);
+
+ if (map == NULL)
+ /* This should not be possible. */
+ abort ();
+
+ i0 = l0 - MAP_START_LOCATION (map);
+ i1 = l1 - MAP_START_LOCATION (map);
+ return i1 - i0;
+ }
+
+ return l1 - l0;
+}
+
+/* Print an include trace, for e.g. the -H option of the preprocessor. */
+
+static void
+trace_include (const struct line_maps *set, const struct line_map *map)
+{
+ unsigned int i = set->depth;
+
+ while (--i)
+ putc ('.', stderr);
+
+ fprintf (stderr, " %s\n", ORDINARY_MAP_FILE_NAME (map));
+}
+
+/* Return the spelling location of the token wherever it comes from,
+ whether part of a macro definition or not.
+
+ This is a subroutine for linemap_resolve_location. */
+
+static source_location
+linemap_macro_loc_to_spelling_point (struct line_maps *set,
+ source_location location,
+ const struct line_map **original_map)
+{
+ struct line_map *map;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
+
+ while (true)
+ {
+ map = (struct line_map*) linemap_lookup (set, location);
+ if (!linemap_macro_expansion_map_p (map))
+ break;
+
+ location =
+ linemap_macro_map_loc_unwind_toward_spelling (map, location);
+ }
+
+ if (original_map)
+ *original_map = map;
+ return location;
+}
+
+/* If LOCATION is the source location of a token that belongs to a
+ macro replacement-list -- as part of a macro expansion -- then
+ return the location of the token at the definition point of the
+ macro. Otherwise, return LOCATION. SET is the set of maps
+ location come from. ORIGINAL_MAP is an output parm. If non NULL,
+ the function sets *ORIGINAL_MAP to the ordinary (non-macro) map the
+ returned location comes from.
+
+ This is a subroutine of linemap_resolve_location. */
+
+static source_location
+linemap_macro_loc_to_def_point (struct line_maps *set,
+ source_location location,
+ const struct line_map **original_map)
+{
+ struct line_map *map;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
+
+ while (true)
+ {
+ map = (struct line_map*) linemap_lookup (set, location);
+ if (!linemap_macro_expansion_map_p (map))
+ break;
+
+ location =
+ linemap_macro_map_loc_to_def_point (map, location);
+ }
+
+ if (original_map)
+ *original_map = map;
+ return location;
+}
+
+/* If LOCATION is the source location of a token that belongs to a
+ macro replacement-list -- at a macro expansion point -- then return
+ the location of the topmost expansion point of the macro. We say
+ topmost because if we are in the context of a nested macro
+ expansion, the function returns the source location of the first
+ macro expansion that triggered the nested expansions.
+
+ Otherwise, return LOCATION. SET is the set of maps location come
+ from. ORIGINAL_MAP is an output parm. If non NULL, the function
+ sets *ORIGINAL_MAP to the ordinary (non-macro) map the returned
+ location comes from.
+
+ This is a subroutine of linemap_resolve_location. */
+
+static source_location
+linemap_macro_loc_to_exp_point (struct line_maps *set,
+ source_location location,
+ const struct line_map **original_map)
+{
+ struct line_map *map;
+
+ if (IS_ADHOC_LOC (location))
+ location = set->location_adhoc_data_map.data[location
+ & MAX_SOURCE_LOCATION].locus;
+
+ linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
+
+ while (true)
+ {
+ map = (struct line_map*) linemap_lookup (set, location);
+ if (!linemap_macro_expansion_map_p (map))
+ break;
+ location = linemap_macro_map_loc_to_exp_point (map, location);
+ }
+
+ if (original_map)
+ *original_map = map;
+ return location;
+}
+
+/* Resolve a virtual location into either a spelling location, an
+ expansion point location or a token argument replacement point
+ location. Return the map that encodes the virtual location as well
+ as the resolved location.
+
+ If LOC is *NOT* the location of a token resulting from the
+ expansion of a macro, then the parameter LRK (which stands for
+ Location Resolution Kind) is ignored and the resulting location
+ just equals the one given in argument.
+
+ Now if LOC *IS* the location of a token resulting from the
+ expansion of a macro, this is what happens.
+
+ * If LRK is set to LRK_MACRO_EXPANSION_POINT
+ -------------------------------
+
+ The virtual location is resolved to the first macro expansion point
+ that led to this macro expansion.
+
+ * If LRK is set to LRK_SPELLING_LOCATION
+ -------------------------------------
+
+ The virtual location is resolved to the locus where the token has
+ been spelled in the source. This can follow through all the macro
+ expansions that led to the token.
+
+ * If LRK is set to LRK_MACRO_DEFINITION_LOCATION
+ --------------------------------------
+
+ The virtual location is resolved to the locus of the token in the
+ context of the macro definition.
+
+ If LOC is the locus of a token that is an argument of a
+ function-like macro [replacing a parameter in the replacement list
+ of the macro] the virtual location is resolved to the locus of the
+ parameter that is replaced, in the context of the definition of the
+ macro.
+
+ If LOC is the locus of a token that is not an argument of a
+ function-like macro, then the function behaves as if LRK was set to
+ LRK_SPELLING_LOCATION.
+
+ If LOC_MAP is not NULL, *LOC_MAP is set to the map encoding the
+ returned location. Note that if the returned location wasn't originally
+ encoded by a map, the *MAP is set to NULL. This can happen if LOC
+ resolves to a location reserved for the client code, like
+ UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */
+
+source_location
+linemap_resolve_location (struct line_maps *set,
+ source_location loc,
+ enum location_resolution_kind lrk,
+ const struct line_map **map)
+{
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
+ if (loc < RESERVED_LOCATION_COUNT)
+ {
+ /* A reserved location wasn't encoded in a map. Let's return a
+ NULL map here, just like what linemap_ordinary_map_lookup
+ does. */
+ if (map)
+ *map = NULL;
+ return loc;
+ }
+
+ switch (lrk)
+ {
+ case LRK_MACRO_EXPANSION_POINT:
+ loc = linemap_macro_loc_to_exp_point (set, loc, map);
+ break;
+ case LRK_SPELLING_LOCATION:
+ loc = linemap_macro_loc_to_spelling_point (set, loc, map);
+ break;
+ case LRK_MACRO_DEFINITION_LOCATION:
+ loc = linemap_macro_loc_to_def_point (set, loc, map);
+ break;
+ default:
+ abort ();
+ }
+ return loc;
+}
+
+/*
+ Suppose that LOC is the virtual location of a token T coming from
+ the expansion of a macro M. This function then steps up to get the
+ location L of the point where M got expanded. If L is a spelling
+ location inside a macro expansion M', then this function returns
+ the locus of the point where M' was expanded. Said otherwise, this
+ function returns the location of T in the context that triggered
+ the expansion of M.
+
+ *LOC_MAP must be set to the map of LOC. This function then sets it
+ to the map of the returned location. */
+
+source_location
+linemap_unwind_toward_expansion (struct line_maps *set,
+ source_location loc,
+ const struct line_map **map)
+{
+ source_location resolved_location;
+ const struct line_map *resolved_map;
+
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
+ resolved_location =
+ linemap_macro_map_loc_unwind_toward_spelling (*map, loc);
+ resolved_map = linemap_lookup (set, resolved_location);
+
+ if (!linemap_macro_expansion_map_p (resolved_map))
+ {
+ resolved_location = linemap_macro_map_loc_to_exp_point (*map, loc);
+ resolved_map = linemap_lookup (set, resolved_location);
+ }
+
+ *map = resolved_map;
+ return resolved_location;
+}
+
+/* If LOC is the virtual location of a token coming from the expansion
+ of a macro M and if its spelling location is reserved (e.g, a
+ location for a built-in token), then this function unwinds (using
+ linemap_unwind_toward_expansion) the location until a location that
+ is not reserved and is not in a system header is reached. In other
+ words, this unwinds the reserved location until a location that is
+ in real source code is reached.
+
+ Otherwise, if the spelling location for LOC is not reserved or if
+ LOC doesn't come from the expansion of a macro, the function
+ returns LOC as is and *MAP is not touched.
+
+ *MAP is set to the map of the returned location if the later is
+ different from LOC. */
+source_location
+linemap_unwind_to_first_non_reserved_loc (struct line_maps *set,
+ source_location loc,
+ const struct line_map **map)
+{
+ source_location resolved_loc;
+ const struct line_map *map0 = NULL, *map1 = NULL;
+
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
+ map0 = linemap_lookup (set, loc);
+ if (!linemap_macro_expansion_map_p (map0))
+ return loc;
+
+ resolved_loc = linemap_resolve_location (set, loc,
+ LRK_SPELLING_LOCATION,
+ &map1);
+
+ if (resolved_loc >= RESERVED_LOCATION_COUNT
+ && !LINEMAP_SYSP (map1))
+ return loc;
+
+ while (linemap_macro_expansion_map_p (map0)
+ && (resolved_loc < RESERVED_LOCATION_COUNT
+ || LINEMAP_SYSP (map1)))
+ {
+ loc = linemap_unwind_toward_expansion (set, loc, &map0);
+ resolved_loc = linemap_resolve_location (set, loc,
+ LRK_SPELLING_LOCATION,
+ &map1);
+ }
+
+ if (map != NULL)
+ *map = map0;
+ return loc;
+}
+
+/* Expand source code location LOC and return a user readable source
+ code location. LOC must be a spelling (non-virtual) location. If
+ it's a location < RESERVED_LOCATION_COUNT a zeroed expanded source
+ location is returned. */
+
+expanded_location
+linemap_expand_location (struct line_maps *set,
+ const struct line_map *map,
+ source_location loc)
+
+{
+ expanded_location xloc;
+
+ memset (&xloc, 0, sizeof (xloc));
+ if (IS_ADHOC_LOC (loc))
+ {
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+ xloc.data
+ = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].data;
+ }
+
+ if (loc < RESERVED_LOCATION_COUNT)
+ /* The location for this token wasn't generated from a line map.
+ It was probably a location for a builtin token, chosen by some
+ client code. Let's not try to expand the location in that
+ case. */;
+ else if (map == NULL)
+ /* We shouldn't be getting a NULL map with a location that is not
+ reserved by the client code. */
+ abort ();
+ else
+ {
+ /* MAP must be an ordinary map and LOC must be non-virtual,
+ encoded into this map, obviously; the accessors used on MAP
+ below ensure it is ordinary. Let's just assert the
+ non-virtualness of LOC here. */
+ if (linemap_location_from_macro_expansion_p (set, loc))
+ abort ();
+
+ xloc.file = LINEMAP_FILE (map);
+ xloc.line = SOURCE_LINE (map, loc);
+ xloc.column = SOURCE_COLUMN (map, loc);
+ xloc.sysp = LINEMAP_SYSP (map) != 0;
+ }
+
+ return xloc;
+}
+
+
+/* Dump line map at index IX in line table SET to STREAM. If STREAM
+ is NULL, use stderr. IS_MACRO is true if the caller wants to
+ dump a macro map, false otherwise. */
+
+void
+linemap_dump (FILE *stream, struct line_maps *set, unsigned ix, bool is_macro)
+{
+ const char *lc_reasons_v[LC_ENTER_MACRO + 1]
+ = { "LC_ENTER", "LC_LEAVE", "LC_RENAME", "LC_RENAME_VERBATIM",
+ "LC_ENTER_MACRO" };
+ const char *reason;
+ struct line_map *map;
+
+ if (stream == NULL)
+ stream = stderr;
+
+ if (!is_macro)
+ map = LINEMAPS_ORDINARY_MAP_AT (set, ix);
+ else
+ map = LINEMAPS_MACRO_MAP_AT (set, ix);
+
+ reason = (map->reason <= LC_ENTER_MACRO) ? lc_reasons_v[map->reason] : "???";
+
+ fprintf (stream, "Map #%u [%p] - LOC: %u - REASON: %s - SYSP: %s\n",
+ ix, (void *) map, map->start_location, reason,
+ (!is_macro && ORDINARY_MAP_IN_SYSTEM_HEADER_P (map)) ? "yes" : "no");
+ if (!is_macro)
+ {
+ unsigned includer_ix;
+ struct line_map *includer_map;
+
+ includer_ix = ORDINARY_MAP_INCLUDER_FILE_INDEX (map);
+ includer_map = includer_ix < LINEMAPS_ORDINARY_USED (set)
+ ? LINEMAPS_ORDINARY_MAP_AT (set, includer_ix)
+ : NULL;
+
+ fprintf (stream, "File: %s:%d\n", ORDINARY_MAP_FILE_NAME (map),
+ ORDINARY_MAP_STARTING_LINE_NUMBER (map));
+ fprintf (stream, "Included from: [%d] %s\n", includer_ix,
+ includer_map ? ORDINARY_MAP_FILE_NAME (includer_map) : "None");
+ }
+ else
+ fprintf (stream, "Macro: %s (%u tokens)\n",
+ linemap_map_get_macro_name (map),
+ MACRO_MAP_NUM_MACRO_TOKENS (map));
+
+ fprintf (stream, "\n");
+}
+
+
+/* Dump debugging information about source location LOC into the file
+ stream STREAM. SET is the line map set LOC comes from. */
+
+void
+linemap_dump_location (struct line_maps *set,
+ source_location loc,
+ FILE *stream)
+{
+ const struct line_map *map;
+ source_location location;
+ const char *path = "", *from = "";
+ int l = -1, c = -1, s = -1, e = -1;
+
+ if (IS_ADHOC_LOC (loc))
+ loc = set->location_adhoc_data_map.data[loc & MAX_SOURCE_LOCATION].locus;
+
+ if (loc == 0)
+ return;
+
+ location =
+ linemap_resolve_location (set, loc, LRK_MACRO_DEFINITION_LOCATION, &map);
+
+ if (map == NULL)
+ /* Only reserved locations can be tolerated in this case. */
+ linemap_assert (location < RESERVED_LOCATION_COUNT);
+ else
+ {
+ path = LINEMAP_FILE (map);
+ l = SOURCE_LINE (map, location);
+ c = SOURCE_COLUMN (map, location);
+ s = LINEMAP_SYSP (map) != 0;
+ e = location != loc;
+ if (e)
+ from = "N/A";
+ else
+ from = (INCLUDED_FROM (set, map))
+ ? LINEMAP_FILE (INCLUDED_FROM (set, map))
+ : "<NULL>";
+ }
+
+ /* P: path, L: line, C: column, S: in-system-header, M: map address,
+ E: macro expansion?, LOC: original location, R: resolved location */
+ fprintf (stream, "{P:%s;F:%s;L:%d;C:%d;S:%d;M:%p;E:%d,LOC:%d,R:%d}",
+ path, from, l, c, s, (void*)map, e, loc, location);
+}
+
+/* Return the highest location emitted for a given file for which
+ there is a line map in SET. FILE_NAME is the file name to
+ consider. If the function returns TRUE, *LOC is set to the highest
+ location emitted for that file. */
+
+bool
+linemap_get_file_highest_location (struct line_maps *set,
+ const char *file_name,
+ source_location *loc)
+{
+ /* If the set is empty or no ordinary map has been created then
+ there is no file to look for ... */
+ if (set == NULL || set->info_ordinary.used == 0)
+ return false;
+
+ /* Now look for the last ordinary map created for FILE_NAME. */
+ int i;
+ for (i = set->info_ordinary.used - 1; i >= 0; --i)
+ {
+ const char *fname = set->info_ordinary.maps[i].d.ordinary.to_file;
+ if (fname && !filename_cmp (fname, file_name))
+ break;
+ }
+
+ if (i < 0)
+ return false;
+
+ /* The highest location for a given map is either the starting
+ location of the next map minus one, or -- if the map is the
+ latest one -- the highest location of the set. */
+ source_location result;
+ if (i == (int) set->info_ordinary.used - 1)
+ result = set->highest_location;
+ else
+ result = set->info_ordinary.maps[i + 1].start_location - 1;
+
+ *loc = result;
+ return true;
+}
+
+/* Compute and return statistics about the memory consumption of some
+ parts of the line table SET. */
+
+void
+linemap_get_statistics (struct line_maps *set,
+ struct linemap_stats *s)
+{
+ long ordinary_maps_allocated_size, ordinary_maps_used_size,
+ macro_maps_allocated_size, macro_maps_used_size,
+ macro_maps_locations_size = 0, duplicated_macro_maps_locations_size = 0;
+
+ struct line_map *cur_map;
+
+ ordinary_maps_allocated_size =
+ LINEMAPS_ORDINARY_ALLOCATED (set) * sizeof (struct line_map);
+
+ ordinary_maps_used_size =
+ LINEMAPS_ORDINARY_USED (set) * sizeof (struct line_map);
+
+ macro_maps_allocated_size =
+ LINEMAPS_MACRO_ALLOCATED (set) * sizeof (struct line_map);
+
+ for (cur_map = LINEMAPS_MACRO_MAPS (set);
+ cur_map && cur_map <= LINEMAPS_LAST_MACRO_MAP (set);
+ ++cur_map)
+ {
+ unsigned i;
+
+ linemap_assert (linemap_macro_expansion_map_p (cur_map));
+
+ macro_maps_locations_size +=
+ 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map) * sizeof (source_location);
+
+ for (i = 0; i < 2 * MACRO_MAP_NUM_MACRO_TOKENS (cur_map); i += 2)
+ {
+ if (MACRO_MAP_LOCATIONS (cur_map)[i] ==
+ MACRO_MAP_LOCATIONS (cur_map)[i + 1])
+ duplicated_macro_maps_locations_size +=
+ sizeof (source_location);
+ }
+ }
+
+ macro_maps_used_size =
+ LINEMAPS_MACRO_USED (set) * sizeof (struct line_map);
+
+ s->num_ordinary_maps_allocated = LINEMAPS_ORDINARY_ALLOCATED (set);
+ s->num_ordinary_maps_used = LINEMAPS_ORDINARY_USED (set);
+ s->ordinary_maps_allocated_size = ordinary_maps_allocated_size;
+ s->ordinary_maps_used_size = ordinary_maps_used_size;
+ s->num_expanded_macros = num_expanded_macros_counter;
+ s->num_macro_tokens = num_macro_tokens_counter;
+ s->num_macro_maps_used = LINEMAPS_MACRO_USED (set);
+ s->macro_maps_allocated_size = macro_maps_allocated_size;
+ s->macro_maps_locations_size = macro_maps_locations_size;
+ s->macro_maps_used_size = macro_maps_used_size;
+ s->duplicated_macro_maps_locations_size =
+ duplicated_macro_maps_locations_size;
+}
+
+
+/* Dump line table SET to STREAM. If STREAM is NULL, stderr is used.
+ NUM_ORDINARY specifies how many ordinary maps to dump. NUM_MACRO
+ specifies how many macro maps to dump. */
+
+void
+line_table_dump (FILE *stream, struct line_maps *set, unsigned int num_ordinary,
+ unsigned int num_macro)
+{
+ unsigned int i;
+
+ if (set == NULL)
+ return;
+
+ if (stream == NULL)
+ stream = stderr;
+
+ fprintf (stream, "# of ordinary maps: %d\n", LINEMAPS_ORDINARY_USED (set));
+ fprintf (stream, "# of macro maps: %d\n", LINEMAPS_MACRO_USED (set));
+ fprintf (stream, "Include stack depth: %d\n", set->depth);
+ fprintf (stream, "Highest location: %u\n", set->highest_location);
+
+ if (num_ordinary)
+ {
+ fprintf (stream, "\nOrdinary line maps\n");
+ for (i = 0; i < num_ordinary && i < LINEMAPS_ORDINARY_USED (set); i++)
+ linemap_dump (stream, set, i, false);
+ fprintf (stream, "\n");
+ }
+
+ if (num_macro)
+ {
+ fprintf (stream, "\nMacro line maps\n");
+ for (i = 0; i < num_macro && i < LINEMAPS_MACRO_USED (set); i++)
+ linemap_dump (stream, set, i, true);
+ fprintf (stream, "\n");
+ }
+}
diff --git a/gcc-4.9/libcpp/macro.c b/gcc-4.9/libcpp/macro.c
new file mode 100644
index 000000000..11e50f484
--- /dev/null
+++ b/gcc-4.9/libcpp/macro.c
@@ -0,0 +1,3328 @@
+/* Part of CPP library. (Macro and #define handling.)
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Written by Per Bothner, 1994.
+ Based on CCCP program by Paul Rubin, June 1986
+ Adapted to ANSI C, Richard Stallman, Jan 1987
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+typedef struct macro_arg macro_arg;
+/* This structure represents the tokens of a macro argument. These
+ tokens can be macro themselves, in which case they can be either
+ expanded or unexpanded. When they are expanded, this data
+ structure keeps both the expanded and unexpanded forms. */
+struct macro_arg
+{
+ const cpp_token **first; /* First token in unexpanded argument. */
+ const cpp_token **expanded; /* Macro-expanded argument. */
+ const cpp_token *stringified; /* Stringified argument. */
+ unsigned int count; /* # of tokens in argument. */
+ unsigned int expanded_count; /* # of tokens in expanded argument. */
+ source_location *virt_locs; /* Where virtual locations for
+ unexpanded tokens are stored. */
+ source_location *expanded_virt_locs; /* Where virtual locations for
+ expanded tokens are
+ stored. */
+};
+
+/* The kind of macro tokens which the instance of
+ macro_arg_token_iter is supposed to iterate over. */
+enum macro_arg_token_kind {
+ MACRO_ARG_TOKEN_NORMAL,
+ /* This is a macro argument token that got transformed into a string
+ litteral, e.g. #foo. */
+ MACRO_ARG_TOKEN_STRINGIFIED,
+ /* This is a token resulting from the expansion of a macro
+ argument that was itself a macro. */
+ MACRO_ARG_TOKEN_EXPANDED
+};
+
+/* An iterator over tokens coming from a function-like macro
+ argument. */
+typedef struct macro_arg_token_iter macro_arg_token_iter;
+struct macro_arg_token_iter
+{
+ /* Whether or not -ftrack-macro-expansion is used. */
+ bool track_macro_exp_p;
+ /* The kind of token over which we are supposed to iterate. */
+ enum macro_arg_token_kind kind;
+ /* A pointer to the current token pointed to by the iterator. */
+ const cpp_token **token_ptr;
+ /* A pointer to the "full" location of the current token. If
+ -ftrack-macro-expansion is used this location tracks loci across
+ macro expansion. */
+ const source_location *location_ptr;
+#ifdef ENABLE_CHECKING
+ /* The number of times the iterator went forward. This useful only
+ when checking is enabled. */
+ size_t num_forwards;
+#endif
+};
+
+/* Macro expansion. */
+
+static int enter_macro_context (cpp_reader *, cpp_hashnode *,
+ const cpp_token *, source_location);
+static int builtin_macro (cpp_reader *, cpp_hashnode *);
+static void push_ptoken_context (cpp_reader *, cpp_hashnode *, _cpp_buff *,
+ const cpp_token **, unsigned int);
+static void push_extended_tokens_context (cpp_reader *, cpp_hashnode *,
+ _cpp_buff *, source_location *,
+ const cpp_token **, unsigned int);
+static _cpp_buff *collect_args (cpp_reader *, const cpp_hashnode *,
+ _cpp_buff **, unsigned *);
+static cpp_context *next_context (cpp_reader *);
+static const cpp_token *padding_token (cpp_reader *, const cpp_token *);
+static void expand_arg (cpp_reader *, macro_arg *);
+static const cpp_token *new_string_token (cpp_reader *, uchar *, unsigned int);
+static const cpp_token *stringify_arg (cpp_reader *, macro_arg *);
+static void paste_all_tokens (cpp_reader *, const cpp_token *);
+static bool paste_tokens (cpp_reader *, source_location,
+ const cpp_token **, const cpp_token *);
+static void alloc_expanded_arg_mem (cpp_reader *, macro_arg *, size_t);
+static void ensure_expanded_arg_room (cpp_reader *, macro_arg *, size_t, size_t *);
+static void delete_macro_args (_cpp_buff*, unsigned num_args);
+static void set_arg_token (macro_arg *, const cpp_token *,
+ source_location, size_t,
+ enum macro_arg_token_kind,
+ bool);
+static const source_location *get_arg_token_location (const macro_arg *,
+ enum macro_arg_token_kind);
+static const cpp_token **arg_token_ptr_at (const macro_arg *,
+ size_t,
+ enum macro_arg_token_kind,
+ source_location **virt_location);
+
+static void macro_arg_token_iter_init (macro_arg_token_iter *, bool,
+ enum macro_arg_token_kind,
+ const macro_arg *,
+ const cpp_token **);
+static const cpp_token *macro_arg_token_iter_get_token
+(const macro_arg_token_iter *it);
+static source_location macro_arg_token_iter_get_location
+(const macro_arg_token_iter *);
+static void macro_arg_token_iter_forward (macro_arg_token_iter *);
+static _cpp_buff *tokens_buff_new (cpp_reader *, size_t,
+ source_location **);
+static size_t tokens_buff_count (_cpp_buff *);
+static const cpp_token **tokens_buff_last_token_ptr (_cpp_buff *);
+static inline const cpp_token **tokens_buff_put_token_to (const cpp_token **,
+ source_location *,
+ const cpp_token *,
+ source_location,
+ source_location,
+ const struct line_map *,
+ unsigned int);
+
+static const cpp_token **tokens_buff_add_token (_cpp_buff *,
+ source_location *,
+ const cpp_token *,
+ source_location,
+ source_location,
+ const struct line_map *,
+ unsigned int);
+static inline void tokens_buff_remove_last_token (_cpp_buff *);
+static void replace_args (cpp_reader *, cpp_hashnode *, cpp_macro *,
+ macro_arg *, source_location);
+static _cpp_buff *funlike_invocation_p (cpp_reader *, cpp_hashnode *,
+ _cpp_buff **, unsigned *);
+static bool create_iso_definition (cpp_reader *, cpp_macro *);
+
+/* #define directive parsing and handling. */
+
+static cpp_token *alloc_expansion_token (cpp_reader *, cpp_macro *);
+static cpp_token *lex_expansion_token (cpp_reader *, cpp_macro *);
+static bool warn_of_redefinition (cpp_reader *, cpp_hashnode *,
+ const cpp_macro *);
+static bool parse_params (cpp_reader *, cpp_macro *);
+static void check_trad_stringification (cpp_reader *, const cpp_macro *,
+ const cpp_string *);
+static bool reached_end_of_context (cpp_context *);
+static void consume_next_token_from_context (cpp_reader *pfile,
+ const cpp_token **,
+ source_location *);
+static const cpp_token* cpp_get_token_1 (cpp_reader *, source_location *);
+
+static cpp_hashnode* macro_of_context (cpp_context *context);
+
+static bool in_macro_expansion_p (cpp_reader *pfile);
+
+/* Statistical counter tracking the number of macros that got
+ expanded. */
+unsigned num_expanded_macros_counter = 0;
+/* Statistical counter tracking the total number tokens resulting
+ from macro expansion. */
+unsigned num_macro_tokens_counter = 0;
+
+/* Emits a warning if NODE is a macro defined in the main file that
+ has not been used. */
+int
+_cpp_warn_if_unused_macro (cpp_reader *pfile, cpp_hashnode *node,
+ void *v ATTRIBUTE_UNUSED)
+{
+ if (node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
+ {
+ cpp_macro *macro = node->value.macro;
+
+ if (!macro->used
+ && MAIN_FILE_P (linemap_lookup (pfile->line_table, macro->line)))
+ cpp_warning_with_line (pfile, CPP_W_UNUSED_MACROS, macro->line, 0,
+ "macro \"%s\" is not used", NODE_NAME (node));
+ }
+
+ return 1;
+}
+
+/* Allocates and returns a CPP_STRING token, containing TEXT of length
+ LEN, after null-terminating it. TEXT must be in permanent storage. */
+static const cpp_token *
+new_string_token (cpp_reader *pfile, unsigned char *text, unsigned int len)
+{
+ cpp_token *token = _cpp_temp_token (pfile);
+
+ text[len] = '\0';
+ token->type = CPP_STRING;
+ token->val.str.len = len;
+ token->val.str.text = text;
+ token->flags = 0;
+ return token;
+}
+
+static const char * const monthnames[] =
+{
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+};
+
+/* Helper function for builtin_macro. Returns the text generated by
+ a builtin macro. */
+const uchar *
+_cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node)
+{
+ const uchar *result = NULL;
+ linenum_type number = 1;
+
+ switch (node->value.builtin)
+ {
+ default:
+ cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"",
+ NODE_NAME (node));
+ break;
+
+ case BT_TIMESTAMP:
+ {
+ if (CPP_OPTION (pfile, warn_date_time))
+ cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent "
+ "reproducible builds", NODE_NAME (node));
+
+ cpp_buffer *pbuffer = cpp_get_buffer (pfile);
+ if (pbuffer->timestamp == NULL)
+ {
+ /* Initialize timestamp value of the assotiated file. */
+ struct _cpp_file *file = cpp_get_file (pbuffer);
+ if (file)
+ {
+ /* Generate __TIMESTAMP__ string, that represents
+ the date and time of the last modification
+ of the current source file. The string constant
+ looks like "Sun Sep 16 01:03:52 1973". */
+ struct tm *tb = NULL;
+ struct stat *st = _cpp_get_file_stat (file);
+ if (st)
+ tb = localtime (&st->st_mtime);
+ if (tb)
+ {
+ char *str = asctime (tb);
+ size_t len = strlen (str);
+ unsigned char *buf = _cpp_unaligned_alloc (pfile, len + 2);
+ buf[0] = '"';
+ strcpy ((char *) buf + 1, str);
+ buf[len] = '"';
+ pbuffer->timestamp = buf;
+ }
+ else
+ {
+ cpp_errno (pfile, CPP_DL_WARNING,
+ "could not determine file timestamp");
+ pbuffer->timestamp = UC"\"??? ??? ?? ??:??:?? ????\"";
+ }
+ }
+ }
+ result = pbuffer->timestamp;
+ }
+ break;
+ case BT_FILE:
+ case BT_BASE_FILE:
+ {
+ unsigned int len;
+ const char *name;
+ uchar *buf;
+
+ if (node->value.builtin == BT_FILE)
+ name = linemap_get_expansion_filename (pfile->line_table,
+ pfile->line_table->highest_line);
+ else
+ {
+ name = _cpp_get_file_name (pfile->main_file);
+ if (!name)
+ abort ();
+ }
+ len = strlen (name);
+ buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
+ result = buf;
+ *buf = '"';
+ buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len);
+ *buf++ = '"';
+ *buf = '\0';
+ }
+ break;
+
+ case BT_INCLUDE_LEVEL:
+ /* The line map depth counts the primary source as level 1, but
+ historically __INCLUDE_DEPTH__ has called the primary source
+ level 0. */
+ number = pfile->line_table->depth - 1;
+ break;
+
+ case BT_SPECLINE:
+ /* If __LINE__ is embedded in a macro, it must expand to the
+ line of the macro's invocation, not its definition.
+ Otherwise things like assert() will not work properly. */
+ number = linemap_get_expansion_line (pfile->line_table,
+ CPP_OPTION (pfile, traditional)
+ ? pfile->line_table->highest_line
+ : pfile->cur_token[-1].src_loc);
+ break;
+
+ /* __STDC__ has the value 1 under normal circumstances.
+ However, if (a) we are in a system header, (b) the option
+ stdc_0_in_system_headers is true (set by target config), and
+ (c) we are not in strictly conforming mode, then it has the
+ value 0. (b) and (c) are already checked in cpp_init_builtins. */
+ case BT_STDC:
+ if (cpp_in_system_header (pfile))
+ number = 0;
+ else
+ number = 1;
+ break;
+
+ case BT_DATE:
+ case BT_TIME:
+ if (CPP_OPTION (pfile, warn_date_time))
+ cpp_warning (pfile, CPP_W_DATE_TIME, "macro \"%s\" might prevent "
+ "reproducible builds", NODE_NAME (node));
+ if (pfile->date == NULL)
+ {
+ /* Allocate __DATE__ and __TIME__ strings from permanent
+ storage. We only do this once, and don't generate them
+ at init time, because time() and localtime() are very
+ slow on some systems. */
+ time_t tt;
+ struct tm *tb = NULL;
+
+ /* (time_t) -1 is a legitimate value for "number of seconds
+ since the Epoch", so we have to do a little dance to
+ distinguish that from a genuine error. */
+ errno = 0;
+ tt = time(NULL);
+ if (tt != (time_t)-1 || errno == 0)
+ tb = localtime (&tt);
+
+ if (tb)
+ {
+ pfile->date = _cpp_unaligned_alloc (pfile,
+ sizeof ("\"Oct 11 1347\""));
+ sprintf ((char *) pfile->date, "\"%s %2d %4d\"",
+ monthnames[tb->tm_mon], tb->tm_mday,
+ tb->tm_year + 1900);
+
+ pfile->time = _cpp_unaligned_alloc (pfile,
+ sizeof ("\"12:34:56\""));
+ sprintf ((char *) pfile->time, "\"%02d:%02d:%02d\"",
+ tb->tm_hour, tb->tm_min, tb->tm_sec);
+ }
+ else
+ {
+ cpp_errno (pfile, CPP_DL_WARNING,
+ "could not determine date and time");
+
+ pfile->date = UC"\"??? ?? ????\"";
+ pfile->time = UC"\"??:??:??\"";
+ }
+ }
+
+ if (node->value.builtin == BT_DATE)
+ result = pfile->date;
+ else
+ result = pfile->time;
+ break;
+
+ case BT_COUNTER:
+ if (CPP_OPTION (pfile, directives_only) && pfile->state.in_directive)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "__COUNTER__ expanded inside directive with -fdirectives-only");
+ number = pfile->counter++;
+ break;
+ }
+
+ if (result == NULL)
+ {
+ /* 21 bytes holds all NUL-terminated unsigned 64-bit numbers. */
+ result = _cpp_unaligned_alloc (pfile, 21);
+ sprintf ((char *) result, "%u", number);
+ }
+
+ return result;
+}
+
+/* Convert builtin macros like __FILE__ to a token and push it on the
+ context stack. Also handles _Pragma, for which a new token may not
+ be created. Returns 1 if it generates a new token context, 0 to
+ return the token to the caller. */
+static int
+builtin_macro (cpp_reader *pfile, cpp_hashnode *node)
+{
+ const uchar *buf;
+ size_t len;
+ char *nbuf;
+
+ if (node->value.builtin == BT_PRAGMA)
+ {
+ /* Don't interpret _Pragma within directives. The standard is
+ not clear on this, but to me this makes most sense. */
+ if (pfile->state.in_directive)
+ return 0;
+
+ return _cpp_do__Pragma (pfile);
+ }
+
+ buf = _cpp_builtin_macro_text (pfile, node);
+ len = ustrlen (buf);
+ nbuf = (char *) alloca (len + 1);
+ memcpy (nbuf, buf, len);
+ nbuf[len]='\n';
+
+ cpp_push_buffer (pfile, (uchar *) nbuf, len, /* from_stage3 */ true);
+ _cpp_clean_line (pfile);
+
+ /* Set pfile->cur_token as required by _cpp_lex_direct. */
+ pfile->cur_token = _cpp_temp_token (pfile);
+ _cpp_push_token_context (pfile, NULL, _cpp_lex_direct (pfile), 1);
+ if (pfile->buffer->cur != pfile->buffer->rlimit)
+ cpp_error (pfile, CPP_DL_ICE, "invalid built-in macro \"%s\"",
+ NODE_NAME (node));
+ _cpp_pop_buffer (pfile);
+
+ return 1;
+}
+
+/* Copies SRC, of length LEN, to DEST, adding backslashes before all
+ backslashes and double quotes. DEST must be of sufficient size.
+ Returns a pointer to the end of the string. */
+uchar *
+cpp_quote_string (uchar *dest, const uchar *src, unsigned int len)
+{
+ while (len--)
+ {
+ uchar c = *src++;
+
+ if (c == '\\' || c == '"')
+ {
+ *dest++ = '\\';
+ *dest++ = c;
+ }
+ else
+ *dest++ = c;
+ }
+
+ return dest;
+}
+
+/* Convert a token sequence ARG to a single string token according to
+ the rules of the ISO C #-operator. */
+static const cpp_token *
+stringify_arg (cpp_reader *pfile, macro_arg *arg)
+{
+ unsigned char *dest;
+ unsigned int i, escape_it, backslash_count = 0;
+ const cpp_token *source = NULL;
+ size_t len;
+
+ if (BUFF_ROOM (pfile->u_buff) < 3)
+ _cpp_extend_buff (pfile, &pfile->u_buff, 3);
+ dest = BUFF_FRONT (pfile->u_buff);
+ *dest++ = '"';
+
+ /* Loop, reading in the argument's tokens. */
+ for (i = 0; i < arg->count; i++)
+ {
+ const cpp_token *token = arg->first[i];
+
+ if (token->type == CPP_PADDING)
+ {
+ if (source == NULL
+ || (!(source->flags & PREV_WHITE)
+ && token->val.source == NULL))
+ source = token->val.source;
+ continue;
+ }
+
+ escape_it = (token->type == CPP_STRING || token->type == CPP_CHAR
+ || token->type == CPP_WSTRING || token->type == CPP_WCHAR
+ || token->type == CPP_STRING32 || token->type == CPP_CHAR32
+ || token->type == CPP_STRING16 || token->type == CPP_CHAR16
+ || token->type == CPP_UTF8STRING);
+
+ /* Room for each char being written in octal, initial space and
+ final quote and NUL. */
+ len = cpp_token_len (token);
+ if (escape_it)
+ len *= 4;
+ len += 3;
+
+ if ((size_t) (BUFF_LIMIT (pfile->u_buff) - dest) < len)
+ {
+ size_t len_so_far = dest - BUFF_FRONT (pfile->u_buff);
+ _cpp_extend_buff (pfile, &pfile->u_buff, len);
+ dest = BUFF_FRONT (pfile->u_buff) + len_so_far;
+ }
+
+ /* Leading white space? */
+ if (dest - 1 != BUFF_FRONT (pfile->u_buff))
+ {
+ if (source == NULL)
+ source = token;
+ if (source->flags & PREV_WHITE)
+ *dest++ = ' ';
+ }
+ source = NULL;
+
+ if (escape_it)
+ {
+ _cpp_buff *buff = _cpp_get_buff (pfile, len);
+ unsigned char *buf = BUFF_FRONT (buff);
+ len = cpp_spell_token (pfile, token, buf, true) - buf;
+ dest = cpp_quote_string (dest, buf, len);
+ _cpp_release_buff (pfile, buff);
+ }
+ else
+ dest = cpp_spell_token (pfile, token, dest, true);
+
+ if (token->type == CPP_OTHER && token->val.str.text[0] == '\\')
+ backslash_count++;
+ else
+ backslash_count = 0;
+ }
+
+ /* Ignore the final \ of invalid string literals. */
+ if (backslash_count & 1)
+ {
+ cpp_error (pfile, CPP_DL_WARNING,
+ "invalid string literal, ignoring final '\\'");
+ dest--;
+ }
+
+ /* Commit the memory, including NUL, and return the token. */
+ *dest++ = '"';
+ len = dest - BUFF_FRONT (pfile->u_buff);
+ BUFF_FRONT (pfile->u_buff) = dest + 1;
+ return new_string_token (pfile, dest - len, len);
+}
+
+/* Try to paste two tokens. On success, return nonzero. In any
+ case, PLHS is updated to point to the pasted token, which is
+ guaranteed to not have the PASTE_LEFT flag set. LOCATION is
+ the virtual location used for error reporting. */
+static bool
+paste_tokens (cpp_reader *pfile, source_location location,
+ const cpp_token **plhs, const cpp_token *rhs)
+{
+ unsigned char *buf, *end, *lhsend;
+ cpp_token *lhs;
+ unsigned int len;
+
+ len = cpp_token_len (*plhs) + cpp_token_len (rhs) + 1;
+ buf = (unsigned char *) alloca (len);
+ end = lhsend = cpp_spell_token (pfile, *plhs, buf, false);
+
+ /* Avoid comment headers, since they are still processed in stage 3.
+ It is simpler to insert a space here, rather than modifying the
+ lexer to ignore comments in some circumstances. Simply returning
+ false doesn't work, since we want to clear the PASTE_LEFT flag. */
+ if ((*plhs)->type == CPP_DIV && rhs->type != CPP_EQ)
+ *end++ = ' ';
+ /* In one obscure case we might see padding here. */
+ if (rhs->type != CPP_PADDING)
+ end = cpp_spell_token (pfile, rhs, end, false);
+ *end = '\n';
+
+ cpp_push_buffer (pfile, buf, end - buf, /* from_stage3 */ true);
+ _cpp_clean_line (pfile);
+
+ /* Set pfile->cur_token as required by _cpp_lex_direct. */
+ pfile->cur_token = _cpp_temp_token (pfile);
+ lhs = _cpp_lex_direct (pfile);
+ if (pfile->buffer->cur != pfile->buffer->rlimit)
+ {
+ source_location saved_loc = lhs->src_loc;
+
+ _cpp_pop_buffer (pfile);
+ _cpp_backup_tokens (pfile, 1);
+ *lhsend = '\0';
+
+ /* We have to remove the PASTE_LEFT flag from the old lhs, but
+ we want to keep the new location. */
+ *lhs = **plhs;
+ *plhs = lhs;
+ lhs->src_loc = saved_loc;
+ lhs->flags &= ~PASTE_LEFT;
+
+ /* Mandatory error for all apart from assembler. */
+ if (CPP_OPTION (pfile, lang) != CLK_ASM)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, location, 0,
+ "pasting \"%s\" and \"%s\" does not give a valid preprocessing token",
+ buf, cpp_token_as_text (pfile, rhs));
+ return false;
+ }
+
+ *plhs = lhs;
+ _cpp_pop_buffer (pfile);
+ return true;
+}
+
+/* Handles an arbitrarily long sequence of ## operators, with initial
+ operand LHS. This implementation is left-associative,
+ non-recursive, and finishes a paste before handling succeeding
+ ones. If a paste fails, we back up to the RHS of the failing ##
+ operator before pushing the context containing the result of prior
+ successful pastes, with the effect that the RHS appears in the
+ output stream after the pasted LHS normally. */
+static void
+paste_all_tokens (cpp_reader *pfile, const cpp_token *lhs)
+{
+ const cpp_token *rhs = NULL;
+ cpp_context *context = pfile->context;
+ source_location virt_loc = 0;
+
+ /* We are expanding a macro and we must have been called on a token
+ that appears at the left hand side of a ## operator. */
+ if (macro_of_context (pfile->context) == NULL
+ || (!(lhs->flags & PASTE_LEFT)))
+ abort ();
+
+ if (context->tokens_kind == TOKENS_KIND_EXTENDED)
+ /* The caller must have called consume_next_token_from_context
+ right before calling us. That has incremented the pointer to
+ the current virtual location. So it now points to the location
+ of the token that comes right after *LHS. We want the
+ resulting pasted token to have the location of the current
+ *LHS, though. */
+ virt_loc = context->c.mc->cur_virt_loc[-1];
+ else
+ /* We are not tracking macro expansion. So the best virtual
+ location we can get here is the expansion point of the macro we
+ are currently expanding. */
+ virt_loc = pfile->invocation_location;
+
+ do
+ {
+ /* Take the token directly from the current context. We can do
+ this, because we are in the replacement list of either an
+ object-like macro, or a function-like macro with arguments
+ inserted. In either case, the constraints to #define
+ guarantee we have at least one more token. */
+ if (context->tokens_kind == TOKENS_KIND_DIRECT)
+ rhs = FIRST (context).token++;
+ else if (context->tokens_kind == TOKENS_KIND_INDIRECT)
+ rhs = *FIRST (context).ptoken++;
+ else if (context->tokens_kind == TOKENS_KIND_EXTENDED)
+ {
+ /* So we are in presence of an extended token context, which
+ means that each token in this context has a virtual
+ location attached to it. So let's not forget to update
+ the pointer to the current virtual location of the
+ current token when we update the pointer to the current
+ token */
+
+ rhs = *FIRST (context).ptoken++;
+ /* context->c.mc must be non-null, as if we were not in a
+ macro context, context->tokens_kind could not be equal to
+ TOKENS_KIND_EXTENDED. */
+ context->c.mc->cur_virt_loc++;
+ }
+
+ if (rhs->type == CPP_PADDING)
+ {
+ if (rhs->flags & PASTE_LEFT)
+ abort ();
+ }
+ if (!paste_tokens (pfile, virt_loc, &lhs, rhs))
+ break;
+ }
+ while (rhs->flags & PASTE_LEFT);
+
+ /* Put the resulting token in its own context. */
+ if (context->tokens_kind == TOKENS_KIND_EXTENDED)
+ {
+ source_location *virt_locs = NULL;
+ _cpp_buff *token_buf = tokens_buff_new (pfile, 1, &virt_locs);
+ tokens_buff_add_token (token_buf, virt_locs, lhs,
+ virt_loc, 0, NULL, 0);
+ push_extended_tokens_context (pfile, context->c.mc->macro_node,
+ token_buf, virt_locs,
+ (const cpp_token **)token_buf->base, 1);
+ }
+ else
+ _cpp_push_token_context (pfile, NULL, lhs, 1);
+}
+
+/* Returns TRUE if the number of arguments ARGC supplied in an
+ invocation of the MACRO referenced by NODE is valid. An empty
+ invocation to a macro with no parameters should pass ARGC as zero.
+
+ Note that MACRO cannot necessarily be deduced from NODE, in case
+ NODE was redefined whilst collecting arguments. */
+bool
+_cpp_arguments_ok (cpp_reader *pfile, cpp_macro *macro, const cpp_hashnode *node, unsigned int argc)
+{
+ if (argc == macro->paramc)
+ return true;
+
+ if (argc < macro->paramc)
+ {
+ /* As an extension, a rest argument is allowed to not appear in
+ the invocation at all.
+ e.g. #define debug(format, args...) something
+ debug("string");
+
+ This is exactly the same as if there had been an empty rest
+ argument - debug("string", ). */
+
+ if (argc + 1 == macro->paramc && macro->variadic)
+ {
+ if (CPP_PEDANTIC (pfile) && ! macro->syshdr)
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "ISO C99 requires rest arguments to be used");
+ return true;
+ }
+
+ cpp_error (pfile, CPP_DL_ERROR,
+ "macro \"%s\" requires %u arguments, but only %u given",
+ NODE_NAME (node), macro->paramc, argc);
+ }
+ else
+ cpp_error (pfile, CPP_DL_ERROR,
+ "macro \"%s\" passed %u arguments, but takes just %u",
+ NODE_NAME (node), argc, macro->paramc);
+
+ return false;
+}
+
+/* Reads and returns the arguments to a function-like macro
+ invocation. Assumes the opening parenthesis has been processed.
+ If there is an error, emits an appropriate diagnostic and returns
+ NULL. Each argument is terminated by a CPP_EOF token, for the
+ future benefit of expand_arg(). If there are any deferred
+ #pragma directives among macro arguments, store pointers to the
+ CPP_PRAGMA ... CPP_PRAGMA_EOL tokens into *PRAGMA_BUFF buffer.
+
+ What is returned is the buffer that contains the memory allocated
+ to hold the macro arguments. NODE is the name of the macro this
+ function is dealing with. If NUM_ARGS is non-NULL, *NUM_ARGS is
+ set to the actual number of macro arguments allocated in the
+ returned buffer. */
+static _cpp_buff *
+collect_args (cpp_reader *pfile, const cpp_hashnode *node,
+ _cpp_buff **pragma_buff, unsigned *num_args)
+{
+ _cpp_buff *buff, *base_buff;
+ cpp_macro *macro;
+ macro_arg *args, *arg;
+ const cpp_token *token;
+ unsigned int argc;
+ source_location virt_loc;
+ bool track_macro_expansion_p = CPP_OPTION (pfile, track_macro_expansion);
+ unsigned num_args_alloced = 0;
+
+ macro = node->value.macro;
+ if (macro->paramc)
+ argc = macro->paramc;
+ else
+ argc = 1;
+
+#define DEFAULT_NUM_TOKENS_PER_MACRO_ARG 50
+#define ARG_TOKENS_EXTENT 1000
+
+ buff = _cpp_get_buff (pfile, argc * (DEFAULT_NUM_TOKENS_PER_MACRO_ARG
+ * sizeof (cpp_token *)
+ + sizeof (macro_arg)));
+ base_buff = buff;
+ args = (macro_arg *) buff->base;
+ memset (args, 0, argc * sizeof (macro_arg));
+ buff->cur = (unsigned char *) &args[argc];
+ arg = args, argc = 0;
+
+ /* Collect the tokens making up each argument. We don't yet know
+ how many arguments have been supplied, whether too many or too
+ few. Hence the slightly bizarre usage of "argc" and "arg". */
+ do
+ {
+ unsigned int paren_depth = 0;
+ unsigned int ntokens = 0;
+ unsigned virt_locs_capacity = DEFAULT_NUM_TOKENS_PER_MACRO_ARG;
+ num_args_alloced++;
+
+ argc++;
+ arg->first = (const cpp_token **) buff->cur;
+ if (track_macro_expansion_p)
+ {
+ virt_locs_capacity = DEFAULT_NUM_TOKENS_PER_MACRO_ARG;
+ arg->virt_locs = XNEWVEC (source_location,
+ virt_locs_capacity);
+ }
+
+ for (;;)
+ {
+ /* Require space for 2 new tokens (including a CPP_EOF). */
+ if ((unsigned char *) &arg->first[ntokens + 2] > buff->limit)
+ {
+ buff = _cpp_append_extend_buff (pfile, buff,
+ ARG_TOKENS_EXTENT
+ * sizeof (cpp_token *));
+ arg->first = (const cpp_token **) buff->cur;
+ }
+ if (track_macro_expansion_p
+ && (ntokens + 2 > virt_locs_capacity))
+ {
+ virt_locs_capacity += ARG_TOKENS_EXTENT;
+ arg->virt_locs = XRESIZEVEC (source_location,
+ arg->virt_locs,
+ virt_locs_capacity);
+ }
+
+ token = cpp_get_token_1 (pfile, &virt_loc);
+
+ if (token->type == CPP_PADDING)
+ {
+ /* Drop leading padding. */
+ if (ntokens == 0)
+ continue;
+ }
+ else if (token->type == CPP_OPEN_PAREN)
+ paren_depth++;
+ else if (token->type == CPP_CLOSE_PAREN)
+ {
+ if (paren_depth-- == 0)
+ break;
+ }
+ else if (token->type == CPP_COMMA)
+ {
+ /* A comma does not terminate an argument within
+ parentheses or as part of a variable argument. */
+ if (paren_depth == 0
+ && ! (macro->variadic && argc == macro->paramc))
+ break;
+ }
+ else if (token->type == CPP_EOF
+ || (token->type == CPP_HASH && token->flags & BOL))
+ break;
+ else if (token->type == CPP_PRAGMA)
+ {
+ cpp_token *newtok = _cpp_temp_token (pfile);
+
+ /* CPP_PRAGMA token lives in directive_result, which will
+ be overwritten on the next directive. */
+ *newtok = *token;
+ token = newtok;
+ do
+ {
+ if (*pragma_buff == NULL
+ || BUFF_ROOM (*pragma_buff) < sizeof (cpp_token *))
+ {
+ _cpp_buff *next;
+ if (*pragma_buff == NULL)
+ *pragma_buff
+ = _cpp_get_buff (pfile, 32 * sizeof (cpp_token *));
+ else
+ {
+ next = *pragma_buff;
+ *pragma_buff
+ = _cpp_get_buff (pfile,
+ (BUFF_FRONT (*pragma_buff)
+ - (*pragma_buff)->base) * 2);
+ (*pragma_buff)->next = next;
+ }
+ }
+ *(const cpp_token **) BUFF_FRONT (*pragma_buff) = token;
+ BUFF_FRONT (*pragma_buff) += sizeof (cpp_token *);
+ if (token->type == CPP_PRAGMA_EOL)
+ break;
+ token = cpp_get_token_1 (pfile, &virt_loc);
+ }
+ while (token->type != CPP_EOF);
+
+ /* In deferred pragmas parsing_args and prevent_expansion
+ had been changed, reset it. */
+ pfile->state.parsing_args = 2;
+ pfile->state.prevent_expansion = 1;
+
+ if (token->type == CPP_EOF)
+ break;
+ else
+ continue;
+ }
+ set_arg_token (arg, token, virt_loc,
+ ntokens, MACRO_ARG_TOKEN_NORMAL,
+ CPP_OPTION (pfile, track_macro_expansion));
+ ntokens++;
+ }
+
+ /* Drop trailing padding. */
+ while (ntokens > 0 && arg->first[ntokens - 1]->type == CPP_PADDING)
+ ntokens--;
+
+ arg->count = ntokens;
+ set_arg_token (arg, &pfile->eof, pfile->eof.src_loc,
+ ntokens, MACRO_ARG_TOKEN_NORMAL,
+ CPP_OPTION (pfile, track_macro_expansion));
+
+ /* Terminate the argument. Excess arguments loop back and
+ overwrite the final legitimate argument, before failing. */
+ if (argc <= macro->paramc)
+ {
+ buff->cur = (unsigned char *) &arg->first[ntokens + 1];
+ if (argc != macro->paramc)
+ arg++;
+ }
+ }
+ while (token->type != CPP_CLOSE_PAREN && token->type != CPP_EOF);
+
+ if (token->type == CPP_EOF)
+ {
+ /* We still need the CPP_EOF to end directives, and to end
+ pre-expansion of a macro argument. Step back is not
+ unconditional, since we don't want to return a CPP_EOF to our
+ callers at the end of an -include-d file. */
+ if (pfile->context->prev || pfile->state.in_directive)
+ _cpp_backup_tokens (pfile, 1);
+ cpp_error (pfile, CPP_DL_ERROR,
+ "unterminated argument list invoking macro \"%s\"",
+ NODE_NAME (node));
+ }
+ else
+ {
+ /* A single empty argument is counted as no argument. */
+ if (argc == 1 && macro->paramc == 0 && args[0].count == 0)
+ argc = 0;
+ if (_cpp_arguments_ok (pfile, macro, node, argc))
+ {
+ /* GCC has special semantics for , ## b where b is a varargs
+ parameter: we remove the comma if b was omitted entirely.
+ If b was merely an empty argument, the comma is retained.
+ If the macro takes just one (varargs) parameter, then we
+ retain the comma only if we are standards conforming.
+
+ If FIRST is NULL replace_args () swallows the comma. */
+ if (macro->variadic && (argc < macro->paramc
+ || (argc == 1 && args[0].count == 0
+ && !CPP_OPTION (pfile, std))))
+ args[macro->paramc - 1].first = NULL;
+ if (num_args)
+ *num_args = num_args_alloced;
+ return base_buff;
+ }
+ }
+
+ /* An error occurred. */
+ _cpp_release_buff (pfile, base_buff);
+ return NULL;
+}
+
+/* Search for an opening parenthesis to the macro of NODE, in such a
+ way that, if none is found, we don't lose the information in any
+ intervening padding tokens. If we find the parenthesis, collect
+ the arguments and return the buffer containing them. PRAGMA_BUFF
+ argument is the same as in collect_args. If NUM_ARGS is non-NULL,
+ *NUM_ARGS is set to the number of arguments contained in the
+ returned buffer. */
+static _cpp_buff *
+funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node,
+ _cpp_buff **pragma_buff, unsigned *num_args)
+{
+ const cpp_token *token, *padding = NULL;
+
+ for (;;)
+ {
+ token = cpp_get_token (pfile);
+ if (token->type != CPP_PADDING)
+ break;
+ if (padding == NULL
+ || (!(padding->flags & PREV_WHITE) && token->val.source == NULL))
+ padding = token;
+ }
+
+ if (token->type == CPP_OPEN_PAREN)
+ {
+ pfile->state.parsing_args = 2;
+ return collect_args (pfile, node, pragma_buff, num_args);
+ }
+
+ /* CPP_EOF can be the end of macro arguments, or the end of the
+ file. We mustn't back up over the latter. Ugh. */
+ if (token->type != CPP_EOF || token == &pfile->eof)
+ {
+ /* Back up. We may have skipped padding, in which case backing
+ up more than one token when expanding macros is in general
+ too difficult. We re-insert it in its own context. */
+ _cpp_backup_tokens (pfile, 1);
+ if (padding)
+ _cpp_push_token_context (pfile, NULL, padding, 1);
+ }
+
+ return NULL;
+}
+
+/* Return the real number of tokens in the expansion of MACRO. */
+static inline unsigned int
+macro_real_token_count (const cpp_macro *macro)
+{
+ unsigned int i;
+ if (__builtin_expect (!macro->extra_tokens, true))
+ return macro->count;
+ for (i = 0; i < macro->count; i++)
+ if (macro->exp.tokens[i].type == CPP_PASTE)
+ return i;
+ abort ();
+}
+
+/* Push the context of a macro with hash entry NODE onto the context
+ stack. If we can successfully expand the macro, we push a context
+ containing its yet-to-be-rescanned replacement list and return one.
+ If there were additionally any unexpanded deferred #pragma
+ directives among macro arguments, push another context containing
+ the pragma tokens before the yet-to-be-rescanned replacement list
+ and return two. Otherwise, we don't push a context and return
+ zero. LOCATION is the location of the expansion point of the
+ macro. */
+static int
+enter_macro_context (cpp_reader *pfile, cpp_hashnode *node,
+ const cpp_token *result, source_location location)
+{
+ /* The presence of a macro invalidates a file's controlling macro. */
+ pfile->mi_valid = false;
+
+ pfile->state.angled_headers = false;
+
+ /* From here to when we push the context for the macro later down
+ this function, we need to flag the fact that we are about to
+ expand a macro. This is useful when -ftrack-macro-expansion is
+ turned off. In that case, we need to record the location of the
+ expansion point of the top-most macro we are about to to expand,
+ into pfile->invocation_location. But we must not record any such
+ location once the process of expanding the macro starts; that is,
+ we must not do that recording between now and later down this
+ function where set this flag to FALSE. */
+ pfile->about_to_expand_macro_p = true;
+
+ if ((node->flags & NODE_BUILTIN) && !(node->flags & NODE_USED))
+ {
+ node->flags |= NODE_USED;
+ if ((!pfile->cb.user_builtin_macro
+ || !pfile->cb.user_builtin_macro (pfile, node))
+ && pfile->cb.used_define)
+ pfile->cb.used_define (pfile, pfile->directive_line, node);
+ }
+
+ /* Handle standard macros. */
+ if (! (node->flags & NODE_BUILTIN))
+ {
+ cpp_macro *macro = node->value.macro;
+ _cpp_buff *pragma_buff = NULL;
+
+ if (macro->fun_like)
+ {
+ _cpp_buff *buff;
+ unsigned num_args = 0;
+
+ pfile->state.prevent_expansion++;
+ pfile->keep_tokens++;
+ pfile->state.parsing_args = 1;
+ buff = funlike_invocation_p (pfile, node, &pragma_buff,
+ &num_args);
+ pfile->state.parsing_args = 0;
+ pfile->keep_tokens--;
+ pfile->state.prevent_expansion--;
+
+ if (buff == NULL)
+ {
+ if (CPP_WTRADITIONAL (pfile) && ! node->value.macro->syshdr)
+ cpp_warning (pfile, CPP_W_TRADITIONAL,
+ "function-like macro \"%s\" must be used with arguments in traditional C",
+ NODE_NAME (node));
+
+ if (pragma_buff)
+ _cpp_release_buff (pfile, pragma_buff);
+
+ pfile->about_to_expand_macro_p = false;
+ return 0;
+ }
+
+ if (macro->paramc > 0)
+ replace_args (pfile, node, macro,
+ (macro_arg *) buff->base,
+ location);
+ /* Free the memory used by the arguments of this
+ function-like macro. This memory has been allocated by
+ funlike_invocation_p and by replace_args. */
+ delete_macro_args (buff, num_args);
+ }
+
+ /* Disable the macro within its expansion. */
+ node->flags |= NODE_DISABLED;
+
+ if (!(node->flags & NODE_USED))
+ {
+ node->flags |= NODE_USED;
+ if (pfile->cb.used_define)
+ pfile->cb.used_define (pfile, pfile->directive_line, node);
+ }
+
+ if (pfile->cb.used)
+ pfile->cb.used (pfile, location, node);
+
+ macro->used = 1;
+
+ if (macro->paramc == 0)
+ {
+ unsigned tokens_count = macro_real_token_count (macro);
+ if (CPP_OPTION (pfile, track_macro_expansion))
+ {
+ unsigned int i;
+ const cpp_token *src = macro->exp.tokens;
+ const struct line_map *map;
+ source_location *virt_locs = NULL;
+ _cpp_buff *macro_tokens
+ = tokens_buff_new (pfile, tokens_count, &virt_locs);
+
+ /* Create a macro map to record the locations of the
+ tokens that are involved in the expansion. LOCATION
+ is the location of the macro expansion point. */
+ map = linemap_enter_macro (pfile->line_table,
+ node, location, tokens_count);
+ for (i = 0; i < tokens_count; ++i)
+ {
+ tokens_buff_add_token (macro_tokens, virt_locs,
+ src, src->src_loc,
+ src->src_loc, map, i);
+ ++src;
+ }
+ push_extended_tokens_context (pfile, node,
+ macro_tokens,
+ virt_locs,
+ (const cpp_token **)
+ macro_tokens->base,
+ tokens_count);
+ }
+ else
+ _cpp_push_token_context (pfile, node, macro->exp.tokens,
+ tokens_count);
+ num_macro_tokens_counter += tokens_count;
+ }
+
+ if (pragma_buff)
+ {
+ if (!pfile->state.in_directive)
+ _cpp_push_token_context (pfile, NULL,
+ padding_token (pfile, result), 1);
+ do
+ {
+ unsigned tokens_count;
+ _cpp_buff *tail = pragma_buff->next;
+ pragma_buff->next = NULL;
+ tokens_count = ((const cpp_token **) BUFF_FRONT (pragma_buff)
+ - (const cpp_token **) pragma_buff->base);
+ push_ptoken_context (pfile, NULL, pragma_buff,
+ (const cpp_token **) pragma_buff->base,
+ tokens_count);
+ pragma_buff = tail;
+ if (!CPP_OPTION (pfile, track_macro_expansion))
+ num_macro_tokens_counter += tokens_count;
+
+ }
+ while (pragma_buff != NULL);
+ pfile->about_to_expand_macro_p = false;
+ return 2;
+ }
+
+ pfile->about_to_expand_macro_p = false;
+ return 1;
+ }
+
+ pfile->about_to_expand_macro_p = false;
+ /* Handle built-in macros and the _Pragma operator. */
+ return builtin_macro (pfile, node);
+}
+
+/* De-allocate the memory used by BUFF which is an array of instances
+ of macro_arg. NUM_ARGS is the number of instances of macro_arg
+ present in BUFF. */
+static void
+delete_macro_args (_cpp_buff *buff, unsigned num_args)
+{
+ macro_arg *macro_args;
+ unsigned i;
+
+ if (buff == NULL)
+ return;
+
+ macro_args = (macro_arg *) buff->base;
+
+ /* Walk instances of macro_arg to free their expanded tokens as well
+ as their macro_arg::virt_locs members. */
+ for (i = 0; i < num_args; ++i)
+ {
+ if (macro_args[i].expanded)
+ {
+ free (macro_args[i].expanded);
+ macro_args[i].expanded = NULL;
+ }
+ if (macro_args[i].virt_locs)
+ {
+ free (macro_args[i].virt_locs);
+ macro_args[i].virt_locs = NULL;
+ }
+ if (macro_args[i].expanded_virt_locs)
+ {
+ free (macro_args[i].expanded_virt_locs);
+ macro_args[i].expanded_virt_locs = NULL;
+ }
+ }
+ _cpp_free_buff (buff);
+}
+
+/* Set the INDEXth token of the macro argument ARG. TOKEN is the token
+ to set, LOCATION is its virtual location. "Virtual" location means
+ the location that encodes loci across macro expansion. Otherwise
+ it has to be TOKEN->SRC_LOC. KIND is the kind of tokens the
+ argument ARG is supposed to contain. Note that ARG must be
+ tailored so that it has enough room to contain INDEX + 1 numbers of
+ tokens, at least. */
+static void
+set_arg_token (macro_arg *arg, const cpp_token *token,
+ source_location location, size_t index,
+ enum macro_arg_token_kind kind,
+ bool track_macro_exp_p)
+{
+ const cpp_token **token_ptr;
+ source_location *loc = NULL;
+
+ token_ptr =
+ arg_token_ptr_at (arg, index, kind,
+ track_macro_exp_p ? &loc : NULL);
+ *token_ptr = token;
+
+ if (loc != NULL)
+ {
+#ifdef ENABLE_CHECKING
+ if (kind == MACRO_ARG_TOKEN_STRINGIFIED
+ || !track_macro_exp_p)
+ /* We can't set the location of a stringified argument
+ token and we can't set any location if we aren't tracking
+ macro expansion locations. */
+ abort ();
+#endif
+ *loc = location;
+ }
+}
+
+/* Get the pointer to the location of the argument token of the
+ function-like macro argument ARG. This function must be called
+ only when we -ftrack-macro-expansion is on. */
+static const source_location *
+get_arg_token_location (const macro_arg *arg,
+ enum macro_arg_token_kind kind)
+{
+ const source_location *loc = NULL;
+ const cpp_token **token_ptr =
+ arg_token_ptr_at (arg, 0, kind, (source_location **) &loc);
+
+ if (token_ptr == NULL)
+ return NULL;
+
+ return loc;
+}
+
+/* Return the pointer to the INDEXth token of the macro argument ARG.
+ KIND specifies the kind of token the macro argument ARG contains.
+ If VIRT_LOCATION is non NULL, *VIRT_LOCATION is set to the address
+ of the virtual location of the returned token if the
+ -ftrack-macro-expansion flag is on; otherwise, it's set to the
+ spelling location of the returned token. */
+static const cpp_token **
+arg_token_ptr_at (const macro_arg *arg, size_t index,
+ enum macro_arg_token_kind kind,
+ source_location **virt_location)
+{
+ const cpp_token **tokens_ptr = NULL;
+
+ switch (kind)
+ {
+ case MACRO_ARG_TOKEN_NORMAL:
+ tokens_ptr = arg->first;
+ break;
+ case MACRO_ARG_TOKEN_STRINGIFIED:
+ tokens_ptr = (const cpp_token **) &arg->stringified;
+ break;
+ case MACRO_ARG_TOKEN_EXPANDED:
+ tokens_ptr = arg->expanded;
+ break;
+ }
+
+ if (tokens_ptr == NULL)
+ /* This can happen for e.g, an empty token argument to a
+ funtion-like macro. */
+ return tokens_ptr;
+
+ if (virt_location)
+ {
+ if (kind == MACRO_ARG_TOKEN_NORMAL)
+ *virt_location = &arg->virt_locs[index];
+ else if (kind == MACRO_ARG_TOKEN_EXPANDED)
+ *virt_location = &arg->expanded_virt_locs[index];
+ else if (kind == MACRO_ARG_TOKEN_STRINGIFIED)
+ *virt_location =
+ (source_location *) &tokens_ptr[index]->src_loc;
+ }
+ return &tokens_ptr[index];
+}
+
+/* Initialize an iterator so that it iterates over the tokens of a
+ function-like macro argument. KIND is the kind of tokens we want
+ ITER to iterate over. TOKEN_PTR points the first token ITER will
+ iterate over. */
+static void
+macro_arg_token_iter_init (macro_arg_token_iter *iter,
+ bool track_macro_exp_p,
+ enum macro_arg_token_kind kind,
+ const macro_arg *arg,
+ const cpp_token **token_ptr)
+{
+ iter->track_macro_exp_p = track_macro_exp_p;
+ iter->kind = kind;
+ iter->token_ptr = token_ptr;
+ /* Unconditionally initialize this so that the compiler doesn't warn
+ about iter->location_ptr being possibly uninitialized later after
+ this code has been inlined somewhere. */
+ iter->location_ptr = NULL;
+ if (track_macro_exp_p)
+ iter->location_ptr = get_arg_token_location (arg, kind);
+#ifdef ENABLE_CHECKING
+ iter->num_forwards = 0;
+ if (track_macro_exp_p
+ && token_ptr != NULL
+ && iter->location_ptr == NULL)
+ abort ();
+#endif
+}
+
+/* Move the iterator one token forward. Note that if IT was
+ initialized on an argument that has a stringified token, moving it
+ forward doesn't make sense as a stringified token is essentially one
+ string. */
+static void
+macro_arg_token_iter_forward (macro_arg_token_iter *it)
+{
+ switch (it->kind)
+ {
+ case MACRO_ARG_TOKEN_NORMAL:
+ case MACRO_ARG_TOKEN_EXPANDED:
+ it->token_ptr++;
+ if (it->track_macro_exp_p)
+ it->location_ptr++;
+ break;
+ case MACRO_ARG_TOKEN_STRINGIFIED:
+#ifdef ENABLE_CHECKING
+ if (it->num_forwards > 0)
+ abort ();
+#endif
+ break;
+ }
+
+#ifdef ENABLE_CHECKING
+ it->num_forwards++;
+#endif
+}
+
+/* Return the token pointed to by the iterator. */
+static const cpp_token *
+macro_arg_token_iter_get_token (const macro_arg_token_iter *it)
+{
+#ifdef ENABLE_CHECKING
+ if (it->kind == MACRO_ARG_TOKEN_STRINGIFIED
+ && it->num_forwards > 0)
+ abort ();
+#endif
+ if (it->token_ptr == NULL)
+ return NULL;
+ return *it->token_ptr;
+}
+
+/* Return the location of the token pointed to by the iterator.*/
+static source_location
+macro_arg_token_iter_get_location (const macro_arg_token_iter *it)
+{
+#ifdef ENABLE_CHECKING
+ if (it->kind == MACRO_ARG_TOKEN_STRINGIFIED
+ && it->num_forwards > 0)
+ abort ();
+#endif
+ if (it->track_macro_exp_p)
+ return *it->location_ptr;
+ else
+ return (*it->token_ptr)->src_loc;
+}
+
+/* Return the index of a token [resulting from macro expansion] inside
+ the total list of tokens resulting from a given macro
+ expansion. The index can be different depending on whether if we
+ want each tokens resulting from function-like macro arguments
+ expansion to have a different location or not.
+
+ E.g, consider this function-like macro:
+
+ #define M(x) x - 3
+
+ Then consider us "calling" it (and thus expanding it) like:
+
+ M(1+4)
+
+ It will be expanded into:
+
+ 1+4-3
+
+ Let's consider the case of the token '4'.
+
+ Its index can be 2 (it's the third token of the set of tokens
+ resulting from the expansion) or it can be 0 if we consider that
+ all tokens resulting from the expansion of the argument "1+2" have
+ the same index, which is 0. In this later case, the index of token
+ '-' would then be 1 and the index of token '3' would be 2.
+
+ The later case is useful to use less memory e.g, for the case of
+ the user using the option -ftrack-macro-expansion=1.
+
+ ABSOLUTE_TOKEN_INDEX is the index of the macro argument token we
+ are interested in. CUR_REPLACEMENT_TOKEN is the token of the macro
+ parameter (inside the macro replacement list) that corresponds to
+ the macro argument for which ABSOLUTE_TOKEN_INDEX is a token index
+ of.
+
+ If we refer to the example above, for the '4' argument token,
+ ABSOLUTE_TOKEN_INDEX would be set to 2, and CUR_REPLACEMENT_TOKEN
+ would be set to the token 'x', in the replacement list "x - 3" of
+ macro M.
+
+ This is a subroutine of replace_args. */
+inline static unsigned
+expanded_token_index (cpp_reader *pfile, cpp_macro *macro,
+ const cpp_token *cur_replacement_token,
+ unsigned absolute_token_index)
+{
+ if (CPP_OPTION (pfile, track_macro_expansion) > 1)
+ return absolute_token_index;
+ return cur_replacement_token - macro->exp.tokens;
+}
+
+/* Replace the parameters in a function-like macro of NODE with the
+ actual ARGS, and place the result in a newly pushed token context.
+ Expand each argument before replacing, unless it is operated upon
+ by the # or ## operators. EXPANSION_POINT_LOC is the location of
+ the expansion point of the macro. E.g, the location of the
+ function-like macro invocation. */
+static void
+replace_args (cpp_reader *pfile, cpp_hashnode *node, cpp_macro *macro,
+ macro_arg *args, source_location expansion_point_loc)
+{
+ unsigned int i, total;
+ const cpp_token *src, *limit;
+ const cpp_token **first = NULL;
+ macro_arg *arg;
+ _cpp_buff *buff = NULL;
+ source_location *virt_locs = NULL;
+ unsigned int exp_count;
+ const struct line_map *map = NULL;
+ int track_macro_exp;
+
+ /* First, fully macro-expand arguments, calculating the number of
+ tokens in the final expansion as we go. The ordering of the if
+ statements below is subtle; we must handle stringification before
+ pasting. */
+
+ /* EXP_COUNT is the number of tokens in the macro replacement
+ list. TOTAL is the number of tokens /after/ macro parameters
+ have been replaced by their arguments. */
+ exp_count = macro_real_token_count (macro);
+ total = exp_count;
+ limit = macro->exp.tokens + exp_count;
+
+ for (src = macro->exp.tokens; src < limit; src++)
+ if (src->type == CPP_MACRO_ARG)
+ {
+ /* Leading and trailing padding tokens. */
+ total += 2;
+ /* Account for leading and padding tokens in exp_count too.
+ This is going to be important later down this function,
+ when we want to handle the case of (track_macro_exp <
+ 2). */
+ exp_count += 2;
+
+ /* We have an argument. If it is not being stringified or
+ pasted it is macro-replaced before insertion. */
+ arg = &args[src->val.macro_arg.arg_no - 1];
+
+ if (src->flags & STRINGIFY_ARG)
+ {
+ if (!arg->stringified)
+ arg->stringified = stringify_arg (pfile, arg);
+ }
+ else if ((src->flags & PASTE_LEFT)
+ || (src > macro->exp.tokens && (src[-1].flags & PASTE_LEFT)))
+ total += arg->count - 1;
+ else
+ {
+ if (!arg->expanded)
+ expand_arg (pfile, arg);
+ total += arg->expanded_count - 1;
+ }
+ }
+
+ /* When the compiler is called with the -ftrack-macro-expansion
+ flag, we need to keep track of the location of each token that
+ results from macro expansion.
+
+ A token resulting from macro expansion is not a new token. It is
+ simply the same token as the token coming from the macro
+ definition. The new things that are allocated are the buffer
+ that holds the tokens resulting from macro expansion and a new
+ location that records many things like the locus of the expansion
+ point as well as the original locus inside the definition of the
+ macro. This location is called a virtual location.
+
+ So the buffer BUFF holds a set of cpp_token*, and the buffer
+ VIRT_LOCS holds the virtual locations of the tokens held by BUFF.
+
+ Both of these two buffers are going to be hung off of the macro
+ context, when the latter is pushed. The memory allocated to
+ store the tokens and their locations is going to be freed once
+ the context of macro expansion is popped.
+
+ As far as tokens are concerned, the memory overhead of
+ -ftrack-macro-expansion is proportional to the number of
+ macros that get expanded multiplied by sizeof (source_location).
+ The good news is that extra memory gets freed when the macro
+ context is freed, i.e shortly after the macro got expanded. */
+
+ /* Is the -ftrack-macro-expansion flag in effect? */
+ track_macro_exp = CPP_OPTION (pfile, track_macro_expansion);
+
+ /* Now allocate memory space for tokens and locations resulting from
+ the macro expansion, copy the tokens and replace the arguments.
+ This memory must be freed when the context of the macro MACRO is
+ popped. */
+ buff = tokens_buff_new (pfile, total, track_macro_exp ? &virt_locs : NULL);
+
+ first = (const cpp_token **) buff->base;
+
+ /* Create a macro map to record the locations of the tokens that are
+ involved in the expansion. Note that the expansion point is set
+ to the location of the closing parenthesis. Otherwise, the
+ subsequent map created for the first token that comes after the
+ macro map might have a wrong line number. That would lead to
+ tokens with wrong line numbers after the macro expansion. This
+ adds up to the memory overhead of the -ftrack-macro-expansion
+ flag; for every macro that is expanded, a "macro map" is
+ created. */
+ if (track_macro_exp)
+ {
+ int num_macro_tokens = total;
+ if (track_macro_exp < 2)
+ /* Then the number of macro tokens won't take in account the
+ fact that function-like macro arguments can expand to
+ multiple tokens. This is to save memory at the expense of
+ accuracy.
+
+ Suppose we have #define SQARE(A) A * A
+
+ And then we do SQARE(2+3)
+
+ Then the tokens 2, +, 3, will have the same location,
+ saying they come from the expansion of the argument A. */
+ num_macro_tokens = exp_count;
+ map = linemap_enter_macro (pfile->line_table, node,
+ expansion_point_loc,
+ num_macro_tokens);
+ }
+ i = 0;
+ for (src = macro->exp.tokens; src < limit; src++)
+ {
+ unsigned int arg_tokens_count;
+ macro_arg_token_iter from;
+ const cpp_token **paste_flag = NULL;
+ const cpp_token **tmp_token_ptr;
+
+ if (src->type != CPP_MACRO_ARG)
+ {
+ /* Allocate a virtual location for token SRC, and add that
+ token and its virtual location into the buffers BUFF and
+ VIRT_LOCS. */
+ unsigned index = expanded_token_index (pfile, macro, src, i);
+ tokens_buff_add_token (buff, virt_locs, src,
+ src->src_loc, src->src_loc,
+ map, index);
+ i += 1;
+ continue;
+ }
+
+ paste_flag = 0;
+ arg = &args[src->val.macro_arg.arg_no - 1];
+ /* SRC is a macro parameter that we need to replace with its
+ corresponding argument. So at some point we'll need to
+ iterate over the tokens of the macro argument and copy them
+ into the "place" now holding the correspondig macro
+ parameter. We are going to use the iterator type
+ macro_argo_token_iter to handle that iterating. The 'if'
+ below is to initialize the iterator depending on the type of
+ tokens the macro argument has. It also does some adjustment
+ related to padding tokens and some pasting corner cases. */
+ if (src->flags & STRINGIFY_ARG)
+ {
+ arg_tokens_count = 1;
+ macro_arg_token_iter_init (&from,
+ CPP_OPTION (pfile,
+ track_macro_expansion),
+ MACRO_ARG_TOKEN_STRINGIFIED,
+ arg, &arg->stringified);
+ }
+ else if (src->flags & PASTE_LEFT)
+ {
+ arg_tokens_count = arg->count;
+ macro_arg_token_iter_init (&from,
+ CPP_OPTION (pfile,
+ track_macro_expansion),
+ MACRO_ARG_TOKEN_NORMAL,
+ arg, arg->first);
+ }
+ else if (src != macro->exp.tokens && (src[-1].flags & PASTE_LEFT))
+ {
+ int num_toks;
+ arg_tokens_count = arg->count;
+ macro_arg_token_iter_init (&from,
+ CPP_OPTION (pfile,
+ track_macro_expansion),
+ MACRO_ARG_TOKEN_NORMAL,
+ arg, arg->first);
+
+ num_toks = tokens_buff_count (buff);
+
+ if (num_toks != 0)
+ {
+ /* So the current parameter token is pasted to the previous
+ token in the replacement list. Let's look at what
+ we have as previous and current arguments. */
+
+ /* This is the previous argument's token ... */
+ tmp_token_ptr = tokens_buff_last_token_ptr (buff);
+
+ if ((*tmp_token_ptr)->type == CPP_COMMA
+ && macro->variadic
+ && src->val.macro_arg.arg_no == macro->paramc)
+ {
+ /* ... which is a comma; and the current parameter
+ is the last parameter of a variadic function-like
+ macro. If the argument to the current last
+ parameter is NULL, then swallow the comma,
+ otherwise drop the paste flag. */
+ if (macro_arg_token_iter_get_token (&from) == NULL)
+ tokens_buff_remove_last_token (buff);
+ else
+ paste_flag = tmp_token_ptr;
+ }
+ /* Remove the paste flag if the RHS is a placemarker. */
+ else if (arg_tokens_count == 0)
+ paste_flag = tmp_token_ptr;
+ }
+ }
+ else
+ {
+ arg_tokens_count = arg->expanded_count;
+ macro_arg_token_iter_init (&from,
+ CPP_OPTION (pfile,
+ track_macro_expansion),
+ MACRO_ARG_TOKEN_EXPANDED,
+ arg, arg->expanded);
+ }
+
+ /* Padding on the left of an argument (unless RHS of ##). */
+ if ((!pfile->state.in_directive || pfile->state.directive_wants_padding)
+ && src != macro->exp.tokens && !(src[-1].flags & PASTE_LEFT))
+ {
+ const cpp_token *t = padding_token (pfile, src);
+ unsigned index = expanded_token_index (pfile, macro, src, i);
+ /* Allocate a virtual location for the padding token and
+ append the token and its location to BUFF and
+ VIRT_LOCS. */
+ tokens_buff_add_token (buff, virt_locs, t,
+ t->src_loc, t->src_loc,
+ map, index);
+ }
+
+ if (arg_tokens_count)
+ {
+ /* So now we've got the number of tokens that make up the
+ argument that is going to replace the current parameter
+ in the macro's replacement list. */
+ unsigned int j;
+ for (j = 0; j < arg_tokens_count; ++j)
+ {
+ /* So if track_macro_exp is < 2, the user wants to
+ save extra memory while tracking macro expansion
+ locations. So in that case here is what we do:
+
+ Suppose we have #define SQARE(A) A * A
+
+ And then we do SQARE(2+3)
+
+ Then the tokens 2, +, 3, will have the same location,
+ saying they come from the expansion of the argument
+ A.
+
+ So that means we are going to ignore the COUNT tokens
+ resulting from the expansion of the current macro
+ arugment. In other words all the ARG_TOKENS_COUNT tokens
+ resulting from the expansion of the macro argument will
+ have the index I. Normally, each of those token should
+ have index I+J. */
+ unsigned token_index = i;
+ unsigned index;
+ if (track_macro_exp > 1)
+ token_index += j;
+
+ index = expanded_token_index (pfile, macro, src, token_index);
+ tokens_buff_add_token (buff, virt_locs,
+ macro_arg_token_iter_get_token (&from),
+ macro_arg_token_iter_get_location (&from),
+ src->src_loc, map, index);
+ macro_arg_token_iter_forward (&from);
+ }
+
+ /* With a non-empty argument on the LHS of ##, the last
+ token should be flagged PASTE_LEFT. */
+ if (src->flags & PASTE_LEFT)
+ paste_flag =
+ (const cpp_token **) tokens_buff_last_token_ptr (buff);
+ }
+ else if (CPP_PEDANTIC (pfile) && ! macro->syshdr
+ && ! CPP_OPTION (pfile, c99)
+ && ! cpp_in_system_header (pfile))
+ {
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "invoking macro %s argument %d: "
+ "empty macro arguments are undefined"
+ " in ISO C90 and ISO C++98",
+ NODE_NAME (node),
+ src->val.macro_arg.arg_no);
+ }
+
+ /* Avoid paste on RHS (even case count == 0). */
+ if (!pfile->state.in_directive && !(src->flags & PASTE_LEFT))
+ {
+ const cpp_token *t = &pfile->avoid_paste;
+ tokens_buff_add_token (buff, virt_locs,
+ t, t->src_loc, t->src_loc,
+ NULL, 0);
+ }
+
+ /* Add a new paste flag, or remove an unwanted one. */
+ if (paste_flag)
+ {
+ cpp_token *token = _cpp_temp_token (pfile);
+ token->type = (*paste_flag)->type;
+ token->val = (*paste_flag)->val;
+ if (src->flags & PASTE_LEFT)
+ token->flags = (*paste_flag)->flags | PASTE_LEFT;
+ else
+ token->flags = (*paste_flag)->flags & ~PASTE_LEFT;
+ *paste_flag = token;
+ }
+
+ i += arg_tokens_count;
+ }
+
+ if (track_macro_exp)
+ push_extended_tokens_context (pfile, node, buff, virt_locs, first,
+ tokens_buff_count (buff));
+ else
+ push_ptoken_context (pfile, node, buff, first,
+ tokens_buff_count (buff));
+
+ num_macro_tokens_counter += tokens_buff_count (buff);
+}
+
+/* Return a special padding token, with padding inherited from SOURCE. */
+static const cpp_token *
+padding_token (cpp_reader *pfile, const cpp_token *source)
+{
+ cpp_token *result = _cpp_temp_token (pfile);
+
+ result->type = CPP_PADDING;
+
+ /* Data in GCed data structures cannot be made const so far, so we
+ need a cast here. */
+ result->val.source = (cpp_token *) source;
+ result->flags = 0;
+ return result;
+}
+
+/* Get a new uninitialized context. Create a new one if we cannot
+ re-use an old one. */
+static cpp_context *
+next_context (cpp_reader *pfile)
+{
+ cpp_context *result = pfile->context->next;
+
+ if (result == 0)
+ {
+ result = XNEW (cpp_context);
+ memset (result, 0, sizeof (cpp_context));
+ result->prev = pfile->context;
+ result->next = 0;
+ pfile->context->next = result;
+ }
+
+ pfile->context = result;
+ return result;
+}
+
+/* Push a list of pointers to tokens. */
+static void
+push_ptoken_context (cpp_reader *pfile, cpp_hashnode *macro, _cpp_buff *buff,
+ const cpp_token **first, unsigned int count)
+{
+ cpp_context *context = next_context (pfile);
+
+ context->tokens_kind = TOKENS_KIND_INDIRECT;
+ context->c.macro = macro;
+ context->buff = buff;
+ FIRST (context).ptoken = first;
+ LAST (context).ptoken = first + count;
+}
+
+/* Push a list of tokens.
+
+ A NULL macro means that we should continue the current macro
+ expansion, in essence. That means that if we are currently in a
+ macro expansion context, we'll make the new pfile->context refer to
+ the current macro. */
+void
+_cpp_push_token_context (cpp_reader *pfile, cpp_hashnode *macro,
+ const cpp_token *first, unsigned int count)
+{
+ cpp_context *context;
+
+ if (macro == NULL)
+ macro = macro_of_context (pfile->context);
+
+ context = next_context (pfile);
+ context->tokens_kind = TOKENS_KIND_DIRECT;
+ context->c.macro = macro;
+ context->buff = NULL;
+ FIRST (context).token = first;
+ LAST (context).token = first + count;
+}
+
+/* Build a context containing a list of tokens as well as their
+ virtual locations and push it. TOKENS_BUFF is the buffer that
+ contains the tokens pointed to by FIRST. If TOKENS_BUFF is
+ non-NULL, it means that the context owns it, meaning that
+ _cpp_pop_context will free it as well as VIRT_LOCS_BUFF that
+ contains the virtual locations.
+
+ A NULL macro means that we should continue the current macro
+ expansion, in essence. That means that if we are currently in a
+ macro expansion context, we'll make the new pfile->context refer to
+ the current macro. */
+static void
+push_extended_tokens_context (cpp_reader *pfile,
+ cpp_hashnode *macro,
+ _cpp_buff *token_buff,
+ source_location *virt_locs,
+ const cpp_token **first,
+ unsigned int count)
+{
+ cpp_context *context;
+ macro_context *m;
+
+ if (macro == NULL)
+ macro = macro_of_context (pfile->context);
+
+ context = next_context (pfile);
+ context->tokens_kind = TOKENS_KIND_EXTENDED;
+ context->buff = token_buff;
+
+ m = XNEW (macro_context);
+ m->macro_node = macro;
+ m->virt_locs = virt_locs;
+ m->cur_virt_loc = virt_locs;
+ context->c.mc = m;
+ FIRST (context).ptoken = first;
+ LAST (context).ptoken = first + count;
+}
+
+/* Push a traditional macro's replacement text. */
+void
+_cpp_push_text_context (cpp_reader *pfile, cpp_hashnode *macro,
+ const uchar *start, size_t len)
+{
+ cpp_context *context = next_context (pfile);
+
+ context->tokens_kind = TOKENS_KIND_DIRECT;
+ context->c.macro = macro;
+ context->buff = NULL;
+ CUR (context) = start;
+ RLIMIT (context) = start + len;
+ macro->flags |= NODE_DISABLED;
+}
+
+/* Creates a buffer that holds tokens a.k.a "token buffer", usually
+ for the purpose of storing them on a cpp_context. If VIRT_LOCS is
+ non-null (which means that -ftrack-macro-expansion is on),
+ *VIRT_LOCS is set to a newly allocated buffer that is supposed to
+ hold the virtual locations of the tokens resulting from macro
+ expansion. */
+static _cpp_buff*
+tokens_buff_new (cpp_reader *pfile, size_t len,
+ source_location **virt_locs)
+{
+ size_t tokens_size = len * sizeof (cpp_token *);
+ size_t locs_size = len * sizeof (source_location);
+
+ if (virt_locs != NULL)
+ *virt_locs = XNEWVEC (source_location, locs_size);
+ return _cpp_get_buff (pfile, tokens_size);
+}
+
+/* Returns the number of tokens contained in a token buffer. The
+ buffer holds a set of cpp_token*. */
+static size_t
+tokens_buff_count (_cpp_buff *buff)
+{
+ return (BUFF_FRONT (buff) - buff->base) / sizeof (cpp_token *);
+}
+
+/* Return a pointer to the last token contained in the token buffer
+ BUFF. */
+static const cpp_token **
+tokens_buff_last_token_ptr (_cpp_buff *buff)
+{
+ return &((const cpp_token **) BUFF_FRONT (buff))[-1];
+}
+
+/* Remove the last token contained in the token buffer TOKENS_BUFF.
+ If VIRT_LOCS_BUFF is non-NULL, it should point at the buffer
+ containing the virtual locations of the tokens in TOKENS_BUFF; in
+ which case the function updates that buffer as well. */
+static inline void
+tokens_buff_remove_last_token (_cpp_buff *tokens_buff)
+
+{
+ if (BUFF_FRONT (tokens_buff) > tokens_buff->base)
+ BUFF_FRONT (tokens_buff) =
+ (unsigned char *) &((cpp_token **) BUFF_FRONT (tokens_buff))[-1];
+}
+
+/* Insert a token into the token buffer at the position pointed to by
+ DEST. Note that the buffer is not enlarged so the previous token
+ that was at *DEST is overwritten. VIRT_LOC_DEST, if non-null,
+ means -ftrack-macro-expansion is effect; it then points to where to
+ insert the virtual location of TOKEN. TOKEN is the token to
+ insert. VIRT_LOC is the virtual location of the token, i.e, the
+ location possibly encoding its locus across macro expansion. If
+ TOKEN is an argument of a function-like macro (inside a macro
+ replacement list), PARM_DEF_LOC is the spelling location of the
+ macro parameter that TOKEN is replacing, in the replacement list of
+ the macro. If TOKEN is not an argument of a function-like macro or
+ if it doesn't come from a macro expansion, then VIRT_LOC can just
+ be set to the same value as PARM_DEF_LOC. If MAP is non null, it
+ means TOKEN comes from a macro expansion and MAP is the macro map
+ associated to the macro. MACRO_TOKEN_INDEX points to the index of
+ the token in the macro map; it is not considered if MAP is NULL.
+
+ Upon successful completion this function returns the a pointer to
+ the position of the token coming right after the insertion
+ point. */
+static inline const cpp_token **
+tokens_buff_put_token_to (const cpp_token **dest,
+ source_location *virt_loc_dest,
+ const cpp_token *token,
+ source_location virt_loc,
+ source_location parm_def_loc,
+ const struct line_map *map,
+ unsigned int macro_token_index)
+{
+ source_location macro_loc = virt_loc;
+ const cpp_token **result;
+
+ if (virt_loc_dest)
+ {
+ /* -ftrack-macro-expansion is on. */
+ if (map)
+ macro_loc = linemap_add_macro_token (map, macro_token_index,
+ virt_loc, parm_def_loc);
+ *virt_loc_dest = macro_loc;
+ }
+ *dest = token;
+ result = &dest[1];
+
+ return result;
+}
+
+/* Adds a token at the end of the tokens contained in BUFFER. Note
+ that this function doesn't enlarge BUFFER when the number of tokens
+ reaches BUFFER's size; it aborts in that situation.
+
+ TOKEN is the token to append. VIRT_LOC is the virtual location of
+ the token, i.e, the location possibly encoding its locus across
+ macro expansion. If TOKEN is an argument of a function-like macro
+ (inside a macro replacement list), PARM_DEF_LOC is the location of
+ the macro parameter that TOKEN is replacing. If TOKEN doesn't come
+ from a macro expansion, then VIRT_LOC can just be set to the same
+ value as PARM_DEF_LOC. If MAP is non null, it means TOKEN comes
+ from a macro expansion and MAP is the macro map associated to the
+ macro. MACRO_TOKEN_INDEX points to the index of the token in the
+ macro map; It is not considered if MAP is NULL. If VIRT_LOCS is
+ non-null, it means -ftrack-macro-expansion is on; in which case
+ this function adds the virtual location DEF_LOC to the VIRT_LOCS
+ array, at the same index as the one of TOKEN in BUFFER. Upon
+ successful completion this function returns the a pointer to the
+ position of the token coming right after the insertion point. */
+static const cpp_token **
+tokens_buff_add_token (_cpp_buff *buffer,
+ source_location *virt_locs,
+ const cpp_token *token,
+ source_location virt_loc,
+ source_location parm_def_loc,
+ const struct line_map *map,
+ unsigned int macro_token_index)
+{
+ const cpp_token **result;
+ source_location *virt_loc_dest = NULL;
+ unsigned token_index =
+ (BUFF_FRONT (buffer) - buffer->base) / sizeof (cpp_token *);
+
+ /* Abort if we pass the end the buffer. */
+ if (BUFF_FRONT (buffer) > BUFF_LIMIT (buffer))
+ abort ();
+
+ if (virt_locs != NULL)
+ virt_loc_dest = &virt_locs[token_index];
+
+ result =
+ tokens_buff_put_token_to ((const cpp_token **) BUFF_FRONT (buffer),
+ virt_loc_dest, token, virt_loc, parm_def_loc,
+ map, macro_token_index);
+
+ BUFF_FRONT (buffer) = (unsigned char *) result;
+ return result;
+}
+
+/* Allocate space for the function-like macro argument ARG to store
+ the tokens resulting from the macro-expansion of the tokens that
+ make up ARG itself. That space is allocated in ARG->expanded and
+ needs to be freed using free. */
+static void
+alloc_expanded_arg_mem (cpp_reader *pfile, macro_arg *arg, size_t capacity)
+{
+#ifdef ENABLE_CHECKING
+ if (arg->expanded != NULL
+ || arg->expanded_virt_locs != NULL)
+ abort ();
+#endif
+ arg->expanded = XNEWVEC (const cpp_token *, capacity);
+ if (CPP_OPTION (pfile, track_macro_expansion))
+ arg->expanded_virt_locs = XNEWVEC (source_location, capacity);
+
+}
+
+/* If necessary, enlarge ARG->expanded to so that it can contain SIZE
+ tokens. */
+static void
+ensure_expanded_arg_room (cpp_reader *pfile, macro_arg *arg,
+ size_t size, size_t *expanded_capacity)
+{
+ if (size <= *expanded_capacity)
+ return;
+
+ size *= 2;
+
+ arg->expanded =
+ XRESIZEVEC (const cpp_token *, arg->expanded, size);
+ *expanded_capacity = size;
+
+ if (CPP_OPTION (pfile, track_macro_expansion))
+ {
+ if (arg->expanded_virt_locs == NULL)
+ arg->expanded_virt_locs = XNEWVEC (source_location, size);
+ else
+ arg->expanded_virt_locs = XRESIZEVEC (source_location,
+ arg->expanded_virt_locs,
+ size);
+ }
+}
+
+/* Expand an argument ARG before replacing parameters in a
+ function-like macro. This works by pushing a context with the
+ argument's tokens, and then expanding that into a temporary buffer
+ as if it were a normal part of the token stream. collect_args()
+ has terminated the argument's tokens with a CPP_EOF so that we know
+ when we have fully expanded the argument. */
+static void
+expand_arg (cpp_reader *pfile, macro_arg *arg)
+{
+ size_t capacity;
+ bool saved_warn_trad;
+ bool track_macro_exp_p = CPP_OPTION (pfile, track_macro_expansion);
+
+ if (arg->count == 0
+ || arg->expanded != NULL)
+ return;
+
+ /* Don't warn about funlike macros when pre-expanding. */
+ saved_warn_trad = CPP_WTRADITIONAL (pfile);
+ CPP_WTRADITIONAL (pfile) = 0;
+
+ /* Loop, reading in the tokens of the argument. */
+ capacity = 256;
+ alloc_expanded_arg_mem (pfile, arg, capacity);
+
+ if (track_macro_exp_p)
+ push_extended_tokens_context (pfile, NULL, NULL,
+ arg->virt_locs,
+ arg->first,
+ arg->count + 1);
+ else
+ push_ptoken_context (pfile, NULL, NULL,
+ arg->first, arg->count + 1);
+
+ for (;;)
+ {
+ const cpp_token *token;
+ source_location location;
+
+ ensure_expanded_arg_room (pfile, arg, arg->expanded_count + 1,
+ &capacity);
+
+ token = cpp_get_token_1 (pfile, &location);
+
+ if (token->type == CPP_EOF)
+ break;
+
+ set_arg_token (arg, token, location,
+ arg->expanded_count, MACRO_ARG_TOKEN_EXPANDED,
+ CPP_OPTION (pfile, track_macro_expansion));
+ arg->expanded_count++;
+ }
+
+ _cpp_pop_context (pfile);
+
+ CPP_WTRADITIONAL (pfile) = saved_warn_trad;
+}
+
+/* Returns the macro associated to the current context if we are in
+ the context a macro expansion, NULL otherwise. */
+static cpp_hashnode*
+macro_of_context (cpp_context *context)
+{
+ if (context == NULL)
+ return NULL;
+
+ return (context->tokens_kind == TOKENS_KIND_EXTENDED)
+ ? context->c.mc->macro_node
+ : context->c.macro;
+}
+
+/* Return TRUE iff we are expanding a macro or are about to start
+ expanding one. If we are effectively expanding a macro, the
+ function macro_of_context returns a pointer to the macro being
+ expanded. */
+static bool
+in_macro_expansion_p (cpp_reader *pfile)
+{
+ if (pfile == NULL)
+ return false;
+
+ return (pfile->about_to_expand_macro_p
+ || macro_of_context (pfile->context));
+}
+
+/* Pop the current context off the stack, re-enabling the macro if the
+ context represented a macro's replacement list. Initially the
+ context structure was not freed so that we can re-use it later, but
+ now we do free it to reduce peak memory consumption. */
+void
+_cpp_pop_context (cpp_reader *pfile)
+{
+ cpp_context *context = pfile->context;
+
+ /* We should not be popping the base context. */
+ if (context == &pfile->base_context)
+ abort ();
+
+ if (context->c.macro)
+ {
+ cpp_hashnode *macro;
+ if (context->tokens_kind == TOKENS_KIND_EXTENDED)
+ {
+ macro_context *mc = context->c.mc;
+ macro = mc->macro_node;
+ /* If context->buff is set, it means the life time of tokens
+ is bound to the life time of this context; so we must
+ free the tokens; that means we must free the virtual
+ locations of these tokens too. */
+ if (context->buff && mc->virt_locs)
+ {
+ free (mc->virt_locs);
+ mc->virt_locs = NULL;
+ }
+ free (mc);
+ context->c.mc = NULL;
+ }
+ else
+ macro = context->c.macro;
+
+ /* Beware that MACRO can be NULL in cases like when we are
+ called from expand_arg. In those cases, a dummy context with
+ tokens is pushed just for the purpose of walking them using
+ cpp_get_token_1. In that case, no 'macro' field is set into
+ the dummy context. */
+ if (macro != NULL
+ /* Several contiguous macro expansion contexts can be
+ associated to the same macro; that means it's the same
+ macro expansion that spans across all these (sub)
+ contexts. So we should re-enable an expansion-disabled
+ macro only when we are sure we are really out of that
+ macro expansion. */
+ && macro_of_context (context->prev) != macro)
+ macro->flags &= ~NODE_DISABLED;
+ }
+
+ if (context->buff)
+ {
+ /* Decrease memory peak consumption by freeing the memory used
+ by the context. */
+ _cpp_free_buff (context->buff);
+ }
+
+ pfile->context = context->prev;
+ /* decrease peak memory consumption by feeing the context. */
+ pfile->context->next = NULL;
+ free (context);
+}
+
+/* Return TRUE if we reached the end of the set of tokens stored in
+ CONTEXT, FALSE otherwise. */
+static inline bool
+reached_end_of_context (cpp_context *context)
+{
+ if (context->tokens_kind == TOKENS_KIND_DIRECT)
+ return FIRST (context).token == LAST (context).token;
+ else if (context->tokens_kind == TOKENS_KIND_INDIRECT
+ || context->tokens_kind == TOKENS_KIND_EXTENDED)
+ return FIRST (context).ptoken == LAST (context).ptoken;
+ else
+ abort ();
+}
+
+/* Consume the next token contained in the current context of PFILE,
+ and return it in *TOKEN. It's "full location" is returned in
+ *LOCATION. If -ftrack-macro-location is in effeect, fFull location"
+ means the location encoding the locus of the token across macro
+ expansion; otherwise it's just is the "normal" location of the
+ token which (*TOKEN)->src_loc. */
+static inline void
+consume_next_token_from_context (cpp_reader *pfile,
+ const cpp_token ** token,
+ source_location *location)
+{
+ cpp_context *c = pfile->context;
+
+ if ((c)->tokens_kind == TOKENS_KIND_DIRECT)
+ {
+ *token = FIRST (c).token;
+ *location = (*token)->src_loc;
+ FIRST (c).token++;
+ }
+ else if ((c)->tokens_kind == TOKENS_KIND_INDIRECT)
+ {
+ *token = *FIRST (c).ptoken;
+ *location = (*token)->src_loc;
+ FIRST (c).ptoken++;
+ }
+ else if ((c)->tokens_kind == TOKENS_KIND_EXTENDED)
+ {
+ macro_context *m = c->c.mc;
+ *token = *FIRST (c).ptoken;
+ if (m->virt_locs)
+ {
+ *location = *m->cur_virt_loc;
+ m->cur_virt_loc++;
+ }
+ else
+ *location = (*token)->src_loc;
+ FIRST (c).ptoken++;
+ }
+ else
+ abort ();
+}
+
+/* In the traditional mode of the preprocessor, if we are currently in
+ a directive, the location of a token must be the location of the
+ start of the directive line. This function returns the proper
+ location if we are in the traditional mode, and just returns
+ LOCATION otherwise. */
+
+static inline source_location
+maybe_adjust_loc_for_trad_cpp (cpp_reader *pfile, source_location location)
+{
+ if (CPP_OPTION (pfile, traditional))
+ {
+ if (pfile->state.in_directive)
+ return pfile->directive_line;
+ }
+ return location;
+}
+
+/* Routine to get a token as well as its location.
+
+ Macro expansions and directives are transparently handled,
+ including entering included files. Thus tokens are post-macro
+ expansion, and after any intervening directives. External callers
+ see CPP_EOF only at EOF. Internal callers also see it when meeting
+ a directive inside a macro call, when at the end of a directive and
+ state.in_directive is still 1, and at the end of argument
+ pre-expansion.
+
+ LOC is an out parameter; *LOC is set to the location "as expected
+ by the user". Please read the comment of
+ cpp_get_token_with_location to learn more about the meaning of this
+ location. */
+static const cpp_token*
+cpp_get_token_1 (cpp_reader *pfile, source_location *location)
+{
+ const cpp_token *result;
+ /* This token is a virtual token that either encodes a location
+ related to macro expansion or a spelling location. */
+ source_location virt_loc = 0;
+ /* pfile->about_to_expand_macro_p can be overriden by indirect calls
+ to functions that push macro contexts. So let's save it so that
+ we can restore it when we are about to leave this routine. */
+ bool saved_about_to_expand_macro = pfile->about_to_expand_macro_p;
+
+ for (;;)
+ {
+ cpp_hashnode *node;
+ cpp_context *context = pfile->context;
+
+ /* Context->prev == 0 <=> base context. */
+ if (!context->prev)
+ {
+ result = _cpp_lex_token (pfile);
+ virt_loc = result->src_loc;
+ }
+ else if (!reached_end_of_context (context))
+ {
+ consume_next_token_from_context (pfile, &result,
+ &virt_loc);
+ if (result->flags & PASTE_LEFT)
+ {
+ paste_all_tokens (pfile, result);
+ if (pfile->state.in_directive)
+ continue;
+ result = padding_token (pfile, result);
+ goto out;
+ }
+ }
+ else
+ {
+ if (pfile->context->c.macro)
+ ++num_expanded_macros_counter;
+ _cpp_pop_context (pfile);
+ if (pfile->state.in_directive)
+ continue;
+ result = &pfile->avoid_paste;
+ goto out;
+ }
+
+ if (pfile->state.in_directive && result->type == CPP_COMMENT)
+ continue;
+
+ if (result->type != CPP_NAME)
+ break;
+
+ node = result->val.node.node;
+
+ if (node->type != NT_MACRO || (result->flags & NO_EXPAND))
+ break;
+
+ if (!(node->flags & NODE_DISABLED))
+ {
+ int ret = 0;
+ /* If not in a macro context, and we're going to start an
+ expansion, record the location. */
+ if (!in_macro_expansion_p (pfile))
+ pfile->invocation_location = result->src_loc;
+ if (pfile->state.prevent_expansion)
+ break;
+
+ /* Conditional macros require that a predicate be evaluated
+ first. */
+ if ((node->flags & NODE_CONDITIONAL) != 0)
+ {
+ if (pfile->cb.macro_to_expand)
+ {
+ bool whitespace_after;
+ const cpp_token *peek_tok = cpp_peek_token (pfile, 0);
+
+ whitespace_after = (peek_tok->type == CPP_PADDING
+ || (peek_tok->flags & PREV_WHITE));
+ node = pfile->cb.macro_to_expand (pfile, result);
+ if (node)
+ ret = enter_macro_context (pfile, node, result,
+ virt_loc);
+ else if (whitespace_after)
+ {
+ /* If macro_to_expand hook returned NULL and it
+ ate some tokens, see if we don't need to add
+ a padding token in between this and the
+ next token. */
+ peek_tok = cpp_peek_token (pfile, 0);
+ if (peek_tok->type != CPP_PADDING
+ && (peek_tok->flags & PREV_WHITE) == 0)
+ _cpp_push_token_context (pfile, NULL,
+ padding_token (pfile,
+ peek_tok), 1);
+ }
+ }
+ }
+ else
+ ret = enter_macro_context (pfile, node, result,
+ virt_loc);
+ if (ret)
+ {
+ if (pfile->state.in_directive || ret == 2)
+ continue;
+ result = padding_token (pfile, result);
+ goto out;
+ }
+ }
+ else
+ {
+ /* Flag this token as always unexpandable. FIXME: move this
+ to collect_args()?. */
+ cpp_token *t = _cpp_temp_token (pfile);
+ t->type = result->type;
+ t->flags = result->flags | NO_EXPAND;
+ t->val = result->val;
+ result = t;
+ }
+
+ break;
+ }
+
+ out:
+ if (location != NULL)
+ {
+ if (virt_loc == 0)
+ virt_loc = result->src_loc;
+ *location = virt_loc;
+
+ if (!CPP_OPTION (pfile, track_macro_expansion)
+ && macro_of_context (pfile->context) != NULL)
+ /* We are in a macro expansion context, are not tracking
+ virtual location, but were asked to report the location
+ of the expansion point of the macro being expanded. */
+ *location = pfile->invocation_location;
+
+ *location = maybe_adjust_loc_for_trad_cpp (pfile, *location);
+ }
+
+ pfile->about_to_expand_macro_p = saved_about_to_expand_macro;
+ return result;
+}
+
+/* External routine to get a token. Also used nearly everywhere
+ internally, except for places where we know we can safely call
+ _cpp_lex_token directly, such as lexing a directive name.
+
+ Macro expansions and directives are transparently handled,
+ including entering included files. Thus tokens are post-macro
+ expansion, and after any intervening directives. External callers
+ see CPP_EOF only at EOF. Internal callers also see it when meeting
+ a directive inside a macro call, when at the end of a directive and
+ state.in_directive is still 1, and at the end of argument
+ pre-expansion. */
+const cpp_token *
+cpp_get_token (cpp_reader *pfile)
+{
+ return cpp_get_token_1 (pfile, NULL);
+}
+
+/* Like cpp_get_token, but also returns a virtual token location
+ separate from the spelling location carried by the returned token.
+
+ LOC is an out parameter; *LOC is set to the location "as expected
+ by the user". This matters when a token results from macro
+ expansion; in that case the token's spelling location indicates the
+ locus of the token in the definition of the macro but *LOC
+ virtually encodes all the other meaningful locuses associated to
+ the token.
+
+ What? virtual location? Yes, virtual location.
+
+ If the token results from macro expansion and if macro expansion
+ location tracking is enabled its virtual location encodes (at the
+ same time):
+
+ - the spelling location of the token
+
+ - the locus of the macro expansion point
+
+ - the locus of the point where the token got instantiated as part
+ of the macro expansion process.
+
+ You have to use the linemap API to get the locus you are interested
+ in from a given virtual location.
+
+ Note however that virtual locations are not necessarily ordered for
+ relations '<' and '>'. One must use the function
+ linemap_location_before_p instead of using the relational operator
+ '<'.
+
+ If macro expansion tracking is off and if the token results from
+ macro expansion the virtual location is the expansion point of the
+ macro that got expanded.
+
+ When the token doesn't result from macro expansion, the virtual
+ location is just the same thing as its spelling location. */
+
+const cpp_token *
+cpp_get_token_with_location (cpp_reader *pfile, source_location *loc)
+{
+ return cpp_get_token_1 (pfile, loc);
+}
+
+/* Returns true if we're expanding an object-like macro that was
+ defined in a system header. Just checks the macro at the top of
+ the stack. Used for diagnostic suppression. */
+int
+cpp_sys_macro_p (cpp_reader *pfile)
+{
+ cpp_hashnode *node = NULL;
+
+ if (pfile->context->tokens_kind == TOKENS_KIND_EXTENDED)
+ node = pfile->context->c.mc->macro_node;
+ else
+ node = pfile->context->c.macro;
+
+ return node && node->value.macro && node->value.macro->syshdr;
+}
+
+/* Read each token in, until end of the current file. Directives are
+ transparently processed. */
+void
+cpp_scan_nooutput (cpp_reader *pfile)
+{
+ /* Request a CPP_EOF token at the end of this file, rather than
+ transparently continuing with the including file. */
+ pfile->buffer->return_at_eof = true;
+
+ pfile->state.discarding_output++;
+ pfile->state.prevent_expansion++;
+
+ if (CPP_OPTION (pfile, traditional))
+ while (_cpp_read_logical_line_trad (pfile))
+ ;
+ else
+ while (cpp_get_token (pfile)->type != CPP_EOF)
+ ;
+
+ pfile->state.discarding_output--;
+ pfile->state.prevent_expansion--;
+}
+
+/* Step back one or more tokens obtained from the lexer. */
+void
+_cpp_backup_tokens_direct (cpp_reader *pfile, unsigned int count)
+{
+ pfile->lookaheads += count;
+ while (count--)
+ {
+ pfile->cur_token--;
+ if (pfile->cur_token == pfile->cur_run->base
+ /* Possible with -fpreprocessed and no leading #line. */
+ && pfile->cur_run->prev != NULL)
+ {
+ pfile->cur_run = pfile->cur_run->prev;
+ pfile->cur_token = pfile->cur_run->limit;
+ }
+ }
+}
+
+/* Step back one (or more) tokens. Can only step back more than 1 if
+ they are from the lexer, and not from macro expansion. */
+void
+_cpp_backup_tokens (cpp_reader *pfile, unsigned int count)
+{
+ if (pfile->context->prev == NULL)
+ _cpp_backup_tokens_direct (pfile, count);
+ else
+ {
+ if (count != 1)
+ abort ();
+ if (pfile->context->tokens_kind == TOKENS_KIND_DIRECT)
+ FIRST (pfile->context).token--;
+ else if (pfile->context->tokens_kind == TOKENS_KIND_INDIRECT)
+ FIRST (pfile->context).ptoken--;
+ else if (pfile->context->tokens_kind == TOKENS_KIND_EXTENDED)
+ {
+ FIRST (pfile->context).ptoken--;
+ if (pfile->context->c.macro)
+ {
+ macro_context *m = pfile->context->c.mc;
+ m->cur_virt_loc--;
+#ifdef ENABLE_CHECKING
+ if (m->cur_virt_loc < m->virt_locs)
+ abort ();
+#endif
+ }
+ else
+ abort ();
+ }
+ else
+ abort ();
+ }
+}
+
+/* #define directive parsing and handling. */
+
+/* Returns nonzero if a macro redefinition warning is required. */
+static bool
+warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node,
+ const cpp_macro *macro2)
+{
+ const cpp_macro *macro1;
+ unsigned int i;
+
+ /* Some redefinitions need to be warned about regardless. */
+ if (node->flags & NODE_WARN)
+ return true;
+
+ /* Suppress warnings for builtins that lack the NODE_WARN flag. */
+ if (node->flags & NODE_BUILTIN)
+ {
+ if (!pfile->cb.user_builtin_macro
+ || !pfile->cb.user_builtin_macro (pfile, node))
+ return false;
+ }
+
+ /* Redefinitions of conditional (context-sensitive) macros, on
+ the other hand, must be allowed silently. */
+ if (node->flags & NODE_CONDITIONAL)
+ return false;
+
+ /* Redefinition of a macro is allowed if and only if the old and new
+ definitions are the same. (6.10.3 paragraph 2). */
+ macro1 = node->value.macro;
+
+ /* Don't check count here as it can be different in valid
+ traditional redefinitions with just whitespace differences. */
+ if (macro1->paramc != macro2->paramc
+ || macro1->fun_like != macro2->fun_like
+ || macro1->variadic != macro2->variadic)
+ return true;
+
+ /* Check parameter spellings. */
+ for (i = 0; i < macro1->paramc; i++)
+ if (macro1->params[i] != macro2->params[i])
+ return true;
+
+ /* Check the replacement text or tokens. */
+ if (CPP_OPTION (pfile, traditional))
+ return _cpp_expansions_different_trad (macro1, macro2);
+
+ if (macro1->count != macro2->count)
+ return true;
+
+ for (i = 0; i < macro1->count; i++)
+ if (!_cpp_equiv_tokens (&macro1->exp.tokens[i], &macro2->exp.tokens[i]))
+ return true;
+
+ return false;
+}
+
+/* Free the definition of hashnode H. */
+void
+_cpp_free_definition (cpp_hashnode *h)
+{
+ /* Macros and assertions no longer have anything to free. */
+ h->type = NT_VOID;
+ /* Clear builtin flag in case of redefinition. */
+ h->flags &= ~(NODE_BUILTIN | NODE_DISABLED | NODE_USED);
+}
+
+/* Save parameter NODE to the parameter list of macro MACRO. Returns
+ zero on success, nonzero if the parameter is a duplicate. */
+bool
+_cpp_save_parameter (cpp_reader *pfile, cpp_macro *macro, cpp_hashnode *node)
+{
+ unsigned int len;
+ /* Constraint 6.10.3.6 - duplicate parameter names. */
+ if (node->flags & NODE_MACRO_ARG)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "duplicate macro parameter \"%s\"",
+ NODE_NAME (node));
+ return true;
+ }
+
+ if (BUFF_ROOM (pfile->a_buff)
+ < (macro->paramc + 1) * sizeof (cpp_hashnode *))
+ _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (cpp_hashnode *));
+
+ ((cpp_hashnode **) BUFF_FRONT (pfile->a_buff))[macro->paramc++] = node;
+ node->flags |= NODE_MACRO_ARG;
+ len = macro->paramc * sizeof (union _cpp_hashnode_value);
+ if (len > pfile->macro_buffer_len)
+ {
+ pfile->macro_buffer = XRESIZEVEC (unsigned char, pfile->macro_buffer,
+ len);
+ pfile->macro_buffer_len = len;
+ }
+ ((union _cpp_hashnode_value *) pfile->macro_buffer)[macro->paramc - 1]
+ = node->value;
+
+ node->value.arg_index = macro->paramc;
+ return false;
+}
+
+/* Check the syntax of the parameters in a MACRO definition. Returns
+ false if an error occurs. */
+static bool
+parse_params (cpp_reader *pfile, cpp_macro *macro)
+{
+ unsigned int prev_ident = 0;
+
+ for (;;)
+ {
+ const cpp_token *token = _cpp_lex_token (pfile);
+
+ switch (token->type)
+ {
+ default:
+ /* Allow/ignore comments in parameter lists if we are
+ preserving comments in macro expansions. */
+ if (token->type == CPP_COMMENT
+ && ! CPP_OPTION (pfile, discard_comments_in_macro_exp))
+ continue;
+
+ cpp_error (pfile, CPP_DL_ERROR,
+ "\"%s\" may not appear in macro parameter list",
+ cpp_token_as_text (pfile, token));
+ return false;
+
+ case CPP_NAME:
+ if (prev_ident)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "macro parameters must be comma-separated");
+ return false;
+ }
+ prev_ident = 1;
+
+ if (_cpp_save_parameter (pfile, macro, token->val.node.node))
+ return false;
+ continue;
+
+ case CPP_CLOSE_PAREN:
+ if (prev_ident || macro->paramc == 0)
+ return true;
+
+ /* Fall through to pick up the error. */
+ case CPP_COMMA:
+ if (!prev_ident)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, "parameter name missing");
+ return false;
+ }
+ prev_ident = 0;
+ continue;
+
+ case CPP_ELLIPSIS:
+ macro->variadic = 1;
+ if (!prev_ident)
+ {
+ _cpp_save_parameter (pfile, macro,
+ pfile->spec_nodes.n__VA_ARGS__);
+ pfile->state.va_args_ok = 1;
+ if (! CPP_OPTION (pfile, c99)
+ && CPP_OPTION (pfile, cpp_pedantic)
+ && CPP_OPTION (pfile, warn_variadic_macros))
+ cpp_pedwarning
+ (pfile, CPP_W_VARIADIC_MACROS,
+ "anonymous variadic macros were introduced in C99");
+ }
+ else if (CPP_OPTION (pfile, cpp_pedantic)
+ && CPP_OPTION (pfile, warn_variadic_macros))
+ cpp_pedwarning (pfile, CPP_W_VARIADIC_MACROS,
+ "ISO C does not permit named variadic macros");
+
+ /* We're at the end, and just expect a closing parenthesis. */
+ token = _cpp_lex_token (pfile);
+ if (token->type == CPP_CLOSE_PAREN)
+ return true;
+ /* Fall through. */
+
+ case CPP_EOF:
+ cpp_error (pfile, CPP_DL_ERROR, "missing ')' in macro parameter list");
+ return false;
+ }
+ }
+}
+
+/* Allocate room for a token from a macro's replacement list. */
+static cpp_token *
+alloc_expansion_token (cpp_reader *pfile, cpp_macro *macro)
+{
+ if (BUFF_ROOM (pfile->a_buff) < (macro->count + 1) * sizeof (cpp_token))
+ _cpp_extend_buff (pfile, &pfile->a_buff, sizeof (cpp_token));
+
+ return &((cpp_token *) BUFF_FRONT (pfile->a_buff))[macro->count++];
+}
+
+/* Lex a token from the expansion of MACRO, but mark parameters as we
+ find them and warn of traditional stringification. */
+static cpp_token *
+lex_expansion_token (cpp_reader *pfile, cpp_macro *macro)
+{
+ cpp_token *token, *saved_cur_token;
+
+ saved_cur_token = pfile->cur_token;
+ pfile->cur_token = alloc_expansion_token (pfile, macro);
+ token = _cpp_lex_direct (pfile);
+ pfile->cur_token = saved_cur_token;
+
+ /* Is this a parameter? */
+ if (token->type == CPP_NAME
+ && (token->val.node.node->flags & NODE_MACRO_ARG) != 0)
+ {
+ token->type = CPP_MACRO_ARG;
+ token->val.macro_arg.arg_no = token->val.node.node->value.arg_index;
+ }
+ else if (CPP_WTRADITIONAL (pfile) && macro->paramc > 0
+ && (token->type == CPP_STRING || token->type == CPP_CHAR))
+ check_trad_stringification (pfile, macro, &token->val.str);
+
+ return token;
+}
+
+static bool
+create_iso_definition (cpp_reader *pfile, cpp_macro *macro)
+{
+ cpp_token *token;
+ const cpp_token *ctoken;
+ bool following_paste_op = false;
+ const char *paste_op_error_msg =
+ N_("'##' cannot appear at either end of a macro expansion");
+ unsigned int num_extra_tokens = 0;
+
+ /* Get the first token of the expansion (or the '(' of a
+ function-like macro). */
+ ctoken = _cpp_lex_token (pfile);
+
+ if (ctoken->type == CPP_OPEN_PAREN && !(ctoken->flags & PREV_WHITE))
+ {
+ bool ok = parse_params (pfile, macro);
+ macro->params = (cpp_hashnode **) BUFF_FRONT (pfile->a_buff);
+ if (!ok)
+ return false;
+
+ /* Success. Commit or allocate the parameter array. */
+ if (pfile->hash_table->alloc_subobject)
+ {
+ cpp_hashnode **params =
+ (cpp_hashnode **) pfile->hash_table->alloc_subobject
+ (sizeof (cpp_hashnode *) * macro->paramc);
+ memcpy (params, macro->params,
+ sizeof (cpp_hashnode *) * macro->paramc);
+ macro->params = params;
+ }
+ else
+ BUFF_FRONT (pfile->a_buff) = (uchar *) &macro->params[macro->paramc];
+ macro->fun_like = 1;
+ }
+ else if (ctoken->type != CPP_EOF && !(ctoken->flags & PREV_WHITE))
+ {
+ /* While ISO C99 requires whitespace before replacement text
+ in a macro definition, ISO C90 with TC1 allows there characters
+ from the basic source character set. */
+ if (CPP_OPTION (pfile, c99))
+ cpp_error (pfile, CPP_DL_PEDWARN,
+ "ISO C99 requires whitespace after the macro name");
+ else
+ {
+ int warntype = CPP_DL_WARNING;
+ switch (ctoken->type)
+ {
+ case CPP_ATSIGN:
+ case CPP_AT_NAME:
+ case CPP_OBJC_STRING:
+ /* '@' is not in basic character set. */
+ warntype = CPP_DL_PEDWARN;
+ break;
+ case CPP_OTHER:
+ /* Basic character set sans letters, digits and _. */
+ if (strchr ("!\"#%&'()*+,-./:;<=>?[\\]^{|}~",
+ ctoken->val.str.text[0]) == NULL)
+ warntype = CPP_DL_PEDWARN;
+ break;
+ default:
+ /* All other tokens start with a character from basic
+ character set. */
+ break;
+ }
+ cpp_error (pfile, warntype,
+ "missing whitespace after the macro name");
+ }
+ }
+
+ if (macro->fun_like)
+ token = lex_expansion_token (pfile, macro);
+ else
+ {
+ token = alloc_expansion_token (pfile, macro);
+ *token = *ctoken;
+ }
+
+ for (;;)
+ {
+ /* Check the stringifying # constraint 6.10.3.2.1 of
+ function-like macros when lexing the subsequent token. */
+ if (macro->count > 1 && token[-1].type == CPP_HASH && macro->fun_like)
+ {
+ if (token->type == CPP_MACRO_ARG)
+ {
+ if (token->flags & PREV_WHITE)
+ token->flags |= SP_PREV_WHITE;
+ if (token[-1].flags & DIGRAPH)
+ token->flags |= SP_DIGRAPH;
+ token->flags &= ~PREV_WHITE;
+ token->flags |= STRINGIFY_ARG;
+ token->flags |= token[-1].flags & PREV_WHITE;
+ token[-1] = token[0];
+ macro->count--;
+ }
+ /* Let assembler get away with murder. */
+ else if (CPP_OPTION (pfile, lang) != CLK_ASM)
+ {
+ cpp_error (pfile, CPP_DL_ERROR,
+ "'#' is not followed by a macro parameter");
+ return false;
+ }
+ }
+
+ if (token->type == CPP_EOF)
+ {
+ /* Paste operator constraint 6.10.3.3.1:
+ Token-paste ##, can appear in both object-like and
+ function-like macros, but not at the end. */
+ if (following_paste_op)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ return false;
+ }
+ break;
+ }
+
+ /* Paste operator constraint 6.10.3.3.1. */
+ if (token->type == CPP_PASTE)
+ {
+ /* Token-paste ##, can appear in both object-like and
+ function-like macros, but not at the beginning. */
+ if (macro->count == 1)
+ {
+ cpp_error (pfile, CPP_DL_ERROR, paste_op_error_msg);
+ return false;
+ }
+
+ if (token[-1].flags & PASTE_LEFT)
+ {
+ macro->extra_tokens = 1;
+ num_extra_tokens++;
+ token->val.token_no = macro->count - 1;
+ }
+ else
+ {
+ --macro->count;
+ token[-1].flags |= PASTE_LEFT;
+ if (token->flags & DIGRAPH)
+ token[-1].flags |= SP_DIGRAPH;
+ if (token->flags & PREV_WHITE)
+ token[-1].flags |= SP_PREV_WHITE;
+ }
+ }
+
+ following_paste_op = (token->type == CPP_PASTE);
+ token = lex_expansion_token (pfile, macro);
+ }
+
+ macro->exp.tokens = (cpp_token *) BUFF_FRONT (pfile->a_buff);
+ macro->traditional = 0;
+
+ /* Don't count the CPP_EOF. */
+ macro->count--;
+
+ /* Clear whitespace on first token for warn_of_redefinition(). */
+ if (macro->count)
+ macro->exp.tokens[0].flags &= ~PREV_WHITE;
+
+ /* Commit or allocate the memory. */
+ if (pfile->hash_table->alloc_subobject)
+ {
+ cpp_token *tokns =
+ (cpp_token *) pfile->hash_table->alloc_subobject (sizeof (cpp_token)
+ * macro->count);
+ if (num_extra_tokens)
+ {
+ /* Place second and subsequent ## or %:%: tokens in
+ sequences of consecutive such tokens at the end of the
+ list to preserve information about where they appear, how
+ they are spelt and whether they are preceded by
+ whitespace without otherwise interfering with macro
+ expansion. */
+ cpp_token *normal_dest = tokns;
+ cpp_token *extra_dest = tokns + macro->count - num_extra_tokens;
+ unsigned int i;
+ for (i = 0; i < macro->count; i++)
+ {
+ if (macro->exp.tokens[i].type == CPP_PASTE)
+ *extra_dest++ = macro->exp.tokens[i];
+ else
+ *normal_dest++ = macro->exp.tokens[i];
+ }
+ }
+ else
+ memcpy (tokns, macro->exp.tokens, sizeof (cpp_token) * macro->count);
+ macro->exp.tokens = tokns;
+ }
+ else
+ BUFF_FRONT (pfile->a_buff) = (uchar *) &macro->exp.tokens[macro->count];
+
+ return true;
+}
+
+/* Parse a macro and save its expansion. Returns nonzero on success. */
+bool
+_cpp_create_definition (cpp_reader *pfile, cpp_hashnode *node)
+{
+ cpp_macro *macro;
+ unsigned int i;
+ bool ok;
+
+ if (pfile->hash_table->alloc_subobject)
+ macro = (cpp_macro *) pfile->hash_table->alloc_subobject
+ (sizeof (cpp_macro));
+ else
+ macro = (cpp_macro *) _cpp_aligned_alloc (pfile, sizeof (cpp_macro));
+ macro->line = pfile->directive_line;
+ macro->params = 0;
+ macro->paramc = 0;
+ macro->variadic = 0;
+ macro->used = !CPP_OPTION (pfile, warn_unused_macros);
+ macro->count = 0;
+ macro->fun_like = 0;
+ macro->extra_tokens = 0;
+ /* To suppress some diagnostics. */
+ macro->syshdr = pfile->buffer && pfile->buffer->sysp != 0;
+
+ if (CPP_OPTION (pfile, traditional))
+ ok = _cpp_create_trad_definition (pfile, macro);
+ else
+ {
+ ok = create_iso_definition (pfile, macro);
+
+ /* We set the type for SEEN_EOL() in directives.c.
+
+ Longer term we should lex the whole line before coming here,
+ and just copy the expansion. */
+
+ /* Stop the lexer accepting __VA_ARGS__. */
+ pfile->state.va_args_ok = 0;
+ }
+
+ /* Clear the fast argument lookup indices. */
+ for (i = macro->paramc; i-- > 0; )
+ {
+ struct cpp_hashnode *node = macro->params[i];
+ node->flags &= ~ NODE_MACRO_ARG;
+ node->value = ((union _cpp_hashnode_value *) pfile->macro_buffer)[i];
+ }
+
+ if (!ok)
+ return ok;
+
+ if (node->type == NT_MACRO)
+ {
+ if (CPP_OPTION (pfile, warn_unused_macros))
+ _cpp_warn_if_unused_macro (pfile, node, NULL);
+
+ if (warn_of_redefinition (pfile, node, macro))
+ {
+ const int reason = (node->flags & NODE_BUILTIN)
+ ? CPP_W_BUILTIN_MACRO_REDEFINED : CPP_W_NONE;
+ bool warned;
+
+ warned = cpp_pedwarning_with_line (pfile, reason,
+ pfile->directive_line, 0,
+ "\"%s\" redefined",
+ NODE_NAME (node));
+
+ if (warned && node->type == NT_MACRO && !(node->flags & NODE_BUILTIN))
+ cpp_error_with_line (pfile, CPP_DL_NOTE,
+ node->value.macro->line, 0,
+ "this is the location of the previous definition");
+ }
+ }
+
+ if (node->type != NT_VOID)
+ _cpp_free_definition (node);
+
+ /* Enter definition in hash table. */
+ node->type = NT_MACRO;
+ node->value.macro = macro;
+ if (! ustrncmp (NODE_NAME (node), DSC ("__STDC_"))
+ && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_FORMAT_MACROS")
+ /* __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS are mentioned
+ in the C standard, as something that one must use in C++.
+ However DR#593 indicates that these aren't actually mentioned
+ in the C++ standard. We special-case them anyway. */
+ && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_LIMIT_MACROS")
+ && ustrcmp (NODE_NAME (node), (const uchar *) "__STDC_CONSTANT_MACROS"))
+ node->flags |= NODE_WARN;
+
+ /* If user defines one of the conditional macros, remove the
+ conditional flag */
+ node->flags &= ~NODE_CONDITIONAL;
+
+ return ok;
+}
+
+/* Warn if a token in STRING matches one of a function-like MACRO's
+ parameters. */
+static void
+check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro,
+ const cpp_string *string)
+{
+ unsigned int i, len;
+ const uchar *p, *q, *limit;
+
+ /* Loop over the string. */
+ limit = string->text + string->len - 1;
+ for (p = string->text + 1; p < limit; p = q)
+ {
+ /* Find the start of an identifier. */
+ while (p < limit && !is_idstart (*p))
+ p++;
+
+ /* Find the end of the identifier. */
+ q = p;
+ while (q < limit && is_idchar (*q))
+ q++;
+
+ len = q - p;
+
+ /* Loop over the function macro arguments to see if the
+ identifier inside the string matches one of them. */
+ for (i = 0; i < macro->paramc; i++)
+ {
+ const cpp_hashnode *node = macro->params[i];
+
+ if (NODE_LEN (node) == len
+ && !memcmp (p, NODE_NAME (node), len))
+ {
+ cpp_error (pfile, CPP_DL_WARNING,
+ "macro argument \"%s\" would be stringified in traditional C",
+ NODE_NAME (node));
+ break;
+ }
+ }
+ }
+}
+
+/* Returns the name, arguments and expansion of a macro, in a format
+ suitable to be read back in again, and therefore also for DWARF 2
+ debugging info. e.g. "PASTE(X, Y) X ## Y", or "MACNAME EXPANSION".
+ Caller is expected to generate the "#define" bit if needed. The
+ returned text is temporary, and automatically freed later. */
+const unsigned char *
+cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node)
+{
+ unsigned int i, len;
+ const cpp_macro *macro;
+ unsigned char *buffer;
+
+ if (node->type != NT_MACRO || (node->flags & NODE_BUILTIN))
+ {
+ if (node->type != NT_MACRO
+ || !pfile->cb.user_builtin_macro
+ || !pfile->cb.user_builtin_macro (pfile, node))
+ {
+ cpp_error (pfile, CPP_DL_ICE,
+ "invalid hash type %d in cpp_macro_definition",
+ node->type);
+ return 0;
+ }
+ }
+
+ macro = node->value.macro;
+ /* Calculate length. */
+ len = NODE_LEN (node) + 2; /* ' ' and NUL. */
+ if (macro->fun_like)
+ {
+ len += 4; /* "()" plus possible final ".." of named
+ varargs (we have + 1 below). */
+ for (i = 0; i < macro->paramc; i++)
+ len += NODE_LEN (macro->params[i]) + 1; /* "," */
+ }
+
+ /* This should match below where we fill in the buffer. */
+ if (CPP_OPTION (pfile, traditional))
+ len += _cpp_replacement_text_len (macro);
+ else
+ {
+ unsigned int count = macro_real_token_count (macro);
+ for (i = 0; i < count; i++)
+ {
+ cpp_token *token = &macro->exp.tokens[i];
+
+ if (token->type == CPP_MACRO_ARG)
+ len += NODE_LEN (macro->params[token->val.macro_arg.arg_no - 1]);
+ else
+ len += cpp_token_len (token);
+
+ if (token->flags & STRINGIFY_ARG)
+ len++; /* "#" */
+ if (token->flags & PASTE_LEFT)
+ len += 3; /* " ##" */
+ if (token->flags & PREV_WHITE)
+ len++; /* " " */
+ }
+ }
+
+ if (len > pfile->macro_buffer_len)
+ {
+ pfile->macro_buffer = XRESIZEVEC (unsigned char,
+ pfile->macro_buffer, len);
+ pfile->macro_buffer_len = len;
+ }
+
+ /* Fill in the buffer. Start with the macro name. */
+ buffer = pfile->macro_buffer;
+ memcpy (buffer, NODE_NAME (node), NODE_LEN (node));
+ buffer += NODE_LEN (node);
+
+ /* Parameter names. */
+ if (macro->fun_like)
+ {
+ *buffer++ = '(';
+ for (i = 0; i < macro->paramc; i++)
+ {
+ cpp_hashnode *param = macro->params[i];
+
+ if (param != pfile->spec_nodes.n__VA_ARGS__)
+ {
+ memcpy (buffer, NODE_NAME (param), NODE_LEN (param));
+ buffer += NODE_LEN (param);
+ }
+
+ if (i + 1 < macro->paramc)
+ /* Don't emit a space after the comma here; we're trying
+ to emit a Dwarf-friendly definition, and the Dwarf spec
+ forbids spaces in the argument list. */
+ *buffer++ = ',';
+ else if (macro->variadic)
+ *buffer++ = '.', *buffer++ = '.', *buffer++ = '.';
+ }
+ *buffer++ = ')';
+ }
+
+ /* The Dwarf spec requires a space after the macro name, even if the
+ definition is the empty string. */
+ *buffer++ = ' ';
+
+ if (CPP_OPTION (pfile, traditional))
+ buffer = _cpp_copy_replacement_text (macro, buffer);
+ else if (macro->count)
+ /* Expansion tokens. */
+ {
+ unsigned int count = macro_real_token_count (macro);
+ for (i = 0; i < count; i++)
+ {
+ cpp_token *token = &macro->exp.tokens[i];
+
+ if (token->flags & PREV_WHITE)
+ *buffer++ = ' ';
+ if (token->flags & STRINGIFY_ARG)
+ *buffer++ = '#';
+
+ if (token->type == CPP_MACRO_ARG)
+ {
+ memcpy (buffer,
+ NODE_NAME (macro->params[token->val.macro_arg.arg_no - 1]),
+ NODE_LEN (macro->params[token->val.macro_arg.arg_no - 1]));
+ buffer += NODE_LEN (macro->params[token->val.macro_arg.arg_no - 1]);
+ }
+ else
+ buffer = cpp_spell_token (pfile, token, buffer, false);
+
+ if (token->flags & PASTE_LEFT)
+ {
+ *buffer++ = ' ';
+ *buffer++ = '#';
+ *buffer++ = '#';
+ /* Next has PREV_WHITE; see _cpp_create_definition. */
+ }
+ }
+ }
+
+ *buffer = '\0';
+ return pfile->macro_buffer;
+}
diff --git a/gcc-4.9/libcpp/makeucnid.c b/gcc-4.9/libcpp/makeucnid.c
new file mode 100644
index 000000000..86243c548
--- /dev/null
+++ b/gcc-4.9/libcpp/makeucnid.c
@@ -0,0 +1,452 @@
+/* Make ucnid.h from various sources.
+ Copyright (C) 2005-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* Run this program as
+ ./makeucnid ucnid.tab UnicodeData.txt DerivedNormalizationProps.txt \
+ > ucnid.h
+*/
+
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+enum {
+ C99 = 1,
+ CXX = 2,
+ N99 = 4,
+ C11 = 8,
+ N11 = 16,
+ all_languages = C99 | CXX | C11,
+ not_NFC = 32,
+ not_NFKC = 64,
+ maybe_not_NFC = 128
+};
+
+#define NUM_CODE_POINTS 0x110000
+#define MAX_CODE_POINT 0x10ffff
+
+static unsigned flags[NUM_CODE_POINTS];
+static unsigned int all_decomp[NUM_CODE_POINTS][2];
+static unsigned int decomp[NUM_CODE_POINTS][2];
+static unsigned char combining_value[NUM_CODE_POINTS];
+
+/* Die! */
+
+static void
+fail (const char *s)
+{
+ fprintf (stderr, "%s\n", s);
+ exit (1);
+}
+
+/* Read ucnid.tab and set the flags for language versions in header[]. */
+
+static void
+read_ucnid (const char *fname)
+{
+ FILE *f = fopen (fname, "r");
+ unsigned fl = 0;
+
+ if (!f)
+ fail ("opening ucnid.tab");
+ for (;;)
+ {
+ char line[256];
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ if (strcmp (line, "[C99]\n") == 0)
+ fl = C99;
+ else if (strcmp (line, "[C99DIG]\n") == 0)
+ fl = C99|N99;
+ else if (strcmp (line, "[CXX]\n") == 0)
+ fl = CXX;
+ else if (strcmp (line, "[C11]\n") == 0)
+ fl = C11;
+ else if (strcmp (line, "[C11NOSTART]\n") == 0)
+ fl = C11|N11;
+ else if (isxdigit (line[0]))
+ {
+ char *l = line;
+ while (*l)
+ {
+ unsigned long start, end;
+ char *endptr;
+ start = strtoul (l, &endptr, 16);
+ if (endptr == l || (*endptr != '-' && ! isspace (*endptr)))
+ fail ("parsing ucnid.tab [1]");
+ l = endptr;
+ if (*l != '-')
+ end = start;
+ else
+ {
+ end = strtoul (l + 1, &endptr, 16);
+ if (end < start)
+ fail ("parsing ucnid.tab, end before start");
+ l = endptr;
+ if (! isspace (*l))
+ fail ("parsing ucnid.tab, junk after range");
+ }
+ while (isspace (*l))
+ l++;
+ if (end > MAX_CODE_POINT)
+ fail ("parsing ucnid.tab, end too large");
+ while (start <= end)
+ flags[start++] |= fl;
+ }
+ }
+ }
+ if (ferror (f))
+ fail ("reading ucnid.tab");
+ fclose (f);
+}
+
+/* Read UnicodeData.txt and fill in the 'decomp' table to be the
+ decompositions of characters for which both the character
+ decomposed and all the code points in the decomposition are valid
+ for some supported language version, and the 'all_decomp' table to
+ be the decompositions of all characters without those
+ constraints. */
+
+static void
+read_table (char *fname)
+{
+ FILE * f = fopen (fname, "r");
+
+ if (!f)
+ fail ("opening UnicodeData.txt");
+ for (;;)
+ {
+ char line[256];
+ unsigned long codepoint, this_decomp[4];
+ char *l;
+ int i, j;
+ int decomp_useful;
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ codepoint = strtoul (line, &l, 16);
+ if (l == line || *l != ';')
+ fail ("parsing UnicodeData.txt, reading code point");
+ if (codepoint > MAX_CODE_POINT)
+ fail ("parsing UnicodeData.txt, code point too large");
+
+ do {
+ l++;
+ } while (*l != ';');
+ /* Category value. */
+ do {
+ l++;
+ } while (*l != ';');
+ /* Canonical combining class; in NFC/NFKC, they must be increasing
+ (or zero). */
+ if (! isdigit (*++l))
+ fail ("parsing UnicodeData.txt, combining class not number");
+ combining_value[codepoint] = strtoul (l, &l, 10);
+ if (*l++ != ';')
+ fail ("parsing UnicodeData.txt, junk after combining class");
+
+ /* Skip over bidi value. */
+ do {
+ l++;
+ } while (*l != ';');
+
+ /* Decomposition mapping. */
+ decomp_useful = flags[codepoint];
+ if (*++l == '<') /* Compatibility mapping. */
+ continue;
+ for (i = 0; i < 4; i++)
+ {
+ if (*l == ';')
+ break;
+ if (!isxdigit (*l))
+ fail ("parsing UnicodeData.txt, decomposition format");
+ this_decomp[i] = strtoul (l, &l, 16);
+ decomp_useful &= flags[this_decomp[i]];
+ while (isspace (*l))
+ l++;
+ }
+ if (i > 2) /* Decomposition too long. */
+ fail ("parsing UnicodeData.txt, decomposition too long");
+ for (j = 0; j < i; j++)
+ all_decomp[codepoint][j] = this_decomp[j];
+ if ((flags[codepoint] & all_languages) && decomp_useful)
+ while (--i >= 0)
+ decomp[codepoint][i] = this_decomp[i];
+ }
+ if (ferror (f))
+ fail ("reading UnicodeData.txt");
+ fclose (f);
+}
+
+/* Read DerivedNormalizationProps.txt and set the flags that say whether
+ a character is in NFC, NFKC, or is context-dependent. */
+
+static void
+read_derived (const char *fname)
+{
+ FILE * f = fopen (fname, "r");
+
+ if (!f)
+ fail ("opening DerivedNormalizationProps.txt");
+ for (;;)
+ {
+ char line[256];
+ unsigned long start, end;
+ char *l;
+ bool not_NFC_p, not_NFKC_p, maybe_not_NFC_p;
+
+ if (!fgets (line, sizeof (line), f))
+ break;
+ not_NFC_p = (strstr (line, "; NFC_QC; N") != NULL);
+ not_NFKC_p = (strstr (line, "; NFKC_QC; N") != NULL);
+ maybe_not_NFC_p = (strstr (line, "; NFC_QC; M") != NULL);
+ if (! not_NFC_p && ! not_NFKC_p && ! maybe_not_NFC_p)
+ continue;
+
+ start = strtoul (line, &l, 16);
+ if (l == line)
+ fail ("parsing DerivedNormalizationProps.txt, reading start");
+ if (start > MAX_CODE_POINT)
+ fail ("parsing DerivedNormalizationProps.txt, code point too large");
+ if (*l == '.' && l[1] == '.')
+ end = strtoul (l + 2, &l, 16);
+ else
+ end = start;
+
+ while (start <= end)
+ flags[start++] |= ((not_NFC_p ? not_NFC : 0)
+ | (not_NFKC_p ? not_NFKC : 0)
+ | (maybe_not_NFC_p ? maybe_not_NFC : 0)
+ );
+ }
+ if (ferror (f))
+ fail ("reading DerivedNormalizationProps.txt");
+ fclose (f);
+}
+
+/* Write out the table.
+ The table consists of two words per entry. The first word is the flags
+ for the unicode code points up to and including the second word. */
+
+static void
+write_table (void)
+{
+ unsigned i;
+ unsigned last_flag = flags[0];
+ bool really_safe = decomp[0][0] == 0;
+ unsigned char last_combine = combining_value[0];
+
+ printf ("static const struct ucnrange ucnranges[] = {\n");
+
+ for (i = 1; i <= NUM_CODE_POINTS; i++)
+ if (i == NUM_CODE_POINTS
+ || (flags[i] != last_flag && ((flags[i] | last_flag) & all_languages))
+ || really_safe != (decomp[i][0] == 0)
+ || combining_value[i] != last_combine)
+ {
+ printf ("{ %s|%s|%s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
+ last_flag & C99 ? "C99" : " 0",
+ last_flag & N99 ? "N99" : " 0",
+ last_flag & CXX ? "CXX" : " 0",
+ last_flag & C11 ? "C11" : " 0",
+ last_flag & N11 ? "N11" : " 0",
+ really_safe ? "CID" : " 0",
+ last_flag & not_NFC ? " 0" : "NFC",
+ last_flag & not_NFKC ? " 0" : "NKC",
+ last_flag & maybe_not_NFC ? "CTX" : " 0",
+ combining_value[i - 1],
+ i - 1);
+ last_flag = flags[i];
+ last_combine = combining_value[0];
+ really_safe = decomp[i][0] == 0;
+ }
+
+ printf ("};\n");
+}
+
+/* Return whether a given character is valid in an identifier for some
+ supported language, either as itself or as a UCN. */
+
+static bool
+char_id_valid (unsigned int c)
+{
+ return ((flags[c] & all_languages)
+ || (c == 0x24)
+ || (c >= 0x30 && c <= 0x39)
+ || (c >= 0x41 && c <= 0x5a)
+ || (c >= 0x61 && c <= 0x7a));
+}
+
+/* Write out the switch statement over characters for which it is
+ context-dependent whether they are in NFC. */
+
+static void
+write_context_switch (void)
+{
+ unsigned i;
+ printf ("static bool\n"
+ "check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)\n"
+ "{\n"
+ " switch (c)\n"
+ " {\n");
+ for (i = 0; i < NUM_CODE_POINTS; i++)
+ {
+ bool found_case = false;
+ unsigned j;
+ if (!(flags[i] & all_languages) || !(flags[i] & maybe_not_NFC))
+ continue;
+ if ((i >= 0x1161 && i <= 0x1175) || (i >= 0x11A8 && i <= 0x11C2))
+ continue; /* Hangul handled algorithmically. */
+ printf (" case %#06x:\n"
+ " switch (p)\n"
+ "\t{\n", i);
+ /* If an NFC starter character decomposes with this character I
+ as the second character and an NFC starter character S as the
+ first character, that latter character as a previous
+ character means this character is not NFC. Furthermore, any
+ NFC starter character K made by a series of compositions of S
+ with combining characters whose combining class is greater
+ than that of I also means this character is not NFC. */
+ for (j = 0; j < NUM_CODE_POINTS; j++)
+ {
+ unsigned s, k;
+ if (all_decomp[j][1] != i)
+ continue;
+ s = all_decomp[j][0];
+ if (combining_value[s] != 0 || (flags[s] & not_NFC) != 0)
+ continue;
+ if (char_id_valid (s))
+ {
+ found_case = true;
+ printf ("\tcase %#06x:\n", s);
+ }
+ for (k = 0; k < NUM_CODE_POINTS; k++)
+ {
+ unsigned t = k;
+ if (k == s || !char_id_valid (k))
+ continue;
+ while (all_decomp[t][1] != 0
+ && combining_value[all_decomp[t][1]] > combining_value[i])
+ {
+ if (combining_value[t] != 0 || (flags[t] & not_NFC) != 0)
+ break;
+ t = all_decomp[t][0];
+ }
+ if (t == s)
+ {
+ found_case = true;
+ printf ("\tcase %#06x:\n", k);
+ }
+ }
+ }
+ if (found_case)
+ printf ("\t return false;\n");
+ else
+ printf ("\t/* Non-NFC cases not applicable to C/C++. */\n");
+ printf ("\tdefault:\n"
+ "\t return true;\n"
+ "\t}\n\n");
+ }
+ printf (" default:\n"
+ " cpp_error (pfile, CPP_DL_ICE, \"Character %%x might not be NFKC\", c);\n"
+ " return true;\n"
+ " }\n"
+ "}\n");
+}
+
+/* Print out the huge copyright notice. */
+
+static void
+write_copyright (void)
+{
+ static const char copyright[] = "\
+/* Unicode characters and various properties.\n\
+ Copyright (C) 2003-2014 Free Software Foundation, Inc.\n\
+\n\
+ This program is free software; you can redistribute it and/or modify it\n\
+ under the terms of the GNU General Public License as published by the\n\
+ Free Software Foundation; either version 3, or (at your option) any\n\
+ later version.\n\
+\n\
+ This program is distributed in the hope that it will be useful,\n\
+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
+ GNU General Public License for more details.\n\
+\n\
+ You should have received a copy of the GNU General Public License\n\
+ along with this program; see the file COPYING3. If not see\n\
+ <http://www.gnu.org/licenses/>.\n\
+\n\
+\n\
+ Copyright (C) 1991-2005 Unicode, Inc. All rights reserved.\n\
+ Distributed under the Terms of Use in\n\
+ http://www.unicode.org/copyright.html.\n\
+\n\
+ Permission is hereby granted, free of charge, to any person\n\
+ obtaining a copy of the Unicode data files and any associated\n\
+ documentation (the \"Data Files\") or Unicode software and any\n\
+ associated documentation (the \"Software\") to deal in the Data Files\n\
+ or Software without restriction, including without limitation the\n\
+ rights to use, copy, modify, merge, publish, distribute, and/or\n\
+ sell copies of the Data Files or Software, and to permit persons to\n\
+ whom the Data Files or Software are furnished to do so, provided\n\
+ that (a) the above copyright notice(s) and this permission notice\n\
+ appear with all copies of the Data Files or Software, (b) both the\n\
+ above copyright notice(s) and this permission notice appear in\n\
+ associated documentation, and (c) there is clear notice in each\n\
+ modified Data File or in the Software as well as in the\n\
+ documentation associated with the Data File(s) or Software that the\n\
+ data or software has been modified.\n\
+\n\
+ THE DATA FILES AND SOFTWARE ARE PROVIDED \"AS IS\", WITHOUT WARRANTY\n\
+ OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\n\
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\
+ NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE\n\
+ COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR\n\
+ ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY\n\
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,\n\
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS\n\
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE\n\
+ OF THE DATA FILES OR SOFTWARE.\n\
+\n\
+ Except as contained in this notice, the name of a copyright holder\n\
+ shall not be used in advertising or otherwise to promote the sale,\n\
+ use or other dealings in these Data Files or Software without prior\n\
+ written authorization of the copyright holder. */\n";
+
+ puts (copyright);
+}
+
+/* Main program. */
+
+int
+main(int argc, char ** argv)
+{
+ if (argc != 4)
+ fail ("too few arguments to makeucn");
+ read_ucnid (argv[1]);
+ read_table (argv[2]);
+ read_derived (argv[3]);
+
+ write_copyright ();
+ write_table ();
+ write_context_switch ();
+ return 0;
+}
diff --git a/gcc-4.9/libcpp/mkdeps.c b/gcc-4.9/libcpp/mkdeps.c
new file mode 100644
index 000000000..915f3b94c
--- /dev/null
+++ b/gcc-4.9/libcpp/mkdeps.c
@@ -0,0 +1,437 @@
+/* Dependency generator for Makefile fragments.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+ Contributed by Zack Weinberg, Mar 2000
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "mkdeps.h"
+
+/* Keep this structure local to this file, so clients don't find it
+ easy to start making assumptions. */
+struct deps
+{
+ const char **targetv;
+ unsigned int ntargets; /* number of slots actually occupied */
+ unsigned int targets_size; /* amt of allocated space - in words */
+
+ const char **depv;
+ unsigned int ndeps;
+ unsigned int deps_size;
+
+ const char **vpathv;
+ size_t *vpathlv;
+ unsigned int nvpaths;
+ unsigned int vpaths_size;
+};
+
+static const char *munge (const char *);
+
+/* Given a filename, quote characters in that filename which are
+ significant to Make. Note that it's not possible to quote all such
+ characters - e.g. \n, %, *, ?, [, \ (in some contexts), and ~ are
+ not properly handled. It isn't possible to get this right in any
+ current version of Make. (??? Still true? Old comment referred to
+ 3.76.1.) */
+
+static const char *
+munge (const char *filename)
+{
+ int len;
+ const char *p, *q;
+ char *dst, *buffer;
+
+ for (p = filename, len = 0; *p; p++, len++)
+ {
+ switch (*p)
+ {
+ case ' ':
+ case '\t':
+ /* GNU make uses a weird quoting scheme for white space.
+ A space or tab preceded by 2N+1 backslashes represents
+ N backslashes followed by space; a space or tab
+ preceded by 2N backslashes represents N backslashes at
+ the end of a file name; and backslashes in other
+ contexts should not be doubled. */
+ for (q = p - 1; filename <= q && *q == '\\'; q--)
+ len++;
+ len++;
+ break;
+
+ case '$':
+ /* '$' is quoted by doubling it. */
+ len++;
+ break;
+
+ case '#':
+ /* '#' is quoted with a backslash. */
+ len++;
+ break;
+ }
+ }
+
+ /* Now we know how big to make the buffer. */
+ buffer = XNEWVEC (char, len + 1);
+
+ for (p = filename, dst = buffer; *p; p++, dst++)
+ {
+ switch (*p)
+ {
+ case ' ':
+ case '\t':
+ for (q = p - 1; filename <= q && *q == '\\'; q--)
+ *dst++ = '\\';
+ *dst++ = '\\';
+ break;
+
+ case '$':
+ *dst++ = '$';
+ break;
+
+ case '#':
+ *dst++ = '\\';
+ break;
+
+ default:
+ /* nothing */;
+ }
+ *dst = *p;
+ }
+
+ *dst = '\0';
+ return buffer;
+}
+
+/* If T begins with any of the partial pathnames listed in d->vpathv,
+ then advance T to point beyond that pathname. */
+static const char *
+apply_vpath (struct deps *d, const char *t)
+{
+ if (d->vpathv)
+ {
+ unsigned int i;
+ for (i = 0; i < d->nvpaths; i++)
+ {
+ if (!filename_ncmp (d->vpathv[i], t, d->vpathlv[i]))
+ {
+ const char *p = t + d->vpathlv[i];
+ if (!IS_DIR_SEPARATOR (*p))
+ goto not_this_one;
+
+ /* Do not simplify $(vpath)/../whatever. ??? Might not
+ be necessary. */
+ if (p[1] == '.' && p[2] == '.' && IS_DIR_SEPARATOR (p[3]))
+ goto not_this_one;
+
+ /* found a match */
+ t = t + d->vpathlv[i] + 1;
+ break;
+ }
+ not_this_one:;
+ }
+ }
+
+ /* Remove leading ./ in any case. */
+ while (t[0] == '.' && IS_DIR_SEPARATOR (t[1]))
+ {
+ t += 2;
+ /* If we removed a leading ./, then also remove any /s after the
+ first. */
+ while (IS_DIR_SEPARATOR (t[0]))
+ ++t;
+ }
+
+ return t;
+}
+
+/* Public routines. */
+
+struct deps *
+deps_init (void)
+{
+ return XCNEW (struct deps);
+}
+
+void
+deps_free (struct deps *d)
+{
+ unsigned int i;
+
+ if (d->targetv)
+ {
+ for (i = 0; i < d->ntargets; i++)
+ free ((void *) d->targetv[i]);
+ free (d->targetv);
+ }
+
+ if (d->depv)
+ {
+ for (i = 0; i < d->ndeps; i++)
+ free ((void *) d->depv[i]);
+ free (d->depv);
+ }
+
+ if (d->vpathv)
+ {
+ for (i = 0; i < d->nvpaths; i++)
+ free ((void *) d->vpathv[i]);
+ free (d->vpathv);
+ free (d->vpathlv);
+ }
+
+ free (d);
+}
+
+/* Adds a target T. We make a copy, so it need not be a permanent
+ string. QUOTE is true if the string should be quoted. */
+void
+deps_add_target (struct deps *d, const char *t, int quote)
+{
+ if (d->ntargets == d->targets_size)
+ {
+ d->targets_size = d->targets_size * 2 + 4;
+ d->targetv = XRESIZEVEC (const char *, d->targetv, d->targets_size);
+ }
+
+ t = apply_vpath (d, t);
+ if (quote)
+ t = munge (t); /* Also makes permanent copy. */
+ else
+ t = xstrdup (t);
+
+ d->targetv[d->ntargets++] = t;
+}
+
+/* Sets the default target if none has been given already. An empty
+ string as the default target in interpreted as stdin. The string
+ is quoted for MAKE. */
+void
+deps_add_default_target (struct deps *d, const char *tgt)
+{
+ /* Only if we have no targets. */
+ if (d->ntargets)
+ return;
+
+ if (tgt[0] == '\0')
+ deps_add_target (d, "-", 1);
+ else
+ {
+#ifndef TARGET_OBJECT_SUFFIX
+# define TARGET_OBJECT_SUFFIX ".o"
+#endif
+ const char *start = lbasename (tgt);
+ char *o = (char *) alloca (strlen (start)
+ + strlen (TARGET_OBJECT_SUFFIX) + 1);
+ char *suffix;
+
+ strcpy (o, start);
+
+ suffix = strrchr (o, '.');
+ if (!suffix)
+ suffix = o + strlen (o);
+ strcpy (suffix, TARGET_OBJECT_SUFFIX);
+
+ deps_add_target (d, o, 1);
+ }
+}
+
+void
+deps_add_dep (struct deps *d, const char *t)
+{
+ t = munge (apply_vpath (d, t)); /* Also makes permanent copy. */
+
+ if (d->ndeps == d->deps_size)
+ {
+ d->deps_size = d->deps_size * 2 + 8;
+ d->depv = XRESIZEVEC (const char *, d->depv, d->deps_size);
+ }
+ d->depv[d->ndeps++] = t;
+}
+
+void
+deps_add_vpath (struct deps *d, const char *vpath)
+{
+ const char *elem, *p;
+ char *copy;
+ size_t len;
+
+ for (elem = vpath; *elem; elem = p)
+ {
+ for (p = elem; *p && *p != ':'; p++);
+ len = p - elem;
+ copy = XNEWVEC (char, len + 1);
+ memcpy (copy, elem, len);
+ copy[len] = '\0';
+ if (*p == ':')
+ p++;
+
+ if (d->nvpaths == d->vpaths_size)
+ {
+ d->vpaths_size = d->vpaths_size * 2 + 8;
+ d->vpathv = XRESIZEVEC (const char *, d->vpathv, d->vpaths_size);
+ d->vpathlv = XRESIZEVEC (size_t, d->vpathlv, d->vpaths_size);
+ }
+ d->vpathv[d->nvpaths] = copy;
+ d->vpathlv[d->nvpaths] = len;
+ d->nvpaths++;
+ }
+}
+
+void
+deps_write (const struct deps *d, FILE *fp, unsigned int colmax)
+{
+ unsigned int size, i, column;
+
+ column = 0;
+ if (colmax && colmax < 34)
+ colmax = 34;
+
+ for (i = 0; i < d->ntargets; i++)
+ {
+ size = strlen (d->targetv[i]);
+ column += size;
+ if (i)
+ {
+ if (colmax && column > colmax)
+ {
+ fputs (" \\\n ", fp);
+ column = 1 + size;
+ }
+ else
+ {
+ putc (' ', fp);
+ column++;
+ }
+ }
+ fputs (d->targetv[i], fp);
+ }
+
+ putc (':', fp);
+ column++;
+
+ for (i = 0; i < d->ndeps; i++)
+ {
+ size = strlen (d->depv[i]);
+ column += size;
+ if (colmax && column > colmax)
+ {
+ fputs (" \\\n ", fp);
+ column = 1 + size;
+ }
+ else
+ {
+ putc (' ', fp);
+ column++;
+ }
+ fputs (d->depv[i], fp);
+ }
+ putc ('\n', fp);
+}
+
+void
+deps_phony_targets (const struct deps *d, FILE *fp)
+{
+ unsigned int i;
+
+ for (i = 1; i < d->ndeps; i++)
+ {
+ putc ('\n', fp);
+ fputs (d->depv[i], fp);
+ putc (':', fp);
+ putc ('\n', fp);
+ }
+}
+
+/* Write out a deps buffer to a file, in a form that can be read back
+ with deps_restore. Returns nonzero on error, in which case the
+ error number will be in errno. */
+
+int
+deps_save (struct deps *deps, FILE *f)
+{
+ unsigned int i;
+
+ /* The cppreader structure contains makefile dependences. Write out this
+ structure. */
+
+ /* The number of dependences. */
+ if (fwrite (&deps->ndeps, sizeof (deps->ndeps), 1, f) != 1)
+ return -1;
+ /* The length of each dependence followed by the string. */
+ for (i = 0; i < deps->ndeps; i++)
+ {
+ size_t num_to_write = strlen (deps->depv[i]);
+ if (fwrite (&num_to_write, sizeof (size_t), 1, f) != 1)
+ return -1;
+ if (fwrite (deps->depv[i], num_to_write, 1, f) != 1)
+ return -1;
+ }
+
+ return 0;
+}
+
+/* Read back dependency information written with deps_save into
+ the deps buffer. The third argument may be NULL, in which case
+ the dependency information is just skipped, or it may be a filename,
+ in which case that filename is skipped. */
+
+int
+deps_restore (struct deps *deps, FILE *fd, const char *self)
+{
+ unsigned int i, count;
+ size_t num_to_read;
+ size_t buf_size = 512;
+ char *buf;
+
+ /* Number of dependences. */
+ if (fread (&count, 1, sizeof (count), fd) != sizeof (count))
+ return -1;
+
+ buf = XNEWVEC (char, buf_size);
+
+ /* The length of each dependence string, followed by the string. */
+ for (i = 0; i < count; i++)
+ {
+ /* Read in # bytes in string. */
+ if (fread (&num_to_read, 1, sizeof (size_t), fd) != sizeof (size_t))
+ {
+ free (buf);
+ return -1;
+ }
+ if (buf_size < num_to_read + 1)
+ {
+ buf_size = num_to_read + 1 + 127;
+ buf = XRESIZEVEC (char, buf, buf_size);
+ }
+ if (fread (buf, 1, num_to_read, fd) != num_to_read)
+ {
+ free (buf);
+ return -1;
+ }
+ buf[num_to_read] = '\0';
+
+ /* Generate makefile dependencies from .pch if -nopch-deps. */
+ if (self != NULL && filename_cmp (buf, self) != 0)
+ deps_add_dep (deps, buf);
+ }
+
+ free (buf);
+ return 0;
+}
diff --git a/gcc-4.9/libcpp/pch.c b/gcc-4.9/libcpp/pch.c
new file mode 100644
index 000000000..cddca837f
--- /dev/null
+++ b/gcc-4.9/libcpp/pch.c
@@ -0,0 +1,900 @@
+/* Part of CPP library. (Precompiled header reading/writing.)
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+#include "hashtab.h"
+#include "mkdeps.h"
+
+static int write_macdef (cpp_reader *, cpp_hashnode *, void *);
+static int save_idents (cpp_reader *, cpp_hashnode *, void *);
+static hashval_t hashmem (const void *, size_t);
+static hashval_t cpp_string_hash (const void *);
+static int cpp_string_eq (const void *, const void *);
+static int count_defs (cpp_reader *, cpp_hashnode *, void *);
+static int comp_hashnodes (const void *, const void *);
+static int collect_ht_nodes (cpp_reader *, cpp_hashnode *, void *);
+static int write_defs (cpp_reader *, cpp_hashnode *, void *);
+static int save_macros (cpp_reader *, cpp_hashnode *, void *);
+static int _cpp_save_pushed_macros (cpp_reader *, FILE *);
+static int _cpp_restore_pushed_macros (cpp_reader *, FILE *);
+
+/* This structure represents a macro definition on disk. */
+struct macrodef_struct
+{
+ unsigned int definition_length;
+ unsigned short name_length;
+ unsigned short flags;
+};
+
+/* This is how we write out a macro definition.
+ Suitable for being called by cpp_forall_identifiers. */
+
+static int
+write_macdef (cpp_reader *pfile, cpp_hashnode *hn, void *file_p)
+{
+ FILE *f = (FILE *) file_p;
+ switch (hn->type)
+ {
+ case NT_VOID:
+ if (! (hn->flags & NODE_POISONED))
+ return 1;
+
+ case NT_MACRO:
+ if ((hn->flags & NODE_BUILTIN)
+ && (!pfile->cb.user_builtin_macro
+ || !pfile->cb.user_builtin_macro (pfile, hn)))
+ return 1;
+
+ {
+ struct macrodef_struct s;
+ const unsigned char *defn;
+
+ s.name_length = NODE_LEN (hn);
+ s.flags = hn->flags & NODE_POISONED;
+
+ if (hn->type == NT_MACRO)
+ {
+ defn = cpp_macro_definition (pfile, hn);
+ s.definition_length = ustrlen (defn);
+ }
+ else
+ {
+ defn = NODE_NAME (hn);
+ s.definition_length = s.name_length;
+ }
+
+ if (fwrite (&s, sizeof (s), 1, f) != 1
+ || fwrite (defn, 1, s.definition_length, f) != s.definition_length)
+ {
+ cpp_errno (pfile, CPP_DL_ERROR,
+ "while writing precompiled header");
+ return 0;
+ }
+ }
+ return 1;
+
+ case NT_ASSERTION:
+ /* Not currently implemented. */
+ return 1;
+
+ default:
+ abort ();
+ }
+}
+
+/* This structure records the names of the defined macros.
+ It's also used as a callback structure for size_initial_idents
+ and save_idents. */
+
+struct cpp_savedstate
+{
+ /* A hash table of the defined identifiers. */
+ htab_t definedhash;
+ /* The size of the definitions of those identifiers (the size of
+ 'definedstrs'). */
+ size_t hashsize;
+ /* Number of definitions */
+ size_t n_defs;
+ /* Array of definitions. In cpp_write_pch_deps it is used for sorting. */
+ cpp_hashnode **defs;
+ /* Space for the next definition. Definitions are null-terminated
+ strings. */
+ unsigned char *definedstrs;
+};
+
+/* Save this identifier into the state: put it in the hash table,
+ put the definition in 'definedstrs'. */
+
+static int
+save_idents (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
+{
+ struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
+
+ if (hn->type != NT_VOID)
+ {
+ struct cpp_string news;
+ void **slot;
+
+ news.len = NODE_LEN (hn);
+ news.text= NODE_NAME (hn);
+ slot = htab_find_slot (ss->definedhash, &news, INSERT);
+ if (*slot == NULL)
+ {
+ struct cpp_string *sp;
+ unsigned char *text;
+
+ sp = XNEW (struct cpp_string);
+ *slot = sp;
+
+ sp->len = NODE_LEN (hn);
+ sp->text = text = XNEWVEC (unsigned char, NODE_LEN (hn));
+ memcpy (text, NODE_NAME (hn), NODE_LEN (hn));
+ }
+ }
+
+ return 1;
+}
+
+/* Hash some memory in a generic way. */
+
+static hashval_t
+hashmem (const void *p_p, size_t sz)
+{
+ const unsigned char *p = (const unsigned char *)p_p;
+ size_t i;
+ hashval_t h;
+
+ h = 0;
+ for (i = 0; i < sz; i++)
+ h = h * 67 - (*p++ - 113);
+ return h;
+}
+
+/* Hash a cpp string for the hashtable machinery. */
+
+static hashval_t
+cpp_string_hash (const void *a_p)
+{
+ const struct cpp_string *a = (const struct cpp_string *) a_p;
+ return hashmem (a->text, a->len);
+}
+
+/* Compare two cpp strings for the hashtable machinery. */
+
+static int
+cpp_string_eq (const void *a_p, const void *b_p)
+{
+ const struct cpp_string *a = (const struct cpp_string *) a_p;
+ const struct cpp_string *b = (const struct cpp_string *) b_p;
+ return (a->len == b->len
+ && memcmp (a->text, b->text, a->len) == 0);
+}
+
+/* Free memory associated with cpp_string. */
+
+static void
+cpp_string_free (void *a_p)
+{
+ struct cpp_string *a = (struct cpp_string *) a_p;
+ free ((void *) a->text);
+ free (a);
+}
+
+/* Save the current definitions of the cpp_reader for dependency
+ checking purposes. When writing a precompiled header, this should
+ be called at the same point in the compilation as cpp_valid_state
+ would be called when reading the precompiled header back in. */
+
+int
+cpp_save_state (cpp_reader *r, FILE *f)
+{
+ /* Save the list of non-void identifiers for the dependency checking. */
+ r->savedstate = XNEW (struct cpp_savedstate);
+ r->savedstate->definedhash = htab_create (100, cpp_string_hash,
+ cpp_string_eq, cpp_string_free);
+ cpp_forall_identifiers (r, save_idents, r->savedstate);
+
+ /* Write out the list of defined identifiers. */
+ cpp_forall_identifiers (r, write_macdef, f);
+
+ return 0;
+}
+
+/* Calculate the 'hashsize' field of the saved state. */
+
+static int
+count_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
+{
+ struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
+
+ switch (hn->type)
+ {
+ case NT_MACRO:
+ if (hn->flags & NODE_BUILTIN)
+ return 1;
+
+ /* else fall through. */
+
+ case NT_VOID:
+ {
+ struct cpp_string news;
+ void **slot;
+
+ news.len = NODE_LEN (hn);
+ news.text = NODE_NAME (hn);
+ slot = (void **) htab_find (ss->definedhash, &news);
+ if (slot == NULL)
+ {
+ ss->hashsize += NODE_LEN (hn) + 1;
+ ss->n_defs += 1;
+ }
+ }
+ return 1;
+
+ case NT_ASSERTION:
+ /* Not currently implemented. */
+ return 1;
+
+ default:
+ abort ();
+ }
+}
+
+/* Collect the identifiers into the state's string table. */
+static int
+write_defs (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn, void *ss_p)
+{
+ struct cpp_savedstate *const ss = (struct cpp_savedstate *)ss_p;
+
+ switch (hn->type)
+ {
+ case NT_MACRO:
+ if (hn->flags & NODE_BUILTIN)
+ return 1;
+
+ /* else fall through. */
+
+ case NT_VOID:
+ {
+ struct cpp_string news;
+ void **slot;
+
+ news.len = NODE_LEN (hn);
+ news.text = NODE_NAME (hn);
+ slot = (void **) htab_find (ss->definedhash, &news);
+ if (slot == NULL)
+ {
+ ss->defs[ss->n_defs] = hn;
+ ss->n_defs += 1;
+ }
+ }
+ return 1;
+
+ case NT_ASSERTION:
+ /* Not currently implemented. */
+ return 1;
+
+ default:
+ abort ();
+ }
+}
+
+/* Comparison function for qsort. The arguments point to pointers of
+ type ht_hashnode *. */
+static int
+comp_hashnodes (const void *px, const void *py)
+{
+ cpp_hashnode *x = *(cpp_hashnode **) px;
+ cpp_hashnode *y = *(cpp_hashnode **) py;
+ return ustrcmp (NODE_NAME (x), NODE_NAME (y));
+}
+
+/* Write out the remainder of the dependency information. This should be
+ called after the PCH is ready to be saved. */
+
+int
+cpp_write_pch_deps (cpp_reader *r, FILE *f)
+{
+ struct macrodef_struct z;
+ struct cpp_savedstate *const ss = r->savedstate;
+ unsigned char *definedstrs;
+ size_t i;
+
+ /* Collect the list of identifiers which have been seen and
+ weren't defined to anything previously. */
+ ss->hashsize = 0;
+ ss->n_defs = 0;
+ cpp_forall_identifiers (r, count_defs, ss);
+
+ ss->defs = XNEWVEC (cpp_hashnode *, ss->n_defs);
+ ss->n_defs = 0;
+ cpp_forall_identifiers (r, write_defs, ss);
+
+ /* Sort the list, copy it into a buffer, and write it out. */
+ qsort (ss->defs, ss->n_defs, sizeof (cpp_hashnode *), &comp_hashnodes);
+ definedstrs = ss->definedstrs = XNEWVEC (unsigned char, ss->hashsize);
+ for (i = 0; i < ss->n_defs; ++i)
+ {
+ size_t len = NODE_LEN (ss->defs[i]);
+ memcpy (definedstrs, NODE_NAME (ss->defs[i]), len + 1);
+ definedstrs += len + 1;
+ }
+
+ memset (&z, 0, sizeof (z));
+ z.definition_length = ss->hashsize;
+ if (fwrite (&z, sizeof (z), 1, f) != 1
+ || fwrite (ss->definedstrs, ss->hashsize, 1, f) != 1)
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+ free (ss->definedstrs);
+ free (ss->defs);
+ htab_delete (ss->definedhash);
+
+ /* Free the saved state. */
+ free (ss);
+ r->savedstate = NULL;
+
+ /* Save the next value of __COUNTER__. */
+ if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1)
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* Write out the definitions of the preprocessor, in a form suitable for
+ cpp_read_state. */
+
+int
+cpp_write_pch_state (cpp_reader *r, FILE *f)
+{
+ if (!r->deps)
+ r->deps = deps_init ();
+
+ if (deps_save (r->deps, f) != 0)
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+
+ if (! _cpp_save_file_entries (r, f))
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+
+ /* Save the next __COUNTER__ value. When we include a precompiled header,
+ we need to start at the offset we would have if the header had been
+ included normally. */
+ if (fwrite (&r->counter, sizeof (r->counter), 1, f) != 1)
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+
+ /* Write saved macros. */
+ if (! _cpp_save_pushed_macros (r, f))
+ {
+ cpp_errno (r, CPP_DL_ERROR, "while writing precompiled header");
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+_cpp_restore_pushed_macros (cpp_reader *r, FILE *f)
+{
+ size_t count_saved = 0;
+ size_t i;
+ struct def_pragma_macro *p;
+ size_t nlen;
+ uchar *defn;
+ size_t defnlen;
+
+ if (fread (&count_saved, sizeof (count_saved), 1, f) != 1)
+ return 0;
+ if (! count_saved)
+ return 1;
+ for (i = 0; i < count_saved; i++)
+ {
+ if (fread (&nlen, sizeof (nlen), 1, f) != 1)
+ return 0;
+ p = XNEW (struct def_pragma_macro);
+ memset (p, 0, sizeof (struct def_pragma_macro));
+ p->name = XNEWVAR (char, nlen + 1);
+ p->name[nlen] = 0;
+ if (fread (p->name, nlen, 1, f) != 1)
+ return 0;
+ if (fread (&defnlen, sizeof (defnlen), 1, f) != 1)
+ return 0;
+ if (defnlen == 0)
+ p->is_undef = 1;
+ else
+ {
+ defn = XNEWVEC (uchar, defnlen + 1);
+ defn[defnlen] = 0;
+
+ if (fread (defn, defnlen, 1, f) != 1)
+ return 0;
+
+ p->definition = defn;
+ if (fread (&(p->line), sizeof (source_location), 1, f) != 1)
+ return 0;
+ defnlen = 0;
+ if (fread (&defnlen, sizeof (defnlen), 1, f) != 1)
+ return 0;
+ p->syshdr = ((defnlen & 1) != 0 ? 1 : 0);
+ p->used = ((defnlen & 2) != 0 ? 1 : 0);
+ }
+
+ p->next = r->pushed_macros;
+ r->pushed_macros = p;
+ }
+ return 1;
+}
+
+static int
+_cpp_save_pushed_macros (cpp_reader *r, FILE *f)
+{
+ size_t count_saved = 0;
+ size_t i;
+ struct def_pragma_macro *p,**pp;
+ size_t defnlen;
+
+ /* Get count. */
+ p = r->pushed_macros;
+ while (p != NULL)
+ {
+ count_saved++;
+ p = p->next;
+ }
+ if (fwrite (&count_saved, sizeof (count_saved), 1, f) != 1)
+ return 0;
+ if (!count_saved)
+ return 1;
+
+ pp = (struct def_pragma_macro **) alloca (sizeof (struct def_pragma_macro *)
+ * count_saved);
+ /* Store them in reverse order. */
+ p = r->pushed_macros;
+ i = count_saved;
+ while (p != NULL)
+ {
+ --i;
+ pp[i] = p;
+ p = p->next;
+ }
+ for (i = 0; i < count_saved; i++)
+ {
+ defnlen = strlen (pp[i]->name);
+ if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
+ || fwrite (pp[i]->name, defnlen, 1, f) != 1)
+ return 0;
+ if (pp[i]->is_undef)
+ {
+ defnlen = 0;
+ if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1)
+ return 0;
+ }
+ else
+ {
+ defnlen = ustrlen (pp[i]->definition);
+ if (fwrite (&defnlen, sizeof (size_t), 1, f) != 1
+ || fwrite (pp[i]->definition, defnlen, 1, f) != 1)
+ return 0;
+ if (fwrite (&(pp[i]->line), sizeof (source_location), 1, f) != 1)
+ return 0;
+ defnlen = 0;
+ defnlen |= (pp[i]->syshdr != 0 ? 1 : 0);
+ defnlen |= (pp[i]->used != 0 ? 2 : 0);
+ if (fwrite (&defnlen, sizeof (defnlen), 1, f) != 1)
+ return 0;
+ }
+ }
+ return 1;
+}
+
+
+/* Data structure to transform hash table nodes into a sorted list */
+
+struct ht_node_list
+{
+ /* Array of nodes */
+ cpp_hashnode **defs;
+ /* Number of nodes in the array */
+ size_t n_defs;
+ /* Size of the allocated array */
+ size_t asize;
+};
+
+/* Callback for collecting identifiers from hash table */
+
+static int
+collect_ht_nodes (cpp_reader *pfile ATTRIBUTE_UNUSED, cpp_hashnode *hn,
+ void *nl_p)
+{
+ struct ht_node_list *const nl = (struct ht_node_list *)nl_p;
+
+ if (hn->type != NT_VOID || hn->flags & NODE_POISONED)
+ {
+ if (nl->n_defs == nl->asize)
+ {
+ nl->asize *= 2;
+ nl->defs = XRESIZEVEC (cpp_hashnode *, nl->defs, nl->asize);
+ }
+
+ nl->defs[nl->n_defs] = hn;
+ ++nl->n_defs;
+ }
+ return 1;
+}
+
+
+/* Return nonzero if FD is a precompiled header which is consistent
+ with the preprocessor's current definitions. It will be consistent
+ when:
+
+ - anything that was defined just before the PCH was generated
+ is defined the same way now; and
+ - anything that was not defined then, but is defined now, was not
+ used by the PCH.
+
+ NAME is used to print warnings if `warn_invalid_pch' is set in the
+ reader's flags.
+*/
+
+int
+cpp_valid_state (cpp_reader *r, const char *name, int fd)
+{
+ struct macrodef_struct m;
+ size_t namebufsz = 256;
+ unsigned char *namebuf = XNEWVEC (unsigned char, namebufsz);
+ unsigned char *undeftab = NULL;
+ struct ht_node_list nl = { 0, 0, 0 };
+ unsigned char *first, *last;
+ unsigned int i;
+ unsigned int counter;
+
+ /* Read in the list of identifiers that must be defined
+ Check that they are defined in the same way. */
+ for (;;)
+ {
+ cpp_hashnode *h;
+ const unsigned char *newdefn;
+
+ if (read (fd, &m, sizeof (m)) != sizeof (m))
+ goto error;
+
+ if (m.name_length == 0)
+ break;
+
+ /* If this file is already preprocessed, there won't be any
+ macros defined, and that's OK. */
+ if (CPP_OPTION (r, preprocessed))
+ {
+ if (lseek (fd, m.definition_length, SEEK_CUR) == -1)
+ goto error;
+ continue;
+ }
+
+ if (m.definition_length > namebufsz)
+ {
+ free (namebuf);
+ namebufsz = m.definition_length + 256;
+ namebuf = XNEWVEC (unsigned char, namebufsz);
+ }
+
+ if ((size_t)read (fd, namebuf, m.definition_length)
+ != m.definition_length)
+ goto error;
+
+ h = cpp_lookup (r, namebuf, m.name_length);
+ if (m.flags & NODE_POISONED
+ || h->flags & NODE_POISONED)
+ {
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_warning_syshdr (r, CPP_W_INVALID_PCH,
+ "%s: not used because `%.*s' is poisoned",
+ name, m.name_length, namebuf);
+ goto fail;
+ }
+
+ if (h->type != NT_MACRO)
+ {
+ /* It's ok if __GCC_HAVE_DWARF2_CFI_ASM becomes undefined,
+ as in, when the PCH file is created with -g and we're
+ attempting to use it without -g. Restoring the PCH file
+ is supposed to bring in this definition *and* enable the
+ generation of call frame information, so that precompiled
+ definitions that take this macro into accout, to decide
+ what asm to emit, won't issue .cfi directives when the
+ compiler doesn't. */
+ if (!(h->flags & NODE_USED)
+ && m.name_length == sizeof ("__GCC_HAVE_DWARF2_CFI_ASM") - 1
+ && !memcmp (namebuf, "__GCC_HAVE_DWARF2_CFI_ASM", m.name_length))
+ continue;
+
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_warning_syshdr (r, CPP_W_INVALID_PCH,
+ "%s: not used because `%.*s' not defined",
+ name, m.name_length, namebuf);
+ goto fail;
+ }
+
+ newdefn = cpp_macro_definition (r, h);
+
+ if (m.definition_length != ustrlen (newdefn)
+ || memcmp (namebuf, newdefn, m.definition_length) != 0)
+ {
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_warning_syshdr (r, CPP_W_INVALID_PCH,
+ "%s: not used because `%.*s' defined as `%s' not `%.*s'",
+ name, m.name_length, namebuf, newdefn + m.name_length,
+ m.definition_length - m.name_length,
+ namebuf + m.name_length);
+ goto fail;
+ }
+ }
+ free (namebuf);
+ namebuf = NULL;
+
+ /* Read in the list of identifiers that must not be defined.
+ Check that they really aren't. */
+ undeftab = XNEWVEC (unsigned char, m.definition_length);
+ if ((size_t) read (fd, undeftab, m.definition_length) != m.definition_length)
+ goto error;
+
+ /* Collect identifiers from the current hash table. */
+ nl.n_defs = 0;
+ nl.asize = 10;
+ nl.defs = XNEWVEC (cpp_hashnode *, nl.asize);
+ cpp_forall_identifiers (r, &collect_ht_nodes, &nl);
+ qsort (nl.defs, nl.n_defs, sizeof (cpp_hashnode *), &comp_hashnodes);
+
+ /* Loop through nl.defs and undeftab, both of which are sorted lists.
+ There should be no matches. */
+ first = undeftab;
+ last = undeftab + m.definition_length;
+ i = 0;
+
+ while (first < last && i < nl.n_defs)
+ {
+ int cmp = ustrcmp (first, NODE_NAME (nl.defs[i]));
+
+ if (cmp < 0)
+ first += ustrlen (first) + 1;
+ else if (cmp > 0)
+ ++i;
+ else
+ {
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_warning_syshdr (r, CPP_W_INVALID_PCH,
+ "%s: not used because `%s' is defined",
+ name, first);
+ goto fail;
+ }
+ }
+
+ free(nl.defs);
+ nl.defs = NULL;
+ free (undeftab);
+ undeftab = NULL;
+
+ /* Read in the next value of __COUNTER__.
+ Check that (a) __COUNTER__ was not used in the pch or (b) __COUNTER__
+ has not been used in this translation unit. */
+ if (read (fd, &counter, sizeof (counter)) != sizeof (counter))
+ goto error;
+ if (counter && r->counter)
+ {
+ if (CPP_OPTION (r, warn_invalid_pch))
+ cpp_warning_syshdr (r, CPP_W_INVALID_PCH,
+ "%s: not used because `__COUNTER__' is invalid",
+ name);
+ goto fail;
+ }
+
+ /* We win! */
+ return 0;
+
+ error:
+ cpp_errno (r, CPP_DL_ERROR, "while reading precompiled header");
+
+ fail:
+ free (namebuf);
+ free (undeftab);
+ free (nl.defs);
+ return 1;
+}
+
+/* Save all the existing macros. */
+
+struct save_macro_data
+{
+ uchar **defns;
+ size_t count;
+ size_t array_size;
+ char **saved_pragmas;
+};
+
+/* Save the definition of a single macro, so that it will persist
+ across a PCH restore. Because macro data is in GCed memory, which
+ will be blown away by PCH, it must be temporarily copied to
+ malloced memory. (The macros will refer to identifier nodes which
+ are also GCed and so on, so the copying is done by turning them
+ into self-contained strings.) The assumption is that most macro
+ definitions will come from the PCH file, not from the compilation
+ before the PCH file is loaded, so it doesn't matter that this is
+ a little expensive.
+
+ It would reduce the cost even further if macros defined in the PCH
+ file were not saved in this way, but this is not done (yet), except
+ for builtins, and for #assert by default. */
+
+static int
+save_macros (cpp_reader *r, cpp_hashnode *h, void *data_p)
+{
+ struct save_macro_data *data = (struct save_macro_data *)data_p;
+
+ if ((h->flags & NODE_BUILTIN)
+ && h->type == NT_MACRO
+ && r->cb.user_builtin_macro)
+ r->cb.user_builtin_macro (r, h);
+
+ if (h->type != NT_VOID
+ && (h->flags & NODE_BUILTIN) == 0)
+ {
+ if (data->count == data->array_size)
+ {
+ data->array_size *= 2;
+ data->defns = XRESIZEVEC (uchar *, data->defns, (data->array_size));
+ }
+
+ switch (h->type)
+ {
+ case NT_ASSERTION:
+ /* Not currently implemented. */
+ return 1;
+
+ case NT_MACRO:
+ {
+ const uchar * defn = cpp_macro_definition (r, h);
+ size_t defnlen = ustrlen (defn);
+
+ data->defns[data->count] = (uchar *) xmemdup (defn, defnlen,
+ defnlen + 2);
+ data->defns[data->count][defnlen] = '\n';
+ }
+ break;
+
+ default:
+ abort ();
+ }
+ data->count++;
+ }
+ return 1;
+}
+
+/* Prepare to restore the state, by saving the currently-defined
+ macros in 'data'. */
+
+void
+cpp_prepare_state (cpp_reader *r, struct save_macro_data **data)
+{
+ struct save_macro_data *d = XNEW (struct save_macro_data);
+
+ d->array_size = 512;
+ d->defns = XNEWVEC (uchar *, d->array_size);
+ d->count = 0;
+ cpp_forall_identifiers (r, save_macros, d);
+ d->saved_pragmas = _cpp_save_pragma_names (r);
+ *data = d;
+}
+
+/* Given a precompiled header that was previously determined to be valid,
+ apply all its definitions (and undefinitions) to the current state.
+ DEPNAME is passed to deps_restore. */
+
+int
+cpp_read_state (cpp_reader *r, const char *name, FILE *f,
+ struct save_macro_data *data)
+{
+ size_t i;
+ struct lexer_state old_state;
+ unsigned int counter;
+
+ /* Restore spec_nodes, which will be full of references to the old
+ hashtable entries and so will now be invalid. */
+ {
+ struct spec_nodes *s = &r->spec_nodes;
+ s->n_defined = cpp_lookup (r, DSC("defined"));
+ s->n_true = cpp_lookup (r, DSC("true"));
+ s->n_false = cpp_lookup (r, DSC("false"));
+ s->n__VA_ARGS__ = cpp_lookup (r, DSC("__VA_ARGS__"));
+ }
+
+ old_state = r->state;
+ r->state.in_directive = 1;
+ r->state.prevent_expansion = 1;
+ r->state.angled_headers = 0;
+
+ /* Run through the carefully-saved macros, insert them. */
+ for (i = 0; i < data->count; i++)
+ {
+ cpp_hashnode *h;
+ size_t namelen;
+ uchar *defn;
+
+ namelen = ustrcspn (data->defns[i], "( \n");
+ h = cpp_lookup (r, data->defns[i], namelen);
+ defn = data->defns[i] + namelen;
+
+ /* The PCH file is valid, so we know that if there is a definition
+ from the PCH file it must be the same as the one we had
+ originally, and so do not need to restore it. */
+ if (h->type == NT_VOID)
+ {
+ if (cpp_push_buffer (r, defn, ustrchr (defn, '\n') - defn, true)
+ != NULL)
+ {
+ _cpp_clean_line (r);
+ if (!_cpp_create_definition (r, h))
+ abort ();
+ _cpp_pop_buffer (r);
+ }
+ else
+ abort ();
+ }
+
+ free (data->defns[i]);
+ }
+ r->state = old_state;
+
+ _cpp_restore_pragma_names (r, data->saved_pragmas);
+
+ free (data);
+
+ if (deps_restore (r->deps, f, CPP_OPTION (r, restore_pch_deps) ? name : NULL)
+ != 0)
+ goto error;
+
+ if (! _cpp_read_file_entries (r, f))
+ goto error;
+
+ if (fread (&counter, sizeof (counter), 1, f) != 1)
+ goto error;
+
+ if (!r->counter)
+ r->counter = counter;
+
+ /* Read pushed macros. */
+ if (! _cpp_restore_pushed_macros (r, f))
+ goto error;
+ return 0;
+
+ error:
+ cpp_errno (r, CPP_DL_ERROR, "while reading precompiled header");
+ return -1;
+}
diff --git a/gcc-4.9/libcpp/po/ChangeLog b/gcc-4.9/libcpp/po/ChangeLog
new file mode 100644
index 000000000..302263e0b
--- /dev/null
+++ b/gcc-4.9/libcpp/po/ChangeLog
@@ -0,0 +1,561 @@
+2014-03-18 Joseph Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2014-03-03 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
+ id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
+ vi.po, zh_CN.po, zh_TW.po: Update.
+
+2014-02-02 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2013-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * pt_BR.po: New.
+
+2013-11-01 Joseph Myers <joseph@codesourcery.com>
+
+ * tr.po: Update.
+
+2013-10-03 Joseph Myers <joseph@codesourcery.com>
+
+ * sr.po: Update.
+
+2013-03-30 Joseph Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2013-03-27 Joseph Myers <joseph@codesourcery.com>
+
+ * zh_TW.po: Update.
+
+2013-03-15 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2013-03-09 Joseph Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2013-03-04 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
+ id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po,
+ zh_CN.po, zh_TW.po: Update.
+
+2013-02-24 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2013-02-05 Joseph Myers <joseph@codesourcery.com>
+
+ * eo.po: New.
+
+2012-09-26 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2012-09-25 Joseph Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2012-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2012-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2012-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sr.po: New.
+
+2012-04-24 Joseph Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2012-03-27 Joseph Myers <joseph@codesourcery.com>
+
+ * ja.po: Update.
+
+2012-03-18 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2012-01-31 Joseph Myers <joseph@codesourcery.com>
+
+ * uk.po: Update.
+
+2012-01-31 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2012-01-30 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
+ ja.po, nl.po, ru.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po,
+ zh_TW.po: Update.
+
+2012-01-27 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2011-07-08 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
+ ja.po, nl.po, ru.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po,
+ zh_TW.po: Update.
+
+2011-06-21 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2011-05-12 Joseph Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2011-04-03 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
+ ja.po, nl.po, ru.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po,
+ zh_TW.po: Update.
+
+2011-03-24 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2011-03-05 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2011-01-07 Joseph Myers <joseph@codesourcery.com>
+
+ * ru.po: New.
+
+2010-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
+ ja.po, nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po:
+ Update.
+
+2010-12-19 Joseph Myers <joseph@codesourcery.com>
+
+ * ja.po: Update.
+
+2010-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2010-12-18 Joseph Myers <joseph@codesourcery.com>
+
+ * ja.po: Update.
+
+2010-12-17 Joseph Myers <joseph@codesourcery.com>
+
+ * ja.po: Update.
+
+2010-12-13 Joseph Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2010-11-23 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2010-11-15 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2010-11-14 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fi.po, fr.po, id.po,
+ ja.po, nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po:
+ Update.
+
+2010-10-22 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2010-05-15 Joseph Myers <joseph@codesourcery.com>
+
+ * fi.po: New.
+
+2010-04-19 Joseph Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2010-04-18 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2010-04-16 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2010-04-16 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
+ nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2010-04-06 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2010-02-24 Joseph Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2010-02-09 Joseph Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2010-02-07 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po, nl.po: Update.
+
+2010-02-05 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2010-02-05 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
+ nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2010-01-11 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2010-01-09 Joseph Myers <joseph@codesourcery.com>
+
+ * nl.po: Update.
+
+2009-12-10 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2009-12-10 Joseph Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2009-12-07 Joseph Myers <joseph@codesourcery.com>
+
+ * id.po: Update.
+
+2009-12-04 Joseph Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2009-12-04 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
+ nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2009-12-02 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2009-10-17 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2009-09-19 Joseph Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2009-09-08 Joseph Myers <joseph@codesourcery.com>
+
+ * id.po: Update.
+
+2009-09-02 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2009-08-04 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2009-07-25 Joseph Myers <joseph@codesourcery.com>
+
+ * nl.po: Update.
+
+2009-07-23 Joseph Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
+ nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2009-04-22 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2009-03-28 Joseph Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2009-03-04 Joseph Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2009-02-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2009-02-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2008-12-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * nl.po, sv.po: Update.
+
+2008-11-29 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, id.po, ja.po,
+ nl.po, sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2008-11-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2008-11-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ * id.po: New.
+
+2008-08-27 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2008-03-28 Joseph S. Myers <joseph@codesourcery.com>
+
+ * fr.po: Update.
+
+2008-03-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2008-03-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * es.po, nl.po: Update.
+
+2008-03-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: Update.
+
+2008-03-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2008-03-14 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2008-03-14 Joseph S. Myers <joseph@codesourcery.com>
+
+ * rw.po: Remove.
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2008-02-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2008-01-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2008-01-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2008-01-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2007-12-05 Joseph S. Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2007-11-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2007-11-11 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po, zh_CN.po: Update.
+
+2007-11-10 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2007-11-08 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2007-10-21 Joseph S. Myers <joseph@codesourcery.com>
+
+ * es.po, vi.po: Update.
+
+2007-10-10 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po, uk,po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2007-08-21 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po: Update.
+ * uk.po: New.
+
+2007-06-26 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2007-03-07 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2006-10-22 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2006-09-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2006-06-24 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2006-06-24 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po, zh_CN.po, zh_TW.po: Update.
+
+2006-04-21 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2006-03-31 Joseph S. Myers <joseph@codesourcery.com>
+
+ * sv.po: Update.
+
+2006-03-13 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po, zh_CN.po: Update.
+ * zh_TW.po: New file.
+
+2005-12-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * vi.po: Update.
+
+2005-12-03 Joseph S. Myers <joseph@codesourcery.com>
+
+ * zh_CN.po: New file.
+
+2005-12-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po: Update.
+
+2005-11-20 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2005-09-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po: Update.
+
+2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
+
+ * tr.po, vi.po: Update.
+
+2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po: Update.
+
+2005-06-14 Joseph S. Myers <joseph@codesourcery.com>
+
+ * fr.po, sv.po: Update.
+
+2005-06-07 Jakub Jelinek <jakub@redhat.com>
+
+ * cpplib.pot: Regenerate.
+
+2005-05-05 Joseph S. Myers <joseph@codesourcery.com>
+
+ * nl.po: Update.
+
+2005-04-27 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ rw.po, sv.po, tr.po, vi.po: Update.
+
+2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * rw.po: New file.
+
+2005-03-29 Joseph S. Myers <joseph@codesourcery.com>
+
+ * de.po: Update.
+
+2005-03-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * tr.po: Update.
+ * vi.po: New file.
+
+2005-03-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po: Update.
+
+2005-02-25 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2004-12-15 Joseph S. Myers <joseph@codesourcery.com>
+
+ * fr.po: Update.
+
+2004-12-04 Joseph S. Myers <joseph@codesourcery.com>
+
+ * tr.po: Update.
+
+2004-12-02 Joseph S. Myers <joseph@codesourcery.com>
+
+ * es.po: Update.
+
+2004-12-01 Joseph S. Myers <joseph@codesourcery.com>
+
+ * be.po, ca.po, da.po, de.po, el.po, es.po, fr.po, ja.po, nl.po,
+ sv.po, tr.po: Update.
+
+2004-11-27 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
+
+ * cpplib.pot: Regenerate.
+
+2004-05-23 Paolo Bonzini <bonzini@gnu.org>
+
+ * be.po: Extracted from gcc/po/be.po.
+ * ca.po: Extracted from gcc/po/ca.po.
+ * da.po: Extracted from gcc/po/da.po.
+ * de.po: Extracted from gcc/po/de.po.
+ * el.po: Extracted from gcc/po/el.po.
+ * es.po: Extracted from gcc/po/es.po.
+ * fr.po: Extracted from gcc/po/fr.po.
+ * ja.po: Extracted from gcc/po/ja.po.
+ * nl.po: Extracted from gcc/po/nl.po.
+ * sv.po: Extracted from gcc/po/sv.po.
+ * tr.po: Extracted from gcc/po/tr.po.
diff --git a/gcc-4.9/libcpp/po/be.po b/gcc-4.9/libcpp/po/be.po
new file mode 100644
index 000000000..37e22b449
--- /dev/null
+++ b/gcc-4.9/libcpp/po/be.po
@@ -0,0 +1,2960 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.1\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2002-05-17 15:54+0200\n"
+"Last-Translator: Ales Nyakhaychyk <nyakhaychyk@i18n.linux.by>\n"
+"Language-Team: Belarusian <i18n@tut.by>\n"
+"Language: be\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr ""
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr ""
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1049
+#, fuzzy, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "\"%s\" - гэта не пачатак дэкларацыі"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+#: charset.c:1324
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "невядомая ESC-паслядоўнасць '\\%c'"
+
+#: charset.c:1332
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "невядомая ESC-паслядоўнасць '\\%c'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr ""
+
+#: charset.c:1512 charset.c:1576
+#, fuzzy
+#| msgid "character constant too long"
+msgid "character constant too long for its type"
+msgstr "сімвальная канстанта вельмі доўгая"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "мнагасімвальная сімвальная канстанта"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "пустая сімвальная канстанта"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr ""
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr ""
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr ""
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr ""
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr ""
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr ""
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr ""
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr ""
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1096
+#, fuzzy, c-format
+msgid "invalid #%s directive"
+msgstr "нерэчаісны ініцыялізатар"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1189
+#, fuzzy, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "Клас \"%s\" ужо існуе"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr ""
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1462
+#, fuzzy
+msgid "invalid #pragma push_macro directive"
+msgstr "нерэчаісны ініцыялізатар"
+
+#: directives.c:1517
+#, fuzzy
+msgid "invalid #pragma pop_macro directive"
+msgstr "нерэчаісны ініцыялізатар"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1625
+#, fuzzy, c-format
+#| msgid "cannot find source %s"
+msgid "cannot find source file %s"
+msgstr "не магу знайсці крыніцу %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1653
+#, fuzzy, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "нерэчаісны ініцыялізатар"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr ""
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr ""
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr ""
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr ""
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "незавершаныя каментарыі"
+
+#: errors.c:234
+msgid "stdout"
+msgstr ""
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:535
+#, fuzzy
+#| msgid "invalid string constant `%E'"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "`%E' - нерэчаісная нязьменная тыпу string"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:588
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "`%E' - нерэчаісная нязьменная тыпу string"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr ""
+
+#: expr.c:642
+#, fuzzy, c-format
+#| msgid "invalid string constant `%E'"
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "`%E' - нерэчаісная нязьменная тыпу string"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr ""
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr ""
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr ""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr ""
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr ""
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr ""
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1318
+#, fuzzy, c-format
+#| msgid "unbalanced #endif"
+msgid "unbalanced stack in %s"
+msgstr "незбалансаваны #endif"
+
+#: expr.c:1338
+#, fuzzy, c-format
+#| msgid "impossible operator '%s'"
+msgid "impossible operator '%u'"
+msgstr "немагчымы апэратар '%s'"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr ""
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr ""
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr ""
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr ""
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s - гэта блёчная прылада"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s - вельмі вялікі"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr ""
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr ""
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr ""
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr ""
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr ""
+
+#: lex.c:1104
+#, fuzzy, c-format
+#| msgid "`%D' is not a function,"
+msgid "`%.*s' is not in NFC"
+msgstr "`%D' - гэта ня функцыя,"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, fuzzy, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "сімвальная канстанта вельмі доўгая"
+
+#: lex.c:1611 lex.c:1633
+#, fuzzy
+#| msgid "unterminated comment"
+msgid "unterminated raw string"
+msgstr "незавершаныя каментарыі"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "прапушчан завяршаючы сімвал %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2660
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "немагу адчыніць файл \"%s\""
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr ""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+#, fuzzy
+msgid "could not determine file timestamp"
+msgstr "не магу знайсці крыніцу %s\n"
+
+#: macro.c:368
+#, fuzzy
+#| msgid "Could not open data file %s.\n"
+msgid "could not determine date and time"
+msgstr "Немагчыма адчыніць файл з дадзенымі %s.\n"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr ""
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr ""
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr ""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2926
+#, fuzzy
+#| msgid "missing white space after number '%.*s'"
+msgid "missing whitespace after the macro name"
+msgstr "прапушчан прабел пасля нумара \"%.*s\""
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr ""
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:641
+#, fuzzy, c-format
+#| msgid "label `%s' used but not defined"
+msgid "%s: not used because `%.*s' not defined"
+msgstr "адмеціна `%s' выкарыстоўвываецца, але ня вызначана"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr ""
+
+#~ msgid "wrong number of arguments specified for `%s' attribute"
+#~ msgstr "памылковая колькасьць аргументаў, зададзеных для атрыбута `%s'"
+
+#~ msgid "`%s' attribute ignored"
+#~ msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#~ msgid "unknown machine mode `%s'"
+#~ msgstr "невядомы рэжым машыны \"%s\""
+
+#~ msgid "no data type for mode `%s'"
+#~ msgstr "няма тыпа дадзеных для рэжыма \"%s\""
+
+#~ msgid "section of `%s' conflicts with previous declaration"
+#~ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#~ msgid "section attributes are not supported for this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "`%s' attribute ignored for `%s'"
+#~ msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#, fuzzy
+#~ msgid "second arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#, fuzzy
+#~ msgid "third arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#~ msgid "__builtin_saveregs not supported by this target"
+#~ msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
+
+#~ msgid "argument of `__builtin_args_info' must be constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#~ msgid "argument of `__builtin_args_info' out of range"
+#~ msgstr "аргумент `__builtin_args_info' выйшаў за межы"
+
+#~ msgid "missing argument in `__builtin_args_info'"
+#~ msgstr "прапушчан аргумент у `__builtin_args_info'"
+
+#~ msgid "`va_start' used in function with fixed args"
+#~ msgstr ""
+#~ "`va_start' выкарыстоўвываецца ў функцыі з нязьменнай\n"
+#~ " колькасьцю аргументаў"
+
+#~ msgid "`__builtin_next_arg' called without an argument"
+#~ msgstr "\"__buitin_next_arg\" выклікаецца без аргумента"
+
+#~ msgid "invalid use of `restrict'"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "cannot disable built-in function `%s'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#~ msgid "too few arguments to function `%s'"
+#~ msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#~ msgid "too many arguments to function `%s'"
+#~ msgstr "вельмі шмат аргумэнтаў у функцыі `%s'"
+
+#, fuzzy
+#~ msgid "ISO C++ forbids taking the address of a label"
+#~ msgstr "ISO C не дазваляе пусты ізыходны файл"
+
+#, fuzzy
+#~ msgid "ISO C forbids taking the address of a label"
+#~ msgstr "ISO C не дазваляе пусты ізыходны файл"
+
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "невядомы C стандарт `%s'"
+
+#~ msgid "label `%s' defined but not used"
+#~ msgstr "адмеціна `%s' вызначана, але ня выкарыстоўваецца"
+
+#, fuzzy
+#~ msgid "previous declaration of function `%s' with attribute noinline"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "previous declaration of function `%s' was inline"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "a parameter"
+#~ msgstr "невыкарыстаемы параметр \"%s\""
+
+#, fuzzy
+#~ msgid "a global declaration"
+#~ msgstr "Нерэчаіснае абвяшчэнне"
+
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr "паўторнае абвяшчэньне адмеціны `%s'"
+
+#~ msgid "this is a previous declaration"
+#~ msgstr "гэта папярэдняе абвяшчэньне"
+
+#~ msgid "empty declaration"
+#~ msgstr "пустое абвяшчэньне"
+
+#, fuzzy
+#~ msgid "ISO C89 does not support `[*]' array declarators"
+#~ msgstr "ISO C89 не падтрымлівае \"long long\""
+
+#~ msgid "`%s' is usually a function"
+#~ msgstr "`%s' - звычайна функцыя"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "параметр \"%s\" ініцыялізаваны"
+
+#~ msgid "`long long long' is too long for GCC"
+#~ msgstr "`long long long' - вельмі доўга для GCC"
+
+#~ msgid "ISO C89 does not support `long long'"
+#~ msgstr "ISO C89 не падтрымлівае `long long'"
+
+#~ msgid "duplicate `%s'"
+#~ msgstr "паўтарэньне `%s'"
+
+#~ msgid "long, short, signed or unsigned invalid for `%s'"
+#~ msgstr "long, short, signed ці unsigned нерэчаісны для \"%s\""
+
+#~ msgid "complex invalid for `%s'"
+#~ msgstr "complex нерэчаісны для \"%s\""
+
+#~ msgid "ISO C89 does not support complex types"
+#~ msgstr "ISO C89 не падтрымлівае комлексныя тыпы"
+
+#~ msgid "ISO C does not support plain `complex' meaning `double complex'"
+#~ msgstr "ISO C не падтрымлівае просты \"complex\" у значэнні \"double complex\""
+
+#~ msgid "ISO C does not support complex integer types"
+#~ msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
+
+#~ msgid "duplicate `const'"
+#~ msgstr "паўтарэнне \"const\""
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr "паўтарэнне \"restrict\""
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr "паўтарэнне \"volatile\""
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "памер масіва \"%s\" адмоўны"
+
+#~ msgid "size of array `%s' is too large"
+#~ msgstr "памер масіва \"%s\" вельмі вялікі"
+
+#, fuzzy
+#~ msgid "redefinition of `struct %s'"
+#~ msgstr "перанакіраванне stdout: %s"
+
+#~ msgid "union"
+#~ msgstr "аб'яднанне"
+
+#~ msgid "structure"
+#~ msgstr "структура"
+
+#~ msgid "struct"
+#~ msgstr "структура"
+
+#~ msgid "members"
+#~ msgstr "члены"
+
+#~ msgid "bit-field `%s' has invalid type"
+#~ msgstr "бітавае поле \"%s\" мае нерэчаісны тып"
+
+#~ msgid "no previous prototype for `%s'"
+#~ msgstr "няма папярэдняга прататыпа для \"%s\""
+
+#~ msgid "no previous declaration for `%s'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#~ msgid "return type of `%s' is not `int'"
+#~ msgstr "вяртаемы тып \"%s\" не \"int\""
+
+#~ msgid "first argument of `%s' should be `int'"
+#~ msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#~ msgid "second argument of `%s' should be `char **'"
+#~ msgstr "другім аргументам \"%s\" павінен быць \"char **\""
+
+#~ msgid "size of return value of `%s' is %u bytes"
+#~ msgstr "памер вяртаемага значэння \"%s\" %u байт"
+
+#~ msgid "size of return value of `%s' is larger than %d bytes"
+#~ msgstr "памер вяртаемага значэння \"%s\" больш чым %d байт"
+
+#~ msgid "function does not return string type"
+#~ msgstr "функцыя не вяртае тып string"
+
+#~ msgid "`0' flag"
+#~ msgstr "'0' флаг"
+
+#~ msgid "`O' modifier"
+#~ msgstr "'O' мадыфікатар"
+
+#~ msgid "%s does not support %s"
+#~ msgstr "%s не падтрымлівае %s"
+
+#~ msgid "syntax error"
+#~ msgstr "сінтаксічная памылка"
+
+#, fuzzy
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "сінтаксічная памылка"
+
+#~ msgid "ISO C forbids an empty source file"
+#~ msgstr "ISO C не дазваляе пусты ізыходны файл"
+
+#, fuzzy
+#~ msgid "first argument to __builtin_choose_expr not a constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr "\"%s\" - гэта не пачатак дэкларацыі"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO C не дазваляе дэкларацыі метак (label)"
+
+#~ msgid "empty body in an else-statement"
+#~ msgstr "пустое цела ў else-выражэнні"
+
+#~ msgid "ISO C forbids `goto *expr;'"
+#~ msgstr "ISO C не падтрымлівае \"goto *expr;\""
+
+#~ msgid "parse error"
+#~ msgstr "граматычная памылка"
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s на прыканцы ўводу"
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s перад %s'%c'"
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s перад %s'\\x%x'"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s перад \"%s\""
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s перад знакам '%s'"
+
+#, fuzzy
+#~ msgid "YYDEBUG not defined"
+#~ msgstr "YYDEBUG не вызначан."
+
+#, fuzzy
+#~ msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "asm declaration conficts with previous rename"
+#~ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#~ msgid "destructor needed for `%#D'"
+#~ msgstr "дэструктару неабходны \"%#D\""
+
+#~ msgid "`%s' has an incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(Аб кожным неабвешчаным ідэнтыфікатары паведамляецца"
+
+#~ msgid "for each function it appears in.)"
+#~ msgstr "адзін раз для кожнай функцыі, дзе ён з'яўляецца.)"
+
+#~ msgid "too many arguments to function"
+#~ msgstr "вельмі шмат аргументаў у функцыі"
+
+#~ msgid "too few arguments to function"
+#~ msgstr "не хапае аргументаў у функцыі"
+
+#~ msgid "ISO C does not support `++' and `--' on complex types"
+#~ msgstr "ISO C не падтрымлівае \"++\" і \"--\" для тыпу complex"
+
+#, fuzzy
+#~ msgid "wrong type argument to increment"
+#~ msgstr "не хапае аргументаў у функцыі"
+
+#, fuzzy
+#~ msgid "cannot take address of bit-field `%s'"
+#~ msgstr "не магу атрымаць адрас бітавага поля \"%s\""
+
+#~ msgid "initialization"
+#~ msgstr "ініцыялізацыя"
+
+#~ msgid "invalid initializer"
+#~ msgstr "нерэчаісны ініцыялізатар"
+
+#~ msgid "missing initializer"
+#~ msgstr "прапушчан ініцыялізатар"
+
+#~ msgid "return"
+#~ msgstr "вяртанне"
+
+#~ msgid "called from here"
+#~ msgstr "выклікана адсюль"
+
+#~ msgid "internal error"
+#~ msgstr "унутраная памылка"
+
+#~ msgid "no arguments"
+#~ msgstr "няма аргументаў"
+
+#~ msgid "%d constructor(s) found\n"
+#~ msgstr "%d канструктар(аў) знойдзен(а)\n"
+
+#~ msgid "%d destructor(s) found\n"
+#~ msgstr "%d дэструктар(аў) знойдзен(а)\n"
+
+#~ msgid "[cannot find %s]"
+#~ msgstr "[нельга знайсці %s]"
+
+#~ msgid "cannot find `%s'"
+#~ msgstr "нельга знайсці \"%s\""
+
+#~ msgid "redirecting stdout: %s"
+#~ msgstr "перанакіраванне stdout: %s"
+
+#~ msgid "cannot find `nm'"
+#~ msgstr "нельга знайсці \"nm\""
+
+#~ msgid "pipe"
+#~ msgstr "канвеер"
+
+#~ msgid "unable to open file '%s'"
+#~ msgstr "немагу адчыніць файл \"%s\""
+
+#~ msgid "not found\n"
+#~ msgstr "не знойдзена\n"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "дрэнная магічная лічба ў файле \"%s\""
+
+#~ msgid "cannot find `ldd'"
+#~ msgstr "не магу знайсці \"ldd\""
+
+#, fuzzy
+#~ msgid "library lib%s not found"
+#~ msgstr "Бібліятэка lib%s не знойдзена"
+
+#~ msgid "bad magic number"
+#~ msgstr "дрэнны \"магічны\" нумар"
+
+#~ msgid "bad header version"
+#~ msgstr "дрэнная версія загалоўка"
+
+#~ msgid "unsupported version"
+#~ msgstr "непадтрымліваемая версія"
+
+#, fuzzy
+#~ msgid "missing binary operator"
+#~ msgstr "прапушчан ініцыялізатар"
+
+#, fuzzy
+#~ msgid "missing binary operator before '%s'"
+#~ msgstr "прапушчан прабел пасля нумара \"%.*s\""
+
+#~ msgid "%s: Not a directory"
+#~ msgstr "%s: не дырэкторыя"
+
+#, fuzzy
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "немагчыма стварыць дырэкторыю \"%s\""
+
+#, fuzzy
+#~ msgid "argument missing after %s"
+#~ msgstr "аргумент для \"%s\" прапушчан"
+
+#, fuzzy
+#~ msgid "output filename specified twice"
+#~ msgstr "не зададзены ўваходзячыя файлы"
+
+#, fuzzy
+#~ msgid "unknown string token %s\n"
+#~ msgstr "невядомая назва рэгістра: %s\n"
+
+#, fuzzy
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "невядомая ESC-паслядоўнасць '\\%c'"
+
+#, fuzzy
+#~ msgid "invalid option %s"
+#~ msgstr "Нерэчаісны выбар %s"
+
+#~ msgid "too many input files"
+#~ msgstr "вельмі шмат уваходзячых файлаў"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: увага: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: увага: "
+
+#~ msgid "%s: %s: "
+#~ msgstr "%s: %s: "
+
+#, fuzzy
+#~ msgid "In member function `%s':"
+#~ msgstr "у функцыі \"%s\":"
+
+#~ msgid "In function `%s':"
+#~ msgstr "у функцыі \"%s\":"
+
+#~ msgid "compilation terminated.\n"
+#~ msgstr "кампіляцыя завершана.\n"
+
+#~ msgid "In file included from %s:%d"
+#~ msgstr "У файле уключаным з %s:%d"
+
+#~ msgid ":\n"
+#~ msgstr ":\n"
+
+#~ msgid "can't get current directory"
+#~ msgstr "не магу атрымаць бягучую дырэкторыю"
+
+#~ msgid "abort in %s, at %s:%d"
+#~ msgstr "спынена ў %s, ля %s:%d"
+
+#~ msgid "invalid %%-code"
+#~ msgstr "нерэчаісны %%-код"
+
+#~ msgid "unused parameter `%s'"
+#~ msgstr "невыкарыстаемы параметр \"%s\""
+
+#, fuzzy
+#~ msgid "missing argument to `%s' option"
+#~ msgstr "аргумент для \"%s\" прапушчан"
+
+#, fuzzy
+#~ msgid "extraneous argument to `%s' option"
+#~ msgstr "аргумент для \"%s\" прапушчан"
+
+#~ msgid "-pipe not supported"
+#~ msgstr "-pipe не падтрымліваецца"
+
+#~ msgid "# %s %.2f %.2f\n"
+#~ msgstr "# %s %.2f %.2f\n"
+
+#~ msgid "Usage: %s [options] file...\n"
+#~ msgstr "Выкарыстанне: %s [выбары] файл...\n"
+
+#~ msgid "Options:\n"
+#~ msgstr "Выбары:\n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help Адлюстраваць гэту інфармацыю\n"
+
+#~ msgid " -dumpversion Display the version of the compiler\n"
+#~ msgstr " -dumpversion Адлюстраваць версію кампілятара\n"
+
+#, fuzzy
+#~ msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+#~ msgstr " -o <файл> Памясціць вывад у <файл>\n"
+
+#~ msgid " -o <file> Place the output into <file>\n"
+#~ msgstr " -o <файл> Памясціць вывад у <файл>\n"
+
+#, fuzzy
+#~ msgid "argument to `-l' is missing"
+#~ msgstr "аргумент для \"-x\" прапушчан"
+
+#~ msgid "argument to `-x' is missing"
+#~ msgstr "аргумент для \"-x\" прапушчан"
+
+#~ msgid "argument to `-%s' is missing"
+#~ msgstr "аргумент для \"-%s\" прапушчан"
+
+#, fuzzy
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr "Нерэчаісная спецыфікацыя! Памылка ў cc."
+
+#~ msgid "%s\n"
+#~ msgstr "%s\n"
+
+#, fuzzy
+#~ msgid "spec failure: unrecognized spec option '%c'"
+#~ msgstr "нераспазнаны выбар \"-%s\""
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr "нераспазнаны выбар \"-%s\""
+
+#~ msgid "programs: %s\n"
+#~ msgstr "праграмы: %s\n"
+
+#~ msgid "libraries: %s\n"
+#~ msgstr "бібліятэкі: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Інструкцыі для паведамленняў аб памылках глядзіце тут:\n"
+
+#~ msgid "gcc version %s\n"
+#~ msgstr "версія gcc %s\n"
+
+#, fuzzy
+#~ msgid "no input files"
+#~ msgstr "няма ўваходзячых файлаў"
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s кампілятар не ўсталяваны на гэтай сістэме"
+
+#~ msgid "language %s not recognized"
+#~ msgstr "мова %s не распазнана"
+
+#, fuzzy
+#~ msgid "internal gcc abort"
+#~ msgstr "унутраная памылка"
+
+#, fuzzy
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " --help Адлюстраваць гэту інфармацыю\n"
+
+#, fuzzy
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -dumpversion Адлюстраваць версію кампілятара\n"
+
+#, fuzzy
+#~ msgid " -n, --no-output Do not create an output file\n"
+#~ msgstr " -o <файл> Памясціць вывад у <файл>\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ "%s.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Інструкцыі для паведамленняў аб памылках глядзіце тут:\n"
+
+#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+
+#~ msgid "can't open %s"
+#~ msgstr "немагчыма адчыніць %s"
+
+#~ msgid "invalid parameter `%s'"
+#~ msgstr "нерэчаісны парамэтр `%s'"
+
+#~ msgid "%s: internal abort\n"
+#~ msgstr "%s: унутраная памылка (датэрміновае завяршэньне)\n"
+
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: кампілюецца \"%s\"\n"
+
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: немагчыма знішчыць файл \"%s\": %s\n"
+
+#~ msgid "%s: %d: warning: no extern definition for `%s'\n"
+#~ msgstr "%s: %d: увага: няма знешняга (extern) абвяшчэння для \"%s\"\n"
+
+#~ msgid "%s: can't open file `%s' for reading: %s\n"
+#~ msgstr "%s: немагчыма адчыніць файл `%s' для чытаньня: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: памылка чытаньня файла ўводу `%s': %s\n"
+
+#~ msgid "%s: warning: file `%s' already saved in `%s'\n"
+#~ msgstr "%s: увага: файл \"%s\" ужо запісан у \"%s\"\n"
+
+#~ msgid "%s: can't change mode of file `%s': %s\n"
+#~ msgstr "%s: немагчыма зьмяніць рэжым файла `%s': %s\n"
+
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: файл уводу павінен мець суфікс .c: %s\n"
+
+#~ msgid "floating point overflow"
+#~ msgstr "перапаўненьне плаваючай кропкі"
+
+#~ msgid "unknown register name: %s"
+#~ msgstr "невядомая назва рэгістра: %s"
+
+#, fuzzy
+#~ msgid "could not find a spill register"
+#~ msgstr "Не выкарыстоўваць рэгістра sb"
+
+#, fuzzy
+#~ msgid "unrecognizable insn:"
+#~ msgstr "нераспазнаны выбар \"-%s\""
+
+#, fuzzy
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "undefined named operand '%s'"
+#~ msgstr "нераспазнаны аператар %s"
+
+#~ msgid "unused variable `%s'"
+#~ msgstr "невыкарыстоўваемая пераменная \"%s\""
+
+#~ msgid "size of `%s' is %d bytes"
+#~ msgstr "памер \"%s\" - %d байт"
+
+#~ msgid "size of `%s' is larger than %d bytes"
+#~ msgstr "памер \"%s\" больш чам %d байт"
+
+#~ msgid "Enable exception handling"
+#~ msgstr "Уключыць апрацоўку выключэньняў"
+
+#~ msgid "Insert stack checking code into the program"
+#~ msgstr "Уключаць код правэркі стэку ў праграму"
+
+#~ msgid "Enable SSA optimizations"
+#~ msgstr "Уключаць SSA аптымізацыю"
+
+#, fuzzy
+#~ msgid "Do not recognize any built in functions"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#, fuzzy
+#~ msgid "invalid option `%s'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "internal error: %s"
+#~ msgstr "Унутраная памылка: %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Language specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Выбары, спецыфічныя для мовы:\n"
+
+#~ msgid ""
+#~ "\n"
+#~ " Options for %s:\n"
+#~ msgstr ""
+#~ "\n"
+#~ " Выбары для %s:\n"
+
+#, fuzzy
+#~ msgid "unrecognized option `%s'"
+#~ msgstr "нераспазнаны выбар \"-%s\""
+
+#, fuzzy
+#~ msgid "-Wid-clash-LEN is no longer supported"
+#~ msgstr "-pipe не падтрымліваецца."
+
+#~ msgid "`%s': unknown or unsupported -g option"
+#~ msgstr "\"%s\" : невядомы ці непадтрымліваемы выбар -g"
+
+#~ msgid "invalid --param option: %s"
+#~ msgstr "нерэчаісны выбар --param : %s"
+
+#~ msgid ""
+#~ "%s%s%s version %s (%s)\n"
+#~ "%s\tcompiled by GNU C version %s.\n"
+#~ "%s%s%s version %s (%s) compiled by CC.\n"
+#~ msgstr ""
+#~ "%s%s%s версія %s (%s)\n"
+#~ "%s\tзкампілявана GNU C версія %s.\n"
+#~ "%s%s%s версія %s (%s) зкампілявана CC.\n"
+
+#~ msgid "options enabled: "
+#~ msgstr "выбары ўключаны:"
+
+#~ msgid "can't open %s for writing"
+#~ msgstr "немагчыма адчыніць %s для запісу"
+
+#, fuzzy
+#~ msgid "ignoring command line option '%s'"
+#~ msgstr "Нераспазнаны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#~ msgid "error writing to %s"
+#~ msgstr "памылка запісу ў %s"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "выкарыстаньне: %s [выключальнікі] увод вывад"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#памылка%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#увага%.*s"
+
+#~ msgid "invalid register name for `%s'"
+#~ msgstr "нерэчаісная назва рэгістра `%s'"
+
+#~ msgid "optimization turned on"
+#~ msgstr "аптымізацыя уключана"
+
+#~ msgid "optimization turned off"
+#~ msgstr "аптымізацыя выключана"
+
+#~ msgid "invalid %%Q value"
+#~ msgstr "дрэннае %%Q значэнне"
+
+#~ msgid "invalid %%C value"
+#~ msgstr "нерэчаіснае значэньне %%C"
+
+#~ msgid "invalid %%N value"
+#~ msgstr "нерэчаіснае значэньне %%N"
+
+#~ msgid "invalid %%M value"
+#~ msgstr "нерэчаіснае значэньне %%M"
+
+#~ msgid "invalid %%m value"
+#~ msgstr "нерэчаіснае значэньне %%m"
+
+#~ msgid "invalid %%L value"
+#~ msgstr "нерэчаіснае значэньне %%L"
+
+#~ msgid "invalid %%O value"
+#~ msgstr "нерэчаіснае значэньне %%O"
+
+#~ msgid "invalid %%P value"
+#~ msgstr "нерэчаіснае значэньне %%P"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "нерэчаіснае значэньне %%V"
+
+#, fuzzy
+#~ msgid "-f%s ignored for Unicos/Mk (not supported)"
+#~ msgstr "-pipe не падтрымліваецца."
+
+#, fuzzy
+#~ msgid "-mieee not supported on Unicos/Mk"
+#~ msgstr "-pipe не падтрымліваецца"
+
+#~ msgid "invalid %%H value"
+#~ msgstr "нерэчаіснае значэньне %%H"
+
+#, fuzzy
+#~ msgid "invalid %%J value"
+#~ msgstr "дрэннае %%Q значэнне"
+
+#~ msgid "invalid %%r value"
+#~ msgstr "нерэчаіснае значэньне %%r"
+
+#~ msgid "invalid %%R value"
+#~ msgstr "нерэчаіснае значэньне %%R"
+
+#~ msgid "invalid %%h value"
+#~ msgstr "нерэчаіснае значэньне %%h"
+
+#~ msgid "invalid %%U value"
+#~ msgstr "нерэчаіснае значэньне %%U"
+
+#~ msgid "invalid %%s value"
+#~ msgstr "нерэчаіснае значэньне %%v"
+
+#~ msgid "invalid %%E value"
+#~ msgstr "нерэчаіснае значэньне %%E"
+
+#~ msgid "invalid %%xn code"
+#~ msgstr "нерэчаіснае значэньне %%xn"
+
+#~ msgid "Use hardware fp"
+#~ msgstr "Выкарыстоўваць апаратную плаваючую кропку"
+
+#~ msgid "Do not use hardware fp"
+#~ msgstr "Не выкарыстоўваць апаратную плаваючую кропку"
+
+#, fuzzy
+#~ msgid "argument of `%s' attribute is not a string constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#, fuzzy
+#~ msgid "invalid operand to %%R code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%H/%%L code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%U code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%V code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "target CPU does not support THUMB instructions"
+#~ msgstr "ISO C не падтрымлівае комлексныя цэлалікавыя тыпы"
+
+#, fuzzy
+#~ msgid "`%s' attribute only applies to functions"
+#~ msgstr "\"%s\" звычайна функцыя"
+
+#, fuzzy
+#~ msgid "invalid insn:"
+#~ msgstr "Нерэчаісны выбар %s"
+
+#~ msgid "internal error: bad register: %d"
+#~ msgstr "унутраная памылка: дрэнны рэгістр: %d"
+
+#~ msgid "unrecognized address"
+#~ msgstr "нераспазнаны адрас"
+
+#, fuzzy
+#~ msgid "unrecognized supposed constant"
+#~ msgstr "нераспазнаны выбар \"-%s\""
+
+#, fuzzy
+#~ msgid "Do not use condition codes from normal instructions"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#, fuzzy
+#~ msgid "Generate code for the specified chip or CPU version"
+#~ msgstr "Генерыраваць код для дадзенага ЦП"
+
+#, fuzzy
+#~ msgid "Do not make adjacent short instructions parallel"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#~ msgid "invalid mode for gen_tst_reg"
+#~ msgstr "нерэчаісны рэжым для gen_tst_reg"
+
+#, fuzzy
+#~ msgid "Don't pass parameters in registers"
+#~ msgstr "Не выкарыстоўваць рэгістра sb"
+
+#, fuzzy
+#~ msgid "Generate code for near calls"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Don't generate code for near calls"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Generate code for near jumps"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Don't generate code for near jumps"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Generate code for a bit-manipulation unit"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Don't generate code for a bit-manipulation unit"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#, fuzzy
+#~ msgid "Generate code for memory map1"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Generate code for memory map2"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Generate code for memory map3"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "Generate code for memory map4"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#, fuzzy
+#~ msgid "-ms2600 is used without -ms"
+#~ msgstr "-ms2600 ужываецца без -ms."
+
+#~ msgid "Do not generate char instructions"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#, fuzzy
+#~ msgid "argument to `%s' attribute larger than %d"
+#~ msgstr "памер \"%s\" больш чам %d байт"
+
+#, fuzzy
+#~ msgid "invalid operand code `%c'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "unknown insn mode"
+#~ msgstr "невядомы рэжым машыны \"%s\""
+
+#, fuzzy
+#~ msgid "`%s' attribute only applies to variables"
+#~ msgstr "\"%s\" атрыбут ігнарыруецца"
+
+#~ msgid "Create GUI application"
+#~ msgstr "Стварыць GUI прыдатак"
+
+#~ msgid "Create console application"
+#~ msgstr "Стварыць кансольны прыдатак"
+
+#~ msgid "Generate code for a DLL"
+#~ msgstr "Стварыць код для DLL"
+
+#~ msgid "Generate code for given CPU"
+#~ msgstr "Генерыраваць код для дадзенага ЦП"
+
+#~ msgid "Use given assembler dialect"
+#~ msgstr "Выкарыстоўвываць зададзены дыялект асэмблера"
+
+#~ msgid "Generate ELF output"
+#~ msgstr "Стварыць ELF-вывад"
+
+#~ msgid "Generate code for GNU as"
+#~ msgstr "Генерыраваць код для GNU as"
+
+#~ msgid "Generate code for Intel as"
+#~ msgstr "Генерыраваць код для Intel as"
+
+#~ msgid "Generate code for GNU ld"
+#~ msgstr "Генерыраваць код для GNU ld"
+
+#~ msgid "Generate code for Intel ld"
+#~ msgstr "Генерыраваць код для Intel ld"
+
+#~ msgid "Generate code without GP reg"
+#~ msgstr "Генерыраваць код без GP reg"
+
+#, fuzzy
+#~ msgid "invalid argument of `%s' attribute"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "invalid operand to %%s code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%p code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%T/%%B code"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid operand to %%N code"
+#~ msgstr "нерэчаісны %%-код"
+
+#~ msgid "bad address"
+#~ msgstr "дрэнны адрас"
+
+#, fuzzy
+#~ msgid "lo_sum not of register"
+#~ msgstr "Не выкарыстоўваць рэгістра sb"
+
+#, fuzzy
+#~ msgid "invalid register in the instruction"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "invalid rotate insn"
+#~ msgstr "Нерэчаісны выбар %s"
+
+#~ msgid "Generate code for a 68020"
+#~ msgstr "Ствараць код для 68020"
+
+#~ msgid "Generate code for a 68000"
+#~ msgstr "Ствараць код для 68000"
+
+#, fuzzy
+#~ msgid "Do not use the bit-field instructions"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#, fuzzy
+#~ msgid "Generate code for a Sun FPA"
+#~ msgstr "Стварыць код для DLL"
+
+#, fuzzy
+#~ msgid "Do not generate code for a Sun FPA"
+#~ msgstr "Стварыць код для DLL"
+
+#, fuzzy
+#~ msgid "Generate code for a Sun Sky board"
+#~ msgstr "Стварыць код для DLL"
+
+#~ msgid "Generate code for a 68881"
+#~ msgstr "Ствараць код для 68881"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Ствараць код для 68030"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Ствараць код для 68040"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Ствараць код для 68060"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Ствараць код для 520X"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Ствараць код для 68851"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Не ствараць код для 68851"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Ствараць код для 68302"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Ствараць код для 68332"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Ствараць код для цп32"
+
+#~ msgid "invalid %%x/X value"
+#~ msgstr "нерэчаіснае значэньне %%x/X"
+
+#~ msgid "invalid %%o value"
+#~ msgstr "нерэчаіснае значэньне %%o"
+
+#, fuzzy
+#~ msgid "invalid %%s/S value"
+#~ msgstr "дрэннае %%Q значэнне"
+
+#, fuzzy
+#~ msgid "invalid %%P operand"
+#~ msgstr "нерэчаісны %%-код"
+
+#, fuzzy
+#~ msgid "invalid %%D value"
+#~ msgstr "дрэннае %%Q значэнне"
+
+#, fuzzy
+#~ msgid "invalid option `-mshort-data-%s'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "invalid option `-mstack-increment=%s'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "invalid option `entry%s'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "can't rewind temp file"
+#~ msgstr "немагчыма стварыць часовы файл"
+
+#, fuzzy
+#~ msgid "can't write to output file"
+#~ msgstr "не магу запісаць ў %s"
+
+#, fuzzy
+#~ msgid "can't read from temp file"
+#~ msgstr "не магу прачытаць з %s"
+
+#, fuzzy
+#~ msgid "can't close temp file"
+#~ msgstr "немагчыма зачыніць уваходзячы файл %s"
+
+#~ msgid "Use GNU as"
+#~ msgstr "Выкарыстоўваць GNU як"
+
+#~ msgid "Use symbolic register names"
+#~ msgstr "Ужываць сімвалічныя назвы рэгістраў"
+
+#~ msgid "Don't use symbolic register names"
+#~ msgstr "Не ўжываць сімвалічныя назва рэгістраў"
+
+#~ msgid "Output compiler statistics"
+#~ msgstr "Вывесці статыстыку капілятара"
+
+#~ msgid "Don't output compiler statistics"
+#~ msgstr "Не выводзіць статыстыку кампілятара"
+
+#~ msgid "Use hardware floating point"
+#~ msgstr "Выкарыстоўваць апаратную \"плаваючую кропку\""
+
+#~ msgid "Use 64-bit FP registers"
+#~ msgstr "Выкарыстоўваць 64-бітныя FP-рэгістры"
+
+#~ msgid "Use 32-bit FP registers"
+#~ msgstr "Выкарыстоўваць 32-бітныя FP-рэгістры"
+
+#~ msgid "Use 64-bit general registers"
+#~ msgstr "Выкарыстоўваць 64-бітныя галоўныя рэгістры"
+
+#~ msgid "Use 32-bit general registers"
+#~ msgstr "Выкарыстоўваць 32-бітныя галоўныя рэгістры"
+
+#~ msgid "Use Irix PIC"
+#~ msgstr "Выкарыстоўваць Irix PIC"
+
+#~ msgid "Don't use Irix PIC"
+#~ msgstr "Не выкарыстоўваць Irix PIC"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "Выкарыстоўваць OSF PIC"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Не выкарыстоўваць OSF PIC"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Аптымізаваць для 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Аптымізаваць для 4650"
+
+#, fuzzy
+#~ msgid "-f%s not supported: ignored"
+#~ msgstr "-pipe не падтрымліваецца"
+
+#~ msgid "Target the AM33 processor"
+#~ msgstr "Мэта - AM33 працэсар"
+
+#~ msgid "Don't use hardware fp"
+#~ msgstr "Не выкарыстоўваць апаратную fp"
+
+#~ msgid "Optimize for 32532 cpu"
+#~ msgstr "Аптымізаваць для 32532 ЦП"
+
+#~ msgid "Optimize for 32332 cpu"
+#~ msgstr "Аптымізаваць для 32332 ЦП"
+
+#~ msgid "Optimize for 32032"
+#~ msgstr "Аптымізаваць для 32032 ЦП"
+
+#~ msgid "Do not use register sb"
+#~ msgstr "Не выкарыстоўваць рэгістра sb"
+
+#, fuzzy
+#~ msgid "Do not use bit-field instructions"
+#~ msgstr "Не генерыраваць сімвальныя інструкцыі"
+
+#~ msgid "Use 32 bit int"
+#~ msgstr "Выкарыстоўваць 32-х бітны int"
+
+#~ msgid "Use 16 bit int"
+#~ msgstr "Выкарыстоўваць 16-ці бітны int"
+
+#~ msgid "Use 32 bit float"
+#~ msgstr "Выкарыстоўваць 32-х бітны float"
+
+#~ msgid "Use 64 bit float"
+#~ msgstr "Выкарыстоўваць 64-х бітны float"
+
+#~ msgid "Use UNIX assembler syntax"
+#~ msgstr "Выкарыстоўваць UNIX-сінтакс для асэмблера"
+
+#~ msgid "Use DEC assembler syntax"
+#~ msgstr "Выкарыстоўваць DEC-сінтакс для асэмблера"
+
+#, fuzzy
+#~ msgid "unknown ABI specified: '%s'"
+#~ msgstr "невядомы рэжым машыны \"%s\""
+
+#, fuzzy
+#~ msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+#~ msgstr "аргумент `__builtin_args_info' павінен быць канстантай"
+
+#, fuzzy
+#~ msgid "argument 1 of __builtin_altivec_predicate is out of range"
+#~ msgstr "аргумент `__builtin_args_info' выйшаў за межы"
+
+#, fuzzy
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "першым аргументам \"%s\" павінен быць \"int\""
+
+#~ msgid "Don't use AltiVec instructions"
+#~ msgstr "Не выкарыстоўваць інструкцыі AltiVec"
+
+#~ msgid "Don't use EABI"
+#~ msgstr "Не выкарыстоўваць EABI"
+
+#~ msgid "Use alternate register names"
+#~ msgstr "Выкарыстоўвываць альтэрнатыўныя назвы рэгістраў"
+
+#~ msgid "Don't use alternate register names"
+#~ msgstr "Не выкарыстоўвываць альтэрнатыўныя назвы рэгістраў"
+
+#, fuzzy
+#~ msgid "Don't use bras"
+#~ msgstr "Не выкарыстоўваць Irix PIC"
+
+#, fuzzy
+#~ msgid "__builtin_saveregs not supported by this subtarget"
+#~ msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
+
+#, fuzzy
+#~ msgid "Profiling is not supported on this target."
+#~ msgstr "__buitin_saveregs не падтрымліваецца гэтай мэтай"
+
+#~ msgid "invalid %%Y operand"
+#~ msgstr "нерэчаісны %%Y аперанд"
+
+#~ msgid "invalid %%A operand"
+#~ msgstr "нерэчаісны %%A аперанд"
+
+#~ msgid "invalid %%B operand"
+#~ msgstr "нерэчаісны %%B аперанд"
+
+#~ msgid "invalid %%c operand"
+#~ msgstr "нерэчаісны %%c аперанд"
+
+#~ msgid "invalid %%C operand"
+#~ msgstr "нерэчаісны %%C аперанд"
+
+#~ msgid "invalid %%d operand"
+#~ msgstr "нерэчаісны %%d аперанд"
+
+#~ msgid "invalid %%D operand"
+#~ msgstr "нерэчаісны %%D аперанд"
+
+#~ msgid "invalid %%f operand"
+#~ msgstr "нерэчаісны %%f аперанд"
+
+#~ msgid "Optimize for Cypress processors"
+#~ msgstr "Аптымізацыя для Cypress працэсараў"
+
+#~ msgid "Optimize for SparcLite processors"
+#~ msgstr "Аптымізацыя для SparcLite працэсараў"
+
+#~ msgid "Optimize for F930 processors"
+#~ msgstr "Аптымізацыя для F930 працэсараў"
+
+#~ msgid "Optimize for F934 processors"
+#~ msgstr "Аптымізацыя для F934 працэсараў"
+
+#~ msgid "Optimize for SuperSparc processors"
+#~ msgstr "Аптымізацыя для SuperSparc працэсараў"
+
+#~ msgid "unrecognized section name \"%s\""
+#~ msgstr "нераспазнаная назва сэкцыі \"%s\""
+
+#~ msgid "%s=%s is too large"
+#~ msgstr "%s=%s вельмі вялікі"
+
+#~ msgid "invalid mask"
+#~ msgstr "нерэчаісная маска"
+
+#~ msgid "invalid address"
+#~ msgstr "нерэчаісны адрас"
+
+#, fuzzy
+#~ msgid "no register in address"
+#~ msgstr "невядомая назва рэгістра: %s"
+
+#, fuzzy
+#~ msgid "Do not use the Xtensa boolean register option"
+#~ msgstr "Не ўжываць сімвалічныя назва рэгістраў"
+
+#, fuzzy
+#~ msgid "Use the Xtensa floating-point unit"
+#~ msgstr "Выкарыстоўваць апаратную \"плаваючую кропку\""
+
+#, fuzzy
+#~ msgid "%s for `%T %s' operator"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "duplicate enum value `%D'"
+#~ msgstr "паўтарэнне \"volatile\""
+
+#, fuzzy
+#~ msgid "duplicate nested type `%D'"
+#~ msgstr "паўтарэнне \"restrict\""
+
+#, fuzzy
+#~ msgid "duplicate member `%D'"
+#~ msgstr "паўтарэнне \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' invalid in `%T'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' invalid in `%#T'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#~ msgid "previous definition of `%#T'"
+#~ msgstr "папярэдняе вызначэньне `%#T'"
+
+#, fuzzy
+#~ msgid "bit-field `%#D' with non-integral type"
+#~ msgstr "бітавае поле \"%s\" мае нерэчаісны тып"
+
+#, fuzzy
+#~ msgid "field `%D' invalidly declared method type"
+#~ msgstr "бітавае поле \"%s\" мае нерэчаісны тып"
+
+#, fuzzy
+#~ msgid "field `%D' invalidly declared offset type"
+#~ msgstr "бітавае поле \"%s\" мае нерэчаісны тып"
+
+#, fuzzy
+#~ msgid "field `%D' declared static in union"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#~ msgid "declaration of `%#D'"
+#~ msgstr "абвяшчэньне `%#D'"
+
+#~ msgid "converting from `%T' to `%T'"
+#~ msgstr "пераўтварэньне з `%T' у `%T'"
+
+#~ msgid "conflicts with previous declaration `%#D'"
+#~ msgstr "канфлікт з папярэднім абвяшчэньнем `%#D'"
+
+#~ msgid "label `%D' used but not defined"
+#~ msgstr "адмеціна `%D' выкарыстоўвываецца, але ня вызначана"
+
+#~ msgid "label `%D' defined but not used"
+#~ msgstr "адмеціна `%D' вызначана, але не выкарыстоўваецца"
+
+#~ msgid "previous declaration of `%D'"
+#~ msgstr "папярэдняе абвяшчэньне `%D'"
+
+#, fuzzy
+#~ msgid "shadowing %s function `%#D'"
+#~ msgstr "у функцыі \"%s\":"
+
+#, fuzzy
+#~ msgid "conflicts with built-in declaration `%#D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#~ msgid "new declaration `%#D'"
+#~ msgstr "новае абвяшчэньне `%#D'"
+
+#, fuzzy
+#~ msgid "ambiguates built-in declaration `%#D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#~ msgid "previous declaration of `%#D'"
+#~ msgstr "папярэдняе абвяшчэньне `%#D'"
+
+#~ msgid "declaration of template `%#D'"
+#~ msgstr "абвяшчэньне шаблёну `%#D'"
+
+#, fuzzy
+#~ msgid "ambiguates old declaration `%#D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "previous declaration `%#D' here"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "previous declaration as `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "prototype for `%#D'"
+#~ msgstr "няма папярэдняга прататыпа для \"%s\""
+
+#, fuzzy
+#~ msgid "previous declaration of `%#D' with %L linkage"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "after previous specification in `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "previous non-inline declaration here"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "than previous declaration `%F'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "`%#D' used prior to declaration"
+#~ msgstr "\"%s\" - гэта не пачатак дэкларацыі"
+
+#, fuzzy
+#~ msgid "redeclaration of `wchar_t' as `%T'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr "Нерэчаіснае абвяшчэнне"
+
+#~ msgid "as `%D'"
+#~ msgstr "як `%D'"
+
+#, fuzzy
+#~ msgid "previous external decl of `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "global declaration `%#D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "`%#D' hides constructor for `%#T'"
+#~ msgstr "дэструктару неабходны \"%#D\""
+
+#, fuzzy
+#~ msgid "`%#D' conflicts with previous using declaration `%#D'"
+#~ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#, fuzzy
+#~ msgid "previous non-function declaration `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "conflicts with function declaration `%#D'"
+#~ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#, fuzzy
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#~ msgid " from here"
+#~ msgstr " адсюль"
+
+#, fuzzy
+#~ msgid " skips initialization of `%#D'"
+#~ msgstr "ініцыялізацыя"
+
+#, fuzzy
+#~ msgid "duplicate label `%D'"
+#~ msgstr "паўтарэнне \"%s\""
+
+#~ msgid "invalid use of `%D'"
+#~ msgstr "нерэчаіснае выкарыстаньне `%D'"
+
+#, fuzzy
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "параметр \"%s\" ініцыялізаваны"
+
+#, fuzzy
+#~ msgid "variable `%#D' has initializer but incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "elements of array `%#D' have incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "cannot initialize `%T' from `%T'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#~ msgid "array size missing in `%D'"
+#~ msgstr "прапушчан памер масіва ў `%D'"
+
+#~ msgid "zero-size array `%D'"
+#~ msgstr "нулявы памер масіва `%D'"
+
+#, fuzzy
+#~ msgid "uninitialized const `%D'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' has incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "cannot initialize `%D' to namespace `%D'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "shadowing previous type declaration of `%#D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' declared with an exception specification"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#~ msgid "`main' must return `int'"
+#~ msgstr "`main' павінна вяртаць `int'"
+
+#~ msgid "size of array `%D' has non-integer type"
+#~ msgstr "памер масіва `%D' не цэлалікавы тып"
+
+#, fuzzy
+#~ msgid "size of array has non-integer type"
+#~ msgstr "памер масіва \"%s\" адмоўны"
+
+#~ msgid "size of array `%D' is negative"
+#~ msgstr "памер масіва `%D' - адмоўны"
+
+#~ msgid "size of array is negative"
+#~ msgstr "адмоўны памер масіва "
+
+#, fuzzy
+#~ msgid "ISO C++ forbids zero-size array"
+#~ msgstr "ISO C не дазваляе дэкларацыі метак (label)"
+
+#, fuzzy
+#~ msgid "size of array `%D' is not an integral constant-expression"
+#~ msgstr "памер масіва \"%s\" адмоўны"
+
+#, fuzzy
+#~ msgid "ISO C++ forbids variable-size array"
+#~ msgstr "ISO C не дазваляе дэкларацыі метак (label)"
+
+#~ msgid "invalid declarator"
+#~ msgstr "нерэчаісны абвяшчальнік"
+
+#~ msgid "multiple declarations `%T' and `%T'"
+#~ msgstr "неаднолькавае абвяшчэньне `%T' і `%T'"
+
+#~ msgid "ISO C++ does not support `long long'"
+#~ msgstr "ISO C++ не падтрымлівае \"long long\""
+
+#, fuzzy
+#~ msgid "ISO C++ forbids declaration of `%s' with no type"
+#~ msgstr "ISO C не дазваляе дэкларацыі метак (label)"
+
+#, fuzzy
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#~ msgid "can't initialize friend function `%s'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#~ msgid "virtual functions cannot be friends"
+#~ msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
+
+#, fuzzy
+#~ msgid "can't define friend function `%s' in a local class definition"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "template parameters cannot be friends"
+#~ msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
+
+#~ msgid "invalid use of `::'"
+#~ msgstr "нерэчаіснае выкарыстаньне `::'"
+
+#, fuzzy
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "віртуальныя функцыі не могуць быць сяброўскімі"
+
+#, fuzzy
+#~ msgid "function `%D' declared virtual inside a union"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#, fuzzy
+#~ msgid "field `%D' has incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "name `%T' has incomplete type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#~ msgid "default argument for `%#D' has type `%T'"
+#~ msgstr "звычайны аргумэнт для `%#D' мае тып `%T'"
+
+#, fuzzy
+#~ msgid "parameter `%D' invalidly declared method type"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#, fuzzy
+#~ msgid "parameter `%D' invalidly declared offset type"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#, fuzzy
+#~ msgid "use of enum `%#D' without previous declaration"
+#~ msgstr "секцыя \"%s\" канфліктуе з папярэдняй дэкларацыяй"
+
+#~ msgid "previous definition here"
+#~ msgstr "папярэдняе вызначэньне"
+
+#, fuzzy
+#~ msgid "return type `%#T' is incomplete"
+#~ msgstr "вяртаемы тып \"%s\" не \"int\""
+
+#, fuzzy
+#~ msgid "semicolon missing after declaration of `%#T'"
+#~ msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' implicitly declared before its definition"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#, fuzzy
+#~ msgid "parameter `%D' declared void"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#, fuzzy
+#~ msgid "duplicate type qualifiers in %s declaration"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "deleting `%T' is undefined"
+#~ msgstr "метка \"%s\" ужываецца, але не вызначана"
+
+#, fuzzy
+#~ msgid "template declaration of `%#D'"
+#~ msgstr "пустое абвяшчэнне"
+
+#, fuzzy
+#~ msgid "invalid data member initialization"
+#~ msgstr "нерэчаісны ініцыялізатар"
+
+#, fuzzy
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "нерэчаісны ініцыялізатар"
+
+#, fuzzy
+#~ msgid "use of `%D' is ambiguous"
+#~ msgstr "памер \"%s\" - %d байт"
+
+#, fuzzy
+#~ msgid "unknown namespace `%D'"
+#~ msgstr "невядомы рэжым машыны \"%s\""
+
+#, fuzzy
+#~ msgid "namespace `%D' not allowed in using-declaration"
+#~ msgstr "\"%s\" - гэта не пачатак дэкларацыі"
+
+#, fuzzy
+#~ msgid "`%D' is already a friend of class `%T'"
+#~ msgstr "не знойдзен клас \"%s\""
+
+#, fuzzy
+#~ msgid "previous friend declaration of `%D'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#, fuzzy
+#~ msgid "template parameter type `%T' declared `friend'"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#, fuzzy
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "complex нерэчаісны для \"%s\""
+
+#, fuzzy
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#, fuzzy
+#~ msgid "base class `%T' already initialized"
+#~ msgstr "Клас \"%s\" ужо існуе"
+
+#, fuzzy
+#~ msgid "bad array initializer"
+#~ msgstr "нерэчаісны ініцыялізатар"
+
+#, fuzzy
+#~ msgid "`%T' is not an aggregate type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "invalid use of non-static field `%D'"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "invalid use of member `%D'"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "no method `%T::%D'"
+#~ msgstr "у метадзе \"%s\":"
+
+#, fuzzy
+#~ msgid "can't find class$"
+#~ msgstr "Не магу знайсці клас \"%s\""
+
+#, fuzzy
+#~ msgid "semicolon missing after declaration of `%T'"
+#~ msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' not defined"
+#~ msgstr "YYDEBUG не вызначан."
+
+#, fuzzy
+#~ msgid "`%D' was not declared in this scope"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#, fuzzy
+#~ msgid "`%D' undeclared (first use this function)"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#, fuzzy
+#~ msgid "`::%D' undeclared (first use here)"
+#~ msgstr "\"%s\" не абвешчан (першае выкарыстанне ў гэтай функцыі)"
+
+#, fuzzy
+#~ msgid "no type `%D' in `%T'"
+#~ msgstr "вяртаемы тып \"%s\" не \"int\""
+
+#, fuzzy
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "`%D' is not a function template"
+#~ msgstr "\"%s\" звычайна функцыя"
+
+#, fuzzy
+#~ msgid "no default argument for `%D'"
+#~ msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#, fuzzy
+#~ msgid "`%T' is not a template type"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#~ msgid "previous declaration `%D'"
+#~ msgstr "папярэдняе абвяшчэньне `%D'"
+
+#, fuzzy
+#~ msgid "template parameter `%#D'"
+#~ msgstr "невыкарыстаемы параметр \"%s\""
+
+#, fuzzy
+#~ msgid "provided for `%D'"
+#~ msgstr "дэструктару неабходны \"%#D\""
+
+#, fuzzy
+#~ msgid "template argument %d is invalid"
+#~ msgstr "параметр \"%s\" ініцыялізаваны"
+
+#, fuzzy
+#~ msgid "for template declaration `%D'"
+#~ msgstr "пустое абвяшчэнне"
+
+#~ msgid "invalid parameter type `%T'"
+#~ msgstr "нерэчаісны тып парамэтра `%T'"
+
+#~ msgid "in declaration `%D'"
+#~ msgstr "у абвяшчэньні `%D'"
+
+#, fuzzy
+#~ msgid "explicit specialization here"
+#~ msgstr "ініцыялізацыя"
+
+#, fuzzy
+#~ msgid "duplicate explicit instantiation of `%#D'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "duplicate explicit instantiation of `%#T'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "type of asm operand `%E' could not be determined"
+#~ msgstr "тып параметра \"%s\" не аб'яўлены"
+
+#, fuzzy
+#~ msgid "base initializer for `%T'"
+#~ msgstr "не магу ініцыялізаваць сяброўскую функцыю \"%s\""
+
+#~ msgid "%s before `%s'"
+#~ msgstr "%s перад \"%s\""
+
+#~ msgid "%s before `%c'"
+#~ msgstr "%s перад '%c'"
+
+#~ msgid "%s before `\\%o'"
+#~ msgstr "%s перад \"\\%o\""
+
+#~ msgid "%s before `%s' token"
+#~ msgstr "%s перад знакам \"%s\""
+
+#, fuzzy
+#~ msgid "`%s' attribute is not supported on this platform"
+#~ msgstr "атрыбуты секцыі не падтрымліваюцца для гэтай мэты"
+
+#, fuzzy
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "`%E' cannot be used as a function"
+#~ msgstr "\"%s\" звычайна функцыя"
+
+#, fuzzy
+#~ msgid "too many arguments to %s `%+#D'"
+#~ msgstr "вельмі шмат аргументаў у функцыі \"%s\""
+
+#, fuzzy
+#~ msgid "too few arguments to %s `%+#D'"
+#~ msgstr "нехапае аргументаў у функцыі \"%s\""
+
+#, fuzzy
+#~ msgid "attempt to take address of bit-field structure member `%D'"
+#~ msgstr "не магу атрымаць адрас бітавага поля \"%s\""
+
+#, fuzzy
+#~ msgid "cannot %s a pointer to incomplete type `%T'"
+#~ msgstr "\"%s\" мае незавершаны тып"
+
+#, fuzzy
+#~ msgid "invalid cast to function type `%T'"
+#~ msgstr "Нерэчаісны выбар \"%s\""
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "няма папярэдняга аб'яўлення для \"%s\""
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "нерэчаіснае выкарыстаньне `%T'"
+
+#, fuzzy
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "нявернае выкарыстанне \"restict\""
+
+#, fuzzy
+#~ msgid "missing initializer for member `%D'"
+#~ msgstr "прапушчан ініцыялізатар"
+
+#, fuzzy
+#~ msgid "member `%D' with uninitialized const fields"
+#~ msgstr "параметр \"%s\" ініцыялізаваны"
+
+#, fuzzy
+#~ msgid "member `%D' is uninitialized reference"
+#~ msgstr "параметр \"%s\" ініцыялізаваны"
+
+#~ msgid "warning:"
+#~ msgstr "увага:"
+
+#, fuzzy
+#~ msgid "In statement function"
+#~ msgstr "вельмі шмат аргументаў у функцыі"
+
+#~ msgid "argument to `%s' missing"
+#~ msgstr "аргумент для \"%s\" прапушчан"
+
+#, fuzzy
+#~ msgid "Implicit declaration of `%A' at %0"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#~ msgid "Unknown escape sequence `\\%A' at %0"
+#~ msgstr "Невядомая ESC-паслядоўнасьць `\\%A' at %0"
+
+#, fuzzy
+#~ msgid "Unterminated escape sequence `\\' at %0"
+#~ msgstr "невядомая ESC-паслядоўнасць '\\%c'"
+
+#, fuzzy
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr "невядомая ESC-паслядоўнасць '\\%c'"
+
+#, fuzzy
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr "пустая сімвальная канстанта"
+
+#, fuzzy
+#~ msgid "Character constant at %0 has no closing apostrophe at %1"
+#~ msgstr "сімвальная канстанта вельмі доўгая"
+
+#, fuzzy
+#~ msgid "Unable to open INCLUDE file `%A' at %0"
+#~ msgstr "немагу адчыніць файл \"%s\""
+
+#, fuzzy
+#~ msgid "Truncating characters on right side of character constant at %0"
+#~ msgstr "мнагасімвальная сімвальная канстанта"
+
+#, fuzzy
+#~ msgid "Array `%A' at %0 is too large to handle"
+#~ msgstr "памер масіва \"%s\" вельмі вялікі"
+
+#, fuzzy
+#~ msgid "Statement function `%A' defined at %0 is not used"
+#~ msgstr "метка \"%s\" вызначана, але не выкарыстоўваецца"
+
+#~ msgid "In function"
+#~ msgstr "У функцыі"
+
+#~ msgid "In program"
+#~ msgstr "У праграме"
+
+#~ msgid "In construct"
+#~ msgstr "У канструкцыі"
+
+#~ msgid "field '%s' not found in class"
+#~ msgstr "поле \"%s\" не знойдзена ў класе"
+
+#~ msgid "abstract method in non-abstract class"
+#~ msgstr "абстрактны метад у неабстрактным класе"
+
+#~ msgid "method '%s' not found in class"
+#~ msgstr "метад \"%s\" не знойдзен у класе"
+
+#~ msgid "failed to find class '%s'"
+#~ msgstr "не знойдзен клас \"%s\""
+
+#~ msgid "missing field '%s' in '%s'"
+#~ msgstr "прапушчана поле '%s' у '%s'"
+
+#, fuzzy
+#~ msgid "mismatching signature for field '%s' in '%s'"
+#~ msgstr "Прапушчана поле \"%s\" у \"%s\""
+
+#, fuzzy
+#~ msgid "can't expand %s"
+#~ msgstr "не магу прачытаць з %s"
+
+#~ msgid "can't close %s"
+#~ msgstr "не магу зачыніць %s"
+
+#~ msgid "cannot find file for class %s"
+#~ msgstr "немагчыма знайсьці файл для кляса %s"
+
+#~ msgid "no input file specified"
+#~ msgstr "не зададзены ўваходзячыя файлы"
+
+#~ msgid "can't close input file %s"
+#~ msgstr "немагчыма зачыніць уваходзячы файл %s"
+
+#~ msgid "bad zip/jar file %s"
+#~ msgstr "дрэнны zip/jar файл \"%s\""
+
+#, fuzzy
+#~ msgid "field initializer type mismatch"
+#~ msgstr "нерэчаісны ініцыялізатар"
+
+#~ msgid "can't create directory %s"
+#~ msgstr "немагчыма стварыць дырэкторыю \"%s\""
+
+#~ msgid "can't open output file `%s'"
+#~ msgstr "немагчыма адчыніць файл уводу `%s'"
+
+#~ msgid "file not found `%s'"
+#~ msgstr "файл `%s' ня знойдзен"
+
+#~ msgid "cannot create temporary file"
+#~ msgstr "немагчыма стварыць часовы файл"
+
+#, fuzzy
+#~ msgid "can't mangle %s"
+#~ msgstr "не магу зачыніць %s"
+
+#~ msgid "Missing name"
+#~ msgstr "Прапушчана назва"
+
+#~ msgid "Missing class name"
+#~ msgstr "Прапушчана назва класа"
+
+#~ msgid "Invalid declaration"
+#~ msgstr "Нерэчаіснае абвяшчэнне"
+
+#~ msgid "Missing identifier"
+#~ msgstr "Прапушчан ідэнтыфікатар"
+
+#~ msgid "unregistered operator %s"
+#~ msgstr "нераспазнаны аператар %s"
+
+#, fuzzy
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr "Не магу знайсці дэкларацыю пратакола для \"%s\""
+
+#, fuzzy
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
+
+#, fuzzy
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr "Не магу знайсці файл для класа %s."
+
+#~ msgid "cannot find class `%s'"
+#~ msgstr "немагчыма знайсьці кляс `%s'"
+
+#~ msgid "class `%s' already exists"
+#~ msgstr "кляс `%s' ужо існуе"
+
+#, fuzzy
+#~ msgid "cannot find interface declaration for `%s', superclass of `%s'"
+#~ msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
+
+#, fuzzy
+#~ msgid "circular inheritance in interface declaration for `%s'"
+#~ msgstr "Не магу знайсці дэкларацыю інтэрфейса для \"%s\""
+
+#, fuzzy
+#~ msgid "cannot find class (factory) method"
+#~ msgstr "не магу знайсці метад."
+
+#, fuzzy
+#~ msgid "method `%s' not implemented by protocol"
+#~ msgstr "метад \"%s\" не знойдзен у класе"
+
+#~ msgid "cannot find method"
+#~ msgstr "немагчыма знайсьці мэтад"
+
+#, fuzzy
+#~ msgid "duplicate definition of class method `%s'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "duplicate declaration of class method `%s'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#, fuzzy
+#~ msgid "duplicate declaration of instance method `%s'"
+#~ msgstr "паўторнае абвяшчэнне меткі \"%s\""
+
+#~ msgid "-pipe is not supported"
+#~ msgstr "-pipe не падтрымліваецца"
+
+#~ msgid "-mhard-float not supported"
+#~ msgstr "-mhard-float не падтрымліваецца"
diff --git a/gcc-4.9/libcpp/po/ca.po b/gcc-4.9/libcpp/po/ca.po
new file mode 100644
index 000000000..1a08b92c1
--- /dev/null
+++ b/gcc-4.9/libcpp/po/ca.po
@@ -0,0 +1,1009 @@
+# translation of cpplib-4.0.1.po to Catalan
+# Catalan translation of gcc.
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+#
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2002.
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2003.
+# Gilles MATEU <mateu.gilles@wanadoo.fr>, 2004.
+# Mateu Gilles <gilles@mateu.org>, 2005.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib-4.0.1\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2005-11-25 22:56+0100\n"
+"Last-Translator: Mateu Gilles <gilles@mateu.org>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv no dona suport a la conversi de %s a %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "cap implementaci de iconv, no es pot convertir de %s a %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "el carcter 0x%lx no s en el joc de carcters de base\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "convertint al joc de carcters d'execuci"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "el carcter 0x%lx no s mono octet en el joc de carcters d'execuci"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "els noms de carcter universals noms sn vlids en C++ i C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significat de \"\\%c\" s diferent en C tradicional"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "el nom de carcter universal %.*s s incomplet"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s no s un carcter universal vlid"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "\"$\" en un identificador o un nombre"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "el nom de carcter universal %.*s no s vlid en un identificador"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "el nom de carcter universal %.*s no s vlid a l'inici d'un identificador"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "convertint UCN al joc font de carcters"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "convertint UCN al joc de carcters d'execuci"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significat de \"\\x\" s diferent en C tradicional"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "es va usar \\x sense dgits hexadecimales a continuaci"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "seqncia d'escapa hexadecimal fora de rang"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "seqncia d'escapa octal fora de rang"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significat de \"\\a\" s diferent en C tradicional"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "seqncia d'escapa que no s estndard ISO, \"\\%c\""
+
+#: charset.c:1324
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "seqncia d'escapa \"\\%c\" desconeguda"
+
+#: charset.c:1332
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "seqncia d'escapa \"\\%c\" desconeguda"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "convertint una seqncia d'escapa al joc de carcters d'execuci"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "constant de carcter massa gran pel seu tipus"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "constant de carcter amb mltiples carcters"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "constant de carter buida"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "fallada convertint %s a %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "elements superflus al final de la directiva #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s s una extenci del GCC"
+
+#: directives.c:362
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s s una extenci del GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "es suggereix no usar #elif en C tradicional"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s amb el # indentat"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "es suggereix ocultar #%s del C tradicional amb el # indentat"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "l'incrustaci d'una directiva entre arguments de macro no s portable"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "la directiva d'estil de lnia s una extenci del GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directiva de preprocessament #%s invlida"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no es pot usar com un nom de macro"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "no es pot usar \"%s\" com un nom de macro perqu s un operador en C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "no es va donar un nom de macro en la directiva #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "els noms de macro han de ser identificadors"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "esborrant la definici de \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "falta el carcter de terminaci >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOM_DE_FITXER\" o <NOM_DE_FITXER>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nom de fitxer buit en #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include niat amb massa profunditat"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next en el fitxer font primari"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "indicador \"%s\" invlid en la directiva de lnia"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" desprs de #line no s un enter positiu"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "nombre de lnia fora de rang"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" no s un nom de fitxer vlid"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" desprs de # no s un enter positiu"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1096
+#, fuzzy, c-format
+#| msgid "invalid #ident directive"
+msgid "invalid #%s directive"
+msgstr "directiva #ident invlida"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1168
+#, fuzzy, c-format
+#| msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "desant \"%s\" com a pragma i espai de noms de pragma"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "ja s'ha desat #pragma %s %s"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "ja s'ha desat #pragma %s"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma una vegada en el fitxer principal"
+
+#: directives.c:1462
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "directiva #pragma de GCC enverinada invlida"
+
+#: directives.c:1517
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "directiva #pragma de GCC enverinada invlida"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "directiva #pragma de GCC enverinada invlida"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "enverinant la macro existent \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorat fora del fitxer d'inclusi"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "no es pot trobar la font %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "el fitxer actual s ms vell que %s"
+
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "directiva #pragma de GCC enverinada invlida"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma pren una cadena literal entre parntesis"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else sense #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else desprs de #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "el condicional va comenar aqu"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif sense #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif desprs de #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif sense #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "falta \"(\" abans del predicat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "falta \")\" per a completar la resposta"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "el predicat de la resposta est buit"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "afirmaci sense predicat"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "el predicat ha de ser un identificador"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" reafirmat"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s sense acabar"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "comentari sense acabar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "les constants imaginries sn una extensi d'el GCC"
+
+#: expr.c:535
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "sufix \"%.*s\" invlid en la constant de coma flotant"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "s d'una constant de coma flotant hexadecimal C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufix \"%.*s\" invlid en la constant de coma flotant"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "el C tradicional rebutja el sufix \"%.*s\""
+
+#: expr.c:607
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "les constants imaginries sn una extensi d'el GCC"
+
+#: expr.c:613
+#, fuzzy, c-format
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "sufix \"%.*s\" invlid en la constant de coma flotant"
+
+#: expr.c:624
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "les constants imaginries sn una extensi d'el GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufix \"%.*s\" invlid en constant entera"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "s d'una constant entera long long C99"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "s d'una constant entera long long C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "les constants imaginries sn una extensi d'el GCC"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "les constants imaginries sn una extensi d'el GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "la constant entera s massa gran pel seu tipus"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constant entera s tan gran que s unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "\")\" faltant desprs de \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "l'operador \"defined\" requereix un identificador"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" s un element alternatiu per a \"%s\" en C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "aquest s de \"defined\" podria no ser portable"
+
+#: expr.c:998
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "desbordament d'enter en l'expressi del preprocessador"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "constant de coma flotant en l'expressi del preprocessador"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "nombre imaginari en l'expressi del preprocessador"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" no s definit"
+
+#: expr.c:1070
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s s una extenci del GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1318
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "pila desequilibrada en #if"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador \"%u\" impossible"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "\")\" faltant en l'expressi"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr " \"?\" sense el \":\" segent"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordament d'enter en l'expressi del preprocessador"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "\"(\" faltant en l'expressi"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "l'operant esquera de \"%s\" canvia el signe quan s promogut"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "l'operant dreta de \"%s\" canvia el signe quan s promogut"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rebutja l'operador unari ms"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operant de #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "divisi per zero en #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "directori NULL en find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "un o ms fitxers PCH varen ser trobats, per varen ser invlids"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "usi -Winvalid-pch per a ms informaci"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s s un dispositiu de blocs"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s s massa gran"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s s ms curt qu'esperat"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "no hi ha ruta d'inclusi en la qual cercar %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Mltiples gurdies d'inclusi poden ser tils per a:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t ha de ser d'un tipus unsigned"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'aritmtica del preprocesador t una precisi mxima de %lu bits; l'objectiu requereix %lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'aritmtica de CPP ha de ser almenys tan precisa com un int de l'objectiu"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "el char de l'objectiu t menys de 8 bits d'ampliaria"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "el wchar_t de l'objectiu s ms estret qu'el char de l'objectiu"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "el int de l'objectiu s ms estret qu'el char de l'objectiu"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "el half-integer de CPP s ms estret que el carcter de CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP no pot manejar constants de carcter amples ms enll de %lu bits en aquest ordinador, per l'objectiu requereix %lu bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "barra invertida i fi de lnia separats per un espai"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "barra invertida i nova lnia al final del fitxer"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c convertit a %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "s'ignora el trigraph ??%c, usi -trigraphs per permetre-ho"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dintre d'un comentari"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en una directiva de preprocessament"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "carter(es) nul(s) ignorats"
+
+#: lex.c:1101
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%s\" no s definit"
+
+#: lex.c:1104
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFC"
+msgstr "\"%s\" no s definit"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "intent d'usar \"%s\" enverinat"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ solament pot aparixer en l'expansi d'una macro variadic C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, fuzzy, c-format
+#| msgid "universal character %.*s is not valid in an identifier"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "el nom de carcter universal %.*s no s vlid en un identificador"
+
+#: lex.c:1611 lex.c:1633
+#, fuzzy
+#| msgid "unterminated #%s"
+msgid "unterminated raw string"
+msgstr "#%s sense acabar"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "carcter(es) nul(s) preservats en la literal"
+
+#: lex.c:1768
+#, fuzzy, c-format
+#| msgid "missing terminating > character"
+msgid "missing terminating %c character"
+msgstr "falta el carcter de terminaci >"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "els comentaris d'estil C++ no sn permesos en ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(aix es reportar solament una vegada per cada fitxer d'entrada)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "comentari en mltiples lnies"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "Element %s impronunciable"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "no s'usa la macro \"%s\""
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna \"%s\" invlida"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+#, fuzzy
+#| msgid "could not determine date and time"
+msgid "could not determine file timestamp"
+msgstr "no es pot determinar la data i l'hora"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "no es pot determinar la data i l'hora"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "cadena literal invlida, s'ignora el \"\\\" final"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "enganxar \"%s\" i \"%s\" no dna un element de preprocessament vlid"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requereix que la resta dels arguments sigui usat"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "la macro \"%s\" requereix %u arguments, per noms %u passats"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la macro \"%s\" va rebre %u arguments, per en va prendre solament %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "llista d'arguments sense acabar a l'invocar la macro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "la funci de macro \"%s\" s'ha d'usar amb arguments en C tradicional"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "parmetre de macro \"%s\" duplicat"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" podria faltar en la llista de parmetre de macro"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "els parmetres de macro han de ser separats per comes"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "falta el nom del parmetre"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "els macros variadic annims es van introduir en C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C no permet macros variadic nomenats"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "\")\" faltant en la llista de parmetres de macro"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "\"##\" no pot apareixer en o al final d'una expansi de macro"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requereix espais en blanc desprs del nom de macro"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "espais en blanc faltant desprs del nom de macro"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "\"#\" no s seguit per un parmetre de macro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" re-definit"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "aquesta s la ubicaci de la definici prvia"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "l'argument de macro \"%s\" hauria de ser convertit en cadena en C traditional"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipus de hash %d invlid en cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "mentre escrivint capalera precompilada"
+
+#: pch.c:619
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: no utilitzat perqu \"%s\" s definit"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: no utilitzat perqu \"%.*s\" no est definit"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: no utilitzat perqu \"%.*s\" est definit com a \"%s\" i no com a \"%.*s\""
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: no utilitzat perqu \"%s\" s definit"
+
+#: pch.c:714
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: no utilitzat perqu \"%s\" s definit"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "mentre llegint capalera precompilada"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "whilst recursiu detectat en expandint la macro \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "error sintctic en la llista de parmetre de macro"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "seqncia d'escapa desconeguda: '\\%03o'"
+
+#~ msgid "warning: "
+#~ msgstr "avs: "
+
+#~ msgid "internal error: "
+#~ msgstr "error intern: "
+
+#~ msgid "error: "
+#~ msgstr "error: "
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "nombre amb massa punts decimals"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "dgit \"%c\" invlid en la constant octal"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "exponent no t dgits"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "la constant de coma flotant hexadecimal requereix un exponent"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "operador binari faltant abans de l'element \"%s\""
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "l'element \"%s\" no s vlid en les expressions del preprocesador"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "expressin faltant entre \"(\" i \")\""
+
+#~ msgid "#if with no expression"
+#~ msgstr "#if sense expressi"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "l'operador \"%s\" no t operant de dreta"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "l'operador \"%s\" no t operant d'esquera"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " \":\" sense \"?\" precedent"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "no hi ha carcter de fi de lnia al final del fitxer"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "En el fitxer incls ds de %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " ds de %s:%u"
diff --git a/gcc-4.9/libcpp/po/cpplib.pot b/gcc-4.9/libcpp/po/cpplib.pot
new file mode 100644
index 000000000..077da7a96
--- /dev/null
+++ b/gcc-4.9/libcpp/po/cpplib.pot
@@ -0,0 +1,948 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr ""
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:797
+#: charset.c:1447
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr ""
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr ""
+
+#: charset.c:1059
+#: lex.c:1126
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1105
+#: charset.c:1677
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr ""
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr ""
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr ""
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr ""
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr ""
+
+#: charset.c:1512
+#: charset.c:1576
+msgid "character constant too long for its type"
+msgstr ""
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr ""
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr ""
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr ""
+
+#: directives.c:224
+#: directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr ""
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr ""
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr ""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr ""
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr ""
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr ""
+
+#: directives.c:918
+#: directives.c:920
+msgid "line number out of range"
+msgstr ""
+
+#: directives.c:933
+#: directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr ""
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr ""
+
+#: directives.c:1068
+#: directives.c:1070
+#: directives.c:1072
+#: directives.c:1658
+#, c-format
+msgid "%s"
+msgstr ""
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr ""
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr ""
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr ""
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr ""
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr ""
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr ""
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr ""
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr ""
+
+#: directives.c:1975
+#: directives.c:2008
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr ""
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr ""
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr ""
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr ""
+
+#: directives-only.c:221
+#: lex.c:2311
+#: traditional.c:162
+msgid "unterminated comment"
+msgstr ""
+
+#: errors.c:234
+msgid "stdout"
+msgstr ""
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: expr.c:510
+#: expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr ""
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr ""
+
+#: expr.c:599
+#: expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr ""
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr ""
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr ""
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr ""
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr ""
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr ""
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr ""
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr ""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr ""
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr ""
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr ""
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr ""
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr ""
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr ""
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr ""
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr ""
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr ""
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr ""
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr ""
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr ""
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr ""
+
+#: init.c:540
+#, c-format
+msgid ""
+"preprocessor arithmetic has maximum precision of %lu bits; target requires "
+"%lu bits"
+msgstr ""
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:567
+#, c-format
+msgid ""
+"CPP on this host cannot handle wide character constants over %lu bits, but "
+"the target requires %lu bits"
+msgstr ""
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr ""
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr ""
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr ""
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr ""
+
+#: lex.c:1173
+#: lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1181
+#: lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1187
+#: lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr ""
+
+#: lex.c:1611
+#: lex.c:1633
+msgid "unterminated raw string"
+msgstr ""
+
+#: lex.c:1654
+#: lex.c:1783
+msgid ""
+"invalid suffix on literal; C++11 requires a space between literal and string "
+"macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr ""
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr ""
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr ""
+
+#: macro.c:229
+#: macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr ""
+
+#: macro.c:236
+#: macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr ""
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr ""
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr ""
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr ""
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:930
+#: traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1753
+#, c-format
+msgid ""
+"invoking macro %s argument %d: empty macro arguments are undefined in ISO "
+"C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr ""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr ""
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:87
+#: pch.c:345
+#: pch.c:359
+#: pch.c:377
+#: pch.c:383
+#: pch.c:392
+#: pch.c:399
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr ""
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:723
+#: pch.c:898
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr ""
diff --git a/gcc-4.9/libcpp/po/da.po b/gcc-4.9/libcpp/po/da.po
new file mode 100644
index 000000000..8dad6d18b
--- /dev/null
+++ b/gcc-4.9/libcpp/po/da.po
@@ -0,0 +1,16270 @@
+# Danish version of GCC strings.
+# Copyright (C) 2002, 03 Free Software Foundation, Inc.
+# Ole Laursen <olau@hardworking.dk>, 2001, 02, 03.
+#
+# Konventioner:
+#
+# ABI -> binr grnseflade
+# ANSI -> (har jeg tilladt mig at opdatere til (modsvarer Info-hjlpen)) ISO
+# access -> tilgangs-
+# aggregate -> en variabel af en sammensat type (fx struct, class)
+# ambigeous -> tvetydig
+# arg, argument -> parameter (for ikke at blande sammen med diskussionsargument)
+# array -> tabel
+# assembler -> maskinkodeoverstter
+# assertion -> postulat
+# attribute -> egenskab
+# base class -> stamklasse
+# basic block -> basisblok (funktioner deles op i disse under oversttelsen)
+# braces -> krllede paranteser
+# braced-group -> stningsblok
+# branch -> forgrening
+# buffer -> mellemlager
+# cast -> typetildeling, omtvingelse af typen
+# con-/destructor -> kon-/destruktionsfunktion
+# conflicting -> modstridende
+# convert -> konvertere, omdanne
+# declared -> erklret
+# defaults to -> antages at vre
+# dereference -> flge
+# discard -> fjerne
+# discard -> kassere
+# driver -> styringsprogram
+# duplicate -> optrder mere end n gang; mangfoldiggre
+# edge list -> kantliste
+# elt -> udtrykstr
+# endian -> endet (fx storendet, lillendet)
+# endianness -> endethed
+# exception handling -> hndtering af undtagelser
+# excess -> for mange
+# expansion -> udfoldning
+# extra -> (ret ofte) overskydende
+# floating point -> kommatal
+# formals -> parametre
+# format string -> formateringsstreng
+# forward -> forhnd (f.eks. forhndserklring)
+# frame table -> rammetabel
+# friend -> ven(ne-)
+# gp (general purpose) register -> alment register (havde frst brug- med, med det er overfldigt)
+# hard register -> hardware-register
+# have no effect -> udvirker intet
+# identifier -> kaldenavn
+# incompatible -> uforenelig, passer ikke
+# incomplete -> ufuldstndig
+# initialize -> tildele startvrdi, klargre
+# initializer -> startvrdi
+# initializer list -> klargringsliste
+# inline -> integrede, indbygges (eller som reserveret ord: inline)
+# instance -> instans (fx af en klasse)
+# issue (fx warnings) -> fremkom med
+# iterator -> lkkevariabel
+# junk -> ragelse
+# keyword -> reserveret ord
+# label -> etiket
+# linking -> sammenkdning
+# lvalue -> venstrevrdi
+# macro -> makro
+# malformed -> forkert udformet, misdannet
+# member function/method -> [medlems]funktion (metode i Objective C)
+# mismatch -> passer ikke med
+# mmap -> indlse
+# modifier, qualifier -> modifikation
+# multiple inheritance -> multipel nedarvning
+# newline -> linjeskift
+# non-numeric -> ikke et tal
+# null character -> nultegn
+# null pointer -> nul[-]henvisning
+# offset -> forskydning
+# opcodes (til ovenstende) -> instruktioner
+# out of range -> uden for det gyldige (til tider mulige) interval
+# overflow -> (til tider) lber over
+# overlap -> [interval]sammenfald
+# overloading -> flertydiggrelse
+# padding -> udfylning
+# pass -> overbringe (fx parametre), videregive
+# pointer -> henvisning[svariabel]
+# preprocessor -> prprocessor
+# profiling -> profilering
+# promote -> forfremme
+# request -> (til tider) foresprgsel
+# return -> returnerer
+# schedule -> planlg
+# scope -> virkningsfelt
+# shadowing -> skygger for
+# shift -> skift
+# specified -> (oftest) angivet
+# specifier -> anvisning, angivelse
+# stab -> stik (?)
+# statement -> stning
+# storage class -> lagringsklasse
+# strict -> nje
+# string -> streng
+# subscript -> indeks, opslag
+# target -> ml[arkitektur]
+# template -> skabelon
+# thrown -> kastet
+# token -> symbol
+# top-level -> verste niveau
+# trigraphs ('??%c'-dimser) -> trigrafer
+# undefine -> glemme definitionen
+# undefined blahblah -> blahblah er ikke defineret
+# underscore -> understreg
+# universal-character-name -> universelt tegn[navn]
+# unsigned -> uden fortegn
+# varargs -> variable parameterlister
+# variadic macro -> makro med vilkrligt antal parametre
+# variabels -> variabler (med afslutnings-r)
+# vtable -> virtuel tabel
+# wide character -> bredtegn
+# white space -> mellemrum
+# whitespace -> mellemrum
+#
+# Reserverede ord ofte ikke oversat, ej heller er der anbragt ' omkring
+# (fx unsigned -> unsigned; derimod function -> funktion). Forkortelser
+# som decl (for declaration) og arg (for argument) er oversat uforkortet
+# - der er jo masser af plads at tage af.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.3\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2003-05-25 18:00+0200\n"
+"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
+"Language-Team: Danish <dansk@klid.dk>\n"
+"Language: da\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, fuzzy, c-format
+#| msgid "conversion from NaN to unsigned int"
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "konvertering fra NaN til unsigned int"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:780
+#, fuzzy, c-format
+#| msgid "universal-character-name designates `%c', part of the basic source character set"
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "universelt tegnnavn str for '%c', som er en del af det basale kildekodetegnst"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:997
+#, fuzzy
+#| msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "betydningen af '\\%c' er anderledes i traditionel C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1034
+#, fuzzy, c-format
+#| msgid "incomplete universal-character-name"
+msgid "incomplete universal character name %.*s"
+msgstr "ufuldstndigt universelt tegnnavn"
+
+#: charset.c:1049
+#, fuzzy, c-format
+#| msgid "`%T::%D' is not a valid declarator"
+msgid "%.*s is not a valid universal character"
+msgstr "'%T::%D' er ikke en gyldig erklrer"
+
+#: charset.c:1059 lex.c:1126
+#, fuzzy
+#| msgid "'$' character(s) in identifier or number"
+msgid "'$' in identifier or number"
+msgstr "'$'-tegn i kaldenavn eller tal"
+
+#: charset.c:1069
+#, fuzzy, c-format
+#| msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
+
+#: charset.c:1073
+#, fuzzy, c-format
+#| msgid "universal-character-name '\\U%08x' not valid in identifier"
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "universelt tegn '\\U%08x' er ikke gyldigt i kaldenavne"
+
+#: charset.c:1105 charset.c:1677
+#, fuzzy
+#| msgid "converting NULL to non-pointer type"
+msgid "converting UCN to source character set"
+msgstr "konverterer NULL til en ikke-henvisningstype"
+
+#: charset.c:1109
+#, fuzzy
+#| msgid "converting NULL to non-pointer type"
+msgid "converting UCN to execution character set"
+msgstr "konverterer NULL til en ikke-henvisningstype"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "betydningen af '\\x' er anderledes i traditionel C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x angivet uden efterflgende hexadecimale cifre"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "den hexadecimale undvigesekvens er uden for det gyldige interval"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "den oktale undvigesekvens er uden for det gyldige interval"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "betydningen af '\\a' er anderledes i traditionel C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "undvigesekvensen '\\%c' er ikke ISO-standard"
+
+#: charset.c:1324
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "ukendt undvigesekvensen '\\%c'"
+
+#: charset.c:1332
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%s'"
+msgstr "ukendt undvigesekvensen '\\%c'"
+
+#: charset.c:1339
+#, fuzzy
+#| msgid "escape sequence out of range for character"
+msgid "converting escape sequence to execution character set"
+msgstr "undvigesekvens er uden for det gyldig interval for tegn"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "tegnkonstanten er for lang for dens type"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "flerbyte-tegnkonstant"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "tom tegnkonstant"
+
+#: charset.c:1724
+#, fuzzy, c-format
+#| msgid "could not convert `%E' to `%T'"
+msgid "failure to convert %s to %s"
+msgstr "kunne ikke konvertere '%E' til '%T'"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "ekstra symboler i slutningen af #%s-direktiv"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: directives.c:362
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "foreslr undladelse af brug af #elif i traditionel C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionel C ignorerer #%s nr '#' er indrykket"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "foreslr at skjule #%s fra traditionel C vha. indrykket '#'"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "indlejring af et direktiv inden i makroparametre er ikke portabelt"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "linjestilsdirektiv er en GCC-udvidelse"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ugyldigt prprocessordirektiv #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan ikke bruges som makronavn"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" kan ikke bruges som et makronavn da det er en operator i C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "intet makronavn angivet i direktivet #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "makronavne skal vre kaldenavne"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "glemmer definitionen af \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "manglende afsluttende '>'-tegn"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s forventer \"FILNAVN\" eller <FILNAVN>"
+
+#: directives.c:772
+#, fuzzy, c-format
+#| msgid "empty file name in #%s"
+msgid "empty filename in #%s"
+msgstr "tomt filnavn i #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include indlejret for dybt"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next i den primre kildekodefil"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ugyldigt flag \"%s\" i linjedirektiv"
+
+#: directives.c:909
+#, fuzzy
+#| msgid "Tune expected memory latency"
+msgid "unexpected end of file after #line"
+msgstr "Justr den forventede hukommelsesventetid"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" efter #line er ikke et positivt heltal"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "linjenummer er uden for det gyldige interval"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" er ikke et ugyldigt filnavn"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" efter # er ikke et positivt heltal"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, fuzzy, c-format
+#| msgid "invalid #ident directive"
+msgid "invalid #%s directive"
+msgstr "ugyldigt #ident-direktiv"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1168
+#, fuzzy, c-format
+#| msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registrerer \"%s\" som bde et pragma og som et pragmanavnerum"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registrerer \"%s\" som bde et pragma og som et pragmanavnerum"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s er allerede registreret"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s er allerede registreret"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "'#pragma once' i hovedfil"
+
+#: directives.c:1462
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1517
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "forgifter eksisterende makro \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "'#pragma system_header' ignoreret uden for inkluderingsfil"
+
+#: directives.c:1625
+#, fuzzy, c-format
+#| msgid "cannot find source %s"
+msgid "cannot find source file %s"
+msgstr "kan ikke finde kilden %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuel fil er ldre end %s"
+
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "ugyldigt #pragma GCC poison-direktiv"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma tager en strengkonstant med paranteser omkring"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else uden #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "betingelsen begyndte her"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif uden #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif uden #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "manglende '(' efter udsagn"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "manglende ')' til at fuldfre svar"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "udsagnets svar et tomt"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "postulat uden udsagn"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "udsagn skal vre et kaldenavn"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" genpostuleret"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "uafsluttet #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "uafsluttet kommentar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "std-ud"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "fixed-point constants are a GCC extension"
+msgstr "imaginre konstanter er en GCC-udvidelse"
+
+#: expr.c:535
+#, fuzzy
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "brug af C99 hexadecimal kommatalskonstant"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionel C tillader ikke endelsen \"%.*s\""
+
+#: expr.c:607
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "imaginre konstanter er en GCC-udvidelse"
+
+#: expr.c:613
+#, fuzzy, c-format
+#| msgid "invalid suffix \"%.*s\" on floating constant"
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ugyldig endelse \"%.*s\" i kommatalskonstant"
+
+#: expr.c:624
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "decimal float constants are a GCC extension"
+msgstr "imaginre konstanter er en GCC-udvidelse"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ugyldig endelse \"%.*s\" i heltalskonstant"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "brug af ISO C99 long long-heltalskonstanter"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "brug af ISO C99 long long-heltalskonstanter"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginre konstanter er en GCC-udvidelse"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "imaginary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "imaginre konstanter er en GCC-udvidelse"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstanten er for stor for dens type"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "heltalskonstanten er s stor at den er unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "manglende ')' efter \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "operatoren \"defined\" krver et kaldenavn"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" er et alternativt symbol for \"%s\" i C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "denne brug af \"defined\" er muligvis ikke portabel"
+
+#: expr.c:998
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "heltallet lber over i prprocessorudtrykket"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "kommatalskonstant i prprocessorudtryk"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginrt tal i prprocessorudtryk"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" er ikke defineret"
+
+#: expr.c:1070
+#, fuzzy
+#| msgid "#%s is a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "#%s er en GCC-udvidelse"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+#: expr.c:1318
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "uafbalanceret stak i #if"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "umulig operator '%u'"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "manglende ')' i udtryk"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' uden efterflgende ':'"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "heltallet lber over i prprocessorudtrykket"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "manglende '(' i udtryk"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "den venstre operand til \"%s\" ndrer fortegn ved forfremmelse"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "den hjre operand til \"%s\" ndrer fortegn ved forfremmelse"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionel C tillader ikke operatoren unr plus"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "kommeoperator i en operand til #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "division med nul i #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s er en blokenhed"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s er for stor"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s er kortere end forventet"
+
+#: files.c:953
+#, fuzzy, c-format
+#| msgid "no include path in which to find %s"
+msgid "no include path in which to search for %s"
+msgstr "der er ingen inkluderingssti at finde %s i"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Flere inkluderingsvagter kan vre nyttige til:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t skal vre en unsigned type"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "prprocessorberegning har en maksimal prcision p %lu bit; mlarkitektur krver %lu bit"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-beregning skal vre mindst lige s prcis som en mlarkitekturs int"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "mlarkitekturs char er mindre end 8 bit bred"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "mlarkitekturs wchar_t er mindre end mlarkitekturs char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "mlarkitekturs int er mindre end mlarkitekturs char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP-halvheltal er mindre end CPP-tegn"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP p denne vrt kan ikke hndtere bredtegnkonstanter over %lu bit, men mlarkitekturen krver %lu bit"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "omvendt skrstreg og linjeskift er adskilt af mellemrum"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "omvendt skrstreg efterfulgt af linjeskift ved slutningen af filen"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigrafen ??%c konverteret til %c"
+
+#: lex.c:948
+#, fuzzy, c-format
+#| msgid "trigraph ??%c ignored"
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigrafen ??%c ignoreret"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" i en kommentar"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s i prprocessordirektiv"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "nultegn ignoreret"
+
+#: lex.c:1101
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%s\" er ikke defineret"
+
+#: lex.c:1104
+#, fuzzy, c-format
+#| msgid "\"%s\" is not defined"
+msgid "`%.*s' is not in NFC"
+msgstr "\"%s\" er ikke defineret"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "forsg p at bruge forgiftet \"%s\""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kan kun optrde i udfoldelsen af en C99-makro med vilkrligt antal parametre"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, fuzzy, c-format
+#| msgid "invalid character '%c' in #if"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ugyldigt tegn '%c' i #if"
+
+#: lex.c:1611 lex.c:1633
+#, fuzzy
+#| msgid "unterminated format string"
+msgid "unterminated raw string"
+msgstr "uafsluttet formateringsstreng"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "nultegn bevaret i strengkonstant"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "manglende afsluttende '%c'-tegn"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "kommentarer i C++-stil er ikke tilladt i ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(dette rapporteres kun en enkelt gang per inddatafil)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "flerlinjers kommentar"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "symbol %s kan ikke staves"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroen \"%s\" bliver ikke brugt"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ugyldig indbygget makro \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+#, fuzzy
+#| msgid "could not determine date and time"
+msgid "could not determine file timestamp"
+msgstr "kunne ikke bestemme dato og tid"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "kunne ikke bestemme dato og tid"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ugyldig strengkonstant, ignorerer afsluttende '\\'"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "indsttelse af \"%s\" og \"%s\" giver ikke et gyldigt prprocessorsymbol"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 pkrver at restparametrene skal bruges"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makroen \"%s\" krver %u parametre, men modtager kun %u"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makroen \"%s\" bliver viderebragt %u parametre, men tager kun mod %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "uafsluttet parameterliste ved kald af makroen \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktionsagtig makro \"%s\" skal bruges med parametre i traditionel C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "makroparameternavnet \"%s\" optrder mere end n gang"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" m ikke optrde i makroparameterliste"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametre skal vre komma-adskilte"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "parameternavn mangler"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme makroer med vilkrligt antal parametre blev introduceret i C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tillader ikke navngivne makroer med vilkrligt antal parametre"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "manglende ')' i makroparameterliste"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' m ikke optrde ved nogen af enderne i en makrokrop"
+
+#: macro.c:2902
+#, fuzzy
+#| msgid "ISO C requires whitespace after the macro name"
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C pkrver mellemrum efter makronavnet"
+
+#: macro.c:2926
+#, fuzzy
+#| msgid "ISO C requires whitespace after the macro name"
+msgid "missing whitespace after the macro name"
+msgstr "ISO C pkrver mellemrum efter makronavnet"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' efterflges ikke af en makroparameter"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" omdefineret"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "den foregende definition er her"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroparameteren \"%s\" ville blive gjort til en streng i traditionel C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ugyldig hashtype %d i cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:641
+#, fuzzy, c-format
+#| msgid "label `%s' used but not defined"
+msgid "%s: not used because `%.*s' not defined"
+msgstr "etiketten '%s' er benyttet, men ikke defineret"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:694
+#, fuzzy, c-format
+#| msgid "`%s' used but never defined"
+msgid "%s: not used because `%s' is defined"
+msgstr "'%s' brugt, men aldrig defineret"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "opdagede rekursion ved udfoldelse af makroen \"%s\""
+
+#: traditional.c:968
+#, fuzzy
+#| msgid "\"%s\" may not appear in macro parameter list"
+msgid "syntax error in macro parameter list"
+msgstr "\"%s\" m ikke optrde i makroparameterliste"
+
+#~ msgid "`%s' attribute directive ignored"
+#~ msgstr "egenskabsdirektivet '%s' ignoreret"
+
+#~ msgid "wrong number of arguments specified for `%s' attribute"
+#~ msgstr "forkert antal parametre angivet til egenskaben '%s'"
+
+#~ msgid "`%s' attribute does not apply to types"
+#~ msgstr "egenskaben '%s' kan ikke anvendes p typer"
+
+#~ msgid "`%s' attribute only applies to function types"
+#~ msgstr "egenskaben '%s' kan kun anvendes sammen med funktionstyper"
+
+#~ msgid "`%s' attribute ignored"
+#~ msgstr "egenskaben '%s' ignoreret"
+
+#~ msgid "offset outside bounds of constant string"
+#~ msgstr "forskydning udenfor grnserne af konstant streng"
+
+#~ msgid "second arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "den anden parameter til '__builtin_prefetch' skal vre en konstant"
+
+#~ msgid "invalid second arg to __builtin_prefetch; using zero"
+#~ msgstr "ugyldig anden parameter til '__builtin_prefetch'; benytter nul"
+
+#~ msgid "third arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "en tredje parameter til '__builtin_prefetch' skal vre en konstant"
+
+#~ msgid "invalid third arg to __builtin_prefetch; using zero"
+#~ msgstr "ugyldig tredje parameter til '__builtin_prefetch'; benytter nul"
+
+#~ msgid "__builtin_saveregs not supported by this target"
+#~ msgstr "__builtin_saveregs understttes ikke af denne mlarkitektur"
+
+#~ msgid "argument of `__builtin_args_info' must be constant"
+#~ msgstr "parameteren til '__builtin_args_info' skal vre konstant"
+
+#~ msgid "argument of `__builtin_args_info' out of range"
+#~ msgstr "parameteren til '__builtin_args_info' er uden for det gyldige interval"
+
+#~ msgid "missing argument in `__builtin_args_info'"
+#~ msgstr "manglende parameter i '__builtin_args_info'"
+
+#~ msgid "`va_start' used in function with fixed args"
+#~ msgstr "`va_start' benyttet i en funktion med fast antal parametre"
+
+#~ msgid "second parameter of `va_start' not last named argument"
+#~ msgstr "den anden parameter til 'va_start' er ikke den sidste navngivne parameter"
+
+#~ msgid "`__builtin_next_arg' called without an argument"
+#~ msgstr "`__builtin_next_arg' kaldt uden en parameter"
+
+#~ msgid "too many arguments to function `va_start'"
+#~ msgstr "for mange parametre til funktionen 'va_start'"
+
+#~ msgid "first argument to `va_arg' not of type `va_list'"
+#~ msgstr "den frste parameter til 'va_arg' er ikke af typen 'va_list'"
+
+#~ msgid "`%s' is promoted to `%s' when passed through `...'"
+#~ msgstr "'%s' forfremmes til '%s' ved overbringelse gennem '...'"
+
+#~ msgid "(so you should pass `%s' not `%s' to `va_arg')"
+#~ msgstr "(s du skal overbring '%s' ikke '%s' til 'va_arg')"
+
+#~ msgid "invalid arg to `__builtin_frame_address'"
+#~ msgstr "ugyldig parameter til '__builtin_frame_address'"
+
+#~ msgid "invalid arg to `__builtin_return_address'"
+#~ msgstr "ugyldig parameter til '__builtin_return_address'"
+
+#~ msgid "unsupported arg to `__builtin_frame_address'"
+#~ msgstr "ikke-understttet parameter til '__builtin_frame_address'"
+
+#~ msgid "unsupported arg to `__builtin_return_address'"
+#~ msgstr "ikke-understttet parameter til '__builtin_return_address'"
+
+#~ msgid "second arg to `__builtin_expect' must be a constant"
+#~ msgstr "den anden parameter til '__builtin_expect' skal vre en konstant"
+
+#~ msgid "__builtin_longjmp second argument must be 1"
+#~ msgstr "den anden paramter til '__builtin_longjmp' skal vre 1"
+
+#~ msgid "built-in function `%s' not currently supported"
+#~ msgstr "den indbyggede funktion '%s' understttes i jeblikket ikke"
+
+#~ msgid "target format does not support infinity"
+#~ msgstr "mlprocessoren understtter ikke uendelig"
+
+#~ msgid "`%s' is not defined outside of function scope"
+#~ msgstr "'%s' er ikke defineret uden for funktionsvirkefelt"
+
+#~ msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+#~ msgstr "strenglngden '%d' er strre end den lngde p '%d' som ISO C%d-oversttere er plagt at understtte"
+
+#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+#~ msgstr "sammenstning af strengkonstanter med __FUNCTION__ er forldet"
+
+#~ msgid "overflow in constant expression"
+#~ msgstr "overlb i konstant udtryk"
+
+#~ msgid "integer overflow in expression"
+#~ msgstr "heltalsoverlb i udtryk"
+
+#~ msgid "floating point overflow in expression"
+#~ msgstr "kommatalsoverlb i udtryk"
+
+#~ msgid "vector overflow in expression"
+#~ msgstr "vektoroverlb i udtryk"
+
+#~ msgid "large integer implicitly truncated to unsigned type"
+#~ msgstr "stort heltal forkortes underforstet til type uden fortegn"
+
+#~ msgid "negative integer implicitly converted to unsigned type"
+#~ msgstr "negativt heltal forkortes underforstet til type uden fortegn"
+
+#~ msgid "overflow in implicit constant conversion"
+#~ msgstr "overlb i underforstet konstant konvertering"
+
+#~ msgid "operation on `%s' may be undefined"
+#~ msgstr "brug af '%s' er muligvis ikke defineret"
+
+#~ msgid "expression statement has incomplete type"
+#~ msgstr "udtrykket er af en ufuldstndig type"
+
+#~ msgid "case label does not reduce to an integer constant"
+#~ msgstr "case-etiketten kan ikke reduceres til en heltalskonstant"
+
+#~ msgid "invalid truth-value expression"
+#~ msgstr "ugyldigt sandhedsvrdiudtryk"
+
+#~ msgid "invalid operands to binary %s"
+#~ msgstr "ugyldige operander til binr %s"
+
+#~ msgid "comparison is always false due to limited range of data type"
+#~ msgstr "sammenligning er altid falsk p grund af den begrnsede rkkevidde af datatypen"
+
+#~ msgid "comparison is always true due to limited range of data type"
+#~ msgstr "sammenligning er altid sand p grund af den begrnsede rkkevidde af datatypen"
+
+#~ msgid "comparison of unsigned expression >= 0 is always true"
+#~ msgstr "sammenligning med unsigned udtryk >= 0 er altid sand"
+
+#~ msgid "comparison of unsigned expression < 0 is always false"
+#~ msgstr "sammenligning med unsigned udtryk < 0 er altid falsk"
+
+#~ msgid "pointer of type `void *' used in arithmetic"
+#~ msgstr "henvisning af typen 'void *' benyttet i udregning"
+
+#~ msgid "pointer to a function used in arithmetic"
+#~ msgstr "henvisning til en funktion benyttet i udregning"
+
+#~ msgid "pointer to member function used in arithmetic"
+#~ msgstr "henvisning til en medlemsfunktion benyttet i udregning"
+
+#~ msgid "pointer to a member used in arithmetic"
+#~ msgstr "henvisning til et medlem benyttet i udregning"
+
+#~ msgid "struct type value used where scalar is required"
+#~ msgstr "vrdi af struct-type angivet hvor skalar er pkrvet"
+
+#~ msgid "union type value used where scalar is required"
+#~ msgstr "vrdi af union-type angivet hvor skalar er pkrvet"
+
+#~ msgid "array type value used where scalar is required"
+#~ msgstr "vrdi af tabeltype angivet hvor skalar er pkrvet"
+
+#~ msgid "suggest parentheses around assignment used as truth value"
+#~ msgstr "foreslr paranteser omkring tildeling der er benyttet som boolsk vrdi"
+
+#~ msgid "invalid use of `restrict'"
+#~ msgstr "ugyldig brug af 'restrict'"
+
+#~ msgid "invalid application of `sizeof' to a function type"
+#~ msgstr "ugyldig anvendelse af 'sizeof' p en funktionstype"
+
+#~ msgid "invalid application of `%s' to a void type"
+#~ msgstr "ugyldig anvendelse af '%s' p en void-type"
+
+#~ msgid "invalid application of `%s' to an incomplete type"
+#~ msgstr "ugyldig anvendelse af '%s' p en ufuldstndig type"
+
+#~ msgid "`__alignof' applied to a bit-field"
+#~ msgstr "'__alignof' benyttet p et bitfelt"
+
+#~ msgid "cannot disable built-in function `%s'"
+#~ msgstr "kan ikke deaktivere den indbyggede funktion '%s'"
+
+#~ msgid "too few arguments to function `%s'"
+#~ msgstr "for f parametre til funktionen '%s'"
+
+#~ msgid "too many arguments to function `%s'"
+#~ msgstr "for mange parametre til funktionen '%s'"
+
+#~ msgid "non-floating-point argument to function `%s'"
+#~ msgstr "parameter der ikke er et kommatal, til funktionen '%s'"
+
+#~ msgid "pointers are not permitted as case values"
+#~ msgstr "henvisningsvariabler er ikke tilladt som case-vrdier"
+
+#~ msgid "ISO C++ forbids range expressions in switch statements"
+#~ msgstr "ISO C++ forbyder intervaludtryk i switch-stninger"
+
+#~ msgid "ISO C forbids range expressions in switch statements"
+#~ msgstr "ISO C forbyder intervaludtryk i switch-stninger"
+
+#~ msgid "empty range specified"
+#~ msgstr "tomt interval angivet"
+
+#~ msgid "duplicate (or overlapping) case value"
+#~ msgstr "case-vrdi optrder mere end n gang (mske pga. intervalsammenfald)"
+
+#~ msgid "this is the first entry overlapping that value"
+#~ msgstr "dette er det frste punkt som falder sammen med den vrdi"
+
+#~ msgid "duplicate case value"
+#~ msgstr "case-vrdi optrder mere end n gang"
+
+#~ msgid "previously used here"
+#~ msgstr "tidligere benyttet her"
+
+#~ msgid "multiple default labels in one switch"
+#~ msgstr "flere default-etiketter i n switch-konstruktion"
+
+#~ msgid "this is the first default label"
+#~ msgstr "dette er den frste default-etiket"
+
+#~ msgid "ISO C++ forbids taking the address of a label"
+#~ msgstr "ISO C++ forbyder at tage adressen af en etiket"
+
+#~ msgid "ISO C forbids taking the address of a label"
+#~ msgstr "ISO C forbyder at tage adressen af en etiket"
+
+#~ msgid "declaration of `%s' shadows %s"
+#~ msgstr "erklring af '%s' skygger for '%s'"
+
+#~ msgid "unknown machine mode `%s'"
+#~ msgstr "ukendt maskintilstand '%s'"
+
+#~ msgid "no data type for mode `%s'"
+#~ msgstr "ingen datatype til tilstanden '%s'"
+
+#~ msgid "unable to emulate '%s'"
+#~ msgstr "kunne ikke emulere '%s'"
+
+#~ msgid "section attribute cannot be specified for local variables"
+#~ msgstr "sektionsegenskaben kan ikke angives for lokale variabler"
+
+#~ msgid "section of `%s' conflicts with previous declaration"
+#~ msgstr "sektionen '%s' strider mod tidligere erklring"
+
+#~ msgid "section attribute not allowed for `%s'"
+#~ msgstr "sektionsegenskaben er ikke tilladt for '%s'"
+
+#~ msgid "section attributes are not supported for this target"
+#~ msgstr "sektionsegenskaber understttes ikke p denne mlarkitektur"
+
+#~ msgid "requested alignment is not a constant"
+#~ msgstr "angivet justering er ikke en konstant"
+
+#~ msgid "requested alignment is not a power of 2"
+#~ msgstr "angivet justering er ikke en potens af 2"
+
+#~ msgid "requested alignment is too large"
+#~ msgstr "angivet justering er for stor"
+
+#~ msgid "alignment may not be specified for `%s'"
+#~ msgstr "justering m ikke angives for '%s'"
+
+#~ msgid "`%s' defined both normally and as an alias"
+#~ msgstr "'%s' er defineret bde normalt og som et alias"
+
+#~ msgid "alias arg not a string"
+#~ msgstr "aliasparameter er ikke en streng"
+
+#~ msgid "visibility arg not a string"
+#~ msgstr "synlighedsparameter er ikke en streng"
+
+#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+#~ msgstr "synlighedsparameter skal vre en af \"default\", \"hidden\", \"protected\" eller \"internal\""
+
+#~ msgid "tls_model arg not a string"
+#~ msgstr "tls_model-parameter er ikke en streng"
+
+#~ msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+#~ msgstr "tls_model-parameter skal vre en af \"local-exec\", \"initial-exec\", \"local-dynamic\" eller \"global-dynamic\""
+
+#~ msgid "`%s' attribute applies only to functions"
+#~ msgstr "'%s'-egenskaben kan kun anvendes sammen med funktioner"
+
+#~ msgid "can't set `%s' attribute after definition"
+#~ msgstr "kan ikke angive '%s'-egenskaben efter definitionen"
+
+#~ msgid "`%s' attribute ignored for `%s'"
+#~ msgstr "'%s'-egenskaben ignoreret for '%s'"
+
+#~ msgid "invalid vector type for attribute `%s'"
+#~ msgstr "ugyldig vektortype for egenskaben '%s'"
+
+#~ msgid "no vector mode with the size and type specified could be found"
+#~ msgstr "ingen vektortilstand med den angivne strrelse og typen kunne findes"
+
+#~ msgid "nonnull attribute without arguments on a non-prototype"
+#~ msgstr "ikke-nul egenskab uden parametre til en ikke-prototype"
+
+#~ msgid "nonnull argument has invalid operand number (arg %lu)"
+#~ msgstr "ikke-nul parameter har ugyldig operandnummer (parameter %lu)"
+
+#~ msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+#~ msgstr "ikke-nul parameter med operandnummer uden for det gyldig interval (parameter %lu, operand %lu)"
+
+#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+#~ msgstr "ikke-nul parameter refererer til ikke-henvisningsoperand (parameter %lu, operand %lu)"
+
+#~ msgid "null argument where non-null required (arg %lu)"
+#~ msgstr "nulparameter hvor ikke-nul er pkrvet (parameter %lu)"
+
+#~ msgid "void value not ignored as it ought to be"
+#~ msgstr "tom vrdi er ikke ignoreret som den burde vre"
+
+#~ msgid "conversion to non-scalar type requested"
+#~ msgstr "konvertering til ikke-skalartype udbedt"
+
+#~ msgid "array `%s' assumed to have one element"
+#~ msgstr "tabellen '%s' antages kun at have t element"
+
+#~ msgid "`struct %s' incomplete in scope ending here"
+#~ msgstr "'struct %s' er ufuldstndig ved virkefeltets afslutning her"
+
+#~ msgid "`union %s' incomplete in scope ending here"
+#~ msgstr "'union %s' er ufuldstndig ved virkefeltets afslutning her"
+
+#~ msgid "`enum %s' incomplete in scope ending here"
+#~ msgstr "'enum %s' er ufuldstndig ved virkefeltets afslutning her"
+
+#~ msgid "label `%s' defined but not used"
+#~ msgstr "etiketten '%s' er defineret, men ikke benyttet"
+
+#~ msgid "function `%s' redeclared as inline"
+#~ msgstr "funktionen '%s' omerklret som inline"
+
+#~ msgid "previous declaration of function `%s' with attribute noinline"
+#~ msgstr "tidligere erklring af funktionen '%s' med egenskaben noinline"
+
+#~ msgid "function `%s' redeclared with attribute noinline"
+#~ msgstr "funktionen '%s' omerklret med egenskaben noinline"
+
+#~ msgid "previous declaration of function `%s' was inline"
+#~ msgstr "tidligere erklring af funktionen '%s' var inline"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#~ msgid "shadowing built-in function `%s'"
+#~ msgstr "skygger for den indbyggede funktion '%s'"
+
+#~ msgid "shadowing library function `%s'"
+#~ msgstr "skygger for biblioteksfunktionen '%s'"
+
+#~ msgid "library function `%s' declared as non-function"
+#~ msgstr "biblioteksfunktionen '%s' er erklret som noget der ikke er en funktion"
+
+#~ msgid "built-in function `%s' declared as non-function"
+#~ msgstr "den indbyggede funktion '%s' er erklret som noget der ikke er en funktion"
+
+#~ msgid "`%s' redeclared as different kind of symbol"
+#~ msgstr "'%s' omerklret som en anden form for symbol"
+
+#~ msgid "previous declaration of `%s'"
+#~ msgstr "'%s' er tidligere erklret"
+
+#~ msgid "conflicting types for built-in function `%s'"
+#~ msgstr "modstridende typer for den indbyggede funktion '%s'"
+
+#~ msgid "conflicting types for `%s'"
+#~ msgstr "modstridende typer for '%s'"
+
+#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+#~ msgstr "en parameterliste med '...' passer ikke til en erklring med en tom parameterliste"
+
+#~ msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+#~ msgstr "en parametertype med automatisk forfremmelse passer ikke til en erklring med en tom parameterliste"
+
+#~ msgid "thread-local declaration of `%s' follows non thread-local declaration"
+#~ msgstr "trdlokal erklring af '%s' flger ikke-trdlokal erklring"
+
+#~ msgid "non thread-local declaration of `%s' follows thread-local declaration"
+#~ msgstr "ikke-trdlokal erklring af '%s' flger trdlokal erklring"
+
+#~ msgid "redefinition of `%s'"
+#~ msgstr "omdefinering af '%s'"
+
+#~ msgid "redeclaration of `%s'"
+#~ msgstr "omerklring af '%s'"
+
+#~ msgid "conflicting declarations of `%s'"
+#~ msgstr "modstridende erklringer af '%s'"
+
+#~ msgid "prototype for `%s' follows"
+#~ msgstr "prototypen for '%s' flger"
+
+#~ msgid "non-prototype definition here"
+#~ msgstr "definition uden prototype her"
+
+#~ msgid "prototype for `%s' follows and number of arguments doesn't match"
+#~ msgstr "prototypen for '%s' flger og antallet af parametre passer ikke"
+
+#~ msgid "prototype for `%s' follows and argument %d doesn't match"
+#~ msgstr "prototypen for '%s' flger og den %d. parameter passer ikke"
+
+#~ msgid "`%s' declared inline after being called"
+#~ msgstr "'%s' er erklret inline efter at vre blevet kaldt"
+
+#~ msgid "`%s' declared inline after its definition"
+#~ msgstr "'%s' er erklret inline efter dens definition"
+
+# anden 'declaration' er underforstet i engelsk original
+#~ msgid "static declaration for `%s' follows non-static"
+#~ msgstr "static-erklring af '%s' flger erklring uden static"
+
+#~ msgid "non-static declaration for `%s' follows static"
+#~ msgstr "erklring uden static af '%s' flger static-erklring"
+
+#~ msgid "const declaration for `%s' follows non-const"
+#~ msgstr "const-erklring af '%s' flger ikke-konstant erklring"
+
+#~ msgid "type qualifiers for `%s' conflict with previous decl"
+#~ msgstr "typemodifikationer for '%s' strider mod tidligere erklring"
+
+#~ msgid "redundant redeclaration of `%s' in same scope"
+#~ msgstr "overfldig omerklring af '%s' i samme virkefelt"
+
+#~ msgid "declaration of `%s' shadows a parameter"
+#~ msgstr "erklring af '%s' skygger for en parameter"
+
+#~ msgid "declaration of `%s' shadows a symbol from the parameter list"
+#~ msgstr "erklring af '%s' skygger for et symbol fra parameterlisten"
+
+#~ msgid "a parameter"
+#~ msgstr "en parameter"
+
+#~ msgid "a previous local"
+#~ msgstr "en tidligere lokal variabel"
+
+#~ msgid "a global declaration"
+#~ msgstr "en global erklring"
+
+#~ msgid "nested extern declaration of `%s'"
+#~ msgstr "indlejret extern-erklring af '%s'"
+
+#~ msgid "`%s' used prior to declaration"
+#~ msgstr "'%s' benyttes fr erklringen"
+
+#~ msgid "`%s' was declared implicitly `extern' and later `static'"
+#~ msgstr "'%s' blev underforstet erklret 'extern' og derefter 'static'"
+
+#~ msgid "type mismatch with previous external decl"
+#~ msgstr "typen passer ikke med tidligere ekstern erklring"
+
+#~ msgid "previous external decl of `%s'"
+#~ msgstr "tidligere ekstern erklring af '%s'"
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr "typen passer ikke med tidligere underforstet erklring"
+
+#~ msgid "previous implicit declaration of `%s'"
+#~ msgstr "tidligere underforstet erklring af '%s'"
+
+#~ msgid "`%s' was previously implicitly declared to return `int'"
+#~ msgstr "'%s' blev tidligere underforstet erklret til at returnere 'int'"
+
+#~ msgid "`%s' was declared `extern' and later `static'"
+#~ msgstr "'%s' blev erklret 'extern' og derefter 'static'"
+
+#~ msgid "extern declaration of `%s' doesn't match global one"
+#~ msgstr "extern-erklring af '%s' passer ikke med den globale"
+
+#~ msgid "`%s' locally external but globally static"
+#~ msgstr "'%s' er lokalt ekstern, men globalt statisk"
+
+#~ msgid "function `%s' was previously declared within a block"
+#~ msgstr "funktionen '%s' blev tidligere erklret inden for en blok"
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr "underforstet erklring af funktionen '%s'"
+
+#~ msgid "label %s referenced outside of any function"
+#~ msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
+
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr "etiketten '%s' er blevet erklret mere end n gang"
+
+#~ msgid "this is a previous declaration"
+#~ msgstr "dette er en tidligere erklring"
+
+#~ msgid "unnamed struct/union that defines no instances"
+#~ msgstr "unavngiven struct/union som ikke definerer nogen instanser"
+
+#~ msgid "useless keyword or type name in empty declaration"
+#~ msgstr "ubrugeligt reserveret ord eller typenavn i tom erklring"
+
+#~ msgid "two types specified in one empty declaration"
+#~ msgstr "to typer angivet i n tom erklring"
+
+#~ msgid "empty declaration"
+#~ msgstr "tom erklring"
+
+#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+#~ msgstr "ISO C90 understtter ikke 'static' eller typemodifikationer i parametertabelerklringer"
+
+#~ msgid "ISO C90 does not support `[*]' array declarators"
+#~ msgstr "ISO C90 understtter ikke tabelerklringer med '[*]'"
+
+#~ msgid "GCC does not yet properly implement `[*]' array declarators"
+#~ msgstr "GCC understtter endnu ikke ordentligt tabelerklringer med '[*]'"
+
+#~ msgid "static or type qualifiers in abstract declarator"
+#~ msgstr "static eller typemodifikationer i abstrakt erklring"
+
+#~ msgid "`%s' is usually a function"
+#~ msgstr "'%s' er sdvanligvis en funktion"
+
+# init dkker over vrditildeling her - samme for de nste mange
+#~ msgid "typedef `%s' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef '%s' bliver tildelt en vrdi (benyt __typeof__ i stedet)"
+
+#~ msgid "function `%s' is initialized like a variable"
+#~ msgstr "funktionen '%s' bliver tildelt en startvrdi som en variabel"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "parameteren '%s' bliver tildelt en startvrdi"
+
+#~ msgid "variable-sized object may not be initialized"
+#~ msgstr "et objekt af variabel strrelse m ikke tildeles en startvrdi"
+
+#~ msgid "variable `%s' has initializer but incomplete type"
+#~ msgstr "variablen '%s' bliver tildelt en startvrdi, men er af en ufuldstndig type"
+
+#~ msgid "elements of array `%s' have incomplete type"
+#~ msgstr "elementer i tabellen '%s' er af en ufuldstndig type"
+
+#~ msgid "declaration of `%s' has `extern' and is initialized"
+#~ msgstr "erklringen af '%s' indeholder 'extern' og variablen bliver tildelt en startvrdi"
+
+#~ msgid "inline function `%s' given attribute noinline"
+#~ msgstr "inline funktion '%s' givet egenskaben noinline"
+
+#~ msgid "initializer fails to determine size of `%s'"
+#~ msgstr "startvrdien giver ikke strrelsen af '%s'"
+
+#~ msgid "array size missing in `%s'"
+#~ msgstr "tabelstrrelsen mangler i '%s'"
+
+#~ msgid "zero or negative size array `%s'"
+#~ msgstr "nul eller negativ strrelse for tabellen '%s'"
+
+#~ msgid "storage size of `%s' isn't known"
+#~ msgstr "lagringsstrrelsen af '%s' er ikke kendt"
+
+#~ msgid "storage size of `%s' isn't constant"
+#~ msgstr "lagringsstrrelsen af '%s' er ikke konstant"
+
+#~ msgid "ignoring asm-specifier for non-static local variable `%s'"
+#~ msgstr "ignorerer asm-anvisning til den ikke-statiske, lokale variabel '%s'"
+
+#~ msgid "ISO C forbids parameter `%s' shadowing typedef"
+#~ msgstr "ISO C forbyder at parameteren '%s' skygger for typedef"
+
+#~ msgid "`long long long' is too long for GCC"
+#~ msgstr "'long long long' er for langt for GCC"
+
+#~ msgid "ISO C90 does not support `long long'"
+#~ msgstr "ISO C90 understtter ikke 'long long'"
+
+#~ msgid "duplicate `%s'"
+#~ msgstr "'%s' optrder mere end n gang"
+
+#~ msgid "`__thread' before `extern'"
+#~ msgstr "'__thread' fr 'extern'"
+
+#~ msgid "`__thread' before `static'"
+#~ msgstr "'__thread' fr 'static'"
+
+#~ msgid "two or more data types in declaration of `%s'"
+#~ msgstr "mere end n datatype i erklringen af '%s'"
+
+#~ msgid "`%s' fails to be a typedef or built in type"
+#~ msgstr "'%s' er hverken en typedef eller en indbygget type"
+
+#~ msgid "type defaults to `int' in declaration of `%s'"
+#~ msgstr "typen antages at vre 'int' i erklringen af '%s'"
+
+#~ msgid "both long and short specified for `%s'"
+#~ msgstr "bde long og short er angivet for '%s'"
+
+#~ msgid "long or short specified with char for `%s'"
+#~ msgstr "long eller short angivet samtidig med char for '%s'"
+
+#~ msgid "long or short specified with floating type for `%s'"
+#~ msgstr "long eller short angivet samtidig med en kommatalstype for '%s'"
+
+#~ msgid "the only valid combination is `long double'"
+#~ msgstr "den eneste gyldige kombination er 'long double'"
+
+#~ msgid "both signed and unsigned specified for `%s'"
+#~ msgstr "bde signed og unsigned er angivet for '%s'"
+
+#~ msgid "long, short, signed or unsigned invalid for `%s'"
+#~ msgstr "long, short, signed og unsigned er ugyldige for '%s'"
+
+#~ msgid "long, short, signed or unsigned used invalidly for `%s'"
+#~ msgstr "long, short, signed og unsigned er benyttet p ugyldig vis for '%s'"
+
+#~ msgid "complex invalid for `%s'"
+#~ msgstr "complex ugyldig for '%s'"
+
+#~ msgid "ISO C90 does not support complex types"
+#~ msgstr "ISO C90 understtter ikke komplekse typer"
+
+#~ msgid "ISO C does not support plain `complex' meaning `double complex'"
+#~ msgstr "ISO C understtter ikke at blot 'complex' betyder 'double complex'"
+
+#~ msgid "ISO C does not support complex integer types"
+#~ msgstr "ISO C understtter ikke komplekse heltalstyper"
+
+#~ msgid "duplicate `const'"
+#~ msgstr "'const' optrder mere end n gang"
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr "'restrict' optrder mere end n gang"
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr "'volatile' optrder mere end n gang"
+
+#~ msgid "multiple storage classes in declaration of `%s'"
+#~ msgstr "flere lagringsklasser optrder i erklringen af '%s'"
+
+#~ msgid "function definition declared `auto'"
+#~ msgstr "'auto' er phftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `register'"
+#~ msgstr "'register' er phftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `typedef'"
+#~ msgstr "'typedef' er phftet funktionsdefinitionen"
+
+#~ msgid "function definition declared `__thread'"
+#~ msgstr "'__thread' er phftet funktionsdefinitionen"
+
+#~ msgid "storage class specified for structure field `%s'"
+#~ msgstr "lagringsklasse angivet for strukturfelt '%s'"
+
+#~ msgid "storage class specified for parameter `%s'"
+#~ msgstr "lagringsklasse angivet for parameter '%s'"
+
+#~ msgid "storage class specified for typename"
+#~ msgstr "lagringsklasse angivet for typenavn"
+
+#~ msgid "`%s' initialized and declared `extern'"
+#~ msgstr "'%s' bliver tildelt en startvrdi og er samtidig erklret 'extern'"
+
+#~ msgid "`%s' has both `extern' and initializer"
+#~ msgstr "'%s' er erklret 'extern', men bliver tildelt en startvrdi"
+
+#~ msgid "top-level declaration of `%s' specifies `auto'"
+#~ msgstr "erklring af '%s' p verste niveau angiver 'auto'"
+
+#~ msgid "nested function `%s' declared `extern'"
+#~ msgstr "indlejret funktion '%s' er erklret 'extern'"
+
+#~ msgid "function-scope `%s' implicitly auto and declared `__thread'"
+#~ msgstr "'%s' i funktionsvirkefelt underforstet auto og erklret '__thread'"
+
+#~ msgid "static or type qualifiers in non-parameter array declarator"
+#~ msgstr "static eller typemodifikationer i ikke-parametertabelerklring"
+
+#~ msgid "declaration of `%s' as array of voids"
+#~ msgstr "'%s' erklret som en tabel af void"
+
+#~ msgid "declaration of `%s' as array of functions"
+#~ msgstr "'%s' erklret som en tabel af funktioner"
+
+#~ msgid "invalid use of structure with flexible array member"
+#~ msgstr "ugyldig brug af struktur med fleksibelt tabelmedlem"
+
+#~ msgid "size of array `%s' has non-integer type"
+#~ msgstr "strrelsen af tabellen '%s' er ikke af en heltalstype"
+
+#~ msgid "ISO C forbids zero-size array `%s'"
+#~ msgstr "ISO C forbyder tabellen '%s' med strrelsen nul"
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "strrelsen af tabellen '%s' er negativ"
+
+#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+#~ msgstr "ISO C90 forbyder tabellen '%s' hvis strrelse ikke kan bestemmes"
+
+#~ msgid "ISO C90 forbids variable-size array `%s'"
+#~ msgstr "ISO C90 forbyder tabellen '%s' med variabel strrelse"
+
+#~ msgid "size of array `%s' is too large"
+#~ msgstr "strrelsen af tabellen '%s' er for stor"
+
+#~ msgid "ISO C90 does not support flexible array members"
+#~ msgstr "ISO C90 understtter ikke fleksible tabelmedlemmer"
+
+#~ msgid "array type has incomplete element type"
+#~ msgstr "tabeltypen er af en ufuldstndig type"
+
+#~ msgid "ISO C forbids const or volatile function types"
+#~ msgstr "ISO C forbyder const eller volatile funktionstyper"
+
+#~ msgid "`%s' declared as function returning a function"
+#~ msgstr "'%s' er erklret som en funktion der returnerer en funktion"
+
+#~ msgid "`%s' declared as function returning an array"
+#~ msgstr "'%s' er erklret som en funktion der returnerer en tabel"
+
+#~ msgid "ISO C forbids qualified void function return type"
+#~ msgstr "ISO C forbyder void funktionsreturtype med modifikationer"
+
+#~ msgid "type qualifiers ignored on function return type"
+#~ msgstr "typemodifikationer ignoreret i funktionsreturtypen"
+
+#~ msgid "ISO C forbids qualified function types"
+#~ msgstr "ISO C forbyder funktionsreturtype med modifikationer"
+
+#~ msgid "invalid type modifier within pointer declarator"
+#~ msgstr "ugyldig typemodifikation i erklring af henvisning"
+
+#~ msgid "variable or field `%s' declared void"
+#~ msgstr "variabel eller felt '%s' erklret void"
+
+#~ msgid "attributes in parameter array declarator ignored"
+#~ msgstr "egenskaber i parametertabelerklring ignoreret"
+
+#~ msgid "invalid type modifier within array declarator"
+#~ msgstr "ugyldig typemodifikation i tabelerklring"
+
+#~ msgid "field `%s' declared as a function"
+#~ msgstr "feltet '%s' er erklret som en funktion"
+
+#~ msgid "field `%s' has incomplete type"
+#~ msgstr "feltet '%s' er af en ufuldstndig type"
+
+#~ msgid "invalid storage class for function `%s'"
+#~ msgstr "ugyldig lagringsklasse for funktion '%s'"
+
+#~ msgid "`noreturn' function returns non-void value"
+#~ msgstr "en funktion uden returtype returnerer en ikke-tom vrdi"
+
+# at overstte inline med et udsagnsord her bliver vist for tvetydigt
+#~ msgid "cannot inline function `main'"
+#~ msgstr "funktionen 'main' kan ikke vre inline"
+
+#~ msgid "variable `%s' declared `inline'"
+#~ msgstr "variablen '%s' er erklret 'inline'"
+
+#~ msgid "thread-local storage not supported for this target"
+#~ msgstr "trdlokal lagring understttes ikke p mlarkitekturen"
+
+#~ msgid "function declaration isn't a prototype"
+#~ msgstr "funktionserklringen er ikke en prototype"
+
+#~ msgid "parameter names (without types) in function declaration"
+#~ msgstr "parameternavne (uden typer) i funktionserklringen"
+
+#~ msgid "parameter `%s' has incomplete type"
+#~ msgstr "parameteren '%s' er af en ufuldstndig type"
+
+#~ msgid "parameter has incomplete type"
+#~ msgstr "parameteren er af en ufuldstndig type"
+
+# engelsk original uprcis (hvordan kan man henvise til en type?)
+#~ msgid "parameter `%s' points to incomplete type"
+#~ msgstr "parameteren '%s' er en henvisning til en ufuldstndig type"
+
+#~ msgid "parameter points to incomplete type"
+#~ msgstr "parameteren er en henvisning til en ufuldstndig type"
+
+#~ msgid "parameter `%s' has just a forward declaration"
+#~ msgstr "parameteren '%s' har kun en forhndserklring"
+
+#~ msgid "`void' in parameter list must be the entire list"
+#~ msgstr "'void' i en parameterliste skal udgre hele listen"
+
+#~ msgid "`struct %s' declared inside parameter list"
+#~ msgstr "'struct %s' erklret inde i en parameterliste"
+
+#~ msgid "`union %s' declared inside parameter list"
+#~ msgstr "'union %s' erklret inde i en parameterliste"
+
+#~ msgid "`enum %s' declared inside parameter list"
+#~ msgstr "'enum %s' erklret inde i en parameterliste"
+
+#~ msgid "anonymous struct declared inside parameter list"
+#~ msgstr "anonym struct erklret inde i en parameterliste"
+
+#~ msgid "anonymous union declared inside parameter list"
+#~ msgstr "anonym union erklret inde i en parameterliste"
+
+#~ msgid "anonymous enum declared inside parameter list"
+#~ msgstr "anonym enum erklret inde i en parameterliste"
+
+#~ msgid "its scope is only this definition or declaration, which is probably not what you want"
+#~ msgstr "dens virkefelt er kun denne definition eller erklring hvilket sandsynligvis ikke er hvad du nsker."
+
+#~ msgid "redefinition of `union %s'"
+#~ msgstr "omdefinering af 'union %s'"
+
+#~ msgid "redefinition of `struct %s'"
+#~ msgstr "omdefinering af 'struct %s'"
+
+#~ msgid "declaration does not declare anything"
+#~ msgstr "erklring erklrer ikke noget"
+
+# engelsk original forkortet
+#~ msgid "%s defined inside parms"
+#~ msgstr "%s defineret inden i parameterliste"
+
+#~ msgid "union"
+#~ msgstr "union"
+
+#~ msgid "structure"
+#~ msgstr "struktur"
+
+#~ msgid "%s has no %s"
+#~ msgstr "%s har ingen %s"
+
+#~ msgid "struct"
+#~ msgstr "struct"
+
+#~ msgid "named members"
+#~ msgstr "navngivne medlemmer"
+
+#~ msgid "members"
+#~ msgstr "medlemmer"
+
+#~ msgid "nested redefinition of `%s'"
+#~ msgstr "indlejret omdefinering af '%s'"
+
+#~ msgid "bit-field `%s' width not an integer constant"
+#~ msgstr "bredden af bitfeltet '%s' er ikke en heltalskonstant"
+
+#~ msgid "bit-field `%s' has invalid type"
+#~ msgstr "bitfeltet '%s' er af en ufuldstndig type"
+
+#~ msgid "bit-field `%s' type invalid in ISO C"
+#~ msgstr "typen af bitfeltet '%s' er ugyldig i ISO C"
+
+#~ msgid "negative width in bit-field `%s'"
+#~ msgstr "negativ bredde i bitfeltet '%s'"
+
+#~ msgid "width of `%s' exceeds its type"
+#~ msgstr "bredden af '%s' overstiger typen"
+
+#~ msgid "zero width for bit-field `%s'"
+#~ msgstr "en bredde p nul for bitfeltet '%s'"
+
+# RETMIG: find p et eller andet med prcisionen
+#~ msgid "`%s' is narrower than values of its type"
+#~ msgstr "'%s' er smallere end vrdier af dens type"
+
+#~ msgid "flexible array member in union"
+#~ msgstr "fleksibelt tabelmedlem i union"
+
+#~ msgid "flexible array member not at end of struct"
+#~ msgstr "fleksibelt tabelmedlem ikke i slutningen af struktur"
+
+#~ msgid "flexible array member in otherwise empty struct"
+#~ msgstr "fleksibelt tabelmedlem i ellers tom struktur"
+
+#~ msgid "duplicate member `%s'"
+#~ msgstr "medlemmet '%s' optrder mere end n gang"
+
+#~ msgid "union cannot be made transparent"
+#~ msgstr "union kan ikke ikke gres gennemsigtig"
+
+#~ msgid "redeclaration of `enum %s'"
+#~ msgstr "omerklring af 'enum %s'"
+
+# original forkortet
+#~ msgid "enum defined inside parms"
+#~ msgstr "enum defineret inden i parameterliste"
+
+#~ msgid "enumeration values exceed range of largest integer"
+#~ msgstr "enum-vrdier overstige rkkevidden af det strste heltal"
+
+#~ msgid "enumerator value for `%s' not integer constant"
+#~ msgstr "enum-vrdien for '%s' er ikke en heltalskonstant"
+
+#~ msgid "overflow in enumeration values"
+#~ msgstr "enum-vrdier for store"
+
+#~ msgid "ISO C restricts enumerator values to range of `int'"
+#~ msgstr "ISO C begrnser enum-vrdier til rkkevidden af 'int'"
+
+#~ msgid "return type is an incomplete type"
+#~ msgstr "returtypen er en ufuldstndig type"
+
+#~ msgid "return type defaults to `int'"
+#~ msgstr "returtypen antages at vre 'int'"
+
+#~ msgid "no previous prototype for `%s'"
+#~ msgstr "ingen tidligere prototype for '%s'"
+
+#~ msgid "`%s' was used with no prototype before its definition"
+#~ msgstr "'%s' blev brugt uden en prototype fr dens definition"
+
+#~ msgid "no previous declaration for `%s'"
+#~ msgstr "ingen tidligere erklring af '%s'"
+
+#~ msgid "`%s' was used with no declaration before its definition"
+#~ msgstr "'%s' blev brugt uden en erklring fr dens definition"
+
+#~ msgid "return type of `%s' is not `int'"
+#~ msgstr "returtypen til '%s' er ikke 'int'"
+
+#~ msgid "first argument of `%s' should be `int'"
+#~ msgstr "den frste parameter til '%s' skal vre 'int'"
+
+#~ msgid "second argument of `%s' should be `char **'"
+#~ msgstr "den anden parameter til '%s' skal vre 'char **'"
+
+#~ msgid "third argument of `%s' should probably be `char **'"
+#~ msgstr "den tredje parameter til '%s' skal sandsynligvis vre 'char **'"
+
+#~ msgid "`%s' takes only zero or two arguments"
+#~ msgstr "'%s' tager kun mod to eller ingen parametre"
+
+#~ msgid "`%s' is normally a non-static function"
+#~ msgstr "'%s' er normalt en ikke-statisk funktion"
+
+#~ msgid "parm types given both in parmlist and separately"
+#~ msgstr "parametertyper angivet bde i parameterliste og separat"
+
+#~ msgid "parameter name omitted"
+#~ msgstr "parameternavn udeladt"
+
+#~ msgid "parameter `%s' declared void"
+#~ msgstr "parameteren '%s' erklret void"
+
+#~ msgid "parameter name missing from parameter list"
+#~ msgstr "parameternavn mangler fra parameterliste"
+
+#~ msgid "multiple parameters named `%s'"
+#~ msgstr "flere parametre ved navn '%s'"
+
+#~ msgid "type of `%s' defaults to `int'"
+#~ msgstr "typen til '%s' antages at vre 'int'"
+
+#~ msgid "declaration for parameter `%s' but no such parameter"
+#~ msgstr "erklring af parameteren '%s', men ingen sdan parameter"
+
+#~ msgid "number of arguments doesn't match prototype"
+#~ msgstr "antallet af parametre passer ikke til prototypen"
+
+#~ msgid "promoted argument `%s' doesn't match prototype"
+#~ msgstr "den forfremmede parameter '%s' passer ikke til prototypen"
+
+#~ msgid "argument `%s' doesn't match prototype"
+#~ msgstr "parameteren '%s' passer ikke til prototypen"
+
+#~ msgid "no return statement in function returning non-void"
+#~ msgstr "ingen return-stning i en funktion der ikke returnerer void"
+
+#~ msgid "this function may return with or without a value"
+#~ msgstr "denne funktion kan returnere med eller uden en vrdi"
+
+#~ msgid "size of return value of `%s' is %u bytes"
+#~ msgstr "strrelsen af returtypen til '%s' er %u byte"
+
+#~ msgid "size of return value of `%s' is larger than %d bytes"
+#~ msgstr "strrelsen af returtypen til '%s' er strre end %d byte"
+
+#~ msgid "`for' loop initial declaration used outside C99 mode"
+#~ msgstr "begyndelseserklring i 'for'-lkke benyttet uden for C99-tilstand"
+
+#~ msgid "`struct %s' declared in `for' loop initial declaration"
+#~ msgstr "'struct %s' erklret i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "`union %s' declared in `for' loop initial declaration"
+#~ msgstr "'union %s' erklret i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "`enum %s' declared in `for' loop initial declaration"
+#~ msgstr "'enum %s' erklret i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "declaration of non-variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklring af '%s' der ikke er en variabel, i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "declaration of static variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklring af '%s' der er en statisk variabel, i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "declaration of `extern' variable `%s' in `for' loop initial declaration"
+#~ msgstr "erklring af '%s' der er en 'extern'-variabel, i begyndelseserklring i 'for'-lkke"
+
+#~ msgid "format string arg not a string type"
+#~ msgstr "formateringsstrengsparameter er ikke af en strengtype"
+
+#~ msgid "args to be formatted is not '...'"
+#~ msgstr "parametrene der skal formateres, er ikke '...'"
+
+#~ msgid "strftime formats cannot format arguments"
+#~ msgstr "strftime-formater kan ikke formatere parametre"
+
+#~ msgid "format string has invalid operand number"
+#~ msgstr "formateringsstrengen har et ugyldigt operandtal"
+
+#~ msgid "function does not return string type"
+#~ msgstr "funktionen returnerer ikke en strengtype"
+
+#~ msgid "unrecognized format specifier"
+#~ msgstr "ukendt formateringsanvisning"
+
+#~ msgid "`%s' is an unrecognized format function type"
+#~ msgstr "'%s' er en ukendt formateringsfunktionstype"
+
+#~ msgid "format string arg follows the args to be formatted"
+#~ msgstr "formateringsstrengsparameter efterflger parametrene der skal formateres"
+
+# her er der tale om en signalering
+#~ msgid "` ' flag"
+#~ msgstr "' '-flag"
+
+#~ msgid "the ` ' printf flag"
+#~ msgstr "' '-printf-flaget"
+
+#~ msgid "`+' flag"
+#~ msgstr "'+'-flag"
+
+#~ msgid "the `+' printf flag"
+#~ msgstr "'+'-printf-flaget"
+
+#~ msgid "`#' flag"
+#~ msgstr "'#'-flag"
+
+#~ msgid "the `#' printf flag"
+#~ msgstr "'#'-printf-flaget"
+
+#~ msgid "`0' flag"
+#~ msgstr "'0'-flag"
+
+#~ msgid "the `0' printf flag"
+#~ msgstr "'0'-printf-flaget"
+
+#~ msgid "`-' flag"
+#~ msgstr "'-'-flag"
+
+#~ msgid "the `-' printf flag"
+#~ msgstr "'-'-printf-flaget"
+
+#~ msgid "`'' flag"
+#~ msgstr "'''-flag"
+
+#~ msgid "the `'' printf flag"
+#~ msgstr "'''-printf-flaget"
+
+#~ msgid "`I' flag"
+#~ msgstr "'I'-flag"
+
+#~ msgid "the `I' printf flag"
+#~ msgstr "'I'-printf-flaget"
+
+#~ msgid "field width"
+#~ msgstr "feltbredde"
+
+#~ msgid "field width in printf format"
+#~ msgstr "feltbredde i printf-formatering"
+
+#~ msgid "precision"
+#~ msgstr "prcision"
+
+#~ msgid "precision in printf format"
+#~ msgstr "prcision i printf-formatering"
+
+#~ msgid "length modifier"
+#~ msgstr "lngdetilpasning"
+
+#~ msgid "length modifier in printf format"
+#~ msgstr "lngdetilpasning i printf-formatering"
+
+#~ msgid "assignment suppression"
+#~ msgstr "tildelingsundertrykkelse"
+
+#~ msgid "the assignment suppression scanf feature"
+#~ msgstr "den tildelingsundertrykkende scanf-facilitet"
+
+#~ msgid "`a' flag"
+#~ msgstr "'a'-flag"
+
+#~ msgid "the `a' scanf flag"
+#~ msgstr "'a'-scanf-flaget"
+
+#~ msgid "field width in scanf format"
+#~ msgstr "feltbredde i scanf-formatering"
+
+#~ msgid "length modifier in scanf format"
+#~ msgstr "lngdetilpasning i scanf-formatering"
+
+#~ msgid "the `'' scanf flag"
+#~ msgstr "'''-scanf-flaget"
+
+#~ msgid "the `I' scanf flag"
+#~ msgstr "'I'-scanf-flaget"
+
+#~ msgid "`_' flag"
+#~ msgstr "'_'-flag"
+
+#~ msgid "the `_' strftime flag"
+#~ msgstr "'_'-strftime-flaget"
+
+#~ msgid "the `-' strftime flag"
+#~ msgstr "'-'-strftime-flaget"
+
+#~ msgid "the `0' strftime flag"
+#~ msgstr "'0'-strftime-flaget"
+
+#~ msgid "`^' flag"
+#~ msgstr "'^'-flag"
+
+#~ msgid "the `^' strftime flag"
+#~ msgstr "'^'-strftime-flaget"
+
+#~ msgid "the `#' strftime flag"
+#~ msgstr "'#'-strftime-flaget"
+
+#~ msgid "field width in strftime format"
+#~ msgstr "feltbredde i strftime-formatering"
+
+#~ msgid "`E' modifier"
+#~ msgstr "'E'-modifikation"
+
+#~ msgid "the `E' strftime modifier"
+#~ msgstr "'E'-strftime-modifikationen"
+
+#~ msgid "`O' modifier"
+#~ msgstr "'O'-modifikation"
+
+#~ msgid "the `O' strftime modifier"
+#~ msgstr "'O'-strftime-modifikationen"
+
+#~ msgid "the `O' modifier"
+#~ msgstr "'O'-modifikation"
+
+#~ msgid "fill character"
+#~ msgstr "udfyldningstegn"
+
+#~ msgid "fill character in strfmon format"
+#~ msgstr "udfyldningstegn i strfmon-formatering"
+
+#~ msgid "the `^' strfmon flag"
+#~ msgstr "'^'-strfmon-flaget"
+
+#~ msgid "the `+' strfmon flag"
+#~ msgstr "'+'-strfmon-flaget"
+
+#~ msgid "`(' flag"
+#~ msgstr "'('-flag"
+
+#~ msgid "the `(' strfmon flag"
+#~ msgstr "'('-strfmon-flaget"
+
+#~ msgid "`!' flag"
+#~ msgstr "'!'-flag"
+
+#~ msgid "the `!' strfmon flag"
+#~ msgstr "'!'-strfmon-flaget"
+
+#~ msgid "the `-' strfmon flag"
+#~ msgstr "'-'-strfmon-flaget"
+
+#~ msgid "field width in strfmon format"
+#~ msgstr "feltbredde i strfmon-formatering"
+
+#~ msgid "left precision"
+#~ msgstr "venstreprcision"
+
+#~ msgid "left precision in strfmon format"
+#~ msgstr "venstreprcision i strfmon-formatering"
+
+#~ msgid "right precision"
+#~ msgstr "hjreprcision"
+
+#~ msgid "right precision in strfmon format"
+#~ msgstr "hjreprcision i strfmon-formatering"
+
+#~ msgid "length modifier in strfmon format"
+#~ msgstr "lngdemodifikation i strfmon-formatering"
+
+#~ msgid "function might be possible candidate for `%s' format attribute"
+#~ msgstr "funktion er en mulig kandidat til '%s'-formateringsegenskab"
+
+#~ msgid "missing $ operand number in format"
+#~ msgstr "manglende $-operandnummer i formatering"
+
+#~ msgid "%s does not support %%n$ operand number formats"
+#~ msgstr "%s understtter ikke %%n$-operandnummerformateringer"
+
+#~ msgid "operand number out of range in format"
+#~ msgstr "operandnummer uden for det gyldige interval"
+
+#~ msgid "format argument %d used more than once in %s format"
+#~ msgstr "formateringsparameter %d brugt mere end en gang i %s-formatering"
+
+#~ msgid "format argument %d unused before used argument %d in $-style format"
+#~ msgstr "formateringsparameter %d ubenyttet fr den brugte parameter %d i formatering med $"
+
+#~ msgid "format not a string literal, format string not checked"
+#~ msgstr "formatering er ikke en strengkonstant, formateringsstrengen er ikke kontrolleret"
+
+#~ msgid "format not a string literal and no format arguments"
+#~ msgstr "formatering er ikke en strengkonstant og der er ingen formateringsparametre"
+
+#~ msgid "format not a string literal, argument types not checked"
+#~ msgstr "formatering er ikke en strengkonstant, parametertyper er ikke kontrolleret"
+
+#~ msgid "too many arguments for format"
+#~ msgstr "for mange parametre til formatering"
+
+#~ msgid "unused arguments in $-style format"
+#~ msgstr "ubenyttede parametre i formatering med $"
+
+#~ msgid "zero-length %s format string"
+#~ msgstr "formateringsstreng %s med lngden nul"
+
+#~ msgid "format is a wide character string"
+#~ msgstr "formatering er en bredtegnsstreng"
+
+#~ msgid "embedded `\\0' in format"
+#~ msgstr "indlejret '\\0' i formatering"
+
+#~ msgid "spurious trailing `%%' in format"
+#~ msgstr "mystisk afsluttende '%%' i formatering"
+
+#~ msgid "repeated %s in format"
+#~ msgstr "gentaget %s i formatering"
+
+#~ msgid "missing fill character at end of strfmon format"
+#~ msgstr "mangler fyldtegn i slutningen af strfmon-formatering"
+
+#~ msgid "too few arguments for format"
+#~ msgstr "for f parametre til formatering"
+
+#~ msgid "zero width in %s format"
+#~ msgstr "bredde p nul i %s-formatering"
+
+#~ msgid "empty left precision in %s format"
+#~ msgstr "tom venstreprcision i %s-formatering"
+
+#~ msgid "field precision"
+#~ msgstr "feltprcision"
+
+#~ msgid "empty precision in %s format"
+#~ msgstr "tom prcision i %s-formatering"
+
+#~ msgid "%s does not support the `%s' %s length modifier"
+#~ msgstr "%s understtter ikke '%s' %s-lngdemodifikationen"
+
+#~ msgid "conversion lacks type at end of format"
+#~ msgstr "konvertering mangler type i slutningen af formatering"
+
+#~ msgid "unknown conversion type character `%c' in format"
+#~ msgstr "ukendt konverteringstypetegn '%c' i formatering"
+
+#~ msgid "unknown conversion type character 0x%x in format"
+#~ msgstr "ukendt konverteringstypetegn 0x%x i formatering"
+
+#~ msgid "%s does not support the `%%%c' %s format"
+#~ msgstr "%s understtter ikke '%%%c' %s-formateringen"
+
+#~ msgid "%s used with `%%%c' %s format"
+#~ msgstr "%s brugt med '%%%c' %s-formatering"
+
+#~ msgid "%s does not support %s"
+#~ msgstr "%s understtter ikke %s"
+
+#~ msgid "%s does not support %s with the `%%%c' %s format"
+#~ msgstr "%s understtter ikke %s med '%%%c' %s-formateringen"
+
+#~ msgid "%s ignored with %s and `%%%c' %s format"
+#~ msgstr "%s ignoreret med %s og '%%%c' %s-formatering"
+
+#~ msgid "%s ignored with %s in %s format"
+#~ msgstr "%s ignoreret med %s i %s-formatering"
+
+#~ msgid "use of %s and %s together with `%%%c' %s format"
+#~ msgstr "brug af %s og %s sammen med '%%%c' %s-formatering"
+
+#~ msgid "use of %s and %s together in %s format"
+#~ msgstr "brug af %s og %s sammen i %s-formatering"
+
+#~ msgid "`%%%c' yields only last 2 digits of year in some locales"
+#~ msgstr "'%%%c' giver kun de to sidste cifre af ret under nogle regionalindstillinger"
+
+#~ msgid "`%%%c' yields only last 2 digits of year"
+#~ msgstr "'%%%c' giver kun de to sidste cifre af ret"
+
+#~ msgid "no closing `]' for `%%[' format"
+#~ msgstr "ingen afsluttende '[' til '%%['-formatering"
+
+#~ msgid "use of `%s' length modifier with `%c' type character"
+#~ msgstr "brug af '%s'-lngdemodifikation med '%c'-typetegn"
+
+#~ msgid "%s does not support the `%%%s%c' %s format"
+#~ msgstr "%s understtter ikke '%%%s%c' %s-formateringen"
+
+#~ msgid "operand number specified with suppressed assignment"
+#~ msgstr "operandnummer angivet med undertrykt tildeling"
+
+#~ msgid "operand number specified for format taking no argument"
+#~ msgstr "operandnummer angiver for formatering der ikke tager mod parametre"
+
+#~ msgid "writing through null pointer (arg %d)"
+#~ msgstr "skrivning gennem nulhenvisning (parameter %d)"
+
+#~ msgid "reading through null pointer (arg %d)"
+#~ msgstr "lsning gennem nulhenvisning (parameter %d)"
+
+#~ msgid "writing into constant object (arg %d)"
+#~ msgstr "skrivning til konstant objekt (parameter %d)"
+
+#~ msgid "extra type qualifiers in format argument (arg %d)"
+#~ msgstr "ekstra typemodifikationer i formateringsparameter (parameter %d)"
+
+#~ msgid "format argument is not a pointer (arg %d)"
+#~ msgstr "formateringsparameter er ikke en henvisning (parameter %d)"
+
+#~ msgid "format argument is not a pointer to a pointer (arg %d)"
+#~ msgstr "formateringsparameter er ikke en henvisning til en henvisning (parameter %d)"
+
+#~ msgid "pointer"
+#~ msgstr "henvisning"
+
+#~ msgid "different type"
+#~ msgstr "anden type"
+
+#~ msgid "%s is not type %s (arg %d)"
+#~ msgstr "%s er ikke af typen %s (parameter %d)"
+
+#~ msgid "%s format, %s arg (arg %d)"
+#~ msgstr "%s-formatering, %s-parameter (parameter %d)"
+
+#~ msgid "YYDEBUG not defined"
+#~ msgstr "YYDEBUG ikke defineret"
+
+#~ msgid "badly nested C headers from preprocessor"
+#~ msgstr "ugyldigt indlejrede C-inkluderingsfiler fra prprocessoren"
+
+#~ msgid "ignoring #pragma %s %s"
+#~ msgstr "ignorerer #pragma %s %s"
+
+#~ msgid "universal-character-name '\\u%04x' not valid in identifier"
+#~ msgstr "universelt tegn '\\u%04x' er ikke gyldigt i kaldenavne"
+
+#~ msgid "stray '%c' in program"
+#~ msgstr "vildfaren '%c' i program"
+
+#~ msgid "stray '\\%o' in program"
+#~ msgstr "vildfaren '\\%o' i program"
+
+#~ msgid "this decimal constant is unsigned only in ISO C90"
+#~ msgstr "denne kommatalskonstant er kun unsigned i ISO C90"
+
+#~ msgid "this decimal constant would be unsigned in ISO C90"
+#~ msgstr "denne kommatalskonstant ville vre unsigned i ISO C90"
+
+#~ msgid "integer constant is too large for \"%s\" type"
+#~ msgstr "heltalskonstanten er for stor til typen '%s'"
+
+#~ msgid "floating constant exceeds range of \"%s\""
+#~ msgstr "kommatalskonstant overskrider intervallet for '%s'"
+
+#~ msgid "ignoring invalid multibyte character"
+#~ msgstr "ignorerer ugyldigt flerbyte-tegn"
+
+#~ msgid "missing argument to \"-%s\""
+#~ msgstr "der mangler en parameter til tilvalget '-%s'"
+
+#~ msgid "no class name specified with \"-%s\""
+#~ msgstr "intet klassenavn angivet med '-%s'"
+
+#~ msgid "missing filename after \"-%s\""
+#~ msgstr "et filnavn mangler efter '-%s'"
+
+#~ msgid "missing target after \"-%s\""
+#~ msgstr "et ml mangler efter '-%s'"
+
+#~ msgid "options array incorrectly sorted: %s is before %s"
+#~ msgstr "tilvalgstabel sorteret forkert: %s er fr %s"
+
+#~ msgid "too many filenames given. Type %s --help for usage"
+#~ msgstr "for mange filnavne angivet - vejledning i brug kan fs med '%s --help'"
+
+#~ msgid "-Wno-strict-prototypes is not supported in C++"
+#~ msgstr "-Wno-strict-prototypes er ikke understttet i C++"
+
+#~ msgid "switch \"%s\" is no longer supported"
+#~ msgstr "tilvalget '%s' understttes ikke lngere"
+
+#~ msgid "switch \"%s\" is deprecated, please see documentation for details"
+#~ msgstr "tilvalget '%s' er forldet, se venligst dokumentationen for detaljer"
+
+#~ msgid "-fhandle-exceptions has been renamed to -fexceptions (and is now on by default)"
+#~ msgstr "-fhandle-exceptions er blevet omdbt til -fexceptions (og er nu til som standard)"
+
+#~ msgid "output filename specified twice"
+#~ msgstr "uddatafilnavnet er angivet to gange"
+
+#~ msgid "-Wformat-y2k ignored without -Wformat"
+#~ msgstr "-Wformat-y2k ignoreret uden -Wformat"
+
+#~ msgid "-Wformat-extra-args ignored without -Wformat"
+#~ msgstr "-Wformat-extra-args ignoreret uden -Wformat"
+
+#~ msgid "-Wformat-zero-length ignored without -Wformat"
+#~ msgstr "-Wformat-zero-length ignoreret uden -Wformat"
+
+#~ msgid "-Wformat-nonliteral ignored without -Wformat"
+#~ msgstr "-Wformat-nonliteral ignoreret uden -Wformat"
+
+#~ msgid "-Wformat-security ignored without -Wformat"
+#~ msgstr "-Wformat-security ignoreret uden -Wformat"
+
+#~ msgid "-Wmissing-format-attribute ignored without -Wformat"
+#~ msgstr "-Wmissing-format-attribute ignoreret uden -Wformat"
+
+#~ msgid "opening output file %s"
+#~ msgstr "bner uddatafilen %s"
+
+#~ msgid "opening dependency file %s"
+#~ msgstr "bner afhngighedsfilen %s"
+
+#~ msgid "closing dependency file %s"
+#~ msgstr "lukker afhngighedsfilen %s"
+
+#~ msgid "when writing output to %s"
+#~ msgstr "ved skrivning af uddata til %s"
+
+#~ msgid "to generate dependencies you must specify either -M or -MM"
+#~ msgstr "for at generere afhngigheder skal du angive enten -M eller -MM"
+
+#~ msgid "\"-%s\" is valid for %s but not for %s"
+#~ msgstr "'-%s' er gyldigt for %s, men ikke for %s"
+
+# den fulde tekst til disse bidder findes ogs senere
+#~ msgid ""
+#~ "Switches:\n"
+#~ " -include <file> Include the contents of <file> before other files\n"
+#~ " -imacros <file> Accept definition of macros in <file>\n"
+#~ " -iprefix <path> Specify <path> as a prefix for next two options\n"
+#~ " -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+#~ " -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+#~ " -isystem <dir> Add <dir> to the start of the system include path\n"
+#~ msgstr ""
+#~ "Tilvalg:\n"
+#~ " -include <fil> Inkludr indholdet af <fil> fr andre filer\n"
+#~ " -imacros <fil> Ls makrodefinitionerne i <fil>\n"
+#~ " -iprefix <sti> Angiv <sti> som et prfiks til de nste to tilvalg\n"
+#~ " -iwithprefix <ktlg> Fj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -withprefixbefore <ktlg> Fj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -isystem <ktlg> Fj <ktlg> til begyndelsen af systeminkluderingsstien\n"
+
+#~ msgid ""
+#~ " -idirafter <dir> Add <dir> to the end of the system include path\n"
+#~ " -I <dir> Add <dir> to the end of the main include path\n"
+#~ " -I- Fine-grained include path control; see info docs\n"
+#~ " -nostdinc Do not search system include directories\n"
+#~ " (dirs specified with -isystem will still be used)\n"
+#~ " -nostdinc++ Do not search system include directories for C++\n"
+#~ " -o <file> Put output into <file>\n"
+#~ msgstr ""
+#~ " -idirafter <ktlg> Fj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -I <ktlg> Fj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -I- Nje kontrolleret inkluderingssti; se info-hjlpen\n"
+#~ " -nostdinc Sg ikke i systeminkluderingskataloger\n"
+#~ " (kataloger angivet med -isystem sges dog stadig)\n"
+#~ " -nostdinc++ Sg ikke i systeminkluderingskataloger til C++\n"
+#~ " -o <fil> Send uddata til <fil>\n"
+
+#~ msgid ""
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -std=<std name> Specify the conformance standard; one of:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999, c++98\n"
+#~ " -w Inhibit warning messages\n"
+#~ " -W[no-]trigraphs Warn if trigraphs are encountered\n"
+#~ " -W[no-]comment{s} Warn if one comment starts inside another\n"
+#~ msgstr ""
+#~ " -trigraphs Understt ISO C trigrafer\n"
+#~ " -std=<standardnavn> Angiv at koden retter sig efter en af standarderne:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999, c++98\n"
+#~ " -w Undertryk advarselsmeddelelser\n"
+#~ " -W[no-]trigraphs Advar hvis trigrafer mdes\n"
+#~ " -W[no-]comment{s} Advar hvis en kommentar begynder inden i en anden\n"
+
+#~ msgid ""
+#~ " -W[no-]traditional Warn about features not present in traditional C\n"
+#~ " -W[no-]undef Warn if an undefined macro is used by #if\n"
+#~ " -W[no-]import Warn about the use of the #import directive\n"
+#~ msgstr ""
+#~ " -W[no-]traditional Advar om utilgngelige faciliteter i traditionel C\n"
+#~ " -W[no-]undef Advar hvis en ikkedefineret makro bruges med #if\n"
+#~ " -W[no-]import Advar om brug af #import-direktivet\n"
+
+#~ msgid ""
+#~ " -W[no-]error Treat all warnings as errors\n"
+#~ " -W[no-]system-headers Do not suppress warnings from system headers\n"
+#~ " -W[no-]all Enable most preprocessor warnings\n"
+#~ msgstr ""
+#~ " -W[no-]error Behandl alle advarsler som fejl\n"
+#~ " -W[no-]system-headers Undertryk ikke advarsler fra systeminkluderingsfiler\n"
+#~ " -W[no-]all Sl alle prprocessoradvarsler til\n"
+
+#~ msgid ""
+#~ " -M Generate make dependencies\n"
+#~ " -MM As -M, but ignore system header files\n"
+#~ " -MD Generate make dependencies and compile\n"
+#~ " -MMD As -MD, but ignore system header files\n"
+#~ " -MF <file> Write dependency output to the given file\n"
+#~ " -MG Treat missing header file as generated files\n"
+#~ msgstr ""
+#~ " -M Generr afhngigheder til make\n"
+#~ " -MM Som -M, men ignorr systeminkluderingsfiler\n"
+#~ " -MD Generer make-afhngigheder og overst\n"
+#~ " -MMD Som -MD, men ignorr systeminkluderingsfiler\n"
+#~ " -MF <fil> Skriv afhnghedsuddata til den givne fil\n"
+#~ " -MG Behandl manglende inkl.-filer som genererede filer\n"
+
+# make kalder phony targets for falske ml
+#~ msgid ""
+#~ " -MP\t\t\t Generate phony targets for all headers\n"
+#~ " -MQ <target> Add a MAKE-quoted target\n"
+#~ " -MT <target> Add an unquoted target\n"
+#~ msgstr ""
+#~ " -MP Generr \"falske\" ml for alle inkluderingsfiler\n"
+#~ " -MQ <ml> Tilfj et MAKE-ml i anfrselstegn\n"
+#~ " -MT <ml> Tilfj et ml uden anfrselstegn\n"
+
+#~ msgid ""
+#~ " -D<macro> Define a <macro> with string '1' as its value\n"
+#~ " -D<macro>=<val> Define a <macro> with <val> as its value\n"
+#~ " -A<question>=<answer> Assert the <answer> to <question>\n"
+#~ " -A-<question>=<answer> Disable the <answer> to <question>\n"
+#~ " -U<macro> Undefine <macro> \n"
+#~ " -v Display the version number\n"
+#~ msgstr ""
+#~ " -D<makro> Definr makroen <makro> med strengen '1' som vrdi\n"
+#~ " -D<makro>=<vrdi> Definr makroen <makro> med vrdien <vrdi>\n"
+#~ " -A<sprgsml>=<svar> Angiv at <svar> er svar p <sprgsml>\n"
+#~ " -A-<sprgsml>=<svar> Angiv at <svar> ikke er svar p <sprgsml>\n"
+#~ " -U<makro> Glem definitionen af <makro>\n"
+#~ " -v Skriv versionsnummeret\n"
+
+#~ msgid ""
+#~ " -H Print the name of header files as they are used\n"
+#~ " -C Do not discard comments\n"
+#~ " -dM Display a list of macro definitions active at end\n"
+#~ " -dD Preserve macro definitions in output\n"
+#~ " -dN As -dD except that only the names are preserved\n"
+#~ " -dI Include #include directives in the output\n"
+#~ msgstr ""
+#~ " -H Skriv navnene p inkluderingsfilerne nr de bruges\n"
+#~ " -C Fjern ikke kommentarer\n"
+#~ " -dM Vis til sidst de aktive makrodefinitioner\n"
+#~ " -dD Bevar makrodefinitioner i uddata\n"
+#~ " -dN Som -dD bortset fra at kun navnene bevares\n"
+#~ " -dI Inkludr #include-anvisninger i uddata\n"
+
+#~ msgid ""
+#~ " -f[no-]preprocessed Treat the input file as already preprocessed\n"
+#~ " -ftabstop=<number> Distance between tab stops for column reporting\n"
+#~ " -P Do not generate #line directives\n"
+#~ " -remap Remap file names when including files\n"
+#~ " --help Display this information\n"
+#~ msgstr ""
+#~ " -f[no-]preprocessed Behandl inddatafilen som allerede prprocesseret\n"
+#~ " -ftabstop=<tal> Afstand mellem tabulatorstop i kolonnerapportering\n"
+#~ " -P Generr ikke #line-angivelser\n"
+#~ " -remap Omdan filnavne ved filinkludering\n"
+#~ " --help Vis denne vejledning\n"
+
+#~ msgid "syntax error"
+#~ msgstr "syntaksfejl"
+
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "syntaksfejl: kan ikke g tilbage"
+
+#~ msgid "ISO C forbids an empty source file"
+#~ msgstr "ISO C forbyder en tom kildefil"
+
+#~ msgid "argument of `asm' is not a constant string"
+#~ msgstr "parameteren til 'asm' er ikke en konstant streng"
+
+#~ msgid "ISO C forbids data definition with no type or storage class"
+#~ msgstr "ISO C forbyder definition af data uden angivelse af type eller lagringsklasse"
+
+#~ msgid "data definition has no type or storage class"
+#~ msgstr "definition af data uden angivelse af type eller lagringsklasse"
+
+#~ msgid "ISO C does not allow extra `;' outside of a function"
+#~ msgstr "ISO C tillader ikke ekstra ';' uden for funktioner"
+
+#~ msgid "`sizeof' applied to a bit-field"
+#~ msgstr "'sizeof' benyttet p et bitfelt"
+
+#~ msgid "ISO C forbids omitting the middle term of a ?: expression"
+#~ msgstr "ISO C forbyder udeladelse af den midterste del af et '?:'-udtryk"
+
+#~ msgid "ISO C89 forbids compound literals"
+#~ msgstr "ISO C89 forbyder sammensatte konstanter"
+
+#~ msgid "ISO C forbids braced-groups within expressions"
+#~ msgstr "ISO C forbyder stningsblokke inden i udtryk"
+
+#~ msgid "first argument to __builtin_choose_expr not a constant"
+#~ msgstr "frste parameter til '__builtin_choose_expr' skal vre en konstant"
+
+#~ msgid "traditional C rejects ISO C style function definitions"
+#~ msgstr "traditionel C tillader ikke ISO C-functionsdefinitioner"
+
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr "'%s' er ikke ved begyndelsen af erklringen"
+
+#~ msgid "ISO C forbids empty initializer braces"
+#~ msgstr "ISO C forbyder tom startvrdiblok"
+
+#~ msgid "ISO C89 forbids specifying subobject to initialize"
+#~ msgstr "ISO C89 forbyder angivelse af underobjekt til klargring"
+
+# RETMIG: hm, gad vide om dette er rigtigt
+#~ msgid "obsolete use of designated initializer without `='"
+#~ msgstr "forldet brug af udpeget startvrdi uden '='"
+
+#~ msgid "obsolete use of designated initializer with `:'"
+#~ msgstr "forldet brug af udpeget startvrdi med ':'"
+
+#~ msgid "ISO C forbids specifying range of elements to initialize"
+#~ msgstr "ISO C forbyder angivelse af interval af elementer til klargring"
+
+#~ msgid "ISO C forbids nested functions"
+#~ msgstr "ISO C forbyder indlejrede funktioner"
+
+#~ msgid "ISO C forbids forward references to `enum' types"
+#~ msgstr "ISO C forbyder forhndsreferencer til 'enum'-typer"
+
+#~ msgid "comma at end of enumerator list"
+#~ msgstr "komma i slutningen af enum-liste"
+
+#~ msgid "no semicolon at end of struct or union"
+#~ msgstr "intet semikolon i slutningen af struct eller union"
+
+#~ msgid "extra semicolon in struct or union specified"
+#~ msgstr "ekstra semikolon angivet i struct eller union"
+
+#~ msgid "ISO C doesn't support unnamed structs/unions"
+#~ msgstr "ISO C understtter ikke unavngivne struct/union-konstruktioner"
+
+#~ msgid "ISO C forbids member declarations with no members"
+#~ msgstr "ISO C forbyder medlemserklringer uden medlemmer"
+
+#~ msgid "deprecated use of label at end of compound statement"
+#~ msgstr "forldet brug af etiket i slutningen af sammensat stning"
+
+#~ msgid "ISO C89 forbids mixed declarations and code"
+#~ msgstr "ISO C89 forbyder blandede erklringer og kode"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO C forbyder etiketerklringer"
+
+#~ msgid "braced-group within expression allowed only inside a function"
+#~ msgstr "stningsblokke i udtryk er kun tilladt inde i en funktion"
+
+#~ msgid "empty body in an else-statement"
+#~ msgstr "tom krop i en else-stning"
+
+#~ msgid "ISO C forbids `goto *expr;'"
+#~ msgstr "ISO C forbyder 'goto *udtryk;'"
+
+#~ msgid "ISO C forbids forward parameter declarations"
+#~ msgstr "ISO C forbyder forhndsparametererklringer"
+
+#~ msgid "ISO C requires a named argument before `...'"
+#~ msgstr "ISO C pkrver en navngiven parameter fr '...'"
+
+#~ msgid "`...' in old-style identifier list"
+#~ msgstr "'...' i gammeldags liste af kaldenavne"
+
+#~ msgid "parse error; also virtual memory exhausted"
+#~ msgstr "tolkningsfejl; desuden lbet tr for virtuel hukommelse"
+
+#~ msgid "parse error"
+#~ msgstr "tolkningsfejl"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "overlb i tolkerens stak"
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s ved slutning af inddata"
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s fr %s'%c'"
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s fr %s'\\x%x'"
+
+#~ msgid "%s before string constant"
+#~ msgstr "%s fr strengkonstant"
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s fr talkonstant"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s fr \"%s\""
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s fr symbolet '%s'"
+
+#~ msgid "traditional C rejects string concatenation"
+#~ msgstr "traditionel C tillader ikke strengsammenstning"
+
+#~ msgid "syntax error at '%s' token"
+#~ msgstr "syntaksfejl ved symbolet '%s'"
+
+#~ msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+#~ msgstr "'#pragma pack (pop)' mdt uden tilsvarende '#pragma pack (push, <n>)'"
+
+#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+#~ msgstr "'#pragma pack(pop, %s)' mdt uden tilsvarende '#pragma pack(push, %s, <n>)'"
+
+#~ msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(push[, id], <n>) understttes ikke p mlarkitekturen"
+
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(pop[, id], <n>) understttes ikke p mlarkitekturen"
+
+#~ msgid "missing '(' after '#pragma pack' - ignored"
+#~ msgstr "manglende '(' efter '#pragma pack' - ignoreret"
+
+#~ msgid "malformed '#pragma pack' - ignored"
+#~ msgstr "forkert udformet '#pragma pack' - ignoreret"
+
+#~ msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+#~ msgstr "forkert udformet '#pragma pack(push[, id], <n>)' - ignoreret"
+
+#~ msgid "malformed '#pragma pack(pop[, id])' - ignored"
+#~ msgstr "forkert udformet '#pragma pack(pop[, id])' - ignoreret"
+
+#~ msgid "unknown action '%s' for '#pragma pack' - ignored"
+#~ msgstr "ukendt handling '%s' for '#pragma pack' - ignoreret"
+
+#~ msgid "junk at end of '#pragma pack'"
+#~ msgstr "ragelse i slutningen af '#pragma pack'"
+
+#~ msgid "alignment must be a small power of two, not %d"
+#~ msgstr "justering skal vre en lille potens af to, ikke %d"
+
+#~ msgid "applying #pragma weak `%s' after first use results in unspecified behavior"
+#~ msgstr "anvendelse af #pragma weak '%s' efter frste brug resulterer i ikke-defineret opfrsel"
+
+#~ msgid "malformed #pragma weak, ignored"
+#~ msgstr "forkert udformet '#pragma weak' - ignoreret"
+
+#~ msgid "junk at end of #pragma weak"
+#~ msgstr "ragelse i slutningen af '#pragma weak'"
+
+#~ msgid "malformed #pragma redefine_extname, ignored"
+#~ msgstr "forkert udformet '#pragma redefine_extname' - ignoreret"
+
+#~ msgid "junk at end of #pragma redefine_extname"
+#~ msgstr "ragelse i slutningen af '#pragma redefine_extname'"
+
+#~ msgid "#pragma redefine_extname conflicts with declaration"
+#~ msgstr "#pragma redefine_extname er i konflikt med erklring"
+
+#~ msgid "malformed #pragma extern_prefix, ignored"
+#~ msgstr "forkert udformet '#pragma extern_prefix' - ignoreret"
+
+#~ msgid "junk at end of #pragma extern_prefix"
+#~ msgstr "ragelse i slutningen af '#pragma extern_prefix'"
+
+#~ msgid "asm declaration conflicts with previous rename"
+#~ msgstr "asm-erklring er i konflikt med tidligere omdbelse"
+
+#~ msgid "break statement not within loop or switch"
+#~ msgstr "break-stning befinder sig ikke i en lkke- eller switch-konstruktion"
+
+#~ msgid "continue statement not within a loop"
+#~ msgstr "continue-stning befinder sig ikke i en lkke"
+
+#~ msgid "destructor needed for `%#D'"
+#~ msgstr "destruktionsfunktion pkrvet til '%#D'"
+
+#~ msgid "where case label appears here"
+#~ msgstr "hvor case-etiket optrder her"
+
+#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+#~ msgstr "(indesluttede handlinger fra tidligere case-stninger krver destruktionsfunktioner i deres eget virkefelt)"
+
+#~ msgid "%s qualifier ignored on asm"
+#~ msgstr "%s-modifikation ignoreret ved asm"
+
+#~ msgid "`%s' has an incomplete type"
+#~ msgstr "'%s' er af en ufuldstndig type"
+
+#~ msgid "invalid use of void expression"
+#~ msgstr "ugyldig brug af void-udtryk"
+
+#~ msgid "invalid use of flexible array member"
+#~ msgstr "ugyldig brug af fleksibelt tabelmedlem"
+
+#~ msgid "invalid use of array with unspecified bounds"
+#~ msgstr "ugyldig brug af tabel uden angivne grnser"
+
+#~ msgid "invalid use of undefined type `%s %s'"
+#~ msgstr "ugyldig brug af en type '%s %s' der ikke er defineret"
+
+#~ msgid "invalid use of incomplete typedef `%s'"
+#~ msgstr "ugyldig brug af ufuldstndig typedef '%s'"
+
+#~ msgid "function types not truly compatible in ISO C"
+#~ msgstr "funktionstyper ikke er fuldt ud forenelige i ISO C"
+
+#~ msgid "types are not quite compatible"
+#~ msgstr "typer er ikke helt forenelige"
+
+#~ msgid "arithmetic on pointer to an incomplete type"
+#~ msgstr "beregninger udfrt p en henvisning til en ufuldstndig type"
+
+#~ msgid "%s has no member named `%s'"
+#~ msgstr "%s har intet medlem ved navn '%s'"
+
+#~ msgid "request for member `%s' in something not a structure or union"
+#~ msgstr "foresprgsel efter medlemmet '%s' i noget der hverken er en union eller en struktur"
+
+#~ msgid "dereferencing pointer to incomplete type"
+#~ msgstr "forsg p at flge en henvisning til en variabel af en ufuldstndig type"
+
+#~ msgid "dereferencing `void *' pointer"
+#~ msgstr "forsg p at flge en 'void *'-henvisning"
+
+#~ msgid "invalid type argument of `%s'"
+#~ msgstr "ugyldig typeparameter '%s'"
+
+#~ msgid "subscript missing in array reference"
+#~ msgstr "indeks mangler i tabelopslag"
+
+#~ msgid "array subscript has type `char'"
+#~ msgstr "tabelindeks er af typen 'char'"
+
+#~ msgid "array subscript is not an integer"
+#~ msgstr "tabelindeks er ikke et heltal"
+
+#~ msgid "ISO C forbids subscripting `register' array"
+#~ msgstr "ISO C forbyder opslag i 'register'-tabel"
+
+#~ msgid "ISO C90 forbids subscripting non-lvalue array"
+#~ msgstr "ISO C90 forbyder opslag i tabel der ikke er venstrevrdi"
+
+#~ msgid "subscript has type `char'"
+#~ msgstr "indeks er af typen 'char'"
+
+#~ msgid "subscripted value is neither array nor pointer"
+#~ msgstr "vrdien der er pfrt et indeks, er hverken en tabel eller en henvisningsvariabel"
+
+#~ msgid "`%s' undeclared here (not in a function)"
+#~ msgstr "'%s' ikke erklret her (ikke i en funktion)"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr "'%s' er ikke erklret (frst benyttet i denne funktion)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(et kaldenavn der ikke er erklret, rapporteres kun n gang"
+
+#~ msgid "for each function it appears in.)"
+#~ msgstr "per funktion)"
+
+#~ msgid "local declaration of `%s' hides instance variable"
+#~ msgstr "den lokale erklring af funktionen '%s' skjuler instansvariabel"
+
+#~ msgid "called object is not a function"
+#~ msgstr "det kaldte objekt er ikke en funktion"
+
+#~ msgid "too many arguments to function"
+#~ msgstr "for mange parametre til funktionen"
+
+#~ msgid "type of formal parameter %d is incomplete"
+#~ msgstr "typen af den formelle parameter %d er ufuldstndig"
+
+#~ msgid "%s as integer rather than floating due to prototype"
+#~ msgstr "%s som heltal i stedet for kommatal p grund af prototypen"
+
+#~ msgid "%s as integer rather than complex due to prototype"
+#~ msgstr "%s som heltal i stedet for complex p grund af prototypen"
+
+#~ msgid "%s as complex rather than floating due to prototype"
+#~ msgstr "%s som complex i stedet for kommatal p grund af prototypen"
+
+#~ msgid "%s as floating rather than integer due to prototype"
+#~ msgstr "%s som kommatal i stedet for heltal p grund af prototypen"
+
+#~ msgid "%s as complex rather than integer due to prototype"
+#~ msgstr "%s som complex i stedet for heltal p grund af prototypen"
+
+#~ msgid "%s as floating rather than complex due to prototype"
+#~ msgstr "%s som kommatal i stedet for complex p grund af prototypen"
+
+#~ msgid "%s as `float' rather than `double' due to prototype"
+#~ msgstr "%s som float i stedet for double p grund af prototypen"
+
+#~ msgid "%s with different width due to prototype"
+#~ msgstr "%s med anderledes bredde p grund af prototypen"
+
+#~ msgid "%s as unsigned due to prototype"
+#~ msgstr "%s som unsigned p grund af prototypen"
+
+#~ msgid "%s as signed due to prototype"
+#~ msgstr "%s som signed p grund af prototypen"
+
+#~ msgid "too few arguments to function"
+#~ msgstr "for f parametre til funktionen"
+
+#~ msgid "suggest parentheses around + or - inside shift"
+#~ msgstr "foreslr paranteser omkring + eller - inden i skifteoperation"
+
+#~ msgid "suggest parentheses around && within ||"
+#~ msgstr "foreslr paranteser omkring && inden i ||"
+
+#~ msgid "suggest parentheses around arithmetic in operand of |"
+#~ msgstr "foreslr paranteser omkring beregning i operand til |"
+
+#~ msgid "suggest parentheses around comparison in operand of |"
+#~ msgstr "foreslr paranteser omkring sammenligning i operand til |"
+
+#~ msgid "suggest parentheses around arithmetic in operand of ^"
+#~ msgstr "foreslr paranteser omkring beregning i operand til ^"
+
+#~ msgid "suggest parentheses around comparison in operand of ^"
+#~ msgstr "foreslr paranteser omkring sammenligning i operand til ^"
+
+#~ msgid "suggest parentheses around + or - in operand of &"
+#~ msgstr "foreslr paranteser omkring + eller - i operand til &"
+
+#~ msgid "suggest parentheses around comparison in operand of &"
+#~ msgstr "foreslr paranteser omkring sammenligning i operand til &"
+
+#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+#~ msgstr "sammenligninger som 'x <= y <= z' flger ikke den matematiske betydning"
+
+#~ msgid "division by zero"
+#~ msgstr "division med nul"
+
+#~ msgid "right shift count is negative"
+#~ msgstr "hjreskiftsantal er negativ"
+
+#~ msgid "right shift count >= width of type"
+#~ msgstr "hjreskiftsantal er strre end bredden af typen"
+
+#~ msgid "left shift count is negative"
+#~ msgstr "venstreskiftsantal er negativ"
+
+#~ msgid "left shift count >= width of type"
+#~ msgstr "venstreskiftsantal er strre end bredden af typen"
+
+#~ msgid "shift count is negative"
+#~ msgstr "skifteantal er negativ"
+
+#~ msgid "shift count >= width of type"
+#~ msgstr "skifteantal er strre end bredden af typen"
+
+#~ msgid "comparing floating point with == or != is unsafe"
+#~ msgstr "sammenligning af kommatal med == eller != er ikke sikkert"
+
+#~ msgid "ISO C forbids comparison of `void *' with function pointer"
+#~ msgstr "ISO C forbyder sammenligning af 'void *' med funktionshenvisning"
+
+#~ msgid "comparison of distinct pointer types lacks a cast"
+#~ msgstr "sammenligning med forskellige henvisningstyper mangler en typeomtvingelse"
+
+#~ msgid "comparison between pointer and integer"
+#~ msgstr "sammenligning mellem henvisningsvariabel og heltal"
+
+#~ msgid "ISO C forbids ordered comparisons of pointers to functions"
+#~ msgstr "ISO C forbyder ordnede sammenligninger af henvisninger til funktioner"
+
+#~ msgid "comparison of complete and incomplete pointers"
+#~ msgstr "sammenligning mellem en fuldstndig og ufuldstndig henvisning"
+
+#~ msgid "ordered comparison of pointer with integer zero"
+#~ msgstr "ordnet sammenligning af henvisning med heltallet nul"
+
+#~ msgid "unordered comparison on non-floating point argument"
+#~ msgstr "uordnet sammenligning af ikke-kommatalsparameter"
+
+#~ msgid "comparison between signed and unsigned"
+#~ msgstr "sammenligning mellem signed og unsigned"
+
+#~ msgid "comparison of promoted ~unsigned with constant"
+#~ msgstr "sammenligning af forfremmet ~unsigned med konstant"
+
+#~ msgid "comparison of promoted ~unsigned with unsigned"
+#~ msgstr "sammenligning af forfremmet ~unsigned med unsigned"
+
+#~ msgid "pointer of type `void *' used in subtraction"
+#~ msgstr "henvisning af typen 'void *' benyttet i subtraktion"
+
+#~ msgid "pointer to a function used in subtraction"
+#~ msgstr "henvisning til en funktion benyttet i subtraktion"
+
+#~ msgid "wrong type argument to unary plus"
+#~ msgstr "forkert parametertype til unrt plus"
+
+#~ msgid "wrong type argument to unary minus"
+#~ msgstr "forkert parametertype til unrt minus"
+
+#~ msgid "ISO C does not support `~' for complex conjugation"
+#~ msgstr "ISO C understtter ikke '~' til compleks-konjugering"
+
+#~ msgid "wrong type argument to bit-complement"
+#~ msgstr "forkert parametertype til bitkomplement"
+
+#~ msgid "wrong type argument to abs"
+#~ msgstr "forkert parametertype til abs"
+
+#~ msgid "wrong type argument to conjugation"
+#~ msgstr "forkert parametertype til konjugation"
+
+#~ msgid "wrong type argument to unary exclamation mark"
+#~ msgstr "forkert parametertype til unrt udrbstegn"
+
+#~ msgid "ISO C does not support `++' and `--' on complex types"
+#~ msgstr "ISO C understtter ikke '++' og '--' for complex-typer"
+
+# man kan ikke stikke en forgelse (++) en type som parameter, 'type
+# argument' skal opfattes p en anden mde
+#~ msgid "wrong type argument to increment"
+#~ msgstr "forkert parametertype til forgelse"
+
+#~ msgid "wrong type argument to decrement"
+#~ msgstr "forkert parametertype til formindskelse"
+
+#~ msgid "increment of pointer to unknown structure"
+#~ msgstr "forgelse af henvisning til en ukendt struktur"
+
+#~ msgid "decrement of pointer to unknown structure"
+#~ msgstr "formindskelse af henvisning til en ukendt struktur"
+
+# RETMIG: hvad betyder dette?
+#~ msgid "ISO C forbids the address of a cast expression"
+#~ msgstr "ISO C forbyder adressen af et typeomtvingningsudtryk"
+
+#~ msgid "invalid lvalue in unary `&'"
+#~ msgstr "ugyldig venstrevrdi i unr '&'"
+
+#~ msgid "attempt to take address of bit-field structure member `%s'"
+#~ msgstr "forsg p at finde adressen af bitfeltstrukturmedlemmet '%s'"
+
+#~ msgid "ISO C forbids use of conditional expressions as lvalues"
+#~ msgstr "ISO C forbyder brug af betingede udtryk som venstrevrdier"
+
+#~ msgid "ISO C forbids use of compound expressions as lvalues"
+#~ msgstr "ISO C forbyder brug af sammensatte udtryk som venstrevrdier"
+
+#~ msgid "ISO C forbids use of cast expressions as lvalues"
+#~ msgstr "ISO C forbyder brug af typeomtvingningsudtryk som venstrevrdier"
+
+# RETMIG: lettere klodset konstruktion
+#~ msgid "%s of read-only member `%s'"
+#~ msgstr "%s af medlemmet '%s' der kun m lses"
+
+#~ msgid "%s of read-only variable `%s'"
+#~ msgstr "%s af variablen '%s' der kun m lses"
+
+#~ msgid "%s of read-only location"
+#~ msgstr "%s af placering der kun m lses"
+
+#~ msgid "cannot take address of bit-field `%s'"
+#~ msgstr "kan ikke finde adressen af bitfeltet '%s'"
+
+#~ msgid "global register variable `%s' used in nested function"
+#~ msgstr "global registervariabel '%s' benyttet i indlejret funktion"
+
+#~ msgid "register variable `%s' used in nested function"
+#~ msgstr "registervariabel '%s' benyttet i indlejret funktion"
+
+#~ msgid "address of global register variable `%s' requested"
+#~ msgstr "foresprgsel efter adressen af den globale registervariabel '%s'"
+
+#~ msgid "cannot put object with volatile field into register"
+#~ msgstr "kan ikke anbringe et objekt med et volatile-felt i et register"
+
+#~ msgid "address of register variable `%s' requested"
+#~ msgstr "foresprgsel efter adressen af registervariablen '%s'"
+
+#~ msgid "signed and unsigned type in conditional expression"
+#~ msgstr "signed og unsigned type i betinget udtryk"
+
+#~ msgid "ISO C forbids conditional expr with only one void side"
+#~ msgstr "ISO C forbyder betingede udtryk med kun n tom side"
+
+#~ msgid "ISO C forbids conditional expr between `void *' and function pointer"
+#~ msgstr "ISO C++ forbyder betinget udtryk mellem 'void *' og funktionshenvisning"
+
+#~ msgid "pointer type mismatch in conditional expression"
+#~ msgstr "henvisningstyperne i betingelsesudtrykket passer ikke sammen"
+
+#~ msgid "pointer/integer type mismatch in conditional expression"
+#~ msgstr "henvisnings- og heltalstype i betingelsesudtrykket passer ikke sammen"
+
+#~ msgid "type mismatch in conditional expression"
+#~ msgstr "typerne i betingelsesudtrykket passer ikke sammen"
+
+#~ msgid "left-hand operand of comma expression has no effect"
+#~ msgstr "venstreoperanden til kommaudtrykket har ingen virkning"
+
+#~ msgid "cast specifies array type"
+#~ msgstr "typetildelingen angiver en tabeltype"
+
+#~ msgid "cast specifies function type"
+#~ msgstr "typetildelingen angiver en funktionstype"
+
+#~ msgid "ISO C forbids casting nonscalar to the same type"
+#~ msgstr "ISO C forbyder omtvingelse af ikke-skalar til den samme type"
+
+#~ msgid "ISO C forbids casts to union type"
+#~ msgstr "ISO C forbyder omtvingelse til uniontype"
+
+#~ msgid "cast to union type from type not present in union"
+#~ msgstr "typetildeling til en uniontype fra en type der ikke findes i union'en"
+
+#~ msgid "cast adds new qualifiers to function type"
+#~ msgstr "typeomtvingning tilfjer modifikationer til en funktionstype"
+
+#~ msgid "cast discards qualifiers from pointer target type"
+#~ msgstr "typeomtvingelse kasserer modifikationer p henvisningsmlets type"
+
+#~ msgid "cast increases required alignment of target type"
+#~ msgstr "typeomtvingelse forger den pkrvne justering af mltypen"
+
+#~ msgid "cast from pointer to integer of different size"
+#~ msgstr "typeomtvingelse fra henvisning til heltal af en anden strrelse"
+
+#~ msgid "cast does not match function type"
+#~ msgstr "typeomtvingelse passer ikke til funktionstype"
+
+#~ msgid "cast to pointer from integer of different size"
+#~ msgstr "typeomtvingelse fra heltal til henvisning af en anden strrelse"
+
+#~ msgid "type-punning to incomplete type might break strict-aliasing rules"
+#~ msgstr "typeomtvingning af ufuldstndig type bryder muligvis strenge aliasregler"
+
+#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+#~ msgstr "flgning af en typeomtvunget henvisning vil bryde strenge aliasregler"
+
+#~ msgid "invalid lvalue in assignment"
+#~ msgstr "ugyldig venstrevrdi i tildeling"
+
+#~ msgid "assignment"
+#~ msgstr "tildeling"
+
+#~ msgid "cannot pass rvalue to reference parameter"
+#~ msgstr "kan ikke videregive hjrevrdi til referenceparameter"
+
+#~ msgid "%s makes qualified function pointer from unqualified"
+#~ msgstr "%s opretter en funktionshenvisning med modifikationer fra n uden"
+
+#~ msgid "%s discards qualifiers from pointer target type"
+#~ msgstr "%s kasserer modifikationer p henvisningsmlets type"
+
+#~ msgid "ISO C prohibits argument conversion to union type"
+#~ msgstr "ISO C forbyder parameterkonvertering til uniontype"
+
+#~ msgid "ISO C forbids %s between function pointer and `void *'"
+#~ msgstr "ISO C forbyder %s mellem funktionshenvisning og 'void *'"
+
+#~ msgid "pointer targets in %s differ in signedness"
+#~ msgstr "fortegnene i henvisningsml i %s er forskellige"
+
+#~ msgid "%s from incompatible pointer type"
+#~ msgstr "%s fra en henvisningstype der ikke er forenelig med mlets"
+
+#~ msgid "%s makes pointer from integer without a cast"
+#~ msgstr "%s opretter en henvisningsvariabel ud fra et heltal uden en typeomtvingning"
+
+#~ msgid "%s makes integer from pointer without a cast"
+#~ msgstr "%s opretter et heltal ud fra en henvisningsvariabel uden en typeomtvingning"
+
+#~ msgid "incompatible type for argument %d of `%s'"
+#~ msgstr "typen af den %d. parameter i '%s' passer ikke"
+
+#~ msgid "incompatible type for argument %d of indirect function call"
+#~ msgstr "typen af den %d. parameter i det indirekte funktionskald passer ikke"
+
+#~ msgid "incompatible types in %s"
+#~ msgstr "uforenelige typer i %s"
+
+#~ msgid "passing arg of `%s'"
+#~ msgstr "videregiver parameter til '%s'"
+
+#~ msgid "passing arg of pointer to function"
+#~ msgstr "videregiver parameter af henvisning til funktion"
+
+#~ msgid "passing arg %d of `%s'"
+#~ msgstr "videregiver den %d. parameter til '%s'"
+
+#~ msgid "passing arg %d of pointer to function"
+#~ msgstr "videregiver den %d. parameter af henvisning til funktion"
+
+#~ msgid "initializer for static variable is not constant"
+#~ msgstr "startvrdien for den statiske variabel er ikke en konstant"
+
+#~ msgid "initializer for static variable uses complicated arithmetic"
+#~ msgstr "startvrdien for den statiske variabel benytter komplicerede beregninger"
+
+#~ msgid "aggregate initializer is not constant"
+#~ msgstr "startvrdi til variabel af en sammensat type er ikke en konstant"
+
+#~ msgid "aggregate initializer uses complicated arithmetic"
+#~ msgstr "startvrdien til variabel af en sammensat type benytter komplicerede beregninger"
+
+# 'automatic aggregate' betyder automatisk allokerede variabler, dvs.
+# ganske almindelige lokale variabler (kan evt. erklres med 'auto')
+#~ msgid "traditional C rejects automatic aggregate initialization"
+#~ msgstr "traditionel C forbyder klargring af auto-variabler af sammensatte typer"
+
+#~ msgid "(near initialization for `%s')"
+#~ msgstr "(i nrheden af klargringen af '%s')"
+
+#~ msgid "char-array initialized from wide string"
+#~ msgstr "char-tabel fr tildelt startvrdi fra en bred streng"
+
+#~ msgid "int-array initialized from non-wide string"
+#~ msgstr "int-tabel fr tildelt startvrdi fra en ikke-bred streng"
+
+#~ msgid "initializer-string for array of chars is too long"
+#~ msgstr "startvrdistrengen til char-tabellen er for lang"
+
+#~ msgid "array initialized from non-constant array expression"
+#~ msgstr "tabel fr tildelt en startvrdi fra et tabeludtryk der ikke er konstant"
+
+#~ msgid "initializer element is not constant"
+#~ msgstr "startvrdielement er ikke en konstant"
+
+#~ msgid "initialization"
+#~ msgstr "klargring"
+
+#~ msgid "initializer element is not computable at load time"
+#~ msgstr "startvrdielement kan ikke beregnes ved indlsningstidspunktet"
+
+#~ msgid "invalid initializer"
+#~ msgstr "ugyldig startvrdi"
+
+#~ msgid "extra brace group at end of initializer"
+#~ msgstr "overskydende krllede paranteser ved slutningen af startvrdien"
+
+#~ msgid "missing braces around initializer"
+#~ msgstr "krllede paranteser mangler omkring startvrdien"
+
+#~ msgid "braces around scalar initializer"
+#~ msgstr "krllede paranteser omkring skalarstartvrdi"
+
+# RETMIG: eller er det fleksibel tabel-medlem
+#~ msgid "initialization of flexible array member in a nested context"
+#~ msgstr "klargring af fleksibelt tabelmedlem i en indlejret kontekst"
+
+#~ msgid "initialization of a flexible array member"
+#~ msgstr "klargring af fleksibelt tabelmedlem"
+
+#~ msgid "missing initializer"
+#~ msgstr "manglende startvrdi"
+
+#~ msgid "empty scalar initializer"
+#~ msgstr "tom skalarstartvrdi"
+
+#~ msgid "extra elements in scalar initializer"
+#~ msgstr "overskydende elementer i skalarstarvrdi"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "klargringstegn m ikke indlejres"
+
+#~ msgid "array index in non-array initializer"
+#~ msgstr "tabelindeks i en startvrdi der ikke er en tabel"
+
+# RETMIG: record?
+#~ msgid "field name not in record or union initializer"
+#~ msgstr "feltnavn ikke i struktur- eller union-startvrdi"
+
+#~ msgid "nonconstant array index in initializer"
+#~ msgstr "tabelindekset i startvrdien er ikke en konstant"
+
+#~ msgid "array index in initializer exceeds array bounds"
+#~ msgstr "tabelindeks i startvrdi overskrider tabelgrnser"
+
+#~ msgid "empty index range in initializer"
+#~ msgstr "tomt indeksinterval i startvrdi"
+
+#~ msgid "array index range in initializer exceeds array bounds"
+#~ msgstr "tabelindeksinterval i startvrdi overskrider tabelgrnser"
+
+#~ msgid "unknown field `%s' specified in initializer"
+#~ msgstr "ukendt felt '%s' angivet i startvrdi"
+
+#~ msgid "initialized field with side-effects overwritten"
+#~ msgstr "klargjort felt med bivirkninger overskrevet"
+
+#~ msgid "excess elements in char array initializer"
+#~ msgstr "for mange elementer i char-tabelstartvrdien"
+
+#~ msgid "excess elements in struct initializer"
+#~ msgstr "for mange elementer i struct-startvrdi"
+
+#~ msgid "non-static initialization of a flexible array member"
+#~ msgstr "ikke-statisk klargring af fleksibelt tabelmedlem"
+
+#~ msgid "excess elements in union initializer"
+#~ msgstr "for mange elementer i union-startvrdi"
+
+#~ msgid "traditional C rejects initialization of unions"
+#~ msgstr "traditionel C forbyder tildeling af startvrdi til unioner"
+
+#~ msgid "excess elements in array initializer"
+#~ msgstr "for mange elementer i tabelstartvrdi"
+
+#~ msgid "excess elements in vector initializer"
+#~ msgstr "for mange elementer i vektorstartvrdi"
+
+#~ msgid "excess elements in scalar initializer"
+#~ msgstr "for mange elementer i skalarstartvrdi"
+
+#~ msgid "asm template is not a string constant"
+#~ msgstr "asm-stning er ikke en strengkonstant"
+
+#~ msgid "invalid lvalue in asm statement"
+#~ msgstr "ugyldig venstrevrdi i asm-stning"
+
+#~ msgid "modification by `asm'"
+#~ msgstr "ndring af 'asm'"
+
+#~ msgid "function declared `noreturn' has a `return' statement"
+#~ msgstr "funktion der er erklret 'noreturn' har en 'return'-stning"
+
+#~ msgid "`return' with no value, in function returning non-void"
+#~ msgstr "'return' uden nogen vrdi i en funktion der ikke returnerer void"
+
+#~ msgid "`return' with a value, in function returning void"
+#~ msgstr "'return' med en vrdi i en funktion der returnerer void"
+
+#~ msgid "return"
+#~ msgstr "returnering"
+
+#~ msgid "function returns address of local variable"
+#~ msgstr "funktion returnerer adressen p en lokal variabel"
+
+#~ msgid "switch quantity not an integer"
+#~ msgstr "switch-strrelsen er ikke et heltal"
+
+#~ msgid "`long' switch expression not converted to `int' in ISO C"
+#~ msgstr "'long'-udtryk i switch konverteres ikke til 'int' i ISO C"
+
+#~ msgid "case label not within a switch statement"
+#~ msgstr "case-etiket befinder sig ikke inden i en switch-stning"
+
+#~ msgid "`default' label not within a switch statement"
+#~ msgstr "'default'-etiket befinder sig ikke inden i en switch-stning"
+
+#~ msgid "inlining failed in call to `%s'"
+#~ msgstr "indlejring mislykkedes i kald til '%s'"
+
+#~ msgid "called from here"
+#~ msgstr "kaldt herfra"
+
+#~ msgid "can't inline call to `%s'"
+#~ msgstr "kan ikke indlejre kald til '%s'"
+
+#~ msgid "function call has aggregate value"
+#~ msgstr "funktionskald har en sammensat vrdi"
+
+#~ msgid "Size of loop %d should be %d, not %d."
+#~ msgstr "Strrelsen af lkke %d burde vre %d, ikke %d."
+
+#~ msgid "Bb %d do not belong to loop %d."
+#~ msgstr "Basisblok %d hrer ikke til lkke %d."
+
+#~ msgid "Loop %d's header does not have exactly 2 entries."
+#~ msgstr "Lkke %d's hoved har ikke prcis 2 elementer."
+
+#~ msgid "Loop %d's latch does not have exactly 1 successor."
+#~ msgstr "Lkke %d's ende har ikke prcis 1 efterflger."
+
+#~ msgid "Loop %d's latch does not have header as successor."
+#~ msgstr "Lkke %d's ende har ikke hoved som efterflger."
+
+#~ msgid "Loop %d's latch does not belong directly to it."
+#~ msgstr "Lkke %d's ende tilhrer ikke direkte lkken."
+
+#~ msgid "Loop %d's header does not belong directly to it."
+#~ msgstr "Lkke %d's hoved tilhrer ikke direkte lkken."
+
+#~ msgid "bb %d on wrong place"
+#~ msgstr "basisblok %d ved et forkerte sted"
+
+#~ msgid "prev_bb of %d should be %d, not %d"
+#~ msgstr "prev_bb for %d br vre %d, ikke %d"
+
+#~ msgid "end insn %d for block %d not found in the insn stream"
+#~ msgstr "slutinstruktion %d for blok %d ikke fundet i instruktionsstrmmen"
+
+#~ msgid "insn %d is in multiple basic blocks (%d and %d)"
+#~ msgstr "instruktion %d er i flere basisblokke (%d og %d)"
+
+#~ msgid "head insn %d for block %d not found in the insn stream"
+#~ msgstr "hovedinstruktion %d for blok %d ikke fundet i instruktionsstrmmen"
+
+#~ msgid "verify_flow_info: REG_BR_PROB does not match cfg %i %i"
+#~ msgstr "verify_flow_info: REG_BR_PROB passer ikke til konf. %i %i"
+
+#~ msgid "verify_flow_info: Wrong count of block %i %i"
+#~ msgstr "verify_flow_info: Ukorrekt antal af blok %i %i"
+
+#~ msgid "verify_flow_info: Wrong frequency of block %i %i"
+#~ msgstr "verify_flow_info: Ukorrekt frekvens af blok %i %i"
+
+#~ msgid "verify_flow_info: Duplicate edge %i->%i"
+#~ msgstr "verify_flow_info: Dobbelt kant %i->%i"
+
+#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Ukorrekt sandsynlighed for kant %i->%i %i"
+
+#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Ukorrekt antal for kant %i->%i %i"
+
+#~ msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+#~ msgstr "verify_flow_info: Ukorrekte blokke til fald-gennem %i->%i"
+
+#~ msgid "verify_flow_info: Incorrect fallthru %i->%i"
+#~ msgstr "verify_flow_info: Ukorrekt fald-gennem %i->%i"
+
+#~ msgid "wrong insn in the fallthru edge"
+#~ msgstr "forkert instruktion i fald-gennem-kant"
+
+#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+#~ msgstr "verify_flow_info: Efterflgende kant til basisblok %d er delagt"
+
+#~ msgid "Missing REG_EH_REGION note in the end of bb %i"
+#~ msgstr "Mangler REG_EH_REGION-note i slutningen af basisblok %i"
+
+#~ msgid "Too many outgoing branch edges from bb %i"
+#~ msgstr "For mange udgende forgreningskanter fra basisblok %i"
+
+#~ msgid "Fallthru edge after unconditional jump %i"
+#~ msgstr "Fald gennem-kant efter ubetinget spring %i"
+
+#~ msgid "Wrong amount of branch edges after unconditional jump %i"
+#~ msgstr "Forkert antal forgreningskanter efter ubetinget spring %i"
+
+#~ msgid "Wrong amount of branch edges after conditional jump %i"
+#~ msgstr "Forkert antal forgreningskanter efter betinget spring %i"
+
+#~ msgid "Call edges for non-call insn in bb %i"
+#~ msgstr "Kaldekanter for ikke-kaldsinstruktion i basisblok %i"
+
+#~ msgid "Abnormal edges for no purpose in bb %i"
+#~ msgstr "Unormale kanter uden noget forml i basisblok %i"
+
+#~ msgid "missing barrier after block %i"
+#~ msgstr "manglende barriere efter blok %i"
+
+#~ msgid "basic block %d pred edge is corrupted"
+#~ msgstr "foregende kant til basisblok %d er delagt"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is NULL"
+#~ msgstr "instruktion %d inden i basisblok %d, men block_for_insn er NULL"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is %i"
+#~ msgstr "instruktion %d inden i basisblok %d, men block_for_insn er %i"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK %d i midten af basisblok %d"
+
+#~ msgid "in basic block %d:"
+#~ msgstr "i basisblok %d:"
+
+#~ msgid "flow control insn inside a basic block"
+#~ msgstr "strmkontrolinstruktion inden i en basisblok"
+
+#~ msgid "basic block %i edge lists are corrupted"
+#~ msgstr "kantlister til basisblok %i er delagt"
+
+#~ msgid "basic blocks not numbered consecutively"
+#~ msgstr "basisblokkene er ikke nummeret i rkkeflge"
+
+#~ msgid "insn outside basic block"
+#~ msgstr "instruktion uden for basisblok"
+
+#~ msgid "return not followed by barrier"
+#~ msgstr "returnering flges ikke af barriere"
+
+#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+#~ msgstr "antallet af basisbloknoter i instruktionskden (%d) != n_basic_blocks (%d)"
+
+#~ msgid "verify_flow_info failed"
+#~ msgstr "verify_flow_info mislykkedes"
+
+#~ msgid "internal error"
+#~ msgstr "intern fejl"
+
+#~ msgid "no arguments"
+#~ msgstr "ingen parametre"
+
+#~ msgid "fopen %s"
+#~ msgstr "fopen %s"
+
+#~ msgid "fclose %s"
+#~ msgstr "fclose %s"
+
+#~ msgid "collect2 version %s"
+#~ msgstr "collect2 version %s"
+
+#~ msgid "%d constructor(s) found\n"
+#~ msgstr "%d konstruktionsfunktion(er) fundet\n"
+
+#~ msgid "%d destructor(s) found\n"
+#~ msgstr "%d destruktionsfunktion(er) fundet\n"
+
+#~ msgid "%d frame table(s) found\n"
+#~ msgstr "%d rammetabel(ler) fundet\n"
+
+#~ msgid "%s terminated with signal %d [%s]%s"
+#~ msgstr "%s afsluttet af signal %d [%s]%s"
+
+#~ msgid "%s returned %d exit status"
+#~ msgstr "%s returnerede afslutningskoden %d"
+
+#~ msgid "[cannot find %s]"
+#~ msgstr "[kan ikke finde %s]"
+
+#~ msgid "cannot find `%s'"
+#~ msgstr "kan ikke finde '%s'"
+
+#~ msgid "redirecting stdout: %s"
+#~ msgstr "omdirigerer standard-ud: %s"
+
+#~ msgid "[Leaving %s]\n"
+#~ msgstr "[Efterlader %s]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "write_c_file - output name is %s, prefix is %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "write_c_file - uddatanavnet er %s, prfikset er %s\n"
+
+#~ msgid "cannot find `nm'"
+#~ msgstr "kan ikke finde 'nm'"
+
+#~ msgid "pipe"
+#~ msgstr "pipe"
+
+#~ msgid "fdopen"
+#~ msgstr "fdopen"
+
+#~ msgid "dup2 %d 1"
+#~ msgstr "dup2 %d 1"
+
+#~ msgid "close %d"
+#~ msgstr "close %d"
+
+#~ msgid "execv %s"
+#~ msgstr "fejl under krsel (vha. execv) af %s"
+
+#~ msgid "init function found in object %s"
+#~ msgstr "klargringsfunktion fundet i objekt %s"
+
+#~ msgid "fini function found in object %s"
+#~ msgstr "afslutningsfunktion fundet i objekt %s"
+
+#~ msgid "fclose"
+#~ msgstr "fclose"
+
+#~ msgid "unable to open file '%s'"
+#~ msgstr "kunne ikke bne filen '%s'"
+
+#~ msgid "unable to stat file '%s'"
+#~ msgstr "kunne ikke f fat i oplysninger om filen '%s'"
+
+#~ msgid "unable to mmap file '%s'"
+#~ msgstr "kunne ikke indlse filen '%s'"
+
+#~ msgid "not found\n"
+#~ msgstr "ikke fundet\n"
+
+#~ msgid "dynamic dependency %s not found"
+#~ msgstr "dynamisk afhngighed %s ikke fundet"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "ugyldigt magisk tal i filen '%s'"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr "dynamiske afhngigheder.\n"
+
+#~ msgid "cannot find `ldd'"
+#~ msgstr "kan ikke finde 'ldd'"
+
+#~ msgid ""
+#~ "\n"
+#~ "ldd output with constructors/destructors.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ldd-uddata med konstruktions-/destruktionsfunktioner.\n"
+
+#~ msgid "unable to open dynamic dependency '%s'"
+#~ msgstr "kan ikke bne den dynamiske afhngighed '%s'"
+
+#~ msgid "%s: not a COFF file"
+#~ msgstr "%s: ikke en COFF-fil"
+
+#~ msgid "%s: cannot open as COFF file"
+#~ msgstr "%s: kan ikke bnes som en COFF-fil"
+
+#~ msgid "library lib%s not found"
+#~ msgstr "biblioteket lib%s ikke fundet"
+
+#~ msgid "open %s"
+#~ msgstr "fejl ved bning af %s"
+
+#~ msgid "incompatibilities between object file & expected values"
+#~ msgstr "uoverensstemmelser mellem objektfil og forventede vrdier"
+
+#~ msgid ""
+#~ "\n"
+#~ "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Behandler symboltabel nr. %d, forskydning = 0x%.8lx, form = %s\n"
+
+#~ msgid "string section missing"
+#~ msgstr "strengsektion mangler"
+
+#~ msgid "section pointer missing"
+#~ msgstr "sektionshenvisning mangler"
+
+#~ msgid "no symbol table found"
+#~ msgstr "ingen symboltabel fundet"
+
+#~ msgid "no cmd_strings found"
+#~ msgstr "ingen cmd_strings fundet"
+
+#~ msgid ""
+#~ "\n"
+#~ "Updating header and load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Opdaterer hoved- og indlsningskommandoer.\n"
+#~ "\n"
+
+#~ msgid "load command map, %d cmds, new size %ld.\n"
+#~ msgstr "indlser kommandooversigt, %d kommandoer, ny strrelse %ld.\n"
+
+#~ msgid ""
+#~ "writing load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "skriver indlsningskommandoer.\n"
+#~ "\n"
+
+#~ msgid "close %s"
+#~ msgstr "fejl ved lukning af %s"
+
+#~ msgid "could not convert 0x%l.8x into a region"
+#~ msgstr "kunne ikke konvertere 0x%l.8x til en region"
+
+#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+#~ msgstr "%s-funktion, region %d, forskydning = %ld (0x%.8lx)\n"
+
+#~ msgid "bad magic number"
+#~ msgstr "ugyldigt magisk tal"
+
+#~ msgid "bad header version"
+#~ msgstr "ugyldig version af hovedet"
+
+#~ msgid "bad raw header version"
+#~ msgstr "ugyldig version af rhovedet"
+
+#~ msgid "raw header buffer too small"
+#~ msgstr "rhoved-mellemlager for smt"
+
+#~ msgid "old raw header file"
+#~ msgstr "gammel rhovedfil"
+
+#~ msgid "unsupported version"
+#~ msgstr "versionen er ikke understttet"
+
+#~ msgid "unknown {de,en}code_mach_o_hdr return value %d"
+#~ msgstr "ukendt {de,en}code_mach_o_hdr returneringsvrdi %d"
+
+#~ msgid "fstat %s"
+#~ msgstr "fejl ved egenskabsundersgelse af filen %s"
+
+#~ msgid "lseek %s 0"
+#~ msgstr "fejl ved sgning til begyndelsen i filen %s"
+
+#~ msgid "read %s"
+#~ msgstr "fejl ved lsning af %s"
+
+#~ msgid "read %ld bytes, expected %ld, from %s"
+#~ msgstr "lste %ld byte, forventede %ld, fra %s"
+
+#~ msgid "msync %s"
+#~ msgstr "fejl ved synkronisering mellem hukommelse og disk af %s"
+
+#~ msgid "munmap %s"
+#~ msgstr "fejl ved fjernelse af %s fra hukommelsen"
+
+#~ msgid "write %s"
+#~ msgstr "fejl ved skrivning til %s"
+
+#~ msgid "wrote %ld bytes, expected %ld, to %s"
+#~ msgstr "skrev %ld byte, forventede %ld, til %s"
+
+#~ msgid ""
+#~ ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ "\n"
+#~ msgstr ""
+#~ ";; kombineringsstatistik: %d forsg, %d udskiftninger (%d krver ny plads),\n"
+#~ ";; %d vellykkede.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ msgstr ""
+#~ "\n"
+#~ ";; kombineringstotal: %d forsg, %d udskiftninger (%d krver ny plads),\n"
+#~ ";; %d succeser.\n"
+
+#~ msgid "cannot convert to a pointer type"
+#~ msgstr "kan ikke konverteres til en henvisningstype"
+
+#~ msgid "pointer value used where a floating point value was expected"
+#~ msgstr "en henvisningsvrdi er angivet hvor der forventedes en kommatalsvrdi"
+
+#~ msgid "aggregate value used where a float was expected"
+#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et kommatal"
+
+#~ msgid "conversion to incomplete type"
+#~ msgstr "konvertering til en ufuldstndig type"
+
+#~ msgid "can't convert between vector values of different size"
+#~ msgstr "kan ikke konvertere vektorvrdier af forskellige strrelser"
+
+#~ msgid "aggregate value used where an integer was expected"
+#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et heltal"
+
+#~ msgid "pointer value used where a complex was expected"
+#~ msgstr "en henvisningsvrdi er angivet hvor der forventedes et komplekst tal"
+
+#~ msgid "aggregate value used where a complex was expected"
+#~ msgstr "en vrdi af en sammensat type er angivet hvor der forventedes et komplekst tal"
+
+#~ msgid "can't convert value to a vector"
+#~ msgstr "kan ikke konvertere vrdi til en vektor"
+
+#~ msgid "warning: "
+#~ msgstr "advarsel: "
+
+#~ msgid "internal error: "
+#~ msgstr "intern fejl: "
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "for mange decimalkommaer i tal"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "ugyldig ciffer \"%c\" i oktal konstant"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "der er ingen cifre i eksponent"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "hexadecimal kommatalskonstant skal have en eksponent"
+
+#~ msgid "ISO C++ does not permit \"%s\" in #if"
+#~ msgstr "ISO C++ tillader ikke \"%s\" i #if"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "manglende binr operator fr symbolet \"%s\""
+
+#~ msgid "invalid character '\\%03o' in #if"
+#~ msgstr "ugyldigt tegn '\\%03o' i #if"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "symbolet \"%s\" er ikke gyldigt i prprocessorudtryk"
+
+#~ msgid "void expression between '(' and ')'"
+#~ msgstr "tomt udtryk mellem '(' og ')'"
+
+#~ msgid "#if with no expression"
+#~ msgstr "#if uden noget udtryk"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "operatoren '%s' har ikke nogen hjre operand"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' uden forudgende '?'"
+
+#~ msgid "absolute file name in remap_filename"
+#~ msgstr "absolut filnavn i remap_filename"
+
+#~ msgid "ignoring nonexistent directory \"%s\"\n"
+#~ msgstr "ignorerer det ikke-eksisterende katalog \"%s\"\n"
+
+#~ msgid "%s: Not a directory"
+#~ msgstr "%s: ikke et katalog"
+
+#~ msgid "ignoring duplicate directory \"%s\"\n"
+#~ msgstr "ignorerer mere end n angivelse af kataloget \"%s\"\n"
+
+#~ msgid " as it is a non-system directory that duplicates a system directory\n"
+#~ msgstr " da det er et ikke-systemkatalog som dublerer et systemkatalog\n"
+
+#~ msgid "#include \"...\" search starts here:\n"
+#~ msgstr "#include \"...\"-sgning begynder her:\n"
+
+#~ msgid "#include <...> search starts here:\n"
+#~ msgstr "#include <...>-sgning begynder her:\n"
+
+#~ msgid "End of search list.\n"
+#~ msgstr "Slut p sgningslisten.\n"
+
+#~ msgid "<built-in>"
+#~ msgstr "<indbygget>"
+
+#~ msgid "<command line>"
+#~ msgstr "<kommandolinje>"
+
+#~ msgid "assertion missing after %s"
+#~ msgstr "et postulat mangler efter %s"
+
+#~ msgid "directory name missing after %s"
+#~ msgstr "et katalognavn mangler efter %s"
+
+#~ msgid "file name missing after %s"
+#~ msgstr "et filnavn mangler efter %s"
+
+#~ msgid "macro name missing after %s"
+#~ msgstr "et makronavn mangler efter %s"
+
+#~ msgid "path name missing after %s"
+#~ msgstr "navnet p en sti mangler efter %s"
+
+#~ msgid "-I- specified twice"
+#~ msgstr "-I- er angivet to gange"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "ingen linjeskift ved slutningen af filen"
+
+#~ msgid "unknown string token %s\n"
+#~ msgstr "ukendt strengsymbol %s\n"
+
+#~ msgid "non-hex digit '%c' in universal-character-name"
+#~ msgstr "'%c' der ikke er et hexadecimalt ciffer, optrder i universelt tegnnavn"
+
+#~ msgid "universal-character-name on EBCDIC target"
+#~ msgstr "universelt tegnnavn p EBCDIC-ml"
+
+#~ msgid "universal-character-name out of range"
+#~ msgstr "universelt tegnnavn uden for det gyldige interval"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "ukendt undvigesekvensen '\\%03o'"
+
+#~ msgid "escape sequence out of range for its type"
+#~ msgstr "undvigesekvensen er uden for det gyldig interval for dens type"
+
+#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+#~ msgstr "#import er forldet, brug en #ifndef-indpakning i inkluderingsfilen"
+
+#~ msgid "#pragma once is obsolete"
+#~ msgstr "'#pragma once' er forldet"
+
+#~ msgid "\"%s\" is not a valid option to the preprocessor"
+#~ msgstr "\"%s\" er ikke et gyldigt tilvalg til prprocessoren"
+
+#~ msgid "too many input files"
+#~ msgstr "for mange inddatafiler"
+
+#~ msgid ";; Processing block from %d to %d, %d sets.\n"
+#~ msgstr ";; Behandler blok fra %d til %d, %d mngder.\n"
+
+#~ msgid "((anonymous))"
+#~ msgstr "((anonym))"
+
+#~ msgid "%s: warnings being treated as errors\n"
+#~ msgstr "%s: advarsler bliver opfattet som fejl\n"
+
+#~ msgid "%s: %s: "
+#~ msgstr "%s: %s: "
+
+#~ msgid "%s "
+#~ msgstr "%s "
+
+#~ msgid " %s"
+#~ msgstr " %s"
+
+#~ msgid "At top level:"
+#~ msgstr "Ved verste niveau:"
+
+#~ msgid "In member function `%s':"
+#~ msgstr "I medlemsfunktionen '%s':"
+
+#~ msgid "In function `%s':"
+#~ msgstr "I funktionen '%s':"
+
+#~ msgid "compilation terminated.\n"
+#~ msgstr "oversttelse afsluttede.\n"
+
+#~ msgid "%s:%d: confused by earlier errors, bailing out\n"
+#~ msgstr "%s:%d: forvirret af tidligere fejl, opgiver vred\n"
+
+#~ msgid ""
+#~ "Please submit a full bug report,\n"
+#~ "with preprocessed source if appropriate.\n"
+#~ "See %s for instructions.\n"
+#~ msgstr ""
+#~ "Indsend venligst en komplet fejlrapport med\n"
+#~ "prprocesseret kildekode om ndvendigt.\n"
+#~ "Se %s for instruktioner.\n"
+
+#~ msgid "Internal compiler error: Error reporting routines re-entered.\n"
+#~ msgstr "Intern overstterfejl: fejlrapporteringsrutiner blev kaldt igen.\n"
+
+#~ msgid "in %s, at %s:%d"
+#~ msgstr "i %s, ved %s:%d"
+
+#~ msgid "In file included from %s:%d"
+#~ msgstr "I filen inkluderet af %s:%d"
+
+# kommer til at st neden under ovenstende, derfor "af"
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%d"
+#~ msgstr ""
+#~ ",\n"
+#~ " af %s:%d"
+
+#~ msgid ":\n"
+#~ msgstr ":\n"
+
+#~ msgid "`%s' is deprecated (declared at %s:%d)"
+#~ msgstr "'%s' er forldet (erklret ved %s:%d)"
+
+#~ msgid "`%s' is deprecated"
+#~ msgstr "'%s' er forldet"
+
+#~ msgid "type is deprecated (declared at %s:%d)"
+#~ msgstr "type er forldet (erklret ved %s:%d)"
+
+#~ msgid "type is deprecated"
+#~ msgstr "type er forldet"
+
+#~ msgid "dominator of %d should be %d, not %d"
+#~ msgstr "dominator for %d burde vre %d, ikke %d"
+
+#~ msgid "DW_LOC_OP %s not implemented\n"
+#~ msgstr "DW_LOC_OP %s understttes ikke\n"
+
+#~ msgid "internal regno botch: `%s' has regno = %d\n"
+#~ msgstr "internt reg.nr.-problem: '%s' har reg.nr. = %d\n"
+
+#~ msgid "support for the DWARF1 debugging format is deprecated"
+#~ msgstr "understttelse for DWARF1-fejlanalyseringsformatet er forldet"
+
+#~ msgid "can't get current directory"
+#~ msgstr "kan ikke f fat i det aktuelle katalog"
+
+#~ msgid "can't access real part of complex value in hard register"
+#~ msgstr "kan ikke tilg den reelle del af komplekst tal i et hardwareregister"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "kan ikke tilg den imaginre del af komplekst tal i et hardwareregister"
+
+#~ msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+#~ msgstr "ICE: emit_insn brugt hvor emit_jump_insn behves:\n"
+
+#~ msgid "abort in %s, at %s:%d"
+#~ msgstr "afbrudt i %s ved %s:%d"
+
+#~ msgid "exception handling disabled, use -fexceptions to enable"
+#~ msgstr "hndtering af undtagelser er slet fra, angiv -fexceptions for at sl dem til"
+
+#~ msgid "argument of `__builtin_eh_return_regno' must be constant"
+#~ msgstr "parameteren til '__builtin_eh_return_regno' skal vre konstant"
+
+#~ msgid "__builtin_eh_return not supported on this target"
+#~ msgstr "__builtin_eh_return understttes ikke p mlarkitekturen"
+
+#~ msgid "stack limits not supported on this target"
+#~ msgstr "stakgrnser understttes ikke p mlarkitekturen"
+
+#~ msgid "function using short complex types cannot be inline"
+#~ msgstr "funktioner der benytter short complex-typer, kan ikke indbygges"
+
+#~ msgid "unsupported wide integer operation"
+#~ msgstr "bred heltalsoperation understttes ikke"
+
+#~ msgid "prior parameter's size depends on `%s'"
+#~ msgstr "foregende parameters strrelse afhnger af '%s'"
+
+#~ msgid "returned value in block_exit_expr"
+#~ msgstr "returnerede vrdi i block_exit_expr"
+
+#~ msgid "cannot take the address of an unaligned member"
+#~ msgstr "kan ikke tage adressen af et ikke-justeret medlem"
+
+#~ msgid "negative insn length"
+#~ msgstr "negativ instruktionslngde"
+
+#~ msgid "could not split insn"
+#~ msgstr "kunne ikke dele instruktion"
+
+#~ msgid "invalid `asm': "
+#~ msgstr "ugyldig 'asm': "
+
+#~ msgid "nested assembly dialect alternatives"
+#~ msgstr "indlejrede alternativer for maskinkodedialekter"
+
+#~ msgid "unterminated assembly dialect alternative"
+#~ msgstr "uafsluttet alternativ for maskinkodedialekt"
+
+#~ msgid "operand number missing after %%-letter"
+#~ msgstr "operandtal mangler efter %%-letter"
+
+#~ msgid "operand number out of range"
+#~ msgstr "operandtal er uden for det gyldige interval"
+
+#~ msgid "invalid %%-code"
+#~ msgstr "ugyldig %%-kode"
+
+#~ msgid "`%%l' operand isn't a label"
+#~ msgstr "'%%l'-operand er ikke en etiket"
+
+#~ msgid "floating constant misused"
+#~ msgstr "kommatalskonstant misbrugt"
+
+#~ msgid "invalid expression as operand"
+#~ msgstr "ugyldigt udtryk som operand"
+
+#~ msgid "function might be possible candidate for attribute `noreturn'"
+#~ msgstr "funktion er muligvis en kandidat til egenskaben 'noreturn'"
+
+#~ msgid "`noreturn' function does return"
+#~ msgstr "funktion med egenskaben 'noreturn' returnerer"
+
+# RETMIG: dette m kunne gres bedre
+#~ msgid "control reaches end of non-void function"
+#~ msgstr "kontrol nr til slutningen af ikke-void funktion"
+
+#~ msgid "Attempt to delete prologue/epilogue insn:"
+#~ msgstr "forsg p at slette indledende/afsluttende instruktion:"
+
+#~ msgid "comparison is always %d due to width of bit-field"
+#~ msgstr "sammenligning er altid %d p grund af den begrnsede rkkevidde af bitfeltet"
+
+#~ msgid "comparison is always %d"
+#~ msgstr "sammenligning er altid %d"
+
+# RETMIG: det giver ikke mening
+#~ msgid "`or' of unmatched not-equal tests is always 1"
+#~ msgstr "'or' af uafbalancerede sammenligninger med forskellig fra er altid 1"
+
+#~ msgid "`and' of mutually exclusive equal-tests is always 0"
+#~ msgstr "'and' af udtryk der hver for sig udelukker hinanden, er altid 0"
+
+#~ msgid "size of variable `%s' is too large"
+#~ msgstr "strrelsen af variablen '%s' er for stor"
+
+#~ msgid "impossible constraint in `asm'"
+#~ msgstr "umulig begrnsing i 'asm'"
+
+#~ msgid "`%s' might be used uninitialized in this function"
+#~ msgstr "'%s' bliver mske brugt uden at have en startvrdi i denne funktion"
+
+#~ msgid "variable `%s' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "variablen '%s' bliver mske overskrevet af 'longjmp' eller 'vfork'"
+
+#~ msgid "argument `%s' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "parameteren '%s' bliver mske overskrevet af 'longjmp' eller 'vfork'"
+
+#~ msgid "function returns an aggregate"
+#~ msgstr "funktion returnerer en vrdi af en sammensat type"
+
+#~ msgid "unused parameter `%s'"
+#~ msgstr "ubenyttet parameter '%s'"
+
+#~ msgid "ambiguous abbreviation %s"
+#~ msgstr "tvetydig forkortelse %s"
+
+#~ msgid "incomplete `%s' option"
+#~ msgstr "ufuldstndigt tilvalg '%s'"
+
+#~ msgid "missing argument to `%s' option"
+#~ msgstr "der mangler en parameter til tilvalget '%s'"
+
+#~ msgid "extraneous argument to `%s' option"
+#~ msgstr "der er en parameter for meget til tilvalget '%s'"
+
+#~ msgid "Using built-in specs.\n"
+#~ msgstr "Benytter indbyggede specifikationer.\n"
+
+#~ msgid ""
+#~ "Setting spec %s to '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Stter specifikation %s til '%s'\n"
+#~ "\n"
+
+#~ msgid "Reading specs from %s\n"
+#~ msgstr "Lser specifikationer fra %s\n"
+
+#~ msgid "specs %%include syntax malformed after %ld characters"
+#~ msgstr "%%include-syntaks i specifikationer misdannet efter %ld tegn"
+
+#~ msgid "could not find specs file %s\n"
+#~ msgstr "kunne ikke finde specifikationsfilen %s\n"
+
+#~ msgid "specs %%rename syntax malformed after %ld characters"
+#~ msgstr "%%rename-syntaks i specifikationer misdannet efter %ld tegn"
+
+#~ msgid "specs %s spec was not found to be renamed"
+#~ msgstr "%s-specifikation i specifikationer kunne ikke findes til omdbelse"
+
+#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+#~ msgstr "%s: forsg p at omdbe specifikation '%s' til allerede defineret specifikation '%s'"
+
+#~ msgid "rename spec %s to %s\n"
+#~ msgstr "omdb specifikation %s til %s\n"
+
+#~ msgid ""
+#~ "spec is '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "specifikation er '%s'\n"
+#~ "\n"
+
+#~ msgid "specs unknown %% command after %ld characters"
+#~ msgstr "ukendt %%-kommando i specifikationer efter %ld tegn"
+
+#~ msgid "specs file malformed after %ld characters"
+#~ msgstr "specifikationsfil misdannet efter %ld tegn"
+
+#~ msgid "spec file has no spec for linking"
+#~ msgstr "specifikationsfil har ingen specifikation til sammenkdning"
+
+#~ msgid "-pipe not supported"
+#~ msgstr "-pipe understttes ikke"
+
+#~ msgid ""
+#~ "\n"
+#~ "Go ahead? (y or n) "
+#~ msgstr ""
+#~ "\n"
+#~ "Fortst, ja (y) eller nej (n)?"
+
+#~ msgid ""
+#~ "Internal error: %s (program %s)\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Intern fejl: %s (programmet %s)\n"
+#~ "Indsend venligst en komplet fejlrapport.\n"
+#~ "Se %s for instruktioner."
+
+#~ msgid "# %s %.2f %.2f\n"
+#~ msgstr "# %s %.2f %.2f\n"
+
+#~ msgid "Usage: %s [options] file...\n"
+#~ msgstr "Brug: %s [tilvalg] fil...\n"
+
+#~ msgid "Options:\n"
+#~ msgstr "Tilvalg:\n"
+
+#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+#~ msgstr " -pass-exit-codes Afslut med den hjeste fejlkode fra en fase\n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help Vis disse oplysninger\n"
+
+#~ msgid " --target-help Display target specific command line options\n"
+#~ msgstr " --target-help Vis mlspecifikke kommandolinjetilvalg\n"
+
+#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+#~ msgstr " (benyt '-v --help' for at vise kommandolinjetilvalg for underprocesser)\n"
+
+#~ msgid " -dumpspecs Display all of the built in spec strings\n"
+#~ msgstr " -dumpspecs Vis alle de indbyggede specifikationsstrenge\n"
+
+#~ msgid " -dumpversion Display the version of the compiler\n"
+#~ msgstr " -dumpversion Vis versionsnummeret af overstteren\n"
+
+#~ msgid " -dumpmachine Display the compiler's target processor\n"
+#~ msgstr " -dumpmachine Vis overstterens mlprocessor\n"
+
+#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+#~ msgstr " -print-search-dirs Vis katalogerne i overstterens sgesti\n"
+
+#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+#~ msgstr " -print-libgcc-file-name Vis navnet p overstterens tilhrende bibliotek\n"
+
+#~ msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+#~ msgstr " -print-file-name=<bibl> Vis den komplette sti til biblioteket <bibl>\n"
+
+#~ msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+#~ msgstr " -print-prog-name=<prog> Vis den komplette sti til overstterkomponenten <prog>\n"
+
+#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+#~ msgstr " -print-multi-directory Vis rodkataloget for versioner af libgcc\n"
+
+#~ msgid ""
+#~ " -print-multi-lib Display the mapping between command line options and\n"
+#~ " multiple library search directories\n"
+#~ msgstr ""
+#~ " -print-multi-lib Vis afbildningen mellem kommandolinjetilvalg og\n"
+#~ " flere bibliotekssgekataloger\n"
+
+#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+#~ msgstr " -print-multi-os-directory Vis den relative sti for OS-biblioteker\n"
+
+#~ msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+#~ msgstr " -Wa,<tilvalg> Videregiv komma-adskilte <tilvalg> til maskinkodeoverstteren\n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<tilvalg> Videregiv komma-adskilte <tilvalg> til prprocessoren\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<tilvalg> Videregiv komma-adskilte <tilvalg> til sammenkderen\n"
+
+#~ msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+#~ msgstr " -Xlinker <para> Videregiv <para> til sammenkderen\n"
+
+#~ msgid " -save-temps Do not delete intermediate files\n"
+#~ msgstr " -save-temps Slet ikke midlertidige filer\n"
+
+#~ msgid " -pipe Use pipes rather than intermediate files\n"
+#~ msgstr " -pipe Brug datakanaler i stedet for midlertidige filer\n"
+
+#~ msgid " -time Time the execution of each subprocess\n"
+#~ msgstr " -time Tag tid p udfrslen af hver underproces\n"
+
+#~ msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+#~ msgstr " -specs=<fil> Overskriv indbyggede specifikationer med indholdet af <fil>\n"
+
+#~ msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+#~ msgstr " -std=<standard> Antag at inddatakildekoden er skrevet til <standard>\n"
+
+#~ msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+#~ msgstr " -B <katalog> Tilfj katalog til overstterens sgestier\n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr " -b <maskine> Kr GCC til mlet <maskine>, hvis installeret\n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <version> Kr GCC med versionsnummeret <version>, hvis installeret\n"
+
+#~ msgid " -v Display the programs invoked by the compiler\n"
+#~ msgstr " -v Vis de programmer der startes af overstteren\n"
+
+#~ msgid " -### Like -v but options quoted and commands not executed\n"
+#~ msgstr ""
+#~ " -### Som '-v', men tilvalg anbringes i anfrselstegn\n"
+#~ " og kommandoerne udfres ikke\n"
+
+#~ msgid " -E Preprocess only; do not compile, assemble or link\n"
+#~ msgstr " -E Forbehandl kun; overst og sammenkd ikke\n"
+
+#~ msgid " -S Compile only; do not assemble or link\n"
+#~ msgstr " -S Overst kun; maskinekodeoverst og sammenkd ikke\n"
+
+#~ msgid " -c Compile and assemble, but do not link\n"
+#~ msgstr " -c Overst, ogs til maskinkode, men sammenkd ikke\n"
+
+#~ msgid " -o <file> Place the output into <file>\n"
+#~ msgstr " -o <fil> Anbring uddataene i <fil>\n"
+
+#~ msgid ""
+#~ " -x <language> Specify the language of the following input files\n"
+#~ " Permissible languages include: c c++ assembler none\n"
+#~ " 'none' means revert to the default behavior of\n"
+#~ " guessing the language based on the file's extension\n"
+#~ msgstr ""
+#~ " -x <sprog> Angiv sproget for de flgende inddatafiler.\n"
+#~ " Tilladte sprog inkluderer: c c++ assembler none\n"
+#~ " 'none' betyder at standardopfrslen med at gtte\n"
+#~ " sproget p filendelsen udfres\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+#~ " passed on to the various sub-processes invoked by %s. In order to pass\n"
+#~ " other options on to these processes the -W<letter> options must be used.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Tilvalg der begynder med -g, -f, -m, -O, -W eller --param bliver automatisk\n"
+#~ " givet videre til de forskellige underprocesser som %s starter. For at\n"
+#~ " videregive andre indstillinger til disse processer kan tilvalg p formen\n"
+#~ " '-W<bogstav>' bruges.\n"
+
+#~ msgid "`-%c' option must have argument"
+#~ msgstr "tilvalget '-%c' skal have en parameter"
+
+#~ msgid "couldn't run `%s': %s"
+#~ msgstr "kunne ikke kre '%s': %s"
+
+#~ msgid "%s (GCC) %s\n"
+#~ msgstr "%s (GCC) %s\n"
+
+#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2003 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "This is free software; see the source for copying conditions. There is NO\n"
+#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Dette er et frit program; se kildekoden for kopieringsbetingelser. Der er\n"
+#~ "INGEN garanti; ikke engang for SALGBARHED eller BRUGBARHED TIL NOGET FORML.\n"
+
+#~ msgid "argument to `-Xlinker' is missing"
+#~ msgstr "der mangler en parameter til '-Xlinker'"
+
+#~ msgid "argument to `-l' is missing"
+#~ msgstr "der mangler en parameter til '-l'"
+
+#~ msgid "argument to `-specs' is missing"
+#~ msgstr "der mangler en parameter til '-specs'"
+
+#~ msgid "argument to `-specs=' is missing"
+#~ msgstr "der mangler en parameter til '-specs='"
+
+#~ msgid "`-%c' must come at the start of the command line"
+#~ msgstr "'-%c' skal vre i begyndelsen af kommandolinjen"
+
+#~ msgid "argument to `-B' is missing"
+#~ msgstr "der mangler en parameter til '-B'"
+
+#~ msgid "cannot specify -o with -c or -S and multiple compilations"
+#~ msgstr "kan ikke angive -o med -c eller -S og flere oversttelser"
+
+#~ msgid "warning: -pipe ignored because -save-temps specified"
+#~ msgstr "advarsel: -pipe ignoreret fordi -save-temps er angivet"
+
+#~ msgid "warning: -pipe ignored because -time specified"
+#~ msgstr "advarsel: -pipe ignoreret fordi -time er angivet"
+
+#~ msgid "argument to `-x' is missing"
+#~ msgstr "der mangler en parameter til '-x'"
+
+#~ msgid "argument to `-%s' is missing"
+#~ msgstr "der mangler en parameter til '-%s'"
+
+#~ msgid "warning: `-x %s' after last input file has no effect"
+#~ msgstr "advarsel: '-x %s' efter den sidste inddatafil har ingen effekt"
+
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr "ugyldig specifikation! Fejl i cc."
+
+#~ msgid "%s\n"
+#~ msgstr "%s\n"
+
+#~ msgid "spec failure: '%%*' has not been initialized by pattern match"
+#~ msgstr "specifikationsfejl: '%%*' er ikke blevet klargjort af mnstersgning"
+
+#~ msgid "warning: use of obsolete %%[ operator in specs"
+#~ msgstr "advarsel: forldet '%%['-operator benyttet i specifikationer"
+
+#~ msgid "Processing spec %c%s%c, which is '%s'\n"
+#~ msgstr "Behandler specifikation %c%s%c, som er '%s'\n"
+
+#~ msgid "spec failure: unrecognized spec option '%c'"
+#~ msgstr "specifikationsfejl: ukendt specifikationstilvalg '%c'"
+
+#~ msgid "unknown spec function `%s'"
+#~ msgstr "ukendt specifikationsfunktion '%s'"
+
+#~ msgid "error in args to spec function `%s'"
+#~ msgstr "fejl i parametre til specifikationsfunktion '%s'"
+
+#~ msgid "malformed spec function name"
+#~ msgstr "forkert udformet specifikationsfunktionsnavn"
+
+#~ msgid "no arguments for spec function"
+#~ msgstr "ingen parametre til specifikationsfunktion"
+
+#~ msgid "malformed spec function arguments"
+#~ msgstr "forkert udformede specifikationsfunktionsparametre"
+
+#~ msgid "mismatched braces in specs"
+#~ msgstr "uafbalancerede krllede paranteser i specifikationer"
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr "ukendt tilvalg '-%s'"
+
+#~ msgid "install: %s%s\n"
+#~ msgstr "installering: %s%s\n"
+
+#~ msgid "programs: %s\n"
+#~ msgstr "programmer: %s\n"
+
+#~ msgid "libraries: %s\n"
+#~ msgstr "biblioteker: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "For fejlrapporteringsinstruktioner, se:\n"
+
+#~ msgid "Configured with: %s\n"
+#~ msgstr "Konfigureret med: %s\n"
+
+#~ msgid "Thread model: %s\n"
+#~ msgstr "Trdmodel: %s\n"
+
+#~ msgid "gcc version %s\n"
+#~ msgstr "GCC version %s\n"
+
+#~ msgid "gcc driver version %s executing gcc version %s\n"
+#~ msgstr "GCC-styringsprogram version %s krer GCCc version %s\n"
+
+#~ msgid "no input files"
+#~ msgstr "ingen inddatafiler"
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s-overstter ikke installeret p dette system"
+
+#~ msgid "%s: linker input file unused because linking not done"
+#~ msgstr "%s: sammenkderinddatafil ikke benyttet eftersom sammenkdning ikke blev foretaget"
+
+#~ msgid "language %s not recognized"
+#~ msgstr "sproget %s ikke genkendt"
+
+#~ msgid "internal gcc abort"
+#~ msgstr "intern GCC-afbrydelse"
+
+#~ msgid "Internal gcov abort.\n"
+#~ msgstr "Intern gcov afbrydelse.\n"
+
+#~ msgid ""
+#~ "Usage: gcov [OPTION]... SOURCEFILE\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Brug: gcov [TILVALG]... KILDEFIL\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Print code coverage information.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Udskriv kodedkningsoplysninger.\n"
+#~ "\n"
+
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " -h, --help Udskriv denne hjlp og afslut\n"
+
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -v, --version Udskriv versionsnummeret og afslut\n"
+
+#~ msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+#~ msgstr " -b, --branch-probabilities Medtag forgreningssandsynligheder i uddata\n"
+
+#~ msgid ""
+#~ " -c, --branch-counts Given counts of branches taken\n"
+#~ " rather than percentages\n"
+#~ msgstr " -c, --branch-counts Antal forgreninger taget i stedet for procenter\n"
+
+#~ msgid " -n, --no-output Do not create an output file\n"
+#~ msgstr " -n, --no-output Opret ikke en uddatafil\n"
+
+#~ msgid ""
+#~ " -l, --long-file-names Use long output file names for included\n"
+#~ " source files\n"
+#~ msgstr " -l, --long-file-names Brug lange filnavne til inkluderede kildefiler\n"
+
+#~ msgid " -f, --function-summaries Output summaries for each function\n"
+#~ msgstr " -f, --function-summaries Udskriv sammendrag for hver funktion\n"
+
+#~ msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+#~ msgstr " -o, --object-directory KAT|FIL Sg efter objektfiler i KAT eller kaldt FIL\n"
+
+#~ msgid " -p, --preserve-paths Preserve all pathname components\n"
+#~ msgstr " -p, --preserve-paths Bevar alle stinavnskomponenter\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ "%s.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "For fejlrapporteringsinstruktioner, se:\n"
+#~ "%s.\n"
+
+#~ msgid "gcov (GCC) %s\n"
+#~ msgstr "gcov (GCC) %s\n"
+
+#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2001 Free Software Foundation, Inc.\n"
+
+#~ msgid "Could not open basic block file %s.\n"
+#~ msgstr "Kunne ikke bne basisblokfilen %s.\n"
+
+#~ msgid "Could not open program flow graph file %s.\n"
+#~ msgstr "Kunne ikke bne programstrmsgraffilen %s.\n"
+
+#~ msgid "Could not open data file %s.\n"
+#~ msgstr "Kunne ikke bne datafilen %s.\n"
+
+#~ msgid "Assuming that all execution counts are zero.\n"
+#~ msgstr "Antager at alle krselstllere er nul.\n"
+
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr "Ingen krbar kode associeret med filen %s.\n"
+
+#~ msgid "%s of %d lines executed in %s %s\n"
+#~ msgstr "%s af %d linjer udfrt i %s %s\n"
+
+#~ msgid "No executable lines in %s %s\n"
+#~ msgstr "Ingen krbare linjer i %s %s\n"
+
+#~ msgid "%s of %d branches executed in %s %s\n"
+#~ msgstr "%s af %d forgreninger udfrt i %s %s\n"
+
+#~ msgid "%s of %d branches taken at least once in %s %s\n"
+#~ msgstr "%s af %d forgreninger valgt mindst n gang i %s %s\n"
+
+#~ msgid "No branches in %s %s\n"
+#~ msgstr "Ingen forgreninger i %s %s\n"
+
+#~ msgid "%s of %d calls executed in %s %s\n"
+#~ msgstr "%s af %d kald udfrt i %s %s\n"
+
+#~ msgid "No calls in %s %s\n"
+#~ msgstr "Ingen kald i %s %s\n"
+
+#~ msgid "didn't use all bb entries of graph, function %s\n"
+#~ msgstr "brugte ikke alle grafens basisblokelementer, funktion %s\n"
+
+#~ msgid "block_num = %ld, num_blocks = %d\n"
+#~ msgstr "block_num = %ld, num_blocks = %d\n"
+
+#~ msgid "ERROR: unexpected line number %ld\n"
+#~ msgstr "Fejl: uventet linjenummer %ld\n"
+
+#~ msgid "ERROR: too many basic blocks in function %s\n"
+#~ msgstr "Fejl: for mange basisblokke i funktionen %s\n"
+
+#~ msgid "ERROR: out of range line number in function %s\n"
+#~ msgstr "Fejl: linjenummer uden for det gyldige interval i funktionen %s\n"
+
+#~ msgid "Could not open source file %s.\n"
+#~ msgstr "Kunne ikke bne kildefilen %s.\n"
+
+#~ msgid "Warning: source file %s is newer than %s\n"
+#~ msgstr "Advarsel: kildefil %s er nyere end %s\n"
+
+#~ msgid "Unexpected EOF while reading source file %s.\n"
+#~ msgstr "Stdt p slutningen af kildefilen %s tidligere end forventet.\n"
+
+#~ msgid "call %2d never executed\n"
+#~ msgstr "kald %2d aldrig udfrt\n"
+
+#~ msgid "call %2d returns %s\n"
+#~ msgstr "kald %2d returnerer %s\n"
+
+#~ msgid "branch %2d never executed\n"
+#~ msgstr "forgrening %2d aldrig udfrt\n"
+
+#~ msgid "branch %2d taken %s\n"
+#~ msgstr "forgrening %2d valgt %s\n"
+
+#~ msgid "Creating %s.\n"
+#~ msgstr "Opretter %s.\n"
+
+#~ msgid "Error writing output file %s.\n"
+#~ msgstr "Fejl ved skrivning af uddatafilen %s.\n"
+
+#~ msgid "Could not open output file %s.\n"
+#~ msgstr "Kunne ikke bne uddatafilen %s.\n"
+
+#~ msgid "GCSE disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "GCSE deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok"
+
+#~ msgid "GCSE disabled: %d basic blocks and %d registers"
+#~ msgstr "GCSE deaktiveret: %d basisblokke og %d registre"
+
+#~ msgid "Name `%s' contains quotes"
+#~ msgstr "Navnet '%s' indeholder citationstegn"
+
+#~ msgid "invalid string `%s' in define_cpu_unit"
+#~ msgstr "ugyldig streng '%s' i define_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_query_cpu_unit"
+#~ msgstr "ugyldig streng '%s' i define_query_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_bypass"
+#~ msgstr "ugyldig streng '%s' i define_bypass"
+
+#~ msgid "invalid first string `%s' in exclusion_set"
+#~ msgstr "ugyldig frste streng '%s' i exclusion_set"
+
+#~ msgid "invalid second string `%s' in exclusion_set"
+#~ msgstr "ugyldig anden streng '%s' i exclusion_set"
+
+#~ msgid "invalid first string `%s' in presence_set"
+#~ msgstr "ugyldig frste streng '%s' i presence_set"
+
+#~ msgid "invalid second string `%s' in presence_set"
+#~ msgstr "ugyldig anden streng '%s' i presence_set"
+
+#~ msgid "invalid first string `%s' in absence_set"
+#~ msgstr "ugyldig frste streng '%s' i absence_set"
+
+#~ msgid "invalid second string `%s' in absence_set"
+#~ msgstr "ugyldig anden streng '%s' i absence_set"
+
+#~ msgid "invalid string `%s' in define_automaton"
+#~ msgstr "ugyldig streng '%s' i define_automaton"
+
+#~ msgid "invalid option `%s' in automata_option"
+#~ msgstr "ugyldigt tilvalg '%s' i automata_option"
+
+#~ msgid "garbage after ) in reservation `%s'"
+#~ msgstr "ragelse efter ) i reservering '%s'"
+
+#~ msgid "invalid `%s' in reservation `%s'"
+#~ msgstr "ugyldig '%s' i reservering '%s'"
+
+#~ msgid "repetition `%s' <= 1 in reservation `%s'"
+#~ msgstr "gentagelse '%s' <= 1 i reservering '%s'"
+
+#~ msgid "unit `%s' in exclusion is not declared"
+#~ msgstr "enhed '%s' i ekskludering er ikke erklret"
+
+#~ msgid "`%s' in exclusion is not unit"
+#~ msgstr "'%s' i ekskludering er ikke enhed"
+
+#~ msgid "unit `%s' excludes itself"
+#~ msgstr "enheden '%s' ekskluderer sig selv"
+
+#~ msgid "units `%s' and `%s' in exclusion set belong to different automata"
+#~ msgstr "enhederne '%s' og '%s' i ekskluderingsmngde tilhrer forskellige automater"
+
+#~ msgid "unit `%s' excludes and requires presence of `%s'"
+#~ msgstr "enheden '%s' ekskluderer og krver tilstedevrelse af '%s'"
+
+#~ msgid "unit `%s' requires absence and presence of `%s'"
+#~ msgstr "enheden '%s' krver tilstedevrelse og fravr af '%s'"
+
+#~ msgid "repeated declaration of automaton `%s'"
+#~ msgstr "gentaget erklring af automaten '%s'"
+
+#~ msgid "define_insn_reservation `%s' has negative latency time"
+#~ msgstr "define_insn_reservation '%s' har negativ ventetid"
+
+#~ msgid "`%s' is already used as insn reservation name"
+#~ msgstr "`%s' bliver allerede benyttet som instruktionsreserveringsnavn"
+
+#~ msgid "define_bypass `%s - %s' has negative latency time"
+#~ msgstr "define_bypass '%s - %s' har negativ ventetid"
+
+#~ msgid "automaton `%s' is not declared"
+#~ msgstr "automaten '%s' er ikke erklret"
+
+#~ msgid "define_unit `%s' without automaton when one defined"
+#~ msgstr "define_unit '%s' uden automat nr en er defineret"
+
+#~ msgid "`%s' is declared as cpu unit"
+#~ msgstr "'%s' er erklret som CPU-enhed"
+
+#~ msgid "`%s' is declared as cpu reservation"
+#~ msgstr "'%s' er erklret som CPU-reservering"
+
+#~ msgid "repeated declaration of unit `%s'"
+#~ msgstr "gentaget erklring af enheden '%s'"
+
+#~ msgid "repeated declaration of reservation `%s'"
+#~ msgstr "gentaget erklring af reserveringen '%s'"
+
+#~ msgid "there is no insn reservation `%s'"
+#~ msgstr "der er ingen instruktionsreservering '%s'"
+
+#~ msgid "the same bypass `%s - %s' is already defined"
+#~ msgstr "den samme videreledning '%s - %s' er allerede defineret"
+
+#~ msgid "bypass `%s - %s' is already defined"
+#~ msgstr "videreledning '%s - %s' er allerede defineret"
+
+#~ msgid "automaton `%s' is not used"
+#~ msgstr "automat '%s' bliver ikke benyttet"
+
+#~ msgid "undeclared unit or reservation `%s'"
+#~ msgstr "ikke-erklret enhed eller reservering '%s'"
+
+#~ msgid "unit `%s' is not used"
+#~ msgstr "enhed '%s' bliver ikke benyttet"
+
+#~ msgid "reservation `%s' is not used"
+#~ msgstr "reservering '%s' bliver ikke benyttet"
+
+#~ msgid "cycle in definition of reservation `%s'"
+#~ msgstr "cyklus i definering af reservering '%s'"
+
+#~ msgid "Units `%s' and `%s' should be in the same automaton"
+#~ msgstr "Enhederne '%s' og '%s' skal vre i den samme automat"
+
+#~ msgid "-split has no argument."
+#~ msgstr "-split uden parametre"
+
+#~ msgid "option `-split' has not been implemented yet\n"
+#~ msgstr "tilvalget '-split' understttes ikke endnu\n"
+
+#~ msgid "Automaton `%s': Insn `%s' will never be issued"
+#~ msgstr "Automat '%s': instruktion '%s' vil aldrig blive udfrt"
+
+#~ msgid "Insn `%s' will never be issued"
+#~ msgstr "Instruktion '%s' vil aldrig blive udfrt"
+
+#~ msgid "Errors in DFA description"
+#~ msgstr "Fejl i DFA-beskrivelse"
+
+#~ msgid "Error in writing DFA description file %s"
+#~ msgstr "Fejl ved skrivning af DFA-beskrivelsesfil %s"
+
+#~ msgid "No input file name."
+#~ msgstr "Intet inddatafilnavn."
+
+#~ msgid "can't open %s"
+#~ msgstr "kan ikke bne %s"
+
+#~ msgid "fix_sched_param: unknown param: %s"
+#~ msgstr "fix_sched_param: ukendt parameter: %s"
+
+#~ msgid "function cannot be inline"
+#~ msgstr "funktion kan ikke indbygges"
+
+#~ msgid "varargs function cannot be inline"
+#~ msgstr "funktion med variabel parameterliste kan ikke indbygges"
+
+#~ msgid "function using alloca cannot be inline"
+#~ msgstr "funktion der bruger alloca, kan ikke indbygges"
+
+#~ msgid "function using setjmp cannot be inline"
+#~ msgstr "funktion der bruger setjmp, kan ikke indbygges"
+
+#~ msgid "function uses __builtin_eh_return"
+#~ msgstr "funktionen bruger __builtin_eh_return"
+
+#~ msgid "function with nested functions cannot be inline"
+#~ msgstr "funktion med indlejrede funktioner kan ikke indbygges"
+
+#~ msgid "function with label addresses used in initializers cannot inline"
+#~ msgstr "funktion hvor etiketadresser benyttes i klargringer, kan ikke indbygges"
+
+#~ msgid "function too large to be inline"
+#~ msgstr "funktionen er for stor til at blive indbygget"
+
+#~ msgid "no prototype, and parameter address used; cannot be inline"
+#~ msgstr "ingen prototype, og parameteradressen benyttes; kan ikke indbygges"
+
+#~ msgid "inline functions not supported for this return value type"
+#~ msgstr "integrerede funktioner understttes ikke for denne returvrditype"
+
+#~ msgid "function with varying-size return value cannot be inline"
+#~ msgstr "funktioner med returvrdier af varierende strrelse kan ikke indbygges"
+
+#~ msgid "function with varying-size parameter cannot be inline"
+#~ msgstr "funktioner med parametre af varierende strrelse kan ikke indbygges"
+
+#~ msgid "function with transparent unit parameter cannot be inline"
+#~ msgstr "funktioner med gennemsigtig union-parameter kan ikke indbygges"
+
+#~ msgid "function with computed jump cannot inline"
+#~ msgstr "funktioner med beregnede spring kan ikke indbygges"
+
+#~ msgid "function with nonlocal goto cannot be inline"
+#~ msgstr "funktioner med ikke-lokale goto'er kan ikke indbygges"
+
+#~ msgid "function with target specific attribute(s) cannot be inlined"
+#~ msgstr "funktioner med mlspecifikke egenskaber kan ikke indbygges"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "I filen inkluderet af %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " af %s:%u"
+
+#~ msgid "invalid parameter `%s'"
+#~ msgstr "ugyldig parameter '%s'"
+
+#~ msgid "Profile does not match flowgraph of function %s (out of date?)"
+#~ msgstr "Profil passer ikke til flowgraph af funktionen %s (forldet?)"
+
+#~ msgid ".da file corrupted"
+#~ msgstr ".da-fil delagt"
+
+# 'prob' str for sandsynlighed
+#~ msgid "corrupted profile info: prob for %d-%d thought to be %d"
+#~ msgstr "delagte profilinfo: sandsynlighed for %d-%d menes at vre %d"
+
+#~ msgid "file %s not found, execution counts assumed to be zero"
+#~ msgstr "filen %s ikke fundet, antager at krselstllere er nul"
+
+#~ msgid "%s: internal abort\n"
+#~ msgstr "%s: intern afbrydelse\n"
+
+#~ msgid "%s: error writing file `%s': %s\n"
+#~ msgstr "%s: fejl ved skrivning til filen '%s': %s\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+#~ msgstr "%s: brug '%s [ -VqfnkN ] [ -i <istreng> ] [ filenavn ... ]'\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#~ msgstr "%s: brug '%s [ -VqfnkNlgC ] [ -B <katalognavn> ] [ filnavn ... ]'\n"
+
+#~ msgid "%s: warning: no read access for file `%s'\n"
+#~ msgstr "%s: advarsel: ingen lseadgang til filen '%s'\n"
+
+#~ msgid "%s: warning: no write access for file `%s'\n"
+#~ msgstr "%s: advarsel: ingen skriveadgang til filen '%s'\n"
+
+#~ msgid "%s: warning: no write access for dir containing `%s'\n"
+#~ msgstr "%s: advarsel: ingen skriveadgang til kataloget der indeholder '%s'\n"
+
+#~ msgid "%s: invalid file name: %s\n"
+#~ msgstr "%s: ugyldigt filnavn: %s\n"
+
+#~ msgid "%s: %s: can't get status: %s\n"
+#~ msgstr "%s: %s: kan ikke finde ud af filens status: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: fatal error: aux info file corrupted at line %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: fatal fejl: hjlpeinformationsfilen er beskadiget ved linje %d\n"
+
+#~ msgid "%s:%d: declaration of function `%s' takes different forms\n"
+#~ msgstr "%s:%d: erklringen af funktionen '%s' antager forskellige former\n"
+
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: overstter '%s'\n"
+
+#~ msgid "%s: wait: %s\n"
+#~ msgstr "%s: vent: %s\n"
+
+#~ msgid "%s: subprocess got fatal signal %d\n"
+#~ msgstr "%s: underprocessen modtog fatalt signal %d\n"
+
+#~ msgid "%s: %s exited with status %d\n"
+#~ msgstr "%s: %s afsluttede med status %d\n"
+
+#~ msgid "%s: warning: missing SYSCALLS file `%s'\n"
+#~ msgstr "%s: advarsel: manglende SYSCALLS-fil '%s'\n"
+
+#~ msgid "%s: can't read aux info file `%s': %s\n"
+#~ msgstr "%s: kan ikke lse hjlpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't get status of aux info file `%s': %s\n"
+#~ msgstr "%s: kan ikke f status for hjlpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#~ msgstr "%s: kan ikke bne hjlpeinformationsfilen '%s' til at lse fra: %s\n"
+
+#~ msgid "%s: error reading aux info file `%s': %s\n"
+#~ msgstr "%s: fejl ved lsning af hjlpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: error closing aux info file `%s': %s\n"
+#~ msgstr "%s: fejl ved lukning af hjlpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't delete aux info file `%s': %s\n"
+#~ msgstr "%s: kan ikke slette hjlpeinformationsfilen '%s': %s\n"
+
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: kan ikke slette filen '%s': %s\n"
+
+#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+#~ msgstr "%s: advarsel: kan ikke omdbe filen '%s' til '%s': %s\n"
+
+#~ msgid "%s: conflicting extern definitions of '%s'\n"
+#~ msgstr "%s: modstridende eksterne definitioner af '%s'\n"
+
+#~ msgid "%s: declarations of '%s' will not be converted\n"
+#~ msgstr "%s: erklringer af '%s' vil ikke blive omdannet\n"
+
+#~ msgid "%s: conflict list for '%s' follows:\n"
+#~ msgstr "%s: modstridene for '%s' flger:\n"
+
+#~ msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+#~ msgstr "%s: advarsel: bruger parameterlisten fra %s(%d) til funktionen '%s'\n"
+
+#~ msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+#~ msgstr "%s: %d: '%s' benyttet, men mangler i SYSCALLS\n"
+
+#~ msgid "%s: %d: warning: no extern definition for `%s'\n"
+#~ msgstr "%s: %d: advarsel: ingen ekstern definition af '%s'\n"
+
+#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+#~ msgstr "%s: advarsel: ingen statisk definition af '%s' i filen '%s'\n"
+
+#~ msgid "%s: multiple static defs of `%s' in file `%s'\n"
+#~ msgstr "%s: flere statiske definitioner af '%s' i filen '%s'\n"
+
+#~ msgid "%s: %d: warning: source too confusing\n"
+#~ msgstr "%s: %d: advarsel: koden er for forvirrende\n"
+
+#~ msgid "%s: %d: warning: varargs function declaration not converted\n"
+#~ msgstr "%s: %d: advarsel: funktionserklring med variabel parameterliste er ikke omdannet\n"
+
+#~ msgid "%s: declaration of function `%s' not converted\n"
+#~ msgstr "%s: erklringen af funktionen '%s' er ikke omdannet\n"
+
+#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+#~ msgstr "%s: advarsel: for mange parameterlister i erklringen af '%s'\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: advarsel: for f parameterlister i erklringen af '%s'\n"
+
+#~ msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+#~ msgstr "%s: %d: advarsel: fandt '%s', men forventede '%s'\n"
+
+#~ msgid "%s: local declaration for function `%s' not inserted\n"
+#~ msgstr "%s: den lokale erklring af funktionen '%s' er ikke indsat\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: %d: warning: can't add declaration of `%s' into macro call\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: %d: advarsel: kan ikke tilfje erklringen af '%s' i makrokald\n"
+
+#~ msgid "%s: global declarations for file `%s' not inserted\n"
+#~ msgstr "%s: globale erklringer for filen '%s' er ikke indsat\n"
+
+#~ msgid "%s: definition of function `%s' not converted\n"
+#~ msgstr "%s: definitionen af funktionen '%s' er ikke omdannet\n"
+
+#~ msgid "%s: %d: warning: definition of %s not converted\n"
+#~ msgstr "%s: %d: advarsel: definitionen af '%s' er ikke omdannet\n"
+
+#~ msgid "%s: found definition of `%s' at %s(%d)\n"
+#~ msgstr "%s: fandt definitionen af '%s' ved %s(%d)\n"
+
+#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+#~ msgstr "%s: %d: advarsel: '%s' ekskluderet af forbehandlingen\n"
+
+#~ msgid "%s: function definition not converted\n"
+#~ msgstr "%s: funktionsdefinitionen er ikke omdannet\n"
+
+#~ msgid "%s: `%s' not converted\n"
+#~ msgstr "%s: '%s' ikke omdannet\n"
+
+#~ msgid "%s: would convert file `%s'\n"
+#~ msgstr "%s: ville omdanne filen '%s'\n"
+
+#~ msgid "%s: converting file `%s'\n"
+#~ msgstr "%s: omdanner filen '%s'\n"
+
+#~ msgid "%s: can't get status for file `%s': %s\n"
+#~ msgstr "%s: kan ikke f status for filen '%s': %s\n"
+
+#~ msgid "%s: can't open file `%s' for reading: %s\n"
+#~ msgstr "%s: kan ikke bne filen '%s' til at lse fra: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: fejl ved lsning af inddatafilen '%s': %s\n"
+
+#~ msgid "%s: can't create/open clean file `%s': %s\n"
+#~ msgstr "%s: kan ikke oprette/bne oprydningsfilen '%s': %s\n"
+
+#~ msgid "%s: warning: file `%s' already saved in `%s'\n"
+#~ msgstr "%s: advarsel: filen '%s' er allerede gemt i '%s'\n"
+
+#~ msgid "%s: can't link file `%s' to `%s': %s\n"
+#~ msgstr "%s: kan ikke kde filen '%s' sammen med '%s': %s\n"
+
+#~ msgid "%s: can't create/open output file `%s': %s\n"
+#~ msgstr "%s: kan ikke oprette/bne uddatafilen '%s': %s\n"
+
+#~ msgid "%s: can't change mode of file `%s': %s\n"
+#~ msgstr "%s: kan ikke ndre tilstanden af filen '%s': '%s'\n"
+
+#~ msgid "%s: cannot get working directory: %s\n"
+#~ msgstr "%s: kan ikke f fat i arbejdskataloget: %s\n"
+
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: inddatafilnavn skal have '.c'-endelser: %s\n"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "Kunne ikke finde en farvning.\n"
+
+#~ msgid "output constraint %d must specify a single register"
+#~ msgstr "uddatabegrnsning %d skal angive et enkelt register"
+
+#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+#~ msgstr "uddatabegrnsning %d kan ikke angives samtidig med overskrivning af \"%s\""
+
+#~ msgid "output regs must be grouped at top of stack"
+#~ msgstr "uddataregistre skal grupperes i toppen af stakken"
+
+#~ msgid "implicitly popped regs must be grouped at top of stack"
+#~ msgstr "implicit aflste registre skal grupperes i toppen af stakken"
+
+#~ msgid "output operand %d must use `&' constraint"
+#~ msgstr "uddataoperand %d skal bruge begrnsningen '&'"
+
+#~ msgid "can't use '%s' as a %s register"
+#~ msgstr "kan ikke bruge '%s' som et %s-register"
+
+#~ msgid "unknown register name: %s"
+#~ msgstr "ukendt registernavn: %s"
+
+#~ msgid "global register variable follows a function definition"
+#~ msgstr "en global registervariabel flger en funktionsdefinition"
+
+#~ msgid "register used for two global register variables"
+#~ msgstr "register brugt til to globale registervariabler"
+
+#~ msgid "call-clobbered register used for global register variable"
+#~ msgstr "kaldeoverskrevet register brugt til global registervariabel"
+
+#~ msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+#~ msgstr "validate_value_data: [%u] Ugyldig next_regno til tom kde (%u)"
+
+#~ msgid "validate_value_data: Loop in regno chain (%u)"
+#~ msgstr "validate_value_data: Lkke i registertalskde (%u)"
+
+#~ msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+#~ msgstr "validate_value_data: [%u] Ugyldig oldest_regno (%u)"
+
+#~ msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+#~ msgstr "validate_value_data: [%u] Ikke-tomt register i kde (%s %u %i)"
+
+#~ msgid "cannot reload integer constant operand in `asm'"
+#~ msgstr "kan ikke genindlse heltalskonstantoperand i 'asm'"
+
+#~ msgid "impossible register constraint in `asm'"
+#~ msgstr "umulig registerbegrnsing i 'asm'"
+
+#~ msgid "`&' constraint used with no register class"
+#~ msgstr "'&'-begrnsning brugt uden registerklasse"
+
+#~ msgid "unable to generate reloads for:"
+#~ msgstr "kunne ikke generere genindlsninger for:"
+
+#~ msgid "inconsistent operand constraints in an `asm'"
+#~ msgstr "inkonsistente operandbegrsninger i 'asm'"
+
+#~ msgid "frame size too large for reliable stack checking"
+#~ msgstr "rammestrrelse for stor til plidelig stakkontrol"
+
+#~ msgid "try reducing the number of local variables"
+#~ msgstr "forsg at reducere antallet af lokale variable"
+
+#~ msgid "can't find a register in class `%s' while reloading `asm'"
+#~ msgstr "kan ikke finde et register i klassen '%s' ved genindlsning af 'asm'"
+
+#~ msgid "unable to find a register to spill in class `%s'"
+#~ msgstr "kan ikke finde et register at bortdsle i klassen '%s'"
+
+#~ msgid "this is the insn:"
+#~ msgstr "dette er instruktionen:"
+
+#~ msgid "`asm' operand requires impossible reload"
+#~ msgstr "'asm'-operand krver umulig genindlsning"
+
+#~ msgid "could not find a spill register"
+#~ msgstr "kunne ikke finde et register at bortdsle"
+
+#~ msgid "`asm' operand constraint incompatible with operand size"
+#~ msgstr "'asm'-operandbegrnsning ikke forenelig med operandstrrelse"
+
+#~ msgid "VOIDmode on an output"
+#~ msgstr "VOID-tilstand ved uddata"
+
+#~ msgid "output operand is constant in `asm'"
+#~ msgstr "uddataoperand er konstant i 'asm'"
+
+#~ msgid "unrecognizable insn:"
+#~ msgstr "ukendt instruktion:"
+
+#~ msgid "insn does not satisfy its constraints:"
+#~ msgstr "instruktion tilfredsstiller ikke sine begrnsninger:"
+
+#~ msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: tilgang til udtrykstr %d fra '%s' med sidste udtrykstr %d i %s, ved %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: forventede udtrykstr %d type '%c', har '%c' (registeroverfrselsudtryk %s) i %s, ved %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: forventede udtrykstr %d type '%c' eller '%c', har '%c' (registeroverfrselsudtryk %s) i %s, ved %s:%d"
+
+#~ msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: forventede koden '%s', har '%s' i %s, ved %s:%d"
+
+#~ msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: forventede koden '%s' eller '%s', har '%s' i %s, ved %s:%d"
+
+#~ msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: tilgang til udtrykstr %d af vektor hvis sidste udtrykstr er %d i %s, ved %s:%d"
+
+#~ msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+#~ msgstr "RTL-flagskontrol: %s benyttet med uventet rtx-kode '%s' i %s, ved %s:%d"
+
+#~ msgid "jump to `%s' invalidly jumps into binding contour"
+#~ msgstr "spring til '%s' rammer p ugyldig vis ind i bindingskontur"
+
+#~ msgid "label `%s' used before containing binding contour"
+#~ msgstr "etiket '%s' brugt fr indholdende bindingskontur"
+
+#~ msgid "output operand constraint lacks `='"
+#~ msgstr "uddataoperandbegrnsning mangler '='"
+
+#~ msgid "output constraint `%c' for operand %d is not at the beginning"
+#~ msgstr "uddatabegrnsning '%c' for operanden %d er ikke ved begyndelsen"
+
+#~ msgid "operand constraint contains incorrectly positioned '+' or '='"
+#~ msgstr "operandbegrnsning indeholder forkert placeret '+' eller '='"
+
+#~ msgid "`%%' constraint used with last operand"
+#~ msgstr "'%%'-begrnsning brugt med sidste operand"
+
+#~ msgid "matching constraint not valid in output operand"
+#~ msgstr "begrnsningen er ikke gyldig for uddataoperanden"
+
+#~ msgid "input operand constraint contains `%c'"
+#~ msgstr "inddataoperandbegrnsningen indeholder '%c'"
+
+#~ msgid "matching constraint references invalid operand number"
+#~ msgstr "begrnsning refererer til et ugyldigt operandtal"
+
+#~ msgid "invalid punctuation `%c' in constraint"
+#~ msgstr "ugyldig punktuering '%c' i begrnsning"
+
+#~ msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+#~ msgstr "asm-anvisning for variablen '%s' strider mod asm-overskrivelsesliste"
+
+#~ msgid "unknown register name `%s' in `asm'"
+#~ msgstr "ukendt registernavn '%s' i 'asm'"
+
+#~ msgid "more than %d operands in `asm'"
+#~ msgstr "mere end %d operander i 'asm'"
+
+#~ msgid "output number %d not directly addressable"
+#~ msgstr "uddata nr. %d kan ikke adresseres direkte"
+
+#~ msgid "asm operand %d probably doesn't match constraints"
+#~ msgstr "'asm'-operand %d passer sandsynligvis ikke til begrnsninger"
+
+#~ msgid "asm clobber conflict with output operand"
+#~ msgstr "asm-overskrivelse er i modstrid med uddataoperander"
+
+#~ msgid "asm clobber conflict with input operand"
+#~ msgstr "asm-overskrivelse er i modstrid med inddataoperander"
+
+#~ msgid "too many alternatives in `asm'"
+#~ msgstr "for mange alternativer i 'asm'"
+
+#~ msgid "operand constraints for `asm' differ in number of alternatives"
+#~ msgstr "operandbegrnsninger til 'asm' har forskellige antal alternativer"
+
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "'asm'-operandnavnet '%s' optrder mere end n gang"
+
+#~ msgid "missing close brace for named operand"
+#~ msgstr "manglende afsluttende krllet parantes til navngiven operand"
+
+#~ msgid "undefined named operand '%s'"
+#~ msgstr "ikkedefineret navngiven operand '%s'"
+
+#~ msgid "unused variable `%s'"
+#~ msgstr "ubrugt variabel '%s'"
+
+#~ msgid "enumeration value `%s' not handled in switch"
+#~ msgstr "enum-vrdien '%s' hndteres ikke i switch-stning"
+
+#~ msgid "case value `%ld' not in enumerated type"
+#~ msgstr "case-vrdien '%ld' eksisterer ikke i enum-type"
+
+#~ msgid "case value `%ld' not in enumerated type `%s'"
+#~ msgstr "case-vrdien '%ld' eksisterer ikke i enum-typen '%s'"
+
+#~ msgid "switch missing default case"
+#~ msgstr "switch-konstruktion mangler default"
+
+#~ msgid "type size can't be explicitly evaluated"
+#~ msgstr "det er ikke muligt eksplicit at finde typens strrelse"
+
+#~ msgid "variable-size type declared outside of any function"
+#~ msgstr "en type med en variabel strrelse er erklret uden for en funktion"
+
+#~ msgid "size of `%s' is %d bytes"
+#~ msgstr "strrelsen af '%s' er %d byte"
+
+#~ msgid "size of `%s' is larger than %d bytes"
+#~ msgstr "strrelsen af '%s' er strre end %d byte"
+
+#~ msgid "packed attribute causes inefficient alignment for `%s'"
+#~ msgstr "packed-egenskab forrsager ineffektiv justering af '%s'"
+
+#~ msgid "packed attribute is unnecessary for `%s'"
+#~ msgstr "packed-egenskab er undvendig for '%s'"
+
+#~ msgid "padding struct to align `%s'"
+#~ msgstr "udfylder struct for at justere '%s'"
+
+#~ msgid "padding struct size to alignment boundary"
+#~ msgstr "udfylder struct-strrelse til justeringskant"
+
+#~ msgid "packed attribute causes inefficient alignment"
+#~ msgstr "packed-egenskab forrsager ineffektiv justering"
+
+#~ msgid "packed attribute is unnecessary"
+#~ msgstr "packed-egenskab er undvendig"
+
+#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+#~ msgstr "kan ikke udfre timevar_pop '%s' nr toppen af timevars-stakken er '%s'"
+
+#~ msgid ""
+#~ "\n"
+#~ "Execution times (seconds)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Udfrselstid (sekunder)\n"
+
+#~ msgid " TOTAL :"
+#~ msgstr " TOTAL :"
+
+#~ msgid "time in %s: %ld.%06ld (%ld%%)\n"
+#~ msgstr "tid i %s: %ld.%06ld (%ld%%)\n"
+
+#~ msgid "collect: reading %s\n"
+#~ msgstr "collect: lser %s\n"
+
+#~ msgid "collect: recompiling %s\n"
+#~ msgstr "collect: genoverstter '%s'\n"
+
+# RETMIG: rigtigt?
+#~ msgid "collect: tweaking %s in %s\n"
+#~ msgstr "collect: presser %s i %s\n"
+
+#~ msgid "collect: relinking\n"
+#~ msgstr "collect: kder sammen igen\n"
+
+#~ msgid "ld returned %d exit status"
+#~ msgstr "ld returnerede afslutningskoden %d"
+
+#~ msgid "Generate debugging info in default format"
+#~ msgstr "Generr fejlfindingsinfo i standardformat"
+
+#~ msgid "Generate debugging info in default extended format"
+#~ msgstr "Generr fejlfindingsinfo i udvidet standardformat"
+
+#~ msgid "Generate STABS format debug info"
+#~ msgstr "Generr fejlfindingsinfo i STABS-format"
+
+#~ msgid "Generate extended STABS format debug info"
+#~ msgstr "Generr fejlfindingsinfo i udvidet STABS-format"
+
+#~ msgid "Generate DWARF-1 format debug info"
+#~ msgstr "Generr fejlfindingsinfo i DWARF-1-format"
+
+#~ msgid "Generate extended DWARF-1 format debug info"
+#~ msgstr "Generr fejlfindingsinfo i udvidet DWARF-1-format"
+
+#~ msgid "Generate DWARF-2 debug info"
+#~ msgstr "Generr fejlfindingsinfo i DWARF-2-format"
+
+#~ msgid "Generate XCOFF format debug info"
+#~ msgstr "Generr fejlfindingsinfo i XCOFF-format"
+
+#~ msgid "Generate extended XCOFF format debug info"
+#~ msgstr "Generr fejlfindingsinfo i udvidet XCOFF-format"
+
+#~ msgid "Generate COFF format debug info"
+#~ msgstr "Generr fejlfindingsinfo i COFF-format"
+
+#~ msgid "Generate VMS format debug info"
+#~ msgstr "Generr fejlfindingsinfo i VMS-format"
+
+#~ msgid "Perform DWARF2 duplicate elimination"
+#~ msgstr "Udfr DWARF2-eliminering af dubletter"
+
+#~ msgid "Do not store floats in registers"
+#~ msgstr "Lagr ikke kommatal i registre"
+
+#~ msgid "Consider all mem refs through pointers as volatile"
+#~ msgstr "Betragt alle hukommelsesferencer gennem henvisninger som volatile"
+
+#~ msgid "Consider all mem refs to global data to be volatile"
+#~ msgstr "Betragt alle hukommelsesferencer til globale data som volatile"
+
+#~ msgid "Consider all mem refs to static data to be volatile"
+#~ msgstr "Betragt alle hukommelsesferencer til statiske data som volatile"
+
+#~ msgid "Defer popping functions args from stack until later"
+#~ msgstr "Vent med fjernelse af funktionsparametre fra stakken til senere"
+
+#~ msgid "When possible do not generate stack frames"
+#~ msgstr "Generr ikke stakrammer nr det kan undgs"
+
+#~ msgid "Optimize sibling and tail recursive calls"
+#~ msgstr "Optimr sskende- og halerekursive kald"
+
+#~ msgid "Perform superblock formation via tail duplication"
+#~ msgstr "Udfr superbloksformering vha. haleduplikering"
+
+# RETMIG: hvad er CSE?
+#~ msgid "When running CSE, follow jumps to their targets"
+#~ msgstr "Ved krsel af CSE flg spring til deres ml"
+
+#~ msgid "When running CSE, follow conditional jumps"
+#~ msgstr "Ved krsel af CSE flg betingede spring"
+
+#~ msgid "Perform a number of minor, expensive optimizations"
+#~ msgstr "Udfr et antal mindre, dyre optimeringer"
+
+#~ msgid "Perform jump threading optimizations"
+#~ msgstr "Udfr springtrdningsoptimeringer"
+
+#~ msgid "Perform strength reduction optimizations"
+#~ msgstr "Udfr styrkereduceringsoptimeringer"
+
+#~ msgid "Perform loop unrolling when iteration count is known"
+#~ msgstr "Udfr lkkeudrulning nr iterationsantallet er kendt"
+
+#~ msgid "Perform loop unrolling for all loops"
+#~ msgstr "Udfr lkkeudrulning for alle lkker"
+
+#~ msgid "Generate prefetch instructions, if available, for arrays in loops"
+#~ msgstr "Generr prhentningsinstruktioner, hvis tilgngelige, for tabeller i lkker"
+
+#~ msgid "Force all loop invariant computations out of loops"
+#~ msgstr "Tving alle lkkeinvariansberegninger ud af lkker"
+
+#~ msgid "Strength reduce all loop general induction variables"
+#~ msgstr "Styrkereducr alle generelle lkkeinduktionsvariabler"
+
+#~ msgid "Store strings in writable data section"
+#~ msgstr "Gem strenge i en skrivbar datasektion"
+
+#~ msgid "Enable machine specific peephole optimizations"
+#~ msgstr "Aktivr maskinspecifikke kighulsoptimeringer"
+
+#~ msgid "Copy memory operands into registers before using"
+#~ msgstr "Kopir hukommelsesoperander ind i registre fr brug"
+
+#~ msgid "Copy memory address constants into regs before using"
+#~ msgstr "Kopir hukommelsesadressekonstanter ind i registre fr brug"
+
+#~ msgid "Allow function addresses to be held in registers"
+#~ msgstr "Tillad funktionsadresser at blive opbevaret i registre"
+
+#~ msgid "Integrate simple functions into their callers"
+#~ msgstr "Integrr simple funktioner i deres kaldere"
+
+#~ msgid "Generate code for funcs even if they are fully inlined"
+#~ msgstr "Generr kode for funktioner selv hvis de indlejres helt"
+
+#~ msgid "Pay attention to the 'inline' keyword"
+#~ msgstr "Lg mrke til 'inline'-ngleordet"
+
+#~ msgid "Emit static const variables even if they are not used"
+#~ msgstr "Konstrur statiske, konstante variabler selv hvis de ikke bruges"
+
+#~ msgid "Check for syntax errors, then stop"
+#~ msgstr "Kontrollr syntaks og stop derefter"
+
+#~ msgid "Mark data as shared rather than private"
+#~ msgstr "Markr data som delt snarere end privat"
+
+#~ msgid "Enable saving registers around function calls"
+#~ msgstr "Aktivr gemning af registrer omkring funktionskald"
+
+#~ msgid "Return 'short' aggregates in memory, not registers"
+#~ msgstr "Returnr sm sammensatte vrdier i hukommelsen, ikke i registre"
+
+#~ msgid "Return 'short' aggregates in registers"
+#~ msgstr "Returnr sm sammensatte vrdier i registre"
+
+#~ msgid "Attempt to fill delay slots of branch instructions"
+#~ msgstr "Forsg at udfylde ventepladser med forgreningsinstruktioner"
+
+#~ msgid "Perform the global common subexpression elimination"
+#~ msgstr "Udfr global eliminering af flles underudtryk"
+
+#~ msgid "Perform enhanced load motion during global subexpression elimination"
+#~ msgstr "Udfr forbedret indlsningsbevgelse under eliminering af flles underudtryk"
+
+#~ msgid "Perform store motion after global subexpression elimination"
+#~ msgstr "Udfr lagringsbevgelse efter eliminering af flles underudtryk"
+
+#~ msgid "Perform the loop optimizations"
+#~ msgstr "Udfr lkkeoptimeringerne"
+
+#~ msgid "Perform cross-jumping optimization"
+#~ msgstr "Udfr krydsspringsoptimering"
+
+#~ msgid "Perform conversion of conditional jumps to branchless equivalents"
+#~ msgstr "Udfr konvertering af betingede spring til forgreningslse kvivalenter"
+
+#~ msgid "Perform conversion of conditional jumps to conditional execution"
+#~ msgstr "Udfr konvertering af betingede spring til betinget udfrsel"
+
+#~ msgid "Run CSE pass after loop optimizations"
+#~ msgstr "Kr CSE-fase efter lkkeoptimeringer"
+
+#~ msgid "Run the loop optimizer twice"
+#~ msgstr "Kr lkkeoptimeringen to gange"
+
+#~ msgid "Delete useless null pointer checks"
+#~ msgstr "Fjern ubrugelige nul-henvisningstjek"
+
+#~ msgid "Reschedule instructions before register allocation"
+#~ msgstr "Omplanlg instruktioner fr registerallokering"
+
+#~ msgid "Reschedule instructions after register allocation"
+#~ msgstr "Omplanlg instruktioner efter registerallokering"
+
+#~ msgid "Enable scheduling across basic blocks"
+#~ msgstr "Aktivr planlgning over basisblokke"
+
+#~ msgid "Allow speculative motion of non-loads"
+#~ msgstr "Tillad spekulativ bevgelse af ikke-indlsninger"
+
+#~ msgid "Allow speculative motion of some loads"
+#~ msgstr "Tillad spekulativ bevgelse af nogle indlsninger"
+
+#~ msgid "Allow speculative motion of more loads"
+#~ msgstr "Tillad spekulativ bevgelse af flere indlsninger"
+
+# RETMIG: rigtig?
+#~ msgid "Replace add,compare,branch with branch on count reg"
+#~ msgstr "Erstat tilfj,sammenlign,forgrening med forgrening p tlleregister"
+
+#~ msgid "Generate position independent code, if possible"
+#~ msgstr "Generr placeringsuafhngig kode, om muligt"
+
+#~ msgid "Enable exception handling"
+#~ msgstr "Aktivr undtagelseshndtering"
+
+#~ msgid "Just generate unwind tables for exception handling"
+#~ msgstr "Generr blot afvindingstabeller for undtagelseshndtering"
+
+#~ msgid "Generate unwind tables exact at each instruction boundary"
+#~ msgstr "Generr afvindingstabeller eksakt for hver instruktionsgrnse"
+
+#~ msgid "Support synchronous non-call exceptions"
+#~ msgstr "Understt synkrone ikke-kaldende undtagelser"
+
+#~ msgid "Insert arc based program profiling code"
+#~ msgstr "Indst buebaseret programprofileringskode"
+
+#~ msgid "Create data files needed by gcov"
+#~ msgstr "Opret datafiler som gcov har brug for"
+
+#~ msgid "Use profiling information for branch probabilities"
+#~ msgstr "Benyt profileringsoplysninger til forgreningssandsynligheder"
+
+#~ msgid "Enable basic program profiling code"
+#~ msgstr "Aktivr basal programprofileringskode"
+
+#~ msgid "Reorder basic blocks to improve code placement"
+#~ msgstr "Omordn basisblokke for at forbedre kodeplacering"
+
+#~ msgid "Reorder functions to improve code placement"
+#~ msgstr "Omordn funktioner for at forbedre kodeplacering"
+
+#~ msgid "Do the register renaming optimization pass"
+#~ msgstr "Foretag registeromdbningsoptimering"
+
+#~ msgid "Do the register copy-propagation optimization pass"
+#~ msgstr "Foretag registerkopipropageringsoptimering"
+
+#~ msgid "Do not put uninitialized globals in the common section"
+#~ msgstr "Anbring ikke uklargjorte globale variabler i den flles sektion"
+
+#~ msgid "Do not generate .size directives"
+#~ msgstr "Generr ikke .size-direktiver"
+
+#~ msgid "place each function into its own section"
+#~ msgstr "placr hver funktion i dens egen sektion"
+
+#~ msgid "place data items into their own section"
+#~ msgstr "placr dataelementer i deres egen sektion"
+
+#~ msgid "Add extra commentary to assembler output"
+#~ msgstr "Tilfj ekstra kommentarer til menneskeligt lsbar maskinkodeuddata"
+
+#~ msgid "Output GNU ld formatted global initializers"
+#~ msgstr "Udskriv GNU ld-formaterede globale startvrdier"
+
+#~ msgid "Enables a register move optimization"
+#~ msgstr "Aktivr en registerflytningsoptimering"
+
+#~ msgid "Do the full regmove optimization pass"
+#~ msgstr "Foretag en komplet registerflytningsoptimering"
+
+#~ msgid "Pack structure members together without holes"
+#~ msgstr "Pak strukturmedlemmer sammen uden mellemrum"
+
+#~ msgid "Insert stack checking code into the program"
+#~ msgstr "Indst stakkontrolleringskode i programmet"
+
+#~ msgid "Specify that arguments may alias each other & globals"
+#~ msgstr "Angiv at parametre kan vre aliaser for hinanden og for globale variable"
+
+#~ msgid "Assume arguments may alias globals but not each other"
+#~ msgstr "Antag at parametre kan vre aliaser for globale variable, men ikke for hinanden"
+
+#~ msgid "Assume arguments do not alias each other or globals"
+#~ msgstr "Antag at parametre ikke er aliaser for hinanden eller for globale variable"
+
+#~ msgid "Assume strict aliasing rules apply"
+#~ msgstr "Antag at strenge aliasregler skal anvendes"
+
+#~ msgid "Align the start of loops"
+#~ msgstr "Justr begyndelsen af lkker"
+
+#~ msgid "Align labels which are only reached by jumping"
+#~ msgstr "Justr etiketter som kun ns ved spring"
+
+#~ msgid "Align all labels"
+#~ msgstr "Justr alle etiketter"
+
+#~ msgid "Align the start of functions"
+#~ msgstr "Justr begyndelsen af funktioner"
+
+#~ msgid "Attempt to merge identical constants across compilation units"
+#~ msgstr "Forsg at forene identiske konstanter over forskellige oversttelsesenheder"
+
+#~ msgid "Attempt to merge identical constants and constant variables"
+#~ msgstr "Forsg at forene identiske konstanter og konstante variabler"
+
+#~ msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+#~ msgstr "Undtryk udskrift af instruktionstal og linjenummernoter i fejlfindingsdump"
+
+#~ msgid "Instrument function entry/exit with profiling calls"
+#~ msgstr "Instrumentr funktionsindgange/-afslutninger med profileringskald"
+
+#~ msgid "Put zero initialized data in the bss section"
+#~ msgstr "Anbring nul-klargjorte data i bss-sektionen"
+
+#~ msgid "Enable SSA optimizations"
+#~ msgstr "Aktivr SSA-optimeringer"
+
+#~ msgid "Enable SSA conditional constant propagation"
+#~ msgstr "Aktivr betinget konstant SSA-propagering"
+
+#~ msgid "Enable aggressive SSA dead code elimination"
+#~ msgstr "Aktivr aggressiv SSA-eliminering af ubrugt kode"
+
+#~ msgid "External symbols have a leading underscore"
+#~ msgstr "Eksterne symboler har indledende understreg"
+
+#~ msgid "Process #ident directives"
+#~ msgstr "Behandl #ident-direktiver"
+
+#~ msgid "Enables an rtl peephole pass run before sched2"
+#~ msgstr "Aktivr en RTL-kikhulsfase fr sched2"
+
+#~ msgid "Assume no NaNs or +-Infs are generated"
+#~ msgstr "Antag at ingen NaN eller +-Inf bliver genereret"
+
+#~ msgid "Enables guessing of branch probabilities"
+#~ msgstr "Aktivr gt af forgreningssandsynligheder"
+
+#~ msgid "Set errno after built-in math functions"
+#~ msgstr "St errno efter indbyggede matematikfunktioner"
+
+#~ msgid "Floating-point operations can trap"
+#~ msgstr "Kommatalsoperationer kan fange"
+
+#~ msgid "Allow math optimizations that may violate IEEE or ANSI standards"
+#~ msgstr "Tillad matematikoptimeringer der kan overtrde IEEE- eller ANSI-standarderne"
+
+#~ msgid "Disable optimizations observable by IEEE signaling NaNs"
+#~ msgstr "Deaktivr optimeringer som kan opdages ved IEEE-signalerende NaN'er"
+
+#~ msgid "Generate code to check bounds before indexing arrays"
+#~ msgstr "Generr kode til at kontrollere grnserne fr tabeller indekseres"
+
+#~ msgid "Convert floating point constant to single precision constant"
+#~ msgstr "Konvertr kommatalskonstanter til enkeltprcisionskonstanter"
+
+#~ msgid "Report time taken by each compiler pass at end of run"
+#~ msgstr "Rapportr den tid det tager for hver oversttelsesfase ved afslutningen af krslen"
+
+#~ msgid "Report on permanent memory allocation at end of run"
+#~ msgstr "Rapportr om permanente hukommelsesallokering ved afslutningen af krslen"
+
+#~ msgid "Trap for signed overflow in addition / subtraction / multiplication"
+#~ msgstr "Opst flde for overlb med fortegn i addition/subtraktion/multiplikation"
+
+#~ msgid "Use graph coloring register allocation."
+#~ msgstr "Allokr registre vha. graffarvning"
+
+#~ msgid "Compile just for ISO C90"
+#~ msgstr "Overst kun til ISO C90"
+
+#~ msgid "Determine language standard"
+#~ msgstr "Bestem sprogstandarden"
+
+#~ msgid "Make bit-fields by unsigned by default"
+#~ msgstr "Lad bitfelter vre uden fortegn som standard"
+
+#~ msgid "Make 'char' be signed by default"
+#~ msgstr "Lad 'char' vre med fortegn som standard"
+
+#~ msgid "Make 'char' be unsigned by default"
+#~ msgstr "Lad 'char' vre uden fortegn som standard"
+
+#~ msgid "Do not recognize the 'asm' keyword"
+#~ msgstr "Genkend ikke det reserverede ord 'asm'"
+
+#~ msgid "Do not recognize any built in functions"
+#~ msgstr "Genkend ikke nogen indbyggede funktioner"
+
+#~ msgid "Assume normal C execution environment"
+#~ msgstr "Antag normalt C-krselsmilj"
+
+#~ msgid "Assume that standard libraries & main might not exist"
+#~ msgstr "Antag at standardbibliotekerne og main mske ikke eksisterer"
+
+#~ msgid "Allow different types as args of ? operator"
+#~ msgstr "Tillad forskellige typer som parametre til ?-operatoren"
+
+#~ msgid "Allow the use of $ inside identifiers"
+#~ msgstr "Tillad brug af $ inden i kaldenavne"
+
+#~ msgid "Use the same size for double as for float"
+#~ msgstr "Benyt den samme strrelse til double som til float"
+
+#~ msgid "Use the smallest fitting integer to hold enums"
+#~ msgstr "Benyt den mindst mulige strrelse heltal til enum-vrdier"
+
+#~ msgid "Override the underlying type for wchar_t to `unsigned short'"
+#~ msgstr "Overskriv den underliggende type af wchar_t til 'unsigned short'"
+
+#~ msgid "Enable most warning messages"
+#~ msgstr "Aktivr de fleste advarselsbeskeder"
+
+#~ msgid "Warn about casting functions to incompatible types"
+#~ msgstr "Advar om omtvingning af funktioner til ikke-kompatible typer"
+
+#~ msgid "Warn about functions which might be candidates for format attributes"
+#~ msgstr "Advar om funktioner som kan vre kandidater til formateringsegenskaber"
+
+#~ msgid "Warn about casts which discard qualifiers"
+#~ msgstr "Advar om typeomtvingninger som forkaster modifikationer"
+
+#~ msgid "Warn about subscripts whose type is 'char'"
+#~ msgstr "Advar som tabelindeksering hvis type er 'char'"
+
+#~ msgid "Warn if nested comments are detected"
+#~ msgstr "Advar hvis indlejrede kommentarer mdes"
+
+#~ msgid "Warn about possibly confusing type conversions"
+#~ msgstr "Advar om typekonverteringer der kan vre forvirrende"
+
+#~ msgid "Do not warn about compile-time integer division by zero"
+#~ msgstr "Advar ikke om heltalsdivision p oversttelsestidspunktet med nul"
+
+#~ msgid "Warn about testing equality of floating point numbers"
+#~ msgstr "Advar om lighedssammenligninger mellem kommatal"
+
+#~ msgid "Warn about printf/scanf/strftime/strfmon format anomalies"
+#~ msgstr "Advar om printf/scanf/strftime/strfmon-formateringsanormaliteter"
+
+#~ msgid "Don't warn about too many arguments to format functions"
+#~ msgstr "Advar ikke om for mange parametre til formateringsfunktioner"
+
+#~ msgid "Warn about non-string-literal format strings"
+#~ msgstr "Advar om formateringsstrenge der ikke er strengkonstanter"
+
+#~ msgid "Warn about possible security problems with format functions"
+#~ msgstr "Advar om mulige sikkerhedsproblemer i forbindelse med formateringsfunktioner"
+
+#~ msgid "Don't warn about strftime formats yielding 2 digit years"
+#~ msgstr "Advar ikke om strftime-formateringer med 2-cifres r"
+
+#~ msgid "Warn about implicit function declarations"
+#~ msgstr "Advar om underforstede funktionserklringer"
+
+#~ msgid "Warn when a declaration does not specify a type"
+#~ msgstr "Advar nr en erklring ikke angiver en type"
+
+#~ msgid "Warn about the use of the #import directive"
+#~ msgstr "Advar om brug af #import-direktivet"
+
+#~ msgid "Do not warn about using 'long long' when -pedantic"
+#~ msgstr "Advar ikke om brug af 'long long' nr -pedantic benyttes"
+
+#~ msgid "Warn about suspicious declarations of main"
+#~ msgstr "Advar om mistnkelige erklringer af main"
+
+#~ msgid "Warn about possibly missing braces around initializers"
+#~ msgstr "Advar om mulige manglende krllede paranteser omkring startvrdier"
+
+#~ msgid "Warn about global funcs without previous declarations"
+#~ msgstr "Advar om globale funktioner uden tidligere erklringer"
+
+#~ msgid "Warn about global funcs without prototypes"
+#~ msgstr "Advar om globale funktioner uden prototyper"
+
+#~ msgid "Warn about use of multicharacter literals"
+#~ msgstr "Advar om brug af multitegnskonstanter"
+
+#~ msgid "Warn about externs not at file scope level"
+#~ msgstr "Advar om extern-erklringer som ikke er ved filvirkefeltsniveauet"
+
+#~ msgid "Warn about possible missing parentheses"
+#~ msgstr "Advar om mulige manglende paranteser"
+
+#~ msgid "Warn about function pointer arithmetic"
+#~ msgstr "Advar om beregninger p funktionshenvisninger"
+
+#~ msgid "Warn about multiple declarations of the same object"
+#~ msgstr "Advar om flere erklring af det samme objekt"
+
+#~ msgid "Warn whenever a function's return-type defaults to int"
+#~ msgstr "Advar nr en funktions returtype antages at vre int"
+
+#~ msgid "Warn about possible violations of sequence point rules"
+#~ msgstr "Advar om mulige brud p sekvenspunktreglerne"
+
+#~ msgid "Warn about signed/unsigned comparisons"
+#~ msgstr "Advar om sammenligninger mellem typer med og uden fortegn"
+
+#~ msgid "Warn about non-prototyped function decls"
+#~ msgstr "Advar om funktionserklringer uden prototype"
+
+#~ msgid "Warn about constructs whose meanings change in ISO C"
+#~ msgstr "Advar om konstruktioner hvis betydning er ndret i ISO C"
+
+#~ msgid "Warn when trigraphs are encountered"
+#~ msgstr "Advar nr trigrafer mdes"
+
+#~ msgid "Warn about unrecognized pragmas"
+#~ msgstr "Advar om ukendte pragmaer"
+
+#~ msgid "Mark strings as 'const char *'"
+#~ msgstr "Markr strenge som 'const char *'"
+
+#~ msgid "Warn when a function is unused"
+#~ msgstr "Advar nr en funktion ikke benyttes"
+
+#~ msgid "Warn when a label is unused"
+#~ msgstr "Advar nr en etiket ikke benyttes"
+
+#~ msgid "Warn when a function parameter is unused"
+#~ msgstr "Advar nr en funktionsparameter ikke benyttes"
+
+#~ msgid "Warn when a variable is unused"
+#~ msgstr "Advar nr en variabel ikke benyttes"
+
+#~ msgid "Warn when an expression value is unused"
+#~ msgstr "Advar nr vrdien af et udtryk ikke benyttes"
+
+#~ msgid "Do not suppress warnings from system headers"
+#~ msgstr "Undertryk ikke advarsler fra systeminkluderingsfiler"
+
+#~ msgid "Treat all warnings as errors"
+#~ msgstr "Behandl alle advarsler som fejl"
+
+#~ msgid "Warn when one local variable shadows another"
+#~ msgstr "Advar nr en lokal variabel skygger for en anden"
+
+#~ msgid "Warn about enumerated switches, with no default, missing a case"
+#~ msgstr "Advar om switch-stninger over enum-typer som mangler et tilflde og ikke har default"
+
+#~ msgid "Warn about enumerated switches missing a default case"
+#~ msgstr "Advar om switch-stninger over enum-typer som mangler default"
+
+#~ msgid "Warn about all enumerated switches missing a specific case"
+#~ msgstr "Advar om alle switch-stninger over enum-typer som mangler et bestemt tilflde"
+
+#~ msgid "Warn about returning structures, unions or arrays"
+#~ msgstr "Advar om returnering af struct, union og tabeller"
+
+#~ msgid "Warn about pointer casts which increase alignment"
+#~ msgstr "Advar om typeomtvingning af henvisninger som forger justeringen"
+
+#~ msgid "Warn about code that will never be executed"
+#~ msgstr "Advar om kode som aldrig bliver udfrt"
+
+#~ msgid "Warn about uninitialized automatic variables"
+#~ msgstr "Advar om ikke-klargjorte automatiske variabler"
+
+#~ msgid "Warn when an inlined function cannot be inlined"
+#~ msgstr "Advar nr en inline funktion ikke kan indbygges"
+
+#~ msgid "Warn when the packed attribute has no effect on struct layout"
+#~ msgstr "Advar nr packed-egenskaben ikke har nogen effekt p struct-layoutet"
+
+#~ msgid "Warn when padding is required to align struct members"
+#~ msgstr "Advar nr udfyldning er pkrvet for at justere struct-medlemmer"
+
+#~ msgid "Warn when an optimization pass is disabled"
+#~ msgstr "Advar nr en optimeringsfase deaktiveres"
+
+#~ msgid "Warn about uses of __attribute__((deprecated)) declarations"
+#~ msgstr "Advar om brug af __attribute__((deprecated))-erklringer"
+
+#~ msgid "Warn about functions which might be candidates for attribute noreturn"
+#~ msgstr "Advar om funktioner som kan vre kandidater til egenskaben noreturn"
+
+#~ msgid "Warn about code which might break the strict aliasing rules"
+#~ msgstr "Advar om kode som kan bryde strenge aliasregler"
+
+#~ msgid "invalid option `%s'"
+#~ msgstr "ugyldigt tilvalg '%s'"
+
+#~ msgid "`%s' declared `static' but never defined"
+#~ msgstr "'%s' erklret 'static', men aldrig defineret"
+
+#~ msgid "`%s' defined but not used"
+#~ msgstr "'%s' defineret, men aldrig brugt"
+
+#~ msgid "invalid register name `%s' for register variable"
+#~ msgstr "ugyldigt registernavn '%s' for registervariabel"
+
+#~ msgid " -ffixed-<register> Mark <register> as being unavailable to the compiler\n"
+#~ msgstr " -ffixed-<register> Markr <register> som vrende utilgngeligt for overstteren\n"
+
+#~ msgid " -fcall-used-<register> Mark <register> as being corrupted by function calls\n"
+#~ msgstr " -fcall-used-<register> Markr <register> som vrende benyttet af funktionskald\n"
+
+#~ msgid " -fcall-saved-<register> Mark <register> as being preserved across functions\n"
+#~ msgstr " -fcall-saved-<register> Markr <register> som vrende bevaret over funktioner\n"
+
+#~ msgid " -finline-limit=<number> Limits the size of inlined functions to <number>\n"
+#~ msgstr " -finline-limit=<str> Begrns strrelsen af inlie funktion til <str>\n"
+
+#~ msgid " -fmessage-length=<number> Limits diagnostics messages lengths to <number> characters per line. 0 suppresses line-wrapping\n"
+#~ msgstr " -fmessage-length=<antal> Begrns lngden af diagnosticeringmeddelelser til lngden <antal> tegn/linje. 0 undertrykker linjeombrydning\n"
+
+#~ msgid " -fdiagnostics-show-location=[once | every-line] Indicates how often source location information should be emitted, as prefix, at the beginning of diagnostics when line-wrapping\n"
+#~ msgstr " -fdiagnostics-show-location=[once | every-line] Indikerer hvor ofte kildeplaceringsoplysninger skal udsendes som prfiks til begyndelsen af meddelelserne ved linjeombrydning\n"
+
+#~ msgid " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indicates the default thread-local storage code generation model\n"
+#~ msgstr " -ftls-model=[global-dynamic | local-dynamic | initial-exec | local-exec] Indikerer den forvalgte trd-lokale lagringsmodel for kodegenerering\n"
+
+#~ msgid " -O[number] Set optimization level to [number]\n"
+#~ msgstr " -O[tal] St optimeringsniveauet til [tal]\n"
+
+#~ msgid " -Os Optimize for space rather than speed\n"
+#~ msgstr " -Os Optimr mht. plads i stedet for hastighed\n"
+
+#~ msgid " -pedantic Issue warnings needed by strict compliance to ISO C\n"
+#~ msgstr " -pedantic Udsend advarsler som er ndvendige for streng overholdelse af ISO C\n"
+
+#~ msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+#~ msgstr " -pedantic-errors Som -pedantic bortset fra at problemer bliver til fejl\n"
+
+#~ msgid " -w Suppress warnings\n"
+#~ msgstr " -w Undertryk advarsler\n"
+
+#~ msgid " -W Enable extra warnings\n"
+#~ msgstr " -W Aktivr ekstra advarsler\n"
+
+#~ msgid " -Wunused Enable unused warnings\n"
+#~ msgstr " -Wunused Aktivr ubrugthedsadvarsler\n"
+
+#~ msgid " -Wlarger-than-<number> Warn if an object is larger than <number> bytes\n"
+#~ msgstr " -Wlarger-than-<tal> Advar hvis et objekt er strre end <tal> byte\n"
+
+#~ msgid " -p Enable function profiling\n"
+#~ msgstr " -p Aktivr funktionsprofilering\n"
+
+#~ msgid " -o <file> Place output into <file> \n"
+#~ msgstr " -o <fil> Anbring uddata i <fil>\n"
+
+#~ msgid ""
+#~ " -G <number> Put global and static data smaller than <number>\n"
+#~ " bytes into a special section (on some targets)\n"
+#~ msgstr " -G <str> Anbring globale og statiske data mindre end <tal> byte i en specialsektion (p nogle mlarkitekturer)\n"
+
+#~ msgid " -aux-info <file> Emit declaration info into <file>\n"
+#~ msgstr " -aux-info <fil> Udskriv erklringsoplysninger til <fil>\n"
+
+#~ msgid " -quiet Do not display functions compiled or elapsed time\n"
+#~ msgstr " -quiet Vis ikke funktioner der oversttes eller forlbet tid\n"
+
+#~ msgid " -version Display the compiler's version\n"
+#~ msgstr " -version Udskriv overstterens version\n"
+
+#~ msgid " -d[letters] Enable dumps from specific passes of the compiler\n"
+#~ msgstr " -d[bogstaver] Aktivr dump fra specifikke faser i overstteren\n"
+
+#~ msgid " -dumpbase <file> Base name to be used for dumps from specific passes\n"
+#~ msgstr " -dumpbase <fil> Basisnavn til brug for dump fra specifikke faser\n"
+
+#~ msgid " -fsched-verbose=<number> Set the verbosity level of the scheduler\n"
+#~ msgstr " -fsched-verbose=<tal> Angiv hvor meget planlggeren skal fortlle\n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help Vis disse oplysninger\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Language specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Sprogspecifikke tilvalg:\n"
+
+#~ msgid " %-23.23s [undocumented]\n"
+#~ msgstr " %-23.23s [ikke dokumenteret]\n"
+
+# %s er et sprog
+#~ msgid ""
+#~ "\n"
+#~ "There are undocumented %s specific options as well.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Der er ogs ikke-dokumenterede specifikke tilvalg til %s.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ " Options for %s:\n"
+#~ msgstr ""
+#~ "\n"
+#~ " Tilvalg til %s:\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Target specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Mlspecifikke tilvalg:\n"
+
+#~ msgid " -m%-23.23s [undocumented]\n"
+#~ msgstr " -m%-23.23s [ikke dokumenteret]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "There are undocumented target specific options as well.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Der er ogs ikke-dokumenterede mlspecifikke tilvalg.\n"
+
+#~ msgid " They exist, but they are not documented.\n"
+#~ msgstr " De eksisterer, men er ikke dokumenteret.\n"
+
+#~ msgid "unrecognized gcc debugging option: %c"
+#~ msgstr "ukendt GCC-fejlfindingstilvalg: %c"
+
+#~ msgid "`%s': unknown tls-model option"
+#~ msgstr "'%s': ukendt tls-model-tilvalg"
+
+#~ msgid "unrecognized register name `%s'"
+#~ msgstr "ukendt registernavn '%s'"
+
+#~ msgid "unrecognized option `%s'"
+#~ msgstr "ukendt tilvalg '%s'"
+
+#~ msgid "-Wid-clash-LEN is no longer supported"
+#~ msgstr "-Wid-clash-LEN understttes ikke lngere"
+
+#~ msgid "use -gdwarf -g%d for DWARF v1, level %d"
+#~ msgstr "benyt - gdwarf -g%d til DWARF v1, niveau %d"
+
+#~ msgid "use -gdwarf-2 for DWARF v2"
+#~ msgstr "benyt -gdwarf-2 til DWARF v2"
+
+#~ msgid "ignoring option `%s' due to invalid debug level specification"
+#~ msgstr "ignorerer tilvalget '%s' p grund af ugyldig specifikation af fejlfindingsniveau"
+
+#~ msgid "`%s': unknown or unsupported -g option"
+#~ msgstr "'%s': ukendt eller ikke-understttet '-g'-tilvalg"
+
+#~ msgid "`%s' ignored, conflicts with `-g%s'"
+#~ msgstr "'%s' ignoreret, er i konflikt med '-g%s'"
+
+#~ msgid "-param option missing argument"
+#~ msgstr "'-param'-tilvalg mangler parameter"
+
+#~ msgid "invalid --param option: %s"
+#~ msgstr "ugyldigt '--param'-tilvalg: %s"
+
+#~ msgid "invalid parameter value `%s'"
+#~ msgstr "ugyldig parametervrdi '%s'"
+
+#~ msgid ""
+#~ "%s%s%s version %s (%s)\n"
+#~ "%s\tcompiled by GNU C version %s.\n"
+#~ "%s%s%s version %s (%s) compiled by CC.\n"
+#~ msgstr ""
+#~ "%s%s%s version %s (%s)\n"
+#~ "%s\toversat af GNU C version %s.\n"
+#~ "%s%s%s version %s (%s) oversat af CC.\n"
+
+#~ msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+#~ msgstr "%s%sGGC-heuristikker: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#~ msgid "options passed: "
+#~ msgstr "tilvalg overbragt: "
+
+#~ msgid "options enabled: "
+#~ msgstr "tilvalg slet til: "
+
+#~ msgid "can't open %s for writing"
+#~ msgstr "kan ikke bne '%s' til skrivning"
+
+#~ msgid "ignoring command line option '%s'"
+#~ msgstr "ignorerer kommandolinjetilvalget '%s'"
+
+#~ msgid "(it is valid for %s but not the selected language)"
+#~ msgstr "(det er gyldigt for %s, men ikke for det valgte sprog)"
+
+#~ msgid "-Wuninitialized is not supported without -O"
+#~ msgstr "-Wuninitialized understttes ikke uden -O"
+
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr "instruktionsplanlgning understttes ikke p mlarkitekturen"
+
+#~ msgid "this target machine does not have delayed branches"
+#~ msgstr "mlarkitekturen har ikke forsinkede forgreninger"
+
+#~ msgid "-f%sleading-underscore not supported on this target machine"
+#~ msgstr "-f%sleading-underscore understttes ikke p mlarkitekturen"
+
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr "-ffunction-sections understttes ikke p mlarkitekturen"
+
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr "-fdata-sections understttes ikke p mlarkitekturen"
+
+#~ msgid "-ffunction-sections disabled; it makes profiling impossible"
+#~ msgstr "-ffunction-sections deaktiveret; dette gr profilering umulig"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr "-fprefetch-loop-arrays understttes ikke p mlarkitekturen"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+#~ msgstr "-fprefetch-loop-arrays understttes ikke p mlarkitekturen (prv '-march'-tilvalgene)"
+
+#~ msgid "-fprefetch-loop-arrays is not supported with -Os"
+#~ msgstr "-fprefetch-loop-arrays understttes ikke med -Os"
+
+#~ msgid "-ffunction-sections may affect debugging on some targets"
+#~ msgstr "-ffunction-sections kan have indflydelse p fejlfinding p nogle mlarkitekturer"
+
+#~ msgid "error writing to %s"
+#~ msgstr "fejl ved skrivning til %s"
+
+#~ msgid "error closing %s"
+#~ msgstr "fejl ved lukning af %s"
+
+#~ msgid "could not open dump file `%s'"
+#~ msgstr "kunne ikke bne dumpningsfilen '%s'"
+
+#~ msgid "ignoring unknown option `%.*s' in `-f%s'"
+#~ msgstr "ignorerer ukendt tilvalg '%.*s' i '-f%s'"
+
+#~ msgid "arrays of functions are not meaningful"
+#~ msgstr "en tabel af funktioner giver ikke mening"
+
+#~ msgid "function return type cannot be function"
+#~ msgstr "en funktions returtype kan ikke vre en funktion"
+
+#~ msgid "invalid initializer for bit string"
+#~ msgstr "ugyldig startvrdi til bitstreng"
+
+#~ msgid "tree check: expected %s, have %s in %s, at %s:%d"
+#~ msgstr "tr-kontrol: forventede %s, har %s i %s, ved %s:%d"
+
+#~ msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+#~ msgstr "tr-kontrol: forventede klasse '%c', har '%c' (%s) i %s, ved %s:%d"
+
+#~ msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+#~ msgstr "RTL-kontrol: tilgik udtrykstr %d af tree_vec med %d udtrykstrer i %s, ved %s:%d"
+
+#~ msgid "%s causes a section type conflict"
+#~ msgstr "%s forrsager en sektionstypekonflikt"
+
+#~ msgid "register name not specified for `%s'"
+#~ msgstr "registernavn ikke angivet for '%s'"
+
+#~ msgid "invalid register name for `%s'"
+#~ msgstr "ugyldigt registernavn for '%s'"
+
+#~ msgid "data type of `%s' isn't suitable for a register"
+#~ msgstr "datatypen for '%s' passer ikke med et register"
+
+#~ msgid "register specified for `%s' isn't suitable for data type"
+#~ msgstr "registeret som er angivet for '%s' passer ikke med datatypen"
+
+#~ msgid "global register variable has initial value"
+#~ msgstr "global registervariabel har en startvrdi"
+
+#~ msgid "volatile register variables don't work as you might wish"
+#~ msgstr "registervariable erklret volatile virker ikke som du mske nsker"
+
+#~ msgid "register name given for non-register variable `%s'"
+#~ msgstr "registernavn givet for ikke-registervariablen '%s'"
+
+#~ msgid "alignment of `%s' is greater than maximum object file alignment. Using %d"
+#~ msgstr "justering af '%s' er strre end den maksimale objektfilsjustering - bruger %d"
+
+#~ msgid "thread-local COMMON data not implemented"
+#~ msgstr "trd-lokal COMMON-data er ikke implementeret"
+
+#~ msgid "requested alignment for %s is greater than implemented alignment of %d"
+#~ msgstr "forespurgt justering for %s er strre end den implementerede justering af %d"
+
+#~ msgid "initializer for integer value is too complicated"
+#~ msgstr "startvrdien for heltallet er for kompliceret"
+
+#~ msgid "initializer for floating value is not a floating constant"
+#~ msgstr "startvrdien for kommatal er ikke en kommatalskonstant"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "ukendt mngdekonstruktionstype"
+
+#~ msgid "invalid initial value for member `%s'"
+#~ msgstr "ugyldig startvrdi for medlemmet '%s'"
+
+#~ msgid "weak declaration of `%s' must precede definition"
+#~ msgstr "svag erklring af '%s' skal komme fr definitionen"
+
+#~ msgid "weak declaration of `%s' after first use results in unspecified behavior"
+#~ msgstr "svag erklring af '%s' efter frste brug resulterer i ikke-defineret opfrsel"
+
+#~ msgid "weak declaration of `%s' must be public"
+#~ msgstr "svag erklring af '%s' skal vre public"
+
+#~ msgid "weak declaration of `%s' not supported"
+#~ msgstr "svag erklring af '%s' ikke understttet"
+
+#~ msgid "only weak aliases are supported in this configuration"
+#~ msgstr "kun svage aliaser understttes i denne konfiguration"
+
+#~ msgid "alias definitions not supported in this configuration; ignored"
+#~ msgstr "aliasdefinitioner er ikke understttet i denne konfiguration; ignoreret"
+
+#~ msgid "visibility attribute not supported in this configuration; ignored"
+#~ msgstr "synlighedsegenskab er ikke understttet i denne konfiguration; ignoreret"
+
+#~ msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+#~ msgstr "virtuel tabel %s[%lu]: element %lu ude over grnserne i %s, ved %s:%d"
+
+#~ msgid "no sclass for %s stab (0x%x)\n"
+#~ msgstr "ingen sclass for %s stab (0x%x)\n"
+
+#~ msgid "#`%s' not supported by %s#"
+#~ msgstr "#'%s' ikke understttet af %s#"
+
+#~ msgid "The maximum number of instructions in a single function eligible for inlining"
+#~ msgstr "Det maksimale antal instruktioner i en enkelt funktion der m indbygges"
+
+#~ msgid "The maximum number of instructions when automatically inlining"
+#~ msgstr "Det maksimale antal instruktioner ved automatisk indbygning"
+
+#~ msgid "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining"
+#~ msgstr "Det maksimale antal instruktioner ved gentagen indbygning fr GCC dmper indbygningen"
+
+#~ msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+#~ msgstr "Hldningen af den linere funktion der dmper indbygning efter at den rekursive indbygningsgrnse er net, er givet ved den negative, reciprokke vrdi af denne parameter"
+
+#~ msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+#~ msgstr "Antallet af instruktioner i en enkelt funktion der stadig indbygges efter megen rekursiv indbygning"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Det maksimale antal instruktioner til RTL-indbyggeren"
+
+#~ msgid "The maximum number of instructions to consider to fill a delay slot"
+#~ msgstr "Det maksimale antal instruktioner det overvejes at udfylde ventepladser med"
+
+#~ msgid "The maximum number of instructions to consider to find accurate live register information"
+#~ msgstr "Det maksimale antal instruktioner der overvejes under sgning efter prcis registerinfo"
+
+#~ msgid "The maximum length of scheduling's pending operations list"
+#~ msgstr "Den maksimale lngde af planlggerens liste over ventende operationer"
+
+#~ msgid "The maximum amount of memory to be allocated by GCSE"
+#~ msgstr "Den maksimale mngde hukommelse som skal allokeres af GCSE"
+
+#~ msgid "The maximum number of passes to make when doing GCSE"
+#~ msgstr "Det maksimale antal faser der skal gennemgs ved udfrsel af GCSE"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop"
+#~ msgstr "Det maksimale antal instruktioner der overvejes at udrulle i en lkke"
+
+#~ msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+#~ msgstr "Vlg den andel af det maksimale antal gentagelser af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\""
+
+#~ msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+#~ msgstr "Vlg den andel af den maksimale frekvens af udfrsler af basisblokke i et program en given basisblok skal have for at blive betragtet som \"varm\""
+
+#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+#~ msgstr "Den procendel af funktioner vgtet efter udfrselsfrekvens som skal dkkes af sporingsformering; benyttes nr profileringsfeedback er tilgngeligt"
+
+#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+#~ msgstr "Den procendel af funktioner vgtet efter udfrselsfrekvens som skal dkkes af sporingsformering; benyttes nr profileringsfeedback ikke er tilgngeligt"
+
+#~ msgid "Maximal code growth caused by tail duplication (in percents)"
+#~ msgstr "Maksimal kodevkst forrsaget af haleduplikering (i procent)"
+
+#~ msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percents)"
+#~ msgstr "Stop omvendt vkst hvis den omvendte sandsynlighed for den bedste kant er mindre end denne trskel (i procent)"
+
+#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is available"
+#~ msgstr "Stop fremadrettet vkst hvis sandsynligheden for den bedste kant er mindre end denne trskel (i procent); benyttes nr profileringsfeedback er tilgngeligt"
+
+#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percents). Used when profile feedback is not available"
+#~ msgstr "Stop fremadrettet vkst hvis sandsynligheden for den bedste kant er mindre end denne trskel (i procent); benyttes nr profileringsfeedback ikke er tilgngeligt"
+
+#~ msgid "The maximum number of incoming edges to consider for crossjumping"
+#~ msgstr "Det maksimale antal indadgende kanter der overvejes til krydsspring"
+
+#~ msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap."
+#~ msgstr "Minimal heap-udvidelse for at udlse garbage collection, som en procentdel af den totale heap"
+
+#~ msgid "Minimum heap size before we start collecting garbage, in kilobytes."
+#~ msgstr "Minimal heap-strrelse fr garbage collection startes, i kilobyte."
+
+#~ msgid "too many #pragma options align=reset"
+#~ msgstr "for mange '#pragma options align=reset'"
+
+#~ msgid "malformed '#pragma options', ignoring"
+#~ msgstr "forkert udformet '#pragma options', ignorerer"
+
+#~ msgid "junk at end of '#pragma options'"
+#~ msgstr "ragelse i slutningen af '#pragma options'"
+
+#~ msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+#~ msgstr "forkert udformet '#pragma options align={mac68k|power|reset}', ignorerer"
+
+#~ msgid "missing '(' after '#pragma unused', ignoring"
+#~ msgstr "manglende '(' efter '#pragma unused', ignorerer"
+
+#~ msgid "missing ')' after '#pragma unused', ignoring"
+#~ msgstr "manglende ')' efter '#pragma unused', ignorerer"
+
+#~ msgid "junk at end of '#pragma unused'"
+#~ msgstr "ragelse i slutningen af '#pragma unused'"
+
+#~ msgid "-msystem-v and -p are incompatible"
+#~ msgstr "-msystem-v og -p er indbyrdes uforenelige"
+
+#~ msgid "-msystem-v and -mthreads are incompatible"
+#~ msgstr "-msystem-v og -mthreads er indbyrdes uforenelige"
+
+#~ msgid "-f%s ignored for Unicos/Mk (not supported)"
+#~ msgstr "-f%s ignoreret for Unicos/Mk (ikke understttet)"
+
+#~ msgid "-mieee not supported on Unicos/Mk"
+#~ msgstr "-mieee understttes ikke p Unicos/Mk"
+
+#~ msgid "-mieee-with-inexact not supported on Unicos/Mk"
+#~ msgstr "-mieee-with-inexact understttes ikke p Unicos/Mk"
+
+#~ msgid "bad value `%s' for -mtrap-precision switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mtrap-precision"
+
+#~ msgid "bad value `%s' for -mfp-rounding-mode switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mfp-rounding-mode"
+
+#~ msgid "bad value `%s' for -mfp-trap-mode switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mfp-trap-mode"
+
+#~ msgid "bad value `%s' for -mtls-size switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mtls-size"
+
+#~ msgid "bad value `%s' for -mcpu switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mcpu"
+
+#~ msgid "trap mode not supported on Unicos/Mk"
+#~ msgstr "fldetilstand understttes ikke p Unicos/Mk"
+
+#~ msgid "fp software completion requires -mtrap-precision=i"
+#~ msgstr "kommatalssoftwarefuldfrelse krver -mtrap-precision=i"
+
+#~ msgid "rounding mode not supported for VAX floats"
+#~ msgstr "afrundingstilstand er ikke understttet for VAX-kommatal"
+
+#~ msgid "trap mode not supported for VAX floats"
+#~ msgstr "fldetilstand er ikke understttet for VAX-kommatal"
+
+#~ msgid "L%d cache latency unknown for %s"
+#~ msgstr "L%d-mellemlagersventetid ukendt for %s"
+
+#~ msgid "bad value `%s' for -mmemory-latency"
+#~ msgstr "ugyldig vrdi '%s' for -mmemory-latency"
+
+#~ msgid "invalid %%H value"
+#~ msgstr "ugyldig %%H-vrdi"
+
+#~ msgid "invalid %%J value"
+#~ msgstr "ugyldig %%J-vrdi"
+
+#~ msgid "invalid %%r value"
+#~ msgstr "ugyldig %%r-vrdi"
+
+#~ msgid "invalid %%R value"
+#~ msgstr "ugyldig %%R-vrdi"
+
+#~ msgid "invalid %%N value"
+#~ msgstr "ugyldig %%N-vrdi"
+
+#~ msgid "invalid %%P value"
+#~ msgstr "ugyldig %%P-vrdi"
+
+#~ msgid "invalid %%h value"
+#~ msgstr "ugyldig %%h-vrdi"
+
+#~ msgid "invalid %%L value"
+#~ msgstr "ugyldig %%L-vrdi"
+
+#~ msgid "invalid %%m value"
+#~ msgstr "ugyldig %%m-vrdi"
+
+#~ msgid "invalid %%M value"
+#~ msgstr "ugyldig %%M-vrdi"
+
+#~ msgid "invalid %%U value"
+#~ msgstr "ugyldig %%U-vrdi"
+
+#~ msgid "invalid %%s value"
+#~ msgstr "ugyldig %%s-vrdi"
+
+#~ msgid "invalid %%C value"
+#~ msgstr "ugyldig %%C-vrdi"
+
+#~ msgid "invalid %%E value"
+#~ msgstr "ugyldig %%E-vrdi"
+
+#~ msgid "unknown relocation unspec"
+#~ msgstr "ukendt relokaliserings-unspec"
+
+#~ msgid "invalid %%xn code"
+#~ msgstr "ugyldig %%xn-kode"
+
+#~ msgid "bad builtin fcode"
+#~ msgstr "ugyldig indbygget fcode"
+
+#~ msgid "Use hardware fp"
+#~ msgstr "Brug hardwarekommatal"
+
+#~ msgid "Do not use hardware fp"
+#~ msgstr "Brug ikke hardwarekommatal"
+
+#~ msgid "Use fp registers"
+#~ msgstr "Brug kommatalsregistre"
+
+#~ msgid "Do not use fp registers"
+#~ msgstr "Brug ikke kommatalsregistre"
+
+#~ msgid "Do not assume GAS"
+#~ msgstr "Antag ikke GAS"
+
+#~ msgid "Assume GAS"
+#~ msgstr "Antag GAS"
+
+#~ msgid "Request IEEE-conformant math library routines (OSF/1)"
+#~ msgstr "Pkrv at matematiksbibliotekrutiner opfylder IEEE-standarden (OSF/1)"
+
+#~ msgid "Emit IEEE-conformant code, without inexact exceptions"
+#~ msgstr "Udsend kode der opfylder IEEE-standarden, uden ineksakte undtagelser"
+
+#~ msgid "Emit IEEE-conformant code, with inexact exceptions"
+#~ msgstr "Udsend kode der opfylder IEEE-standarden, med ineksakte undtagelser"
+
+#~ msgid "Do not emit complex integer constants to read-only memory"
+#~ msgstr "Udsend ikke komplekse heltalskonstanter til skrivebeskyttet hukommelse"
+
+#~ msgid "Use VAX fp"
+#~ msgstr "Benyt VAX-kommatal"
+
+#~ msgid "Do not use VAX fp"
+#~ msgstr "Benyt ikke VAX-kommatal"
+
+#~ msgid "Emit code for the byte/word ISA extension"
+#~ msgstr "Udsend kode for byte/word-ISA-udvidelsen"
+
+#~ msgid "Emit code for the motion video ISA extension"
+#~ msgstr "Udsend kode for video-ISA-udvidelsen"
+
+#~ msgid "Emit code for the fp move and sqrt ISA extension"
+#~ msgstr "Udsend kode for kommatalsflytning og kvadratrod-ISA-udvidelsen"
+
+#~ msgid "Emit code for the counting ISA extension"
+#~ msgstr "Udsend kode for tller-ISA-udvidelsen"
+
+#~ msgid "Emit code using explicit relocation directives"
+#~ msgstr "Udsend kode der bruger eksplicitte relokaliseringsdirektiver"
+
+#~ msgid "Emit 16-bit relocations to the small data areas"
+#~ msgstr "Udsend 16-bit relokalisering til det lille dataomrde"
+
+#~ msgid "Emit 32-bit relocations to the small data areas"
+#~ msgstr "Udsend 32-bit relokalisering til det lille dataomrde"
+
+#~ msgid "Emit rdval instead of rduniq for thread pointer"
+#~ msgstr "Udsend rdval i stedet for rduniq for trdhenvisning"
+
+#~ msgid "Use features of and schedule given CPU"
+#~ msgstr "Brug faciliteter fra og planlg mht. den givne processor"
+
+#~ msgid "Schedule given CPU"
+#~ msgstr "Planlg til en given processor"
+
+#~ msgid "Control the generated fp rounding mode"
+#~ msgstr "Kontrollr den genererede kommatalsafrundingstilstand"
+
+#~ msgid "Control the IEEE trap mode"
+#~ msgstr "Kontrollr IEEE-fldetilstanden"
+
+#~ msgid "Control the precision given to fp exceptions"
+#~ msgstr "Kontrollr den prcision der gives til kommatalsundtagelser"
+
+#~ msgid "Specify bit size of immediate TLS offsets"
+#~ msgstr "Angiv bitstrrelse for umiddelbar TLS-afst"
+
+#~ msgid "bad value (%s) for -mcpu switch"
+#~ msgstr "ugyldig vrdi '%s' til tilvalget -mcpu"
+
+#~ msgid "argument of `%s' attribute is not a string constant"
+#~ msgstr "parameteren til egenskaben '%s er ikke en strengkonstant"
+
+#~ msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+#~ msgstr "parameteren til egenskaben '%s er ikke \"ilink1\" eller \"ilink2\""
+
+#~ msgid "invalid operand to %%R code"
+#~ msgstr "ugyldig operand til %%R-koden"
+
+#~ msgid "invalid operand to %%H/%%L code"
+#~ msgstr "ugyldig operand til %%H/%%L-koden"
+
+#~ msgid "invalid operand to %%U code"
+#~ msgstr "ugyldig operand til %%U-koden"
+
+#~ msgid "invalid operand to %%V code"
+#~ msgstr "ugyldig operand til %%V-koden"
+
+#~ msgid "invalid operand output code"
+#~ msgstr "ugyldig operand-uddatakode"
+
+#~ msgid "switch -mcpu=%s conflicts with -march= switch"
+#~ msgstr "tilvalget -mcpu=%s er i konflikt med tilvalget -march="
+
+#~ msgid "bad value (%s) for %s switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget %s"
+
+#~ msgid "target CPU does not support APCS-32"
+#~ msgstr "mlprocessoren understtter ikke APCS-32"
+
+#~ msgid "target CPU does not support APCS-26"
+#~ msgstr "mlprocessoren understtter ikke APCS-26"
+
+#~ msgid "target CPU does not support interworking"
+#~ msgstr "mlprocessoren understtter ikke interarbejde"
+
+#~ msgid "target CPU does not support THUMB instructions"
+#~ msgstr "mlprocessoren understtter ikke THUMB-instruktioner"
+
+#~ msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af tilbagesporingsunderstttelse giver kun mening ved oversttelse for en Thumb"
+
+#~ msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af interarbejdeunderstttelse for kaldte objekter giver kun mening ved oversttelse for en Thumb"
+
+#~ msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "aktivering af interarbejdeunderstttelse for kaldere giver kun mening ved oversttelse for en Thumb"
+
+#~ msgid "interworking forces APCS-32 to be used"
+#~ msgstr "interarbejde tvinger APCS-32 til at blive brugt"
+
+#~ msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+#~ msgstr "-mapcs-stack-check og -mno-apcs-frame er indbyrdes uforenelige"
+
+#~ msgid "-fpic and -mapcs-reent are incompatible"
+#~ msgstr "-fpic og -mapcs-reent er indbyrdes uforenelige"
+
+#~ msgid "APCS reentrant code not supported. Ignored"
+#~ msgstr "APCS-genindtrdelig kode er ikke understttet - ignoreret"
+
+#~ msgid "-g with -mno-apcs-frame may not give sensible debugging"
+#~ msgstr "-g med -mno-apcs-frame giver mske ikke fornuftig fejlanalysering"
+
+#~ msgid "passing floating point arguments in fp regs not yet supported"
+#~ msgstr "overbringelse af kommatalsparametre i kommatalsregistre er ikke understttet endnu"
+
+#~ msgid "invalid floating point emulation option: -mfpe-%s"
+#~ msgstr "ugyldigt tilvalg til kommatalsemulering: -mfpe-%s"
+
+#~ msgid "structure size boundary can only be set to 8 or 32"
+#~ msgstr "strukturstrrelsesgrnse kan kun sttes til 8 eller 32"
+
+#~ msgid "-mpic-register= is useless without -fpic"
+#~ msgstr "-mpic-register= er ubrugelig uden -fpic"
+
+#~ msgid "unable to use '%s' for PIC register"
+#~ msgstr "kan ikke bruge '%s' til PIC-register"
+
+#~ msgid "`%s' attribute only applies to functions"
+#~ msgstr "egenskaben '%s' kan kun anvendes sammen med funktioner"
+
+#~ msgid "unable to compute real location of stacked parameter"
+#~ msgstr "kan ikke beregne virkelig placering af stakkede parametre"
+
+#~ msgid "no low registers available for popping high registers"
+#~ msgstr "ingen lave registre er tilgngelige til at modtage vrdier fra hje registre"
+
+#~ msgid "interrupt Service Routines cannot be coded in Thumb mode"
+#~ msgstr "afbrydelsesservicerutiner kan ikke kodes i Thumb-tilstand"
+
+#~ msgid "initialized variable `%s' is marked dllimport"
+#~ msgstr "variablen '%s' med startvrdi er markeret dllimport"
+
+#~ msgid "static variable `%s' is marked dllimport"
+#~ msgstr "statisk variabel '%s' er markeret dllimport"
+
+#~ msgid "Generate APCS conformant stack frames"
+#~ msgstr "Generr APCS-overholdende stakrammer"
+
+#~ msgid "Store function names in object code"
+#~ msgstr "Gem funktionsnavne i objektkode"
+
+#~ msgid "Use the 32-bit version of the APCS"
+#~ msgstr "Benyt 32 bit-udgaven af APCS"
+
+#~ msgid "Use the 26-bit version of the APCS"
+#~ msgstr "Benyt 26 bit-udgaven af APCS"
+
+#~ msgid "Pass FP arguments in FP registers"
+#~ msgstr "Videregiv kommatalsparametre i kommatalsregistre"
+
+#~ msgid "Generate re-entrant, PIC code"
+#~ msgstr "Generr genindtrdelig PIC-kode"
+
+#~ msgid "The MMU will trap on unaligned accesses"
+#~ msgstr "MMU'en vil aktiveres ved ikke-justerede tilgange"
+
+#~ msgid "Use library calls to perform FP operations"
+#~ msgstr "Benyt bibliotekskald til at udfre kommatalsoperationer"
+
+#~ msgid "Use hardware floating point instructions"
+#~ msgstr "Benyt hardware-kommatalsinstruktioner"
+
+#~ msgid "Assume target CPU is configured as big endian"
+#~ msgstr "Antag at mlprocessoren er konfigureret som storendet"
+
+#~ msgid "Assume target CPU is configured as little endian"
+#~ msgstr "Antag at mlprocessoren er konfigureret som lilleendet"
+
+#~ msgid "Assume big endian bytes, little endian words"
+#~ msgstr "Antag storendede byte og lilleendede word"
+
+#~ msgid "Support calls between Thumb and ARM instruction sets"
+#~ msgstr "Understt kald mellem Thumb- og ARM-instruktionssttene"
+
+#~ msgid "Generate a call to abort if a noreturn function returns"
+#~ msgstr "Generr et kald til abort hvis en noreturn-funktion returnerer"
+
+#~ msgid "Do not move instructions into a function's prologue"
+#~ msgstr "Flyt ikke instruktioner til en funktions begyndelse"
+
+#~ msgid "Do not load the PIC register in function prologues"
+#~ msgstr "Indls ikke PIC-registeret i funktionsbegyndelser"
+
+#~ msgid "Generate call insns as indirect calls, if necessary"
+#~ msgstr "Generr kaldeinstruktioner som indirekte kald, om ndvendigt"
+
+#~ msgid "Compile for the Thumb not the ARM"
+#~ msgstr "Overst til Thymb, ikke til ARM"
+
+#~ msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+#~ msgstr "Thumb: Generr (ikke-yderste) stakrammer selv hvis det ikke er ndvendigt"
+
+#~ msgid "Thumb: Generate (leaf) stack frames even if not needed"
+#~ msgstr "Thumb: Generr (yderste) stakrammer selv hvis det ikke er ndvendigt"
+
+#~ msgid "Thumb: Assume non-static functions may be called from ARM code"
+#~ msgstr "Thumb: Antag at ikke-statiske funktioner kan kaldes fra ARM-kode"
+
+#~ msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+#~ msgstr "Thumb: Antag at funktionshenvisninger kan g til kode der ikke er opmrksom p Thumb"
+
+#~ msgid "Specify the name of the target CPU"
+#~ msgstr "Angiv navnet p mlprocessoren"
+
+#~ msgid "Specify the name of the target architecture"
+#~ msgstr "Angiv navnet p mlarkitekturen"
+
+#~ msgid "Specify the version of the floating point emulator"
+#~ msgstr "Angiv versionen af kommatalsemulatoren"
+
+#~ msgid "Specify the minimum bit alignment of structures"
+#~ msgstr "Angiv den mindste bitjustering af strukturer"
+
+#~ msgid "Specify the register to be used for PIC addressing"
+#~ msgstr "Angiv det register der skal bruges til PIC-adressering"
+
+#~ msgid "Ignore dllimport attribute for functions"
+#~ msgstr "Ignorr dllimport-egenskaben for funktioner"
+
+#~ msgid "large frame pointer change (%d) with -mtiny-stack"
+#~ msgstr "stor rammehenvisningsndring (%d) med -mtiny-stack"
+
+#~ msgid "bad address, not (reg+disp):"
+#~ msgstr "ugyldig adresse, ikke (reg+disp):"
+
+#~ msgid "internal compiler error. Bad address:"
+#~ msgstr "intern overstterfejl - ugyldig adresse:"
+
+#~ msgid "internal compiler error. Unknown mode:"
+#~ msgstr "intern overstterfejl - ugyldig tilstand:"
+
+#~ msgid "invalid insn:"
+#~ msgstr "ugyldig instruktion:"
+
+#~ msgid "incorrect insn:"
+#~ msgstr "ukorrekt instruktion:"
+
+#~ msgid "unknown move insn:"
+#~ msgstr "ukendt flytteinstruktion:"
+
+#~ msgid "bad shift insn:"
+#~ msgstr "ugyldig skifteinstruktion:"
+
+#~ msgid "internal compiler error. Incorrect shift:"
+#~ msgstr "intern overstterfejl - ukorrekt skift:"
+
+#~ msgid "only initialized variables can be placed into program memory area"
+#~ msgstr "kun variabler med startvrdi kan placeres i programhukommelsesomrdet"
+
+#~ msgid "only uninitialized variables can be placed in the .noinit section"
+#~ msgstr "kun variabler uden startvrdi kan placeres i .noinit-sektionen"
+
+#~ msgid "MCU `%s' supported for assembler only"
+#~ msgstr "MCU '%s' understttes kun for maskinkode"
+
+#~ msgid "Assume int to be 8 bit integer"
+#~ msgstr "Antag at int er 8 bit-heltal"
+
+#~ msgid "Change the stack pointer without disabling interrupts"
+#~ msgstr "ndr stakhenvisningen uden at deaktivere afbrydelser"
+
+#~ msgid "Use subroutines for function prologue/epilogue"
+#~ msgstr "Benyt subrutiner for funktionsindledning/-afslutninger"
+
+#~ msgid "Change only the low 8 bits of the stack pointer"
+#~ msgstr "ndr kun de laveste 8 bit af stakhenvisningen"
+
+#~ msgid "Do not generate tablejump insns"
+#~ msgstr "Generr ikke tabelspringsinstruktioner"
+
+#~ msgid "Use rjmp/rcall (limited range) on >8K devices"
+#~ msgstr "Benyt rjmp/rcall (begrnset omfang) p >8K-enheder"
+
+#~ msgid "Output instruction sizes to the asm file"
+#~ msgstr "Anbring instruktionsstrrelser i asm-filen"
+
+#~ msgid "Specify the initial stack address"
+#~ msgstr "Angiv den frste stakadresse"
+
+#~ msgid "Specify the MCU name"
+#~ msgstr "Angiv MCU-navnet"
+
+#~ msgid "trampolines not supported"
+#~ msgstr "trampoliner understttes ikke"
+
+#~ msgid "missing '(' after '#pragma %s' - ignored"
+#~ msgstr "manglende '(' efter '#pragma %s' - ignoreret"
+
+#~ msgid "missing function name in '#pragma %s' - ignored"
+#~ msgstr "manglende funktionsnavn i '#pragma %s' - ignoreret"
+
+#~ msgid "malformed '#pragma %s' - ignored"
+#~ msgstr "forkert udformet '#pragma %s' - ignoreret"
+
+#~ msgid "missing section name in '#pragma %s' - ignored"
+#~ msgstr "manglende sektionsnavn i '#pragma %s' - ignoreret"
+
+#~ msgid "missing ')' for '#pragma %s' - ignored"
+#~ msgstr "manglende '(' for '#pragma %s' - ignoreret"
+
+#~ msgid "junk at end of '#pragma %s'"
+#~ msgstr "ragelse i slutningen af '#pragma %s'"
+
+#~ msgid "unknown CPU version %d, using 40.\n"
+#~ msgstr "ukendt processorversion %d, bruger 40.\n"
+
+#~ msgid "ISR %s requires %d words of local vars, max is 32767"
+#~ msgstr "ISR %s krver %d ord af lokale variable, maks. er 32767"
+
+#~ msgid "using CONST_DOUBLE for address"
+#~ msgstr "bruger CONST_DOUBLE til adresse"
+
+#~ msgid "c4x_address_cost: Invalid addressing mode"
+#~ msgstr "c4x_address_cost: Ugyldig adresseringstilstand"
+
+#~ msgid "c4x_print_operand: %%L inconsistency"
+#~ msgstr "c4x_print_operand: %%L-inkonsistens"
+
+#~ msgid "c4x_print_operand: %%N inconsistency"
+#~ msgstr "c4x_print_operand: %%N-inkonsistens"
+
+#~ msgid "c4x_print_operand: %%O inconsistency"
+#~ msgstr "c4x_print_operand: %%O-inkonsistens"
+
+#~ msgid "c4x_print_operand: Bad operand case"
+#~ msgstr "c4x_print_operand: Ugyldig operand-case"
+
+#~ msgid "c4x_print_operand_address: Bad post_modify"
+#~ msgstr "c4x_print_operand_address: Ugyldig post_modify"
+
+#~ msgid "c4x_print_operand_address: Bad pre_modify"
+#~ msgstr "c4x_print_operand_address: Ugyldig pre_modify"
+
+#~ msgid "c4x_print_operand_address: Bad operand case"
+#~ msgstr "c4x_print_operand_address: Ugyldig operand-case"
+
+#~ msgid "c4x_rptb_insert: Cannot find start label"
+#~ msgstr "c4x_rptb_insert: Kan ikke finde startetiket"
+
+#~ msgid "mode not QImode"
+#~ msgstr "tilstand ikke QImode"
+
+#~ msgid "invalid indirect memory address"
+#~ msgstr "ugyldig indirekte hukommelsesadresse"
+
+#~ msgid "invalid indirect (S) memory address"
+#~ msgstr "ugyldig indirekte (S) hukommelsesadresse"
+
+#~ msgid "c4x_valid_operands: Internal error"
+#~ msgstr "c4x_valid_operands: Intern fejl"
+
+#~ msgid "c4x_operand_subword: invalid mode"
+#~ msgstr "c4x_operand_subword: ugyldig tilstand"
+
+#~ msgid "c4x_operand_subword: invalid operand"
+#~ msgstr "c4x_operand_subword: ugyldig operand"
+
+#~ msgid "c4x_operand_subword: invalid autoincrement"
+#~ msgstr "c4x_operand_subword: ugyldig selvforgelse"
+
+#~ msgid "c4x_operand_subword: invalid address"
+#~ msgstr "c4x_operand_subword: ugyldig adresse"
+
+#~ msgid "c4x_operand_subword: address not offsettable"
+#~ msgstr "c4x_operand_subword: adresse kan ikke tilfjes et offset"
+
+#~ msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+#~ msgstr "c4x_rptb_rpts_p: Topetiket til gentagelsesblok flyttet\n"
+
+#~ msgid "Small memory model"
+#~ msgstr "Lille hukommelsesmodel"
+
+#~ msgid "Big memory model"
+#~ msgstr "Stor hukommelsesmodel"
+
+#~ msgid "Use MPYI instruction for C3x"
+#~ msgstr "Benyt MPYI-instruktionen til C3x"
+
+#~ msgid "Do not use MPYI instruction for C3x"
+#~ msgstr "Benyt ikke MPYI-instruktionen til C3x"
+
+#~ msgid "Use fast but approximate float to integer conversion"
+#~ msgstr "Benyt hurtig, men approksimativ konvertering fra komma- til heltal"
+
+#~ msgid "Use slow but accurate float to integer conversion"
+#~ msgstr "Benyt langsom, men njagtig konvertering fra komma- til heltal"
+
+#~ msgid "Enable use of RTPS instruction"
+#~ msgstr "Aktivr brug af RTPS-instruktionen"
+
+#~ msgid "Disable use of RTPS instruction"
+#~ msgstr "Deaktivr brug af RTPS-instruktionen"
+
+#~ msgid "Enable use of RTPB instruction"
+#~ msgstr "Aktivr brug af RTPB-instruktionen"
+
+#~ msgid "Disable use of RTPB instruction"
+#~ msgstr "Deaktivr brug af RTPB-instruktionen"
+
+#~ msgid "Generate code for C30 CPU"
+#~ msgstr "Generr kode til en C30-processor"
+
+#~ msgid "Generate code for C31 CPU"
+#~ msgstr "Generr kode til en C31-processor"
+
+#~ msgid "Generate code for C32 CPU"
+#~ msgstr "Generr kode til en C32-processor"
+
+#~ msgid "Generate code for C33 CPU"
+#~ msgstr "Generr kode til en C33-processor"
+
+#~ msgid "Generate code for C40 CPU"
+#~ msgstr "Generr kode til en C40-processor"
+
+#~ msgid "Generate code for C44 CPU"
+#~ msgstr "Generr kode til en C44-processor"
+
+#~ msgid "Emit code compatible with TI tools"
+#~ msgstr "Udsend kode der er kompatibel med TI-vrktjer"
+
+#~ msgid "Emit code to use GAS extensions"
+#~ msgstr "Udsend kode der bruger GAS-udvidelser"
+
+# RETMIG: hvad str ISR for?
+#~ msgid "Save DP across ISR in small memory model"
+#~ msgstr "Gem DP over ISR i lille hukommelsesmodel"
+
+#~ msgid "Don't save DP across ISR in small memory model"
+#~ msgstr "Gem ikke DP over ISR i lille hukommelsesmodel"
+
+#~ msgid "Pass arguments on the stack"
+#~ msgstr "Overbring parametre p stakken"
+
+#~ msgid "Pass arguments in registers"
+#~ msgstr "Overbring parametre i registre"
+
+#~ msgid "Enable new features under development"
+#~ msgstr "Aktivr nye faciliteter under udvikling"
+
+#~ msgid "Disable new features under development"
+#~ msgstr "Deaktivr nye faciliteter under udvikling"
+
+#~ msgid "Use the BK register as a general purpose register"
+#~ msgstr "Benyt BK-registeret som et alment register"
+
+#~ msgid "Do not allocate BK register"
+#~ msgstr "Allokr ikke BK-registeret"
+
+#~ msgid "Enable use of DB instruction"
+#~ msgstr "Aktivr brug af DB-instruktioner"
+
+#~ msgid "Disable use of DB instruction"
+#~ msgstr "Deaktivr brug af DB-instruktioner"
+
+#~ msgid "Enable debugging"
+#~ msgstr "Aktivr fejlanalyseringsinfo"
+
+#~ msgid "Disable debugging"
+#~ msgstr "Deaktivr fejlanalyseringsinfo"
+
+# RETMIG: hvad betyder hoisting? (det har noget med jage indlsning af dem ud af registre)
+#~ msgid "Force constants into registers to improve hoisting"
+#~ msgstr "Tving konstanter ind i registre for at forbedre hoisting"
+
+#~ msgid "Don't force constants into registers"
+#~ msgstr "Tving ikke konstanter ind i registre"
+
+#~ msgid "Force RTL generation to emit valid 3 operand insns"
+#~ msgstr "Tving RTL-generering til at udsende gyldig 3-operandinstruktioner"
+
+#~ msgid "Allow RTL generation to emit invalid 3 operand insns"
+#~ msgstr "Tillad RTL-generering at udsende ugyldig 3-operandinstruktioner"
+
+#~ msgid "Allow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Tillad iterationstllere uden fortegn for RPTB/DB"
+
+#~ msgid "Disallow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Tillad ikke iterationstllere uden fortegn for RPTB/DB"
+
+#~ msgid "Preserve all 40 bits of FP reg across call"
+#~ msgstr "Bevar alle 40 bit af kommatalsregisteret p tvrs af kald"
+
+#~ msgid "Only preserve 32 bits of FP reg across call"
+#~ msgstr "Bevar kun 32 bit af kommatalsregisteret p tvrs af kald"
+
+#~ msgid "Enable parallel instructions"
+#~ msgstr "Aktivr parallelle instruktioner"
+
+#~ msgid "Disable parallel instructions"
+#~ msgstr "Deaktivr parallelle instruktioner"
+
+#~ msgid "Enable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Aktivr instruktionerne MPY||ADD og MPY||SUB"
+
+#~ msgid "Disable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Deaktivr instruktionerne MPY||ADD og MPY||SUB"
+
+#~ msgid "Assume that pointers may be aliased"
+#~ msgstr "Antag at henvisninger kan vre aliaser"
+
+#~ msgid "Assume that pointers not aliased"
+#~ msgstr "Antag at henvisninger ikke kan vre aliaser"
+
+#~ msgid "Specify maximum number of iterations for RPTS"
+#~ msgstr "Angiv maksimalt antal iterationer for RPTS"
+
+#~ msgid "Select CPU to generate code for"
+#~ msgstr "Vlg den processor der skal genereres kode til"
+
+#~ msgid "unexpected index-type in cris_print_index"
+#~ msgstr "uventet indekstype i cris_print_index"
+
+#~ msgid "unexpected base-type in cris_print_base"
+#~ msgstr "uventet grundtype in cris_print_base"
+
+#~ msgid "stackframe too big: %d bytes"
+#~ msgstr "stakramme for stor: %d byte"
+
+#~ msgid "allocated but unused delay list in epilogue"
+#~ msgstr "allokeret, men ubenyttet venteliste i afslutning"
+
+#~ msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+#~ msgstr "uventet funktionstype behver stak justering for __builtin_eh_return"
+
+#~ msgid "invalid operand for 'b' modifier"
+#~ msgstr "ugyldig operand til 'b'-ndring"
+
+#~ msgid "invalid operand for 'v' modifier"
+#~ msgstr "ugyldig operand til 'v'-ndring"
+
+#~ msgid "invalid operand for 'P' modifier"
+#~ msgstr "ugyldig operand til 'P'-ndring"
+
+#~ msgid "invalid operand for 'p' modifier"
+#~ msgstr "ugyldig operand til 'p'-ndring"
+
+#~ msgid "invalid operand for 'z' modifier"
+#~ msgstr "ugyldig operand til 'z'-ndring"
+
+#~ msgid "invalid operand for 'H' modifier"
+#~ msgstr "ugyldig operand til 'H'-ndring"
+
+#~ msgid "bad register"
+#~ msgstr "ugyldigt register"
+
+#~ msgid "invalid operand for 'e' modifier"
+#~ msgstr "ugyldig operand til 'e'-ndring"
+
+#~ msgid "invalid operand for 'm' modifier"
+#~ msgstr "ugyldig operand til 'm'-ndring"
+
+#~ msgid "invalid operand for 'A' modifier"
+#~ msgstr "ugyldig operand til 'A'-ndring"
+
+#~ msgid "invalid operand for 'D' modifier"
+#~ msgstr "ugyldig operand til 'D'-ndring"
+
+#~ msgid "invalid operand for 'T' modifier"
+#~ msgstr "ugyldig operand til 'T'-ndring"
+
+#~ msgid "invalid operand modifier letter"
+#~ msgstr "ugyldigt operandndringsbogstav"
+
+#~ msgid "internal error: bad register: %d"
+#~ msgstr "intern fejl: ugyldigt register: %d"
+
+#~ msgid "unexpected multiplicative operand"
+#~ msgstr "uventet multiplikativ operand"
+
+#~ msgid "unexpected operand"
+#~ msgstr "uventet operand"
+
+#~ msgid "unrecognized address"
+#~ msgstr "ukendt adresse"
+
+#~ msgid "internal error: sideeffect-insn affecting main effect"
+#~ msgstr "intern fejl: bivirkningsinstruktion pvirker hovedvirkning"
+
+#~ msgid "internal error: cris_side_effect_mode_ok with bad operands"
+#~ msgstr "intern fejl: cris_side_effect_mode_ok med ugyldige operander"
+
+#~ msgid "unrecognized supposed constant"
+#~ msgstr "ukendt formodet konstant"
+
+#~ msgid "unrecognized supposed constant in cris_global_pic_symbol"
+#~ msgstr "ukendt formodet konstant i cris_global_pic_symbol"
+
+#~ msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+#~ msgstr "-max-stackframe=%d er ikke brugbar mellem 0 og %d"
+
+#~ msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+#~ msgstr "ukendt CRIS-versionsspecifikation i -march= eller -mcpu=: %s"
+
+#~ msgid "unknown CRIS cpu version specification in -mtune= : %s"
+#~ msgstr "ukendt CRIS-versionsspecifikation i -mtune=: %s"
+
+#~ msgid "-fPIC and -fpic are not supported in this configuration"
+#~ msgstr "-fPIC og -fpic understttes ikke af denne konfiguration"
+
+#~ msgid "that particular -g option is invalid with -maout and -melinux"
+#~ msgstr "det bestemte '-g'-tilvalg er ugyldigt med -maout og -melinux"
+
+#~ msgid "unexpected side-effects in address"
+#~ msgstr "uventede bivirkninger i adresse"
+
+#~ msgid "unexpected PIC symbol"
+#~ msgstr "uventet PIC-symbol"
+
+#~ msgid "PIC register isn't set up"
+#~ msgstr "PIC-register er ikke sat op"
+
+#~ msgid "unexpected address expression"
+#~ msgstr "uventet adresseudtryk"
+
+#~ msgid "emitting PIC operand, but PIC register isn't set up"
+#~ msgstr "udsender PIC-operand, men PIC-register er ikke sat op"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "uventet NOTE som addr_const:"
+
+#~ msgid "Compile for the MMU-less Etrax 100-based elinux system"
+#~ msgstr "Overst for det Etrax 100-baserede elinux-system uden MMU"
+
+#~ msgid "For elinux, request a specified stack-size for this program"
+#~ msgstr "For elinux; foresprg en angivet stakstrrelse for dette program"
+
+#~ msgid "Compile for ETRAX 4 (CRIS v3)"
+#~ msgstr "Overst for ETRAX 4 (CRIS v3)"
+
+#~ msgid "Compile for ETRAX 100 (CRIS v8)"
+#~ msgstr "Overst for ETRAX 100 (CRIS v8)"
+
+#~ msgid "Emit verbose debug information in assembly code"
+#~ msgstr "Udsend fejlanalyseringsinfo i maskinkode"
+
+#~ msgid "Do not use condition codes from normal instructions"
+#~ msgstr "Benyt ikke betingelseskoder fra normale instruktioner"
+
+#~ msgid "Do not emit addressing modes with side-effect assignment"
+#~ msgstr "Udsend ikke adresseringstilstande med bivirkningstildeling"
+
+#~ msgid "Do not tune stack alignment"
+#~ msgstr "Finjustr ikke stakjustering"
+
+#~ msgid "Do not tune writable data alignment"
+#~ msgstr "Finjustr ikke justering af skrivbare data"
+
+#~ msgid "Do not tune code and read-only data alignment"
+#~ msgstr "Finjustr ikke justering af kode og skrivebeskyttet data"
+
+#~ msgid "Align code and data to 32 bits"
+#~ msgstr "Justr kode og data til 32 bit"
+
+#~ msgid "Don't align items in code or data"
+#~ msgstr "Justr ikke elementer i kode eller data"
+
+#~ msgid "Do not emit function prologue or epilogue"
+#~ msgstr "Udsend ikke funktionsindledning eller -afslutning"
+
+#~ msgid "Use the most feature-enabling options allowed by other options"
+#~ msgstr "Benyt de tilvalg der giver de fleste faciliteter tilladt af andre tilvalg"
+
+#~ msgid "Override -mbest-lib-options"
+#~ msgstr "Overskriv -mbest-lib-options"
+
+#~ msgid "Generate code for the specified chip or CPU version"
+#~ msgstr "Generr kode til en given chip- eller processorversion"
+
+#~ msgid "Tune alignment for the specified chip or CPU version"
+#~ msgstr "Finjustr justering til en given chip- eller processorversion"
+
+#~ msgid "Warn when a stackframe is larger than the specified size"
+#~ msgstr "Advar nr en stakramme er strre end den angivne strrelse"
+
+#~ msgid "no FUNCTION_PROFILER for CRIS"
+#~ msgstr "ingen FUNCTION_PROFILER for CRIS"
+
+#~ msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+#~ msgstr "Benyt ikke GOTPLT-referencer sammen med -fpic og -fPIC"
+
+#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+#~ msgstr "ugyldig modes_tieable_p for register %s, mode1 %s, mode2 %s"
+
+#~ msgid "bad insn to d30v_print_operand_address:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand_address:"
+
+#~ msgid "bad insn to d30v_print_operand_memory_reference:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand_memory_reference:"
+
+#~ msgid "bad insn to d30v_print_operand, 'f' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'f'-ndring:"
+
+#~ msgid "bad insn to d30v_print_operand, 'A' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'A'-ndring:"
+
+#~ msgid "bad insn to d30v_print_operand, 'M' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'M'-ndring:"
+
+#~ msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'F'- eller 'T'-ndring:"
+
+#~ msgid "bad insn to print_operand, 'B' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'B'-ndring:"
+
+#~ msgid "bad insn to print_operand, 'E' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'E'-ndring:"
+
+#~ msgid "bad insn to print_operand, 'R' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 'R'-ndring:"
+
+#~ msgid "bad insn to print_operand, 's' modifier:"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 's'-ndring:"
+
+#~ msgid "bad insn in d30v_print_operand, 0 case"
+#~ msgstr "ugyldig instruktion til d30v_print_operand, 0 case"
+
+#~ msgid "d30v_emit_comparison"
+#~ msgstr "d30v_emit_comparison"
+
+#~ msgid "bad call to d30v_move_2words"
+#~ msgstr "ugyldigt kald af d30v_move_2words"
+
+#~ msgid "Enable use of conditional move instructions"
+#~ msgstr "Aktivr brug af betingede flytteinstruktioner"
+
+#~ msgid "Disable use of conditional move instructions"
+#~ msgstr "Deaktivr brug af betingede flytteinstruktioner"
+
+#~ msgid "Debug argument support in compiler"
+#~ msgstr "Fejlanalyser parameterunderstttelse i overstteren"
+
+#~ msgid "Debug stack support in compiler"
+#~ msgstr "Fejlanalyser stakunderstttelse i overstteren"
+
+#~ msgid "Debug memory address support in compiler"
+#~ msgstr "Fejlanalyser hukommelsesadresseunderstttelse i overstteren"
+
+#~ msgid "Make adjacent short instructions parallel if possible"
+#~ msgstr "Gr nrliggende korte instruktioner parallelle om muligt"
+
+#~ msgid "Do not make adjacent short instructions parallel"
+#~ msgstr "Gr ikke nrliggende korte instruktioner parallelle"
+
+#~ msgid "Link programs/data to be in external memory by default"
+#~ msgstr "Sammenkd program/data til at vre i ekstern hukommelse som standard"
+
+#~ msgid "Link programs/data to be in onchip memory by default"
+#~ msgstr "Sammenkd program/data til at vre i hukommelsen p chippen som standard"
+
+#~ msgid "Change the branch costs within the compiler"
+#~ msgstr "Skift forgreningsomkostningen i overstteren"
+
+#~ msgid "Change the threshold for conversion to conditional execution"
+#~ msgstr "Skift trsklen for konvertering til betinget udfrelse"
+
+#~ msgid "stack size > 32k"
+#~ msgstr "stakstrrelse > 32k"
+
+#~ msgid "invalid addressing mode"
+#~ msgstr "ugyldig adresseringstilstand"
+
+#~ msgid "bad register extension code"
+#~ msgstr "ugyldig registerudvidelseskode"
+
+#~ msgid "invalid offset in ybase addressing"
+#~ msgstr "ugyldigt afst i ybase-adressering"
+
+#~ msgid "invalid register in ybase addressing"
+#~ msgstr "ugyldigt register i ybase-adressering"
+
+#~ msgid "invalid shift operator in emit_1600_core_shift"
+#~ msgstr "ugyldig skifteoperator i emit_1600_core_shift"
+
+#~ msgid "invalid mode for gen_tst_reg"
+#~ msgstr "ugyldig tilstand for gen_tst_reg"
+
+#~ msgid "invalid mode for integer comparison in gen_compare_reg"
+#~ msgstr "ugyldig tilstand for heltalssammenligning i gen_compare_reg"
+
+#~ msgid "Pass parameters in registers (default)"
+#~ msgstr "Overbring parametre i registre (standard)"
+
+#~ msgid "Don't pass parameters in registers"
+#~ msgstr "Overbring ikke parametre i registre"
+
+#~ msgid "Generate code for near calls"
+#~ msgstr "Generr kode til nre kald"
+
+#~ msgid "Don't generate code for near calls"
+#~ msgstr "Generr ikke kode til nre kald"
+
+#~ msgid "Generate code for near jumps"
+#~ msgstr "Generr kode til nre spring"
+
+#~ msgid "Don't generate code for near jumps"
+#~ msgstr "Generr ikke kode til nre spring"
+
+#~ msgid "Generate code for a bit-manipulation unit"
+#~ msgstr "Generr kode til en bit-manipuleringsenhed"
+
+#~ msgid "Don't generate code for a bit-manipulation unit"
+#~ msgstr "Generr ikke kode til en bit-manipuleringsenhed"
+
+#~ msgid "Generate code for memory map1"
+#~ msgstr "Generr kode til memory map1"
+
+#~ msgid "Generate code for memory map2"
+#~ msgstr "Generr kode til memory map2"
+
+#~ msgid "Generate code for memory map3"
+#~ msgstr "Generr kode til memory map3"
+
+#~ msgid "Generate code for memory map4"
+#~ msgstr "Generr kode til memory map4"
+
+#~ msgid "Ouput extra code for initialized data"
+#~ msgstr "Udsend ekstra kode til data med startvrdier"
+
+#~ msgid "Don't let reg. allocator use ybase registers"
+#~ msgstr "Lad ikke registerallokeringen benytte ybase-registre"
+
+#~ msgid "Output extra debug info in Luxworks environment"
+#~ msgstr "Udsend ekstra fejlanalyseringsinfo i Luxworks-miljet"
+
+#~ msgid "Save temp. files in Luxworks environment"
+#~ msgstr "Gem midlertidige filer i Luxworks-miljet"
+
+#~ msgid "Specify alternate name for text section"
+#~ msgstr "Angiv alternativt navn til tekstsektionen"
+
+#~ msgid "Specify alternate name for data section"
+#~ msgstr "Angiv alternativt navn til datasektionen"
+
+#~ msgid "Specify alternate name for bss section"
+#~ msgstr "Angiv alternativt navn til bss-sektionen"
+
+#~ msgid "Specify alternate name for constant section"
+#~ msgstr "Angiv alternativt navn til konstantsektionen"
+
+#~ msgid "Specify alternate name for dsp16xx chip"
+#~ msgstr "Angiv alternativt navn til dsp16xx-chippen"
+
+#~ msgid "profiling not implemented yet"
+#~ msgstr "profilering understttes ikke endnu"
+
+#~ msgid "trampolines not yet implemented"
+#~ msgstr "trampoliner understttes ikke endnu"
+
+#~ msgid "fr30_print_operand_address: unhandled address"
+#~ msgstr "fr30_print_operand_address: ikke-hndteret adresse"
+
+#~ msgid "fr30_print_operand: unrecognized %%p code"
+#~ msgstr "fr30_print_operand: ukendt '%%p'-kode"
+
+#~ msgid "fr30_print_operand: unrecognized %%b code"
+#~ msgstr "fr30_print_operand: ukendt '%%b'-kode"
+
+#~ msgid "fr30_print_operand: unrecognized %%B code"
+#~ msgstr "fr30_print_operand: ukendt '%%B'-kode"
+
+#~ msgid "fr30_print_operand: invalid operand to %%A code"
+#~ msgstr "fr30_print_operand: ugyldig operand til '%%A'-kode"
+
+#~ msgid "fr30_print_operand: invalid %%x code"
+#~ msgstr "fr30_print_operand: ugyldig '%%x'-kode"
+
+#~ msgid "fr30_print_operand: invalid %%F code"
+#~ msgstr "fr30_print_operand: ugyldig '%%F'-kode"
+
+#~ msgid "fr30_print_operand: unknown code"
+#~ msgstr "fr30_print_operand: ukendt kode"
+
+#~ msgid "fr30_print_operand: unhandled MEM"
+#~ msgstr "fr30_print_operand: ikke-hndteret MEM"
+
+#~ msgid "Assume small address space"
+#~ msgstr "Antag lille adresserum"
+
+#~ msgid "Unknown cpu: -mcpu=%s"
+#~ msgstr "Ukendt processor: -mcpu=%s"
+
+#~ msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+#~ msgstr "-fpic og -gdwarf er indbyrdes uforenelige (-fpic og -g/-gdwarf-2 er i orden)"
+
+#~ msgid "Bad insn to frv_print_operand_address:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand_address:"
+
+#~ msgid "Bad register to frv_print_operand_memory_reference_reg:"
+#~ msgstr "Ugyldigt register til frv_print_operand_memory_reference_reg:"
+
+#~ msgid "Bad insn to frv_print_operand_memory_reference:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand_memory_reference:"
+
+#~ msgid "Bad insn in frv_print_operand, bad const_double"
+#~ msgstr "Ugyldig instruktion i frv_print_operand, ugyldig const_double"
+
+#~ msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#~ msgstr "Ugyldig instruktionen til frv_print_operand, 'C'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'c'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'e' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'e'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'F' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'F'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'f' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'f'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'L' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'L'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'M/N'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, 'O' modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, 'O'-modifikation:"
+
+#~ msgid "Bad insn to frv_print_operand, P modifier:"
+#~ msgstr "Ugyldig instruktion til frv_print_operand, P-modifikation:"
+
+#~ msgid "Bad insn in frv_print_operand, z case"
+#~ msgstr "Ugyldig instruktion i frv_print_operand, tilfldet z"
+
+#~ msgid "Bad insn in frv_print_operand, 0 case"
+#~ msgstr "Ugyldig instruktion i frv_print_operand, tilfldet 0"
+
+#~ msgid "frv_print_operand: unknown code"
+#~ msgstr "fr_print_operand: ukendt kode"
+
+#~ msgid "Bad output_move_single operand"
+#~ msgstr "Ugyldig output_move_single-operand"
+
+#~ msgid "Bad output_move_double operand"
+#~ msgstr "Ugyldig output_move_double-operand"
+
+#~ msgid "Bad output_condmove_single operand"
+#~ msgstr "Ugyldig output_condmove_single-operand"
+
+#~ msgid "frv_registers_update"
+#~ msgstr "frv_registers_update"
+
+#~ msgid "frv_registers_used_p"
+#~ msgstr "frv_registers_used_p"
+
+#~ msgid "frv_registers_set_p"
+#~ msgstr "frv_registers_set_p"
+
+#~ msgid "accumulator is not a constant integer"
+#~ msgstr "akkumulator er ikke et konstant heltal"
+
+#~ msgid "accumulator number is out of bounds"
+#~ msgstr "akkumulatortal er uden for det gyldig interval"
+
+#~ msgid "inappropriate accumulator for `%s'"
+#~ msgstr "forkert akkumulator for '%s'"
+
+#~ msgid "`%s' expects a constant argument"
+#~ msgstr "'%s' forventer en konstant parameter"
+
+#~ msgid "constant argument out of range for `%s'"
+#~ msgstr "konstant parameter uden for det gyldige interval for '%s'"
+
+#~ msgid "media functions are not available unless -mmedia is used"
+#~ msgstr "mediafunktioner er ikke tilgngelige medmindre -mmedia benyttes"
+
+#~ msgid "this media function is only available on the fr500"
+#~ msgstr "denne mediafunktion er kun tilgngelig p fr500"
+
+#~ msgid "this media function is only available on the fr400"
+#~ msgstr "denne mediafunktion er kun tilgngelig p fr400"
+
+#~ msgid " (frv)"
+#~ msgstr " (frv)"
+
+#~ msgid "-ms2600 is used without -ms"
+#~ msgstr "-ms2600 benyttet uden -ms"
+
+#~ msgid "-mn is used without -mh or -ms"
+#~ msgstr "-mn benyttet uden -mh eller -ms"
+
+#~ msgid "Generate H8S code"
+#~ msgstr "Generr H8S-kode"
+
+#~ msgid "Do not generate H8S code"
+#~ msgstr "Generr ikke H8S-kode"
+
+#~ msgid "Generate H8S/2600 code"
+#~ msgstr "Generr H8S/2600-kode"
+
+#~ msgid "Do not generate H8S/2600 code"
+#~ msgstr "Generr ikke H8S/2600-kode"
+
+#~ msgid "Make integers 32 bits wide"
+#~ msgstr "Gr heltal 32 bit brede"
+
+#~ msgid "Use registers for argument passing"
+#~ msgstr "Benyt registre til parameteroverbringning"
+
+#~ msgid "Do not use registers for argument passing"
+#~ msgstr "Benyt ikke registre til parameteroverbringning"
+
+#~ msgid "Consider access to byte sized memory slow"
+#~ msgstr "Betragt tilgang til bytestrrelseshukommelse som langsomt"
+
+#~ msgid "Enable linker relaxing"
+#~ msgstr "Aktivr tolerant sammenkdning"
+
+#~ msgid "Generate H8/300H code"
+#~ msgstr "Generr H8/300H-kode"
+
+#~ msgid "Enable the normal mode"
+#~ msgstr "Aktivr den normale tilstand"
+
+#~ msgid "Do not generate H8/300H code"
+#~ msgstr "Generr ikke H8/300H-kode"
+
+#~ msgid "Use H8/300 alignment rules"
+#~ msgstr "Benyt H8/300-justeringsregler"
+
+#~ msgid "junk at end of #pragma map"
+#~ msgstr "ragelse i slutningen af #pragma map"
+
+#~ msgid "malformed #pragma map, ignored"
+#~ msgstr "forkert udformet '#pragma map' - ignoreret"
+
+#~ msgid "real name is too long - alias ignored"
+#~ msgstr "rigtigt navn for langt - alias ignoreret"
+
+#~ msgid "alias name is too long - alias ignored"
+#~ msgstr "aliasnavn for langt - alias ignoreret"
+
+#~ msgid "internal error--no jump follows compare:"
+#~ msgstr "intern fejl - intet spring efterflger sammenligning:"
+
+#~ msgid "Generate char instructions"
+#~ msgstr "Generr char-instruktioner"
+
+#~ msgid "Do not generate char instructions"
+#~ msgstr "Generr ikke char-instruktioner"
+
+#~ msgid "code model %s not supported in PIC mode"
+#~ msgstr "kodemodellen %s er ikke understttet i PIC-tilstand"
+
+#~ msgid "bad value (%s) for -mcmodel= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcmodel="
+
+#~ msgid "bad value (%s) for -masm= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -masm="
+
+#~ msgid "code model `%s' not supported in the %s bit mode"
+#~ msgstr "kodemodellen %s er ikke understttet i %s bit-tilstand"
+
+#~ msgid "code model `large' not supported yet"
+#~ msgstr "kodemodellen 'large' er ikke understttet endnu"
+
+#~ msgid "%i-bit mode not compiled in"
+#~ msgstr "%i bit-tilstand er ikke oversat med ind"
+
+#~ msgid "bad value (%s) for -march= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -march="
+
+#~ msgid "bad value (%s) for -mcpu= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcpu="
+
+#~ msgid "-mregparm=%d is not between 0 and %d"
+#~ msgstr "-mregparm=%d er ikke mellem 0 og %d"
+
+#~ msgid "-malign-loops is obsolete, use -falign-loops"
+#~ msgstr "-malign-loops er forldet, benyt -falign-loops"
+
+#~ msgid "-malign-loops=%d is not between 0 and %d"
+#~ msgstr "-malign-loops=%d er ikke mellem 0 og %d"
+
+#~ msgid "-malign-jumps is obsolete, use -falign-jumps"
+#~ msgstr "-malign-jumps er forldet, benyt -falign-jumps"
+
+#~ msgid "-malign-functions is obsolete, use -falign-functions"
+#~ msgstr "-malign-functions er forldet, benyt -falign-functions"
+
+#~ msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+#~ msgstr "-mpreferred-stack-boundary=%d er ikke mellem %d og 12"
+
+#~ msgid "-mbranch-cost=%d is not between 0 and 5"
+#~ msgstr "-mbranch-cost=%d er ikke mellem 0 og 5"
+
+#~ msgid "bad value (%s) for -mtls-dialect= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mtls-dialect"
+
+#~ msgid "-malign-double makes no sense in the 64bit mode"
+#~ msgstr "-malign-double giver ikke mening i 64 bit-tilstand"
+
+#~ msgid "-mrtd calling convention not supported in the 64bit mode"
+#~ msgstr "kaldekonventionen -mrtd er ikke understttet i 64 bit-tilstand"
+
+#~ msgid "SSE instruction set disabled, using 387 arithmetics"
+#~ msgstr "SSE-instruktionsst deaktiveret, bruger 387-beregninger"
+
+#~ msgid "387 instruction set disabled, using SSE arithmetics"
+#~ msgstr "387-instruktionsst deaktiveret, bruger SSE-beregninger"
+
+#~ msgid "bad value (%s) for -mfpmath= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mfpmath="
+
+#~ msgid "`%s' attribute requires an integer constant argument"
+#~ msgstr "egenskaben '%s' krver en heltalskonstant som parameter"
+
+#~ msgid "argument to `%s' attribute larger than %d"
+#~ msgstr "parameter til egenskaben '%s' er strre end %d"
+
+#~ msgid "invalid UNSPEC as operand"
+#~ msgstr "ugyldig UNSPEC som operand"
+
+#~ msgid "extended registers have no high halves"
+#~ msgstr "udvidede registre har ikke hje halvdele"
+
+#~ msgid "unsupported operand size for extended register"
+#~ msgstr "ikke-understttet operandstrrelse for udvidede registre"
+
+#~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+#~ msgstr "operand er hverken en konstant eller en betingelseskode, ugyldig operandkode 'c'"
+
+#~ msgid "invalid operand code `%c'"
+#~ msgstr "ugyldig operandkode '%c'"
+
+#~ msgid "invalid constraints for operand"
+#~ msgstr "ugyldige begrnsninger for operand"
+
+#~ msgid "unknown insn mode"
+#~ msgstr "ukendt instruktionstilstand"
+
+#~ msgid "selector must be an immediate"
+#~ msgstr "vlger skal vre en umiddelbar vrdi"
+
+#~ msgid "mask must be an immediate"
+#~ msgstr "maske skal vre en umiddelbar vrdi"
+
+#~ msgid "shift must be an immediate"
+#~ msgstr "skiftevrdi skal vre en umiddelbar vrdi"
+
+#~ msgid "`%s' attribute only applies to variables"
+#~ msgstr "egenskaben '%s' kan kun anvendes p variabler"
+
+#~ msgid "`%s' declared as both exported to and imported from a DLL"
+#~ msgstr "'%s' erklret som bde eksporteret til og importeret fra en DLL"
+
+#~ msgid "Use the Cygwin interface"
+#~ msgstr "Benyt Cygwin-grnsefladen"
+
+#~ msgid "Use the Mingw32 interface"
+#~ msgstr "Benyt Mingw32-grnsefladen"
+
+#~ msgid "Create GUI application"
+#~ msgstr "Opret grafisk program"
+
+#~ msgid "Don't set Windows defines"
+#~ msgstr "Angiv ikke Windows-definitioner"
+
+#~ msgid "Set Windows defines"
+#~ msgstr "Angiv Windows-definitioner"
+
+#~ msgid "Create console application"
+#~ msgstr "Opret konsolprogram"
+
+#~ msgid "Generate code for a DLL"
+#~ msgstr "Generr kode til en DLL"
+
+#~ msgid "Ignore dllimport for functions"
+#~ msgstr "Ignorr dllimport til funktioner"
+
+#~ msgid "Use Mingw-specific thread support"
+#~ msgstr "Benyt Mingw-specifik trdunderstttelse"
+
+#~ msgid "-f%s ignored for target (all code is position independent)"
+#~ msgstr "-f%s ignoreret for mlarkitekturen (all kode er positionsuafhngigt)"
+
+#~ msgid "-mbnu210 is ignored (option is obsolete)"
+#~ msgstr "-mbnu210 ignoreres (tilvalget er forldet)"
+
+#~ msgid "Alternate calling convention"
+#~ msgstr "Alternativ kaldekonvention"
+
+#~ msgid "Use normal calling convention"
+#~ msgstr "Brug normal kaldekonvention"
+
+#~ msgid "Align some doubles on dword boundary"
+#~ msgstr "Justr nogle double-variabler til dword-grnserne"
+
+#~ msgid "Align doubles on word boundary"
+#~ msgstr "Justr double-variabler til word-grnserne"
+
+#~ msgid "Uninitialized locals in .bss"
+#~ msgstr "Lokale variabler uden startvrdi i .bss"
+
+#~ msgid "Uninitialized locals in .data"
+#~ msgstr "Lokale variabler uden startvrdi i .data"
+
+#~ msgid "Use IEEE math for fp comparisons"
+#~ msgstr "Brug IEEE-matematik til kommatalssammenligninger"
+
+#~ msgid "Do not use IEEE math for fp comparisons"
+#~ msgstr "Brug ikke IEEE-matematik til kommatalssammenligninger"
+
+#~ msgid "Return values of functions in FPU registers"
+#~ msgstr "Returnr vrdier fra funktioner i fpu-registre"
+
+#~ msgid "Do not return values of functions in FPU registers"
+#~ msgstr "Returnr ikke vrdier fra funktioner i fpu-registre"
+
+#~ msgid "Do not generate sin, cos, sqrt for FPU"
+#~ msgstr "Generr ikke sin, cos, sqrt til fpu"
+
+#~ msgid "Generate sin, cos, sqrt for FPU"
+#~ msgstr "Generr sin, cos og sqrt til fpu"
+
+#~ msgid "Omit the frame pointer in leaf functions"
+#~ msgstr "Udelad rammehenvisningen i de yderste funktioner"
+
+#~ msgid "Enable stack probing"
+#~ msgstr "Aktivr stakprvning"
+
+#~ msgid "Align destination of the string operations"
+#~ msgstr "Justr strengoperationernes destination"
+
+#~ msgid "Do not align destination of the string operations"
+#~ msgstr "Justr ikke strengoperationernes destination"
+
+#~ msgid "Inline all known string operations"
+#~ msgstr "Indbyg alle kendte strengoperationer"
+
+#~ msgid "Do not inline all known string operations"
+#~ msgstr "Indbyg ikke alle kendte strengoperationer"
+
+#~ msgid "Use push instructions to save outgoing arguments"
+#~ msgstr "Brug push-instruktioner til at gemme udgende parametre"
+
+#~ msgid "Do not use push instructions to save outgoing arguments"
+#~ msgstr "Brug ikke push-instruktioner til at gemme udgende parametre"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#~ msgid "Support MMX built-in functions"
+#~ msgstr "Understt indbyggede MMX-funktioner"
+
+#~ msgid "Do not support MMX built-in functions"
+#~ msgstr "Understt ikke indbyggede MMX-funktioner"
+
+# shadowing betyder at en funktion har samme navn og dermed skjuler en anden
+#~ msgid "Support 3DNow! built-in functions"
+#~ msgstr "Understt indbyggede 3DNow!-funktioner"
+
+#~ msgid "Do not support 3DNow! built-in functions"
+#~ msgstr "Understt ikke indbyggede 3DNow!-funktioner"
+
+#~ msgid "Support MMX and SSE built-in functions and code generation"
+#~ msgstr "Understt indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#~ msgid "Do not support MMX and SSE built-in functions and code generation"
+#~ msgstr "Understt ikke indbyggede MMX- og SSE-funktioner og kodegenerering"
+
+#~ msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Understt indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
+
+#~ msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Understt ikke indbyggede MMX-, SSE- og SSE2-funktioner og kodegenerering"
+
+#~ msgid "sizeof(long double) is 16"
+#~ msgstr "sizeof(long double) er 16"
+
+#~ msgid "sizeof(long double) is 12"
+#~ msgstr "sizeof(long double) er 12"
+
+#~ msgid "Generate 64bit x86-64 code"
+#~ msgstr "Generr 64 bit x86-64-kode"
+
+#~ msgid "Generate 32bit i386 code"
+#~ msgstr "Generr 64 bit i386-kode"
+
+#~ msgid "Use red-zone in the x86-64 code"
+#~ msgstr "Benyt rdzone i x86-64-koden"
+
+#~ msgid "Do not use red-zone in the x86-64 code"
+#~ msgstr "Benyt ikke rdzone i x86-64-koden"
+
+#~ msgid "Schedule code for given CPU"
+#~ msgstr "Planlg koden til en given processor"
+
+#~ msgid "Generate floating point mathematics using given instruction set"
+#~ msgstr "Generr kommatalsmatematik vha. givent instruktionsst"
+
+#~ msgid "Generate code for given CPU"
+#~ msgstr "Generr kode til en given processor"
+
+#~ msgid "Number of registers used to pass integer arguments"
+#~ msgstr "Antallet af registre der skal bruges til at overbringe heltalsparametre"
+
+#~ msgid "Loop code aligned to this power of 2"
+#~ msgstr "Lkkekode skal justeres til denne potens af 2"
+
+#~ msgid "Jump targets are aligned to this power of 2"
+#~ msgstr "Steder der skal springes til, justeres til denne potens af 2"
+
+#~ msgid "Function starts are aligned to this power of 2"
+#~ msgstr "Funktionsbegyndelser justeres til denne potens af 2"
+
+#~ msgid "Attempt to keep stack aligned to this power of 2"
+#~ msgstr "Forsg at holde stakken justeret til denne potens af 2"
+
+#~ msgid "Branches are this expensive (1-5, arbitrary units)"
+#~ msgstr "Forgreninger koster dette (1-5, vilkrlige enheder)"
+
+#~ msgid "Use given x86-64 code model"
+#~ msgstr "Benyt den givne x86-64-kodemodel"
+
+#~ msgid "Use given assembler dialect"
+#~ msgstr "Benyt den givne maskinkodedialekt"
+
+#~ msgid "Use given thread-local storage dialect"
+#~ msgstr "Benyt den givne trd-lokale lagringsdialekt"
+
+#~ msgid "Generate ELF output"
+#~ msgstr "Generr ELF-uddata"
+
+#~ msgid "Use Mingw32 interface"
+#~ msgstr "Benyt Mingw32-grnseflade"
+
+#~ msgid "Use Cygwin interface"
+#~ msgstr "Benyt Cygwin-grnseflade"
+
+#~ msgid "Use bare Windows interface"
+#~ msgstr "Benyt bar Windows-grnseflade"
+
+#~ msgid "environment variable DJGPP not defined"
+#~ msgstr "miljvariablen DJGPP er ikke defineret"
+
+#~ msgid "environment variable DJGPP points to missing file '%s'"
+#~ msgstr "miljvariablen DJGPP peger p den manglende fil '%s'"
+
+#~ msgid "environment variable DJGPP points to corrupt file '%s'"
+#~ msgstr "miljvariablen DJGPP peger p den delagte fil '%s'"
+
+#~ msgid "sorry, not implemented: #pragma align NAME=SIZE"
+#~ msgstr "desvrre, ikke implementeret: #pragma align NAVN=STRRELSE"
+
+#~ msgid "malformed #pragma align - ignored"
+#~ msgstr "forkert udformet '#pragma align' - ignoreret"
+
+#~ msgid "sorry, not implemented: #pragma noalign NAME"
+#~ msgstr "desvrre, ikke implementeret: #pragma noalign NAVN"
+
+#~ msgid "conflicting architectures defined - using C series"
+#~ msgstr "modstridende arkitekturer defineret - bruger C-serien"
+
+#~ msgid "conflicting architectures defined - using K series"
+#~ msgstr "modstridende arkitekturer defineret - bruger K-serien"
+
+#~ msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+#~ msgstr "iC2.0 og iC3.0 er inkompatible - bruger iC3.0"
+
+#~ msgid "stack limit expression is not supported"
+#~ msgstr "stakgrnseudtryk understttes ikke"
+
+#~ msgid "Generate SA code"
+#~ msgstr "Generr SA-kode"
+
+#~ msgid "Generate SB code"
+#~ msgstr "Generr SB-kode"
+
+#~ msgid "Generate KA code"
+#~ msgstr "Generr KA-kode"
+
+#~ msgid "Generate KB code"
+#~ msgstr "Generr KB-kode"
+
+#~ msgid "Generate JA code"
+#~ msgstr "Generr JA-kode"
+
+#~ msgid "Generate JD code"
+#~ msgstr "Generr JD-kode"
+
+#~ msgid "Generate JF code"
+#~ msgstr "Generr JF-kode"
+
+#~ msgid "generate RP code"
+#~ msgstr "Generr RP-kode"
+
+#~ msgid "Generate MC code"
+#~ msgstr "Generr MC-kode"
+
+#~ msgid "Generate CA code"
+#~ msgstr "Generr CA-kode"
+
+#~ msgid "Generate CF code"
+#~ msgstr "Generr CF-kode"
+
+#~ msgid "Use software floating point"
+#~ msgstr "Benyt softwarekommatal"
+
+#~ msgid "Use alternate leaf function entries"
+#~ msgstr "Benyt alternative elementer til yderste funktioner"
+
+#~ msgid "Do not use alternate leaf function entries"
+#~ msgstr "Benyt ikke alternative elementer til yderste funktioner"
+
+#~ msgid "Perform tail call optimization"
+#~ msgstr "Udfr halekaldsoptimering"
+
+#~ msgid "Do not perform tail call optimization"
+#~ msgstr "Udfr ikke halekaldsoptimering"
+
+#~ msgid "Use complex addressing modes"
+#~ msgstr "Benyt komplekse adresseringstilstande"
+
+#~ msgid "Do not use complex addressing modes"
+#~ msgstr "Benyt ikke komplekse adresseringstilstande"
+
+#~ msgid "Align code to 8 byte boundary"
+#~ msgstr "Justr kode til 8 byte-grnser"
+
+#~ msgid "Do not align code to 8 byte boundary"
+#~ msgstr "Justr ikke kode til 8 byte-grnser"
+
+#~ msgid "Enable compatibility with iC960 v2.0"
+#~ msgstr "Aktivr kompatibilitet med iC960 v2.0"
+
+#~ msgid "Enable compatibility with iC960 v3.0"
+#~ msgstr "Aktivr kompatibilitet med iC960 v3.0"
+
+#~ msgid "Enable compatibility with ic960 assembler"
+#~ msgstr "Aktivr kompatibilitet med ic960-maskinkodeoverstteren"
+
+#~ msgid "Do not permit unaligned accesses"
+#~ msgstr "Tillad ikke ikke-justeret adgang"
+
+#~ msgid "Permit unaligned accesses"
+#~ msgstr "Tillad ikke-justeret adgang"
+
+#~ msgid "Layout types like Intel's v1.3 gcc"
+#~ msgstr "Sammenst typer som Intels v1.3 gcc"
+
+#~ msgid "Do not layout types like Intel's v1.3 gcc"
+#~ msgstr "Sammenst ikke typer som Intels v1.3 gcc"
+
+#~ msgid "Use 64 bit long doubles"
+#~ msgstr "Benyt 64 bit long double"
+
+#~ msgid "Enable linker relaxation"
+#~ msgstr "Aktivr tolerant sammenkder"
+
+#~ msgid "Do not enable linker relaxation"
+#~ msgstr "Aktivr ikke tolerant sammenkder"
+
+#~ msgid "malformed #pragma builtin"
+#~ msgstr "forkert udformet '#pragma builtin'"
+
+#~ msgid "ia64_print_operand: unknown code"
+#~ msgstr "ia64_print_operand: ukendt kode"
+
+#~ msgid "value of -mfixed-range must have form REG1-REG2"
+#~ msgstr "vrdien af -mfixed-range skal vre p formen REG1-REG2"
+
+#~ msgid "%s-%s is an empty range"
+#~ msgstr "%s-%s er et tomt interval"
+
+#~ msgid "cannot optimize floating point division for both latency and throughput"
+#~ msgstr "kan ikke optimere kommatalsdivision for bde ventetid og bndbredde"
+
+#~ msgid "cannot optimize integer division for both latency and throughput"
+#~ msgstr "kan ikke optimere heltalsdivision for bde ventetid og bndbredde"
+
+#~ msgid "bad value (%s) for -mtls-size= switch"
+#~ msgstr "ugyldig vrdi (%s) for tilvalget -mtls-size="
+
+#~ msgid "Generate big endian code"
+#~ msgstr "Generr storendet kode"
+
+#~ msgid "Generate little endian code"
+#~ msgstr "Generr lilleendet kode"
+
+#~ msgid "Generate code for GNU as"
+#~ msgstr "Generr kode til GNU as"
+
+#~ msgid "Generate code for Intel as"
+#~ msgstr "Generr kode til Intel as"
+
+#~ msgid "Generate code for GNU ld"
+#~ msgstr "Generr kode til GNU ld"
+
+#~ msgid "Generate code for Intel ld"
+#~ msgstr "Generr kode til Intel ld"
+
+#~ msgid "Generate code without GP reg"
+#~ msgstr "Generr kode uden GP-registeret"
+
+#~ msgid "Emit stop bits before and after volatile extended asms"
+#~ msgstr "Udsend stopbit fr og efter volatile udvidede asm-stninger"
+
+#~ msgid "Don't emit stop bits before and after volatile extended asms"
+#~ msgstr "Udsend ikke stopbit fr og efter volatile udvidede asm-stninger"
+
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Udsend kode for Itanium (TM) processor B-skridt"
+
+#~ msgid "Use in/loc/out register names"
+#~ msgstr "Benyt in/loc/out-registernavne"
+
+#~ msgid "Disable use of sdata/scommon/sbss"
+#~ msgstr "Deaktivr brug af sdata/scommon/sbss"
+
+#~ msgid "Enable use of sdata/scommon/sbss"
+#~ msgstr "Aktivr brug af sdata/scommon/sbss"
+
+#~ msgid "gp is constant (but save/restore gp on indirect calls)"
+#~ msgstr "gp er konstant (men gem/gendan gp ved indirekte kald)"
+
+#~ msgid "Generate self-relocatable code"
+#~ msgstr "Generr selvflyttende kode"
+
+#~ msgid "Generate inline floating point division, optimize for latency"
+#~ msgstr "Generr indlejrede kommatalsdivisioner, optimr for ventetid"
+
+#~ msgid "Generate inline floating point division, optimize for throughput"
+#~ msgstr "Generr indlejrede kommatalsdivisioner, optimr for bndbredde"
+
+#~ msgid "Generate inline integer division, optimize for latency"
+#~ msgstr "Generr indlejrede heltalsdivisioner, optimr for ventetid"
+
+#~ msgid "Generate inline integer division, optimize for throughput"
+#~ msgstr "Generr indlejrede heltalsdivisioner, optimr for bndbredde"
+
+#~ msgid "Enable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Aktivr Dwarf 2-linjefejlanalyseringsinfo via GNU as"
+
+#~ msgid "Disable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Deaktivr Dwarf 2-linjefejlanalyseringsinfo via GNU as"
+
+#~ msgid "Specify range of registers to make fixed"
+#~ msgstr "Angiv interval af registre der skal gres faste"
+
+#~ msgid "bad operand"
+#~ msgstr "ugyldig operand"
+
+#~ msgid "bad value (%s) for -mmodel switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mmodel"
+
+#~ msgid "bad value (%s) for -msdata switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -msdata"
+
+#~ msgid "invalid argument of `%s' attribute"
+#~ msgstr "ugyldig parameter til egenskaben '%s'"
+
+#~ msgid "const objects cannot go in .sdata/.sbss"
+#~ msgstr "konstante objekter kan ikke anbringes i .sdata/.sbss"
+
+#~ msgid "invalid operand to %%s code"
+#~ msgstr "ugyldig operand til %%s-koden"
+
+#~ msgid "invalid operand to %%p code"
+#~ msgstr "ugyldig operand til %%p-koden"
+
+#~ msgid "bad insn for 'A'"
+#~ msgstr "ugyldig instruktion for 'A'"
+
+#~ msgid "invalid operand to %%T/%%B code"
+#~ msgstr "ugyldig operand til %%T/%%B-koden"
+
+#~ msgid "invalid operand to %%N code"
+#~ msgstr "ugyldig operand til %%N-koden"
+
+#~ msgid "pre-increment address is not a register"
+#~ msgstr "prfiks forgelsesadresse er ikke et register"
+
+#~ msgid "pre-decrement address is not a register"
+#~ msgstr "prfiks formindskelsesadresse er ikke et register"
+
+#~ msgid "post-increment address is not a register"
+#~ msgstr "postfiks forgelsesadresse er ikke et register"
+
+#~ msgid "bad address"
+#~ msgstr "ugyldig adresse"
+
+#~ msgid "lo_sum not of register"
+#~ msgstr "lo_sum ikke af register"
+
+#~ msgid "Display compile time statistics"
+#~ msgstr "Vis oversttelsesstatistikker"
+
+#~ msgid "Align all loops to 32 byte boundary"
+#~ msgstr "Justr alle lkker til 32 byte-grnserne"
+
+#~ msgid "Only issue one instruction per cycle"
+#~ msgstr "Udfr kun n instruktion pr. cyklus"
+
+#~ msgid "Prefer branches over conditional execution"
+#~ msgstr "Foretrk forgrening frem for betinget udfrelse"
+
+#~ msgid "Code size: small, medium or large"
+#~ msgstr "Kodestrrelse: small, medium eller large"
+
+#~ msgid "Small data area: none, sdata, use"
+#~ msgstr "Omrde til sm data: none, sdata, use"
+
+#~ msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+#~ msgstr "-f%s ignoreret for 68HC11/68HC12 (ikke understttet)"
+
+#~ msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+#~ msgstr "egenskaberne 'trap' og 'far' kan ikke bruges p samme tid, ignorerer 'far'"
+
+#~ msgid "`trap' attribute is already used"
+#~ msgstr "egenskaben 'trap' er allerede benyttet"
+
+#~ msgid "move insn not handled"
+#~ msgstr "flytteinstruktion ikke hndteret"
+
+#~ msgid "invalid register in the move instruction"
+#~ msgstr "ugyldigt register i flytteinstruktionen"
+
+#~ msgid "invalid operand in the instruction"
+#~ msgstr "ugyldig operand i instruktionen"
+
+#~ msgid "invalid register in the instruction"
+#~ msgstr "ugyldigt register i instruktionen"
+
+#~ msgid "operand 1 must be a hard register"
+#~ msgstr "operand 1 skal vre et hrdt register"
+
+#~ msgid "invalid rotate insn"
+#~ msgstr "ugyldig roteringsinstruktion"
+
+#~ msgid "registers IX, IY and Z used in the same INSN"
+#~ msgstr "registrene IX, IY og Z benyttet i samme INSN"
+
+#~ msgid "cannot do z-register replacement"
+#~ msgstr "kan ikke udfre Z-registererstatning"
+
+#~ msgid "invalid Z register replacement for insn"
+#~ msgstr "ugyldig Z-registererstatning for instruktion"
+
+#~ msgid "Compile with 16-bit integer mode"
+#~ msgstr "Overst med 16 bit-heltalstilstand"
+
+#~ msgid "Compile with 32-bit integer mode"
+#~ msgstr "Overst med 32 bit-heltalstilstand"
+
+#~ msgid "Auto pre/post decrement increment allowed"
+#~ msgstr "Selvformindskelse tilladt"
+
+#~ msgid "Auto pre/post decrement increment not allowed"
+#~ msgstr "Selvforgelse ikke tilladt"
+
+#~ msgid "Min/max instructions allowed"
+#~ msgstr "Min/max-instruktioner tilladt"
+
+#~ msgid "Min/max instructions not allowed"
+#~ msgstr "Min/max-instruktioner ikke tilladt"
+
+#~ msgid "Use call and rtc for function calls and returns"
+#~ msgstr "Benyt call og rtc til funktionskald og returneringer"
+
+#~ msgid "Use jsr and rts for function calls and returns"
+#~ msgstr "Benyt jsr og rts til funktionskald og returneringer"
+
+#~ msgid "Do not use direct addressing mode for soft registers"
+#~ msgstr "Benyt ikke direkte adresseringstilstand til blde registre"
+
+#~ msgid "Use direct addressing mode for soft registers"
+#~ msgstr "Benyt direkte adresseringstilstand til blde registre"
+
+#~ msgid "Compile for a 68HC11"
+#~ msgstr "Overst til en 68HC11"
+
+#~ msgid "Compile for a 68HC12"
+#~ msgstr "Overst til en 68HC12"
+
+#~ msgid "Compile for a 68HCS12"
+#~ msgstr "Overst til en 68HCS12"
+
+#~ msgid "Specify the register allocation order"
+#~ msgstr "Angiv registerallokeringsordnen"
+
+#~ msgid "Indicate the number of soft registers available"
+#~ msgstr "Angiv antallet af blde registre der er til rdighed"
+
+#~ msgid "-malign-loops=%d is not between 1 and %d"
+#~ msgstr "-malign-loops=%d er ikke mellem 1 og %d"
+
+#~ msgid "-malign-jumps=%d is not between 1 and %d"
+#~ msgstr "-malign-jumps=%d er ikke mellem 1 og %d"
+
+#~ msgid "-malign-functions=%d is not between 1 and %d"
+#~ msgstr "-malign-functions=%d er ikke mellem 1 og %d"
+
+#~ msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+#~ msgstr "-fPIC understttes ikke p nuvrende tidspunkt p 68000 og 68010\n"
+
+#~ msgid "Generate code for a 68020"
+#~ msgstr "Generr kode til en 68020"
+
+#~ msgid "Generate code for a 68000"
+#~ msgstr "Generr kode til en 68000"
+
+#~ msgid "Use the bit-field instructions"
+#~ msgstr "Benyt bitfeltinstruktionerne"
+
+#~ msgid "Do not use the bit-field instructions"
+#~ msgstr "Benyt ikke bitfeltinstruktionerne"
+
+#~ msgid "Use different calling convention using 'rtd'"
+#~ msgstr "Benyt anden kaldekonvention vha. 'rtd'"
+
+#~ msgid "Consider type `int' to be 16 bits wide"
+#~ msgstr "Lad typen 'int' vre 16 bit bred"
+
+#~ msgid "Consider type `int' to be 32 bits wide"
+#~ msgstr "Lad typen 'int' vre 32 bit bred"
+
+#~ msgid "Generate code for a Sun FPA"
+#~ msgstr "Generr kode til en Sun FPA"
+
+#~ msgid "Do not generate code for a Sun FPA"
+#~ msgstr "Generr ikke kode til en Sun FPA"
+
+#~ msgid "Generate code for a Sun Sky board"
+#~ msgstr "Generr kode til et Sun Sky-kort"
+
+#~ msgid "Do not use Sky linkage convention"
+#~ msgstr "Benyt ikke Sky-kdningskonventionen"
+
+#~ msgid "Generate code for a 68881"
+#~ msgstr "Generr kode til en 68881"
+
+#~ msgid "Generate code with library calls for floating point"
+#~ msgstr "Generr kode med bibliotekskald for kommatalsoperationer"
+
+#~ msgid "Generate code for a 68040, without any new instructions"
+#~ msgstr "Generr kode til en 68040 uden nogen nye instruktioner"
+
+#~ msgid "Generate code for a 68060, without any new instructions"
+#~ msgstr "Generr kode til en 68060 uden nogen nye instruktioner"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Generr kode til en 68030"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Generr kode til en 68040"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Generr kode til en 68060"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Generr kode til en 520X"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Generr kode til en 68851"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Generr ikke kode til en 68851"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Generr kode til en 68302"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Generr kode til en 68332"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Generr kode til en cpu32"
+
+#~ msgid "Align variables on a 32-bit boundary"
+#~ msgstr "Justr variabler til 32 bit-grnserne"
+
+#~ msgid "Align variables on a 16-bit boundary"
+#~ msgstr "Justr variabler til 16 bit-grnserne"
+
+#~ msgid "Generate pc-relative code"
+#~ msgstr "Generr pc-relativ kode"
+
+#~ msgid "Do not use unaligned memory references"
+#~ msgstr "Benyt ikke ikke-justerede hukommelsesreferencer"
+
+#~ msgid "Use unaligned memory references"
+#~ msgstr "Benyt ikke-justerede hukommelsesreferencer"
+
+#~ msgid "internal gcc monitor: short-branch(%x)"
+#~ msgstr "intern GCC-overvgning: short-branch(%x)"
+
+#~ msgid "internal gcc error: Can't express symbolic location"
+#~ msgstr "intern GCC-fejl: Kan ikke udtrykke symbolsk placering"
+
+#~ msgid "argument #%d is a structure"
+#~ msgstr "%d. parameter er en struktur"
+
+#~ msgid "%%R not followed by %%B/C/D/E"
+#~ msgstr "%%R efterflges ikke af %%B/C/D/E"
+
+#~ msgid "invalid %%x/X value"
+#~ msgstr "ugyldig %%x/X-vrdi"
+
+#~ msgid "invalid %%Q value"
+#~ msgstr "ugyldig %%Q-vrdi"
+
+#~ msgid "invalid %%q value"
+#~ msgstr "ugyldig %%q-vrdi"
+
+#~ msgid "invalid %%o value"
+#~ msgstr "ugyldig %%o-vrdi"
+
+#~ msgid "invalid %%p value"
+#~ msgstr "ugyldig %%p-vrdi"
+
+#~ msgid "invalid %%s/S value"
+#~ msgstr "ugyldig %%s/S-vrdi"
+
+#~ msgid "invalid %%P operand"
+#~ msgstr "ugyldig %%P-operand"
+
+#~ msgid "invalid %%B value"
+#~ msgstr "ugyldig %%B-vrdi"
+
+#~ msgid "invalid %%D value"
+#~ msgstr "ugyldig %%D-vrdi"
+
+#~ msgid "`%%d' operand isn't a register"
+#~ msgstr "operanden '%%d' er ikke et register"
+
+#~ msgid "operand is r0"
+#~ msgstr "operanden er r0"
+
+#~ msgid "operand is const_double"
+#~ msgstr "operanden er const_double"
+
+#~ msgid "invalid code"
+#~ msgstr "ugyldig kode"
+
+#~ msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+#~ msgstr "-mtrap-large-shift og -mhandle-large-shift er indbyrdes uforenelige"
+
+#~ msgid "invalid option `-mshort-data-%s'"
+#~ msgstr "ugyldigt tilvalg '-mshort-data-%s'"
+
+#~ msgid "-mshort-data-%s is too large "
+#~ msgstr "-mshort-data-%s er for stor"
+
+#~ msgid "-mshort-data-%s and PIC are incompatible"
+#~ msgstr "-mshort-data-%s og PIC er indbyrdes uforenelige"
+
+#~ msgid "invalid option `-mstack-increment=%s'"
+#~ msgstr "ugyldigt tilvalg '-mshort-increment=%s'"
+
+#~ msgid "Inline constants if it can be done in 2 insns or less"
+#~ msgstr "Indlejr konstanter hvis det kan gres med 2 instruktioner eller mindre"
+
+#~ msgid "Inline constants if it only takes 1 instruction"
+#~ msgstr "Indlejr konstanter hvis det kan gres med 1 instruktion"
+
+#~ msgid "Set maximum alignment to 4"
+#~ msgstr "St maksimal justering til 4"
+
+#~ msgid "Set maximum alignment to 8"
+#~ msgstr "St maksimal justering til 8"
+
+#~ msgid "Do not use the divide instruction"
+#~ msgstr "Benyt ikke divisionsinstruktionen"
+
+#~ msgid "Do not arbitrary sized immediates in bit operations"
+#~ msgstr "Benyt ikke vilkrlige strrelsers umiddelbare vrdier i bitoperationer"
+
+#~ msgid "Always treat bit-field as int-sized"
+#~ msgstr "Behandl altid bitfelter som af strrelsen int"
+
+#~ msgid "Force functions to be aligned to a 4 byte boundary"
+#~ msgstr "Tving funktioner til at blive justeret til en 4 byte-grnse"
+
+#~ msgid "Force functions to be aligned to a 2 byte boundary"
+#~ msgstr "Tving funktioner til at blive justeret til en 2 byte-grnse"
+
+#~ msgid "Emit call graph information"
+#~ msgstr "Udsend kaldegrafinfo"
+
+#~ msgid "Prefer word accesses over byte accesses"
+#~ msgstr "Foretrk ord-tilgange frem for byte-tilgange"
+
+#~ msgid "Generate code for the M*Core M340"
+#~ msgstr "Generr kode til en M*Core M340"
+
+#~ msgid "Maximum amount for a single stack increment operation"
+#~ msgstr "Maksimalt antal for en enkelt stakforgelsesoperation"
+
+#~ msgid "bad value (%s) for -mabi= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mabi="
+
+#~ msgid "-mips%d conflicts with the other architecture options, which specify a MIPS%d processor"
+#~ msgstr "-mips%d er i konflikt med de andre arkitekturtilvalg som angiver en MIPS%d-processor"
+
+#~ msgid "bad value (%s) for -mips switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mips"
+
+#~ msgid "-march=%s is not compatible with the selected ABI"
+#~ msgstr "-march=%s er ikke forenelig med den valgte ABI"
+
+#~ msgid "-mgp64 used with a 32-bit processor"
+#~ msgstr "-mgp64 benyttet med en 32 bit-processor"
+
+#~ msgid "-mgp32 used with a 64-bit ABI"
+#~ msgstr "-mgp32 benyttet med et 64 bit-ABI"
+
+#~ msgid "-mgp64 used with a 32-bit ABI"
+#~ msgstr "-mgp64 benyttet med et 32 bit-ABI"
+
+#~ msgid "unsupported combination: %s"
+#~ msgstr "ikke-understttet kombination: %s"
+
+#~ msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+#~ msgstr "generering af Branch Likely-instruktioner er aktiveret, men ikke understttet af arkitekturen"
+
+#~ msgid "-G is incompatible with PIC code which is the default"
+#~ msgstr "-G er uforenelig med PIC-kode som genereres som standard"
+
+#~ msgid "-membedded-pic and -mabicalls are incompatible"
+#~ msgstr "-membedded-pic og -mabicalls er indbyrdes uforenelige"
+
+#~ msgid "-G and -membedded-pic are incompatible"
+#~ msgstr "-G og -membedded-pic er indbyrdes uforenelige"
+
+#~ msgid "invalid option `entry%s'"
+#~ msgstr "ugyldigt tilvalg 'entry%s'"
+
+#~ msgid "-mentry is only meaningful with -mips-16"
+#~ msgstr "-mentry giver kun mening sammen med -mips-16"
+
+#~ msgid "internal error: %%) found without a %%( in assembler pattern"
+#~ msgstr "intern fejl: %%) fundet uden en %%) i maskinkodeoversttermnster"
+
+#~ msgid "internal error: %%] found without a %%[ in assembler pattern"
+#~ msgstr "intern fejl: %%] fundet uden en %%[ i maskinkodeoversttermnster"
+
+#~ msgid "internal error: %%> found without a %%< in assembler pattern"
+#~ msgstr "intern fejl: %%> fundet uden en %%< i maskinkodeoversttermnster"
+
+#~ msgid "internal error: %%} found without a %%{ in assembler pattern"
+#~ msgstr "intern fejl: %%} fundet uden en %%{ i maskinkodeoversttermnster"
+
+#~ msgid "PRINT_OPERAND: unknown punctuation '%c'"
+#~ msgstr "PRINT_OPERAND: ukendt tegnstning '%c'"
+
+#~ msgid "PRINT_OPERAND null pointer"
+#~ msgstr "PRINT_OPERAND nul-henvisning"
+
+#~ msgid "invalid use of %%d, %%x, or %%X"
+#~ msgstr "ugyldigt brug af %%d, %%x eller %%X"
+
+#~ msgid "PRINT_OPERAND_ADDRESS, null pointer"
+#~ msgstr "PRINT_OPERAND_ADDRESS, nul-henvisning"
+
+#~ msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+#~ msgstr "MIPS ECOFF-formatet tillader ikke skift af filnavne inden i funktioner med #line"
+
+#~ msgid "can't rewind temp file"
+#~ msgstr "kan ikke spole midlertidig fil tilbage"
+
+#~ msgid "can't write to output file"
+#~ msgstr "kan ikke skrive i uddatafil"
+
+#~ msgid "can't read from temp file"
+#~ msgstr "kan ikke lse fra midlertidig fil"
+
+#~ msgid "can't close temp file"
+#~ msgstr "kan ikke lukke midlertidig fil"
+
+#~ msgid "gp_offset (%ld) or end_offset (%ld) is less than zero"
+#~ msgstr "gp_offset (%ld) eller end_offset (%ld) er mindre end nul"
+
+#~ msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+#~ msgstr "fp_offset (%ld) eller end_offset (%ld) er mindre end nul"
+
+#~ msgid "can not handle inconsistent calls to `%s'"
+#~ msgstr "kan ikke hndtere inkonsistente kald af '%s'"
+
+#~ msgid "the cpu name must be lower case"
+#~ msgstr "processornavnet skal staves med sm bogstaver"
+
+#~ msgid "bad value (%s) for %s"
+#~ msgstr "ugyldig vrdi (%s) for %s"
+
+#~ msgid "No default crt0.o"
+#~ msgstr "Ingen standard crt0.o"
+
+#~ msgid "Use 64-bit int type"
+#~ msgstr "Benyt 64 bit int-type"
+
+#~ msgid "Use 64-bit long type"
+#~ msgstr "Benyt 64 bit long-type"
+
+#~ msgid "Use 32-bit long type"
+#~ msgstr "Benyt 32 bit long-type"
+
+#~ msgid "Optimize lui/addiu address loads"
+#~ msgstr "Optimr lui/addiu-adresseindlsninger"
+
+#~ msgid "Don't optimize lui/addiu address loads"
+#~ msgstr "Optimr ikke lui/addiu-adresseindlsninger"
+
+# 'as' str for assembler
+#~ msgid "Use MIPS as"
+#~ msgstr "Benyt MIPS as"
+
+#~ msgid "Use GNU as"
+#~ msgstr "Benyt GNU as"
+
+#~ msgid "Use symbolic register names"
+#~ msgstr "Benyt symbolske registernavne"
+
+#~ msgid "Don't use symbolic register names"
+#~ msgstr "Benyt ikke symbolske registernavne"
+
+#~ msgid "Use GP relative sdata/sbss sections"
+#~ msgstr "Benyt GP-relative sdata/sbss-sektioner"
+
+#~ msgid "Don't use GP relative sdata/sbss sections"
+#~ msgstr "Benyt ikke GP-relative sdata/sbss-sektioner"
+
+#~ msgid "Output compiler statistics"
+#~ msgstr "Udsend oversttelsesstatistik"
+
+#~ msgid "Don't output compiler statistics"
+#~ msgstr "Udsend ikke oversttelsesstatistik"
+
+#~ msgid "Don't optimize block moves"
+#~ msgstr "Optimr ikke blokflytninger"
+
+#~ msgid "Optimize block moves"
+#~ msgstr "Optimr blokflytninger"
+
+#~ msgid "Use mips-tfile asm postpass"
+#~ msgstr "Benyt mips-tfile-maskinkodeefterfase"
+
+#~ msgid "Don't use mips-tfile asm postpass"
+#~ msgstr "Benyt ikke mips-tfile-maskinkodeefterfase"
+
+#~ msgid "Use hardware floating point"
+#~ msgstr "Benyt hardware-kommatal"
+
+#~ msgid "Use 64-bit FP registers"
+#~ msgstr "Benyt 64 bit-kommatalsregistre"
+
+#~ msgid "Use 32-bit FP registers"
+#~ msgstr "Benyt 32 bit-kommatalsregistre"
+
+#~ msgid "Use 64-bit general registers"
+#~ msgstr "Benyt 64 bit almene registre"
+
+#~ msgid "Use 32-bit general registers"
+#~ msgstr "Benyt 32 bit almene registre"
+
+#~ msgid "Use Irix PIC"
+#~ msgstr "Benyt Irix PIC"
+
+#~ msgid "Don't use Irix PIC"
+#~ msgstr "Benyt ikke Irix PIC"
+
+#~ msgid "Use indirect calls"
+#~ msgstr "Benyt indirekte kald"
+
+#~ msgid "Don't use indirect calls"
+#~ msgstr "Benyt ikke indirekte kald"
+
+#~ msgid "Use embedded PIC"
+#~ msgstr "Benyt indlejret PIC"
+
+#~ msgid "Don't use embedded PIC"
+#~ msgstr "Benyt ikke indlejret PIC"
+
+#~ msgid "Use ROM instead of RAM"
+#~ msgstr "Benyt ROM i stedet for RAM"
+
+#~ msgid "Don't use ROM instead of RAM"
+#~ msgstr "Benyt ikke ROM i stedet for RAM"
+
+#~ msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+#~ msgstr "Anbring konstanter uden startvrdi i ROM (behver -membedded-data)"
+
+#~ msgid "Don't put uninitialized constants in ROM"
+#~ msgstr "Anbring ikke konstanter uden startvrdi i ROM"
+
+#~ msgid "Use big-endian byte order"
+#~ msgstr "Benyt storendet byteordning"
+
+#~ msgid "Use little-endian byte order"
+#~ msgstr "Benyt lilleendet byteordning"
+
+#~ msgid "Use single (32-bit) FP only"
+#~ msgstr "Benyt kun enkeltprcisions (32 bit) kommatal"
+
+#~ msgid "Don't use single (32-bit) FP only"
+#~ msgstr "Benyt ikke kun enkeltprcisions (32 bit) kommatal"
+
+# hvad s det er...
+#~ msgid "Use multiply accumulate"
+#~ msgstr "Benyt multiplikationsakkumulering"
+
+#~ msgid "Don't use multiply accumulate"
+#~ msgstr "Benyt ikke multiplikationsakkumulering"
+
+#~ msgid "Don't generate fused multiply/add instructions"
+#~ msgstr "Generr ikke sammensatte gang/addr-instruktioner"
+
+#~ msgid "Generate fused multiply/add instructions"
+#~ msgstr "Generr sammensatte gang/addr-instruktioner"
+
+#~ msgid "Work around early 4300 hardware bug"
+#~ msgstr "Arbejd rundt om tidlig 4300-hardwarefejl"
+
+#~ msgid "Don't work around early 4300 hardware bug"
+#~ msgstr "Arbejd ikke rundt om tidlig 4300-hardwarefejl"
+
+#~ msgid "Trap on integer divide by zero"
+#~ msgstr "Forrsag undtagelse ved heltalsdivision med nul"
+
+#~ msgid "Don't trap on integer divide by zero"
+#~ msgstr "Forrsag ikke undtagelse ved heltalsdivision med nul"
+
+#~ msgid "Trap on integer divide overflow"
+#~ msgstr "Forrsag undtagelse ved heltalsdivisionsoverlb"
+
+#~ msgid "Don't trap on integer divide overflow"
+#~ msgstr "Forrsag ikke undtagelse ved heltalsdivisionsoverlb"
+
+#~ msgid "Use Branch Likely instructions, overriding default for arch"
+#~ msgstr "Benyt Branch Likely-instruktioner, overskrivende forvalget for arkitektur"
+
+#~ msgid "Don't use Branch Likely instructions, overriding default for arch"
+#~ msgstr "Benyt ikke Branch Likely-instruktioner, overskrivende forvalget for arkitektur"
+
+#~ msgid "Specify CPU for scheduling purposes"
+#~ msgstr "Angiv processor til planlgningsforml"
+
+#~ msgid "Specify CPU for code generation purposes"
+#~ msgstr "Angiv processor til kodegenereringsforml"
+
+#~ msgid "Specify an ABI"
+#~ msgstr "Angiv en ABI"
+
+#~ msgid "Specify a Standard MIPS ISA"
+#~ msgstr "Angiv en Standard MIPS ISA"
+
+#~ msgid "Use mips16 entry/exit psuedo ops"
+#~ msgstr "Benyt MIPS16-indtrdelse-/afslutningspseudooperationer"
+
+#~ msgid "Don't use MIPS16 instructions"
+#~ msgstr "Benyt ikke MIPS16-instruktioner"
+
+#~ msgid "Don't call any cache flush functions"
+#~ msgstr "Kald ikke nogen mellemlagertmningsfunktion"
+
+#~ msgid "Specify cache flush function"
+#~ msgstr "Angiv mellemlagertmningsfunktion"
+
+#~ msgid "mips16 function profiling"
+#~ msgstr "MIPS16-funktionsprofilering"
+
+#~ msgid "-f%s not supported: ignored"
+#~ msgstr "-f%s er ikke understttet: ignoreret"
+
+#~ msgid "too large function value type, needs %d registers, have only %d registers for this"
+#~ msgstr "for stor funktionsvrditype, behver %d registre, har kun %d registre til dette"
+
+#~ msgid "function_profiler support for MMIX"
+#~ msgstr "function_profiler-understttelse for MMIX"
+
+#~ msgid "MMIX Internal: Last named vararg would not fit in a register"
+#~ msgstr "MMIX-intern: Sidst navngivne variabel parameter kan ikke passes i et register"
+
+#~ msgid "MMIX Internal: Expected a CONST_INT, not this"
+#~ msgstr "MMIX-intern: Forventede en CONST_INT, ikke dette"
+
+#~ msgid "MMIX Internal: Bad register: %d"
+#~ msgstr "MMIX-intern: Ugyldigt register: %d"
+
+#~ msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+#~ msgstr "MMIX-intern: Ugyldigt vrdi for 'm', ikke en CONST_INT"
+
+#~ msgid "MMIX Internal: Expected a register, not this"
+#~ msgstr "MMIX-intern: Forventede et register, ikke dette"
+
+#~ msgid "MMIX Internal: Expected a constant, not this"
+#~ msgstr "MMIX-intern: Forventede en konstant, ikke dette"
+
+#~ msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+#~ msgstr "MMIX-intern: Mangler '%c'-case i mmix_print_operand"
+
+#~ msgid "MMIX Internal: Cannot decode this operand"
+#~ msgstr "MMIX-intern: Kan ikke dekode denne operand"
+
+#~ msgid "MMIX Internal: This is not a recognized address"
+#~ msgstr "MMIX-intern: Dette er ikke en genkendt adresse"
+
+#~ msgid "stack frame not a multiple of 8 bytes: %d"
+#~ msgstr "stakramme ikke et produkt af 8 byte: %d"
+
+#~ msgid "stack frame not a multiple of octabyte: %d"
+#~ msgstr "stakramme ikke et produkt af 8 byte: %d"
+
+#~ msgid "MMIX Internal: %s is not a shiftable int"
+#~ msgstr "MMIX-intern: %s er ikke en int der kan skiftes"
+
+#~ msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+#~ msgstr "MMIX-intern: Forsger at udskrive ugyldigt omvendt betingelse:"
+
+#~ msgid "MMIX Internal: What's the CC of this?"
+#~ msgstr "MMIX-intern: Hvad er CC af dette?"
+
+#~ msgid "MMIX Internal: What is the CC of this?"
+#~ msgstr "MMIX-intern: Hvad er CC af dette?"
+
+#~ msgid "MMIX Internal: This is not a constant:"
+#~ msgstr "MMIX-intern: Dette er ikke en konstant:"
+
+#~ msgid "Set start-address of the program"
+#~ msgstr "Angiv startadressen for programmet"
+
+#~ msgid "Set start-address of data"
+#~ msgstr "Angiv startadressen for data"
+
+#~ msgid "For intrinsics library: pass all parameters in registers"
+#~ msgstr "For indbyggede biblioteker: overbring alle parametre i registre"
+
+#~ msgid "Use register stack for parameters and return value"
+#~ msgstr "Benyt registerstakken til parametre og returvrdier"
+
+#~ msgid "Use call-clobbered registers for parameters and return value"
+#~ msgstr "Benyt kaldeoptagne registre til parametre og returvrdier"
+
+#~ msgid "Use epsilon-respecting floating point compare instructions"
+#~ msgstr "Benyt epsilon-respekterende instruktioner til kommatalssammenligning"
+
+#~ msgid "Use zero-extending memory loads, not sign-extending ones"
+#~ msgstr "Benyt nul-udvidende hukommelsesindlsninger, ikke fortegnsudvidende"
+
+#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+#~ msgstr "Generr divisionsresultater med rest som har det samme fortegn som nvneren (ikke tlleren)"
+
+#~ msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+#~ msgstr "Tilfj \":\" til starten af globale symboler (til brug sammen med PREFIX)"
+
+#~ msgid "Do not provide a default start-address 0x100 of the program"
+#~ msgstr "Tilbyd ikke standardstartadressen 0x100 for programmet"
+
+#~ msgid "Link to emit program in ELF format (rather than mmo)"
+#~ msgstr "Lad sammenkdningen udsende programmet i ELF-format (i stedet for mmo)"
+
+#~ msgid "Use P-mnemonics for branches statically predicted as taken"
+#~ msgstr "Benyt P-aliaser for forgreninger som statistisk forudses at blive taget"
+
+#~ msgid "Don't use P-mnemonics for branches"
+#~ msgstr "Benyt ikke P-aliaser for forgreninger"
+
+#~ msgid "Use addresses that allocate global registers"
+#~ msgstr "Benyt adresser der allokerer globale registre"
+
+#~ msgid "Do not use addresses that allocate global registers"
+#~ msgstr "Benyt ikke adresser der allokerer globale registre"
+
+#~ msgid "Generate a single exit point for each function"
+#~ msgstr "Generr et enkelt afslutningspunkt for hver funktion"
+
+#~ msgid "Do not generate a single exit point for each function"
+#~ msgstr "Generr ikke et enkelt afslutningspunkt for hver funktion"
+
+#~ msgid "Work around hardware multiply bug"
+#~ msgstr "Arbejd omkring hardware-multiplikationsfejl"
+
+#~ msgid "Do not work around hardware multiply bug"
+#~ msgstr "Arbejd ikke omkring hardware-multiplikationsfejl"
+
+#~ msgid "Target the AM33 processor"
+#~ msgstr "Mlret mod AM33-processoren"
+
+#~ msgid "Enable linker relaxations"
+#~ msgstr "Aktivr tolerant sammenkdning"
+
+#~ msgid "Don't use hardware fp"
+#~ msgstr "Benyt ikke hardware-kommatal"
+
+#~ msgid "Alternative calling convention"
+#~ msgstr "Alternativ kaldekonvention"
+
+#~ msgid "Pass some arguments in registers"
+#~ msgstr "Overbring nogle parametre i registre"
+
+#~ msgid "Pass all arguments on stack"
+#~ msgstr "Overbring alle parametre p stakken"
+
+#~ msgid "Optimize for 32532 cpu"
+#~ msgstr "Optimr for en 32532-processor"
+
+#~ msgid "Optimize for 32332 cpu"
+#~ msgstr "Optimr for en 32332-processor"
+
+#~ msgid "Optimize for 32032"
+#~ msgstr "Optimr for en 32032-processor"
+
+#~ msgid "Register sb is zero. Use for absolute addressing"
+#~ msgstr "Registeret 'sb' er nul; benyt til absolut adressering"
+
+#~ msgid "Do not use register sb"
+#~ msgstr "Benyt ikke registeret 'sb'"
+
+#~ msgid "Use bit-field instructions"
+#~ msgstr "Benyt bitfeltinstruktioner"
+
+#~ msgid "Do not use bit-field instructions"
+#~ msgstr "Benyt ikke bitfeltinstruktioner"
+
+#~ msgid "Generate code for high memory"
+#~ msgstr "Generr kode til hj hukommelse"
+
+#~ msgid "Generate code for low memory"
+#~ msgstr "Generr kode til lav hukommelse"
+
+#~ msgid "32381 fpu"
+#~ msgstr "32381-fpu"
+
+#~ msgid "Use multiply-accumulate fp instructions"
+#~ msgstr "Benyt kommatalsinstruktioner til multiplikationsakkumulering"
+
+#~ msgid "Do not use multiply-accumulate fp instructions"
+#~ msgstr "Benyt ikke kommatalsinstruktioner til multiplikationsakkumulering"
+
+#~ msgid "\"Small register classes\" kludge"
+#~ msgstr "\"Sm registerklasser\"-lapning"
+
+#~ msgid "No \"Small register classes\" kludge"
+#~ msgstr "Ingen \"Sm registerklasser\"-lapning"
+
+#~ msgid ""
+#~ "unknown -mschedule= option (%s).\n"
+#~ "Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+#~ msgstr ""
+#~ "ukendt parameter til -mschedule= (%s).\n"
+#~ "Gyldige parametre er 700, 7100, 7100LC, 7200, 7300 og 8000\n"
+
+#~ msgid ""
+#~ "unknown -march= option (%s).\n"
+#~ "Valid options are 1.0, 1.1, and 2.0\n"
+#~ msgstr ""
+#~ "ukendt parameter til -march= (%s).\n"
+#~ "Gyldige parametre er 1.0, 1.1 og 2.0\n"
+
+#~ msgid "PIC code generation is not supported in the portable runtime model\n"
+#~ msgstr "PIC-kodegenerering er ikke understttet i den portable krselsmodel\n"
+
+#~ msgid "PIC code generation is not compatible with fast indirect calls\n"
+#~ msgstr "PIC-kodegenerering er ikke kompatibel med hurtige indirekte kald\n"
+
+#~ msgid "-g is only supported when using GAS on this processor,"
+#~ msgstr "-g er kun understttet ved brug af GAS p denne processor,"
+
+#~ msgid "-g option disabled"
+#~ msgstr "tilvalget -g deaktiveret"
+
+#~ msgid "Generate cpp defines for server IO"
+#~ msgstr "Generr CPP-defineringer til server-IO"
+
+#~ msgid "Generate cpp defines for workstation IO"
+#~ msgstr "Generr CPP-defineringer til arbejdsstation-IO"
+
+#~ msgid "Generate PA1.1 code"
+#~ msgstr "Generr PA1.1-kode"
+
+#~ msgid "Generate PA1.0 code"
+#~ msgstr "Generr PA1.0-kode"
+
+#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+#~ msgstr "Generr PA2.0-kode (krver binutils 2.10 eller nyere)"
+
+#~ msgid "Disable FP regs"
+#~ msgstr "Deaktivr kommatalsregistre"
+
+#~ msgid "Do not disable FP regs"
+#~ msgstr "Deaktivr ikke kommatalsregistre"
+
+#~ msgid "Disable space regs"
+#~ msgstr "Deaktivr pladsregistre"
+
+#~ msgid "Do not disable space regs"
+#~ msgstr "Deaktivr ikke pladsregistre"
+
+#~ msgid "Put jumps in call delay slots"
+#~ msgstr "Anbring spring p kaldeventetidspladser"
+
+#~ msgid "Do not put jumps in call delay slots"
+#~ msgstr "Anbring ikke spring p kaldeventetidspladser"
+
+#~ msgid "Disable indexed addressing"
+#~ msgstr "Deaktivr indekseret adressering"
+
+#~ msgid "Do not disable indexed addressing"
+#~ msgstr "Deaktivr ikke indekseret adressering"
+
+#~ msgid "Use portable calling conventions"
+#~ msgstr "Benyt portable kaldekonventioner"
+
+#~ msgid "Do not use portable calling conventions"
+#~ msgstr "Benyt ikke portable kaldekonventioner"
+
+#~ msgid "Assume code will be assembled by GAS"
+#~ msgstr "Antag at koden bliver oversat af GAS"
+
+#~ msgid "Do not assume code will be assembled by GAS"
+#~ msgstr "Antag ikke at koden bliver oversat af GAS"
+
+#~ msgid "Do not use software floating point"
+#~ msgstr "Benyt ikke softwarekommatal"
+
+#~ msgid "Emit long load/store sequences"
+#~ msgstr "Udsend lange load/store-sekvenser"
+
+#~ msgid "Do not emit long load/store sequences"
+#~ msgstr "Udsend ikke lange load/store-sekvenser"
+
+#~ msgid "Generate fast indirect calls"
+#~ msgstr "Generr hurtige indirekte kald"
+
+#~ msgid "Do not generate fast indirect calls"
+#~ msgstr "Generr ikke hurtige indirekte kald"
+
+#~ msgid "Generate code for huge switch statements"
+#~ msgstr "Generr kode til store switch-stninger"
+
+#~ msgid "Do not generate code for huge switch statements"
+#~ msgstr "Generr ikke kode til store switch-stninger"
+
+#~ msgid "Always generate long calls"
+#~ msgstr "Generr altid lange kalde"
+
+#~ msgid "Generate long calls only when needed"
+#~ msgstr "Generr kun lange kalde nr det er ndvendigt"
+
+#~ msgid "Enable linker optimizations"
+#~ msgstr "Aktivr sammenkderoptimeringer"
+
+#~ msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+#~ msgstr "Angiv arkitekturen for kodegenerering. Mulige vrdier er 1.0, 1.1 og 2.0. 2.0 krver GAS-snapshot 19990413 eller senere."
+
+#~ msgid "Assume code will be linked by GNU ld"
+#~ msgstr "Antag at kode vil blive sammenkdet med GNU ld"
+
+#~ msgid "Assume code will be linked by HP ld"
+#~ msgstr "Antag at kode vil blive sammenkdet med HP ld"
+
+#~ msgid "Do not use hardware floating point"
+#~ msgstr "Benyt ikke hardware-kommatal"
+
+#~ msgid "Return floating point results in ac0"
+#~ msgstr "Returnr kommatalsresultater i ac0"
+
+#~ msgid "Return floating point results in memory"
+#~ msgstr "Returnr kommatalsresultater i hukommelse"
+
+#~ msgid "Generate code for an 11/40"
+#~ msgstr "Generr kode til en 11/40"
+
+#~ msgid "Generate code for an 11/45"
+#~ msgstr "Generr kode til en 11/45"
+
+#~ msgid "Generate code for an 11/10"
+#~ msgstr "Generr kode til en 11/10"
+
+#~ msgid "Use 32 bit int"
+#~ msgstr "Benyt 32 bit int"
+
+#~ msgid "Use 16 bit int"
+#~ msgstr "Benyt 16 bit int"
+
+#~ msgid "Use 32 bit float"
+#~ msgstr "Benyt 32 bit float"
+
+#~ msgid "Use 64 bit float"
+#~ msgstr "Benyt 64 bit float"
+
+#~ msgid "Target has split I&D"
+#~ msgstr "Mlarkitektur har delt I&D"
+
+#~ msgid "Target does not have split I&D"
+#~ msgstr "Mlarkitektur har ikke delt I&D"
+
+#~ msgid "Use UNIX assembler syntax"
+#~ msgstr "Benyt UNIX-maskinkodesyntaks"
+
+#~ msgid "Use DEC assembler syntax"
+#~ msgstr "Benyt DEC-maskinkodesyntaks"
+
+#~ msgid "invalid %%S value"
+#~ msgstr "ugyldig %%S-vrdi"
+
+#~ msgid "invalid %%b value"
+#~ msgstr "ugyldig %%b-vrdi"
+
+#~ msgid "invalid %%z value"
+#~ msgstr "ugyldig %%z-vrdi"
+
+#~ msgid "invalid %%Z value"
+#~ msgstr "ugyldig %%Z-vrdi"
+
+#~ msgid "invalid %%k value"
+#~ msgstr "ugyldig %%k-vrdi"
+
+#~ msgid "invalid %%j value"
+#~ msgstr "ugyldig %%j-vrdi"
+
+#~ msgid "can't have varargs with -mfp-arg-in-fp-regs"
+#~ msgstr "kan ikke have variable parameterlister med -mfp-arg-in-fp-regs"
+
+#~ msgid "ignoring malformed #pragma longcall"
+#~ msgstr "ignorerer forkert udformet #pragma longcall"
+
+#~ msgid "missing open paren"
+#~ msgstr "manglende startparantes"
+
+#~ msgid "missing number"
+#~ msgstr "manglende tal"
+
+#~ msgid "missing close paren"
+#~ msgstr "manglende slutparantes"
+
+#~ msgid "number must be 0 or 1"
+#~ msgstr "tal skal enten vre 0 eller 1"
+
+#~ msgid "junk at end of #pragma longcall"
+#~ msgstr "ragelse i slutningen af #pragma longcall"
+
+#~ msgid "-mmultiple is not supported on little endian systems"
+#~ msgstr "-mmultiple er ikke understttet p lilleendede systemer"
+
+#~ msgid "-mstring is not supported on little endian systems"
+#~ msgstr "-mstring er ikke understttet p lilleendede systemer"
+
+#~ msgid "unknown -mdebug-%s switch"
+#~ msgstr "ukendt tilvalg -mdebug-%s"
+
+#~ msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+#~ msgstr "ukendt parameter '%s' til -mtraceback; forventer 'full', 'partial' eller 'none'"
+
+#~ msgid "Unknown switch -mlong-double-%s"
+#~ msgstr "Ukendt tilvalg -mlong-double-%s"
+
+#~ msgid "unknown -misel= option specified: '%s'"
+#~ msgstr "ukendt tilvalg til -misel= angivet: '%s'"
+
+#~ msgid "unknown -mvrsave= option specified: '%s'"
+#~ msgstr "ukendt tilvalg til -mvrsave= angivet: '%s'"
+
+#~ msgid "unknown ABI specified: '%s'"
+#~ msgstr "ukendt ABI angivet: '%s'"
+
+#~ msgid "argument 1 must be a 5-bit signed literal"
+#~ msgstr "1. parameter skal vre en 5 bit-konstant med fortegn"
+
+#~ msgid "argument 2 must be a 5-bit unsigned literal"
+#~ msgstr "2. parameter skal vre en 5 bit-konstant uden fortegn"
+
+#~ msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+#~ msgstr "1. parameter til __builtin_altivec_predicate skal vre en konstant"
+
+#~ msgid "argument 1 of __builtin_altivec_predicate is out of range"
+#~ msgstr "1. parameter til __builtin_altivec_predicate er uden for det gyldige interval"
+
+#~ msgid "argument 3 must be a 4-bit unsigned literal"
+#~ msgstr "3. parameter skal vre en 4 bit-konstant uden fortegn"
+
+#~ msgid "argument to `%s' must be a 2-bit unsigned literal"
+#~ msgstr "parameter til '%s' skal vre en 2 bit-konstant uden fortegn"
+
+#~ msgid "argument to dss must be a 2-bit unsigned literal"
+#~ msgstr "parameter til dss skal vre en 2 bit-konstant uden fortegn"
+
+#~ msgid "argument 1 of __builtin_spe_predicate must be a constant"
+#~ msgstr "1. parameter til __builtin_spe_predicate skal vre en konstant"
+
+#~ msgid "argument 1 of __builtin_spe_predicate is out of range"
+#~ msgstr "1. parameter til __builtin_spe_predicate er uden for det gyldige interval"
+
+#~ msgid "invalid %%f value"
+#~ msgstr "ugyldig %%f-vrdi"
+
+#~ msgid "invalid %%F value"
+#~ msgstr "ugyldig %%F-vrdi"
+
+#~ msgid "invalid %%G value"
+#~ msgstr "ugyldig %%G-vrdi"
+
+#~ msgid "invalid %%j code"
+#~ msgstr "ugyldig %%j-kode"
+
+#~ msgid "invalid %%J code"
+#~ msgstr "ugyldig %%J-kode"
+
+#~ msgid "invalid %%K value"
+#~ msgstr "ugyldig %%K-vrdi"
+
+#~ msgid "invalid %%O value"
+#~ msgstr "ugyldig %%O-vrdi"
+
+#~ msgid "invalid %%T value"
+#~ msgstr "ugyldig %%T-vrdi"
+
+#~ msgid "invalid %%u value"
+#~ msgstr "ugyldig %%u-vrdi"
+
+#~ msgid "invalid %%v value"
+#~ msgstr "ugyldig %%v-vrdi"
+
+#~ msgid "no profiling of 64-bit code for this ABI"
+#~ msgstr "ingen profilering af 64 bit-kode for denne ABI"
+
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Overbring altid kommatalsparametre i hukommelse"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Overbring ikke altid kommatalsparametre i hukommelse"
+
+#~ msgid "Support message passing with the Parallel Environment"
+#~ msgstr "Understt meddelelsesoverbringelse med Parallel Environment"
+
+#~ msgid "Compile for 64-bit pointers"
+#~ msgstr "Overst for 64 bit-henvisninger"
+
+#~ msgid "Compile for 32-bit pointers"
+#~ msgstr "Overst for 32 bit-henvisninger"
+
+#~ msgid "-maix64 and POWER architecture are incompatible"
+#~ msgstr "-maix64 og POWER-arkitekturen er indbyrdes uforenelige"
+
+#~ msgid "-maix64 requires PowerPC64 architecture remain enabled"
+#~ msgstr "-maix64 krver at PowerPC64-arkitekturen forbliver aktiveret"
+
+#~ msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+#~ msgstr "-maix64 pkrvet: 64 bit-beregninger med 32 bit-adressering understttes endnu ikke"
+
+#~ msgid "Use POWER instruction set"
+#~ msgstr "Benyt POWER-instruktionssttet"
+
+#~ msgid "Use POWER2 instruction set"
+#~ msgstr "Benyt POWER2-instruktionssttet"
+
+#~ msgid "Do not use POWER2 instruction set"
+#~ msgstr "Benyt ikke POWER2-instruktionssttet"
+
+#~ msgid "Do not use POWER instruction set"
+#~ msgstr "Benyt ikke POWER-instruktionssttet"
+
+#~ msgid "Use PowerPC instruction set"
+#~ msgstr "Benyt PowerPC-instruktionssttet"
+
+#~ msgid "Do not use PowerPC instruction set"
+#~ msgstr "Benyt ikke PowerPC-instruktionssttet"
+
+#~ msgid "Use PowerPC General Purpose group optional instructions"
+#~ msgstr "Benyt valgfrie instruktioner fra PowerPC General Purpose-gruppen"
+
+#~ msgid "Don't use PowerPC General Purpose group optional instructions"
+#~ msgstr "Benyt ikke valgfrie instruktioner fra PowerPC General Purpose-gruppen"
+
+#~ msgid "Use PowerPC Graphics group optional instructions"
+#~ msgstr "Benyt valgfrie instruktioner fra PowerPC Graphics-gruppen"
+
+#~ msgid "Don't use PowerPC Graphics group optional instructions"
+#~ msgstr "Benyt ikke valgfrie instruktioner fra PowerPC Graphics-gruppen"
+
+#~ msgid "Use PowerPC-64 instruction set"
+#~ msgstr "Benyt PowerPC-64-instruktionssttet"
+
+#~ msgid "Don't use PowerPC-64 instruction set"
+#~ msgstr "Benyt ikke PowerPC-64-instruktionssttet"
+
+#~ msgid "Use AltiVec instructions"
+#~ msgstr "Benyt AltiVec-instruktioner"
+
+#~ msgid "Don't use AltiVec instructions"
+#~ msgstr "Benyt ikke AltiVec-instruktioner"
+
+#~ msgid "Use new mnemonics for PowerPC architecture"
+#~ msgstr "Benyt nye aliaser for PowerPC-arkitekturen"
+
+#~ msgid "Use old mnemonics for PowerPC architecture"
+#~ msgstr "Benyt tidligere aliaser for PowerPC-arkitekturen"
+
+#~ msgid "Put everything in the regular TOC"
+#~ msgstr "Anbring alting i den regulre indholdsfortegnelse"
+
+#~ msgid "Place floating point constants in TOC"
+#~ msgstr "Anbring kommatalskonstanter i indholdsfortegnelsen"
+
+#~ msgid "Don't place floating point constants in TOC"
+#~ msgstr "Anbring ikke kommatalskonstanter i indholdsfortegnelsen"
+
+#~ msgid "Place symbol+offset constants in TOC"
+#~ msgstr "Anbring symbol+afst-konstanter i indholdsfortegnelsen"
+
+#~ msgid "Don't place symbol+offset constants in TOC"
+#~ msgstr "Anbring ikke symbol+afst-konstanter i indholdsfortegnelsen"
+
+#~ msgid "Place variable addresses in the regular TOC"
+#~ msgstr "Anbring variabeladresser i den regulre indholdsfortegnelse"
+
+#~ msgid "Generate load/store multiple instructions"
+#~ msgstr "Generr flere indlsnings-/lagringsinstruktioner"
+
+#~ msgid "Do not generate load/store multiple instructions"
+#~ msgstr "Generr ikke flere indlsnings-/lagringsinstruktioner"
+
+#~ msgid "Generate string instructions for block moves"
+#~ msgstr "Generr strengoperationer til blokflytninger"
+
+#~ msgid "Do not generate string instructions for block moves"
+#~ msgstr "Generr ikke strengoperationer til blokflytninger"
+
+#~ msgid "Generate load/store with update instructions"
+#~ msgstr "Generr indlsning/lagring med opdateringsinstruktioner"
+
+#~ msgid "Do not generate load/store with update instructions"
+#~ msgstr "Generr ikke indlsning/lagring med opdateringsinstruktioner"
+
+#~ msgid "Don't schedule the start and end of the procedure"
+#~ msgstr "Planlg ikke begyndelsen og slutningen af proceduren"
+
+#~ msgid "Return all structures in memory (AIX default)"
+#~ msgstr "Returnr alle strukturer i hukommelse (SVR4-standard)"
+
+#~ msgid "Return small structures in registers (SVR4 default)"
+#~ msgstr "Returnr sm strukturer i registre (SVR4-standard)"
+
+#~ msgid "Use features of and schedule code for given CPU"
+#~ msgstr "Benyt faciliteter fra og planlg koden til en given processor"
+
+#~ msgid "Enable debug output"
+#~ msgstr "Aktivr fejlanalyseringsuddata"
+
+#~ msgid "Select full, part, or no traceback table"
+#~ msgstr "Vlg komplet, partiel eller ingen tilbagesporingstabel"
+
+#~ msgid "Specify ABI to use"
+#~ msgstr "Angiv ABI der skal bruges"
+
+#~ msgid "Specify size of long double (64 or 128 bits)"
+#~ msgstr "Angiv strrelsen af long double (64 eller 128 bit)"
+
+#~ msgid "Specify yes/no if isel instructions should be generated"
+#~ msgstr "Angiv yes/no hvis isel-instruktioner skal genereres"
+
+#~ msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+#~ msgstr "Angiv yes/no hvis VRSAVE-instruktioner skal genereres til AltiVec"
+
+#~ msgid "Avoid all range limits on call instructions"
+#~ msgstr "Undg alle omrdegrnser ved kaldeinstruktioner"
+
+#~ msgid "RETURN_ADDRESS_OFFSET not supported"
+#~ msgstr "RETURN_ADDRESS_OFFSET er ikke understttet"
+
+#~ msgid "Select ABI calling convention"
+#~ msgstr "Angiv ABI-kaldekonvention"
+
+#~ msgid "Select method for sdata handling"
+#~ msgstr "Angiv metode for sdata-hndtering"
+
+#~ msgid "Align to the base type of the bit-field"
+#~ msgstr "Justr til grundtypen for bitfeltet"
+
+#~ msgid "Don't align to the base type of the bit-field"
+#~ msgstr "Justr ikke til grundtypen for bitfeltet"
+
+#~ msgid "Don't assume that unaligned accesses are handled by the system"
+#~ msgstr "Antag ikke at ujusterede tilgange hndteres af systemet"
+
+#~ msgid "Assume that unaligned accesses are handled by the system"
+#~ msgstr "Antag at ujusterede tilgange hndteres af systemet"
+
+#~ msgid "Produce code relocatable at runtime"
+#~ msgstr "Generr kode som kan flyttes p krselstidspunktet"
+
+#~ msgid "Don't produce code relocatable at runtime"
+#~ msgstr "Generr ikke kode som kan flyttes p krselstidspunktet"
+
+#~ msgid "Produce little endian code"
+#~ msgstr "Generr lilleendet kode"
+
+#~ msgid "Produce big endian code"
+#~ msgstr "Generr storendet kode"
+
+#~ msgid "no description yet"
+#~ msgstr "ingen beskrivelse endnu"
+
+#~ msgid "Use EABI"
+#~ msgstr "Benyt EABI"
+
+#~ msgid "Don't use EABI"
+#~ msgstr "Benyt ikke EABI"
+
+#~ msgid "Do not allow bit-fields to cross word boundaries"
+#~ msgstr "Tillad ikke bitfelter at krydse ordgrnser"
+
+#~ msgid "Use alternate register names"
+#~ msgstr "Benyt alternative registernavne"
+
+#~ msgid "Don't use alternate register names"
+#~ msgstr "Benyt ikke alternative registernavne"
+
+#~ msgid "Link with libsim.a, libc.a and sim-crt0.o"
+#~ msgstr "Sammenkd med libsim.a, libc.a og sim-crt0.o"
+
+#~ msgid "Link with libads.a, libc.a and crt0.o"
+#~ msgstr "Sammenkd med libads.a, libc.a og crt0.o"
+
+#~ msgid "Link with libyk.a, libc.a and crt0.o"
+#~ msgstr "Sammenkd med libyk.a, libc.a og crt0.o"
+
+#~ msgid "Link with libmvme.a, libc.a and crt0.o"
+#~ msgstr "Sammenkd med libmvme.a, libc.a og crt0.o"
+
+#~ msgid "Set the PPC_EMB bit in the ELF flags header"
+#~ msgstr "St PPC_EMB-bitten i ELF-tilvalgshovedet"
+
+#~ msgid "Use the WindISS simulator"
+#~ msgstr "Benyt WindISS-simulatoren"
+
+#~ msgid "bad value for -mcall-%s"
+#~ msgstr "ugyldig vrdi til -mcall-%s"
+
+#~ msgid "bad value for -msdata=%s"
+#~ msgstr "ugyldig vrdi til -msdata=%s"
+
+#~ msgid "-mrelocatable and -msdata=%s are incompatible"
+#~ msgstr "-mrelocatable og -msdata=%s er indbyrdes uforenelige"
+
+#~ msgid "-f%s and -msdata=%s are incompatible"
+#~ msgstr "-f%s og -msdata=%s er indbyrdes uforenelige"
+
+#~ msgid "-msdata=%s and -mcall-%s are incompatible"
+#~ msgstr "-msdata=%s og -mcall-%s er indbyrdes uforenelige"
+
+#~ msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+#~ msgstr "-mrelocatable og -mno-minimal-toc er indbyrdes uforenelige"
+
+#~ msgid "-mrelocatable and -mcall-%s are incompatible"
+#~ msgstr "-mrelocatable og -mcall-%s er indbyrdes uforenelige"
+
+#~ msgid "-fPIC and -mcall-%s are incompatible"
+#~ msgstr "-fPIC og -mcall-%s er indbyrdes uforenelige"
+
+#~ msgid "-mcall-aixdesc must be big endian"
+#~ msgstr "-mcall-aixdesc skal vre stor-endet"
+
+#~ msgid "invalid UNSPEC as operand (1)"
+#~ msgstr "ugyldig UNSPEC som operand (1)"
+
+#~ msgid "invalid UNSPEC as operand (2)"
+#~ msgstr "ugyldig UNSPEC som operand (2)"
+
+#~ msgid "UNKNOWN in s390_output_symbolic_const !?"
+#~ msgstr "UNKNOWN i s390_output_symbolic_const !?"
+
+#~ msgid "Cannot decompose address."
+#~ msgstr "Kan ikke adskille adresse."
+
+#~ msgid "UNKNOWN in print_operand !?"
+#~ msgstr "UNKNOWN i print_operand !?"
+
+#~ msgid "Total size of local variables exceeds architecture limit."
+#~ msgstr "Total strrelse af lokale variable overstiger arkitekturgrnsen."
+
+# RETMIG: hvad er backchain?
+#~ msgid "Set backchain"
+#~ msgstr "St backchain"
+
+#~ msgid "Don't set backchain (faster, but debug harder"
+#~ msgstr "St ikke backchain (hurtigere, men svrere at fejlanalysere)"
+
+#~ msgid "Use bras for executable < 64k"
+#~ msgstr "Benyt bras til krbar fil < 64k"
+
+#~ msgid "Don't use bras"
+#~ msgstr "Benyt ikke bras"
+
+#~ msgid "Additional debug prints"
+#~ msgstr "Udskriv ekstra fejlanalyseringsinfo"
+
+#~ msgid "Don't print additional debug prints"
+#~ msgstr "Udskriv ikke ekstra fejlanalyseringsinfo"
+
+#~ msgid "64 bit mode"
+#~ msgstr "64 bit-tilstand"
+
+#~ msgid "31 bit mode"
+#~ msgstr "31 bit-tilstand"
+
+#~ msgid "mvcle use"
+#~ msgstr "Benyt mvcle"
+
+#~ msgid "mvc&ex"
+#~ msgstr "mvc&ex"
+
+#~ msgid "__builtin_saveregs not supported by this subtarget"
+#~ msgstr "__builtin_saveregs understttes ikke af denne undermlarkitektur"
+
+#~ msgid "attribute interrupt_handler is not compatible with -m5-compact"
+#~ msgstr "egenskaben interrupt_handler er ikke forenelig med -m5-compact"
+
+#~ msgid "`%s' attribute only applies to interrupt functions"
+#~ msgstr "egenskaben '%s' kan kun anvendes sammen med afbrydelsesfunktioner"
+
+#~ msgid "`%s' attribute argument not a string constant"
+#~ msgstr "parameteren til egenskaben '%s' er ikke en strengkonstant"
+
+#~ msgid "`%s' attribute argument not an integer constant"
+#~ msgstr "parameteren til egenskaben '%s' er ikke en heltalskonstant"
+
+#~ msgid "Profiling is not supported on this target."
+#~ msgstr "Profilering er ikke understttet p mlarkitekturen."
+
+#~ msgid "%s is not supported by this configuration"
+#~ msgstr "%s understttes ikke af denne konfiguration"
+
+#~ msgid "-mlong-double-64 not allowed with -m64"
+#~ msgstr "-mlong-double-64 er ikke tilladt med -m64"
+
+#~ msgid "-mcmodel= is not supported on 32 bit systems"
+#~ msgstr "-mcmodel= understttes ikke p 32 bit-systemer"
+
+#~ msgid "invalid %%Y operand"
+#~ msgstr "ugyldig %%Y-operand"
+
+#~ msgid "invalid %%A operand"
+#~ msgstr "ugyldig %%A-operand"
+
+#~ msgid "invalid %%B operand"
+#~ msgstr "ugyldig %%B-operand"
+
+#~ msgid "invalid %%c operand"
+#~ msgstr "ugyldig %%c-operand"
+
+#~ msgid "invalid %%C operand"
+#~ msgstr "ugyldig %%C-operand"
+
+#~ msgid "invalid %%d operand"
+#~ msgstr "ugyldig %%d-operand"
+
+#~ msgid "invalid %%D operand"
+#~ msgstr "ugyldig %%D-operand"
+
+#~ msgid "invalid %%f operand"
+#~ msgstr "ugyldig %%f-operand"
+
+#~ msgid "invalid %%s operand"
+#~ msgstr "ugyldig %%s-operand"
+
+#~ msgid "long long constant not a valid immediate operand"
+#~ msgstr "long long-konstant er ikke en gyldig umiddelbar operand"
+
+#~ msgid "floating point constant not a valid immediate operand"
+#~ msgstr "kommatalskonstant er ikke en gyldig umiddelbar operand"
+
+#~ msgid "Use 128 bit long doubles"
+#~ msgstr "Benyt 128 bit long double"
+
+#~ msgid "Generate code for big endian"
+#~ msgstr "Generr kode til storendet"
+
+#~ msgid "Generate code for little endian"
+#~ msgstr "Generr kode til lilleendet"
+
+#~ msgid "Use little-endian byte order for data"
+#~ msgstr "Benyt lilleendet byte-orden til data"
+
+#~ msgid "Assume possible double misalignment"
+#~ msgstr "Antag at double-variabler kan vre ujusterede"
+
+#~ msgid "Assume all doubles are aligned"
+#~ msgstr "Antag at alle double-variabler er justerede"
+
+#~ msgid "Pass -assert pure-text to linker"
+#~ msgstr "Overbring -assert pure-text til sammenkderen"
+
+#~ msgid "Do not pass -assert pure-text to linker"
+#~ msgstr "Overbring ikke -assert pure-text til sammenkderen"
+
+#~ msgid "Use flat register window model"
+#~ msgstr "Benyt flad registervinduesmodel"
+
+#~ msgid "Do not use flat register window model"
+#~ msgstr "Benyt ikke flad registervinduesmodel"
+
+#~ msgid "Use ABI reserved registers"
+#~ msgstr "Benyt ABI-reserverede registre"
+
+#~ msgid "Do not use ABI reserved registers"
+#~ msgstr "Benyt ikke ABI-reserverede registre"
+
+#~ msgid "Use hardware quad fp instructions"
+#~ msgstr "Benyt hardware quad-kommatalsinstruktioner"
+
+#~ msgid "Do not use hardware quad fp instructions"
+#~ msgstr "Benyt ikke hardware quad-kommatalsinstruktioner"
+
+#~ msgid "Compile for v8plus ABI"
+#~ msgstr "Overst for v8plus-ABI"
+
+#~ msgid "Do not compile for v8plus ABI"
+#~ msgstr "Overst ikke for v8plus-ABI"
+
+#~ msgid "Utilize Visual Instruction Set"
+#~ msgstr "Benyt Visual Instruction Set"
+
+#~ msgid "Do not utilize Visual Instruction Set"
+#~ msgstr "Benyt ikke Visual Instruction Set"
+
+#~ msgid "Optimize for Cypress processors"
+#~ msgstr "Optimr for Cypress-processorer"
+
+#~ msgid "Optimize for SPARCLite processors"
+#~ msgstr "Optimr for SPARCLite-processorer"
+
+#~ msgid "Optimize for F930 processors"
+#~ msgstr "Optimr for F930-processorer"
+
+#~ msgid "Optimize for F934 processors"
+#~ msgstr "Optimr for F934-processorer"
+
+#~ msgid "Use V8 SPARC ISA"
+#~ msgstr "Benyt V8 SPARC ISA"
+
+#~ msgid "Optimize for SuperSPARC processors"
+#~ msgstr "Optimr for SuperSPARC-processorer"
+
+#~ msgid "Pointers are 64-bit"
+#~ msgstr "Henvisninger er 64 bit"
+
+#~ msgid "Pointers are 32-bit"
+#~ msgstr "Henvisninger er 32 bit"
+
+#~ msgid "Use 32-bit ABI"
+#~ msgstr "Benyt 32 bit-API"
+
+#~ msgid "Use 64-bit ABI"
+#~ msgstr "Benyt 64 bit-API"
+
+#~ msgid "Use stack bias"
+#~ msgstr "Benyt stakafst"
+
+#~ msgid "Do not use stack bias"
+#~ msgstr "Benyt ikke stakafst"
+
+#~ msgid "Use structs on stronger alignment for double-word copies"
+#~ msgstr "Benyt strukturer p strkere justering til dobbelt-ord kopier"
+
+#~ msgid "Do not use structs on stronger alignment for double-word copies"
+#~ msgstr "Benyt ikke strukturer p strkere justering til dobbelt-ord kopier"
+
+#~ msgid "Optimize tail call instructions in assembler and linker"
+#~ msgstr "Optimr halekaldsinstruktioner i maskinkodeoverstteren og sammenkderen"
+
+#~ msgid "Do not optimize tail call instructions in assembler or linker"
+#~ msgstr "Optimr ikke halekaldsinstruktioner i maskinkodeoverstteren og sammenkderen"
+
+#~ msgid "Use given SPARC code model"
+#~ msgstr "Benyt given SPARC-kodemodel"
+
+#~ msgid "cannot use va_start in interrupt function"
+#~ msgstr "kan ikke bruge va_start i afbrydelsesfunktion"
+
+#~ msgid "`B' operand is not constant"
+#~ msgstr "'B'-operanden er ikke konstant"
+
+#~ msgid "`B' operand has multiple bits set"
+#~ msgstr "'B'-operanden har flere bit sat"
+
+#~ msgid "`o' operand is not constant"
+#~ msgstr "'o'-operanden er ikke konstant"
+
+#~ msgid "xstormy16_print_operand: unknown code"
+#~ msgstr "xstormy16_print_operand: ukendt kode"
+
+#~ msgid "switch statement of size %lu entries too large"
+#~ msgstr "switch-stning med %lu elementer er for stor"
+
+#~ msgid "#pragma GHS endXXXX found without previous startXXX"
+#~ msgstr "'#pragma GHS endXXXX' fundet uden forudgende 'startXXX'"
+
+#~ msgid "#pragma GHS endXXX does not match previous startXXX"
+#~ msgstr "'#pragma GHS endXXXX' passer ikke med forudgende 'startXXX'"
+
+#~ msgid "cannot set interrupt attribute: no current function"
+#~ msgstr "kan ikke stte afbrydelsesegenskaben: ingen aktuel funktion"
+
+#~ msgid "cannot set interrupt attribute: no such identifier"
+#~ msgstr "kan ikke stte afbrydelsesegenskaben: intet sdant kaldenavn"
+
+#~ msgid "junk at end of #pragma ghs section"
+#~ msgstr "ragelse i slutningen af '#pragma ghs section'"
+
+#~ msgid "unrecognized section name \"%s\""
+#~ msgstr "ukendt sektionsnavn \"%s\""
+
+#~ msgid "malformed #pragma ghs section"
+#~ msgstr "forkert udformet '#pragma ghs section'"
+
+#~ msgid "junk at end of #pragma ghs interrupt"
+#~ msgstr "ragelse i slutningen af '#pragma ghs interrupt'"
+
+#~ msgid "junk at end of #pragma ghs starttda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs starttda'"
+
+#~ msgid "junk at end of #pragma ghs startsda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs startsda'"
+
+#~ msgid "junk at end of #pragma ghs startzda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs startzda'"
+
+#~ msgid "junk at end of #pragma ghs endtda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs endtda'"
+
+#~ msgid "junk at end of #pragma ghs endsda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs endsda'"
+
+#~ msgid "junk at end of #pragma ghs endzda"
+#~ msgstr "ragelse i slutningen af '#pragma ghs endzda'"
+
+#~ msgid "%s=%s is not numeric"
+#~ msgstr "%s=%s er ikke et tal"
+
+#~ msgid "%s=%s is too large"
+#~ msgstr "%s=%s er for stor"
+
+#~ msgid "const_double_split got a bad insn:"
+#~ msgstr "const_double_split modtog en ugyldig instruktion:"
+
+#~ msgid "output_move_single:"
+#~ msgstr "output_move_single:"
+
+#~ msgid "a data area attribute cannot be specified for local variables"
+#~ msgstr "en dataomrdeegenskab kan ikke angives for lokale variable"
+
+#~ msgid "data area of '%s' conflicts with previous declaration"
+#~ msgstr "dataomrdet '%s' er i modstrid med tidligere erklring"
+
+#~ msgid "bogus JR construction: %d\n"
+#~ msgstr "falsk JR-konstruktion: %d\n"
+
+#~ msgid "bad amount of stack space removal: %d"
+#~ msgstr "ugyldig strrelse af stakpladsfjernelse: %d"
+
+#~ msgid "bogus JARL construction: %d\n"
+#~ msgstr "falsk JARL-konstruktion: %d\n"
+
+#~ msgid "Bogus DISPOSE construction: %d\n"
+#~ msgstr "Falsk DISPOSE-konstruktion: %d\n"
+
+#~ msgid "Too much stack space to dispose of: %d"
+#~ msgstr "For meget stakplads at tage sig af: %d"
+
+#~ msgid "Bogus PREPEARE construction: %d\n"
+#~ msgstr "Falsk PREPARE-konstruktion: %d\n"
+
+#~ msgid "Too much stack space to prepare: %d"
+#~ msgstr "For meget stakplads at forberede: %d"
+
+#~ msgid "Support Green Hills ABI"
+#~ msgstr "Understt Green Hills-ABI"
+
+#~ msgid "Prohibit PC relative function calls"
+#~ msgstr "Forbyd PC-relative funktionskald"
+
+#~ msgid "Reuse r30 on a per function basis"
+#~ msgstr "Genbrug r30 p et pr. funktionsgrundlag"
+
+#~ msgid "Use stubs for function prologues"
+#~ msgstr "Benyt stubbe til funktionsindledninger"
+
+#~ msgid "Same as: -mep -mprolog-function"
+#~ msgstr "Samme som: -mep -mprolog-function"
+
+#~ msgid "Enable backend debugging"
+#~ msgstr "Aktivr bagendefejlanalyseringsinfo"
+
+#~ msgid "Compile for the v850 processor"
+#~ msgstr "Overst for v850-processoren"
+
+#~ msgid "Compile for v850e processor"
+#~ msgstr "Overst for v850e-processoren"
+
+#~ msgid "Enable the use of the short load instructions"
+#~ msgstr "Aktivr brug af short load-instruktioner"
+
+#~ msgid "Do not use the callt instruction"
+#~ msgstr "Benyt ikke callt-instruktionen"
+
+#~ msgid "Do not use registers r2 and r5"
+#~ msgstr "Benyt ikke registrene r2 og r5"
+
+#~ msgid "Enforce strict alignment"
+#~ msgstr "Gennemtving streng justering"
+
+#~ msgid "Use 4 byte entries in switch tables"
+#~ msgstr "Benyt 4 byte-elementer i switch-tabeller"
+
+#~ msgid "Set the max size of data eligible for the TDA area"
+#~ msgstr "Angiv den maks. strrelse af data til TDA-omrdet"
+
+#~ msgid "Set the max size of data eligible for the SDA area"
+#~ msgstr "Angiv den maks. strrelse af data til SDA-omrdet"
+
+#~ msgid "Set the max size of data eligible for the ZDA area"
+#~ msgstr "Angiv den maks. strrelse af data til ZDA-omrdet"
+
+#~ msgid "bad test"
+#~ msgstr "ugyldig test"
+
+#~ msgid "boolean registers required for the floating-point option"
+#~ msgstr "booleske registre er pkrvet til kommatalsindstillingen"
+
+#~ msgid "invalid mask"
+#~ msgstr "ugyldig maske"
+
+#~ msgid "invalid address"
+#~ msgstr "ugyldig adresse"
+
+#~ msgid "no register in address"
+#~ msgstr "ingen registre i adresse"
+
+#~ msgid "address offset not a constant"
+#~ msgstr "adresseafst er ikke en konstant"
+
+#~ msgid "only uninitialized variables can be placed in a .bss section"
+#~ msgstr "kun variabler uden startvrdi kan placeres i .bss-sektionen"
+
+#~ msgid "Use the Xtensa code density option"
+#~ msgstr "Benyt Xtensa-kodetthedsindstillingen"
+
+#~ msgid "Do not use the Xtensa code density option"
+#~ msgstr "Benyt ikke Xtensa-kodetthedsindstillingen"
+
+#~ msgid "Use the Xtensa MAC16 option"
+#~ msgstr "Benyt Xtensa-MAC16-indstillingen"
+
+#~ msgid "Do not use the Xtensa MAC16 option"
+#~ msgstr "Benyt ikke Xtensa-MAC16-indstillingen"
+
+#~ msgid "Use the Xtensa MUL16 option"
+#~ msgstr "Benyt Xtensa-MUL16-indstillingen"
+
+#~ msgid "Do not use the Xtensa MUL16 option"
+#~ msgstr "Benyt ikke Xtensa-MUL16-indstillingen"
+
+#~ msgid "Use the Xtensa MUL32 option"
+#~ msgstr "Benyt Xtensa-MUL32-indstillingen"
+
+#~ msgid "Do not use the Xtensa MUL32 option"
+#~ msgstr "Benyt ikke Xtensa-MUL32-indstillingen"
+
+#~ msgid "Use the Xtensa NSA option"
+#~ msgstr "Benyt Xtensa-NSA-indstillingen"
+
+#~ msgid "Do not use the Xtensa NSA option"
+#~ msgstr "Benyt ikke Xtensa-NSA-indstillingen"
+
+#~ msgid "Use the Xtensa MIN/MAX option"
+#~ msgstr "Benyt Xtensa-MIN/MAX-indstillingen"
+
+#~ msgid "Do not use the Xtensa MIN/MAX option"
+#~ msgstr "Benyt ikke Xtensa-MIN/MAX-indstillingen"
+
+#~ msgid "Use the Xtensa SEXT option"
+#~ msgstr "Benyt Xtensa-SEXT-indstillingen"
+
+#~ msgid "Do not use the Xtensa SEXT option"
+#~ msgstr "Benyt ikke Xtensa-SEXT-indstillingen"
+
+#~ msgid "Use the Xtensa boolean register option"
+#~ msgstr "Benyt Xtensa-indstillingen til booleske registre"
+
+#~ msgid "Do not use the Xtensa boolean register option"
+#~ msgstr "Benyt ikke Xtensa-indstillingen til booleske registre"
+
+#~ msgid "Use the Xtensa floating-point unit"
+#~ msgstr "Benyt kommatalsenheden til Xtensa"
+
+#~ msgid "Do not use the Xtensa floating-point unit"
+#~ msgstr "Benyt ikke kommatalsenheden til Xtensa"
+
+#~ msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Deaktivr sammensatte gang/addr- og gang/subtrahr-kommatalsinstruktioner"
+
+#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Aktivr sammensatte gang/addr- og gang/subtrahr-kommatalsinstruktioner"
+
+#~ msgid "Serialize volatile memory references with MEMW instructions"
+#~ msgstr "Serialisr volatile hukommelsesreference med MEMW-instruktioner"
+
+#~ msgid "Do not serialize volatile memory references with MEMW instructions"
+#~ msgstr "Serialisr ikke volatile hukommelsesreference med MEMW-instruktioner"
+
+#~ msgid "Intersperse literal pools with code in the text section"
+#~ msgstr "Fordel konstanter med kode i tekstsektionen"
+
+#~ msgid "Put literal pools in a separate literal section"
+#~ msgstr "Anbring konstanter i en adskilt konstantsektion"
+
+#~ msgid "Automatically align branch targets to reduce branch penalties"
+#~ msgstr "Justr automatisk forgreningsml for at reducere forgreningsstraffe"
+
+#~ msgid "Do not automatically align branch targets"
+#~ msgstr "Justr ikke automatisk forgreningsml"
+
+#~ msgid "Use indirect CALLXn instructions for large programs"
+#~ msgstr "Benyt indirekte CALLXn-instruktioner for store programmer"
+
+#~ msgid "Use direct CALLn instructions for fast calls"
+#~ msgstr "Benyt direkte CALLn-instruktioner for hurtige kald"
+
+#~ msgid "`-gnat' misspelled as `-gant'"
+#~ msgstr "'-gnat' stavet forkert som '-gant'"
+
+#~ msgid "qualified type `%T' does not match destructor name `~%T'"
+#~ msgstr "den modificerede type '%T' passer ikke til destruktionsfunktionsnavnet '~%T'"
+
+#~ msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+#~ msgstr "typen af '%E' passer ikke til destruktionsfunktionstypen '%T' (typen var '%T')"
+
+#~ msgid "`%D' is a namespace"
+#~ msgstr "'%D' er et navnerum"
+
+#~ msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+#~ msgstr "stamobjektet '%E' fra metodekald forsynet med virkefelt er af en ikke-sammensat type '%T'"
+
+#~ msgid "unable to call pointer to member function here"
+#~ msgstr "kan ikke kalde henvisning til medlemsfunktion her"
+
+#~ msgid "destructors take no parameters"
+#~ msgstr "destruktionsfunktioner kan ikke have parametre"
+
+#~ msgid "destructor name `~%T' does not match type `%T' of expression"
+#~ msgstr "destruktionsfunktionsnavn '~T' passer ikke med typen '%T' for udtrykket"
+
+#~ msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+#~ msgstr "foresprgsel efter medlemmet '%D' i '%E' som er af en ikke-sammensat type '%T'"
+
+#~ msgid "request for member `%D' is ambiguous"
+#~ msgstr "foresprgsel efter medlemmet '%D' er tvetydigt"
+
+#~ msgid "%s %D(%T, %T, %T) <built-in>"
+#~ msgstr "%s %D(%T, %T, %T) <indbygget>"
+
+#~ msgid "%s %D(%T, %T) <built-in>"
+#~ msgstr "%s %D(%T, %T) <indbygget>"
+
+#~ msgid "%s %D(%T) <built-in>"
+#~ msgstr "%s %D(%T) <indbygget>"
+
+#~ msgid "%s %T <conversion>"
+#~ msgstr "%s %T <konvertering>"
+
+#~ msgid "%s %+#D%s"
+#~ msgstr "%s %+#D%s"
+
+#~ msgid "conversion from `%T' to `%T' is ambiguous"
+#~ msgstr "konvertering fra '%T' til '%T' er tvetydigt"
+
+#~ msgid "incomplete type '%T' cannot be used to name a scope"
+#~ msgstr "ufuldstndig type '%T' kan ikke bruges til at navngive et virkefelt"
+
+#~ msgid "'%D' has no member named '%E'"
+#~ msgstr "'%D' har intet medlem ved navn '%E'"
+
+#~ msgid "no matching function for call to `%D(%A)'"
+#~ msgstr "ingen passende funktion for kald til '%D(%A)'"
+
+#~ msgid "call of overloaded `%D(%A)' is ambiguous"
+#~ msgstr "kald af flertydig '%D(%A)' er tvetydigt"
+
+#~ msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+#~ msgstr "henvisning til medlemsfunktionen %E kan ikke kaldes uden et objekt; overvej at benytte .* eller ->*"
+
+#~ msgid "no match for call to `(%T) (%A)'"
+#~ msgstr "ingen passende fundet for kald til '(%T) (%A)'"
+
+#~ msgid "call of `(%T) (%A)' is ambiguous"
+#~ msgstr "kald af '(%T) (%A)' er tvetydigt"
+
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s for operatoren '%T ? %T : %T'"
+
+#~ msgid "%s for `%T %s' operator"
+#~ msgstr "%s for operatoren '%T %s' "
+
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s for operatoren '%T [%T]'"
+
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s for operatoren '%T %s %T'"
+
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s for operatoren '%s %T'"
+
+#~ msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+#~ msgstr "ISO C++ forbyder udeladelse af den mellemste del af et ?:-udtryk"
+
+#~ msgid "`%E' has type `void' and is not a throw-expression"
+#~ msgstr "'%E' har typen 'void' og er ikke et throw-udtryk"
+
+#~ msgid "operands to ?: have different types"
+#~ msgstr "operander til ?: har forskellige typer"
+
+#~ msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+#~ msgstr "enum-typer passer ikke sammen i betinget udtryk: '%T' og '%T'"
+
+#~ msgid "enumeral and non-enumeral type in conditional expression"
+#~ msgstr "enum- og ikke enum-type i betinget udtryk"
+
+#~ msgid "`%D' must be declared before use"
+#~ msgstr "'%D' skal erklres fr brug"
+
+#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+#~ msgstr "ingen '%D(int)' erklret for suffiks '%s', prver prfiksoperatoren i stedet"
+
+#~ msgid "using synthesized `%#D' for copy assignment"
+#~ msgstr "bruger syntetiseret '%#D' for kopitildeling"
+
+#~ msgid " where cfront would use `%#D'"
+#~ msgstr " hvor cfront ville bruge '%#D'"
+
+#~ msgid "comparison between `%#T' and `%#T'"
+#~ msgstr "sammenligning mellem '%#T' og '%#T'"
+
+#~ msgid "no suitable `operator delete' for `%T'"
+#~ msgstr "ingen passende 'operator delete' for '%T'"
+
+#~ msgid "`%+#D' is private"
+#~ msgstr "'%+#D' er privat"
+
+#~ msgid "`%+#D' is protected"
+#~ msgstr "'%+#D' er beskyttet"
+
+#~ msgid "`%+#D' is inaccessible"
+#~ msgstr "'%+#D' er ikke tilgngelig"
+
+#~ msgid "within this context"
+#~ msgstr "i denne kontekst"
+
+#~ msgid "invalid conversion from `%T' to `%T'"
+#~ msgstr "ugyldig konvertering fra '%T' til '%T'"
+
+#~ msgid " initializing argument %P of `%D'"
+#~ msgstr " ved klargring af parameteren %P til '%D'"
+
+#~ msgid " initializing argument %P of `%D' from result of `%D'"
+#~ msgstr " ved klargring af parameteren %P til '%D' fra resultatet af '%D'"
+
+#~ msgid " initializing temporary from result of `%D'"
+#~ msgstr " ved klargring af midlertidig variabel fra resultatet af '%D'"
+
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+#~ msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'; kald vil afbryde p krselstidspunktet"
+
+#~ msgid "cannot receive objects of non-POD type `%#T' through `...'"
+#~ msgstr "kan ikke modtage objekter af en ikke-POD type '%#T' gennem '...'"
+
+#~ msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+#~ msgstr "videregivelse af '%T' som 'this'-parameteren til '%#D' forkaster modifikationer"
+
+#~ msgid "could not find class$ field in java interface type `%T'"
+#~ msgstr "kunne ikke finde et class$-felt i Java-grnsefladetypen '%T'"
+
+#~ msgid "call to non-function `%D'"
+#~ msgstr "kald af ikke-funktion '%D'"
+
+#~ msgid "no matching function for call to `%T::%D(%A)%#V'"
+#~ msgstr "ingen passende funktion for kald til '%T::%D(%A)%#V'"
+
+#~ msgid "cannot call member function `%D' without object"
+#~ msgstr "kan ikke kalde medlemsfunktionen '%D' uden et objekt"
+
+#~ msgid "passing `%T' chooses `%T' over `%T'"
+#~ msgstr "videregivelse af '%T' vlger '%T' frem for '%T'"
+
+#~ msgid " in call to `%D'"
+#~ msgstr " i kald af '%D'"
+
+#~ msgid "choosing `%D' over `%D'"
+#~ msgstr "vlger '%D' frem for '%D'"
+
+#~ msgid " for conversion from `%T' to `%T'"
+#~ msgstr " for konvertering fra '%T' til '%T'"
+
+#~ msgid " because conversion sequence for the argument is better"
+#~ msgstr " fordi konverteringssekvensen for parameteren er bedre"
+
+#~ msgid "ISO C++ says that `%D' and `%D' are ambiguous even though the worst conversion for the former is better than the worst conversion for the latter"
+#~ msgstr "iflge ISO C++ er '%D' og '%D' tvetydigt selvom den vrste konvertering for frstnvnte er bedre end den vrste konvertering for den sidstnvnte"
+
+#~ msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+#~ msgstr "kan ikke konvertere fra stamklassen '%T' til den nedarvede type '%T' via den virtuelle stamklasse '%T'"
+
+#~ msgid "`%#D' and `%#D' cannot be overloaded"
+#~ msgstr "'%#D' og '%#D' kan ikke flertydiggres"
+
+#~ msgid "duplicate enum value `%D'"
+#~ msgstr "enum-vrdien '%D' optrder mere end n gang"
+
+#~ msgid "duplicate field `%D' (as enum and non-enum)"
+#~ msgstr "feltet '%D' optrder mere end n gang (som enum og som ikke-enum)"
+
+#~ msgid "duplicate nested type `%D'"
+#~ msgstr "den indlejrede type '%D' optrder mere end n gang"
+
+#~ msgid "duplicate field `%D' (as type and non-type)"
+#~ msgstr "feltet '%D' optrder mere end n gang (som type og som ikke-type)"
+
+#~ msgid "duplicate member `%D'"
+#~ msgstr "medlemmet '%D' optrder mere end n gang"
+
+#~ msgid "conflicting access specifications for method `%D', ignored"
+#~ msgstr "modstridende tilgangsanvisninger til metoden '%D', ignoreret"
+
+#~ msgid "conflicting access specifications for field `%s', ignored"
+#~ msgstr "modstridende tilgangsanvisninger til feltet '%s', ignoreret"
+
+#~ msgid "`%D' names constructor"
+#~ msgstr "'%D' navngiver en konstruktionsfunktion"
+
+#~ msgid "`%D' invalid in `%T'"
+#~ msgstr "'%D' ugyldig i '%T'"
+
+#~ msgid "no members matching `%D' in `%#T'"
+#~ msgstr "ingen medlemmer passer til '%D' i '%#T'"
+
+#~ msgid "`%D' invalid in `%#T'"
+#~ msgstr "'%D' ugyldig i '%#T'"
+
+#~ msgid " because of local method `%#D' with same name"
+#~ msgstr " p grund af den lokale metode '%#D' med det samme navn"
+
+#~ msgid " because of local member `%#D' with same name"
+#~ msgstr " p grund af det lokale medlem '%#D' med det samme navn"
+
+#~ msgid "base class `%#T' has a non-virtual destructor"
+#~ msgstr "stamklassen '%#T' har en ikke-virtuel destruktionsfunktion"
+
+#~ msgid "base `%T' with only non-default constructor in class without a constructor"
+#~ msgstr "stamklasse '%T' med kun ikke-standardkonstruktionsfunktion i klasse uden en konstruktionsfunktion"
+
+#~ msgid "all member functions in class `%T' are private"
+#~ msgstr "alle medlemsfunktioner i klassen '%T' er private"
+
+#~ msgid "`%#T' only defines a private destructor and has no friends"
+#~ msgstr "'%#T' definerer kun en privat destruktionsfunktion og har ingen venner"
+
+#~ msgid "`%#T' only defines private constructors and has no friends"
+#~ msgstr "'%#T' definerer kun private konstruktionsfunktioner og har ingen venner"
+
+#~ msgid "redefinition of `%#T'"
+#~ msgstr "omdefinering af '%#T'"
+
+#~ msgid "previous definition of `%#T'"
+#~ msgstr "tidligere definition af '%#T'"
+
+# %D er en funktion
+#~ msgid "no unique final overrider for `%D' in `%T'"
+#~ msgstr "ingen unik endelig overskrivning af '%D' i '%T'"
+
+#~ msgid "`%D' was hidden"
+#~ msgstr "'%D' var skjult"
+
+#~ msgid " by `%D'"
+#~ msgstr " af '%D'"
+
+#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ forbyder medlemmet '%D' med samme navn som den omgivende klasse"
+
+#~ msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+#~ msgstr "'%#D' er ugyldig; en anonym union kan kun have ikke-statiske datamedlemmer"
+
+#~ msgid "private member `%#D' in anonymous union"
+#~ msgstr "privat medlem '%#D' i en anonym union"
+
+#~ msgid "protected member `%#D' in anonymous union"
+#~ msgstr "beskyttet medlem '%#D' i en anonym union"
+
+#~ msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+#~ msgstr "vtable-layout for klassen '%T' flger ikke ndvendigvis ABI'et og kan ndre sig i en fremtidig version af GCC pga. underforstet virtuel destruktionsfunktion"
+
+#~ msgid "bit-field `%#D' with non-integral type"
+#~ msgstr "bitfelt '%#D' med en ikke-heltalstype"
+
+#~ msgid "bit-field `%D' width not an integer constant"
+#~ msgstr "bredden af bitfeltet '%D' er ikke en heltalskonstant"
+
+#~ msgid "negative width in bit-field `%D'"
+#~ msgstr "negativ bredde i bitfeltet '%D'"
+
+#~ msgid "zero width for bit-field `%D'"
+#~ msgstr "en bredde p nul for bitfeltet '%D'"
+
+#~ msgid "width of `%D' exceeds its type"
+#~ msgstr "bredden af '%D' overstiger typen"
+
+#~ msgid "`%D' is too small to hold all values of `%#T'"
+#~ msgstr "'%D' er for lille til at indeholde alle vrdierne af '%#T'"
+
+#~ msgid "member `%#D' with constructor not allowed in union"
+#~ msgstr "medlemmet '%#D' med en konstruktionsfunktion er ikke tilladt i en union"
+
+#~ msgid "member `%#D' with destructor not allowed in union"
+#~ msgstr "medlemmet '%#D' med en destruktionsfunktion er ikke tilladt i en union"
+
+#~ msgid "member `%#D' with copy assignment operator not allowed in union"
+#~ msgstr "medlemmet '%#D' med en kopitildelingsoperator er ikke tilladt i en union"
+
+#~ msgid "multiple fields in union `%T' initialized"
+#~ msgstr "flere felter i union '%T' tildeles startvrdi"
+
+#~ msgid "field `%D' in local class cannot be static"
+#~ msgstr "feltet '%D' i lokal klasse kan ikke vre statisk"
+
+#~ msgid "field `%D' invalidly declared function type"
+#~ msgstr "feltet '%D' er p ugyldig vis erklret som en funktionstype"
+
+#~ msgid "field `%D' invalidly declared method type"
+#~ msgstr "feltet '%D' er p ugyldig vis erklret som en medlemsfunktionstype"
+
+#~ msgid "field `%D' invalidly declared offset type"
+#~ msgstr "feltet '%D' er p ugyldig vis erklret som en afstandstype"
+
+#~ msgid "field `%D' declared static in union"
+#~ msgstr "feltet '%D' er erklret statisk i union"
+
+#~ msgid "non-static reference `%#D' in class without a constructor"
+#~ msgstr "ikke-statisk reference '%#D' i klasse uden en konstruktionsfunktion"
+
+#~ msgid "non-static const member `%#D' in class without a constructor"
+#~ msgstr "ikke-statisk konstant medlem '%#D' i klasse uden en konstruktionsfunktion"
+
+#~ msgid "field `%#D' with same name as class"
+#~ msgstr "felt '%#D' med samme navn som klassen"
+
+#~ msgid "`%#T' has pointer data members"
+#~ msgstr "'%#T' har henvisningsdatamedlemmer"
+
+#~ msgid " but does not override `%T(const %T&)'"
+#~ msgstr " men overskriver ikke '%T(const %T&)'"
+
+#~ msgid " or `operator=(const %T&)'"
+#~ msgstr " eller 'operator=(const %T&)'"
+
+#~ msgid " but does not override `operator=(const %T&)'"
+#~ msgstr " men overskriver ikke 'operator=(const %T&)'"
+
+#~ msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+#~ msgstr "afsttet for tom stamklasse '%T' flger ikke ndvendigvis ABI'en og kan ndre sig i en fremtidig version af GCC"
+
+#~ msgid "class `%T' will be considered nearly empty in a future version of GCC"
+#~ msgstr "klassen '%T' vil blive betragtet som nsten tom i en fremtidig version af GCC"
+
+#~ msgid "initializer specified for non-virtual method `%D'"
+#~ msgstr "startvrdi angivet for ikke-virtuel medlemsfunktion '%D'"
+
+#~ msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+#~ msgstr "afsttet for virtuel stamklasse '%T' flger ikke ABI'en og kan ndre sig i en fremtidig version af GCC"
+
+#~ msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+#~ msgstr "direkte stamklasse '%T' er ikke tilgngelig i '%T' p grund af tvetydighed"
+
+#~ msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#~ msgstr "virtuel stamklasse '%T' er ikke tilgngelig i '%T' p grund af tvetydighed"
+
+#~ msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+#~ msgstr "strrelsen der bliver tildelt '%T' flger ikke ndvendigvis ABI'en og kan ndre sig i en fremtidig version af GCC"
+
+#~ msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+#~ msgstr "afsttet for '%D' flger ikke ABI'en og kan ndre sig i en fremtidig version af GCC"
+
+#~ msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+#~ msgstr "'%D' indeholder tomme klasser hvad der kan f stamklasser til at blive placeret andre steder i en fremtidig version af GCC"
+
+#~ msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+#~ msgstr "layoutet af klasser der nedarver fra den tomme klasse '%T' kan ndre sig i en fremtidig version af GCC"
+
+#~ msgid "`%#T' has virtual functions but non-virtual destructor"
+#~ msgstr "'%#T' har virtuelle funktioner, men ikke-virtuel destruktionsfunktion"
+
+#~ msgid "trying to finish struct, but kicked out due to previous parse errors"
+#~ msgstr "forsgte at afslutte struct, men blev stoppet af tidligere fortolkningsfejl"
+
+#~ msgid "language string `\"%s\"' not recognized"
+#~ msgstr "sprogstrengen '\"%s\"' ikke genkendt"
+
+#~ msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+#~ msgstr "kan ikke benytte den flertydiggjorte funktion '%D' baseret p konvertering til typen '%T'"
+
+#~ msgid "no matches converting function `%D' to type `%#T'"
+#~ msgstr "ingen passende ved konvertering af funktionen '%D' til typen '%#T'"
+
+#~ msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+#~ msgstr "konvertering af den flertydiggjorte funktion '%D' til typen '%T' er tvetydig"
+
+#~ msgid "assuming pointer to member `%D'"
+#~ msgstr "antager henvisning til medlemmet '%D'"
+
+#~ msgid "(a pointer to member can only be formed with `&%E')"
+#~ msgstr "(en henvisning til medlem kan kun dannes med '&%E')"
+
+#~ msgid "not enough type information"
+#~ msgstr "ikke tilstrkkelig information om typen"
+
+#~ msgid "argument of type `%T' does not match `%T'"
+#~ msgstr "parameter af typen '%T' passer ikke til '%T'"
+
+#~ msgid "invalid operation on uninstantiated type"
+#~ msgstr "ugyldig operation p uudskiftet type"
+
+#~ msgid "declaration of `%#D'"
+#~ msgstr "omerklring af '%#D'"
+
+#~ msgid "changes meaning of `%D' from `%+#D'"
+#~ msgstr "skifter betydningen af '%D' fra '%+#D'"
+
+#~ msgid "can't convert from incomplete type `%T' to `%T'"
+#~ msgstr "kan ikke konvertere fra ufuldstndig type '%T' til '%T'"
+
+#~ msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+#~ msgstr "konvertering af '%E' fra '%T' til '%T' er tvetydigt"
+
+#~ msgid "converting from `%T' to `%T'"
+#~ msgstr "konvertering fra '%T' til '%T'"
+
+#~ msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+#~ msgstr "typekonvertering af henvisning til medlem fra '%T' til '%T' er via virtuel stamklasse"
+
+#~ msgid "cannot convert `%E' from type `%T' to type `%T'"
+#~ msgstr "kan ikke konvertere '%E' fra typen '%T' til typen '%T'"
+
+#~ msgid "invalid conversion from '%T' to '%T'"
+#~ msgstr "ugyldig konvertering fra '%T' til '%T'"
+
+#~ msgid "conversion from `%T' to `%T' discards qualifiers"
+#~ msgstr "konvertering fra '%T' til '%T' forkaster modifikationer"
+
+#~ msgid "casting `%T' to `%T' does not dereference pointer"
+#~ msgstr "typeomtvingning af '%T' til '%T' flger ikke henvisning"
+
+#~ msgid "cannot convert type `%T' to type `%T'"
+#~ msgstr "kan ikke konvertere typen '%T' til typen '%T'"
+
+#~ msgid "conversion from `%#T' to `%#T'"
+#~ msgstr "konvertering fra '%#T' til '%#T'"
+
+#~ msgid "`%#T' used where a `%T' was expected"
+#~ msgstr "'%#T' benyttet hvor '%T' var forventet"
+
+#~ msgid "the address of `%D', will always be `true'"
+#~ msgstr "adressen af '%D' vil altid vre 'true'"
+
+#~ msgid "`%#T' used where a floating point value was expected"
+#~ msgstr "'%#T' benyttet hvor der forventedes en kommatalsvrdi"
+
+#~ msgid "conversion from `%T' to non-scalar type `%T' requested"
+#~ msgstr "konvertering fra '%T' til en ikke-skalartype '%T' udbedt"
+
+#~ msgid "object of incomplete type `%T' will not be accessed in %s"
+#~ msgstr "objekt af den ufuldstndige type '%T' vil ikke blive tilget i %s"
+
+#~ msgid "object of type `%T' will not be accessed in %s"
+#~ msgstr "objekt af typen '%T' vil ikke blive tilget i %s"
+
+#~ msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+#~ msgstr "objektet '%E' af den ufuldstndige type '%T' vil ikke blive tilget i %s"
+
+#~ msgid "%s cannot resolve address of overloaded function"
+#~ msgstr "%s kan ikke finde adressen af flertydiggjort funktion"
+
+#~ msgid "%s is a reference, not call, to function `%E'"
+#~ msgstr "%s er en reference til og ikke et kald af funktionen '%E'"
+
+#~ msgid "ambiguous default type conversion from `%T'"
+#~ msgstr "tvetydig standardtypekonvertering fra '%T'"
+
+#~ msgid " candidate conversions include `%D' and `%D'"
+#~ msgstr " kandidater til konverteringen inkluderer '%D' og '%D'"
+
+#~ msgid "conflicts with previous declaration `%#D'"
+#~ msgstr "strider mod tidligere erklring '%#D'"
+
+#~ msgid "label `%D' used but not defined"
+#~ msgstr "etiketten '%D' er benyttet, men ikke defineret"
+
+#~ msgid "label `%D' defined but not used"
+#~ msgstr "etiketten '%D' er defineret, men ikke benyttet"
+
+#~ msgid "namespace alias `%D' not allowed here, assuming `%D'"
+#~ msgstr "navnerumsalias '%D' er ikke tilladt her, antager '%D'"
+
+#~ msgid "previous declaration of `%D'"
+#~ msgstr "'%D' er tidligere erklret"
+
+#~ msgid "shadowing %s function `%#D'"
+#~ msgstr "skygger for en %s-funktion '%#D'"
+
+#~ msgid "library function `%#D' redeclared as non-function `%#D'"
+#~ msgstr "biblioteksfunktionen '%#D' er omerklret som '%#D' der ikke er en funktion"
+
+#~ msgid "conflicts with built-in declaration `%#D'"
+#~ msgstr "strider mod indbygget erklring '%#D'"
+
+# flges af nste tekst
+#~ msgid "new declaration `%#D'"
+#~ msgstr "ny erklring af '%#D'"
+
+#~ msgid "ambiguates built-in declaration `%#D'"
+#~ msgstr "tvetydiggr indbygget erklring '%#D'"
+
+#~ msgid "`%#D' redeclared as different kind of symbol"
+#~ msgstr "'%#D' omerklret som en anden form for symbol"
+
+#~ msgid "previous declaration of `%#D'"
+#~ msgstr "tidligere erklring af '%#D'"
+
+#~ msgid "declaration of template `%#D'"
+#~ msgstr "erklring af skabelon '%#D'"
+
+#~ msgid "ambiguates old declaration `%#D'"
+#~ msgstr "tvetydiggr tidligere erklring '%#D'"
+
+#~ msgid "declaration of C function `%#D' conflicts with"
+#~ msgstr "erklring af C-funktionen '%#D' strider mod"
+
+#~ msgid "previous declaration `%#D' here"
+#~ msgstr "tidligere erklring af '%#D' her"
+
+#~ msgid "conflicting types for `%#D'"
+#~ msgstr "modstridende typer for '%#D'"
+
+#~ msgid "previous declaration as `%#D'"
+#~ msgstr "tidligere erklring som '%#D'"
+
+#~ msgid "`%#D' previously defined here"
+#~ msgstr "'%#D' tidligere defineret her"
+
+#~ msgid "`%#D' previously declared here"
+#~ msgstr "'%#D' tidligere erklret her"
+
+#~ msgid "prototype for `%#D'"
+#~ msgstr "prototypen for '%#D'"
+
+#~ msgid "follows non-prototype definition here"
+#~ msgstr "flger definition uden prototype her"
+
+#~ msgid "previous declaration of `%#D' with %L linkage"
+#~ msgstr "tidligere erklring af '%#D' med %L-kdning"
+
+#~ msgid "conflicts with new declaration with %L linkage"
+#~ msgstr "strider mod ny erklring af med %L-kdning"
+
+#~ msgid "default argument given for parameter %d of `%#D'"
+#~ msgstr "standardparameter givet til %d. parameter for '%#D'"
+
+#~ msgid "after previous specification in `%#D'"
+#~ msgstr "efter tidligere specifikation i '%#D'"
+
+#~ msgid "`%#D' was used before it was declared inline"
+#~ msgstr "'%#D' blev brugt fr erklring som inline"
+
+#~ msgid "previous non-inline declaration here"
+#~ msgstr "tidligere ikke-inline erklring her"
+
+#~ msgid "redundant redeclaration of `%D' in same scope"
+#~ msgstr "overfldig omerklring af '%D' i samme virkefelt"
+
+#~ msgid "declaration of `%F' throws different exceptions"
+#~ msgstr "erklring af '%F' kaster forskellige undtagelser"
+
+#~ msgid "than previous declaration `%F'"
+#~ msgstr "end tidligere erklring '%F'"
+
+#~ msgid "explicit specialization of %D after first use"
+#~ msgstr "eksplicit specialisering af %D efter frste brug"
+
+#~ msgid "`%#D' used prior to declaration"
+#~ msgstr "'%#D' benyttet fr erklring"
+
+#~ msgid "redeclaration of `wchar_t' as `%T'"
+#~ msgstr "omerklring af 'wchar_t' som '%T'"
+
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr "ugyldig omerklring af '%D'"
+
+#~ msgid "as `%D'"
+#~ msgstr "som '%D'"
+
+#~ msgid "previous external decl of `%#D'"
+#~ msgstr "tidligere ekstern erklring af '%#D'"
+
+#~ msgid "`%D' was previously implicitly declared to return `int'"
+#~ msgstr "'%D' blev tidligere underforstet erklret til at returnere 'int'"
+
+#~ msgid "extern declaration of `%#D' doesn't match"
+#~ msgstr "extern-erklring af '%#D' passer ikke med"
+
+#~ msgid "global declaration `%#D'"
+#~ msgstr "global erklring '%#D'"
+
+#~ msgid "declaration of `%#D' shadows a parameter"
+#~ msgstr "erklring af '%#D' skygger for en parameter"
+
+#~ msgid "declaration of `%s' shadows a member of `this'"
+#~ msgstr "erklring af '%s' skygger for et medlem af 'this'"
+
+#~ msgid "`%#D' hides constructor for `%#T'"
+#~ msgstr "'%#D' skjuler konstruktionsfunktion for '%#T'"
+
+#~ msgid "`%#D' conflicts with previous using declaration `%#D'"
+#~ msgstr "'%#D' strider mod tidligere using-erklring '%#D'"
+
+#~ msgid "previous non-function declaration `%#D'"
+#~ msgstr "tidligere ikke-funktionserklring '%#D'"
+
+#~ msgid "conflicts with function declaration `%#D'"
+#~ msgstr "strider mod funktionserklring '%#D'"
+
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr "underforstet erklring af funktionen '%#D'"
+
+#~ msgid "label `%s' referenced outside of any function"
+#~ msgstr "der er blevet henvist til etiketten '%s' uden for en funktion"
+
+#~ msgid "jump to label `%D'"
+#~ msgstr "spring til etiketten '%D' "
+
+#~ msgid "jump to case label"
+#~ msgstr "spring til case-etiket"
+
+#~ msgid " crosses initialization of `%#D'"
+#~ msgstr " krydser klargring af '%#D'"
+
+#~ msgid " enters scope of non-POD `%#D'"
+#~ msgstr " gr ind i virkefelt af ikke-POD '%#D'"
+
+#~ msgid " enters try block"
+#~ msgstr " gr ind i try-blok"
+
+#~ msgid " enters catch block"
+#~ msgstr " gr ind i catch-blok"
+
+#~ msgid " from here"
+#~ msgstr " herfra"
+
+#~ msgid " skips initialization of `%#D'"
+#~ msgstr " springer over klargring af '%#D'"
+
+#~ msgid "label named wchar_t"
+#~ msgstr "etiket med navnet wchar_t"
+
+#~ msgid "duplicate label `%D'"
+#~ msgstr "etiketten '%D' optrder mere end n gang"
+
+#~ msgid "case label `%E' not within a switch statement"
+#~ msgstr "case-etiket '%E' befinder sig ikke inden i en switch-stning"
+
+#~ msgid "`%#D' redeclared as %C"
+#~ msgstr "'%#D' omerklret som %C"
+
+#~ msgid "invalid use of `%D'"
+#~ msgstr "ugyldig brug af '%D"
+
+#~ msgid "`%D::%D' is not a template"
+#~ msgstr "'%D::%D' er ikke en skabelon"
+
+#~ msgid "`%D' undeclared in namespace `%D'"
+#~ msgstr "'%D' ikke erklret i navnerummet '%D'"
+
+#~ msgid "`%D' used without template parameters"
+#~ msgstr "'%D' benyttet uden skabelonsparametre"
+
+#~ msgid "no class template named `%#T' in `%#T'"
+#~ msgstr "ingen klasseskabelon ved navn '%#T' i '%#T'"
+
+#~ msgid "no type named `%#T' in `%#T'"
+#~ msgstr "ingen type ved navn '%#T' i '%#T'"
+
+#~ msgid "lookup of `%D' finds `%#D'"
+#~ msgstr "opslag af '%D' finder '%#D'"
+
+#~ msgid " instead of `%D' from dependent base class"
+#~ msgstr " i stedet for '%D' fra afhngig stamklasse"
+
+#~ msgid " (use `typename %T::%D' if that's what you meant)"
+#~ msgstr " (benyt 'typename %T::%D' hvis det er hvad du mener)"
+
+#~ msgid "name lookup of `%D' changed"
+#~ msgstr "navneopslag for '%D' ndret"
+
+#~ msgid " matches this `%D' under ISO standard rules"
+#~ msgstr " passer med '%D' under ISO-standardreglerne"
+
+#~ msgid " matches this `%D' under old rules"
+#~ msgstr " passer med '%D' under tidligere regler"
+
+#~ msgid "name lookup of `%D' changed for new ISO `for' scoping"
+#~ msgstr "navneopslaget af '%D' er ndret til ISO 'for'-virkefelt"
+
+#~ msgid " cannot use obsolete binding at `%D' because it has a destructor"
+#~ msgstr " kan ikke bruge forldet binding til '%D' fordi den har en destruktionsfunktion"
+
+#~ msgid " using obsolete binding at `%D'"
+#~ msgstr " bruger forldet binding til '%D'"
+
+#~ msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+#~ msgstr "opslag af '%D' i virkefeltet for '%#T' ('%#D') passer ikke med opslaget i det aktuelle virkefelt ('%#D')"
+
+#~ msgid "an anonymous union cannot have function members"
+#~ msgstr "en anonym union kan ikke have funktionsmedlemmer"
+
+#~ msgid "member %#D' with constructor not allowed in anonymous aggregate"
+#~ msgstr "medlemmet '%#D' med konstruktionsfunktion er ikke tilladt i anonym sammensat type"
+
+#~ msgid "member %#D' with destructor not allowed in anonymous aggregate"
+#~ msgstr "medlemmet '%#D' med destruktionsfunktion er ikke tilladt i anonym sammensat type"
+
+#~ msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+#~ msgstr "medlemmet '%#D' med kopitildelingsoperator er ikke tilladt i anonym sammensat type"
+
+#~ msgid "redeclaration of C++ built-in type `%T'"
+#~ msgstr "omerklring af indbygget type i C++ '%T'"
+
+#~ msgid "multiple types in one declaration"
+#~ msgstr "flere typer i n erklring"
+
+#~ msgid "missing type-name in typedef-declaration"
+#~ msgstr "manglende typenavn i typedef-erklring"
+
+#~ msgid "ISO C++ prohibits anonymous structs"
+#~ msgstr "ISO C++ forbyder anonyme strukturer"
+
+#~ msgid "`%D' can only be specified for functions"
+#~ msgstr "'%D' kan kun angives for funktioner"
+
+#~ msgid "`%D' can only be specified inside a class"
+#~ msgstr "'%D' kan kun angives inden i en klasse"
+
+#~ msgid "`%D' can only be specified for constructors"
+#~ msgstr "'%D' kan kun angives for konstruktionsfunktioner"
+
+#~ msgid "`%D' can only be specified for objects and functions"
+#~ msgstr "'%D' kan kun angives for objekter og funktioner"
+
+# init dkker over vrditildeling her - samme for de nste mange
+#~ msgid "typedef `%D' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef '%D' bliver tildelt en vrdi (benyt __typeof__ i stedet)"
+
+#~ msgid "function `%#D' is initialized like a variable"
+#~ msgstr "funktionen '%#D' bliver tildelt en startvrdi som en variabel"
+
+#~ msgid "declaration of `%#D' has `extern' and is initialized"
+#~ msgstr "erklringen af '%#D' indeholder 'extern' og variablen bliver tildelt en startvrdi"
+
+#~ msgid "`%#D' is not a static member of `%#T'"
+#~ msgstr "'%#D' er ikke et statisk medlem af '%#T'"
+
+#~ msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+#~ msgstr "ISO C++ tillader ikke '%T::%D' at blive defineret som '%T::%D'"
+
+#~ msgid "duplicate initialization of %D"
+#~ msgstr "%D tildelt startvrdi mere end n gang"
+
+#~ msgid "declaration of `%#D' outside of class is not definition"
+#~ msgstr "erklring af '%#D' uden for en klasse er ikke en definition"
+
+#~ msgid "variable `%#D' has initializer but incomplete type"
+#~ msgstr "variablen '%#D' bliver tildelt en startvrdi, men er af en ufuldstndig type"
+
+#~ msgid "elements of array `%#D' have incomplete type"
+#~ msgstr "elementer i tabellen '%#D' er af en ufuldstndig type"
+
+#~ msgid "aggregate `%#D' has incomplete type and cannot be defined"
+#~ msgstr "den sammensatte type '%#D' er af en ufuldstndig type og kan ikke defineres"
+
+#~ msgid "`%D' declared as reference but not initialized"
+#~ msgstr "'%D' erklret som en reference, men bliver ikke tildelt en startvrdi"
+
+#~ msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+#~ msgstr "ISO C++ forbyder brug af en startvrdiliste til at klargre referencen '%D'"
+
+#~ msgid "cannot initialize `%T' from `%T'"
+#~ msgstr "kan ikke klargre '%T' fra %T'"
+
+#~ msgid "initializer fails to determine size of `%D'"
+#~ msgstr "startvrdien giver ikke strrelsen af '%D'"
+
+#~ msgid "array size missing in `%D'"
+#~ msgstr "tabelstrrelsen mangler i '%D'"
+
+#~ msgid "zero-size array `%D'"
+#~ msgstr "nulstrrelsestabel '%D'"
+
+#~ msgid "storage size of `%D' isn't known"
+#~ msgstr "lagringsstrrelsen af '%D' er ikke kendt"
+
+#~ msgid "storage size of `%D' isn't constant"
+#~ msgstr "lagringsstrrelsen af '%D' er ikke konstant"
+
+#~ msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+#~ msgstr "semantikken for indlejret funktionsstatisk data '%#D' er forkert (du ender med flere kopier)"
+
+#~ msgid " you can work around this by removing the initializer"
+#~ msgstr " du kan arbejde dig rundt om dette ved at fjerne startvrdien"
+
+#~ msgid "uninitialized const `%D'"
+#~ msgstr "konstant '%D' uden startvrdi"
+
+#~ msgid "brace-enclosed initializer used to initialize `%T'"
+#~ msgstr "startvrdi i krllede paranteser benyttet til at klargre '%T'"
+
+#~ msgid "initializer for `%T' must be brace-enclosed"
+#~ msgstr "startvrdi for '%T' skal vre indesluttet i krllede paranteser"
+
+#~ msgid "ISO C++ does not allow designated initializers"
+#~ msgstr "ISO C++ tillader ikke udpegede startvrdier"
+
+#~ msgid "`%T' has no non-static data member named `%D'"
+#~ msgstr "'%T' har intet ikke-statisk medlem ved navn '%D'"
+
+#~ msgid "too many initializers for `%T'"
+#~ msgstr "for mange startvrdier for '%T'"
+
+#~ msgid "variable-sized object `%D' may not be initialized"
+#~ msgstr "objektet '%D' af variabel strrelse m ikke tildeles en startvrdi"
+
+#~ msgid "`%D' has incomplete type"
+#~ msgstr "'%D' er af en ufuldstndig type"
+
+#~ msgid "`%D' must be initialized by constructor, not by `{...}'"
+#~ msgstr "'%D' skal klargres af en konstruktionsfunktion, ikke af '{...}'"
+
+#~ msgid "structure `%D' with uninitialized const members"
+#~ msgstr "struktur '%D' med konstante medlemmer uden startvrdi"
+
+#~ msgid "structure `%D' with uninitialized reference members"
+#~ msgstr "struktur '%D' med referencemedlemmer uden startvrdi"
+
+#~ msgid "assignment (not initialization) in declaration"
+#~ msgstr "tildeling (ikke klargring) i erklring"
+
+#~ msgid "cannot initialize `%D' to namespace `%D'"
+#~ msgstr "kan ikke tildele startvrdi til '%D' med navnerummet '%D'"
+
+#~ msgid "shadowing previous type declaration of `%#D'"
+#~ msgstr "skygger for tidligere typeerklring af '%#D'"
+
+#~ msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+#~ msgstr "'%D' kan ikke vre trdlokal eftersom den er af en ikke-POD type '%T'"
+
+#~ msgid "`%D' is thread-local and so cannot be dynamically initialized"
+#~ msgstr "'%D' er trdlokal og kan derfor ikke blive tildelt en startvrdi dynamisk"
+
+#~ msgid "multiple initializations given for `%D'"
+#~ msgstr "flere startvrdier angivet for '%D'"
+
+#~ msgid "invalid catch parameter"
+#~ msgstr "ugyldig catch-parameter"
+
+#~ msgid "destructor for alien class `%T' cannot be a member"
+#~ msgstr "destruktionsfunktionen for den fremmede klasse '%T' kan ikke vre et medlem"
+
+#~ msgid "constructor for alien class `%T' cannot be a member"
+#~ msgstr "konstruktionsfunktionen for den fremmede klasse '%T' kan ikke vre et medlem"
+
+#~ msgid "`%D' declared as a `virtual' %s"
+#~ msgstr "'%D' erklret som 'virtual' %s"
+
+#~ msgid "`%D' declared as an `inline' %s"
+#~ msgstr "'%D' erklret som 'inline' %s"
+
+# %s bliver omsat til typen
+#~ msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+#~ msgstr "'const'- og 'volatile'-funktionsangivelser til '%D' er ugyldigt i erklring af %s"
+
+#~ msgid "`%D' declared as a friend"
+#~ msgstr "'%D' er erklret som en ven"
+
+#~ msgid "`%D' declared with an exception specification"
+#~ msgstr "'%D' erklret med en undtagelsesspecifikation"
+
+#~ msgid "cannot declare `::main' to be a template"
+#~ msgstr "kan ikke erklre '::main' som en skabelon"
+
+#~ msgid "cannot declare `::main' to be inline"
+#~ msgstr "kan ikke erklre '::main' som indlejret"
+
+#~ msgid "cannot declare `::main' to be static"
+#~ msgstr "kan ikke erklre '::main' som statisk"
+
+#~ msgid "`main' must return `int'"
+#~ msgstr "'main' skal returnere typen 'int'"
+
+#~ msgid "non-local function `%#D' uses anonymous type"
+#~ msgstr "ikke-lokal funktion '%#D' bruger anonym type"
+
+#~ msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+#~ msgstr "'%#D' refererer ikke til den ikkemodificerede type, so den bruges ikke til sammenkdning"
+
+#~ msgid "non-local function `%#D' uses local type `%T'"
+#~ msgstr "ikke-lokal funktion '%#D' bruger lokal type '%T'"
+
+#~ msgid "%smember function `%D' cannot have `%T' method qualifier"
+#~ msgstr "%smedlemsfunktion '%D' kan ikke have metodemodifikationen '%T'"
+
+#~ msgid "defining explicit specialization `%D' in friend declaration"
+#~ msgstr "definering af eksplicit specialisering '%D' i friend-erklring"
+
+#~ msgid "invalid use of template-id `%D' in declaration of primary template"
+#~ msgstr "ugyldig brug af skabelons-id '%D' i erklring af primr skabelon"
+
+#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "standardparametre er ikke tilladt i erklring af venneskabelonsspecialisering '%D'"
+
+#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "'inline' er ikke tilladt i erklring venneskabelonsspecialisering '%D'"
+
+#~ msgid "definition of implicitly-declared `%D'"
+#~ msgstr "definition af underforstet-erklret '%D'"
+
+#~ msgid "no `%#D' member function declared in class `%T'"
+#~ msgstr "ingen medlemsfunktion '%#D' erklret i klassen '%T'"
+
+#~ msgid "non-local variable `%#D' uses local type `%T'"
+#~ msgstr "ikke-lokal variabel '%#D' bruger lokal type '%T'"
+
+#~ msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+#~ msgstr "ugyldig tildeling af startvrdi i klasse til statisk datamedlem af en ikke-heltalstype '%T'"
+
+#~ msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+#~ msgstr "ISO C++ forbyder tildeling af startvrdi i klasse til ikke-konstant statisk medlem '%D'"
+
+#~ msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+#~ msgstr "ISO C++ forbyder tildeling af startvrdi til medlemskonstant '%D' af en ikke-heltallig type"
+
+#~ msgid "size of array `%D' has non-integer type"
+#~ msgstr "strrelsen af tabellen '%D' er ikke af en heltalstype"
+
+#~ msgid "size of array has non-integer type"
+#~ msgstr "strrelsen af tabel er ikke af en heltalstype"
+
+#~ msgid "size of array `%D' is negative"
+#~ msgstr "strrelsen af tabellen '%D' er negativ"
+
+#~ msgid "size of array is negative"
+#~ msgstr "strrelsen af tabel er negativ"
+
+#~ msgid "ISO C++ forbids zero-size array `%D'"
+#~ msgstr "ISO C++ forbyder tabellen '%D' med strrelsen nul"
+
+#~ msgid "ISO C++ forbids zero-size array"
+#~ msgstr "ISO C++ forbyder tabel med strrelsen nul"
+
+#~ msgid "size of array `%D' is not an integral constant-expression"
+#~ msgstr "strrelsen af tabellen '%D' er ikke af et heltalligt konstantudtryk"
+
+#~ msgid "size of array is not an integral constant-expression"
+#~ msgstr "strrelsen af tabel er ikke af et heltalligt konstantudtryk"
+
+#~ msgid "ISO C++ forbids variable-size array `%D'"
+#~ msgstr "ISO C++ forbyder tabellen '%D' med variabel strrelse"
+
+#~ msgid "ISO C++ forbids variable-size array"
+#~ msgstr "ISO C++ forbyder tabel med variabel strrelse"
+
+#~ msgid "overflow in array dimension"
+#~ msgstr "tabeldimension for stor"
+
+#~ msgid "declaration of `%D' as %s"
+#~ msgstr "erklring af '%D' som %s"
+
+#~ msgid "creating %s"
+#~ msgstr "opretter %s"
+
+#~ msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "erklring af '%D' som flerdimensional tabel skal have grnser for alle dimensioner pnr den frste"
+
+#~ msgid "multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "flerdimensional tabel skal have grnser for alle dimensioner pnr den frste"
+
+#~ msgid "return type specification for constructor invalid"
+#~ msgstr "angivelse af returneringstypen til konstruktionsfunktion er ugyldigt"
+
+#~ msgid "return type specification for destructor invalid"
+#~ msgstr "angivelse af returneringstypen til destruktionsfunktion er ugyldigt"
+
+#~ msgid "operator `%T' declared to return `%T'"
+#~ msgstr "operator '%T' erklret til at returnere '%T'"
+
+#~ msgid "return type specified for `operator %T'"
+#~ msgstr "returtype angivet for 'operator %T'"
+
+#~ msgid "destructors must be member functions"
+#~ msgstr "destruktionsfunktioner skal vre medlemmer"
+
+#~ msgid "destructor `%T' must match class name `%T'"
+#~ msgstr "destruktionsfunktion '%T' skal passe til klassenavnet '%T'"
+
+#~ msgid "variable declaration is not allowed here"
+#~ msgstr "variabelerklring er ikke tilladt her"
+
+#~ msgid "invalid declarator"
+#~ msgstr "ugyldig erklrer"
+
+#~ msgid "declarator-id missing; using reserved word `%D'"
+#~ msgstr "erklrer-id mangler; bruger reserveret ord '%D'"
+
+#~ msgid "type `%T' is not derived from type `%T'"
+#~ msgstr "typen '%T' er ikke nedarvet fra typen '%T'"
+
+#~ msgid "`%T' specified as declarator-id"
+#~ msgstr "'%T' angivet som erklrer-id"
+
+#~ msgid " perhaps you want `%T' for a constructor"
+#~ msgstr " mske nsker du '%T' for en konstruktionsfunktion"
+
+#~ msgid "invalid use of template-name '%E' in a declarator"
+#~ msgstr "ugyldig brug af skabelonsnavn '%E' i erklring"
+
+#~ msgid "declaration of `%D' as non-function"
+#~ msgstr "erklring af '%D' som ikke-funktion"
+
+#~ msgid "`bool' is now a keyword"
+#~ msgstr "'bool' er et reserveret ord"
+
+#~ msgid "extraneous `%T' ignored"
+#~ msgstr "overfldig '%T' ignoreret"
+
+#~ msgid "multiple declarations `%T' and `%T'"
+#~ msgstr "flere erklringer '%T' og '%T'"
+
+#~ msgid "ISO C++ does not support `long long'"
+#~ msgstr "ISO C++ understtter ikke 'long long'"
+
+#~ msgid "ISO C++ forbids declaration of `%s' with no type"
+#~ msgstr "ISO C++ forbyder erklring af '%s' uden en type"
+
+#~ msgid "`%T' is implicitly a typename"
+#~ msgstr "'%T' er underforstet et typenavn"
+
+#~ msgid "short, signed or unsigned invalid for `%s'"
+#~ msgstr "short, signed eller unsigned er ugyldig for '%s'"
+
+#~ msgid "long and short specified together for `%s'"
+#~ msgstr "long og short er begge angivet for '%s'"
+
+#~ msgid "signed and unsigned given together for `%s'"
+#~ msgstr "signed og unsigned er begge angivet for '%s'"
+
+#~ msgid "qualifiers are not allowed on declaration of `operator %T'"
+#~ msgstr "modifikationer er ikke tilladt i erklring af 'operator %T'"
+
+#~ msgid "member `%D' cannot be declared both virtual and static"
+#~ msgstr "medlemmet '%D' kan ikke afklres bde virtual og static"
+
+#~ msgid "storage class specifiers invalid in parameter declarations"
+#~ msgstr "lagringsklasseanvisninger er ugyldige i parametererklringer"
+
+#~ msgid "typedef declaration invalid in parameter declaration"
+#~ msgstr "typedef-erklringer er ugyldig i parametererklringer"
+
+#~ msgid "virtual outside class declaration"
+#~ msgstr "virtual angivet uden for klasseerklring"
+
+#~ msgid "storage class specified for %s `%s'"
+#~ msgstr "lagringsklasse angivet for %s '%s'"
+
+#~ msgid "storage class specifiers invalid in friend function declarations"
+#~ msgstr "lagringsklasseanvisninger er ugyldige i vennefunktionserklringer"
+
+#~ msgid "destructor cannot be static member function"
+#~ msgstr "destruktionsfunktionen kan ikke vre en statisk medlemsfunktion"
+
+#~ msgid "destructors may not be `%s'"
+#~ msgstr "destruktionsfunktioner m ikke vre '%s'"
+
+#~ msgid "constructor cannot be static member function"
+#~ msgstr "konstruktionsfunktionen kan ikke vre en statisk medlemsfunktion"
+
+#~ msgid "constructors cannot be declared virtual"
+#~ msgstr "konstruktionsfunktioner kan ikke erklres virtual"
+
+#~ msgid "constructors may not be `%s'"
+#~ msgstr "konstruktionsfunktioner m ikke vre '%s'"
+
+#~ msgid "return value type specifier for constructor ignored"
+#~ msgstr "angivelse af typen af returvrdien til konstruktionsfunktionen ignoreret"
+
+#~ msgid "can't initialize friend function `%s'"
+#~ msgstr "kan ikke tildele en startvrdi til vennefunktionen '%s'"
+
+#~ msgid "virtual functions cannot be friends"
+#~ msgstr "en virtuel funktion kan ikke erklres som friend"
+
+#~ msgid "friend declaration not in class definition"
+#~ msgstr "friend-erklringen er ikke i klassedefinitionen"
+
+#~ msgid "can't define friend function `%s' in a local class definition"
+#~ msgstr "kan ikke definere vennefunktion '%s' i en lokal klassedefinition"
+
+#~ msgid "destructors may not have parameters"
+#~ msgstr "destruktionsfunktioner m ikke have parametre"
+
+#~ msgid "cannot declare reference to `%#T'"
+#~ msgstr "kan ikke erklre reference til '%#T'"
+
+#~ msgid "cannot declare pointer to `%#T'"
+#~ msgstr "kan ikke erklre henvisning til '%#T'"
+
+#~ msgid "cannot declare pointer to `%#T' member"
+#~ msgstr "kan ikke erklre henvisning til medlemmet '%#T'"
+
+#~ msgid "extra qualification `%T::' on member `%s' ignored"
+#~ msgstr "ekstra modifikation '%T::' af medlemmet '%s' ignoreret"
+
+#~ msgid "cannot declare member function `%T::%s' within `%T'"
+#~ msgstr "kan ikke erklre medlemsfunktion '%T::%s' inde i '%T'"
+
+#~ msgid "cannot declare member `%T::%s' within `%T'"
+#~ msgstr "kan ikke erklre medlem '%T::%s' inde i '%T'"
+
+#~ msgid "data member may not have variably modified type `%T'"
+#~ msgstr "datamedlem m ikke have variabelt ndret type '%T'"
+
+#~ msgid "parameter may not have variably modified type `%T'"
+#~ msgstr "parameter m ikke have variabelt ndret type '%T'"
+
+#~ msgid "only declarations of constructors can be `explicit'"
+#~ msgstr "kun erklringer af konstruktionsfunktioner kan vre 'explicit'"
+
+#~ msgid "non-member `%s' cannot be declared `mutable'"
+#~ msgstr "'%s' som ikke er medlem, kan ikke erklres 'mutable'"
+
+#~ msgid "non-object member `%s' cannot be declared `mutable'"
+#~ msgstr "'%s' som ikke er objektmedlem, kan ikke erklres 'mutable'"
+
+#~ msgid "function `%s' cannot be declared `mutable'"
+#~ msgstr "funktionen '%s' kan ikke erklres 'mutable'"
+
+#~ msgid "static `%s' cannot be declared `mutable'"
+#~ msgstr "static '%s' kan ikke erklres 'mutable'"
+
+#~ msgid "const `%s' cannot be declared `mutable'"
+#~ msgstr "const '%s' kan ikke erklres 'mutable'"
+
+#~ msgid "template-id `%D' used as a declarator"
+#~ msgstr "skabelons-id '%D' benyttet som erklrer"
+
+#~ msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ forbyder indlejret type '%D' med samme navn som den omgivende klasse"
+
+#~ msgid "typedef name may not be class-qualified"
+#~ msgstr "typedef-navn kan ikke klassemodificeres"
+
+#~ msgid "invalid type qualifier for non-member function type"
+#~ msgstr "ugyldig typemodifikation for ikke-medlemsfunktionstype"
+
+#~ msgid "type qualifiers specified for friend class declaration"
+#~ msgstr "typemodifikationer angivet for friend class-erklring"
+
+#~ msgid "`inline' specified for friend class declaration"
+#~ msgstr "'inline' angivet for friend class-erklring"
+
+#~ msgid "template parameters cannot be friends"
+#~ msgstr "skabelonsparametre kan ikke vre venner"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+#~ msgstr "friend-erklring krver klasseangivelse, dvs. 'friend class %T::%D'"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend %#T'"
+#~ msgstr "friend-erklring krver klasseangivelse, dvs. 'friend %#T'"
+
+#~ msgid "trying to make class `%T' a friend of global scope"
+#~ msgstr "forsg p at gre klassen '%T' til ven af det globale virkningsfelt"
+
+#~ msgid "invalid qualifiers on non-member function type"
+#~ msgstr "ugyldige modifikationer for ikke-medlemsfunktionstype"
+
+#~ msgid "abstract declarator `%T' used as declaration"
+#~ msgstr "abstrakt erklrer '%T' benyttet som erklring"
+
+#~ msgid "unnamed variable or field declared void"
+#~ msgstr "unavngiven variabel eller felt erklret void"
+
+#~ msgid "variable or field declared void"
+#~ msgstr "variabel eller felt erklret void"
+
+#~ msgid "cannot use `::' in parameter declaration"
+#~ msgstr "kan ikke bruge '::' i parametererklring"
+
+#~ msgid "invalid use of `::'"
+#~ msgstr "ugyldig brug af '::'"
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "funktionen '%D' kan ikke erklres friend"
+
+#~ msgid "can't make `%D' into a method -- not in a class"
+#~ msgstr "kan ikke gre '%D' til en metode - er ikke i en klasse"
+
+#~ msgid "function `%D' declared virtual inside a union"
+#~ msgstr "funktionen '%D' erklret virtual inden i en union"
+
+#~ msgid "`%D' cannot be declared virtual, since it is always static"
+#~ msgstr "'%D' kan ikke erklres virtual eftersom den altid er statisk"
+
+#~ msgid "field `%D' has incomplete type"
+#~ msgstr "feltet '%D' er af en ufuldstndig type"
+
+#~ msgid "name `%T' has incomplete type"
+#~ msgstr "navnet '%T' er af en ufuldstndig type"
+
+#~ msgid " in instantiation of template `%T'"
+#~ msgstr " i instantiering af skabelonen '%T'"
+
+#~ msgid "`%s' is neither function nor member function; cannot be declared friend"
+#~ msgstr "'%s' er hverken en almindelig funktion eller en medlemsfunktion; kan ikke erklres som friend"
+
+#~ msgid "member functions are implicitly friends of their class"
+#~ msgstr "medlemsfunktioner er underforstet venner af deres klasse"
+
+#~ msgid "ISO C++ forbids initialization of member `%D'"
+#~ msgstr "ISO C++ forbyder tildeling af startvrdi til medlemmet '%D'"
+
+#~ msgid "making `%D' static"
+#~ msgstr "gr '%D' statisk"
+
+#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ forbyder statisk datamedlem '%D' med samme navn som den omgivende klasse"
+
+#~ msgid "storage class `auto' invalid for function `%s'"
+#~ msgstr "lagringsklassen 'auto' er ugyldig for funktionen '%s'"
+
+#~ msgid "storage class `register' invalid for function `%s'"
+#~ msgstr "lagringsklassen 'register' er ugyldig for funktionen '%s'"
+
+#~ msgid "storage class `__thread' invalid for function `%s'"
+#~ msgstr "lagringsklassen '__thread' er ugyldig for funktionen '%s'"
+
+#~ msgid "storage class `static' invalid for function `%s' declared out of global scope"
+#~ msgstr "lagringsklassen 'static' er ugyldig for funktionen '%s' erklret uden for det globale virkefelt"
+
+#~ msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+#~ msgstr "lagringsklassen 'inline' er ugyldig for funktionen '%s' erklret uden for det globale virkefelt"
+
+#~ msgid "virtual non-class function `%s'"
+#~ msgstr "virtuel funktion '%s' tilhrer ikke en klasse"
+
+#~ msgid "cannot declare member function `%D' to have static linkage"
+#~ msgstr "kan ikke erklre medlemsfunktion '%D' til at have statisk kdning"
+
+#~ msgid "cannot declare static function inside another function"
+#~ msgstr "kan ikke erklre en funktion for static inden i en anden funktion"
+
+#~ msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+#~ msgstr "'static' m ikke bruges ved definering (i modstning til erklring) af et statisk datamedlem"
+
+#~ msgid "static member `%D' declared `register'"
+#~ msgstr "statisk medlem '%D' erklret 'register'"
+
+#~ msgid "cannot explicitly declare member `%#D' to have extern linkage"
+#~ msgstr "kan ikke eksplicit erklre medlemmet '%#D' til at have extern-kdning"
+
+#~ msgid "default argument for `%#D' has type `%T'"
+#~ msgstr "standardparameter for '%#D' har typen '%T'"
+
+#~ msgid "default argument for parameter of type `%T' has type `%T'"
+#~ msgstr "standardparameter for parameter af typen '%T' har typen '%T'"
+
+#~ msgid "default argument `%E' uses local variable `%D'"
+#~ msgstr "standardparameter '%E' bruger lokal variabel '%D'"
+
+#~ msgid "invalid string constant `%E'"
+#~ msgstr "ugyldig strengkonstant '%E'"
+
+#~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+#~ msgstr "ugyldig heltalskonstant i parameterlisten, mske mangler parameternavnet?"
+
+#~ msgid "parameter `%D' invalidly declared method type"
+#~ msgstr "parameteren '%D' er p ugyldig vis erklret som af en medlemsfunktionstype"
+
+#~ msgid "parameter `%D' invalidly declared offset type"
+#~ msgstr "parameteren '%D' er p ugyldig vis erklret som af en offset-type"
+
+#~ msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+#~ msgstr "parameteren '%D' inkluderer %s til tabel med ukendt grnse '%T'"
+
+#~ msgid "invalid constructor; you probably meant `%T (const %T&)'"
+#~ msgstr "ugyldig konstruktionsfunktion; du mente sandsynligvis '%T (const %T&)'"
+
+#~ msgid "`%D' must be a nonstatic member function"
+#~ msgstr "'%D' skal vre en ikke-statisk medlemsfunktion"
+
+#~ msgid "`%D' must be either a non-static member function or a non-member function"
+#~ msgstr "'%D' skal enten vre en ikke-statisk medlemsfunktion eller ikke en medlemsfunktion"
+
+#~ msgid "`%D' must have an argument of class or enumerated type"
+#~ msgstr "'%D' skal have en parameter af en klasse- eller enum-type"
+
+#~ msgid "conversion to %s%s will never use a type conversion operator"
+#~ msgstr "konvertering til %s%s vil aldrig bruge en typekonverteringsoperator"
+
+#~ msgid "ISO C++ prohibits overloading operator ?:"
+#~ msgstr "ISO C++ forbyder flertydiggrelse af operatoren ?:"
+
+#~ msgid "postfix `%D' must take `int' as its argument"
+#~ msgstr "postfiks '%D' skal tage mod 'int' som parameter"
+
+#~ msgid "postfix `%D' must take `int' as its second argument"
+#~ msgstr "postfiks '%D' skal tage mod 'int' som den anden parameter"
+
+#~ msgid "`%D' must take either zero or one argument"
+#~ msgstr "'%D' skal tage mod nul eller n parameter"
+
+#~ msgid "`%D' must take either one or two arguments"
+#~ msgstr "'%D' skal tage mod n eller to parametre"
+
+#~ msgid "prefix `%D' should return `%T'"
+#~ msgstr "prfiks '%D' skal returnere '%T'"
+
+#~ msgid "postfix `%D' should return `%T'"
+#~ msgstr "postfiks '%D' skal returnere '%T'"
+
+#~ msgid "`%D' must take `void'"
+#~ msgstr "'%D' skal tage mod 'void'"
+
+#~ msgid "`%D' must take exactly one argument"
+#~ msgstr "'%s' skal tage mod n parameter"
+
+#~ msgid "`%D' must take exactly two arguments"
+#~ msgstr "'%s' skal tage mod to parametre"
+
+#~ msgid "user-defined `%D' always evaluates both arguments"
+#~ msgstr "brugerdefineret '%D' evaluerer altid begge parametre"
+
+#~ msgid "`%D' should return by value"
+#~ msgstr "'%D' skal returnere pr. vrdi (ikke reference)"
+
+#~ msgid "`%D' cannot have default arguments"
+#~ msgstr "'%D' kan ikke have standardparametre"
+
+#~ msgid "using typedef-name `%D' after `%s'"
+#~ msgstr "bruger typedef-navn '%D' efter '%s'"
+
+#~ msgid "using template type parameter `%T' after `%s'"
+#~ msgstr "bruger skabelonstypeparameter '%D' efter '%s'"
+
+#~ msgid "`%s %T' declares a new type at namespace scope"
+#~ msgstr "'%s %T' erklrer en ny type ved navnerumsvirkefelt"
+
+#~ msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+#~ msgstr " navne fra afhngige stamklasser er ikke synlige for umodificerede navneopslag - benyt '%s %T::%T' for at referere til den nedarvede type"
+
+#~ msgid "use of enum `%#D' without previous declaration"
+#~ msgstr "brug af enum '%#D' uden tidligere erklring"
+
+#~ msgid "derived union `%T' invalid"
+#~ msgstr "nedarvet union '%T' ugyldig"
+
+#~ msgid "base type `%T' fails to be a struct or class type"
+#~ msgstr "stamklassetype '%T' er hverken en struct- eller class-type"
+
+#~ msgid "base class `%T' has incomplete type"
+#~ msgstr "stamklasse '%T' er af en ufuldstndig type"
+
+#~ msgid "recursive type `%T' undefined"
+#~ msgstr "rekursiv type '%T' ikke defineret"
+
+#~ msgid "duplicate base type `%T' invalid"
+#~ msgstr "stamklassetype '%T' optrder mere end n gang"
+
+#~ msgid "multiple definition of `%#T'"
+#~ msgstr "flere definitioner af '%#T'"
+
+#~ msgid "previous definition here"
+#~ msgstr "tidligere definition her"
+
+#~ msgid "enumerator value for `%D' not integer constant"
+#~ msgstr "enum-vrdi for '%D' er ikke en heltalskonstant"
+
+#~ msgid "overflow in enumeration values at `%D'"
+#~ msgstr "enum-vrdier for store ved '%D'"
+
+#~ msgid "return type `%#T' is incomplete"
+#~ msgstr "returtype '%#T' er ufuldstndig"
+
+#~ msgid "semicolon missing after declaration of `%#T'"
+#~ msgstr "semikolon mangler efter erklring af '%#T'"
+
+#~ msgid "return type for `main' changed to `int'"
+#~ msgstr "returtype for 'main' ndret til 'int'"
+
+#~ msgid "`%D' implicitly declared before its definition"
+#~ msgstr "'%s' er underforstet erklret efter dens definition"
+
+#~ msgid "`operator=' should return a reference to `*this'"
+#~ msgstr "'operator=' br returnere en reference til '*this'"
+
+#~ msgid "parameter `%D' declared void"
+#~ msgstr "parameteren '%D' erklret void"
+
+#~ msgid "`%D' is already defined in class `%T'"
+#~ msgstr "'%D' er allerede defineret i klassen '%T'"
+
+#~ msgid "static member function `%#D' declared with type qualifiers"
+#~ msgstr "statisk medlemsfunktion '%#D' erklret med typemodifikationer"
+
+#~ msgid "duplicate type qualifiers in %s declaration"
+#~ msgstr "dobbelte typemodifikationer i %s-erklring"
+
+#~ msgid "template `%#D' instantiated in file without #pragma interface"
+#~ msgstr "skabelon '%#D' instantieret i fil uden #pragma interface"
+
+#~ msgid "template `%#D' defined in file without #pragma interface"
+#~ msgstr "skabelon '%#D' defineret i fil uden #pragma interface"
+
+#~ msgid "name missing for member function"
+#~ msgstr "navn mangler for medlemsfunktion"
+
+#~ msgid "parser may be lost: is there a '{' missing somewhere?"
+#~ msgstr "fortolkeren kan vre faret vild: mangler der en '{' et eller andet sted?"
+
+#~ msgid "ambiguous conversion for array subscript"
+#~ msgstr "tvetydig konvertering af tabelindeks"
+
+#~ msgid "invalid types `%T[%T]' for array subscript"
+#~ msgstr "ugyldige typer '%T[%T]' for tabelopslag"
+
+#~ msgid "type `%#T' argument given to `delete', expected pointer"
+#~ msgstr "parameter af typen '%#T' givet til 'delete', forventede henvisning"
+
+#~ msgid "anachronistic use of array size in vector delete"
+#~ msgstr "forldet brug af tabelstrrelse i tabelformen af delete"
+
+#~ msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+#~ msgstr "kan ikke udfre delete p en funktion; kun henvisninger til objekter er gyldige som parameter til 'delete'"
+
+#~ msgid "deleting `%T' is undefined"
+#~ msgstr "benyttelse af delete p '%T' er ikke defineret"
+
+#~ msgid "deleting array `%#D'"
+#~ msgstr "benyttelse af delete p tabellen '%#D'"
+
+#~ msgid "invalid declaration of member template `%#D' in local class"
+#~ msgstr "ugyldig erklring af medlemsskabelon '%#D' i lokal klasse"
+
+#~ msgid "invalid use of `virtual' in template declaration of `%#D'"
+#~ msgstr "ugyldig brug af 'virtual' i skabelonserklring af '%#D'"
+
+#~ msgid "template declaration of `%#D'"
+#~ msgstr "skabelonserklring af '%#D'"
+
+#~ msgid "Java method '%D' has non-Java return type `%T'"
+#~ msgstr "Java-metoden '%D' har har en returtype '%T' som ikke er fra Java"
+
+#~ msgid "Java method '%D' has non-Java parameter type `%T'"
+#~ msgstr "Java-metoden '%D' har har en parametertype '%T' som ikke er fra Java"
+
+#~ msgid "prototype for `%#D' does not match any in class `%T'"
+#~ msgstr "prototypen for '%#D' passer ikke nogen i klassen '%T'"
+
+#~ msgid "local class `%#T' shall not have static data member `%#D'"
+#~ msgstr "lokal klasse '%#T' m ikke have det statiske datamedlem '%#D'"
+
+#~ msgid "initializer invalid for static member with constructor"
+#~ msgstr "tildeling af startvrdi er ugyldig for statisk medlem med konstruktionsfunktion"
+
+#~ msgid "(an out of class initialization is required)"
+#~ msgstr "(en klargring uden for klassens erklring er ndvendig)"
+
+#~ msgid "invalid data member initialization"
+#~ msgstr "ugyldig tildeling af startvrdi til datamedlem"
+
+#~ msgid "(use `=' to initialize static data members)"
+#~ msgstr "(brug '=' for at klargre statiske datamedlemmer)"
+
+#~ msgid "member `%D' conflicts with virtual function table field name"
+#~ msgstr "medlemmet '%D' er i konflikt med feltnavn fra den virtuelle funktionstabel"
+
+#~ msgid "`%D' is already defined in `%T'"
+#~ msgstr "'%D' er allerede defineret i '%T'"
+
+#~ msgid "field initializer is not constant"
+#~ msgstr "feltets startvrdi er ikke en konstant"
+
+#~ msgid "`asm' specifiers are not permitted on non-static data members"
+#~ msgstr "'asm'-angivelser er ikke tilladt p ikke-statiske datamedlemmer"
+
+#~ msgid "cannot declare `%D' to be a bit-field type"
+#~ msgstr "kan ikke erklre '%D' til at vre en bitfeltstype"
+
+#~ msgid "cannot declare bit-field `%D' with function type"
+#~ msgstr "kan ikke erklre bitfelt '%D' med funktionstype"
+
+#~ msgid "`%D' is already defined in the class %T"
+#~ msgstr "'%D' er allerede defineret i klassen '%T'"
+
+#~ msgid "static member `%D' cannot be a bit-field"
+#~ msgstr "statisk medlem '%D' kan ikke vre et bitfelt"
+
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "startvrdi angivet for ikke-medlemsfunktion '%D'"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "ugyldig startvrdi til virtuel medlemsfunktion '%D'"
+
+#~ msgid "anonymous struct not inside named type"
+#~ msgstr "anonym struct er ikke inden i en navngiven type"
+
+#~ msgid "namespace-scope anonymous aggregates must be static"
+#~ msgstr "anonyme variabler af sammensatte typer i navnerumsvirkefelt skal erklres static"
+
+#~ msgid "anonymous aggregate with no members"
+#~ msgstr "anonym sammensat type uden medlemmer"
+
+#~ msgid "`operator new' must return type `%T'"
+#~ msgstr "'operator new' skal returnere typen '%T'"
+
+#~ msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+#~ msgstr "den frste parameter til 'operator new' skal vre af typen 'size_t' ('%T')"
+
+#~ msgid "`operator delete' must return type `%T'"
+#~ msgstr "'operator delete' skal returnere typen '%T'"
+
+#~ msgid "`operator delete' takes type `%T' as first parameter"
+#~ msgstr "den frste parameter til 'operator delete' skal vre af typen '%T'"
+
+#~ msgid "too many initialization functions required"
+#~ msgstr "for mange klargringsfunktioner pkrvet"
+
+#~ msgid "inline function `%D' used but never defined"
+#~ msgstr "indbygget funktion '%D' benyttet, men aldrig defineret"
+
+#~ msgid "use of old-style cast"
+#~ msgstr "brug af ldre type typeomtvingning"
+
+#~ msgid "use of `%D' is ambiguous"
+#~ msgstr "brug af '%D' er tvetydigt"
+
+#~ msgid " first declared as `%#D' here"
+#~ msgstr " frst erklret som '%#D' her"
+
+#~ msgid " also declared as `%#D' here"
+#~ msgstr " ogs erklret som '%#D' her"
+
+#~ msgid "`%D' denotes an ambiguous type"
+#~ msgstr "'%D' angiver en tvetydig type"
+
+#~ msgid " first type here"
+#~ msgstr " frste type her"
+
+#~ msgid " other type here"
+#~ msgstr " anden type her"
+
+#~ msgid "declaration of `%D' not in a namespace surrounding `%D'"
+#~ msgstr "erklring af '%D' er ikke i et navnerum der omgiver '%D'"
+
+#~ msgid "`%D' should have been declared inside `%D'"
+#~ msgstr "'%D' skulle have vret erklret inden i '%D'"
+
+#~ msgid "`%D' is not a function,"
+#~ msgstr "'%s' er ikke en funktion,"
+
+#~ msgid " conflict with `%D'"
+#~ msgstr " konflikt med '%D'"
+
+#~ msgid "unknown namespace `%D'"
+#~ msgstr "ukendt navnerum '%D'"
+
+#~ msgid "`%T' is not a namespace"
+#~ msgstr "'%T' er ikke et navnerum"
+
+#~ msgid "`%D' is not a namespace"
+#~ msgstr "'%D' er ikke et navnerum"
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+#~ msgstr "en using-erklring kan ikke angive en skabelons-id; prv 'using %D'"
+
+#~ msgid "namespace `%D' not allowed in using-declaration"
+#~ msgstr "navnerum '%D' ikke tilladt i using-erklring"
+
+#~ msgid "`%D' not declared"
+#~ msgstr "'%D' ikke erklret"
+
+#~ msgid "`%D' is already declared in this scope"
+#~ msgstr "'%D' er allerede erklret i dette navnerum"
+
+#~ msgid "using declaration `%D' introduced ambiguous type `%T'"
+#~ msgstr "using-erklring '%D' introducerede tvetydig type '%T'"
+
+#~ msgid "using-declaration for non-member at class scope"
+#~ msgstr "using-erklring for ikke-medlem ved klassevirkefelt"
+
+#~ msgid "using-declaration for destructor"
+#~ msgstr "using-erklring for destruktionsfunktion"
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+#~ msgstr "en using-erklring kan ikke angive en skabelons-id; prv 'using %T::%D'"
+
+#~ msgid "namespace `%T' undeclared"
+#~ msgstr "navnerummet '%T' er ikke erklret"
+
+#~ msgid "default argument missing for parameter %P of `%+#D'"
+#~ msgstr "standardparameter mangler for parameter %P i '%+#D'"
+
+#~ msgid "extra qualification `%T::' on member `%D' ignored"
+#~ msgstr "ekstra modifikation '%T::' af medlemmet '%D' ignoreret"
+
+#~ msgid "`%T' does not have a class or union named `%D'"
+#~ msgstr "'%T' har ikke en klasse eller en union ved navn '%D'"
+
+#~ msgid "`%T' is not a class or union type"
+#~ msgstr "'%T' er ikke af en klasse- eller union-type"
+
+#~ msgid "template argument is required for `%T'"
+#~ msgstr "skabelonsparameter er pkrvet for '%T'"
+
+#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+#~ msgstr "erklring af '%D' i '%D' som ikke omgiver '%D'"
+
+#~ msgid "`%s' not supported by %s"
+#~ msgstr "'%s' ikke understttet af %s"
+
+#~ msgid "<anonymous %s>"
+#~ msgstr "<anonym %s>"
+
+#~ msgid "(static %s for %s)"
+#~ msgstr "(statisk %s for %s)"
+
+#~ msgid "\\x%x"
+#~ msgstr "\\x%x"
+
+#~ msgid "In %s `%s':"
+#~ msgstr "I %s '%s':"
+
+#~ msgid "%s: In instantiation of `%s':\n"
+#~ msgstr "%s: i instantiering af '%s':\n"
+
+#~ msgid "%s:%d: instantiated from `%s'\n"
+#~ msgstr "%s:%d: instantieret fra '%s'\n"
+
+#~ msgid "%s:%d: instantiated from here\n"
+#~ msgstr "%s:%d: instantieret herfra\n"
+
+#~ msgid "unexpected letter `%c' in locate_error\n"
+#~ msgstr "uventet bogstav '%c' i locate_error\n"
+
+#~ msgid "type `%T' is disallowed in Java `throw' or `catch'"
+#~ msgstr "typen '%T' er ikke tilladt i Java 'throw' eller 'catch'"
+
+#~ msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+#~ msgstr "kald til Java 'catch' eller 'throw' mens 'jthrowable' ikke er defineret"
+
+#~ msgid "type `%T' is not derived from `java::lang::Throwable'"
+#~ msgstr "typen '%T' nedarver ikke fra 'java::lang::Throwable'"
+
+#~ msgid "mixing C++ and Java catches in a single translation unit"
+#~ msgstr "blander C++ og Java 'catch' i n oversttelsesenhed"
+
+#~ msgid "throwing NULL, which has integral, not pointer type"
+#~ msgstr "kaster NULL som har en heltals-, ikke en henvisningstype"
+
+#~ msgid " in thrown expression"
+#~ msgstr " i kastet udtryk"
+
+#~ msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+#~ msgstr "udtrykket '%E' med den abstrakte klassetype '%T' kan ikke bruges i throw-udtryk"
+
+#~ msgid "exception of type `%T' will be caught"
+#~ msgstr "undtagelse af typen '%T' vil blive fanget"
+
+#~ msgid " by earlier handler for `%T'"
+#~ msgstr " af tidligere hndtering af '%T'"
+
+#~ msgid "`...' handler must be the last handler for its try block"
+#~ msgstr "hndteringen '...' skal vre den sidste hndtering i try-blokken"
+
+#~ msgid "`%D' is already a friend of class `%T'"
+#~ msgstr "'%D' er allerede en ven af klassen '%T'"
+
+#~ msgid "previous friend declaration of `%D'"
+#~ msgstr "tidligere friend-erklring af '%D'"
+
+#~ msgid "invalid type `%T' declared `friend'"
+#~ msgstr "ugyldig type '%T' erklret 'friend'"
+
+#~ msgid "partial specialization `%T' declared `friend'"
+#~ msgstr "partiel specialisering '%T' erklret 'friend'"
+
+#~ msgid "class `%T' is implicitly friends with itself"
+#~ msgstr "klassen '%T' er underforstet ven med sig selv"
+
+#~ msgid "typename type `%#T' declared `friend'"
+#~ msgstr "typename-type '%#T' erklret 'friend'"
+
+#~ msgid "template parameter type `%T' declared `friend'"
+#~ msgstr "skabelonsparametertypen '%T' erklret 'friend'"
+
+#~ msgid "`%#T' is not a template"
+#~ msgstr "'%#T' er ikke en skabelon"
+
+#~ msgid "`%T' is already a friend of `%T'"
+#~ msgstr "'%T' er allerede en ven af '%T'"
+
+#~ msgid "member `%D' declared as friend before type `%T' defined"
+#~ msgstr "medlemmet '%D' erklret som friend fr typen '%T' er defineret"
+
+#~ msgid "friend declaration `%#D' declares a non-template function"
+#~ msgstr "friend-erklring '%#D' erklrer en ikke-skabelonsfunktion"
+
+#~ msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+#~ msgstr "(hvis dette er hvad du nsker, s sikr dig at funktionsskabelonen allerede er blevet erklret og tilfj <> efter funktionsnavnet her) -Wno-non-template-friend deaktiverer denne advarsel"
+
+#~ msgid "argument to `%s' missing\n"
+#~ msgstr "en parameter til '%s' mangler\n"
+
+#~ msgid "`%D' should be initialized in the member initialization list"
+#~ msgstr "'%D' br blive klargjort i medlemsklargringslisten"
+
+#~ msgid "default-initialization of `%#D', which has reference type"
+#~ msgstr "standardklargring af '%#D' som er af en referencetype"
+
+#~ msgid "uninitialized reference member `%D'"
+#~ msgstr "referencemedlem '%D' uden startvrdi"
+
+#~ msgid "initializer list treated as compound expression"
+#~ msgstr "klargringsliste behandlet som et sammensat udtryk"
+
+#~ msgid "`%D' will be initialized after"
+#~ msgstr "'%D' vil blive klargjort efter"
+
+#~ msgid "base `%T' will be initialized after"
+#~ msgstr "stamklasse '%T' vil blive klargjort efter"
+
+#~ msgid " `%#D'"
+#~ msgstr " '%#D'"
+
+#~ msgid " base `%T'"
+#~ msgstr " stamklasse '%T'"
+
+#~ msgid "multiple initializations given for base `%T'"
+#~ msgstr "flere startvrdier angivet for stamklassen '%T'"
+
+#~ msgid "initializations for multiple members of `%T'"
+#~ msgstr "startvrdier for flere medlemmer af '%T'"
+
+#~ msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+#~ msgstr "stamklassen '%#T' br eksplicit blive klargjort i kopikonstruktionsfunktionen"
+
+#~ msgid "class `%T' does not have any field named `%D'"
+#~ msgstr "klassen '%T' har ikke et felt ved navn '%D'"
+
+#~ msgid "field `%#D' is static; the only point of initialization is its definition"
+#~ msgstr "feltet '%#D' er statisk; det eneste sted det kan klargres er ved dets definition"
+
+#~ msgid "unnamed initializer for `%T', which has no base classes"
+#~ msgstr "unavngiven klargring af '%T' som ikke har nogen stamklasser"
+
+#~ msgid "unnamed initializer for `%T', which uses multiple inheritance"
+#~ msgstr "unavngiven klargring af '%T' som benytter multipel nedarvning"
+
+#~ msgid "type `%D' is not a direct or virtual base of `%T'"
+#~ msgstr "typen '%D' er ikke en direkte eller en virtuel stamklasse til '%T'"
+
+#~ msgid "type `%D' is not a direct base of `%T'"
+#~ msgstr "typen '%D' er ikke en direkte stamklasse til '%T'"
+
+#~ msgid "bad array initializer"
+#~ msgstr "ugyldig tildeling af startvrdi til tabel"
+
+#~ msgid "`%T' is not an aggregate type"
+#~ msgstr "'%T' er ikke en sammensat type"
+
+#~ msgid "`%T' fails to be an aggregate typedef"
+#~ msgstr "'%T' er ikke en sammensat typedef"
+
+#~ msgid "type `%T' is of non-aggregate type"
+#~ msgstr "typen '%T' er ikke en sammensat type"
+
+#~ msgid "cannot call destructor `%T::~%T' without object"
+#~ msgstr "kan ikke kalde destruktionsfunktion '%T::~%T' uden objekt"
+
+#~ msgid "invalid use of non-static field `%D'"
+#~ msgstr "ugyldig brug af ikke-statisk felt '%D'"
+
+#~ msgid "invalid use of member `%D'"
+#~ msgstr "ugyldig brug af medlemmet '%D'"
+
+#~ msgid "no method `%T::%D'"
+#~ msgstr "ingen metode ved navn '%T::%D'"
+
+#~ msgid "incomplete type `%T' does not have member `%D'"
+#~ msgstr "ufuldstndig type '%T' har ikke medlemmet '%D'"
+
+#~ msgid "`%D' is not a member of type `%T'"
+#~ msgstr "'%D' er ikke et medlem af typen '%T'"
+
+#~ msgid "invalid pointer to bit-field `%D'"
+#~ msgstr "ugyldig henvisning til bitfeltet '%D'"
+
+#~ msgid "object missing in use of pointer-to-member construct"
+#~ msgstr "der mangler et objekt i henvisning til medlem-konstruktion"
+
+#~ msgid "member `%D' is non-static but referenced as a static member"
+#~ msgstr "medlemmet '%D' er ikke statisk, men refereres som et statisk medlem"
+
+#~ msgid "at this point in file"
+#~ msgstr "ved dette sted i filen"
+
+#~ msgid "object missing in `%E'"
+#~ msgstr "objekt mangler i '%E'"
+
+#~ msgid "new of array type fails to specify size"
+#~ msgstr "new virkende p en tabeltype mangler at angive strrelsen"
+
+#~ msgid "size in array new must have integral type"
+#~ msgstr "strrelse i tabel-new skal vre en heltalstype"
+
+#~ msgid "zero size array reserves no space"
+#~ msgstr "tabel med strrelsen nul reserverer ingen plads"
+
+#~ msgid "new cannot be applied to a reference type"
+#~ msgstr "new kan ikke bruges p en referencetype"
+
+#~ msgid "new cannot be applied to a function type"
+#~ msgstr "new kan ikke bruges p en funktionstype"
+
+#~ msgid "call to Java constructor, while `jclass' undefined"
+#~ msgstr "kald af Java-konstruktionsfunktion mens 'jclass' ikke er defineret"
+
+#~ msgid "can't find class$"
+#~ msgstr "kan ikke finde class$"
+
+#~ msgid "invalid type `void' for new"
+#~ msgstr "ugyldig type 'void' til new"
+
+#~ msgid "call to Java constructor with `%s' undefined"
+#~ msgstr "kald af Java-konstruktionsfunktion mens '%s' ikke er defineret"
+
+#~ msgid "ISO C++ forbids initialization in array new"
+#~ msgstr "ISO C++ forbyder startvrdier i tabel-new"
+
+#~ msgid "initializer list being treated as compound expression"
+#~ msgstr "klargringsliste bliver behandlet som et sammensat udtryk"
+
+#~ msgid "ISO C++ forbids aggregate initializer to new"
+#~ msgstr "ISO C++ forbyder sammensat startvrditildeling ved new"
+
+#~ msgid "uninitialized const in `new' of `%#T'"
+#~ msgstr "konstant uden startvrdi i 'new' af '%#T'"
+
+#~ msgid "initializer ends prematurely"
+#~ msgstr "startvrdien slutter for tidligt"
+
+#~ msgid "cannot initialize multi-dimensional array with initializer"
+#~ msgstr "kan ikke klargre multidimensional tabel med startvrdi"
+
+#~ msgid "unknown array size in delete"
+#~ msgstr "ukendt tabelstrrelse i delete"
+
+#~ msgid "type to vector delete is neither pointer or array type"
+#~ msgstr "variablen til tabel-delete er hverken af en henvisnings- eller en tabeltype"
+
+#~ msgid "type name expected before `*'"
+#~ msgstr "der forventedes et typenavn fr '*'"
+
+#~ msgid "cannot declare references to references"
+#~ msgstr "kan ikke erklre referencer til referencer"
+
+#~ msgid "cannot declare pointers to references"
+#~ msgstr "kan ikke erklre henvisninger til referencer"
+
+#~ msgid "type name expected before `&'"
+#~ msgstr "der forventedes et typenavn fr '&'"
+
+#~ msgid "semicolon missing after %s declaration"
+#~ msgstr "semikolon mangler efter %s-erklring"
+
+#~ msgid "semicolon missing after declaration of `%T'"
+#~ msgstr "semikolon mangler efter erklring af '%T'"
+
+#~ msgid "junk at end of #pragma %s"
+#~ msgstr "ragelse i slutningen 'af #pragma %s'"
+
+#~ msgid "invalid #pragma %s"
+#~ msgstr "ugyldig #pragma %s"
+
+#~ msgid "#pragma vtable no longer supported"
+#~ msgstr "'#pragma vtable' understttes ikke lngere"
+
+#~ msgid "#pragma implementation for %s appears after file is included"
+#~ msgstr "'#pragma implementation' til %s optrder efter filen er inkluderet"
+
+#~ msgid "junk at end of #pragma GCC java_exceptions"
+#~ msgstr "ragelse i slutningen af #pragma GCC java_exceptions"
+
+#~ msgid "`%D' not defined"
+#~ msgstr "'%D' er ikke defineret"
+
+#~ msgid "`%D' was not declared in this scope"
+#~ msgstr "'%D' blev ikke erklret i dette virkefelt"
+
+#~ msgid "`%D' undeclared (first use this function)"
+#~ msgstr "'%D' er ikke erklret (frst benyttet i denne funktion)"
+
+# dkkende, og pnere end original i praktisk brug
+#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+#~ msgstr "(et kaldenavn der ikke er erklret, rapporteres kun n gang per funktion)"
+
+#~ msgid "`::%D' undeclared (first use here)"
+#~ msgstr "'::%D' er ikke erklret (frst benyttet her)"
+
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "skabelonsparametre med reelle vrdi ved krydsoversttelse"
+
+#~ msgid "the mangled name of `%D' will change in a future version of GCC"
+#~ msgstr "det ABI-navnet for '%D' vil ndre sig i en fremtidig version af GCC"
+
+#~ msgid "due to a defect in the G++ 3.2 ABI, G++ has assigned the same mangled name to two different types"
+#~ msgstr "pga. en fejl i G++ 3.2-ABI'en har G++ tildelt det samme sammensatte navn til det to forskellige typer"
+
+#~ msgid "invalid use of member `%D' in static member function"
+#~ msgstr "ugyldig brug af medlemmet '%D' i statisk medlemsfunktion"
+
+#~ msgid "use of namespace `%D' as expression"
+#~ msgstr "brug af navnerummet '%D' som udtryk"
+
+#~ msgid "use of class template `%T' as expression"
+#~ msgstr "brug af klasseskabelonen '%T' som udtryk"
+
+#~ msgid "use of %s from containing function"
+#~ msgstr "brug af %s fra indeholdende funktion"
+
+#~ msgid " `%#D' declared here"
+#~ msgstr " '%#D' erklret her"
+
+#~ msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+#~ msgstr "foresprgsel efter medlemmet '%D' er tvetydigt i det multiple nedarvningsnet"
+
+#~ msgid "generic thunk code fails for method `%#D' which uses `...'"
+#~ msgstr "generel thunk-kode mislykkes for metoden '%#D' som bruger '...'"
+
+#~ msgid "non-static const member `%#D', can't use default assignment operator"
+#~ msgstr "ikke-statisk konstant medlem '%#D' kan ikke bruge standardtildelingsoperatoren"
+
+#~ msgid "non-static reference member `%#D', can't use default assignment operator"
+#~ msgstr "ikke-statisk referencemedlem '%#D' kan ikke bruge standardtildelingsoperatoren"
+
+#~ msgid "`%s' tag used in naming `%#T'"
+#~ msgstr "'%s'-mrke benyttet i navngivning af '%#T'"
+
+#~ msgid "keyword `export' not implemented, and will be ignored"
+#~ msgstr "det reserverede ord 'export' er ikke implementeret og vil blive ignoreret"
+
+#~ msgid "use of linkage spec `%D' is different from previous spec `%D'"
+#~ msgstr "brug af kdningsangivelse '%D' er forskellig fra den tidligere angivelse '%D'"
+
+#~ msgid "no base or member initializers given following ':'"
+#~ msgstr "ingen stamklasse- eller medlemsklargringer er angivet efter ':'"
+
+#~ msgid "anachronistic old style base class initializer"
+#~ msgstr "forldet stamklasseklargring"
+
+#~ msgid "`>>' should be `> >' in template class name"
+#~ msgstr "'>>' skulle have vret '> >' i skabelonsklassenavn"
+
+#~ msgid "use of template qualifier outside template"
+#~ msgstr "brug af skabelonsmodifikation uden for skabelon"
+
+#~ msgid "ISO C++ forbids an empty condition for `%s'"
+#~ msgstr "ISO C++ forbyder en tom betingelse til '%s'"
+
+#~ msgid "definition of class `%T' in condition"
+#~ msgstr "definition af klassen '%T' i betingelse"
+
+#~ msgid "definition of enum `%T' in condition"
+#~ msgstr "definition af enum '%T' i betingelse"
+
+#~ msgid "definition of array `%#D' in condition"
+#~ msgstr "definition af tabel '%#D' i betingelse"
+
+#~ msgid "old style placement syntax, use () instead"
+#~ msgstr "forldet placeringssyntaks, brug () i stedet"
+
+#~ msgid "`%T' is not a valid expression"
+#~ msgstr "'%T' er ikke et gyldigt udtryk"
+
+#~ msgid "initialization of new expression with `='"
+#~ msgstr "tildeling af startvrdi til new-udtryk med '='"
+
+#~ msgid "ISO C++ forbids compound literals"
+#~ msgstr "ISO C++ forbyder sammensatte konstanter"
+
+#~ msgid "ISO C++ forbids braced-groups within expressions"
+#~ msgstr "ISO C++ forbyder krllet parantes-grupper inden i udtryk"
+
+#~ msgid "sigof type specifier"
+#~ msgstr "sigof-typeangivelse"
+
+#~ msgid "`sigof' applied to non-aggregate expression"
+#~ msgstr "'sigof' benyttet p et udtryk der ikke er af en sammensat type"
+
+#~ msgid "`sigof' applied to non-aggregate type"
+#~ msgstr "'sigof' benyttet p en type der ikke er sammensat"
+
+#~ msgid "using `typename' outside of template"
+#~ msgstr "bruger 'typename' uden for en skabelon"
+
+#~ msgid "storage class specifier `%s' not allowed after struct or class"
+#~ msgstr "lagringsklasseangivelsen '%s' er ikke tilladt efter struct eller class"
+
+#~ msgid "type specifier `%s' not allowed after struct or class"
+#~ msgstr "typeangivelsen '%s' er ikke tilladt efter struct eller class"
+
+#~ msgid "type qualifier `%s' not allowed after struct or class"
+#~ msgstr "typemodifikationen '%s' er ikke tilladt efter struct eller class"
+
+#~ msgid "no body nor ';' separates two class, struct or union declarations"
+#~ msgstr "der er hverken en krop eller et semikolon mellem to class, struct eller union-erklringer"
+
+#~ msgid "no bases given following `:'"
+#~ msgstr "ingen stamklasse er angivet efter ':'"
+
+#~ msgid "`%D' access"
+#~ msgstr "'%D'-tilgang"
+
+#~ msgid "multiple access specifiers"
+#~ msgstr "mere end n tilgangsangivelse"
+
+#~ msgid "multiple `virtual' specifiers"
+#~ msgstr "mere end n 'virtual'-angivelse"
+
+#~ msgid "missing ';' before right brace"
+#~ msgstr "der mangler et semikolon fr en hjre krllet parantes"
+
+#~ msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+#~ msgstr "ISO C++ forbyder tabeldimensioner med parantetiseret type i new"
+
+#~ msgid "`%T' is not a class or namespace"
+#~ msgstr "'%T' er ikke en klasse eller et navnerum"
+
+#~ msgid "ISO C++ forbids label declarations"
+#~ msgstr "ISO C++ forbyder etiketerklringer"
+
+#~ msgid "ISO C++ forbids computed gotos"
+#~ msgstr "ISO C++ forbyder beregnede goto'er"
+
+#~ msgid "label must be followed by statement"
+#~ msgstr "etiketten skal efterflges af en stning"
+
+#~ msgid "must have at least one catch per try block"
+#~ msgstr "skal have mindst n catch pr. try-blok"
+
+#~ msgid "ISO C++ forbids compound statements inside for initializations"
+#~ msgstr "ISO C++ forbyder sammensatte stninger inden i 'for'-klargringer"
+
+#~ msgid "possibly missing ')'"
+#~ msgstr "muligvis mangler en ')'"
+
+#~ msgid "type specifier omitted for parameter"
+#~ msgstr "typeangivelsen er ikke angivet for parameteren"
+
+#~ msgid "`%E' is not a type, use `typename %E' to make it one"
+#~ msgstr "'%E' er ikke en type, benyt 'typename %E' for at gre den til en"
+
+#~ msgid "no type `%D' in `%T'"
+#~ msgstr "ingen type '%D' i '%T'"
+
+#~ msgid "type specifier omitted for parameter `%E'"
+#~ msgstr "typeangivelse udeladt for parameteren '%E'"
+
+#~ msgid "'%D' is used as a type, but is not defined as a type."
+#~ msgstr "'%D' benyttes som en type, men er ikke defineret som en type"
+
+#~ msgid "data member `%D' cannot be a member template"
+#~ msgstr "datamedlem '%D' kan ikke vre en medlemsskabelon"
+
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr "ugyldig medlemsskabelonerklring '%D'"
+
+#~ msgid "explicit specialization in non-namespace scope `%D'"
+#~ msgstr "eksplicit specialisering i virkefeltet '%D' der ikke er et navnerum"
+
+#~ msgid "enclosing class templates are not explicitly specialized"
+#~ msgstr "omgivende klasseskabeloner er ikke eksplicit specialiserede"
+
+#~ msgid "specializing `%#T' in different namespace"
+#~ msgstr "specialiserer '%#T' i andet navnerum"
+
+# hnger sammen med foregende tekst, derfor ikke 'fra'
+#~ msgid " from definition of `%#D'"
+#~ msgstr " i forhold til definition af '%#D'"
+
+#~ msgid "specialization of `%T' after instantiation"
+#~ msgstr "specialisering af '%T' efter instantiering"
+
+#~ msgid "specialization `%T' after instantiation `%T'"
+#~ msgstr "specialisering af '%T' efter instantiering '%T'"
+
+#~ msgid "explicit specialization of non-template `%T'"
+#~ msgstr "eksplicit specialisering af '%T' der ikke er en skabelon"
+
+#~ msgid "specialization of %D after instantiation"
+#~ msgstr "specialisering af '%D' efter instantiering"
+
+#~ msgid "%s %+#D"
+#~ msgstr "%s %+#D"
+
+#~ msgid "`%D' is not a function template"
+#~ msgstr "'%D' er ikke en funktionsskabelon"
+
+#~ msgid "template-id `%D' for `%+D' does not match any template declaration"
+#~ msgstr "skabelons-id '%D' for '%+D' passer ikke til nogen skabelonserklring"
+
+#~ msgid "ambiguous template specialization `%D' for `%+D'"
+#~ msgstr "tvetydig skabelonsspecialisering '%D' for '%+D'"
+
+#~ msgid "template-id `%D' in declaration of primary template"
+#~ msgstr "skabelons-id '%D' i erklring af primr skabelon"
+
+#~ msgid "template parameter list used in explicit instantiation"
+#~ msgstr "skabelonsparameterliste benyttet i eksplicit instantiering"
+
+#~ msgid "definition provided for explicit instantiation"
+#~ msgstr "definition angivet for eksplicit instantiering"
+
+#~ msgid "too many template parameter lists in declaration of `%D'"
+#~ msgstr "for mange skabelonsparameterlister angivet i erklring af '%D'"
+
+#~ msgid "too few template parameter lists in declaration of `%D'"
+#~ msgstr "for f skabelonsparameterlister angivet i erklring af '%D'"
+
+#~ msgid "explicit specialization not preceded by `template <>'"
+#~ msgstr "eksplicit specialisering flger ikke efter 'template <>'"
+
+#~ msgid "partial specialization `%D' of function template"
+#~ msgstr "partiel specialisering '%D' af funktionsskabelon"
+
+#~ msgid "default argument specified in explicit specialization"
+#~ msgstr "standardparameter angivet i eksplicit specialisering"
+
+#~ msgid "template specialization with C linkage"
+#~ msgstr "skabelonsspecialisering med C-kdning"
+
+#~ msgid "specialization of implicitly-declared special member function"
+#~ msgstr "specialisering af underforstet erklret speciel medlemsfunktion"
+
+#~ msgid "no member function `%D' declared in `%T'"
+#~ msgstr "ingen medlemsfunktion '%D' erklret i '%T'"
+
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "for mange skabelonsparameterlister i erklringen af '%T'"
+
+#~ msgid " shadows template parm `%#D'"
+#~ msgstr " skygger for skabelonsparameter '%#D'"
+
+#~ msgid "template parameters not used in partial specialization:"
+#~ msgstr "skabelonsparametre der ikke bruges i partiel specialisering:"
+
+#~ msgid " `%D'"
+#~ msgstr " '%D'"
+
+#~ msgid "partial specialization `%T' does not specialize any template arguments"
+#~ msgstr "den partielle specialisering '%T' specialiserer ikke nogen skabelonsparametre"
+
+# flertalsform undvendig
+#~ msgid "template argument `%E' involves template parameter(s)"
+#~ msgstr "skabelonsparameter '%E' involverer skabelonsparameter"
+
+# flertalsform undvendig
+#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+#~ msgstr "typen '%T' af skabelonsparameteren '%E' afhnger af skabelonsparameter"
+
+#~ msgid "no default argument for `%D'"
+#~ msgstr "ingen standardparameter til '%D'"
+
+#~ msgid "template with C linkage"
+#~ msgstr "skabelon med C-kdning"
+
+#~ msgid "template class without a name"
+#~ msgstr "skabelonsklasse uden et navn"
+
+#~ msgid "`%D' does not declare a template type"
+#~ msgstr "'%D' erklrer ikke en skabelonstype"
+
+#~ msgid "template definition of non-template `%#D'"
+#~ msgstr "skabelonsdefinition af ikke-skabelon '%#D'"
+
+#~ msgid "expected %d levels of template parms for `%#D', got %d"
+#~ msgstr "forvented %d niveauer af skabelonsparametre for '%#D', modtog %d"
+
+#~ msgid "got %d template parameters for `%#D'"
+#~ msgstr "modtog %d skabelonsparametre for '%#D'"
+
+#~ msgid "got %d template parameters for `%#T'"
+#~ msgstr "modtog %d skabelonsparametre for '%#T'"
+
+#~ msgid " but %d required"
+#~ msgstr " men %d pkrvet"
+
+#~ msgid "`%T' is not a template type"
+#~ msgstr "'%T' er ikke en skabelonstype"
+
+# hnger sammen med nste tekst
+#~ msgid "previous declaration `%D'"
+#~ msgstr "tidligere erklring '%D'"
+
+#~ msgid "used %d template parameter%s instead of %d"
+#~ msgstr "benyttede %d skabelonsparameter%s i stedet for %d"
+
+#~ msgid "template parameter `%#D'"
+#~ msgstr "skabelonsparameter '%#D'"
+
+#~ msgid "redeclared here as `%#D'"
+#~ msgstr "omerklret her som '%#D'"
+
+#~ msgid "redefinition of default argument for `%#D'"
+#~ msgstr "omdefinering af standardparameter for '%#D'"
+
+#~ msgid " original definition appeared here"
+#~ msgstr " oprindelig definition er her"
+
+#~ msgid "`%E' is not a valid template argument"
+#~ msgstr "'%E' er ikke en gyldig skabelonsparameter"
+
+#~ msgid "it must be the address of a function with external linkage"
+#~ msgstr "den skal vre adressen af en funktion med ekstern kdning"
+
+#~ msgid "it must be the address of an object with external linkage"
+#~ msgstr "den skal vre adressen af et objekt med ekstern kdning"
+
+#~ msgid "it must be a pointer-to-member of the form `&X::Y'"
+#~ msgstr "den skal vre en henvisning til medlem p formen '&X::Y'"
+
+#~ msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+#~ msgstr "strengkonstanten %E er ikke en gyldig skabelonsparameter fordi den er adressen af et objekt med statisk kdning"
+
+#~ msgid "address of non-extern `%E' cannot be used as template argument"
+#~ msgstr "adresse p ikke-ekstern '%E' kan ikke bruges som skabelonsparameter"
+
+#~ msgid "non-constant `%E' cannot be used as template argument"
+#~ msgstr "ikke-konstant '%E' kan ikke bruges som skabelonsparameter"
+
+#~ msgid "object `%E' cannot be used as template argument"
+#~ msgstr "objektet '%E' kan ikke bruges som skabelonsparameter"
+
+#~ msgid "to refer to a type member of a template parameter, use `typename %E'"
+#~ msgstr "benyt 'typename %E' for at referere til et typemedlem af en skabelonsparameter"
+
+#~ msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+#~ msgstr "type/vrdi-konflikt ved %d. parameter i skabelonsparameterliste for '%D'"
+
+#~ msgid " expected a constant of type `%T', got `%T'"
+#~ msgstr " forventede en konstant af typen '%T', modtog '%T'"
+
+#~ msgid " expected a type, got `%E'"
+#~ msgstr " forventede en type, modtog '%E'"
+
+#~ msgid " expected a type, got `%T'"
+#~ msgstr " forventede en type, modtog '%T'"
+
+#~ msgid " expected a class template, got `%T'"
+#~ msgstr " forventede en klasseskabelon, modtog '%T'"
+
+#~ msgid " expected a template of type `%D', got `%D'"
+#~ msgstr " forventede en skabelon af typen '%D', modtog '%D'"
+
+#~ msgid "template-argument `%T' uses anonymous type"
+#~ msgstr "skabelonsparameter '%T' benytter anonym type"
+
+#~ msgid "template-argument `%T' uses local type `%T'"
+#~ msgstr "skabelonsparameter '%T' benytter lokal type '%T'"
+
+#~ msgid "template-argument `%T' is a variably modified type"
+#~ msgstr "skabelonsparameter '%T' er en variabelt ndret type"
+
+#~ msgid "could not convert template argument `%E' to `%T'"
+#~ msgstr "kunne ikke konvertere skabelonsparameteren '%E' til '%T'"
+
+#~ msgid "wrong number of template arguments (%d, should be %d)"
+#~ msgstr "forkert antal skabelonsparametre (%d, skulle vre %d)"
+
+#~ msgid "provided for `%D'"
+#~ msgstr "angivet for '%D'"
+
+#~ msgid "template argument %d is invalid"
+#~ msgstr "skabelonsparameter %d er ugyldig"
+
+#~ msgid "non-template used as template"
+#~ msgstr "ikke-skabelon benyttet som skabelon"
+
+#~ msgid "`%T' is not a template"
+#~ msgstr "'%T' er ikke en skabelon"
+
+#~ msgid "non-template type `%T' used as a template"
+#~ msgstr "ikke-skabelonstype '%T' benyttet som skabelon"
+
+#~ msgid "for template declaration `%D'"
+#~ msgstr "til skabelonserklring '%D'"
+
+#~ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+#~ msgstr "skabelonsinstantieringsdybden overskrider maksimum p %d (benyt -ftemplate-depth-NN for at forge maksimum) ved instantiering af '%D'"
+
+#~ msgid "ambiguous class template instantiation for `%#T'"
+#~ msgstr "tvetydig klasseskabelonsinstantiering for '%#T'"
+
+#~ msgid "%s %+#T"
+#~ msgstr "%s %+#T"
+
+#~ msgid "instantiation of `%D' as type `%T'"
+#~ msgstr "instantiering af '%D' som typen '%T'"
+
+#~ msgid "invalid parameter type `%T'"
+#~ msgstr "ugyldig parametertype '%T'"
+
+#~ msgid "in declaration `%D'"
+#~ msgstr "i erklringen '%D'"
+
+#~ msgid "creating pointer to member function of non-class type `%T'"
+#~ msgstr "opretter henvisning til medlemsfunktion af typen '%T' der ikke er en klasse"
+
+#~ msgid "creating array with size zero"
+#~ msgstr "opretter tabel med strrelsen nul"
+
+#~ msgid "creating array with size zero (`%E')"
+#~ msgstr "opretter tabel med strrelsen nul ('%E')"
+
+#~ msgid "forming reference to void"
+#~ msgstr "danner reference til void"
+
+#~ msgid "forming %s to reference type `%T'"
+#~ msgstr "danner %s til referencetypen '%T'"
+
+#~ msgid "creating pointer to member of non-class type `%T'"
+#~ msgstr "opretter henvisning til medlem af typen '%T' der ikke er en klasse"
+
+#~ msgid "creating pointer to member reference type `%T'"
+#~ msgstr "opretter henvisning til medlemsreference af typen '%T'"
+
+#~ msgid "creating array of `%T'"
+#~ msgstr "opretter tabel af '%T'"
+
+#~ msgid "`%T' is not a class, struct, or union type"
+#~ msgstr "'%T' er ikke en class-, struct- eller union-type"
+
+#~ msgid "use of `%s' in template"
+#~ msgstr "brug af '%s' i skabelon"
+
+#~ msgid "type `%T' composed from a local class is not a valid template-argument"
+#~ msgstr "typen '%T' sammensat fra lokal klasse er ikke en gyldig skabelonsparameter"
+
+#~ msgid " trying to instantiate `%D'"
+#~ msgstr " ved forsg p at instantiere '%D'"
+
+#~ msgid "incomplete type unification"
+#~ msgstr "ufuldstndig typeforening"
+
+#~ msgid "use of `%s' in template type unification"
+#~ msgstr "brug af '%s' i skabelonstypeforening"
+
+#~ msgid "explicit instantiation of non-template `%#D'"
+#~ msgstr "eksplicit instantiering af ikke-skabelon '%#D'"
+
+#~ msgid "no matching template for `%D' found"
+#~ msgstr "ingen passende skabelon for '%D' fundet"
+
+#~ msgid "explicit instantiation of `%#D'"
+#~ msgstr "eksplicit instantiering af '%#D'"
+
+#~ msgid "duplicate explicit instantiation of `%#D'"
+#~ msgstr "'%#D' er blevet eksplicit instantieret mere end n gang"
+
+#~ msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+#~ msgstr "ISO C++ forbyder brugen af 'extern' ved eksplicitte instantieringer"
+
+#~ msgid "storage class `%D' applied to template instantiation"
+#~ msgstr "lagringsklasse '%D' anvendt p skabelonsinstantiering"
+
+#~ msgid "explicit instantiation of non-template type `%T'"
+#~ msgstr "eksplicit instantiering af '%T' der ikke er en skabelonstype"
+
+#~ msgid "explicit instantiation of `%#T' before definition of template"
+#~ msgstr "eksplicit instantiering af '%T' fr definering af skabelonen"
+
+#~ msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+#~ msgstr "ISO C++ forbyder brugen af '%s ved eksplicitte instantieringer"
+
+#~ msgid "duplicate explicit instantiation of `%#T'"
+#~ msgstr "'%#T' er blevet eksplicit instantieret mere end n gang"
+
+#~ msgid "explicit instantiation of `%D' but no definition available"
+#~ msgstr "eksplicit instantiering af '%D', men ingen definition tilgngelig"
+
+#~ msgid "`%#T' is not a valid type for a template constant parameter"
+#~ msgstr "'%#T' er ikke en gyldig type for en skabelonsparameterkonstant "
+
+#~ msgid "-frepo must be used with -c"
+#~ msgstr "-frepo skal bruges med -c"
+
+#~ msgid "mysterious repository information in %s"
+#~ msgstr "mystisk info om opbevaringssted i '%s'"
+
+#~ msgid "can't create repository information file `%s'"
+#~ msgstr "kan ikke oprette informationsfilen '%s' til opbevaringssted"
+
+#~ msgid "cannot use typeid with -fno-rtti"
+#~ msgstr "kan ikke bruge typeid med -fno-rtti"
+
+#~ msgid "must #include <typeinfo> before using typeid"
+#~ msgstr "'#include <typeinfo>' er ndvendig fr typeid kan benyttes"
+
+#~ msgid "cannot create type information for type `%T' because its size is variable"
+#~ msgstr "kan ikke oprette typeinformation for typen '%T' fordi dens strrelse er variabel"
+
+#~ msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+#~ msgstr "dynamic_cast af '%#D' til '%#T' kan aldrig lykkes"
+
+#~ msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+#~ msgstr "kan ikke anvende dynamic_cast p '%E' (af typen '%#T') til typen '%#T' (%s)"
+
+#~ msgid "`%T' is an inaccessible base of `%T'"
+#~ msgstr "'%T' er en utilgngelig stamklasse til '%T'"
+
+#~ msgid "`%T' is an ambiguous base of `%T'"
+#~ msgstr "'%T' er en tvetydig stamklasse til '%T'"
+
+#~ msgid "assignment to non-static member `%D' of enclosing class `%T'"
+#~ msgstr "tildeling til ikke-statisk medlem '%D' af omgivende klasse '%T'"
+
+#~ msgid "adjusting pointers for covariant returns"
+#~ msgstr "justerer henvisninger for kovariante returneringer"
+
+#~ msgid "invalid covariant return type for `%#D'"
+#~ msgstr "ugyldig kovariant returneringstype for '%#D'"
+
+#~ msgid " overriding `%#D' (must be pointer or reference to class)"
+#~ msgstr " overskriver '%#D' (skal vre en henvisning eller reference til klasse)"
+
+#~ msgid " overriding `%#D' (must use pointer or reference)"
+#~ msgstr " overskriver '%#D' (skal vre en henvisning eller reference)"
+
+#~ msgid "conflicting return type specified for `%#D'"
+#~ msgstr "modstridende returtyper angivet for '%#D'"
+
+#~ msgid " overriding `%#D'"
+#~ msgstr " overskriver '%#D'"
+
+#~ msgid "looser throw specifier for `%#F'"
+#~ msgstr "lsere throw-angivelse for '%#F'"
+
+#~ msgid " overriding `%#F'"
+#~ msgstr " overskriver '%#F'"
+
+#~ msgid "`%#D' cannot be declared"
+#~ msgstr "'%#D' kan ikke erklres"
+
+#~ msgid " since `%#D' declared in base class"
+#~ msgstr " eftersom '%#D' er erklret i stamklassen"
+
+#~ msgid "`%#D' needs a final overrider"
+#~ msgstr "'%#D' behver en endelig overskrivning"
+
+#~ msgid "type of asm operand `%E' could not be determined"
+#~ msgstr "typen af asm-operanden '%E' kunne ikke afgres"
+
+#~ msgid "ISO C++ does not permit named return values"
+#~ msgstr "ISO C++ tillader ikke navngivne returvrdier"
+
+#~ msgid "return identifier `%D' already in place"
+#~ msgstr "returkaldenavn '%D' allerede p plads"
+
+#~ msgid "can't redefine default return value for constructors"
+#~ msgstr "kan ikke omdefinere standardreturvrdi for konstruktionsfunktioner"
+
+#~ msgid "only constructors take base initializers"
+#~ msgstr "kun konstruktionsfunktioner har stamklasseklargringer"
+
+#~ msgid "`this' is unavailable for static member functions"
+#~ msgstr "'this' er ikke tilgngelig for statiske medlemsfunktioner"
+
+#~ msgid "invalid use of `this' in non-member function"
+#~ msgstr "ugyldig brug af 'this' i ikke-medlemsfunktion"
+
+#~ msgid "invalid use of `this' at top level"
+#~ msgstr "ugyldig brug af 'this' ved verste niveau"
+
+#~ msgid "calling type `%T' like a method"
+#~ msgstr "kalder typen '%T' som en metode"
+
+#~ msgid "destructor specifier `%T::~%T()' must have matching names"
+#~ msgstr "destruktionsangivelse '%T::~%T()' skal have ens navne"
+
+#~ msgid "`%E' is not of type `%T'"
+#~ msgstr "'%E' er ikke af typen '%T'"
+
+#~ msgid "template type parameters must use the keyword `class' or `typename'"
+#~ msgstr "skabelonstypeparametre skal begynde med 'class' eller 'typename'"
+
+#~ msgid "invalid default template argument"
+#~ msgstr "ugyldig standardparameter i skabelon"
+
+#~ msgid "definition of `%#T' inside template parameter list"
+#~ msgstr "definition af '%#T' inden i skabelonsparameterliste"
+
+#~ msgid "invalid definition of qualified type `%T'"
+#~ msgstr "ugyldig definition af modificeret type '%T'"
+
+#~ msgid "invalid base-class specification"
+#~ msgstr "ugyldig stamklasseangivelse"
+
+#~ msgid "base class `%T' has cv qualifiers"
+#~ msgstr "stamklassen '%T' har const/volatile-modifikationer"
+
+#~ msgid "multiple declarators in template declaration"
+#~ msgstr "flere erklrerer i skabelonserklring"
+
+#~ msgid "type of `%E' is unknown"
+#~ msgstr "typen af '%E' er ukendt"
+
+#~ msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+#~ msgstr "kaldenavnet '%s' er i modstrid med den interne navngivningsstrategi i GNU c++"
+
+#~ msgid "parse error at end of saved function text"
+#~ msgstr "tolkningsfejl ved slutningen af gemt funktionstekst"
+
+#~ msgid "%Hend of file read inside definition"
+#~ msgstr "%Hslutningen af filen lst inden i definition"
+
+#~ msgid "parse error in method specification"
+#~ msgstr "tolkningsfejl i medlemsfunktionsangivelsen"
+
+#~ msgid "function body for constructor missing"
+#~ msgstr "kroppen til konstruktionsfunktionen mangler"
+
+#~ msgid "%Hend of file read inside default argument"
+#~ msgstr "%Hslutningen af filen lst inden i standardparameter"
+
+#~ msgid "circular dependency in default args of `%#D'"
+#~ msgstr "cirkulr afhngighed i standardparametre til '%#D'"
+
+#~ msgid "invalid type `%T' for default argument to `%T'"
+#~ msgstr "ugyldig type '%T' for standardparameter til '%T'"
+
+#~ msgid "%s before `%s'"
+#~ msgstr "%s fr '%s'"
+
+#~ msgid "%s before `%c'"
+#~ msgstr "%s fr '%c'"
+
+#~ msgid "%s before `\\%o'"
+#~ msgstr "%s fr '\\%o'"
+
+#~ msgid "%s before `%s' token"
+#~ msgstr "%s fr symbolet '%s'"
+
+#~ msgid "non-lvalue in %s"
+#~ msgstr "ikke-venstrevrdi i %s"
+
+#~ msgid "`%V' qualifiers cannot be applied to `%T'"
+#~ msgstr "modifikationerne '%V' kan ikke anvendes p '%T'"
+
+#~ msgid "`%s' attribute can only be applied to Java class definitions"
+#~ msgstr "egenskaben '%s' kan kun anvendes med Java-klassedefinitioner"
+
+#~ msgid "`%s' attribute can only be applied to class definitions"
+#~ msgstr "egenskaben '%s' kan kun anvendes med klassedefinitioner"
+
+#~ msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+#~ msgstr "'%s' er forldet; virtuelle tabeller i g++ er nu COM-kompatible som standard"
+
+#~ msgid "requested init_priority is not an integer constant"
+#~ msgstr "den udbedte init_priority er ikke en heltalskonstant"
+
+#~ msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+#~ msgstr "kan kun bruge egenskaben '%s' p filvirkefeltsdefinitioner af objekter af klassetype"
+
+#~ msgid "requested init_priority is out of range"
+#~ msgstr "den udbedte init_priority er uden for det gyldige interval"
+
+#~ msgid "requested init_priority is reserved for internal use"
+#~ msgstr "den udbedte init_priority er reserveret til intern brug"
+
+#~ msgid "`%s' attribute is not supported on this platform"
+#~ msgstr "egenskaben '%s' er ikke understttet p denne platform"
+
+#~ msgid "lang_* check: failed in %s, at %s:%d"
+#~ msgstr "lang_*-kontrol: mislykkedes i %s, ved %s:%d"
+
+#~ msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+#~ msgstr "ISO C++ forbyder %s mellem henvisning af typen 'void *' og henvisning til funktion"
+
+#~ msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+#~ msgstr "%s mellem forskellige henvisningstyper '%T' og '%T' mangler en typeomtvingelse"
+
+#~ msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+#~ msgstr "ISO C++ forbyder konvertering fra '%#T' til '(...)'"
+
+#~ msgid "invalid application of `%s' to a member function"
+#~ msgstr "ugyldig brug af '%s' p en medlemsfunktion"
+
+#~ msgid "invalid application of `%s' to non-static member"
+#~ msgstr "ugyldig brug af '%s' p et ikke-statisk medlem"
+
+#~ msgid "sizeof applied to a bit-field"
+#~ msgstr "'sizeof' benyttet p et bitfelt"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to an expression of function type"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p et udtryk af en funktionstype"
+
+#~ msgid "invalid use of non-lvalue array"
+#~ msgstr "ugyldig brug af en tabel der ikke kan optrde som en venstrevrdi"
+
+#~ msgid "deprecated conversion from string constant to `%T'"
+#~ msgstr "forldet konvertering fra strengkonstant til '%T'"
+
+#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+#~ msgstr "foresprgsel efter medlemmet '%D' i '%E' som er af en ikke-klassetype '%T'"
+
+#~ msgid "`%D' is not a member of `%T'"
+#~ msgstr "'%D' er ikke et medlem af '%T'"
+
+#~ msgid "invalid access to non-static data member `%D' of NULL object"
+#~ msgstr "ugyldig tilgang til ikke-statisk datamedlem '%D' af NULL-objekt"
+
+#~ msgid "(perhaps the `offsetof' macro was used incorrectly)"
+#~ msgstr "(mske blev 'offsetof'-makroen benyttet forkert)"
+
+#~ msgid "`%D::%D' is not a member of `%T'"
+#~ msgstr "'%D::%D' er ikke et medlem af '%T'"
+
+#~ msgid "destructor specifier `%T::~%T' must have matching names"
+#~ msgstr "destruktionsangivelse '%T::~%T' skal have ens navne"
+
+#~ msgid "type `%T' has no destructor"
+#~ msgstr "typen '%T' har ingen destruktionsfunktion"
+
+#~ msgid "`%D' is not a member template function"
+#~ msgstr "'%D' er ikke en medlemsskabelonfunktion"
+
+#~ msgid "`%T' is not a pointer-to-object type"
+#~ msgstr "'%T' er ikke af en henvisning til objekt-type"
+
+#~ msgid "invalid use of `%s' on pointer to member"
+#~ msgstr "ugyldig brug af '%s' p henvisning til medlem"
+
+#~ msgid "invalid type argument"
+#~ msgstr "ugyldig typeparameter"
+
+#~ msgid "ISO C++ forbids subscripting non-lvalue array"
+#~ msgstr "ISO C++ forbyder indeksering af en ikke-venstrevrdis tabel"
+
+#~ msgid "subscripting array declared `register'"
+#~ msgstr "indeksering af tabel som er erklret 'register'"
+
+#~ msgid "object missing in use of `%E'"
+#~ msgstr "objekt mangler i brug af '%E'"
+
+#~ msgid "ISO C++ forbids calling `::main' from within program"
+#~ msgstr "ISO C++ forbyder kald af '::main' inde fra programmet"
+
+#~ msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+#~ msgstr "brug .* eller ->* i kald af henvisning til medlemsfunktion i '%E (...)'"
+
+#~ msgid "`%E' cannot be used as a function"
+#~ msgstr "'%E' kan ikke bruges som en funktion"
+
+#~ msgid "too many arguments to %s `%+#D'"
+#~ msgstr "for mange parametre til %s '%+#D'"
+
+#~ msgid "parameter type of called function is incomplete"
+#~ msgstr "parametertypen for den kaldte funktion er ufuldstndig"
+
+#~ msgid "too few arguments to %s `%+#D'"
+#~ msgstr "for f parametre til %s '%+#D'"
+
+#~ msgid "assuming cast to type `%T' from overloaded function"
+#~ msgstr "antager typeomtvingning til typen '%T' fra flertydig funktion"
+
+#~ msgid "division by zero in `%E / 0'"
+#~ msgstr "division med nul i '%E / 0'"
+
+#~ msgid "division by zero in `%E / 0.'"
+#~ msgstr "division med nul i '%E / 0.'"
+
+#~ msgid "division by zero in `%E %% 0'"
+#~ msgstr "division med nul i '%E %% 0'"
+
+#~ msgid "division by zero in `%E %% 0.'"
+#~ msgstr "division med nul i '%E %% 0.'"
+
+#~ msgid "%s rotate count is negative"
+#~ msgstr "%s-roteringsantal er negativt"
+
+#~ msgid "%s rotate count >= width of type"
+#~ msgstr "%s-roteringsantal >= bredden af typen"
+
+#~ msgid "ISO C++ forbids comparison between pointer and integer"
+#~ msgstr "ISO C++ forbyder sammenligning mellem henvisningsvariabel og heltal"
+
+#~ msgid "comparison between types `%#T' and `%#T'"
+#~ msgstr "sammenligning mellem typerne '%#T' og '%#T'"
+
+#~ msgid "comparison between signed and unsigned integer expressions"
+#~ msgstr "sammenlign mellem signed og unsigned heltalsudtryk"
+
+#~ msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+#~ msgstr "ugyldige operander af typerne '%T' og '%T' til binr '%O'"
+
+#~ msgid "NULL used in arithmetic"
+#~ msgstr "NULL benyttet i udregning"
+
+#~ msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning af typen 'void *' i fratrkning"
+
+#~ msgid "ISO C++ forbids using pointer to a function in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til funktion i fratrkning"
+
+#~ msgid "ISO C++ forbids using pointer to a method in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til medlemsfunktion i fratrkning"
+
+#~ msgid "ISO C++ forbids using pointer to a member in subtraction"
+#~ msgstr "ISO C++ forbyder brug af henvisning til medlem i fratrkning"
+
+#~ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+#~ msgstr "ugyldig brug af en henvisning til en ufuldstndig type i henvisningsberegning"
+
+#~ msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+#~ msgstr "ugyldig brug af '%E' til at danne en henvisning til medlemsfunktion; benyt et kaldenavn med klasseprfiks"
+
+#~ msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+#~ msgstr "paranteser omkring '%E' kan ikke bruges til at danne en henvisning til medlemsfunktion"
+
+#~ msgid "taking address of temporary"
+#~ msgstr "tager adressen p midlertidig variabel"
+
+#~ msgid "ISO C++ forbids %sing an enum"
+#~ msgstr "ISO C++ forbyder %s af en enum"
+
+#~ msgid "cannot %s a pointer to incomplete type `%T'"
+#~ msgstr "kan ikke %s en henvisning til en ufuldstndig type '%T'"
+
+#~ msgid "ISO C++ forbids %sing a pointer of type `%T'"
+#~ msgstr "ISO C++ forbyder %s af en henvisning af typen '%T'"
+
+#~ msgid "cast to non-reference type used as lvalue"
+#~ msgstr "typeomtvingning til ikke-reference-type benyttet som venstrevrdi"
+
+#~ msgid "invalid use of `--' on bool variable `%D'"
+#~ msgstr "ugyldig brug af '--' p den booleske variabel '%D'"
+
+#~ msgid "ISO C++ forbids taking address of function `::main'"
+#~ msgstr "ISO C++ forbyder at tage adressen p funktionen '::main'"
+
+#~ msgid "ISO C++ forbids taking the address of an unqualified non-static member function to form a pointer to member function. Say `&%T::%D'"
+#~ msgstr "ISO C++ forbyder at tage adressen p en ikke-modificeret, ikke-statisk medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
+
+#~ msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+#~ msgstr "ISO C++ forbyder at tage adressen p en bundet medlemsfunktion for at danne en henvisning til medlemsfunktion; brug '&%T::%D'"
+
+#~ msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+#~ msgstr "ISO C++ forbyder at tage adressen p en typeomtvingning til et udtryk der ikke er en venstrevrdi"
+
+#~ msgid "attempt to take address of bit-field structure member `%D'"
+#~ msgstr "forsg p at finde adressen af bitfeltstrukturmedlemmet '%D'"
+
+#~ msgid "taking address of destructor"
+#~ msgstr "tager adressen p en destruktionsfunktion"
+
+#~ msgid "taking address of bound pointer-to-member expression"
+#~ msgstr "tager adressen p et bundet henvisning til medlem-udtryk"
+
+#~ msgid "cannot create pointer to reference member `%D'"
+#~ msgstr "kan ikke oprette henvisning til reference medlemmet '%D'"
+
+#~ msgid "cannot take the address of `this', which is an rvalue expression"
+#~ msgstr "kan ikke tage adressen af 'this' som er et hjrevrdiudtryk"
+
+#~ msgid "address requested for `%D', which is declared `register'"
+#~ msgstr "adresse forespurgt for '%D' som er erklret 'register'"
+
+#~ msgid "static_cast from type `%T' to type `%T' casts away constness"
+#~ msgstr "static_cast fra typen '%T' til typen '%T' fjerner konstanthed"
+
+#~ msgid "invalid static_cast from type `%T' to type `%T'"
+#~ msgstr "ugyldig static_cast fra typen '%T' til typen '%T'"
+
+#~ msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+#~ msgstr "ugyldig reinterpret_cast af et hjrevrdiudtryk fra typen '%T' til typen '%T'"
+
+#~ msgid "reinterpret_cast from `%T' to `%T' loses precision"
+#~ msgstr "reinterpret_cast fra '%T' til '%T' mister prcision"
+
+#~ msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+#~ msgstr "reinterpret_cast fra '%T' til '%T' fjerner const (eller volatile)"
+
+#~ msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+#~ msgstr "ISO C++ forbyder sammenligninger mellem henvisning til funktion og henvisning til objekt"
+
+#~ msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+#~ msgstr "ugyldig reinterpret_cast fra typen '%T' til typen '%T'"
+
+#~ msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+#~ msgstr "ugyldig brug af const_cast med typen '%T' som ikke er en henvisnings-, reference- eller en henvisning til datamedlem-type"
+
+#~ msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+#~ msgstr "ugyldig brug af const_cast med typen '%T' som er en henvisning eller reference til funktion"
+
+#~ msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+#~ msgstr "ugyldig const_cast af en hjrevrdi fra typen '%T' til typen '%T'"
+
+#~ msgid "invalid const_cast from type `%T' to type `%T'"
+#~ msgstr "ugyldig const_cast fra typen '%T' til typen '%T'"
+
+#~ msgid "ISO C++ forbids casting to an array type `%T'"
+#~ msgstr "ISO C++ forbyder omtvingelse af typen til en tabeltype '%T'"
+
+#~ msgid "invalid cast to function type `%T'"
+#~ msgstr "ugyldig omtvingelse til funktionstypen '%T'"
+
+#~ msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+#~ msgstr "typeomtvingning fra '%T' til '%T' kasserer modifikationer p henvisningsmlets type"
+
+#~ msgid "cast from `%T' to `%T' increases required alignment of target type"
+#~ msgstr "typeomtvingning fra '%T' til '%T' forger den pkrvede justering af mlets type"
+
+#~ msgid " in evaluation of `%Q(%#T, %#T)'"
+#~ msgstr " i evaluering af '%Q(%#T, %#T)'"
+
+#~ msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+#~ msgstr "ISO C++ forbyder omtvingelse af typen til en ikke-reference-type benyttet som venstrevrdi"
+
+#~ msgid "incompatible types in assignment of `%T' to `%T'"
+#~ msgstr "uforenelige typer i tildeling af '%T' til '%T'"
+
+#~ msgid "ISO C++ forbids assignment of arrays"
+#~ msgstr "ISO C++ forbyder tildeling af tabeller"
+
+#~ msgid " in pointer to member function conversion"
+#~ msgstr " i henvisning til medlemsfunktion-omdannelse"
+
+#~ msgid " in pointer to member conversion"
+#~ msgstr " i henvisning til medlem-omdannelse"
+
+#~ msgid "pointer to member cast via virtual base `%T' of `%T'"
+#~ msgstr "henvisning til medlem-typeomtvingning via den virtuelle stamklasse '%T' af '%T'"
+
+#~ msgid "pointer to member conversion via virtual base `%T' of `%T'"
+#~ msgstr "henvisning til medlem-omdannelse via den virtuelle stamklasse '%T' af '%T'"
+
+#~ msgid "invalid conversion to type `%T' from type `%T'"
+#~ msgstr "ugyldig omdannelse til typen '%T' fra typen '%T'"
+
+# %s bliver til returnering eller tildeling eller noget i den retning
+#~ msgid "passing NULL used for non-pointer %s %P of `%D'"
+#~ msgstr "overbringelse af NULL benyttet for ikke-henvisnings%s %P af '%D'"
+
+#~ msgid "%s to non-pointer type `%T' from NULL"
+#~ msgstr "%s til ikke-henvisningstypen '%T' fra NULL"
+
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "overbringelse af '%T' for ikke-henvisnings%s %P af '%D'"
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "%s til '%T' fra '%T'"
+
+#~ msgid "passing negative value `%E' for %s %P of `%D'"
+#~ msgstr "overbringelse af negativ vrdi '%E' for %s %P af '%D'"
+
+#~ msgid "%s of negative value `%E' to `%T'"
+#~ msgstr "%s af negativ vrdi '%E' til `%T'"
+
+#~ msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+#~ msgstr "kan ikke konvertere '%T' til '%T' for parameter '%P' til '%D'"
+
+#~ msgid "cannot convert `%T' to `%T' in %s"
+#~ msgstr "kan ikke konvertere '%T' til '%T' i %s"
+
+#~ msgid "in passing argument %P of `%+D'"
+#~ msgstr "i overbringelse af parameter %P af '%+D'"
+
+#~ msgid "returning reference to temporary"
+#~ msgstr "returnerer reference til midlertidig variabel"
+
+#~ msgid "reference to non-lvalue returned"
+#~ msgstr "reference til ikke-venstrevrdi returneret"
+
+#~ msgid "reference to local variable `%D' returned"
+#~ msgstr "reference til den lokale variabel '%D' returneret"
+
+#~ msgid "address of local variable `%D' returned"
+#~ msgstr "adresse af den lokale variabel '%D' returneret"
+
+#~ msgid "returning a value from a destructor"
+#~ msgstr "returnerer en vrdi fra en destruktionsfunktion"
+
+#~ msgid "cannot return from a handler of a function-try-block of a constructor"
+#~ msgstr "kan ikke returnere fra en hndtering af en funktions-try-blok i en konstruktionsfunktion"
+
+#~ msgid "returning a value from a constructor"
+#~ msgstr "returnerer en vrdi fra en konstruktionsfunktion"
+
+#~ msgid "return-statement with no value, in function declared with a non-void return type"
+#~ msgstr "return-stning uden en vrdi i en funktion der er erklret med en ikke-void returtype"
+
+#~ msgid "return-statement with a value, in function declared with a void return type"
+#~ msgstr "return-stning med en vrdi i en funktion der er erklret med en void returtype"
+
+#~ msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+#~ msgstr "'operator new' m ikke returnere NULL medmindre den er erklret 'throw()' (eller -fcheck-new er benyttet)"
+
+#~ msgid "type `%T' is not a base type for type `%T'"
+#~ msgstr "typen '%T' er ikke en grundtype for typen '%T'"
+
+#~ msgid "cannot declare variable `%D' to be of type `%T'"
+#~ msgstr "kan ikke erklre variablen '%D' til at vre af typen '%T'"
+
+#~ msgid "cannot declare parameter `%D' to be of type `%T'"
+#~ msgstr "kan ikke erklre parameteren '%D' til at vre af typen '%T'"
+
+#~ msgid "cannot declare field `%D' to be of type `%T'"
+#~ msgstr "kan ikke erklre feltet '%D' til at vre af typen '%T'"
+
+#~ msgid "invalid return type for member function `%#D'"
+#~ msgstr "ugyldig returtype for medlemsfunktionen '%#D'"
+
+#~ msgid "invalid return type for function `%#D'"
+#~ msgstr "ugyldig returtype for funktionen '%#D'"
+
+#~ msgid "cannot allocate an object of type `%T'"
+#~ msgstr "kan ikke allokere et objekt af typen '%T'"
+
+#~ msgid " because the following virtual functions are abstract:"
+#~ msgstr " eftersom de flgende virtuelle funktioner er abstrakte:"
+
+#~ msgid "\t%#D"
+#~ msgstr "\t%#D"
+
+#~ msgid " since type `%T' has abstract virtual functions"
+#~ msgstr " eftersom typen '%T' har abstrakte virtuelle funktioner"
+
+#~ msgid "constructor syntax used, but no constructor declared for type `%T'"
+#~ msgstr "konstruktionsfunktionsyntaks benyttet, men ingen konstruktionsfunktion er erklret for typen '%T'"
+
+#~ msgid "comma expression used to initialize return value"
+#~ msgstr "kommaudtryk benyttet til at klargre returvrdi"
+
+#~ msgid "cannot initialize arrays using this syntax"
+#~ msgstr "kan ikke tildele tabeller startvrdier med denne syntaks"
+
+#~ msgid "initializing array with parameter list"
+#~ msgstr "klargr tabel med en parameterliste"
+
+#~ msgid "initializer for scalar variable requires one element"
+#~ msgstr "startvrdien for en skalarvariabel kan kun best af t element"
+
+#~ msgid "braces around scalar initializer for `%T'"
+#~ msgstr "krllede paranteser omkring skalarstartvrdi for '%T'"
+
+#~ msgid "ignoring extra initializers for `%T'"
+#~ msgstr "ignorerer ekstra startvrdier for '%T'"
+
+#~ msgid "variable-sized object of type `%T' may not be initialized"
+#~ msgstr "objekt af typen '%T' med variabel strrelse m ikke tildeles en startvrdi"
+
+#~ msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+#~ msgstr "underobjekt af typen '%T' skal klargres af en konstruktionsfunktion, ikke af '%E'"
+
+#~ msgid "aggregate has a partly bracketed initializer"
+#~ msgstr "sammensat type har delvis indklammet startvrdi"
+
+#~ msgid "non-trivial labeled initializers"
+#~ msgstr "ikke-trivielle navngivne startvrdier"
+
+#~ msgid "non-empty initializer for array of empty elements"
+#~ msgstr "en startvrdi der ikke er tom, tildeles til en tabel med tomme elementer"
+
+#~ msgid "initializer list for object of class with virtual base classes"
+#~ msgstr "klargringsliste for objekt af en klasse med virtuelle stamklasser"
+
+#~ msgid "initializer list for object of class with base classes"
+#~ msgstr "klargringsliste for objekt af en klasse med stamklasser"
+
+#~ msgid "initializer list for object using virtual functions"
+#~ msgstr "klargringsliste for objekt med virtuelle funktioner"
+
+#~ msgid "missing initializer for member `%D'"
+#~ msgstr "manglende startvrdi for medlemmet '%D'"
+
+#~ msgid "uninitialized const member `%D'"
+#~ msgstr "konstant medlem '%D' uden startvrdi"
+
+#~ msgid "member `%D' with uninitialized const fields"
+#~ msgstr "medlem '%D' med konstante felter uden startvrdi"
+
+#~ msgid "member `%D' is uninitialized reference"
+#~ msgstr "medlemmet '%D' er en reference uden startvrdi"
+
+#~ msgid "index value instead of field name in union initializer"
+#~ msgstr "indeksvrdi i stedet for feltnavn i union-startvrdi"
+
+#~ msgid "no field `%D' in union being initialized"
+#~ msgstr "intet felt '%D' i union der tildeles startvrdi"
+
+#~ msgid "union `%T' with no named members cannot be initialized"
+#~ msgstr "union '%T' uden navngivne elementer kan ikke tildeles startvrdi"
+
+#~ msgid "excess elements in aggregate initializer"
+#~ msgstr "for mange elementer i startvrdi til sammensat type"
+
+#~ msgid "circular pointer delegation detected"
+#~ msgstr "fundet en henvisningsefterflgelse der gr i ring"
+
+#~ msgid "base operand of `->' has non-pointer type `%T'"
+#~ msgstr "grundoperanden til '->' har en ikke-henvisningstype '%T'"
+
+#~ msgid "result of `operator->()' yields non-pointer result"
+#~ msgstr "resultatet af 'operator->()' er ikke en henvisning"
+
+#~ msgid "base operand of `->' is not a pointer"
+#~ msgstr "grundoperanden til '->' er ikke en henvisning"
+
+#~ msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+#~ msgstr "'%E' kan ikke bruges som en medlemshenvisning eftersom udtrykkets type er '%T'"
+
+#~ msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+#~ msgstr "kan ikke anvende medlemshenvisning '%E' p '%E' som er af den ikke-sammensatte type '%T'"
+
+#~ msgid "member type `%T::' incompatible with object type `%T'"
+#~ msgstr "medlemstypen '%T::' uforenelige med objekttypen '%T'"
+
+#~ msgid "`%T' fails to be a typedef or built-in type"
+#~ msgstr "'%T' er hverken en typedef eller en indbygget type"
+
+#~ msgid "ISO C++ forbids defining types within %s"
+#~ msgstr "ISO C++ forbyder definering af typer inden i %s"
+
+#~ msgid "call to function `%D' which throws incomplete type `%#T'"
+#~ msgstr "kald af en funktion '%D' som kaster en ufuldstndig type '%#T'"
+
+#~ msgid "call to function which throws incomplete type `%#T'"
+#~ msgstr "kald af en funktion som kaster en ufuldstndig type '%#T'"
+
+#~ msgid "%s is deprecated, please see the documentation for details"
+#~ msgstr "%s er forldet, se venligst dokumentationen for detaljer"
+
+#~ msgid "Do not obey access control semantics"
+#~ msgstr "Adlyd ikke tilgangskontrolsemantikker"
+
+#~ msgid "Change when template instances are emitted"
+#~ msgstr "Skift hvornr skabelonsinstanser udsendes"
+
+#~ msgid "Check the return value of new"
+#~ msgstr "Kontrollr returvrdien for new"
+
+#~ msgid "Reduce size of object files"
+#~ msgstr "Reducr strrelsen af objektfiler"
+
+#~ msgid "Make string literals `char[]' instead of `const char[]'"
+#~ msgstr "Gr strengkonstanter til 'char[]' i stedet for 'const char[]'"
+
+#~ msgid "Dump the entire translation unit to a file"
+#~ msgstr "Anbring hele oversttelsesenheden i en fil"
+
+#~ msgid "Do not inline member functions by default"
+#~ msgstr "Integrr ikke medlemsfunktioner som standard"
+
+#~ msgid "Do not generate run time type descriptor information"
+#~ msgstr "Generr ikke typebeskrivelsesoplysninger til krselstidspunktet"
+
+#~ msgid "Do not generate code to check exception specifications"
+#~ msgstr "Generr ikke kode til at kontrollere undtagelsesspecifikationer"
+
+#~ msgid "Scope of for-init-statement vars extends outside"
+#~ msgstr "Udvid virkefeltet for variabler i for-klargringsstninger"
+
+#~ msgid "Do not recognize GNU defined keywords"
+#~ msgstr "Genkend ikke GNU-definerede reserverede ord"
+
+#~ msgid "Enable support for huge objects"
+#~ msgstr "Aktivr understttelse af enorme objekter"
+
+#~ msgid "Export functions even if they can be inlined"
+#~ msgstr "Eksportr funktioner ogs selvom de kan integreres"
+
+#~ msgid "Only emit explicit template instantiations"
+#~ msgstr "Udsend kun eksplicitte skabelonsinstatieringer"
+
+#~ msgid "Only emit explicit instantiations of inline templates"
+#~ msgstr "Udsend kun eksplicitte instatieringer af indlejrede skabeloner"
+
+#~ msgid "Don't pedwarn about uses of Microsoft extensions"
+#~ msgstr "Udsend ikke pedantiske advarsler om brug af Microsoft-udvidelser"
+
+#~ msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+#~ msgstr "Genkend and/bitand/bitor/compl/not/or/xor"
+
+#~ msgid "Disable optional diagnostics"
+#~ msgstr "Deaktivr valgfrie diagnosticeringer"
+
+#~ msgid "Downgrade conformance errors to warnings"
+#~ msgstr "Nedgradr standardoverholdelsesfejl til advarsler"
+
+#~ msgid "Enable automatic template instantiation"
+#~ msgstr "Aktivr automatisk skabelonsinstantiering"
+
+#~ msgid "Display statistics accumulated during compilation"
+#~ msgstr "Vis statistik som indsamles under oversttelsen"
+
+#~ msgid "Specify maximum template instantiation depth"
+#~ msgstr "Angiv maksimal skabelonsinstantieringsdybde"
+
+#~ msgid "Use __cxa_atexit to register destructors"
+#~ msgstr "Benyt __cxa_atexit til at registrere destruktionsfunktioner"
+
+#~ msgid "Discard unused virtual functions"
+#~ msgstr "Kassr ubrugte virtuelle funktioner"
+
+#~ msgid "Implement vtables using thunks"
+#~ msgstr "Implementr virtuelle tabeller vha. thunk-kode"
+
+#~ msgid "Emit common-like symbols as weak symbols"
+#~ msgstr "Udsend almindelige symboler som svage symboler"
+
+#~ msgid "Emit cross referencing information"
+#~ msgstr "Udsend krydsreferenceoplysninger"
+
+#~ msgid "Warn about inconsistent return types"
+#~ msgstr "Advar om inkonsistente returtyper"
+
+#~ msgid "Warn about overloaded virtual function names"
+#~ msgstr "Advar om flertydige virtuelle funktionsnavne"
+
+#~ msgid "Don't warn when all ctors/dtors are private"
+#~ msgstr "Advar ikke nr alle konstruktions-/destruktionsfunktioner er private"
+
+#~ msgid "Warn about non virtual destructors"
+#~ msgstr "Advar om ikke-virtuelle destruktionsfunktioner"
+
+#~ msgid "Warn when a function is declared extern, then inline"
+#~ msgstr "Advar nr en funktion erklret extern erklres inline"
+
+#~ msgid "Warn when the compiler reorders code"
+#~ msgstr "Advar nr overstteren ndrer p ordenen af kode"
+
+#~ msgid "Warn when synthesis behavior differs from Cfront"
+#~ msgstr "Advar nr synteseopfrslen adskiller sig fra Cfront"
+
+#~ msgid "Don't warn when type converting pointers to member functions"
+#~ msgstr "Advar ikke ved typeomdannelse af henvisninger til medlemsfunktioner"
+
+#~ msgid "Warn about violations of Effective C++ style rules"
+#~ msgstr "Advar om overtrdelser af stilreglerne fra Effective C++"
+
+#~ msgid "Warn when overload promotes from unsigned to signed"
+#~ msgstr "Advar nr flertydiggrelse forfremmer fra unsigned til signed"
+
+#~ msgid "Warn if a C style cast is used in a program"
+#~ msgstr "Advar hvis en typeomtvingning i C-stil benyttes"
+
+#~ msgid "Don't warn when non-templatized friend functions are declared within a template"
+#~ msgstr "Advar ikke nr ikke-skabelonsvennefunktioner erklres inde i en skabelon"
+
+#~ msgid "Don't announce deprecation of compiler features"
+#~ msgstr "Annoncr ikke forldelse af overstterfaciliteter"
+
+#~ msgid "note:"
+#~ msgstr "bemrk:"
+
+#~ msgid "warning:"
+#~ msgstr "advarsel: "
+
+#~ msgid "fatal:"
+#~ msgstr "fatal:"
+
+#~ msgid "(continued):"
+#~ msgstr "(fortsat):"
+
+#~ msgid "[REPORT BUG!!] %"
+#~ msgstr "[RAPPORTER FEJL!] %"
+
+#~ msgid "[REPORT BUG!!]"
+#~ msgstr "[RAPPORTER FEJL!]"
+
+#~ msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+#~ msgstr "ASSIGN'et etiket kan ikke passe i '%A' ved %0 - bruger bredere sskende"
+
+#~ msgid "no INTEGER type can hold a pointer on this configuration"
+#~ msgstr "ingen INTEGER-type kan opbevare en henvisning i denne konfiguration"
+
+#~ msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+#~ msgstr "konfiguration: REAL, INTEGER og LOGICAL er %d bit brede,"
+
+#~ msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+#~ msgstr "og henvisninger er %d bit brede, men g77 virker endnu ikke"
+
+#~ msgid "properly unless they all are 32 bits wide"
+#~ msgstr "ordentligt medmindre de alle er 32 bit brede"
+
+#~ msgid "Please keep this in mind before you report bugs."
+#~ msgstr "Husk venligst p dette fr du rapporterer fejl."
+
+#~ msgid "configuration: char * holds %d bits, but ftnlen only %d"
+#~ msgstr "konfiguration: char * holder %d bit, men ftnlen kun %d"
+
+#~ msgid ""
+#~ "configuration: char * holds %d bits, but INTEGER only %d --\n"
+#~ " ASSIGN statement might fail"
+#~ msgstr "konfiguration: char * holder %d bit, men INTEGER kun %d - ASSIGN-stning kan mislykkes"
+
+#~ msgid "In statement function"
+#~ msgstr "I stningsfunktion"
+
+#~ msgid "Outside of any program unit:\n"
+#~ msgstr "Uden for nogen programenhed:\n"
+
+#~ msgid "%A from %B at %0%C"
+#~ msgstr "%A fra %B ved %0%C"
+
+#~ msgid "directory name must immediately follow -I"
+#~ msgstr "et katalognavn skal flge umiddelbart efter -I"
+
+#~ msgid "At %0, INCLUDE file %A exists, but is not readable"
+#~ msgstr "Ved %0 eksisterer INCLUDE-filen %A, men kan ikke lses"
+
+#~ msgid "At %0, INCLUDE nesting too deep"
+#~ msgstr "Ved %0 er INCLUDE-indlejring for dyb"
+
+#~ msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+#~ msgstr "To aritmetiske operatorer efter hinanden ved %0 og %1 - benyt paranteser"
+
+#~ msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+#~ msgstr "Operatoren ved %0 har lavere prioritet end den ved %1 - benyt paranteser"
+
+#~ msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+#~ msgstr "Benyt .EQV./.NEQV. i stedet for .EQ./.NE. ved %0 for LOGICAL-operander ved %1 og %2"
+
+#~ msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+#~ msgstr "Ikke-understttet operand for ** ved %1 - konverterer til standard-INTEGER"
+
+#~ msgid "overflowed output arg list for `%s'"
+#~ msgstr "overlb i uddataparameterlist for '%s'"
+
+#~ msgid "--driver no longer supported"
+#~ msgstr "--driver understttes ikke lngere"
+
+#~ msgid "argument to `%s' missing"
+#~ msgstr "parameter til '%s' mangler"
+
+#~ msgid "no input files; unwilling to write output files"
+#~ msgstr "ingen inputfiler; vil ikke skrive outputfiler"
+
+#~ msgid "Implicit declaration of `%A' at %0"
+#~ msgstr "Implicit erklring af '%A' ved %0"
+
+#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+#~ msgstr "Undvigesekvensen '\\%A' ved %0 flger ikke ISO C-standarden"
+
+#~ msgid "Unknown escape sequence `\\%A' at %0"
+#~ msgstr "Ukendt undvigesekvens '\\%A' ved %0"
+
+#~ msgid "Unterminated escape sequence `\\' at %0"
+#~ msgstr "Uafsluttet undvigsekvens '\\' ved %0"
+
+#~ msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+#~ msgstr "Ukendt undvigesekvens '\\' efterfulgt af tegnkode 0x%A ved %0"
+
+#~ msgid "\\x used at %0 with no following hex digits"
+#~ msgstr "\\x angivet ved %0 uden efterflgende hexadecimale cifre"
+
+#~ msgid "Hex escape at %0 out of range"
+#~ msgstr "Hexadecimal undvigesekvens ved %0 er uden for det gyldige interval"
+
+#~ msgid "Escape sequence at %0 out of range for character"
+#~ msgstr "Undvigesekvens ved %0 er uden for det gyldig interval for tegn"
+
+#~ msgid "hex escape out of range"
+#~ msgstr "hexadecimal undvigesekvens er uden for det gyldige interval"
+
+#~ msgid "non-ANSI-standard escape sequence, `\\%c'"
+#~ msgstr "undvigesekvensen '\\%c' flger ikke ANSI-standarden"
+
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr "undvigesekvensen '\\%c' flger ikke ISO-standarden"
+
+#~ msgid "unknown escape sequence `\\%c'"
+#~ msgstr "ukendt undvigesekvens '\\%c'"
+
+#~ msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+#~ msgstr "ukendt undvigesekvens: '\\' efterfulgt af tegnkoden 0x%x"
+
+#~ msgid "badly formed directive -- no closing quote"
+#~ msgstr "forkert udformet direktiv - intet afsluttende anfrselstegn"
+
+#~ msgid "#-lines for entering and leaving files don't match"
+#~ msgstr "#-linjer til at trde ind og ud af filer passer ikke"
+
+#~ msgid "bad directive -- missing close-quote"
+#~ msgstr "forkert udformet direktiv - intet afsluttende anfrselstegn"
+
+#~ msgid "ignoring pragma: %s"
+#~ msgstr "ignorerer pragma: %s"
+
+#~ msgid "invalid #ident"
+#~ msgstr "ugyldig #ident"
+
+#~ msgid "undefined or invalid # directive"
+#~ msgstr "ugyldigt eller ikke-defineret #-direktiv"
+
+#~ msgid "invalid #line"
+#~ msgstr "ugyldig #line"
+
+#~ msgid "use `#line ...' instead of `# ...' in first line"
+#~ msgstr "benyt '#line ...' i stedet for '# ...' i frste linje"
+
+#~ msgid "invalid #-line"
+#~ msgstr "ugyldig #-linje"
+
+#~ msgid "Null character at %0 -- line ignored"
+#~ msgstr "Nultegn ved %0 - linje ignoreret"
+
+#~ msgid "INCLUDE at %0 not the only statement on the source line"
+#~ msgstr "INCLUDE ved %0 er ikke den eneste stning p kildekodelinjen"
+
+#~ msgid "ASSIGNed FORMAT specifier is too small"
+#~ msgstr "ASSIGN'et FORMAT-angivelse er for lille"
+
+#~ msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+#~ msgstr "SELECT CASE p CHARACTER-type (ved %0) er ikke understttet - desvrre"
+
+#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+#~ msgstr "SELECT (ved %0) har ens tilflde -- tjek heltalsoverlb af CASEs"
+
+#~ msgid "ASSIGN to variable that is too small"
+#~ msgstr "ASSIGN til variabel der er for lille"
+
+#~ msgid "ASSIGNed GOTO target variable is too small"
+#~ msgstr "ASSIGN'et GOTO-mlvariabel er for lille"
+
+#~ msgid "Local adjustable symbol `%A' at %0"
+#~ msgstr "Lokalt justerbart symbol '%A' ved %0"
+
+#~ msgid "data initializer on host with different endianness"
+#~ msgstr "datastartvrdi p vrt med anden endethed"
+
+#~ msgid "%s no longer supported -- try -fvxt"
+#~ msgstr "%s er ikke lngere understttet - prv -fvxt"
+
+#~ msgid "%s no longer supported -- try -fno-vxt -ff90"
+#~ msgstr "%s er ikke lngere understttet - prv -fno-vxt -ff90"
+
+#~ msgid "%s disabled, use normal debugging flags"
+#~ msgstr "%s deaktiveret, benyt normale fejlanalyseringstilvalg"
+
+#~ msgid "Print g77-specific compiler version info, run internal tests"
+#~ msgstr "Udskriv g77-specifik overstterversioninfo, kr interne test"
+
+#~ msgid "Program is written in typical FORTRAN 66 dialect"
+#~ msgstr "Program er skrevet i typisk FORTRAN 66-dialekt"
+
+#~ msgid "Program is written in typical Unix f77 dialect"
+#~ msgstr "Program er skrevet i typisk Unix f77-dialekt"
+
+#~ msgid "Program does not use Unix-f77 dialectal features"
+#~ msgstr "Program benytter ikke Unix f77-dialektiske faciliteter"
+
+#~ msgid "Program is written in Fortran-90-ish dialect"
+#~ msgstr "Program er skrevet i Fortran 90-agtig dialekt"
+
+#~ msgid "Treat local vars and COMMON blocks as if they were named in SAVE statements"
+#~ msgstr "Behandl lokale variable og COMMON-blokke som om de var nvnt i SAVE-stninger"
+
+#~ msgid "Allow $ in symbol names"
+#~ msgstr "Tillad $ i symbolnavne"
+
+#~ msgid "f2c-compatible code need not be generated"
+#~ msgstr "f2c-kompatibel kode behver ikke at blive genereret"
+
+#~ msgid "Unsupported; do not generate libf2c-calling code"
+#~ msgstr "Ikke-understttet; generr ikke libf2c-kaldende kode"
+
+#~ msgid "Unsupported; affects code-generation of arrays"
+#~ msgstr "Ikke-understttet; pvirker kodegenerering af tabeller"
+
+#~ msgid "Program is written in Fortran-90-ish free form"
+#~ msgstr "Program er skrevet i Fortran 90-agtig fri stil"
+
+#~ msgid "Warn about use of (only a few for now) Fortran extensions"
+#~ msgstr "Advar om brug af (i jeblikket kun nogle f) Fortran-udvidelser"
+
+#~ msgid "Program is written in VXT (Digital-like) FORTRAN"
+#~ msgstr "Program er skrevet i VXT (Digital-agtig) FORTRAN"
+
+#~ msgid "Disallow all ugly features"
+#~ msgstr "Forbyd alle grimme faciliteter"
+
+# hollerith?
+#~ msgid "Hollerith and typeless constants not passed as arguments"
+#~ msgstr "Hollerith og typelse konstanter overbringes ikke som parametre"
+
+#~ msgid "Allow ordinary copying of ASSIGN'ed vars"
+#~ msgstr "Tillad almindelig kopiering af ASSIGN'ede variable"
+
+# RETMIG: ?
+#~ msgid "Dummy array dimensioned to (1) is assumed-size"
+#~ msgstr "Dummy-tabel dimensioneret til (1) er antaget strrelse"
+
+#~ msgid "Trailing comma in procedure call denotes null argument"
+#~ msgstr "Afsluttende komma i procedurekald angiver nulparameter"
+
+#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+#~ msgstr "Tillad REAL(Z) og AIMAG(Z) givet DOUBLE COMPLEX Z"
+
+#~ msgid "Initialization via DATA and PARAMETER is type-compatible"
+#~ msgstr "Klargring via DATA og PARAMETER er type-kompatible"
+
+#~ msgid "Allow INTEGER and LOGICAL interchangeability"
+#~ msgstr "Tillad INTEGER og LOGICAL p hinandens plads"
+
+#~ msgid "Print internal debugging-related info"
+#~ msgstr "Udskriv intern fejlanalyseringsrelateret info"
+
+#~ msgid "Initialize local vars and arrays to zero"
+#~ msgstr "Klargr lokale variable og tabeller til nul"
+
+#~ msgid "Backslashes in character/hollerith constants not special (C-style)"
+#~ msgstr "Omvendte skrstreger i tegn/hollerith-konstanter er ikke specielle (C-stil)"
+
+#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+#~ msgstr "Lad forenden emulere COMPLEX-beregninger for at undg fejl"
+
+#~ msgid "Disable the appending of underscores to externals"
+#~ msgstr "Deaktivr tilfjelse af understreger bag p eksterne variable"
+
+#~ msgid "Never append a second underscore to externals"
+#~ msgstr "Tilfj aldrig en anden understreg til eksterne variable"
+
+#~ msgid "Intrinsics spelled as e.g. SqRt"
+#~ msgstr "Indbyggede staves som f.eks. SqRt"
+
+#~ msgid "Intrinsics in uppercase"
+#~ msgstr "Indbyggede staves med store bogstaver"
+
+#~ msgid "Intrinsics letters in arbitrary cases"
+#~ msgstr "Der skelnes ikke mellem sm og store bogstaver i indbyggede"
+
+#~ msgid "Language keywords spelled as e.g. IOStat"
+#~ msgstr "Sprogngleord staves som f.eks. IOStat"
+
+#~ msgid "Language keywords in uppercase"
+#~ msgstr "Sprogngleord staves med store bogstaver"
+
+#~ msgid "Language keyword letters in arbitrary cases"
+#~ msgstr "Der skelnes ikke mellem sm og store bogstaver i sprogngleord"
+
+#~ msgid "Internally convert most source to uppercase"
+#~ msgstr "Konvertr det meste kildekode til store bogstaver internt"
+
+#~ msgid "Internally preserve source case"
+#~ msgstr "Bevar de store/sm bogstaver i kildekoden internt"
+
+#~ msgid "Symbol names spelled in mixed case"
+#~ msgstr "Symbolnavne staves med en blanding af store og sm bogstaver"
+
+#~ msgid "Symbol names in uppercase"
+#~ msgstr "Symbolnavne staves med store bogstaver"
+
+#~ msgid "Symbol names in lowercase"
+#~ msgstr "Symbolnavne staves med sm bogstaver"
+
+#~ msgid "Program written in uppercase"
+#~ msgstr "Program skrives med store bogstaver"
+
+#~ msgid "Program written in lowercase"
+#~ msgstr "Program skrives med sm bogstaver"
+
+#~ msgid "Program written in strict mixed-case"
+#~ msgstr "Program skrives med streng blanding af store/sm bogstaver"
+
+#~ msgid "Compile as if program written in uppercase"
+#~ msgstr "Overst som hvis programmet var skrevet med store bogstaver"
+
+#~ msgid "Compile as if program written in lowercase"
+#~ msgstr "Overst som hvis programmet var skrevet med sm bogstaver"
+
+#~ msgid "Preserve all spelling (case) used in program"
+#~ msgstr "Bevar al stavning (store/sm bogstaver) benyttet i programmet"
+
+#~ msgid "Delete libU77 intrinsics with bad interfaces"
+#~ msgstr "Slet libU77-indbyggede med drlige grnseflader"
+
+#~ msgid "Disable libU77 intrinsics with bad interfaces"
+#~ msgstr "Deaktivr libU77-indbyggede med drlige grnseflader"
+
+#~ msgid "Hide libU77 intrinsics with bad interfaces"
+#~ msgstr "Skjul libU77-indbyggede med drlige grnseflader"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Slet f2c-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Deaktivr f2c-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Skjul f2c-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Slet F90-understttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Deaktivr F90-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Skjul F90-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+#~ msgstr "Slet g77-understttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Deaktivr g77-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Skjul g77-understttelse af ikke-FORTRAN-77-indbyggede"
+
+#~ msgid "Delete MIL-STD 1753 intrinsics"
+#~ msgstr "Slet MIL-STD 1753-indbyggede"
+
+#~ msgid "Disable MIL-STD 1753 intrinsics"
+#~ msgstr "Deaktivr MIL-STD 1753-indbyggede"
+
+#~ msgid "Hide MIL-STD 1753 intrinsics"
+#~ msgstr "Skjul MIL-STD 1753-indbyggede"
+
+#~ msgid "Delete libU77 intrinsics"
+#~ msgstr "Slet libU77-indbyggede"
+
+#~ msgid "Disable libU77 intrinsics"
+#~ msgstr "Deaktivr libU77-indbyggede"
+
+#~ msgid "Hide libU77 intrinsics"
+#~ msgstr "Skjul libU77-indbyggede"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Slet VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Deaktivr VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Skjul VXT FORTRAN-understttelse af ikke-FORTRAN-77-indbyggede "
+
+#~ msgid "Treat initial values of 0 like non-zero values"
+#~ msgstr "Behandl begyndelsesvrdier p 0 som vrdier forskellig fra nul"
+
+#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+#~ msgstr "Udsend speciel fejlanalyseringsinfo for COMMON og EQUIVALENCE (deaktiveret)"
+
+#~ msgid "Take at least one trip through each iterative DO loop"
+#~ msgstr "Tag i det mindste et skridt gennem hver DO-lkke"
+
+#~ msgid "Print names of program units as they are compiled"
+#~ msgstr "Udskriv navne p programenheder efterhnden som de oversttes"
+
+#~ msgid "Disable fatal diagnostics about inter-procedural problems"
+#~ msgstr "Deaktivr fatale diagnosticeringer af interprocedurale procedurer"
+
+#~ msgid "Make prefix-radix non-decimal constants be typeless"
+#~ msgstr "Gr prfiks-grundtal ikke-decimale konstanter typelse"
+
+#~ msgid "Generate code to check subscript and substring bounds"
+#~ msgstr "Generr kode for at tjekke indekserings- og understrengsgrnser"
+
+#~ msgid "Fortran-specific form of -fbounds-check"
+#~ msgstr "Fortran-specifik form for -fbounds-check"
+
+#~ msgid "Disable warnings about inter-procedural problems"
+#~ msgstr "Deaktivr advarsler om interprocedurale problemer"
+
+#~ msgid "Warn about constructs with surprising meanings"
+#~ msgstr "Advar om konstruktioner med overraskende betydninger"
+
+#~ msgid "Add a directory for INCLUDE searching"
+#~ msgstr "Tilfj et katalog til INCLUDE-sgning"
+
+#~ msgid "Set the maximum line length"
+#~ msgstr "Angiv den maksimale linjelngde"
+
+#~ msgid "Missing first operand for binary operator at %0"
+#~ msgstr "Manglende frste operand for binr operator ved %0"
+
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr "Nul-lngde tegnkonstant ved %0"
+
+#~ msgid "Invalid token at %0 in expression or subexpression at %1"
+#~ msgstr "Ugyldigt symbol ved %0 i udtryk eller underudtryk ved %1"
+
+#~ msgid "Missing operand for operator at %1 at end of expression at %0"
+#~ msgstr "Manglende operand for operator ved %1 i slutningen af udtryk ved %0"
+
+#~ msgid "Label %A already defined at %1 when redefined at %0"
+#~ msgstr "Etiket %A er allerede defineret ved %1 ved omdefinering ved %0"
+
+#~ msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+#~ msgstr "Ukendt tegn ved %0 [info -f g77 M LEX]"
+
+#~ msgid "Label definition %A at %0 on empty statement (as of %1)"
+#~ msgstr "Etiketdefinition %A ved %0 i tom stning (ved %1)"
+
+#~ msgid "Invalid first character at %0 [info -f g77 M LEX]"
+#~ msgstr "Ugyldig frste tegn ved %0 [info -f g77 M LEX]"
+
+#~ msgid "Line too long as of %0 [info -f g77 M LEX]"
+#~ msgstr "Linje for lang ved %0 [info -f g77 M LEX]"
+
+#~ msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+#~ msgstr "Tegn der ikke er tal ved %0 i etiketfelt [info -f g77 M LEX]"
+
+#~ msgid "Label number at %0 not in range 1-99999"
+#~ msgstr "Etiketnummer ved %0 er ikke i intervallet 1-99999"
+
+#~ msgid "At %0, '!' and '/*' are not valid comment delimiters"
+#~ msgstr "Ved %0 er '!' og '/*' ikke gyldige kommentarafgrnsninger"
+
+#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+#~ msgstr "Fortsttelsesindikator ved %0 skal optrde i kolonne 6 [info -f g77 M LEX]"
+
+#~ msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+#~ msgstr "Etiket ved %0 er ugyldig med fortsttelseslinjeindikator ved %1 [info -f g77 M LEX]"
+
+#~ msgid "Character constant at %0 has no closing apostrophe at %1"
+#~ msgstr "Tenkonstant ved %0 har ingen afsluttende apostrof ved %1"
+
+#~ msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+#~ msgstr "Hollerith-konstant ved %0 angiver %A flere tegn end der optrder ved %1"
+
+#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+#~ msgstr "Afsluttende parantes ved %0 behves for at svare til ben parantes ved %1"
+
+#~ msgid "Integer at %0 too large"
+#~ msgstr "Heltal ved %0 for stort"
+
+#~ msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+#~ msgstr "Punktum ved %0 efterflges ikke af cifre til kommatal eller af 'NOT.', 'TRUE.' eller 'FALSE.'"
+
+#~ msgid "Missing close-period between `.%A' at %0 and %1"
+#~ msgstr "Manglende afsluttende punktum mellem '.%A' ved %0 og %1"
+
+#~ msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+#~ msgstr "Ugyldig eksponent ved %0 for reel konstant ved %1; ikke-ciffer '%A' i eksponentfelt"
+
+#~ msgid "Missing value at %1 for real-number exponent at %0"
+#~ msgstr "Manglende vrdi ved %1 for reel eksponent ved %0"
+
+#~ msgid "Expected binary operator between expressions at %0 and at %1"
+#~ msgstr "Forventede binr operator mellem udtryk ved %0 og ved %1"
+
+#~ msgid "Semicolon at %0 is an invalid token"
+#~ msgstr "Semikolon ved %0 er et ugyldigt symbol"
+
+#~ msgid "Extraneous comma in FORMAT statement at %0"
+#~ msgstr "Ekstra komma i FORMAT-stning ved %0"
+
+#~ msgid "Missing comma in FORMAT statement at %0"
+#~ msgstr "Manglende komma i FORMAT-stning ved %0"
+
+#~ msgid "Spurious sign in FORMAT statement at %0"
+#~ msgstr "Mystisk fortegn i FORMAT-stning ved %0"
+
+#~ msgid "Spurious number in FORMAT statement at %0"
+#~ msgstr "Mystisk tal i FORMAT-stning ved %0"
+
+#~ msgid "Spurious text trailing number in FORMAT statement at %0"
+#~ msgstr "Mystisk tekstafsluttende tal i FORMAT-stning ved %0"
+
+#~ msgid "Unrecognized FORMAT specifier at %0"
+#~ msgstr "Ukendt FORMAT-angivelse ved %0"
+
+#~ msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+#~ msgstr "Manglende afsluttende parantes i FORMAT-stning ved %0"
+
+#~ msgid "Missing number following period in FORMAT statement at %0"
+#~ msgstr "Manglende tal efter punktum i FORMAT-stning ved %0"
+
+#~ msgid "Missing number following `E' in FORMAT statement at %0"
+#~ msgstr "Manglende tal efter 'E' i FORMAT-stning ved %0"
+
+#~ msgid "Spurious trailing comma preceding terminator at %0"
+#~ msgstr "Mystisk afsluttende komma fr afslutningssymbol ved %0"
+
+#~ msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+#~ msgstr "Angiv OPERATOR i stedet for ASSIGNMENT ved %0 for INTERFACE-stning der ikke angiver tildelingsoperatoren (=)"
+
+#~ msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+#~ msgstr "Angiv ASSIGNMENT i stedet for OPERATOR ved %0 for INTERFACE-stning der angiver tildelingsoperatoren (=)"
+
+#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+#~ msgstr "Kan ikke angive =klargringsudtryk ved %0 medmindre '::' optrder fr listen af objekter"
+
+#~ msgid "Reference to label at %1 inconsistent with its definition at %0"
+#~ msgstr "Reference til etiket ved %1 er inkonsistent med dens definition ved %0"
+
+#~ msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+#~ msgstr "Reference til etiket ved %1 er inkonsistent med tidligere reference ved %0"
+
+#~ msgid "DO-statement reference to label at %1 follows its definition at %0"
+#~ msgstr "DO-stningsreference til etiket ved %1 flger dens definition ved %0"
+
+#~ msgid "Reference to label at %1 is outside block containing definition at %0"
+#~ msgstr "Reference til etiket ved %1 er uden for blok der indeholder definitionen ved %0"
+
+#~ msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+#~ msgstr "DO-stningsreferencer til etiket ved %0 og %2 adskilt af uafsluttet blok der begynder ved %1"
+
+#~ msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+#~ msgstr "DO-stningsreference til etiket ved %0 og etiketdefinition ved %2 adskilt af uafsluttet blok der begynder ved %1"
+
+#~ msgid "Label definition at %0 invalid on this kind of statement"
+#~ msgstr "Etiketdefinition ved %0 er ugyldig ved denne slags stning"
+
+#~ msgid "Statement at %0 invalid in this context"
+#~ msgstr "Stning ved %0 er ugyldig i denne kontekst"
+
+#~ msgid "Statement at %0 invalid in context established by statement at %1"
+#~ msgstr "Stning ved %0 er ugyldig i den kontekst der er etableret af stning ved %1"
+
+#~ msgid "Statement at %0 must specify construct name specified at %1"
+#~ msgstr "Stning ved %0 skal angive konstruktionsnavn angivet ved %1"
+
+#~ msgid "Construct name at %0 superfluous, no construct name specified at %1"
+#~ msgstr "Kontruktionsnavn ved %0 er overfldigt, intet kontruktionsnavn angivet ved %1"
+
+#~ msgid "Construct name at %0 not the same as construct name at %1"
+#~ msgstr "Kontruktionsnavn ved %0 er ikke det samme som konstruktionsnavn ved %1"
+
+#~ msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+#~ msgstr "Kontruktionsnavn ved %0 passer ikke med konstruktionsnavn for nogen indeholdende DO-konstruktioner"
+
+#~ msgid "Label definition missing at %0 for DO construct specifying label at %1"
+#~ msgstr "Etiketdefinition mangler ved %0 for DO-konstruktion der angiver etiket ved %1"
+
+#~ msgid "Statement at %0 follows ELSE block for IF construct at %1"
+#~ msgstr "Stning ved %0 flger ELSE-blok for IF-konstruktion ved %1"
+
+#~ msgid "No label definition for FORMAT statement at %0"
+#~ msgstr "Ingen etiketdefinition for FORMAT-stning ved %0"
+
+#~ msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+#~ msgstr "Anden forekomst af ELSE WHERE ved %0 inden i WHERE ved %1"
+
+#~ msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+#~ msgstr "END-stning ved %0 mangler ngleordet '%A' som er pkrvet for interne eller modul-procedurer afgrnset af %1"
+
+#~ msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+#~ msgstr "MODULE PROCEDURE-stning ved %0 er ikke tilladt da INTERFACE ved %1 ikke angiver generisk navn, operator eller tildeling"
+
+#~ msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+#~ msgstr "BLOCK DATA-navn ved %0 er overfldigt, intet navn angivet ved %1"
+
+#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+#~ msgstr "Programnavn ved %0 er overfldigt, ingen PROGRAM-stning angivet ved %1"
+
+#~ msgid "Program unit name at %0 not the same as name at %1"
+#~ msgstr "Programenhedsnavn ved %0 er ikke det samme som navn ved %1"
+
+#~ msgid "Type name at %0 not the same as name at %1"
+#~ msgstr "Typenavn ved %0 er ikke det samme som navn ved %1"
+
+#~ msgid "End of source file before end of block started at %0"
+#~ msgstr "Slutning p kildekodefil fr slutning af blok begyndt ved %0"
+
+#~ msgid "Undefined label, first referenced at %0"
+#~ msgstr "Ikke-defineret etiket, frste reference er ved %0"
+
+#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+#~ msgstr "SAVE-stning eller -egenskab ved %1 kan ikke angives sammen med SAVE-stning eller -egenskab ved %0"
+
+#~ msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+#~ msgstr "PUBLIC- eller PRIVATE-stning ved %1 kan ikke angives sammen med PUBLIC- eller PRIVATE-stning ved %0"
+
+#~ msgid "RETURN statement at %0 invalid within a main program unit"
+#~ msgstr "RETURN-stning ved %0 ugyldig inden i en hovedprogramenhed"
+
+#~ msgid "Alternate return specifier at %0 invalid within a main program unit"
+#~ msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en hovedprogramenhed"
+
+#~ msgid "Alternate return specifier at %0 invalid within a function"
+#~ msgstr "Alternativ returangivelse ved %0 er ugyldig inden i en funktion"
+
+#~ msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+#~ msgstr "Tilgangsangivelse eller PRIVATE-stning ved %0 er ugyldig for nedarvet typedefinition som ikke er i specifikationsdelen af et modul"
+
+#~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+#~ msgstr "Tilgangsangivelse ved %0 skal umiddelbart flge nedarvet type-stning ved %1 uden nogen mellemliggende stninger"
+
+#~ msgid "No components specified as of %0 for derived-type definition beginning at %1"
+#~ msgstr "Ingen komponenter angivet ved %0 for nedarvet typedefinition begyndende ved %1"
+
+#~ msgid "No components specified as of %0 for structure definition beginning at %1"
+#~ msgstr "Ingen komponenter angivet ved %0 for strukturdefinition begyndende ved %1"
+
+#~ msgid "Missing structure name for outer structure definition at %0"
+#~ msgstr "Manglende strukturnavn for ydre strukturdefinition ved %0"
+
+#~ msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+#~ msgstr "Feltnavne ved %0 for ydre strukturdefinition - angiv dem i en efterflgende RECORD-stning i stedet"
+
+#~ msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+#~ msgstr "Manglende feltnavne for strukturdefinition ved %0 inden i strukturdefinition ved %1"
+
+#~ msgid "No components specified as of %0 for map beginning at %1"
+#~ msgstr "Ingen komponenter angivet ved %0 for map begyndende ved %1"
+
+#~ msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+#~ msgstr "Nul eller en map angivet ved %0 for union begyndende ved %1 - mindst to er pkrvet"
+
+#~ msgid "Missing %A specifier in statement at %0"
+#~ msgstr "Manglende %A-angivelse i stning ved %0"
+
+#~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+#~ msgstr "Elementer i I/O-liste begyndende ved %0 er ugyldigt for navnlistedirigeret I/O"
+
+#~ msgid "Conflicting I/O control specifications at %0 and %1"
+#~ msgstr "Modstridende I/O-kontrolangivelser ved %0 og %1"
+
+#~ msgid "No UNIT= specifier in I/O control list at %0"
+#~ msgstr "Inge UNIT=-angivelse i I/O-kontrolliste ved %0"
+
+#~ msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+#~ msgstr "Specifikation ved %0 krver ADVANCE='NO'-specifikation i samme I/O-kontrolliste"
+
+#~ msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+#~ msgstr "Specifikation ved %0 krver eksplicit FMT=-specifikation i samme I/O-kontrolliste"
+
+#~ msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+#~ msgstr "Anden forekomst af CASE DEFAULT ved %0 inden i SELECT CASE ved %1"
+
+#~ msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+#~ msgstr "CASE-vrdi optrder mere end n gang eller intervaller overlapper ved %0 og %1"
+
+#~ msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+#~ msgstr "Type og/eller form for type-parameter konflikt mellem CASE-vrdi eller vrdi i interval ved %0 og SELECT CASE ved %1"
+
+#~ msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+#~ msgstr "Intervalangivelse ved %0 er ugyldig for CASE-stning inden i SELECT CASE-stning med logisk type"
+
+#~ msgid "Fortran 90 feature at %0 unsupported"
+#~ msgstr "Fortran 90-facilitet ved %0 er ikke understttet"
+
+#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+#~ msgstr "Ugyldig erklring af reference til symbolet '%A' ved %0 (frst set ved %1)"
+
+#~ msgid "Null element at %0 for array reference at %1"
+#~ msgstr "Nulelement ved %0 for tabelreference ved %1"
+
+#~ msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+#~ msgstr "For f elementer (%A mangler) ved %0 for tabelreference ved %1"
+
+#~ msgid "Too many elements as of %0 for array reference at %1"
+#~ msgstr "For mange elementer ved %0 for tabelreference ved %1"
+
+#~ msgid "Missing colon as of %0 in substring reference for %1"
+#~ msgstr "Manglende kolon ved %0 i understrengsreference for %1"
+
+#~ msgid "Invalid use at %0 of substring operator on %1"
+#~ msgstr "Ugyldig brug ved %0 af understrengsoperator p %1"
+
+#~ msgid "Substring begin/end point at %0 out of defined range"
+#~ msgstr "Understrengs begyndelses-/slutpunkt ved %0 er uden for det definerede interval"
+
+#~ msgid "Array element value at %0 out of defined range"
+#~ msgstr "Tabelelementvrdi ved %0 er uden for det definerede interval"
+
+#~ msgid "Expression at %0 has incorrect data type or rank for its context"
+#~ msgstr "Udtryk ved %0 har forkert datatype eller rang for dets kontekst"
+
+#~ msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+#~ msgstr "Division med nul ved %0 (IEEE understttes ikke endnu)"
+
+#~ msgid "%A step count known to be 0 (zero) at %0"
+#~ msgstr "%A-skridttller vides at vre nul ved %0"
+
+#~ msgid "%A end value plus step count known to overflow at %0"
+#~ msgstr "%A-slutvrdi plus skridttller vides at forrsage overlb ved %0"
+
+#~ msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+#~ msgstr "%A-begyndelses-, slut- og skridttller-vrdier vides at resultere i implementeringsafhngig opfrsel pga. overlb i mellemregninger ved %0"
+
+#~ msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+#~ msgstr "%A-begyndelses-, slut- og skridttller-vrdier vides at resultere i at der ikke foretages nogen iterationer ved %0"
+
+#~ msgid "Type disagreement between expressions at %0 and %1"
+#~ msgstr "Typekonflikt mellem udtryk ved %0 og %1"
+
+#~ msgid "No specification for implied-DO iterator `%A' at %0"
+#~ msgstr "Ingen angivelse af underforstet DO-iterator '%A' ved %0"
+
+#~ msgid "Gratuitous parentheses surround implied-DO construct at %0"
+#~ msgstr "Ekstra paranteser omkring underforstet DO-konstruktion ved %0"
+
+#~ msgid "Zero-size specification invalid at %0"
+#~ msgstr "Nulstrrelses angivelse ugyldig ved %0"
+
+#~ msgid "Zero-size array at %0"
+#~ msgstr "Nulstrrelsestabel ved %0"
+
+#~ msgid "Target machine does not support complex entity of kind specified at %0"
+#~ msgstr "Mlarkitekturen understtter ikke den form for kompleks enhed der er angivet ved %0"
+
+#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+#~ msgstr "Mlarkitekturen understtter ikke DOUBLE COMPLEX, som angivet ved %0"
+
+#~ msgid "Attempt to raise constant zero to a power at %0"
+#~ msgstr "Forsg at oplfte konstant nul til en potens af %0"
+
+#~ msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+#~ msgstr "Reference til generisk indbygget '%A' ved %0 kunne vre for at danne %B eller %C"
+
+#~ msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+#~ msgstr "Tvetydig brug af indbygget '%A' ved %0 [info -f g77 M CMPAMBIG]"
+
+#~ msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+#~ msgstr "Indbygget '%A' refereret til som %B ved %0, som %C ved %1 [info -f g77 M EXPIMP]"
+
+#~ msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+#~ msgstr "Samme navn '%A' benyttet for %B ved %0 og %C ved %1 [info -f g77 M INTGLOB]"
+
+#~ msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+#~ msgstr "Eksplicit typeerklring for indbygget '%A' er i modstrid med kald ved %0"
+
+#~ msgid "Unable to open INCLUDE file `%A' at %0"
+#~ msgstr "Kunne ikke bne INCLUDE-filen '%A' ved %0"
+
+#~ msgid "Null argument at %0 for statement function reference at %1"
+#~ msgstr "Nulparameter ved %0 for stningsfunktionsreference ved %1"
+
+#~ msgid "Null argument at %0 for procedure invocation at %1"
+#~ msgstr "Nulparameter ved %0 for procedurekald ved %1"
+
+#~ msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+#~ msgstr "%A for f parametre (begyndende ved dummy-parameter '%B') ved %0 for stningsfunktionsreference ved %1"
+
+#~ msgid "%A too many arguments as of %0 for statement function reference at %1"
+#~ msgstr "%A for mange parametre ved %0 for stningsfunktionsreference ved %1"
+
+#~ msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+#~ msgstr "Tabel angivet ved %1 for dummy-parameter '%A' i stningsfunktionsreference ved %1"
+
+#~ msgid "Unsupported FORMAT specifier at %0"
+#~ msgstr "Ikke-understttet FORMAT-angivelse ved %0"
+
+#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+#~ msgstr "Variabel-udtryks FORMAT-angivelse ved %0 - ikke-understttet"
+
+#~ msgid "Unsupported VXT statement at %0"
+#~ msgstr "Ikke-understttet VXT-stning ved %0"
+
+#~ msgid "Attempt to specify second initial value for `%A' at %0"
+#~ msgstr "Forsg p at angive anden startvrdi for '%A' ved %0"
+
+#~ msgid "Too few initial values in list of initializers for `%A' at %0"
+#~ msgstr "For f startvrdier i klargringsliste for '%A' ved %0"
+
+#~ msgid "Too many initial values in list of initializers starting at %0"
+#~ msgstr "For mange startvrdier i klargringsliste ved %0"
+
+#~ msgid "Array or substring specification for `%A' out of range in statement at %0"
+#~ msgstr "Tabel- eller understrengsangivelse for '%A' er uden for det gyldige interval i stning ved %0"
+
+#~ msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+#~ msgstr "Tabelindeks nr. %B er uden for det gyldig interval ved klargring af '%A' i stning ved %0"
+
+#~ msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "Underforstet do-lkkeskridttller p nul for iterationsvariablen '%A' i stning ved %0"
+
+#~ msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "Underforstet do-lkkegentagelsestller p nul for iterationsvariablen '%A' i stning ved %0"
+
+#~ msgid "Not an integer constant expression in implied do-loop in statement at %0"
+#~ msgstr "Ikke et heltalskonstantudtryk i underforstet do-lkke i stning ved %0"
+
+#~ msgid "Attempt to specify second initial value for element of `%A' at %0"
+#~ msgstr "Forsg p at angive anden startvdi for element af '%A' ved %0"
+
+#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+#~ msgstr "Forsg p at anvende EQUIVALENCE mellem de almene omrder '%A' og '%B' ved %0"
+
+#~ msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+#~ msgstr "Kan ikke placere '%A' som angivet af EQUIVALENCE pga. justeringsrestriktioner"
+
+#~ msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+#~ msgstr "Forkerte EQUIVALENCE-krav for placering af '%A' ved bde %C og %D bytes afstand fra '%B'"
+
+#~ msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+#~ msgstr "Tabel- eller understrengsspecifikation for '%A' er uden for det gyldige interval i EQUIVALENCE-stning"
+
+#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+#~ msgstr "Understreng af ikke-CHARACTER enhed '%A' i EQUIVALENCE-stning"
+
+#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+#~ msgstr "Tabelreference til skalar variabel '%A' i EQUIVALENCE-stning"
+
+#~ msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+#~ msgstr "Tabelindeks nr. %B er uden for det gyldige interval for EQUIVALENCE '%A'"
+
+#~ msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+#~ msgstr "Forsg p at udvide COMMON-omrde over dets begyndelsespunkt vha. EQUIVALENCE '%A'"
+
+#~ msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "For f elementer i reference til tabllen '%A' i EQUIVALENCE-stning"
+
+#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "For mange elementer i reference til tabllen '%A' i EQUIVALENCE-stning"
+
+#~ msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+#~ msgstr "Blandede CHARACTER- og ikke-CHARACTER-typer vha. COMMON/EQUIVALENCE - f.eks. '%A' og '%B'"
+
+#~ msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+#~ msgstr "Returvrdi `%A' for FUNCTION ved %0 refereres ikke i underprogram"
+
+#~ msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+#~ msgstr "Almen blok '%A' er SAVEd, eksplicit eller implicit, ved %0, men ikke ved %1"
+
+#~ msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+#~ msgstr "Almen blok '%A' er %B %D i lngde ved %0, men %C %E ved %1"
+
+#~ msgid "Blank common initialized at %0"
+#~ msgstr "Tom almen tildelt startvrdi ved %0"
+
+#~ msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+#~ msgstr "Indbygget '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklret INTRINSIC"
+
+#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+#~ msgstr "Ekstern procedure '%A' er overbragt som faktisk parameter ved %0, men ikke eksplicit erklret EXTERNAL"
+
+#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+#~ msgstr "Tegn '%A' (f.eks.) er et stort bogstav i symbolnavn ved %0"
+
+#~ msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+#~ msgstr "Tegn '%A' (f.eks.) er et lille bogstav i symbolnavn ved %0"
+
+#~ msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+#~ msgstr "Tegn '%A' flges ikke af lille bogstav i symbolnavn ved %0"
+
+#~ msgid "Initial character `%A' is lower-case in symbol name at %0"
+#~ msgstr "Begyndelsestegn '%A' er et lille bogstav i symbolnavn ved %0"
+
+#~ msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+#~ msgstr "NAMELIST er ikke tilstrkkeligt understttet af krselsbiblioteket for kildefiler med store/sm bogstaver bevaret"
+
+#~ msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+#~ msgstr "Indlejret %%-konstruktion (%%VAL, %%REF eller %%DESCR) ved %0"
+
+#~ msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+#~ msgstr "Stning ved %0 er ugyldig i BLOCK DATA-programenhed ved %1"
+
+#~ msgid "Truncating characters on right side of character constant at %0"
+#~ msgstr "Fjerner tegn p den hjre side af tegnkonstant ved %0"
+
+#~ msgid "Truncating characters on right side of hollerith constant at %0"
+#~ msgstr "Fjerner tegn p den hjre side af hollerith-konstant ved %0"
+
+#~ msgid "Truncating non-zero data on left side of numeric constant at %0"
+#~ msgstr "Fjerner data der ikke er nul, p den venstre side af numerisk konstant ved %0"
+
+#~ msgid "Truncating non-zero data on left side of typeless constant at %0"
+#~ msgstr "Fjerner data der ikke er nul, p den venstre side af typels konstant ved %0"
+
+#~ msgid "Typeless constant at %0 too large"
+#~ msgstr "Typels konstant ved %0 er for stor"
+
+#~ msgid "First-column ampersand continuation at %0"
+#~ msgstr "Frstekolonne og-tegnsfortsttelse ved %0"
+
+#~ msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "Globalt navn '%A' defineret ved %0 er allerede defineret ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "Globalt navn '%A' er %B ved %0, men er %C ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "Globalt navn '%A' ved %0 har anden type ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "For %B parameter overbragt til '%A' ved %0 mod definitionen ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "For %B parametre til '%A' ved %0 mod kald ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "Parameter nr. %B for '%A' er %C ved %0, men er %D ved %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Array `%A' at %0 is too large to handle"
+#~ msgstr "Tabellen '%A' ved %0 er for stor til at hndtere"
+
+#~ msgid "Statement function `%A' defined at %0 is not used"
+#~ msgstr "Stningsfunktion '%A' defineret ved %0, men er ikke brugt"
+
+#~ msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+#~ msgstr "Indbygget '%A', kaldt ved %0, vides ikke vre r 2000-sikker [info -f g77 M Y2KBAD]"
+
+#~ msgid "Internal compiler error -- cannot perform operation"
+#~ msgstr "Intern overstterfejl - kan ikke udfre operation"
+
+#~ msgid "In unknown kind"
+#~ msgstr "I ukendt ting"
+
+#~ msgid "In entity"
+#~ msgstr "I enheden"
+
+#~ msgid "In function"
+#~ msgstr "I funktionen"
+
+#~ msgid "In subroutine"
+#~ msgstr "I underrutinen"
+
+#~ msgid "In program"
+#~ msgstr "I programmet"
+
+#~ msgid "In block-data unit"
+#~ msgstr "I blokdataenheden"
+
+#~ msgid "In common block"
+#~ msgstr "I den almene blok"
+
+#~ msgid "In construct"
+#~ msgstr "I konstruktionen"
+
+#~ msgid "In namelist"
+#~ msgstr "I navnelisten"
+
+#~ msgid "In anything"
+#~ msgstr "I et eller andet"
+
+#~ msgid "internal error in check-init: tree code not implemented: %s"
+#~ msgstr "intern fejl i check-init: trkode ikke implementeret: %s"
+
+#~ msgid "final field '%s' may not have been initialized"
+#~ msgstr "slutfeltet '%s' bliver mske ikke klargjort"
+
+#~ msgid "internal error - too many interface type"
+#~ msgstr "intern fejl - for mange grnsefladetyper"
+
+#~ msgid "bad method signature"
+#~ msgstr "ugyldig metodesignatur"
+
+#~ msgid "misplaced ConstantValue attribute (not in any field)"
+#~ msgstr "forkert placeret ConstantValue-egenskab (ikke i noget felt)"
+
+#~ msgid "duplicate ConstantValue attribute for field '%s'"
+#~ msgstr "mere end n ConstantValue-egenskab for feltet '%s'"
+
+#~ msgid "ConstantValue attribute of field '%s' has wrong type"
+#~ msgstr "ConstantValue-egenskaben for feltet '%s' har forkert type"
+
+#~ msgid "field '%s' not found in class"
+#~ msgstr "feltet '%s' blev ikke fundet i klassen"
+
+#~ msgid "abstract method in non-abstract class"
+#~ msgstr "abstrakt metode i ikke-abstrakt klasse"
+
+#~ msgid "non-static method '%s' overrides static method"
+#~ msgstr "ikke-statisk metode '%s' overskriver statisk metode"
+
+#~ msgid "In %s: overlapped variable and exception ranges at %d"
+#~ msgstr "I %s: overlappende variabel- og undtagelsesintervaller ved %d"
+
+#~ msgid "bad type in parameter debug info"
+#~ msgstr "ugyldig type i parameterfejlanalyseringsinfo"
+
+#~ msgid "bad PC range for debug info for local `%s'"
+#~ msgstr "ugyldig PC-interval for fejlanalyseringsinfo for lokal '%s'"
+
+#~ msgid "stack underflow - dup* operation"
+#~ msgstr "stakunderlb - dup*-operation"
+
+#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+#~ msgstr "reference '%s' er tvetydig: den optrder i grnsefladen '%s' og grnsefladen '%s'"
+
+#~ msgid "field `%s' not found"
+#~ msgstr "feltet '%s' ikke fundet"
+
+#~ msgid "ret instruction not implemented"
+#~ msgstr "ret-instruktion ikke implementeret"
+
+#~ msgid "method '%s' not found in class"
+#~ msgstr "metoden '%s' ikke fundet i klassen"
+
+#~ msgid "failed to find class '%s'"
+#~ msgstr "kunne ikke finde klassen '%s'"
+
+#~ msgid "class '%s' has no method named '%s' matching signature '%s'"
+#~ msgstr "klassen '%s' har ingen metode ved navn '%s' der passer med signaturen '%s'"
+
+#~ msgid "invokestatic on non static method"
+#~ msgstr "invokestatic p en ikke-statisk metode"
+
+#~ msgid "invokestatic on abstract method"
+#~ msgstr "invokestatic p en abstrakt metode"
+
+#~ msgid "invoke[non-static] on static method"
+#~ msgstr "invoke[non-static] p en statisk metode"
+
+#~ msgid "missing field '%s' in '%s'"
+#~ msgstr "manglende felt '%s' i '%s'"
+
+#~ msgid "mismatching signature for field '%s' in '%s'"
+#~ msgstr "signatur passer ikke med feltet '%s' i '%s'"
+
+#~ msgid "assignment to final field `%s' not in field's class"
+#~ msgstr "tildeling til endeligt felt '%s' er ikke i feltets klasse"
+
+#~ msgid "assignment to final static field `%s' not in class initializer"
+#~ msgstr "tildeling til endeligt statisk felt '%s' er ikke i klassens klargring"
+
+#~ msgid "assignment to final field `%s' not in constructor"
+#~ msgstr "tildeling til endeligt felt '%s' er ikke i konstruktionsfunktion"
+
+#~ msgid "can't expand %s"
+#~ msgstr "kan ikke udfolde %s"
+
+#~ msgid "invalid PC in line number table"
+#~ msgstr "ugyldig PC i linjetalstabel"
+
+#~ msgid "unreachable bytecode from %d to before %d"
+#~ msgstr "kan ikke n bytekode fra %d til fr %d"
+
+#~ msgid "unreachable bytecode from %d to the end of the method"
+#~ msgstr "kan ikke n bytekode fra %d til slutningen af metoden"
+
+#~ msgid "unrecogized wide sub-instruction"
+#~ msgstr "ukendt bred underinstruktion"
+
+#~ msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+#~ msgstr "kildekodefilen for klassen '%s' er nyere end dens tilsvarende klassefil; kildekodefilen '%s' benyttet i stedet"
+
+#~ msgid "bad string constant"
+#~ msgstr "ugyldig strengkonstant"
+
+#~ msgid "bad value constant type %d, index %d"
+#~ msgstr "ugyldig vrdikonstanttype %d, indeks %d"
+
+#~ msgid "can't reopen %s"
+#~ msgstr "kan ikke genbne %s"
+
+#~ msgid "can't close %s"
+#~ msgstr "kan ikke lukke %s"
+
+#~ msgid "cannot find file for class %s"
+#~ msgstr "kan ikke finde filen for klassen %s"
+
+#~ msgid "not a valid Java .class file"
+#~ msgstr "ikke en gyldig Java .class-fil"
+
+#~ msgid "error while parsing constant pool"
+#~ msgstr "fejl ved tolkning af konstant omrde"
+
+#~ msgid "error in constant pool entry #%d\n"
+#~ msgstr "fejl i konstantomrdelement nr. %d\n"
+
+#~ msgid "reading class %s for the second time from %s"
+#~ msgstr "lser klassen %s for anden gang fra %s"
+
+#~ msgid "error while parsing fields"
+#~ msgstr "fejl ved tolkning af felter"
+
+#~ msgid "error while parsing methods"
+#~ msgstr "fejl ved tolkning af metoder"
+
+#~ msgid "error while parsing final attributes"
+#~ msgstr "fejl ved tolkning af endelige egenskaber"
+
+#~ msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+#~ msgstr "det 'java.lang.Object' som blev fundet i '%s' havde ikke den specielle nullngdes egenskab 'gnu.gcj.gcj-compiled'. Dette betyder som regel at din klassesti er angivet forkert. Prv 'info gcj \"Input Options\"' for at se en infoside der beskriver hvordan man angiver klassestien"
+
+#~ msgid "missing Code attribute"
+#~ msgstr "manglende Code-egenskab"
+
+#~ msgid "source file seen twice on command line and will be compiled only once"
+#~ msgstr "kildekodefil angivet to gange i kommandolinjen og vil kun blive oversat n gang"
+
+#~ msgid "no input file specified"
+#~ msgstr "ingen inddatafiler angivet"
+
+#~ msgid "can't close input file %s"
+#~ msgstr "kan ikke lukke inddatafilen %s"
+
+#~ msgid "bad zip/jar file %s"
+#~ msgstr "delagt zip/jar-fil %s"
+
+#~ msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+#~ msgstr "intern fejl i generate_bytecode_insn - trkode er ikke implementeret: %s"
+
+#~ msgid "field initializer type mismatch"
+#~ msgstr "typen af startvrdien for feltet passer ikke"
+
+#~ msgid "can't create directory %s"
+#~ msgstr "kan ikke oprette kataloget %s"
+
+#~ msgid "can't create %s"
+#~ msgstr "kan ikke oprette %s"
+
+#~ msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+#~ msgstr "kun n af '--print-main', '--list-class' og '--complexity' tilladt"
+
+#~ msgid "can't open output file `%s'"
+#~ msgstr "kan ikke bne uddatafilen '%s'"
+
+#~ msgid "file not found `%s'"
+#~ msgstr "filen '%s' blev ikke fundet"
+
+#~ msgid "can't specify `-D' without `--main'\n"
+#~ msgstr "kan ikke angive '-D' uden '--main'\n"
+
+#~ msgid "`%s' is not a valid class name"
+#~ msgstr "'%s' er et ugyldigt klassenavn"
+
+#~ msgid "--resource requires -o"
+#~ msgstr "--resource pkrver -o"
+
+#~ msgid "warning: already-compiled .class files ignored with -C"
+#~ msgstr "advarsel: allerede oversatte .class-filer ignoreret med -C"
+
+#~ msgid "cannot specify both -C and -o"
+#~ msgstr "-C og -o er indbyrdes uforenelige"
+
+#~ msgid "cannot create temporary file"
+#~ msgstr "kan ikke oprette midlertidig fil"
+
+#~ msgid "using both @FILE with multiple files not implemented"
+#~ msgstr "brug af @FILE med flere filer er ikke implementeret"
+
+#~ msgid "cannot specify `main' class when not linking"
+#~ msgstr "kan ikke angive 'main'-klassen nr der ikke sammenkdes"
+
+#~ msgid "can't do dependency tracking with input from stdin"
+#~ msgstr "kan ikke udfre afhngighedsflgning med inddata fra standard-ind"
+
+#~ msgid "couldn't determine target name for dependency tracking"
+#~ msgstr "kunne ikke bestemme mlnavn for afhngighedsflgning"
+
+#~ msgid ""
+#~ "unknown encoding: `%s'\n"
+#~ "This might mean that your locale's encoding is not supported\n"
+#~ "by your system's iconv(3) implementation. If you aren't trying\n"
+#~ "to use a particular encoding for your input file, try the\n"
+#~ "`--encoding=UTF-8' option"
+#~ msgstr ""
+#~ "ukendt kodning: '%s'\n"
+#~ "Dette betyder muligvis at kodningen fra dine regionaldata ikke\n"
+#~ "understttes af dit systems iconv(3)-implementering. Hvis du \n"
+#~ "ikke nske at bruge en bestemt kodning for dine inddatafiler, \n"
+#~ "s prv tilvalget '--encoding=UTF-8'"
+
+#~ msgid "can't mangle %s"
+#~ msgstr "kan ikke sammenstte %s"
+
+#~ msgid "internal error - invalid Utf8 name"
+#~ msgstr "intern fejl - ugyldigt UTF-8-navn"
+
+#~ msgid "Missing term"
+#~ msgstr "Manglende term"
+
+#~ msgid "';' expected"
+#~ msgstr "';' forventet"
+
+#~ msgid "Missing name"
+#~ msgstr "Manglende navn"
+
+#~ msgid "'*' expected"
+#~ msgstr "'*' forventet"
+
+#~ msgid "Class or interface declaration expected"
+#~ msgstr "Klasse- eller grnsefladeerklring forventet"
+
+#~ msgid "Missing class name"
+#~ msgstr "Manglende klassenavn"
+
+#~ msgid "'{' expected"
+#~ msgstr "'{' forventet"
+
+#~ msgid "Missing super class name"
+#~ msgstr "Manglende superklassenavn"
+
+#~ msgid "Missing interface name"
+#~ msgstr "Manglende grnsefladenavn"
+
+#~ msgid "Missing variable initializer"
+#~ msgstr "Manglende variabelstartvrdi"
+
+#~ msgid "Invalid declaration"
+#~ msgstr "Ugyldig erklring"
+
+#~ msgid "']' expected"
+#~ msgstr "']' forventet"
+
+#~ msgid "Unbalanced ']'"
+#~ msgstr "Uafbalanceret ']'"
+
+#~ msgid "Invalid method declaration, method name required"
+#~ msgstr "Ugyldig metodeerklring, metodenavn pkrvet"
+
+#~ msgid "Identifier expected"
+#~ msgstr "Kaldenavn forventet"
+
+#~ msgid "Invalid method declaration, return type required"
+#~ msgstr "Ugyldig metodeerklring, returtype pkrvet"
+
+#~ msgid "')' expected"
+#~ msgstr "')' forventet"
+
+#~ msgid "Missing formal parameter term"
+#~ msgstr "Manglende formel parameterterm"
+
+#~ msgid "Missing identifier"
+#~ msgstr "Manglende kaldenavn"
+
+#~ msgid "Missing class type term"
+#~ msgstr "Manglende klassetypeterm"
+
+#~ msgid "Invalid interface type"
+#~ msgstr "Ugyldig grnsefladetype"
+
+#~ msgid "':' expected"
+#~ msgstr "':' forventet"
+
+#~ msgid "Invalid expression statement"
+#~ msgstr "Ugyldig udtryksstning"
+
+#~ msgid "'(' expected"
+#~ msgstr "'(' forventet"
+
+#~ msgid "Missing term or ')'"
+#~ msgstr "Manglende term eller ')'"
+
+#~ msgid "Missing or invalid constant expression"
+#~ msgstr "Manglende eller ugyldigt konstant udtryk"
+
+#~ msgid "Missing term and ')' expected"
+#~ msgstr "Manglende term eller ')' forventet"
+
+#~ msgid "Invalid control expression"
+#~ msgstr "Ugyldigt kontroludtryk"
+
+#~ msgid "Invalid update expression"
+#~ msgstr "Ugyldigt opdateringsudtryk"
+
+#~ msgid "Invalid init statement"
+#~ msgstr "Ugyldig klargringsstning"
+
+#~ msgid "Missing term or ')' expected"
+#~ msgstr "Manglende term eller ')' forventet"
+
+#~ msgid "'class' or 'this' expected"
+#~ msgstr "'class' eller 'this' forventet"
+
+#~ msgid "'class' expected"
+#~ msgstr "'class' forventet"
+
+#~ msgid "')' or term expected"
+#~ msgstr "')' eller term forventet"
+
+#~ msgid "'[' expected"
+#~ msgstr "'[' forventet"
+
+#~ msgid "Field expected"
+#~ msgstr "Felt forventet"
+
+#~ msgid "Missing term and ']' expected"
+#~ msgstr "Manglende term og ']' forventet"
+
+#~ msgid "']' expected, invalid type expression"
+#~ msgstr "']' forventet, ugyldigt typeudtryk"
+
+#~ msgid "Invalid type expression"
+#~ msgstr "Ugyldigt typeudtryk"
+
+#~ msgid "Invalid reference type"
+#~ msgstr "Ugyldig referencetype"
+
+#~ msgid "Constructor invocation must be first thing in a constructor"
+#~ msgstr "Konstruktionsfunktionskald skal vre det frste i en konstruktionsfunktion"
+
+#~ msgid "Only constructors can invoke constructors"
+#~ msgstr "Kun konstruktionsfunktioner kan kalde konstruktionsfunktioner"
+
+#~ msgid ": `%s' JDK1.1(TM) feature"
+#~ msgstr ": '%s' JDK1.1(TM)-facilitet"
+
+#~ msgid ""
+#~ "%s.\n"
+#~ "%s"
+#~ msgstr ""
+#~ "%s.\n"
+#~ "%s"
+
+#~ msgid "malformed .zip archive in CLASSPATH: %s"
+#~ msgstr "ugyldigt udformet .zip-arkiv i CLASSPATH: %s"
+
+#~ msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+#~ msgstr "Kan ikke finde standardpakken '%s'. Kontrollr CLASSPATH-miljvariablen og tilgangen til arkiverne"
+
+#~ msgid "missing static field `%s'"
+#~ msgstr "manglende statisk felt '%s'"
+
+#~ msgid "not a static field `%s'"
+#~ msgstr "ikke et statisk felt '%s'"
+
+#~ msgid "No case for %s"
+#~ msgstr "Ingen case for %s"
+
+#~ msgid "unregistered operator %s"
+#~ msgstr "ikke-registreret operator %s"
+
+#~ msgid "junk at end of signature string"
+#~ msgstr "ragelse i slutningen signaturstreng"
+
+#~ msgid "bad pc in exception_table"
+#~ msgstr "ugyldig pc i exception_table"
+
+#~ msgid "exception handler inside code that is being protected"
+#~ msgstr "undtagelseshndtering inden i kode der bliver beskyttet"
+
+#~ msgid "unknown opcode %d@pc=%d during verification"
+#~ msgstr "ukendt kode %d@pc=%d under verifikation"
+
+#~ msgid "verification error at PC=%d"
+#~ msgstr "verifikationsfejl ved PC=%d"
+
+#~ msgid "Disable automatic array bounds checking"
+#~ msgstr "Deaktivr automatisk tabelgrnsekontrollering"
+
+#~ msgid "Disable assignability checks for stores into object arrays"
+#~ msgstr "Deaktivr tildelingstjek for lagringer i objekttabeller"
+
+#~ msgid "Assume native functions are implemented using JNI"
+#~ msgstr "Antag at indfdte funktioner er implementeret vha. JNI"
+
+#~ msgid "Replace system path"
+#~ msgstr "Erstat systemsti"
+
+#~ msgid "Set class path"
+#~ msgstr "Angiv klassesti"
+
+#~ msgid "Set class path (deprecated: use --classpath instead)"
+#~ msgstr "Angiv klassesti (forldet: benyt --classpath i stedet)"
+
+#~ msgid "Choose class whose main method should be used"
+#~ msgstr "Vlg klasse hvis main-metode skal bruges"
+
+#~ msgid "Choose input encoding (default comes from locale)"
+#~ msgstr "Vlg inddatakodning (standardvrdi kommer fra regionalindstillinger)"
+
+#~ msgid "Add directory to class path"
+#~ msgstr "Tilfj katalog til klassesti"
+
+#~ msgid "Directory where class files should be written"
+#~ msgstr "Katalog som klassefiler skrives i"
+
+#~ msgid "Warn if modifiers are specified when not necessary"
+#~ msgstr "Advar hvis modifikationer angives nr det ikke er ndvendigt"
+
+#~ msgid "Warn if deprecated empty statements are found"
+#~ msgstr "Advar hvis forldede tomme stninger bliver fundet"
+
+#~ msgid "Warn if .class files are out of date"
+#~ msgstr "Advar hvis .class-filer er forldede"
+
+#~ msgid "Always check for non gcj generated classes archives"
+#~ msgstr "Kontrollr altid for ikke-GCJ-genererede klassearkiver"
+
+#~ msgid "Never optimize static class initialization code"
+#~ msgstr "Optimr aldrig statiske klassers klargringskode"
+
+#~ msgid "Use offset tables for virtual method calls"
+#~ msgstr "Benyt afststabeller til virtuelle metodekald"
+
+#~ msgid "object does not conform to the `%s' protocol"
+#~ msgstr "objekt overholder ikke protokollen '%s'"
+
+#~ msgid "class `%s' does not implement the `%s' protocol"
+#~ msgstr "klassen '%s' implementerer ikke protokollen '%s'"
+
+#~ msgid "`%s' cannot be statically allocated"
+#~ msgstr "'%s' kan ikke allokeres statisk"
+
+#~ msgid "unexpected type for `id' (%s)"
+#~ msgstr "uventet type for 'id' (%s)"
+
+#~ msgid "undefined type `id', please import <objc/objc.h>"
+#~ msgstr "typen 'id' er ikke defineret, importr venligst <objc/objc.h>"
+
+#~ msgid "protocol `%s' has circular dependency"
+#~ msgstr "protokollen '%s' har cirkulr afhngighed"
+
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr "kan ikke finde protokolerklringen af '%s'"
+
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr "kan ikke finde grnsefladeerklringen af '%s'"
+
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr "kan ikke finde referencemrket for klassen '%s'"
+
+#~ msgid "creating selector for non existant method %s"
+#~ msgstr "opretter vlger for ikke-eksisterende metode '%s'"
+
+#~ msgid "cannot find class `%s'"
+#~ msgstr "kan ikke finde klassen '%s'"
+
+#~ msgid "class `%s' already exists"
+#~ msgstr "klassen '%s' eksisterer allerede"
+
+#~ msgid "cannot find interface declaration for `%s', superclass of `%s'"
+#~ msgstr "kan ikke grnsefladeerklringen af '%s', superklasse til '%s'"
+
+#~ msgid "circular inheritance in interface declaration for `%s'"
+#~ msgstr "cirkulr nedarvning i interface-erklringen af '%s'"
+
+#~ msgid "inconsistent instance variable specification"
+#~ msgstr "inkonsistent instansvariabelangivelse"
+
+#~ msgid "can not use an object as parameter to a method\n"
+#~ msgstr "kan ikke benytte et objekt som parameter til en metode\n"
+
+#~ msgid "multiple declarations for method `%s'"
+#~ msgstr "mere end n erklring af metoden '%s'"
+
+#~ msgid "invalid receiver type `%s'"
+#~ msgstr "ugyldig modtagertype '%s'"
+
+#~ msgid "`%s' does not respond to `%s'"
+#~ msgstr "'%s' svarer ikke p '%s'"
+
+#~ msgid "no super class declared in interface for `%s'"
+#~ msgstr "ingen superklasse erklret i grnsefladen for '%s'"
+
+#~ msgid "cannot find class (factory) method"
+#~ msgstr "kan ikke finde klasse(fabriks)metode"
+
+#~ msgid "return type for `%s' defaults to id"
+#~ msgstr "returtypen for '%s' fr standardvrdien id"
+
+#~ msgid "method `%s' not implemented by protocol"
+#~ msgstr "metoden '%s' er ikke implementeret af protokollen"
+
+#~ msgid "return type defaults to id"
+#~ msgstr "returtype fr standardvrdien id"
+
+#~ msgid "cannot find method"
+#~ msgstr "kan ikke finde metode"
+
+#~ msgid "undeclared selector `%s'"
+#~ msgstr "uerklret vlger '%s'"
+
+#~ msgid "instance variable `%s' accessed in class method"
+#~ msgstr "instansvariablen '%s' tilget i klassemetode"
+
+#~ msgid "duplicate definition of class method `%s'"
+#~ msgstr "mere end n definition af klassemetoden '%s'"
+
+#~ msgid "duplicate declaration of class method `%s'"
+#~ msgstr "mere end n erklring af klassemetoden '%s'"
+
+#~ msgid "duplicate definition of instance method `%s'"
+#~ msgstr "mere end n definition af instansmetoden '%s'"
+
+#~ msgid "duplicate declaration of instance method `%s'"
+#~ msgstr "mere end n erklring af instansmetoden '%s'"
+
+#~ msgid "duplicate interface declaration for category `%s(%s)'"
+#~ msgstr "mere end n grnsefladeerklring af kategorien '%s(%s)'"
+
+#~ msgid "instance variable `%s' is declared private"
+#~ msgstr "instansvariablen '%s' er erklret privat"
+
+#~ msgid "instance variable `%s' is declared %s"
+#~ msgstr "instansvariablen '%s' er erklret '%s'"
+
+#~ msgid "static access to object of type `id'"
+#~ msgstr "statisk tilgang til objekt af typen 'id'"
+
+#~ msgid "incomplete implementation of class `%s'"
+#~ msgstr "ufuldstndig implementering af klassen '%s'"
+
+#~ msgid "incomplete implementation of category `%s'"
+#~ msgstr "ufuldstndig implementering af kategorien '%s'"
+
+#~ msgid "method definition for `%c%s' not found"
+#~ msgstr "metodedefinitionen for '%c%s' ikke fundet"
+
+#~ msgid "%s `%s' does not fully implement the `%s' protocol"
+#~ msgstr "%s '%s' implementerer ikke helt protokollen '%s'"
+
+#~ msgid "`@end' missing in implementation context"
+#~ msgstr "'@end' mangler i implementationskontekst"
+
+#~ msgid "reimplementation of class `%s'"
+#~ msgstr "omimplementering af klassen '%s'"
+
+#~ msgid "conflicting super class name `%s'"
+#~ msgstr "modstridende superklassenavn '%s'"
+
+#~ msgid "duplicate interface declaration for class `%s'"
+#~ msgstr "mere end n grnsefladeerklring af klassen '%s'"
+
+#~ msgid "duplicate declaration for protocol `%s'"
+#~ msgstr "mere end n erklring af protokollen '%s'"
+
+#~ msgid "[super ...] must appear in a method context"
+#~ msgstr "[super ...] skal optrde i en metodekontekst"
+
+#~ msgid "potential selector conflict for method `%s'"
+#~ msgstr "potentiel vlgerkonflikt for metoden '%s'"
+
+#~ msgid "`@end' must appear in an implementation context"
+#~ msgstr "'@end' skal optrde i en implementationskontekst"
+
+#~ msgid "method definition not in class context"
+#~ msgstr "metodedefinitionen optrder ikke i en klassekontekst"
+
+#~ msgid "Dump decls to a .decl file"
+#~ msgstr "Udskriv erklringer i en .decl-fil"
+
+#~ msgid "Generate code for GNU runtime environment"
+#~ msgstr "Generr kode til GNU-krselmilj"
+
+#~ msgid "Generate code for NeXT runtime environment"
+#~ msgstr "Generr kode til NeXT-krselmilj"
+
+#~ msgid "Warn if a selector has multiple methods"
+#~ msgstr "Advar hvis en vlger har flere metoder"
+
+#~ msgid "Do not warn if inherited methods are unimplemented"
+#~ msgstr "Advar ikk hvis nedarvede metoder ikke implementeres"
+
+#~ msgid "Generate C header of platform specific features"
+#~ msgstr "Generr C-inkluderingsfil med platformspecifikke faciliteter"
+
+#~ msgid "Specify the name of the class for constant strings"
+#~ msgstr "Angiv navnet p klassen til konstante strenge"
+
+#~ msgid "(debug) trace parsing process"
+#~ msgstr "(fejlretning) flg fortolkningsprocessen"
+
+#~ msgid "(debug) trace lexical analysis"
+#~ msgstr "(fejlretning) flg lexikalsk analyse"
+
+#~ msgid "-current_version only allowed with -dynamiclib"
+#~ msgstr "-current_version er kun tilladt med -dynamiclib"
+
+#~ msgid "-install_name only allowed with -dynamiclib"
+#~ msgstr "-install_name er kun tilladt med -dynamiclib"
+
+#~ msgid "-bundle not allowed with -dynamiclib"
+#~ msgstr "-bundle er ikke tilladt med -dynamiclib"
+
+#~ msgid "-bundle_loader not allowed with -dynamiclib"
+#~ msgstr "-bundle_loader er ikke tilladt med -dynamiclib"
+
+#~ msgid "-client_name not allowed with -dynamiclib"
+#~ msgstr "-client_name er ikke tilladt med -dynamiclib"
+
+#~ msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+#~ msgstr "-force_cpusubtype_ALL er ikke tilladt med -dynamiclib"
+
+#~ msgid "-force_flat_namespace not allowed with -dynamiclib"
+#~ msgstr "-force_flat_namespace er ikke tilladt med -dynamiclib"
+
+#~ msgid "-keep_private_externs not allowed with -dynamiclib"
+#~ msgstr "-keep_private_externs er ikke tilladt med -dynamiclib"
+
+#~ msgid "-private_bundle not allowed with -dynamiclib"
+#~ msgstr "-private_bundle er ikke tilladt med -dynamiclib"
+
+#~ msgid "GNU C does not support -C without using -E"
+#~ msgstr "GNU C understtter ikke -C uden -E"
+
+#~ msgid "GNU C does not support -CC without using -E"
+#~ msgstr "GNU C understtter ikke -CC uden -E"
+
+#~ msgid "`-p' not supported; use `-pg' and gprof(1)"
+#~ msgstr "'-p' understttes ikke; brug '-pg' og gprof(1)"
+
+#~ msgid "may not use both -m32 and -m64"
+#~ msgstr "-m32 og -m64 er indbyrdes uforenelige"
+
+#~ msgid "The -shared option is not currently supported for VAX ELF."
+#~ msgstr "Tilvalget -shared understttes i jeblikket ikke for VAX ELF."
+
+#~ msgid "profiling not supported with -mg\n"
+#~ msgstr "profilgenerering understttes ikke med -mg\n"
+
+#~ msgid "-pipe is not supported"
+#~ msgstr "-pipe understttes ikke"
+
+#~ msgid "may not use both -EB and -EL"
+#~ msgstr "kan ikke bruge bde -EB og -EL"
+
+#~ msgid "-pg and -fomit-frame-pointer are incompatible"
+#~ msgstr "-pg og -fomit-frame-pointer er indbyrdes uforenelige"
+
+#~ msgid "mno-cygwin and mno-win32 are not compatible"
+#~ msgstr "-mno-cygwin og -mnowin32 er indbyrdes uforenelige"
+
+#~ msgid "shared and mdll are not compatible"
+#~ msgstr "shared og mdll er indbyrdes uforenelige"
+
+#~ msgid "-E required when input is from standard input"
+#~ msgstr "-E pkrvet nr inddata kommer fra standardind"
+
+#~ msgid "compilation of header file requested"
+#~ msgstr "oversttelse af inkluderingsfil udbedt"
+
+#~ msgid " conflicting code gen style switches are used"
+#~ msgstr " konfliktende kodegenereringstilvalg er benyttet"
+
+#~ msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+#~ msgstr "-pg eller -p og -fomit-frame-pointer er indbyrdes uforenelige"
+
+#~ msgid "choose either big or little endian, not both"
+#~ msgstr "vlg enten stor- eller lilleendet, ikke begge"
+
+#~ msgid "choose either m340 or m210 not both"
+#~ msgstr "vlg enten m340 eller m210, ikke begge"
+
+#~ msgid "the m210 does not have little endian support"
+#~ msgstr "m210 har ikke understttelse for lilleendet"
+
+#~ msgid "-mapcs-26 and -mapcs-32 may not be used together"
+#~ msgstr "-mapcs-26 og -mapcs-32 kan ikke bruges p samme tid"
+
+#~ msgid "-msoft-float and -mhard_float may not be used together"
+#~ msgstr "-msoft-float og -mhard_float kan ikke bruges p samme tid"
+
+#~ msgid "-mbig-endian and -mlittle-endian may not be used together"
+#~ msgstr "-mbig-endian og -mlittle-endian kan ikke bruges p samme tid"
+
+#~ msgid "-mhard-float not supported"
+#~ msgstr "-mhard-float understttes ikke"
+
+#~ msgid "-msingle-float and -msoft-float can not both be specified"
+#~ msgstr "-msingle-float og -msoft-float er indbyrdes uforenelige"
+
+#~ msgid "-c or -S required for Ada"
+#~ msgstr "-c eller -S krves til Ada"
+
+#~ msgid "-fjni and -femit-class-files are incompatible"
+#~ msgstr "-fjni og -femit-class-files er indbyrdes uforenelige"
+
+#~ msgid "-fjni and -femit-class-file are incompatible"
+#~ msgstr "-fjni og -femit-class-file er indbyrdes uforenelige"
+
+#~ msgid "-femit-class-file should used along with -fsyntax-only"
+#~ msgstr "-femit-class-file skal bruges sammen med -fsyntax-only"
+
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic er ikke gyldig sammen med -mcoff"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC er ikke gyldig sammen med -mcoff"
+
+#~ msgid "__alignof__ applied to an incomplete type"
+#~ msgstr "__alignof__ benyttet p en ufuldstndig type"
+
+#~ msgid "-traditional is deprecated and may be removed"
+#~ msgstr "-traditional er forldet og kan blive fjernet"
+
+#~ msgid "unknown C standard `%s'"
+#~ msgstr "ukendt C-standard '%s'"
+
+#~ msgid "type of external `%s' is not global"
+#~ msgstr "typen af den eksterne '%s' er ikke global"
+
+#~ msgid "typedef `%s' is initialized"
+#~ msgstr "typedef '%s' bliver tildelt en startvrdi"
+
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "unavngivne felter af andre typer end struct eller union er ikke tilladt"
+
+#~ msgid "null format string"
+#~ msgstr "formateringsstreng er nul"
+
+#~ msgid "ignoring #pragma %s"
+#~ msgstr "ignorerer #pragma: %s"
+
+#~ msgid "both 'f' and 'l' suffixes on floating constant"
+#~ msgstr "bde 'f'- og 'l'-endelser i kommatalskonstant"
+
+#~ msgid "floating point number exceeds range of '%s'"
+#~ msgstr "kommatal overskrider intervallet for '%s"
+
+#~ msgid "decimal point in exponent - impossible!"
+#~ msgstr "decimalkomma i eksponent - umuligt!"
+
+#~ msgid "underscore in number"
+#~ msgstr "understreg i tal"
+
+#~ msgid "numeric constant with no digits"
+#~ msgstr "talkonstant uden cifre"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "talkonstant indeholder cifre der ligger ud over grundtallet"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "kommatalskonstant m ikke skrives med grundtal 16"
+
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "mere end n 'f'-endelse i kommatalskonstant"
+
+#~ msgid "traditional C rejects the 'f' suffix"
+#~ msgstr "traditionel C tillader ikke endelsen 'f'"
+
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "mere end n 'l'-endelse i kommatalskonstant"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "traditionel C tillader ikke endelsen 'l'"
+
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "mere end n 'i'- eller 'j'-endelse i kommatalskonstant"
+
+#~ msgid "ISO C forbids imaginary numeric constants"
+#~ msgstr "ISO C forbyder imaginre talkonstanter"
+
+#~ msgid "floating constant out of range"
+#~ msgstr "kommatalskonstant er uden for det gyldige interval"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "kommatal overskrider intervallet for 'double'"
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "to 'u'-endelser i heltalskonstant"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "traditionel C tillader ikke 'u'-endelsen"
+
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "tre 'l'-endelser i heltalskonstant"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul' er ikke en gyldig heltalsendelse"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr "'Ll' og 'lL' er ikke gyldige heltalsendelser"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "mere end n 'i'- eller 'j'-endelse i heltalskonstant"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "ugyldig endelse i heltalskonstant"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "heltalskonstant er for stor til denne konfiguration af overstteren - afkortet til %d bit"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "bredden af heltalskonstant skifter med -traditional"
+
+#~ msgid "integer constant is unsigned in ISO C, signed with -traditional"
+#~ msgstr "heltalskonstant er unsigned i ISO C, signed med -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "bredden af heltalskonstant kan skifte p andre systemer med -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "heltalskonstant er strre end den maksimale vrdi for %s"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "en unsigned long long int"
+
+#~ msgid "a long long int"
+#~ msgstr "en long long int"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "en unsigned long int"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "decimalkonstant er s stor at den er unsigned"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "kompleks heltalskonstant er for bred til 'complex int'"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "heltalskonstant er strre end den maksimale vrdi for dens type"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "manglende mellemrum efter tallet '%.*s'"
+
+#~ msgid "ISO C does not permit use of `varargs.h'"
+#~ msgstr "ISO C tillader ikke brug af 'varargs.h'"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "lagringsklasseanvisning i tabelerklring"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof benyttet p en funktionstype"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof benyttet p en void-type"
+
+#~ msgid "sizeof applied to an incomplete type"
+#~ msgstr "sizeof benyttet p en ufuldstndig type"
+
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "variabelafst bliver viderebragt delvis i stak og i register"
+
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "variabelstrrelse bliver viderebragt delvis i stak og i register"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "kommatal er ikke tilladt i #if"
+
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "traditionel C forbyder 'U'-endelsen"
+
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "for mange 'l'-endelser i heltalskonstant"
+
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "heltalskonstanten indeholder cifre der er strre end grundtallet"
+
+#~ msgid "integer constant out of range"
+#~ msgstr "heltalskonstanten er uden for det gyldige interval"
+
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "strengkonstanter er ikke tilladt i #if"
+
+#~ msgid "missing binary operator"
+#~ msgstr "manglende binr operator"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operatoren '%s' har ikke nogen venstre operand"
+
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "skifter sgeorden for systemkataloget \"%s\""
+
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " da det er det samme som ikke-system-kataloget \"%s\""
+
+#~ msgid " as it has already been specified as a non-system directory"
+#~ msgstr " da det allerede er blevet angivet som et ikke-system-katalog"
+
+#~ msgid "I/O error on output"
+#~ msgstr "I/O-fejl p uddata"
+
+#~ msgid "argument missing after %s"
+#~ msgstr "en parameter mangler efter %s"
+
+#~ msgid "number missing after %s"
+#~ msgstr "et tal mangler efter %s"
+
+#~ msgid "target missing after %s"
+#~ msgstr "et ml mangler efter %s"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
+
+#~ msgid ""
+#~ " -pedantic Issue all warnings demanded by strict ISO C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ msgstr ""
+#~ " -pedantic Fremkom med alle advarsler pkrvet for nje ISO C\n"
+#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
+#~ " -traditional Iagttag opfrsel som en K&R-prprocessor\n"
+#~ " -trigraphs Understt ANSI C-trigrafer\n"
+#~ " -lang-c Antag at inddata er C\n"
+#~ " -lang-c89 Antag at inddata er C89\n"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Antag at inddata er C++\n"
+#~ " -lang-cobjc Antag at inddata er Objective C\n"
+#~ " -lang-cobjc++ Antag at inddata er Objective C++\n"
+#~ " -lang-asm Antag at inddata er maskinkode\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "muligvis begyndelsen af uafsluttet strengkonstant"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "flerlinjers strengkonstanter er forldede"
+
+#~ msgid "the meaning of '\\%c' varies with -traditional"
+#~ msgstr "betydningen af '\\%c' skifter med -traditional"
+
+#~ msgid "the meaning of '\\a' varies with -traditional"
+#~ msgstr "betydningen af '\\a' skifter med -traditional"
+
+#~ msgid "the meaning of '\\x' varies with -traditional"
+#~ msgstr "betydningen af '\\x' skifter med -traditional"
+
+#~ msgid "\"%s\" cannot be used as a macro name"
+#~ msgstr "\"%s\" kan ikke bruges som et makronavn"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "direktiver m ikke optrde inden i en makroparameter"
+
+#~ msgid "invalid option %s"
+#~ msgstr "ugyldigt tilvalg %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: advarsel: "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: advarsel: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr "desvrre, ikke implementeret: "
+
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr "Intern overstterfejl i %s ved %s:%d."
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "der mangler en parameter til '-b'"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "der mangler en parameter til '-V'"
+
+#~ msgid "invalid version number format"
+#~ msgstr "ugyldigt versionsnummerformat"
+
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr "indholdet af .da-filen er udtmt for tidligt\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "indholdet af .da-filen ikke udtmt\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% af %d kildekodelinjer udfrt i funktionen %s\n"
+
+#~ msgid "No executable source lines in function %s\n"
+#~ msgstr "Ingen krbare kildelinjer i funktionen %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udfrt i funktionen %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger valgt mindst n gang i funktionen %s\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Ingen forgreninger i funktionen %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%% af %d kald udfrt i funktionen %s\n"
+
+#~ msgid "No calls in function %s\n"
+#~ msgstr "Ingen kald i funktionen %s\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in file %s\n"
+#~ msgstr "%6.2f%% af %d kildekodelinjer udfrt i filen %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in file %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger udfrt i filen %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in file %s\n"
+#~ msgstr "%6.2f%% af %d forgreninger valgt mindst n gang i filen %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in file %s\n"
+#~ msgstr "%6.2f%% af %d kald udfrt i filen %s\n"
+
+#~ msgid "call %d returns = %s\n"
+#~ msgstr "kald %d returnerer = %s\n"
+
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "kald %d returnerer = %s%%\n"
+
+#~ msgid "branch %d taken = %s\n"
+#~ msgstr "forgrening %d valgt = %s\n"
+
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "forgrening %d valgt = %s%%\n"
+
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr "indholdet af .da-filen er udtmt for tidligt"
+
+#~ msgid ".da file contents not exhausted"
+#~ msgstr "indholdet af .da-filen ikke udtmt"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "konvertering fra NaN til int"
+
+#~ msgid "floating point overflow"
+#~ msgstr "kommatalsoverlb"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "overlb ved afkortelse til heltal"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "overlb ved afkortelse til heltal uden fortegn"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: parameterdomnefejl"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: funktionssingularitet"
+
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: overlbsintervalfejl"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: underlbsintervalfejl"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: samlet tab af prcision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: delvist tab af prcision"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - producerer operation"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Lad som om vrten og mlet bruger samme kommatalsformat"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Overst henvisningsvariabler som tretupler: vrdi, basis og slut"
+
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "Forfrem ikke float til double hvis -traditional benyttes"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Forsg at understtte traditionel K&R C"
+
+#~ msgid "internal error: %s"
+#~ msgstr "intern fejl: %s"
+
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "krydsspring deaktiveret: %d > 1000 basisblokke og %d >= 20 kanter/basisblok"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a Aktivr blokprofilering\n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax Aktivr springprofilering\n"
+
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "profilering virker ikke uden en rammehenvisning"
+
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "kommatal er ikke tilladt i #if-udtryk"
+
+#~ msgid "invalid number in #if expression"
+#~ msgstr "ugyldigt tal i #if-udtryk"
+
+#~ msgid "invalid character constant in #if"
+#~ msgstr "ugyldig tegnkonstant i #if"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "strenge med dobbelte anfrselstegn er ikke tilladte i #if-udtryk"
+
+#~ msgid "invalid token in expression"
+#~ msgstr "ugyldigt symbol udtryk"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "oktal tegnkonstant kan ikke vre i en byte"
+
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr "hexadecimal tegnkonstant kan ikke vre i en byte"
+
+#~ msgid "empty #if expression"
+#~ msgstr "tomt #if-udtryk"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "ragelse efter slutningen af udtryk"
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "makro eller #include-rekursion er for dyb"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "brug: %s [tilvalg] inddata uddata"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional understttes ikke i C++"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional og -ansi er indbyrdes uforenelige"
+
+#~ msgid "filename missing after -i option"
+#~ msgstr "et filnavn mangler efter tilvalget -i"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "et filnavn mangler efter tilvalget -o"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "et ml mangler efter tilvalget %s"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "et filnavn mangler efter tilvalget %s"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "et makronavn mangler efter tilvalget -%c"
+
+#~ msgid "-pedantic and -traditional are mutually exclusive"
+#~ msgstr "-pedantic og -traditional er indbyrdes uforenelige"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs og -traditional er indbyrdes uforenelige"
+
+#~ msgid "directory name missing after -I option"
+#~ msgstr "et katalognavn mangler efter '-I'-tilvalg"
+
+#~ msgid "`/*' within comment"
+#~ msgstr "'/*' i en kommentar"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "uafsluttet #%s-betingelse"
+
+#~ msgid "not in any file?!"
+#~ msgstr "ikke i nogen fil?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr "'defined' skal efterflges af et kaldenavn eller (kaldenavn)"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "cccp-fejl: ugyldig speciel hash-type"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include forventer \"filnavn\" eller <filnavn>"
+
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "der er ingen inkluderingssti at finde %.*s i"
+
+#~ msgid "invalid macro name"
+#~ msgstr "ugyldigt makronavn"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "ugyldigt makronavn '%s'"
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "parameternavn begynder med et ciffer i #define"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "ugyldigt punktueret parameterliste i #define"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "uafsluttet parameterliste i #define"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" omdefineret"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "operatoren # skal efterflges af et makroparameternavn"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "ugyldigt formateret #line-kommando"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "glemmer definitionen af 'defined'"
+
+#~ msgid "undefining `%s'"
+#~ msgstr "glemmer definitionen af '%s'"
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "ekstra tekst i slutningen af direktiv"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif er ikke inde i betingelsesstning"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s ikke inde i betingelsesstning"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else eller #elif efter #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else er ikke inde i betingelsesstning"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "uafbalanceret #endif"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "uafsluttet streng- eller tegnkonstant"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "parametre givet til makroen '%s'"
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "ingen parametre givet til makroen '%s'"
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "kun 1 parameter givet til makroen '%s'"
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "kun %d parametre givet til makroen '%s'"
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "for mange (%d) parametre givet til makroen '%s'"
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "intern fejl i '%s', ved tradcpp:%d\n"
+#~ "Send venligst en komplet fejlrapport.\n"
+#~ "Se %s for instruktioner."
+
+#~ msgid "optimization turned on"
+#~ msgstr "optimeringer slet til"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimeringer slet fra"
+
+#~ msgid "optimization level restored"
+#~ msgstr "optimeringsniveau gendannet"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "Brug VAX-C-justering"
+
+#~ msgid "invalid %%V value"
+#~ msgstr "ugyldig %%V-vrdi"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Generr kode der antager at DW-bitten er sat"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Generr kode der antager at DW-bitten ikke er sat"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Generr kode der bruger byte-skrivninger"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Generr ikke byte-skrivninger"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Brug en lille hukommelsesmodel"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Brug en normal hukommelsesmodel"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Brug en stor hukommelsesmodel"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "Generr 29050-kode"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Generr 29000-kode"
+
+#~ msgid "Use kernel global registers"
+#~ msgstr "Bruge kerneglobale registre"
+
+#~ msgid "Use user global registers"
+#~ msgstr "Bruge brugerglobale registre"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Generr stakkontrolleringskode"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Generr ikke stakkontrolleringskode"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Arbejd rundt om storem-hardwarefejl"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Arbejd ikke rundt om storem-hardwarefejl"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Gem lokale variable i parameterregistre"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "Gem ikke lokale variable i parameterregistre"
+
+#~ msgid "Do not generate multm instructions"
+#~ msgstr "Generr ikke multm-instruktioner"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Foretag symbolomdbning for BSD"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Foretag symbolomdbning for X/OPEN"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Foretag ikke symbolomdbning"
+
+#~ msgid "MCU `%s' not supported"
+#~ msgstr "MCU '%s' ikke understttet"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Generr kode til en C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Generr kode til en C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Generr kode til en c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Generr kode til en c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Generr kode til en c32"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Generr kode til en c34"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Benyt standardkaldesekvens, med parameterantalsord"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Anbring parameterantal i en nop-instruktion (hurtigere end push)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "Videresend ikke parameterantal, afhng af symboltabel"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Benyt datamellemlager for volatile hukommelsesreferencer (standard)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Benyt ikke datamellemlager for volatile hukommelsesreferencer"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "Forbig datamellemlager for volatile hukommelsesreferencer"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Benyt 64 bit-long"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "Benyt cc- og libc-kompatibel 32 bit-long"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "integrerede kommatalskonstanter er ikke understttede p denne vrt"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Generr kode som Unix-maskinkodeoverstteren kan hndtere"
+
+#~ msgid "Generate code an embedded assembler can handle"
+#~ msgstr "Generr kode som en indlejret maskinkodeoverstter kan hndtere"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Bevar standard-MXDB-info"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Bevar indholdsinfo"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Generr ekstern indholdsinfo"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr "Udsend identificerende info i .s-fil"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Advar nr en funktionsparameter er en struktur"
+
+#~ msgid "argument is a structure"
+#~ msgstr "parameter er en struktur"
+
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "half-PIC-klargring kaldt p systemer der ikke understtter det"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Profilering benytter mcount"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Udsend half-PIC-kode"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "Udsend ELF-objektkode"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Udsend ROSE-objektkode"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Symboler har en indledende understreg"
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Justr til >word-grnserne"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Benyt mcount til profilering"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Benyt mcount_ptr til profilering"
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Generr kode som bruger FPU'en"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Generr ikke kode som bruger FPU'en"
+
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "tilvalget -mlong-double-64 virker ikke endnu"
+
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr "Tilvalget -march er uforeneligt med -mipsN og derfor ignoreret."
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d er ikke understttet"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s understtter ikke -mips%d"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "denne mlarkitektur understtter ikke tilvalget -mabi"
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "ugyldig vrdi (%s) til tilvalget -mcpu="
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d understtter ikke 64-bit kommatalsregistre"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d understtter ikke 64-bit almene registre"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "Benyt OSF PIC"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Benyt ikke OSF PIC"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimr for 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimr for 4650"
+
+#~ msgid "stack frame too big"
+#~ msgstr "stakramme for stor"
+
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "hverken variable parametre eller standardparametre mmix_setup_incoming_varargs"
+
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "ups, ikke fejlanalyseret; retter vrdi:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Generr lilleendet data"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Generr storendet data"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Aktivr vedligeholdertestkode"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Aktivr Transmeta picoJava-udvidelser"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Deaktivr Transmeta picoJava-udvidelser"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Deaktivr omorganiseringsfase"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignoreret (al kode er positionsuafhngigt)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "-ffunction-sections deaktiveret p AIX ved fejlanalysering"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections er ikke understttet p AIX"
+
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr "parameter til '%s' skal vre en 2 bit-konstant"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S beregnede alle 1'eres maske"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S beregnede alle 0's maske"
+
+#~ msgid "no viable candidates"
+#~ msgstr "ingen mulige kandidater"
+
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'"
+#~ msgstr "kan ikke videregive objekter af en ikke-POD type '%#T' gennem '...'"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr "'%D' er allerede blevet erklret i '%T'"
+
+#~ msgid "typedef `%D' is initialized"
+#~ msgstr "typedef '%D' bliver tildelt en startvrdi"
+
+#~ msgid "`%D' as declarator"
+#~ msgstr "'%D' som erklrer"
+
+#~ msgid "size of member `%D' is not constant"
+#~ msgstr "strrelsen af medlemmet '%D' er ikke konstant"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "kan ikke erklre %s til referencer"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "ugyldig type: 'void &'"
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "typedef-erklringen indeholder en startvrdi"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version understttes ikke lngere"
+
+#~ msgid "candidate%s: %+#D"
+#~ msgstr "candidate%s: %+#D"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "medlemsstartvrdier for '%#D'"
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " vil blive omordnet for at passe til erklringsordenen"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "flere startvrdier angivet for medlemmet '%D'"
+
+#~ msgid "base initializers for `%#T'"
+#~ msgstr "stamklasseklargring for '%#T'"
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " vil blive omordnet for at passe til nedarvningsordenen"
+
+#~ msgid "base class `%T' already initialized"
+#~ msgstr "stamklassen '%T' er allerede klargjort"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "implementationsreserveret navn '%D' benyttet"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "eksplicit instantiering af '%#D' efter"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "eksplicit specialisering her"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "eksplicit instantiering af '%#T' efter"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "stamklasseklargring for '%T'"
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " vil blive omordnet for at komme fr medlemsklargringer"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "ignorerer modifikationerne '%V' til '%T'"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a function type"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p en funktionstype"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to a member function"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p en medlemsfunktion"
+
+#~ msgid "ISO C++ forbids applying `sizeof' to type `void' which is an incomplete type"
+#~ msgstr "ISO C++ forbyder anvendelse af 'sizeof' p typen 'void' som er en ufuldstndig type"
+
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr "'sizeof' benyttet p et ikke-statisk medlem"
+
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr "'sizeof' benyttet p en ufuldstndig type '%T'"
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "foresprgsel for medlemmet '%T::%D' i udtryk med den ikke-sammensatte type '%T'"
+
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "ugyldig brug af typeerklring '%#D' som udtryk"
+
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "ugyldig brug af skabelon '%#D' som udtryk"
+
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "ugyldig offsetof fra ikke-POD type '%#T'; benyt henvisning til medlem i stedet"
+
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "henvisning til medlem-funktion kaldt, men ikke i klassevirkefelt"
+
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "objekt mangler i kald til metoden '%D'"
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "funktionen '%D' erklret flertydigt, men ingen definition optrder til at passe den sammen med?!?"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "ugyldigt kald af medlemsfunktion som har brug for 'this', i et statisk medlemsfunktionsvirkefelt"
+
+#~ msgid "unary `&'"
+#~ msgstr "unr '&'"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "ugyldig brug af en ikke-defineret type '%#T'"
+
+#~ msgid "forward declaration of `%#T'"
+#~ msgstr "forhndserklring af '%#T'"
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "ugyldig brug af '%T'"
+
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "ugyldig brug af medlem (glemte du en '&'?)"
+
+#~ msgid "invalid use of template type parameter"
+#~ msgstr "ugyldig brug af skabelonstypeparameter"
+
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "adresse af flertydig funktion uden kontekstuelle typeoplysninger"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "flertydig funktion uden kontekstuelle typeoplysninger"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "utilstrkkelige kontekstuelle oplysninger til at afgre typen"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "klargringslistekonstruktion er ugyldig for nedarvet klasseobjekt '%D'"
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "klargringslistekonstruktion er ugyldig for polymorfisk klasseobjekt '%D'"
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "klargringslistekonstruktion er ugyldig for '%D'"
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "pga. af tilstedevrelsen af en konstruktionsfunktion"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "pga. ikke-public tilgang af medlemmet '%D'"
+
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ forbyder ikke-konstante startvrdiudtryk for sammensatte typer"
+
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "Betydningen af '\\x' (ved %0) skifter med -traditional"
+
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "Betydningen af '\\a' (ved %0) skifter med -traditional"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "betydningen af '\\x' skifter med -traditional"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "betydningen af '\\a' skifter med -traditional"
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "tolkningsfejl; desuden lbet tr for virtuel hukommelse"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Kan ikke angive tabeldimension i en erklring"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "intern fejl - brug af ikke-defineret type"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "intet klassenavn angivet som parameter til -fconstant-string-class"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "profilgenerering med -p understttes ikke lngere; benyt -pg i stedet for"
+
+#~ msgid "incompatible interworking options"
+#~ msgstr "uforenelige samvirkende tilvalg"
+
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "-mabi=mmixware og -mabi=gnu er indbyrdes uforenelige"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "tilvalget -p understttes ikke; benyt -pg i stedet"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd og -pedantic er indbyrdes uforenelige"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd og -mxopen er indbyrdes uforenelige"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen og -pedantic er indbyrdes uforenelige"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "-mfp64 og -msingle-float er indbyrdes uforenelige"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "-mfp64 og -m4650 er indbyrdes uforenelige"
+
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "-mgp32 og -mfp64 er indbyrdes uforenelige"
+
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "Kun variabler med startvrdi kan placeres i programhukommelsesomrdet."
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "erklring af '%#T'"
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "et '-ifile'-tilvalg krver et '-map'-tilvalg"
+
+#~ msgid "%s before character constant"
+#~ msgstr "%s fr tegnkonstant"
+
+#~ msgid "%s before character 0%o"
+#~ msgstr "%s fr tegn 0%o"
+
+#~ msgid "invalid identifier `%s'"
+#~ msgstr "ugyldigt kaldenavn '%s'"
+
+#~ msgid "parse error at `..'"
+#~ msgstr "tolkningsfejl ved '..'"
+
+#~ msgid "nondigits in number and not hexadecimal"
+#~ msgstr "tegn der ikke er cifre, optrder i tal"
+
+#~ msgid "two `u's in integer constant"
+#~ msgstr "to 'u'-endelser i heltalskonstant"
+
+#~ msgid "`[*]' in parameter declaration only allowed in ISO C 99"
+#~ msgstr "'[*]' i parametererklring kun tilladt i ISO C 99"
+
+#~ msgid "invalid `for (ITERATOR)' syntax"
+#~ msgstr "ugyldigt 'for (LKKEVARIABEL)'-syntaks"
+
+#~ msgid "`for (%s)' inside expansion of same iterator"
+#~ msgstr "'for (%s)' inden i udfoldning af samme lkkevariabel"
+
+#~ msgid "case label within scope of cleanup or variable array"
+#~ msgstr "case-etiket i oprydningsomrde eller i en variabel tabel"
+
+#~ msgid "wrong type argument to %s"
+#~ msgstr "forkert parametertype til %s"
+
+#~ msgid "invalid lvalue in increment"
+#~ msgstr "ugyldig venstrevrdi i forgelse"
+
+#~ msgid "invalid lvalue in decrement"
+#~ msgstr "ugyldig venstrevrdi i formindskelse"
+
+#~ msgid "increment"
+#~ msgstr "forgelse"
+
+#~ msgid "decrement"
+#~ msgstr "formindskelse"
+
+#~ msgid "duplicate array index in initializer"
+#~ msgstr "tabelindeks i startvrdi optrder mere end n gang"
+
+#~ msgid "thumb_load_double_from_address: destination is not a register"
+#~ msgstr "thumb_load_double_from_adress: destination er ikke et register"
+
+#~ msgid "thumb_load_double_from_address: source is not a computed memory address"
+#~ msgstr "thumb_load_double_from_adress: kilden er ikke en beregnet hukommelsesadresse"
+
+#~ msgid "thumb_load_double_from_address: Unhandled address calculation"
+#~ msgstr "thumb_load_double_from_adress: adresseberegningen er ikke hndteret"
+
+#~ msgid "ACCUM_HIGH_REGS class in limit_reload_class"
+#~ msgstr "ACCUM_HIGH_REGS-klasse i limit_reload_class"
+
+#~ msgid "YH_OR_ACCUM_HIGH_REGS found in limit_reload_class"
+#~ msgstr "YH_OR_ACCUM_HIGH_REGS fundet i limit_reload_class"
+
+#~ msgid "YL found in limit_reload_class"
+#~ msgstr "YL fundet i limit_reload_class"
+
+#~ msgid "Invalid register for compare"
+#~ msgstr "Ugyldigt register til sammenligningen"
+
+#~ msgid "Internal gcc abort from %s:%d"
+#~ msgstr "Intern GCC-afbrydelse fra %s:%d"
+
+#~ msgid "Register '%c' already specified in allocation order"
+#~ msgstr "Registret '%c' er allerede angivet i tildelingsordenen"
+
+#~ msgid "Same as -mcpu=i386"
+#~ msgstr "Magen til -mcpu=i386"
+
+#~ msgid "Same as -mcpu=i486"
+#~ msgstr "Magen til -mcpu=i486"
+
+#~ msgid "Same as -mcpu=pentium"
+#~ msgstr "Magen til -mcpu=pentium"
+
+#~ msgid "Same as -mcpu=pentiumpro"
+#~ msgstr "Magen til -mcpu=pentiumpro"
+
+#~ msgid "Emit Intel syntax assembler opcodes"
+#~ msgstr "Konstrur instruktionerne til maskinkodeoverstteren med Intel-syntaks"
+
+#~ msgid "invalid %H value"
+#~ msgstr "ugyldig %H-vrdi"
+
+#~ msgid "invalid %h value"
+#~ msgstr "ugyldig %h-vrdi"
+
+#~ msgid "invalid %Q value"
+#~ msgstr "ugyldig %Q-vrdi"
+
+#~ msgid "invalid %q value"
+#~ msgstr "ugyldig %q-vrdi"
+
+#~ msgid "invalid %p value"
+#~ msgstr "ugyldig %p-vrdi"
+
+#~ msgid "invalid %B value"
+#~ msgstr "ugyldig %B-vrdi"
+
+#~ msgid "invalid %C value"
+#~ msgstr "ugyldig %C-vrdi"
+
+#~ msgid "invalid %E value"
+#~ msgstr "ugyldig %E-vrdi"
+
+#~ msgid "invalid %r value"
+#~ msgstr "ugyldig %r-vrdi"
+
+#~ msgid "-mcpu=%s does not support -mips%d"
+#~ msgstr "-mcpu=%s understtter ikke -mips%d"
+
+#~ msgid "PRINT_OPERAND: letter %c was found & insn was not CONST_INT"
+#~ msgstr "PRINT_OPERAND: bogstavet %c blev fundet og instruktionen var ikke CONST_INT"
+
+#~ msgid "-mptr%d not allowed on -m%d"
+#~ msgstr "-mptr%d er ikke tilladt p -m%d"
+
+#~ msgid "parse errors have confused me too much"
+#~ msgstr "tolkningsfejl er blevet for forvirrende"
+
+#~ msgid "virtual memory exhausted"
+#~ msgstr "lbet tr for virtuel hukommelse"
+
+#~ msgid "the new ABI requires vtable thunks"
+#~ msgstr "den nye binre grnseflade krver virtuel tabel-afdelinger"
+
+#~ msgid "`void' in parameter list must be entire list"
+#~ msgstr "'void' i en parameterliste skal udgre hele listen"
+
+#~ msgid "no file specified with -fdump-translation-unit"
+#~ msgstr "ingen filer angivet med -fdump-translation-unit"
+
+#~ msgid "`__alignof__' applied to a bit-field"
+#~ msgstr "'__alignof__' brugt p et bitfelt"
+
+#~ msgid "(you really want to initialize it separately)"
+#~ msgstr "(klargr den separat)"
+
+#~ msgid "`operator new' takes type `size_t' parameter"
+#~ msgstr "'operator new' skal have en parameter af typen 'size_t'"
+
+#~ msgid "`...' invalid in specification of `operator delete'"
+#~ msgstr "'...' er ugyldigt i angivelsen af 'operator delete'"
+
+#~ msgid "`default' label within scope of cleanup or variable array"
+#~ msgstr "'default'-etiket i oprydningsomrde eller i en variabel tabel"
+
+#~ msgid "initializer for unnamed base class ambiguous"
+#~ msgstr "klargring af unavngiven stamklasse er flertydig"
+
+#~ msgid "invalid #pragma vtable"
+#~ msgstr "ugyldig #pragma vtable"
+
+#~ msgid "%s at end of saved text"
+#~ msgstr "%s ved slutningen af den gemte tekst"
+
+#~ msgid "complex integer constant is too wide for `__complex int'"
+#~ msgstr "kompleks heltalskonstant er for bred til '__complex int'"
+
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "flertydig foresprgsel efter medlemsfunktionshenvisningen '%s'"
+
+#~ msgid "taking dynamic typeid of object with -fno-rtti"
+#~ msgstr "forsg p at finde den dynamiske typeid af et objekt med -fno-rtti"
+
+#~ msgid "`com_interface' only supported with -fvtable-thunks"
+#~ msgstr "'com_interface' understttes kun med -fvtable-thunks"
+
+#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#~ msgstr "ugyldig reference til NULL-henvisning, benyt en henvisning til medlem i stedet"
+
+#~ msgid "Please submit a full bug report."
+#~ msgstr "Send venligst en komplet fejlrapport."
+
+#~ msgid "duplicate label `%s' in switch statement"
+#~ msgstr "mere end n '%s'-etiket i switch-stningen"
+
+#~ msgid "duplicate label (%d) in switch statement"
+#~ msgstr "mere end n etiket (%d) i switch-stningen"
+
+#~ msgid "range values `%s' and `%s' reversed"
+#~ msgstr "intervalvrdierne '%s' og '%s' vender omvendt"
+
+#~ msgid "range values reversed"
+#~ msgstr "intervalvrdierne vender omvendt"
+
+#~ msgid "Can't create cross-reference file `%s'"
+#~ msgstr "Kan ikke oprette krydsreferencefilen '%s'"
+
+#~ msgid "bad is_error(%d) in v_message"
+#~ msgstr "ugyldig is_error(%d) i v_message"
+
+#~ msgid "'defined' without an identifier"
+#~ msgstr "'defined' optrder uden et kaldenavn"
+
+#~ msgid "`##' at start of macro definition"
+#~ msgstr "'##' i begyndelsen af makrodefinitionen"
+
+#~ msgid "empty object-like macro went through full #define"
+#~ msgstr "en tom objektlignende makro gik gennem komplet #define"
+
+#~ msgid "first token = %d not %d in collect_formal_parameters"
+#~ msgstr "frste symbol = %d er ikke %d i collect_formal_parameters"
+
+#~ msgid "impossible token in macro argument list"
+#~ msgstr "umuligt symbol i makroparameterlisten"
+
+#~ msgid "illegal token in macro argument list"
+#~ msgstr "ugyldigt symbol i makroparameterlisten"
+
+#~ msgid "another parameter follows \"...\""
+#~ msgstr "der optrder en parameter mere efter \"...\""
+
+#~ msgid "collect_params: argc=%d argslen=0"
+#~ msgstr "collect_params: argc=%d argslen=0"
+
+#~ msgid "C99 does not permit use of __VA_ARGS__ as a macro argument name"
+#~ msgstr "C99 tillader ikke brug af __VA_ARGS__ som makroparameternavn"
+
+#~ msgid "C89 does not permit varargs macros"
+#~ msgstr "C89 tillader ikke variabel parameterliste-makroer"
+
+#~ msgid "collect_params: impossible token type %d"
+#~ msgstr "collect_params: umulig symboltype %d"
+
+#~ msgid "attempt to use poisoned `%s'."
+#~ msgstr "forsg p at bruge forgiftet '%s'"
+
+#~ msgid "macroexpand: unexpected token %d (wanted LPAREN)"
+#~ msgstr "macroexpand: forventede ikke symbol %d (skulle have vret LPAREN)"
+
+#~ msgid "unterminated macro call"
+#~ msgstr "uafsluttet makrokald"
+
+#~ msgid "macro `%s' used with just one arg"
+#~ msgstr "makroen '%s' kaldt med kun n parameter"
+
+#~ msgid "macro `%s' used with only %d args"
+#~ msgstr "makroen '%s' kaldt med kun %d parametre"
+
+#~ msgid "macro `%s' used with too many (%d) args"
+#~ msgstr "makroen '%s' kaldt med for mange (%d) parametre"
+
+#~ msgid "buffers still stacked in cpp_finish"
+#~ msgstr "mellemlagre er stadig stakket op i cpp_finish"
+
+#~ msgid ""
+#~ "Switches:\n"
+#~ " -include <file> Include the contents of <file> before other files\n"
+#~ " -imacros <file> Accept definition of macros in <file>\n"
+#~ " -iprefix <path> Specify <path> as a prefix for next two options\n"
+#~ " -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+#~ " -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+#~ " -isystem <dir> Add <dir> to the start of the system include path\n"
+#~ " -idirafter <dir> Add <dir> to the end of the system include path\n"
+#~ " -I <dir> Add <dir> to the end of the main include path\n"
+#~ " -I- Fine-grained include path control; see info docs\n"
+#~ " -nostdinc Do not search system include directories\n"
+#~ " (dirs specified with -isystem will still be used)\n"
+#~ " -nostdinc++ Do not search system include directories for C++\n"
+#~ " -o <file> Put output into <file>\n"
+#~ " -pedantic Issue all warnings demanded by strict ANSI C\n"
+#~ " -pedantic-errors Issue -pedantic warnings as errors instead\n"
+#~ " -traditional Follow K&R pre-processor behaviour\n"
+#~ " -trigraphs Support ANSI C trigraphs\n"
+#~ " -lang-c Assume that the input sources are in C\n"
+#~ " -lang-c89 Assume that the input sources are in C89\n"
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ " -lang-fortran\t\t Assume that the input sources are in Fortran\n"
+#~ " -lang-chill Assume that the input sources are in Chill\n"
+#~ " -std=<std name> Specify the conformance standard; one of:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999\n"
+#~ " -+ Allow parsing of C++ style features\n"
+#~ " -w Inhibit warning messages\n"
+#~ " -Wtrigraphs Warn if trigraphs are encountered\n"
+#~ " -Wno-trigraphs Do not warn about trigraphs\n"
+#~ " -Wcomment{s} Warn if one comment starts inside another\n"
+#~ " -Wno-comment{s} Do not warn about comments\n"
+#~ " -Wtraditional Warn if a macro argument is/would be turned into\n"
+#~ " a string if -traditional is specified\n"
+#~ " -Wno-traditional Do not warn about stringification\n"
+#~ " -Wundef Warn if an undefined macro is used by #if\n"
+#~ " -Wno-undef Do not warn about testing undefined macros\n"
+#~ " -Wimport Warn about the use of the #import directive\n"
+#~ " -Wno-import Do not warn about the use of #import\n"
+#~ " -Werror Treat all warnings as errors\n"
+#~ " -Wno-error Do not treat warnings as errors\n"
+#~ " -Wall Enable all preprocessor warnings\n"
+#~ " -M Generate make dependencies\n"
+#~ " -MM As -M, but ignore system header files\n"
+#~ " -MD As -M, but put output in a .d file\n"
+#~ " -MMD As -MD, but ignore system header files\n"
+#~ " -MG Treat missing header file as generated files\n"
+#~ " -g3 Include #define and #undef directives in the output\n"
+#~ " -D<macro> Define a <macro> with string '1' as its value\n"
+#~ " -D<macro>=<val> Define a <macro> with <val> as its value\n"
+#~ " -A<question> (<answer>) Assert the <answer> to <question>\n"
+#~ " -A-<question> (<answer>) Disable the <answer> to <question>\n"
+#~ " -U<macro> Undefine <macro> \n"
+#~ " -v Display the version number\n"
+#~ " -H Print the name of header files as they are used\n"
+#~ " -C Do not discard comments\n"
+#~ " -dM Display a list of macro definitions active at end\n"
+#~ " -dD Preserve macro definitions in output\n"
+#~ " -dN As -dD except that only the names are preserved\n"
+#~ " -dI Include #include directives in the output\n"
+#~ " -ftabstop=<number> Distance between tab stops for column reporting\n"
+#~ " -P Do not generate #line directives\n"
+#~ " -$ Do not allow '$' in identifiers\n"
+#~ " -remap Remap file names when including files.\n"
+#~ " --version Display version information\n"
+#~ " -h or --help Display this information\n"
+#~ msgstr ""
+#~ "Tilvalg:\n"
+#~ " -include <fil> Inkludr indholdet af <fil> fr andre filer\n"
+#~ " -imacros <fil> Ls makrodefinitionerne i <fil>\n"
+#~ " -iprefix <sti> Angiv <sti> som et prfiks til de nste to tilvalg\n"
+#~ " -iwithprefix <ktlg> Fj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -withprefixbefore <ktlg> Fj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -isystem <ktlg> Fj <ktlg> til begyndelsen af systeminkluderingsstien\n"
+#~ " -idirafter <ktlg> Fj <ktlg> til slutningen af systeminkluderingsstien\n"
+#~ " -I <ktlg> Fj <ktlg> til slutningen af den alm. inkluderingssti\n"
+#~ " -I- Nje kontrolleret inkluderingssti; se info-hjlpen\n"
+#~ " -nostdinc Sg ikke i systeminkluderingskataloger\n"
+#~ " (kataloger angivet med -isystem sges dog stadig)\n"
+#~ " -nostdinc++ Sg ikke i systeminkluderingskataloger til C++\n"
+#~ " -o <fil> Send uddata til <fil>\n"
+#~ " -pedantic Fremkom med alle advarsler pkrvet for nje ISO C\n"
+#~ " -pedantic-errors Behandl '-pedantic'-advarsler som fejl\n"
+#~ " -traditional Iagttag opfrsel som en K&R-prprocessor\n"
+#~ " -trigraphs Understt ANSI C-trigrafer\n"
+#~ " -lang-c Antag at inddata er C\n"
+#~ " -lang-c89 Antag at inddata er C89\n"
+#~ " -lang-c++ Antag at inddata er C++\n"
+#~ " -lang-cobjc Antag at inddata er Objective C\n"
+#~ " -lang-cobjc++ Antag at inddata er Objective C++\n"
+#~ " -lang-asm Antag at inddata er maskinkode\n"
+#~ " -lang-fortran Antag at inddata er Fortran\n"
+#~ " -lang-chill Antag at inddata er Chill\n"
+#~ " -std=<standardnavn> Angiv at koden retter sig efter en af standarderne:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999\n"
+#~ " -+ Tillad fortolkning af faciliteter i C++-stil\n"
+#~ " -w Blokr advarselsmeddelelser\n"
+#~ " -Wtrigraphs Advar hvis der optrder trigrafer\n"
+#~ " -Wno-trigraphs Advar ikke om trigrafer\n"
+#~ " -Wcomment{s} Advar hvis en kommentar begynder inden i en anden\n"
+#~ " -Wno-comment{s} Advar ikke om kommentarer\n"
+#~ " -Wtraditional Advar hvis en makroparameter vil blive gjort til en\n"
+#~ " streng med -traditional\n"
+#~ " -Wno-traditional Advar ikke om omdannelse til streng\n"
+#~ " -Wundef Advar hvis en ikkedefineret makro bruges med #if\n"
+#~ " -Wno-undef Advar ikke om test p makroer der ikke er definerede\n"
+#~ " -Wimport Advar om brug af #import\n"
+#~ " -Wno-import Advar ikke om brug af #import\n"
+#~ " -Werror Behandl alle advarsler som fejl\n"
+#~ " -Wno-error Behandl ikke alle advarsler som fejl\n"
+#~ " -Wall Sl alle prprocessoradvarsler til\n"
+#~ " -M Generr afhngigheder til make\n"
+#~ " -MM Som -M, men ignorr systeminkluderingsfiler\n"
+#~ " -MD Som -M, men anbring uddata i en '.d'-fil\n"
+#~ " -MMD Som -MD, men ignorr systeminkluderingsfiler\n"
+#~ " -MG Behandl manglende inkl.-filer som genererede filer\n"
+#~ " -g3 Inkludr #define- og #undef-direktiver i uddata\n"
+#~ " -D<makro> Definr makroen <makro> med strengen '1' som vrdi\n"
+#~ " -D<makro>=<vrdi> Definr makroen <makro> med vrdien <vrdi>\n"
+#~ " -A<sprgsml> (<svar>) Angiv at <svar> er svar p <sprgsml>\n"
+#~ " -A-<sprgsml> (<svar>) Angiv at <svar> ikke er svar p <sprgsml>\n"
+#~ " -U<makro> Glem definitionen af <makro>\n"
+#~ " -v Skriv versionsnummeret\n"
+#~ " -H Skriv navnene p inkluderingsfilerne nr de bruges\n"
+#~ " -C Fjern ikke kommentarer\n"
+#~ " -dM Vis til sidst de aktive makrodefinitioner\n"
+#~ " -dD Bevar makrodefinitioner i uddata\n"
+#~ " -dN Som -dD bortset fra at kun navnene bevares\n"
+#~ " -dI Inkludr #include-anvisninger i uddata\n"
+#~ " -ftabstop=<tal> Afstand mellem tabulatorstop i kolonnerapportering\n"
+#~ " -P Generr ikke #line-angivelser\n"
+#~ " -$ Tillad ikke '$' i kaldenavne\n"
+#~ " -remap Omdan filnavne ved filinkludering\n"
+#~ " --version Udskriv versionsinformation\n"
+#~ " -h eller --help Vis denne vejledning\n"
+
+#~ msgid "mark active in cpp_pop_buffer"
+#~ msgstr "markr aktiv i cpp_pop_buffer"
+
+#~ msgid "length < 0 in cpp_expand_to_buffer"
+#~ msgstr "lngden < 0 i cpp_expand_to_buffer"
+
+#~ msgid "backslash-newline within line comment"
+#~ msgstr "omvendt skrstreg efterfulgt af linjeskift fundet i en enkeltlinjeskommentar"
+
+#~ msgid "C++ style comments are not allowed in traditional C"
+#~ msgstr "kommentarer i C++-stil er ikke tilladt i traditionel C"
+
+#~ msgid "string constant runs past end of line"
+#~ msgstr "strengkonstanten gr ud over slutningen af linjen"
+
+#~ msgid "missing '>' in `#include <FILENAME>'"
+#~ msgstr "manglende '>' i '#include <FILNAVN>'"
+
+#~ msgid "vertical tab in preprocessing directive"
+#~ msgstr "lodret tabulator i prprocessordirektiv"
+
+#~ msgid "form feed in preprocessing directive"
+#~ msgstr "sideskift i prprocessordirektiv"
+
+#~ msgid "null character preserved"
+#~ msgstr "nultegn bevaret"
+
+#~ msgid "comment start split across lines"
+#~ msgstr "kommentarbegyndelsen delt over to linjer"
+
+#~ msgid "comment start '/*' split across lines"
+#~ msgstr "kommentarbegyndelsen '/*' delt over to linjer"
+
+#~ msgid "comment end '*/' split across lines"
+#~ msgstr "kommentarslutningen '*/' delt over to linjer"
+
+#~ msgid "handle_directive called on macro buffer"
+#~ msgstr "handle_directive kaldt med et makromellemlager"
+
+#~ msgid "ignoring #%s because of its indented #"
+#~ msgstr "ignorerer #%s p grund af den indrykkede '#'"
+
+#~ msgid "ISO C does not allow #%s"
+#~ msgstr "ISO C tillader ikke #%s"
+
+#~ msgid "redefining poisoned `%.*s'"
+#~ msgstr "omdefinerer forgiftet '%.*s'"
+
+#~ msgid "garbage at end of #line"
+#~ msgstr "ragelse i slutningen af #line"
+
+#~ msgid "second token after #line is not a string"
+#~ msgstr "det andet symbol efter #line er ikke en streng"
+
+#~ msgid "junk on line after #undef"
+#~ msgstr "ragelse p linjen efter #undef"
+
+#~ msgid "cannot undefine poisoned \"%s\""
+#~ msgstr "kan ikke glemme definitionen af forgiftet \"%s\""
+
+#~ msgid "#%s with invalid argument"
+#~ msgstr "#%s med ugyldig parameter"
+
+#~ msgid "Cannot duplicate non-existant exception region."
+#~ msgstr "Kan ikke mangfoldiggre en ikkeeksisterende undtagelsesregion."
+
+#~ msgid "Never issued previous false_label"
+#~ msgstr "Srgede ikke for tidligere false_label"
+
+#~ msgid "output_operand: %s"
+#~ msgstr "output_operand: %s"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK mangler for blok %d\n"
+
+#~ msgid "file path prefix `%s%s' never used"
+#~ msgstr "stiprfikset '%s%s' blev aldrig brugt"
+
+#~ msgid "file path prefix `%s' never used"
+#~ msgstr "stiprfikset '%s' blev aldrig brugt"
+
+#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
+#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJKAT] fil\n"
+
+#~ msgid "%s: option `--%s' doesn't allow an argument\n"
+#~ msgstr "%s: tilvalget '--%s' tillader ikke en parameter\n"
+
+#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
+#~ msgstr "%s: tilvalget '%c%s' tillader ikke en parameter\n"
+
+#~ msgid "%s: option `%s' requires an argument\n"
+#~ msgstr "%s: tilvalget '%s' skal have en parameter\n"
+
+#~ msgid "%s: unrecognized option `--%s'\n"
+#~ msgstr "%s: ukendt tilvalg '--%s'\n"
+
+#~ msgid "%s: unrecognized option `%c%s'\n"
+#~ msgstr "%s: ukendt tilvalg '%c%s'\n"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#~ msgid "%s: invalid option -- %c\n"
+#~ msgstr "%s: ugyldigt tilvalg -- %c\n"
+
+#~ msgid "%s: option requires an argument -- %c\n"
+#~ msgstr "%s: tilvalget skal have en parameter -- %c\n"
+
+#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
+#~ msgstr "%s: tilvalget '-W %s' tillader ikke en parameter\n"
+
+#~ msgid "Objective-C text in C source file"
+#~ msgstr "Objective C-tekst i C-kildekodefil"
+
+#~ msgid "statically allocated objects not supported"
+#~ msgstr "statisk allokerede objekter understttes ikke"
+
+#~ msgid "`asm' cannot be used in function where memory usage is checked"
+#~ msgstr "'asm' kan ikke benyttes i funktioner hvor hukommelsesforbruget bliver tjekket"
+
+#~ msgid "`asm' cannot be used with `-fcheck-memory-usage'"
+#~ msgstr "'asm' kan ikke benyttes sammen med '-fcheck-memory-usage'"
+
+#~ msgid "output operand constraint %d contains `+'"
+#~ msgstr "uddataoperandbegrnsning %d indeholder '+'"
+
+#~ msgid "hard register `%s' listed as input operand to `asm'"
+#~ msgstr "hardware-register '%s' angivet som inddataoperand til 'asm'"
+
+#~ msgid "output pipe has been closed"
+#~ msgstr "uddataledningen er blevet lukket"
+
+#~ msgid "Errors detected in input file (your bison.simple is out of date)\n"
+#~ msgstr "Fandt fejl i inddatafilen (din bison.simple er forldet)\n"
+
+#~ msgid "Data size %ld.\n"
+#~ msgstr "Datastrrelse %ld.\n"
+
+#~ msgid "Unknown stab %s: : 0x%x\n"
+#~ msgstr "Ukendt stab %s: : 0x%x\n"
+
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "__builtin_trap understttes ikke p denne mlarkitektur"
+
+#~ msgid "`%s' previously defined here"
+#~ msgstr "'%s' tidligere defineret her"
+
+#~ msgid "`%s' previously declared here"
+#~ msgstr "'%s' tidligere erklret her"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "profilgenerering understtter ikke andre kodemodeller end medlow"
+
+#~ msgid "Control allocation order of integer registers"
+#~ msgstr "Kontrollr tildelingsordenen for heltalsregistrene"
diff --git a/gcc-4.9/libcpp/po/de.po b/gcc-4.9/libcpp/po/de.po
new file mode 100644
index 000000000..e5d15dbb0
--- /dev/null
+++ b/gcc-4.9/libcpp/po/de.po
@@ -0,0 +1,3889 @@
+# German translation of gcc messages.
+# Copyright © 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Karl Eichwalder <ke@suse.de>, 2002, 2003.
+# Roland Stigge <stigge@antcom.de>, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2012, 2013.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-03-18 15:18+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "Konvertierung von %s nach %s wird von iconv nicht unterstützt"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "keine Implementation für iconv, es kann nicht von %s nach %s konvertiert werden"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "Zeichen 0x%lx ist nicht im regulären Quellzeichensatz\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "Konvertierung in Zeichensatz der Ausführung"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "Zeichen 0x%lx ist kein Unibyte im Ausführungs-Zeichensatz"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universelle Zeichennamen sind nur in C++ und C99 gültig"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "die Bedeutung von »\\%c« ist in traditionellem C anders"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "In _cpp_valid_ucn, aber kein UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "unvollständiger Universal-Zeichenname %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "»%.*s« ist kein gültiges universelles Zeichen"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "»$« in Bezeichner oder Zahl"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universelles Zeichen %.*s ist nicht gültig in Bezeichner"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "universelles Zeichen %.*s ist nicht gültig am Anfang eines Bezeichners"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "UCN wird in Quellzeichensatz konvertiert"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "UCN wird in Ausführungszeichensatz konvertiert"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "die Bedeutung von »\\x« ist in traditionellem C anders"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x ohne folgende Hex-Ziffern verwendet"
+
+# http://de.wikipedia.org/wiki/Escape-Sequenz
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "Hex-Escape-Sequenz außerhalb des Wertebereiches"
+
+# http://de.wikipedia.org/wiki/Escape-Sequenz
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "Oktal-Escape-Sequenz außerhalb des Wertebereiches"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "die Bedeutung von »\\a« ist in traditionellem C anders"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "nicht-ISO-standardkonforme Escape-Sequenz »\\%c«"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "unbekannte Escape-Sequenz: »\\%c«"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "unbekannte Escape-Sequenz: »\\%s«"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "Escape-Sequenz wird in Zeichensatz der Ausführung konvertiert"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "Zeichenkonstante zu lang für ihren Typ"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "Zeichenkonstante mit mehreren Zeichen"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "Leere Zeichenkonstante"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "Fehler beim Konvertieren von %s nach %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "mehrere Token am Ende der Direktive #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s ist eine GCC-Erweiterung"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s ist eine veraltete GCC-Erweiterung"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "es wird empfohlen, in traditionellem C nicht #elif zu verwenden"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionelles C ignoriert #%s mit eingerücktem #"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "es wird empfohlen, #%s vor traditionellem C mit # zu verbergen"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "das Einbetten einer Direktive innerhalb von Makroargumenten ist nicht portierbar"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "der Stil der line-Direktive ist eine GCC-Erweiterung"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ungültige Präprozessordirektive #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "»defined« kann nicht als Makroname verwendet werden"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "»%s« kann nicht als Makroname verwendet werden, da es ein Operator in C++ ist"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "kein Makroname in Direktive #%s angegeben"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "Makronamen müssen Bezeichner sein"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "»%s« wird un-definiert"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "fehlendes abschließendes »>«-Zeichen"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s erwartet \"DATEINAME\" oder <DATEINAME>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "leerer Dateiname in #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include ist zu tief geschachtelt"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next in erster Quelldatei"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ungültiges Kennzeichen »%s« in line-Direktive"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "unerwartetes Dateiende nach #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "»%s« hinter #line ist keine positive Ganzzahl"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "Zeilennummer ist außerhalb des Wertebereiches"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "»%s« ist kein gültiger Dateiname"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "»%s« hinter # ist keine positive Ganzzahl"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ungültige #%s-Direktive"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "Pragmas im Namensraum »%s« werden ohne passende Namensauflösung registriert"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "Pragma »%s« wird mit Namensauflösung und ohne Namensraum registriert"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "»%s« wird sowohl als Pragma als auch als Pragma-Namensraum registriert"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ist bereits registriert"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ist bereits registriert"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "Pragma mit NULL-Handler wird registriert"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once in Hauptdatei"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "ungültige #pragma push_macro Direktive"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "ungültige #pragma pop_macro Direktive"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "ungültige #pragma GCC Poison Direktive"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "schlechtes existierendes Makro »%s«"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header außerhalb include-Datei ignoriert"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "Quelldatei %s kann nicht gefunden werden"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuelle Datei ist älter als %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "ungültige »#pragma GCC %s« Direktive"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma nimmt ein geklammertes Zeichenkettenliteral"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else ohne #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else hinter #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "die Bedingung begann hier"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif ohne #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif hinter #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif ohne #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "fehlende »(« hinter Prädikat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "fehlende »)«, um Antwort abzuschließen"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "Prädikatantwort ist leer"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "Behauptung ohne Prädikat"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "Prädikat muss ein Bezeichner sein"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "»%s« wieder behauptet"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "unbeendetes #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "nicht beendeter Kommentar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "Standardausgabe"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "Festkommakonstanten sind eine GCC-Erweiterung"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ungültiges Präfix »0b« für Gleitkommakonstante"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "Verwendung von hexadezimaler C99-Gleitkommakonstante"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ungültiges Suffix »%.*s« an Gleitkommakonstante"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionelles C lehnt das Suffix »%.*s« ab"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "Suffix an Gleitkommakonstante ist eine GCC-Erweiterung"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ungültiges Suffix »%.*s« mit hexadezimaler Gleitkommakonstante"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "dezimale Gleitkommakonstanten sind eine GCC-Erweiterung"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ungültiges Suffix »%.*s« an Ganzzahlkonstante"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "C++11 long long Ganzzahlkonstante verwendet"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "C99 long long Ganzzahlkonstante verwendet"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginäre Konstanten sind eine GCC-Erweiterung"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "binäre Konstanten sind ein C++1y-Funktionsmerkmal oder eine GCC-Erweiterung"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "Ganzzahlkonstante ist zu groß für ihren Typ"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "Ganzzahlkonstante ist so groß, dass sie vorzeichenlos ist"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "fehlende »)« hinter »defined«"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "Operator »defined« erfordert einen Bezeichner"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(»%s« ist ein alternatives Token for »%s« in C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "diese Verwendung von »defined« könnte nicht portierbar sein"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "benutzerdefiniertes Symbol in Präprozessorausdruck"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "Gleitkommakonstante in Präprozessorausdruck"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginäre Zahl in Präprozessorausdruck"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "»%s« ist nicht definiert"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "Assertions sind eine GCC-Erweiterung"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "Assertions sind eine veraltete Erweiterung"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "unausgeglichener Keller in %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "unmöglicher Operator »%u«"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "fehlende »)« in Ausdruck"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "»?« ohne folgenden »:«"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "Ganzzahlüberlauf in Präprozessorausdruck"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "fehlende »(« in Ausdruck"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "der linke Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "der rechte Operand von »%s« ändert bei der Weitergabe das Vorzeichen"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionelles C weist den unären Plus-Operator zurück"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "Kommaoperator in Operand von #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "Division durch Null in #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "NULL-Verzeichnis in find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "eine oder mehrere PCH-Dateien wurden gefunden, aber sie sind ungültig"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "-Winvalid-pch für mehr Informationen verwenden"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s ist ein blockorientertes Gerät"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s ist zu groß"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s ist kürzer als erwartet"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "kein Include-Pfad, um %s zu finden"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Mehrere Include-Wächter könnten nützlich sein für:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t muss ein vorzeichenloser Typ sein"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "Präprozessorarithmetik hat maximale Präzision von %lu Bits; Ziel erfordert %lu Bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-Arithmetik muss mindestens so genau sein wie das Ziel int"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "Ziel-char ist weniger als 8 Bits breit"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "Ziel-wchar_t ist schmaler als Ziel-char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "Ziel-int ist schmaler als Ziel-char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP Halb-Ganzzahl ist schmaler als CPP-Zeichen"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP kann auf diesem Computer keine Wide-Zeichenkonstanten über %lu Bits Breite behandeln, das Ziel benötigt %lu Bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "Backslash und Newline durch Leerzeichen getrennt"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "Backslash-Newline am Dateiende"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "Trigraph ??%c in %c konvertiert"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "Trigraph ??%c ignoriert, -trigraphs zum Aktivieren verwenden"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "»/*« innerhalb des Kommentars"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s in Präprozessordirektive"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "Null-Zeichen ignoriert"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "»%.*s« ist nicht in NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "»%.*s« ist nicht in NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "Versuch, schlechtes »%s« zu verwenden"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kann nur in Erweiterung eines variadischen C99-Makros auftreten"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "Bezeichner »%s« ist ein besonderer Operatorname in C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "Roh-Zeichenketten-Trennsymbol länger als 16 Zeichen"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "ungültiger Zeilenumbruch (neue Zeile) in Roh-Zeichenketten-Trennsymbol"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ungültiges Zeichen »%c« in Roh-Zeichenketten-Trennsymbol"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "unbeendete Roh-Zeichenkette"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "ungültiges Suffix an Literal; C++11 erfordert Leerzeichen zwischen Literal und Zeichenketten-Makro"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "Null-Zeichen im Literal erhalten"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "fehlendes abschließendes Zeichen %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++-Stil-Kommentare sind in ISO-C90 nicht erlaubt"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(dies wird nur einmal pro Eingabedatei gemeldet)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "mehrzeiliger Kommentar"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "nicht buchstabierbares Token %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "Makro »%s« wird nicht benutzt"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ungültiges eingebautes Makro »%s«"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "Das Makro »%s« könnte reproduzierbare Builds verhindern"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "Zeitstempel der Datei konnte nicht ermittelt werden"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "Datum und Zeit konnten nicht bestimmt werden"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ innerhalb von Anweisung mit -fdirectives-only expandiert"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ungültiges Zeichenkettenliteral, abschließendes »\\« wird ignoriert"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "das Einfügen von »%s« und »%s« ergibt kein gültiges Präprozessor-Token"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO-C99 erfordert, dass Restargumente verwendet werden"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "Makro »%s« erfordert %u Argumente, aber nur %u wurden angegeben"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "dem Makro »%s« wurden %u Argumente übergeben, aber es akzeptiert nur %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "unvollendete Argumentliste beim Makroaufruf »%s«"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktionsähnliches Makro »%s« muss mit Argumenten in traditionellem C verwendet werden"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "Beim Ausführen des Arguments %2$d des Makros %1$s: Leere Makroargumente sind nach ISO-C90 und ISO-C++98 unbestimmt"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "doppelter Makroparameter »%s«"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "»%s« darf nicht in Makroparameterliste auftreten"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "Makroparameter müssen mit Komma getrennt sein"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "Parametername fehlt"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyme variadische Makros wurden in C99 eingeführt"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO-C erlaubt keine benannten variadischen Makros"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "fehlendes »)« in Makroparameterliste"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "»##« kann nicht an den Enden einer Makroexpansion auftreten"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO-C99 erfordert Leerzeichen hinter Makroname"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "Leerzeichen hinter Makroname fehlt"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "»#« wird nicht von einem Makroparameter gefolgt"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "»%s« redefiniert"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "dies ist die Stelle der vorherigen Definition"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "Makroargument »%s« würde in traditionellem C zur Zeichenkette umgewandelt werden"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ungültiger Hash-Typ %d in cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "beim Schreiben des vorkompilierten Headers"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: nicht verwendet, da »%.*s« vergiftet ist"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: nicht verwendet, da »%.*s« nicht definiert"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: nicht verwendet, da »%.*s« als »%s« statt als »%.*s« definiert wurde"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: nicht verwendet, da »%s« definiert ist"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: nicht verwendet, da »__COUNTER__« ungültig ist"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "beim Lesen des vorkompilierten Headers"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "Rekursion bei Expansion des Makros »%s« entdeckt"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "Syntaxfehler in Makroparameterliste"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Zeichen %x ist nicht in NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "zu viele Dezimalpunkte in Zahl"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "ungültige Ziffer »%c« in binärer Konstante"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "ungültige Ziffer »%c« in Oktal-Konstante"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "keine Ziffern in hexadezimaler Gleitkommakonstante"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "Exponent hat keine Ziffern"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "hexadezimale Gleitkommakonstanten benötigen Exponenten"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "fehlender binärer Operator vor Token »%s«"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "Token »%s« ist nicht gültig in Präprozessorausdrücken"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "fehlender Ausdruck zwischen '(' und ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s ohne Ausdruck"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "Operator »%s« hat keinen rechten Operanden"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "Operator »%s« hat keinen linken Operanden"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' ohne vorangehendes '?'"
+
+#~ msgid "warning: "
+#~ msgstr "Warnung: "
+
+#~ msgid "internal error: "
+#~ msgstr "interner Fehler: "
+
+#~ msgid "error: "
+#~ msgstr "Fehler: "
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "In Datei, eingefügt von %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " von %s:%u"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "Kein Newline am Dateiende"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "unbekannte Escape-Sequenz: '\\%03o'"
+
+#~ msgid "`%s' attribute directive ignored"
+#~ msgstr "Attribut-Anweisung »%s« wird ignoriert"
+
+#~ msgid "wrong number of arguments specified for `%s' attribute"
+#~ msgstr "falsche Anzahl an Argumenten für das Attribut »%s« angegeben"
+
+#~ msgid "`%s' attribute does not apply to types"
+#~ msgstr "Attribut »%s« kann nicht auf Typen angewandt werden"
+
+#~ msgid "`%s' attribute only applies to function types"
+#~ msgstr "Attribut »%s« kann nur auf Funktionstypen angewandt werden"
+
+#~ msgid "`%s' attribute ignored"
+#~ msgstr "Attribut »%s« wird ignoriert"
+
+#~ msgid "offset outside bounds of constant string"
+#~ msgstr "Adressabstand ist außerhalb der Grenzen der konstanten Zeichenkette"
+
+#~ msgid "second arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "zweites Argument für »__builtin_prefetch« muss eine Konstante sein"
+
+#~ msgid "invalid second arg to __builtin_prefetch; using zero"
+#~ msgstr "ungültiges zweites Argument für »__builtin_prefetch«; es wird Null verwendet"
+
+#~ msgid "third arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "drittes Argument für »__builtin_prefetch« muss eine Konstante sein"
+
+#~ msgid "invalid third arg to __builtin_prefetch; using zero"
+#~ msgstr "ungültiges drittes Argument für »__builtin_prefetch«; es wird Null verwendet"
+
+#~ msgid "argument of `__builtin_args_info' must be constant"
+#~ msgstr "Argument von »__builtin_args_info« muss konstant sein"
+
+#~ msgid "argument of `__builtin_args_info' out of range"
+#~ msgstr "Argument von »__builtin_args_info« außerhalb des Wertebereichs"
+
+#~ msgid "missing argument in `__builtin_args_info'"
+#~ msgstr "fehlendes Argument in »__builtin_args_info«"
+
+#~ msgid "`va_start' used in function with fixed args"
+#~ msgstr "»va_start« in Funktion mit fester Parameterzahl verwendet"
+
+#~ msgid "second parameter of `va_start' not last named argument"
+#~ msgstr "zweiter Parameter von »va_start« ist nicht letztgenanntes Argument"
+
+#~ msgid "`__builtin_next_arg' called without an argument"
+#~ msgstr "»__builtin_next_arg« ohne Argument gerufen"
+
+#~ msgid "too many arguments to function `va_start'"
+#~ msgstr "zu viele Argumente für »va_start«"
+
+#~ msgid "first argument to `va_arg' not of type `va_list'"
+#~ msgstr "erstes Argument für »va_arg« nicht vom Typ »va_list«"
+
+#~ msgid "`%s' is promoted to `%s' when passed through `...'"
+#~ msgstr "»%s« auf »%s« gesetzt beim Durchlaufen von »...«"
+
+#~ msgid "(so you should pass `%s' not `%s' to `va_arg')"
+#~ msgstr "(Sie sollten also »%s« statt »%s« an »va_arg« übergeben)"
+
+#~ msgid "invalid arg to `__builtin_frame_address'"
+#~ msgstr "ungültiges Argument für »__builtin_frame_address«"
+
+#~ msgid "invalid arg to `__builtin_return_address'"
+#~ msgstr "ungültiges Argument für »__builtin_return_address«"
+
+#~ msgid "unsupported arg to `__builtin_frame_address'"
+#~ msgstr "nicht unterstütztes Argument für »__builtin_frame_address«"
+
+#~ msgid "unsupported arg to `__builtin_return_address'"
+#~ msgstr "nicht unterstütztes Argument für »__builtin_return_address«"
+
+#~ msgid "second arg to `__builtin_expect' must be a constant"
+#~ msgstr "zweites Argument für »__builtin_expect« muss eine Konstante sein"
+
+#~ msgid "__builtin_longjmp second argument must be 1"
+#~ msgstr "zweites Argument für __builtin_longjmp muss 1 sein"
+
+#~ msgid "built-in function `%s' not currently supported"
+#~ msgstr "eingebaute Funktion »%s« gegenwärtig nicht unterstützt"
+
+#~ msgid "target format does not support infinity"
+#~ msgstr "Zielformat unterstützt nicht »unendlich«"
+
+#~ msgid "%Hsuggest explicit braces to avoid ambiguous `else'"
+#~ msgstr "%Hes wird empfohlen, explizite geschweifte Klammern zu setzen, um mehrdeutiges »else« zu vermeiden"
+
+#~ msgid "%J'%D' is not defined outside of function scope"
+#~ msgstr "%J»%D« ist außerhalb des Funktionsgültigkeitsbereiches nicht definiert"
+
+#~ msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+#~ msgstr "Zeichenkettenlänge »%d« ist größer als die Länge »%d«, die von ISO-C%d-Compilern unterstützt werden muss"
+
+#~ msgid "overflow in constant expression"
+#~ msgstr "Überlauf in Konstanten-Ausdruck"
+
+#~ msgid "integer overflow in expression"
+#~ msgstr "Ganzzahlüberlauf in Ausdruck"
+
+#~ msgid "floating point overflow in expression"
+#~ msgstr "Gleitkommaüberlauf in Ausdruck"
+
+#~ msgid "vector overflow in expression"
+#~ msgstr "Vektorüberlauf in Ausdruck"
+
+#~ msgid "large integer implicitly truncated to unsigned type"
+#~ msgstr "große Ganzzahl implizit auf vorzeichenlosen Typen abgeschnitten"
+
+#~ msgid "negative integer implicitly converted to unsigned type"
+#~ msgstr "negative Ganzzahl implizit in vorzeichenlosen Typen konvertiert"
+
+#~ msgid "overflow in implicit constant conversion"
+#~ msgstr "Überlauf in impliziter Konstantenkonvertierung"
+
+#~ msgid "operation on `%s' may be undefined"
+#~ msgstr "Operation auf »%s« könnte undefiniert sein"
+
+#~ msgid "expression statement has incomplete type"
+#~ msgstr "Ausdrucksanweisung hat unvollständigen Typ"
+
+#~ msgid "case label does not reduce to an integer constant"
+#~ msgstr "case-Marke reduziert nicht auf Ganzzahlkonstante"
+
+#~ msgid "invalid truth-value expression"
+#~ msgstr "ungültiger Wahrheitswert-Ausdruck"
+
+#~ msgid "invalid operands to binary %s"
+#~ msgstr "ungültige Operanden für binäres %s"
+
+#~ msgid "comparison is always false due to limited range of data type"
+#~ msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »unwahr«"
+
+#~ msgid "comparison is always true due to limited range of data type"
+#~ msgstr "Vergleich ist durch beschränkten Wertebereich des Datentyps stets »wahr«"
+
+#~ msgid "comparison of unsigned expression >= 0 is always true"
+#~ msgstr "Vergleich eines vorzeichenlosen Ausdrucks >= 0 ist stets »wahr«"
+
+#~ msgid "comparison of unsigned expression < 0 is always false"
+#~ msgstr "Vergleich eines vorzeichenlosen Ausdrucks < 0 ist stets »unwahr«"
+
+#~ msgid "pointer of type `void *' used in arithmetic"
+#~ msgstr "Zeiger auf Typen »void *« in Arithmetik verwendet"
+
+#~ msgid "pointer to a function used in arithmetic"
+#~ msgstr "Zeiger auf Funktion in Arithmetik verwendet"
+
+#~ msgid "pointer to member function used in arithmetic"
+#~ msgstr "Zeiger auf Elementfunktion in Arithmetik verwendet"
+
+#~ msgid "pointer to a member used in arithmetic"
+#~ msgstr "Zeiger auf Element in Arithmetik verwendet"
+
+#~ msgid "struct type value used where scalar is required"
+#~ msgstr "Wert eines struct-Typs anstelle des geforderten Skalars verwendet"
+
+#~ msgid "union type value used where scalar is required"
+#~ msgstr "Wert eines union-Typs anstelle des geforderten Skalars verwendet"
+
+#~ msgid "array type value used where scalar is required"
+#~ msgstr "Wert eines array-Typs anstelle des geforderten Skalars verwendet"
+
+#~ msgid "the address of `%D', will always evaluate as `true'"
+#~ msgstr "die Adresse von »%D« wird immer zu »true« auswerten"
+
+#~ msgid "suggest parentheses around assignment used as truth value"
+#~ msgstr "um Zuweisung, die als Wahrheitswert verwendet wird, werden Klammern vorgeschlagen"
+
+#~ msgid "invalid use of `restrict'"
+#~ msgstr "ungültige Verwendung von »restrict«"
+
+#~ msgid "invalid application of `sizeof' to a function type"
+#~ msgstr "ungültige Anwendung von »sizeof« auf einen Funktionstypen"
+
+#~ msgid "invalid application of `%s' to a void type"
+#~ msgstr "ungültige Anwendung von »%s« auf einen void-Typen"
+
+#~ msgid "invalid application of `%s' to an incomplete type"
+#~ msgstr "ungültige Anwendung von »%s« auf einen unvollständigen Typen"
+
+#~ msgid "`__alignof' applied to a bit-field"
+#~ msgstr "»__alignof« auf Bitfeld angewandt"
+
+#~ msgid "cannot disable built-in function `%s'"
+#~ msgstr "kann eingebaute Funktion »%s« nicht abschalten"
+
+#~ msgid "too few arguments to function `%s'"
+#~ msgstr "zu wenig Argumente für Funktion »%s«"
+
+#~ msgid "too many arguments to function `%s'"
+#~ msgstr "zu viele Argumente für Funktion »%s«"
+
+#~ msgid "non-floating-point argument to function `%s'"
+#~ msgstr "nicht-Gleitkomma-Argument für Funktion »%s«"
+
+#~ msgid "pointers are not permitted as case values"
+#~ msgstr "Zeiger sind nicht als case-Werte zugelassen"
+
+#~ msgid "range expressions in switch statements are non-standard"
+#~ msgstr "Wertebereichsausdrücke in switch-Anweisungen sind nicht standardkonform"
+
+#~ msgid "empty range specified"
+#~ msgstr "leerer Wertebereich angegeben"
+
+#~ msgid "duplicate (or overlapping) case value"
+#~ msgstr "doppelte (oder sich überschneidende) case-Werte"
+
+#~ msgid "%Jthis is the first entry overlapping that value"
+#~ msgstr "%Jdies ist der erste Eintrag, der diesen Wert überschneidet"
+
+#~ msgid "duplicate case value"
+#~ msgstr "doppelter case-Wert"
+
+#~ msgid "%Jpreviously used here"
+#~ msgstr "%Jbereits hier verwendet"
+
+#~ msgid "multiple default labels in one switch"
+#~ msgstr "mehrere Standardmarken in einem »switch«"
+
+#~ msgid "%Jthis is the first default label"
+#~ msgstr "%Jdies ist die erste Standardmarke"
+
+#~ msgid "taking the address of a label is non-standard"
+#~ msgstr "das Ermitteln der Adresse einer Marke ist nicht standardkonform"
+
+#~ msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result"
+#~ msgstr "%Hder Rückgabewert von »%D« mit dem Attribut warn_unused_result wird ignoriert"
+
+#~ msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "%Hder Rückgabewert der Funktion, die mit dem Attribut warn_unused_result deklariert wurde, wird ignoriert"
+
+#~ msgid "declaration of \"%s\" shadows a parameter"
+#~ msgstr "Deklaration von »%s« überdeckt einen Parameter"
+
+#~ msgid "declaration of \"%s\" shadows a previous local"
+#~ msgstr "Deklaration von »%s« überdeckt einen vorhergehenden lokalen Bezeichner"
+
+#~ msgid "declaration of \"%s\" shadows a global declaration"
+#~ msgstr "Deklaration von »%s« überdeckt eine globale Deklaration"
+
+#~ msgid "%Jshadowed declaration is here"
+#~ msgstr "%Jverdeckte Deklaration ist hier"
+
+#~ msgid "unknown machine mode `%s'"
+#~ msgstr "unbekannter Maschinenzustand »%s«"
+
+#~ msgid "no data type for mode `%s'"
+#~ msgstr "kein Datentyp für Zustand »%s«"
+
+#~ msgid "invalid pointer mode `%s'"
+#~ msgstr "ungültiger Zeigermodus »%s«"
+
+#~ msgid "unable to emulate '%s'"
+#~ msgstr "»%s« kann nicht emuliert werden"
+
+#~ msgid "%Jsection attribute cannot be specified for local variables"
+#~ msgstr "%JAbschnitts-Attribut kann nicht für lokale Variablen angegeben werden"
+
+#~ msgid "%Jsection of '%D' conflicts with previous declaration"
+#~ msgstr "%JAbschnitt von »%D« in Konflikt mit vorheriger Deklaration"
+
+#~ msgid "%Jsection attribute not allowed for '%D'"
+#~ msgstr "%JAbschnitts-Attribute nicht erlaubt für »%D«"
+
+#~ msgid "%Jsection attributes are not supported for this target"
+#~ msgstr "%JAbschnitts-Attribute werden für dieses Ziel nicht unterstützt"
+
+#~ msgid "requested alignment is not a constant"
+#~ msgstr "verlangte Ausrichtung ist keine Konstante"
+
+#~ msgid "requested alignment is not a power of 2"
+#~ msgstr "verlangte Ausrichtung ist keine Zweierpotenz"
+
+#~ msgid "requested alignment is too large"
+#~ msgstr "verlangte Ausrichtung ist zu groß"
+
+#~ msgid "%Jalignment may not be specified for '%D'"
+#~ msgstr "%Jfür »%D« darf keine Ausrichtung angegeben werden"
+
+#~ msgid "%J'%D' defined both normally and as an alias"
+#~ msgstr "%J»%D« sowohl normal als auch als Alias definiert"
+
+#~ msgid "alias arg not a string"
+#~ msgstr "Alias-Argument ist keine Zeichenkette"
+
+#~ msgid "visibility arg not a string"
+#~ msgstr "Sichtbarkeitsargument ist keine Zeichenkette"
+
+#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+#~ msgstr "Sichtbarkeitsargument muss »default«, »hidden«, »protected« oder »internal« sein"
+
+#~ msgid "tls_model arg not a string"
+#~ msgstr "Argument für tls_model ist keine Zeichenkette"
+
+#~ msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+#~ msgstr "Argument für tls_model muss »local-exec«, »initial-exec«, »local-dynamic« oder »global-dynamic« sein"
+
+#~ msgid "%J'%E' attribute applies only to functions"
+#~ msgstr "%JAttribut »%E« kann nur auf Funktionen angewandt werden"
+
+#~ msgid "%Jcan't set '%E' attribute after definition"
+#~ msgstr "%Jkann Attribut »%E« nicht nach der Definition setzen"
+
+#~ msgid "`%s' attribute ignored for `%s'"
+#~ msgstr "Attribut »%s« ignoriert für »%s«"
+
+#~ msgid "invalid vector type for attribute `%s'"
+#~ msgstr "ungültiger Vektortyp für Attribut »%s«"
+
+#~ msgid "no vector mode with the size and type specified could be found"
+#~ msgstr "Vektorzustand mit der angegebenen Größe und dem angegebenen Typ konnte nicht gefunden werden"
+
+#~ msgid "nonnull attribute without arguments on a non-prototype"
+#~ msgstr "Nicht-Null-Attribut ohne Argumente für einen Nicht-Prototyp"
+
+#~ msgid "nonnull argument has invalid operand number (arg %lu)"
+#~ msgstr "Nicht-Null-Argument hat ungültige Operandenzahl (Argument %lu)"
+
+#~ msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+#~ msgstr "Nicht-Null-Argument mit Operandenzahl außerhalb des Wertebereiches (Argument %lu, Operand %lu)"
+
+#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+#~ msgstr "Nicht-Null-Argument referenziert Nicht-Zeiger-Operanden (Argument %lu, Operand %lu)"
+
+#~ msgid "null argument where non-null required (arg %lu)"
+#~ msgstr "Null-Argument, wo Nicht-Null erwartet (Argument %lu)"
+
+#~ msgid "cleanup arg not an identifier"
+#~ msgstr "Argument für cleanup ist kein Bezeichner"
+
+#~ msgid "cleanup arg not a function"
+#~ msgstr "Argument für cleanup ist keine Funktion"
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s am Ende der Eingabe"
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s vor %s'%c'"
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s vor %s'\\x%x'"
+
+#~ msgid "%s before string constant"
+#~ msgstr "%s vor Zeichenkettenkonstante"
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s vor numerischer Konstante"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s vor \"%s\""
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s vor »%s«"
+
+#~ msgid "void value not ignored as it ought to be"
+#~ msgstr "void-Wert nicht ignoriert wie es sein sollte"
+
+#~ msgid "conversion to non-scalar type requested"
+#~ msgstr "Konvertierung zu Nicht-Skalar-Typ verlangt"
+
+#~ msgid "%Jarray '%D' assumed to have one element"
+#~ msgstr "%JFeld »%D« als einelementig betrachtet"
+
+#~ msgid "%Jlabel `%D' used but not defined"
+#~ msgstr "%JMarke »%D« verwendet, aber nicht definiert"
+
+#~ msgid "%Jlabel `%D' defined but not used"
+#~ msgstr "%JMarke »%D« definiert aber nicht verwendet"
+
+#~ msgid "%Jlabel `%D' declared but not defined"
+#~ msgstr "%JMarke »%D« deklariert, aber nicht definiert"
+
+#~ msgid "%Junused variable `%D'"
+#~ msgstr "%JVariable »%D« wird nicht verwendet"
+
+#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+#~ msgstr "eine Parameterliste mit Auslassung passt nicht zu einer leeren Parameternamenslistendeklaration"
+
+#~ msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+#~ msgstr "ein Argumenttyp mit Standard-Promotion passt nicht zu leerer Parameternamenslistendeklaration"
+
+#~ msgid "%Jprototype for '%D' declares more arguments than previous old-style definition"
+#~ msgstr "%JPrototyp für »%D« deklariert mehr Argumente als vorherige Definition im alten Stil"
+
+#~ msgid "%Jprototype for '%D' declares fewer arguments than previous old-style definition"
+#~ msgstr "%JPrototyp für »%D« deklariert weniger Argumente als vorherige Definition im alten Stil"
+
+#~ msgid "%Jprototype for '%D' declares arg %d with incompatible type"
+#~ msgstr "%JPrototyp für »%D« deklariert Argument %d mit inkompatiblem Typen"
+
+#~ msgid "%Jprototype for '%D' follows non-prototype definition"
+#~ msgstr "%JPrototyp für »%D« folgt einer Nicht-Prototyp-Definition"
+
+#~ msgid "%Jprevious definition of '%D' was here"
+#~ msgstr "%Jvorherige Definition von »%D« war hier"
+
+#~ msgid "%Jprevious implicit declaration of '%D' was here"
+#~ msgstr "%Jvorherige implizite Deklaration von »%D« war hier"
+
+#~ msgid "%Jprevious declaration of '%D' was here"
+#~ msgstr "%Jvorherige Deklaration von »%D« war hier"
+
+#~ msgid "%J'%D' redeclared as different kind of symbol"
+#~ msgstr "%J»%D« redeklariert als andere Symbolart"
+
+#~ msgid "%Jbuilt-in function '%D' declared as non-function"
+#~ msgstr "%Jeingebaute Funktion »%D« als Nicht-Funktion deklariert"
+
+#~ msgid "%Jshadowing built-in function '%D'"
+#~ msgstr "%Jeingebaute Funktion »%D« überdeckt"
+
+#~ msgid "%Jconflicting types for built-in function '%D'"
+#~ msgstr "%Jin Konflikt stehende Typen für eingebaute Funktion »%D«"
+
+#~ msgid "%Jconflicting types for '%D'"
+#~ msgstr "%Jin Konflikt stehende Typen für »%D«"
+
+#~ msgid "%Jredefinition of typedef '%D'"
+#~ msgstr "%JRedefinition des typedef »%D«"
+
+#~ msgid "%Jredefinition of '%D'"
+#~ msgstr "%JRedefinition von »%D«"
+
+#~ msgid "%Jstatic declaration of '%D' follows non-static declaration"
+#~ msgstr "%Jstatische Deklaration von »%D« folgt Nicht-statischer Deklaration"
+
+#~ msgid "%Jnon-static declaration of '%D' follows static declaration"
+#~ msgstr "%JNicht-statische-Deklaration von »%D« folgt statischer Deklaration"
+
+#~ msgid "%Jthread-local declaration of '%D' follows non-thread-local declaration"
+#~ msgstr "%JThread-lokale Deklaration von »%D« folgt nicht-Thread-lokaler Deklaration"
+
+#~ msgid "%Jnon-thread-local declaration of '%D' follows thread-local declaration"
+#~ msgstr "%JNicht-Thread-lokale Deklaration von »%D« folgt Thread-lokaler Deklaration"
+
+#~ msgid "%Jextern declaration of '%D' follows declaration with no linkage"
+#~ msgstr "%Jextern-Deklaration von »%D« folgt Deklaration ohne Bindung"
+
+#~ msgid "%Jdeclaration of '%D' with no linkage follows extern declaration"
+#~ msgstr "%JDeklaration von »%D« ohne Bindung folgt einer externen Deklaration"
+
+#~ msgid "%Jredeclaration of '%D' with no linkage"
+#~ msgstr "%JRedeklarationen von »%D« ohne Bindung"
+
+#~ msgid "%Jredeclaration of '%D' with different visibility (old visibility preserved)"
+#~ msgstr "%JRedeklaration von »%D« mit anderer Sichtbarkeit (alte Sichtbarkeit beibehalten)"
+
+#~ msgid "%Jinline declaration of '%D' follows declaration with attribute noinline"
+#~ msgstr "%Jinline-Deklaration von »%D« folgt Deklaration mit Attribut noinline"
+
+#~ msgid "%Jdeclaration of '%D' with attribute noinline follows inline declaration "
+#~ msgstr "%JDeklaration von »%D« mit Attribut noinline folgt inline-Deklaration "
+
+#~ msgid "%J'%D' declared inline after being called"
+#~ msgstr "%J»%D« als inline deklariert nachdem es aufgerufen wurde"
+
+#~ msgid "%J'%D' declared inline after its definition"
+#~ msgstr "%J»%D« nach der Definition als inline deklariert"
+
+#~ msgid "%Jvolatile declaration of '%D' follows non-volatile declaration"
+#~ msgstr "%J»volatile«-Deklaration von »%D« folgt nicht-»volatile«-Deklaration"
+
+#~ msgid "%Jnon-volatile declaration of '%D' follows volatile declaration"
+#~ msgstr "%JNicht-»volatile«-Deklaration von »%D« folgt »volatile«-Deklaration"
+
+#~ msgid "%Jconst declaration of '%D' follows non-const declaration"
+#~ msgstr "%Jconst-Deklaration für »%D« folgt Nicht-const Deklaration"
+
+#~ msgid "%Jnon-const declaration of '%D' follows const declaration"
+#~ msgstr "%JNicht-const-Deklaration von »%D« folgt const-Deklaration"
+
+#~ msgid "%Jredundant redeclaration of '%D'"
+#~ msgstr "%Jredundante Redeklaration von »%D«"
+
+#~ msgid "nested extern declaration of `%s'"
+#~ msgstr "geschachtelte extern-Deklaration von »%s«"
+
+#~ msgid "%Jprevious declaration of '%D'"
+#~ msgstr "%Jvorherige Deklaration von »%D«"
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr "implizite Deklaration der Funktion »%s«"
+
+#~ msgid "`%s' undeclared here (not in a function)"
+#~ msgstr "»%s« ist hier nicht deklariert (nicht in einer Funktion)"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr "»%s« nicht deklariert (erste Benutzung in dieser Funktion)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt"
+
+#~ msgid "for each function it appears in.)"
+#~ msgstr "für jede Funktion in der er auftritt.)"
+
+#~ msgid "label %s referenced outside of any function"
+#~ msgstr "Marke %s außerhalb einer Funktion referenziert"
+
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr "doppelte Markendeklaration »%s«"
+
+#~ msgid "%Jthis is a previous declaration"
+#~ msgstr "%Jdies ist eine vorherige Deklaration"
+
+#~ msgid "%Hduplicate label `%D'"
+#~ msgstr "%Hdoppelte Marke »%D«"
+
+#~ msgid "%J`%D' previously defined here"
+#~ msgstr "%J»%D« bereits hier definiert"
+
+#~ msgid "%J`%D' previously declared here"
+#~ msgstr "%J»%D« bereits hier deklariert"
+
+#~ msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts"
+#~ msgstr "%Htraditionelles C bietet keinen separaten Namespace für Marken an, Bezeichner »%s« steht in Konflikt"
+
+#~ msgid "%H`%s' defined as wrong kind of tag"
+#~ msgstr "%H»%s« definiert als falsche Symbolart"
+
+#~ msgid "unnamed struct/union that defines no instances"
+#~ msgstr "unbenannte struct/union, die keine Instanzen definiert"
+
+#~ msgid "useless keyword or type name in empty declaration"
+#~ msgstr "nutzloses Schlüsselwort oder Typenname in leerer Deklaration"
+
+#~ msgid "two types specified in one empty declaration"
+#~ msgstr "zwei Typen in einer leeren Deklaration angegeben"
+
+#~ msgid "empty declaration"
+#~ msgstr "leere Deklaration"
+
+#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+#~ msgstr "ISO-C90 unterstützt kein »static« oder Typkennzeichner in Parameterfelddeklaratoren"
+
+#~ msgid "ISO C90 does not support `[*]' array declarators"
+#~ msgstr "ISO-C90 unterstützt nicht »[*]«-Felddeklaratoren"
+
+#~ msgid "GCC does not yet properly implement `[*]' array declarators"
+#~ msgstr "GCC implementiert noch keine richtigen »[*]«-Felddeklaratoren"
+
+#~ msgid "static or type qualifiers in abstract declarator"
+#~ msgstr "static oder Typkennzeichner in abstraktem Deklarator"
+
+#~ msgid "%J'%D' is usually a function"
+#~ msgstr "%J»%D« ist üblicherweise eine Funktion"
+
+#~ msgid "typedef `%s' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef »%s« ist initialisiert (benutzen Sie stattdessen __typeof__)"
+
+#~ msgid "function `%s' is initialized like a variable"
+#~ msgstr "Funktion »%s« ist wie eine Variable initialisiert"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "Parameter »%s« ist initialisiert"
+
+#~ msgid "variable-sized object may not be initialized"
+#~ msgstr "Objekt variabler Größe darf nicht initialisiert werden"
+
+#~ msgid "variable `%s' has initializer but incomplete type"
+#~ msgstr "Variable »%s« hat Initialisierung, aber unvollständigen Typ"
+
+#~ msgid "elements of array `%s' have incomplete type"
+#~ msgstr "Elemente des Feldes »%s« haben unvollständigen Typ"
+
+#~ msgid "%Jinline function '%D' given attribute noinline"
+#~ msgstr "%Jinline-Funktion »%D« wurde das Attribut »noinline« gegeben"
+
+#~ msgid "%Jinitializer fails to determine size of '%D'"
+#~ msgstr "%JInitialisierung scheitert an Größenbestimmung von »%D«"
+
+#~ msgid "%Jarray size missing in '%D'"
+#~ msgstr "%JFeldgröße in »%D« fehlt"
+
+#~ msgid "%Jzero or negative size array '%D'"
+#~ msgstr "%JFeldgröße von »%D« ist null oder negativ"
+
+#~ msgid "%Jstorage size of '%D' isn't known"
+#~ msgstr "%JSpeichergröße von »%D« ist unbekannt"
+
+#~ msgid "%Jstorage size of '%D' isn't constant"
+#~ msgstr "%JSpeichergröße von »%D« ist nicht konstant"
+
+#~ msgid "%Jignoring asm-specifier for non-static local variable '%D'"
+#~ msgstr "%Jasm-Symbol für nicht-statische lokale Variable »%D« wird ignoriert"
+
+#~ msgid "ISO C forbids forward parameter declarations"
+#~ msgstr "ISO-C verbietet Vorwärtsdeklaration für Parameter"
+
+#~ msgid "<anonymous>"
+#~ msgstr "<anonym>"
+
+#~ msgid "bit-field `%s' width not an integer constant"
+#~ msgstr "Breite des Bitfeldes »%s« ist keine Ganzzahlkonstante"
+
+#~ msgid "negative width in bit-field `%s'"
+#~ msgstr "negative Breite in Bitfeld »%s«"
+
+#~ msgid "zero width for bit-field `%s'"
+#~ msgstr "Breite null für Bitfeld »%s«"
+
+#~ msgid "bit-field `%s' has invalid type"
+#~ msgstr "Bitfeld »%s« hat ungültigen Typen"
+
+#~ msgid "type of bit-field `%s' is a GCC extension"
+#~ msgstr "der Typ des Bitfeldes »%s« ist eine Erweiterung des GCC"
+
+#~ msgid "width of `%s' exceeds its type"
+#~ msgstr "Breite von »%s« überschreitet dessen Typen"
+
+#~ msgid "`%s' is narrower than values of its type"
+#~ msgstr "»%s« ist schmaler als die Werte seines Typs"
+
+#~ msgid "`long long long' is too long for GCC"
+#~ msgstr "»long long long« ist für GCC zu lang"
+
+#~ msgid "ISO C90 does not support `long long'"
+#~ msgstr "ISO-C90 unterstützt nicht »long long«"
+
+#~ msgid "duplicate `%s'"
+#~ msgstr "doppeltes »%s«"
+
+#~ msgid "`__thread' before `extern'"
+#~ msgstr "»__thread« vor »extern«"
+
+#~ msgid "`__thread' before `static'"
+#~ msgstr "»__thread« vor »static«"
+
+#~ msgid "two or more data types in declaration of `%s'"
+#~ msgstr "zwei oder mehr Datentypen in Deklaration von »%s«"
+
+#~ msgid "`%s' fails to be a typedef or built in type"
+#~ msgstr "»%s« ist kein typedef oder eingebauter Typ"
+
+#~ msgid "type defaults to `int' in declaration of `%s'"
+#~ msgstr "»int« ist Standardtyp in Deklaration von »%s«"
+
+#~ msgid "both long and short specified for `%s'"
+#~ msgstr "sowohl »long« als auch »short« für »%s« angegeben"
+
+#~ msgid "long or short specified with char for `%s'"
+#~ msgstr "»long« oder »short« mit »char« für »%s« angegeben"
+
+#~ msgid "long or short specified with floating type for `%s'"
+#~ msgstr "»long« oder »short« mit Gleitkommatyp für »%s« angegeben"
+
+#~ msgid "the only valid combination is `long double'"
+#~ msgstr "die einzig gültige Kombination ist »long double«"
+
+#~ msgid "both signed and unsigned specified for `%s'"
+#~ msgstr "sowohl »signed« als auch »unsigned« für »%s« angegeben"
+
+#~ msgid "long, short, signed or unsigned invalid for `%s'"
+#~ msgstr "long, short, signed oder unsigned ist ungültig für »%s«"
+
+#~ msgid "long, short, signed or unsigned used invalidly for `%s'"
+#~ msgstr "long, short, signed oder unsigned ungültig verwendet für »%s«"
+
+#~ msgid "complex invalid for `%s'"
+#~ msgstr "complex ungültig für »%s«"
+
+#~ msgid "ISO C90 does not support complex types"
+#~ msgstr "ISO-C90 unterstützt nicht komplexe Typen"
+
+#~ msgid "ISO C does not support plain `complex' meaning `double complex'"
+#~ msgstr "ISO-C unterstützt nicht »double complex« bedeutendes »complex«"
+
+#~ msgid "ISO C does not support complex integer types"
+#~ msgstr "ISO-C unterstützt keine komplexen Ganzzahltypen"
+
+#~ msgid "duplicate `const'"
+#~ msgstr "doppeltes »const«"
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr "doppeltes »restrict«"
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr "doppeltes »volatile«"
+
+#~ msgid "multiple storage classes in declaration of `%s'"
+#~ msgstr "mehrere Speicherklassen in Deklaration von »%s«"
+
+#~ msgid "function definition declared `auto'"
+#~ msgstr "Funktionsdefinition deklarierte »auto«"
+
+#~ msgid "function definition declared `register'"
+#~ msgstr "Funktionsdefinition deklarierte »register«"
+
+#~ msgid "function definition declared `typedef'"
+#~ msgstr "Funktionsdefinition deklarierte »typedef«"
+
+#~ msgid "function definition declared `__thread'"
+#~ msgstr "Funktionsdefinition deklarierte »__thread«"
+
+#~ msgid "storage class specified for structure field `%s'"
+#~ msgstr "Speicherklasse für Strukturfeld »%s« angegeben"
+
+#~ msgid "storage class specified for parameter `%s'"
+#~ msgstr "Speicherklasse für Parameter »%s« angegeben"
+
+#~ msgid "storage class specified for typename"
+#~ msgstr "Speicherklasse für Typnamen angegeben"
+
+#~ msgid "`%s' initialized and declared `extern'"
+#~ msgstr "»%s« initialisiert und als »extern« deklariert"
+
+#~ msgid "`%s' has both `extern' and initializer"
+#~ msgstr "»%s« hat sowohl »extern« als auch Initialisierung"
+
+#~ msgid "file-scope declaration of `%s' specifies `auto'"
+#~ msgstr "Deklaration von »%s« in Datei-Sichtbarkeitsbereich spezifiziert »auto«"
+
+#~ msgid "nested function `%s' declared `extern'"
+#~ msgstr "geschachtelte Funktion »%s« als »extern« deklariert"
+
+#~ msgid "function-scope `%s' implicitly auto and declared `__thread'"
+#~ msgstr "Funktions-Gültigkeitsbereich »%s« ist implizit auto und deklarierte »__thread«"
+
+#~ msgid "static or type qualifiers in non-parameter array declarator"
+#~ msgstr "»static« oder Typkennzeichner in Nicht-Parameter-Felddeklarator"
+
+#~ msgid "declaration of `%s' as array of voids"
+#~ msgstr "Deklaration von »%s« als Feld von voids"
+
+#~ msgid "declaration of `%s' as array of functions"
+#~ msgstr "Deklaration von »%s« als Feld von Funtionen"
+
+#~ msgid "invalid use of structure with flexible array member"
+#~ msgstr "ungültige Verwendung einer Struktur mit flexiblem Feldelement"
+
+#~ msgid "size of array `%s' has non-integer type"
+#~ msgstr "Feldgröße von »%s« hat Nicht-Ganzzahltyp"
+
+#~ msgid "ISO C forbids zero-size array `%s'"
+#~ msgstr "ISO-C verbietet Feld »%s« der Größe null"
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "Feldgröße von »%s« ist negativ"
+
+#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+#~ msgstr "ISO-C90 verbietet Feld »%s«, dessen Größe nicht ausgewertet werden kann"
+
+#~ msgid "ISO C90 forbids variable-size array `%s'"
+#~ msgstr "ISO-C90 verbietet Feld »%s« variabler Größe"
+
+#~ msgid "size of array `%s' is too large"
+#~ msgstr "Feldgröße von »%s« ist zu groß"
+
+#~ msgid "ISO C90 does not support flexible array members"
+#~ msgstr "ISO-C90 unterstützt keine flexiblen Felder als Elemente"
+
+#~ msgid "array type has incomplete element type"
+#~ msgstr "Feldtyp hat unvollständigen Elementtypen"
+
+#~ msgid "`%s' declared as function returning a function"
+#~ msgstr "»%s« als Funktion, die eine Funktion zurückgibt, deklariert"
+
+#~ msgid "`%s' declared as function returning an array"
+#~ msgstr "»%s« als Funktion, die ein Feld zurückgibt, deklariert"
+
+#~ msgid "ISO C forbids qualified void function return type"
+#~ msgstr "ISO-C verbietet qualifiziertes void als Funktions-Rückgabetypen"
+
+#~ msgid "type qualifiers ignored on function return type"
+#~ msgstr "Typkennzeichner ignoriert an Funktions-Rückgabewert"
+
+#~ msgid "ISO C forbids qualified function types"
+#~ msgstr "ISO-C verbietet qualifizierte Funktionstypen"
+
+#~ msgid "invalid type modifier within pointer declarator"
+#~ msgstr "ungültiger Typmodifizierer innerhalb Zeigerdeklarator"
+
+#~ msgid "ISO C forbids const or volatile function types"
+#~ msgstr "ISO-C verbietet const- oder volatile-Funktionstypen"
+
+#~ msgid "variable or field `%s' declared void"
+#~ msgstr "Variable oder Feld »%s« als »void« deklariert"
+
+#~ msgid "attributes in parameter array declarator ignored"
+#~ msgstr "Attribute in Parameterfelddeklarator ignoriert"
+
+#~ msgid "invalid type modifier within array declarator"
+#~ msgstr "ungültiger Typmodifizierer in Felddeklarator"
+
+#~ msgid "field `%s' declared as a function"
+#~ msgstr "Feld »%s« als Funktion deklariert"
+
+#~ msgid "field `%s' has incomplete type"
+#~ msgstr "Feld »%s« hat unvollständigen Typen"
+
+#~ msgid "invalid storage class for function `%s'"
+#~ msgstr "ungültige Speicherklasse für Funktion »%s«"
+
+#~ msgid "`noreturn' function returns non-void value"
+#~ msgstr "»noreturn«-Funktion gibt nicht-void-Wert zurück"
+
+#~ msgid "cannot inline function `main'"
+#~ msgstr "»main« ist nicht als »inline« möglich"
+
+#~ msgid "variable previously declared `static' redeclared `extern'"
+#~ msgstr "als »extern« redeklarierte Variable war bereits als »static« deklariert"
+
+#~ msgid "%Jvariable '%D' declared `inline'"
+#~ msgstr "%JVariable »%D« als »inline« deklariert"
+
+#~ msgid "thread-local storage not supported for this target"
+#~ msgstr "Thread-lokaler Speicher wird für dieses Ziel nicht unterstützt"
+
+#~ msgid "function declaration isn't a prototype"
+#~ msgstr "Funktionsdeklaration ist kein Prototyp"
+
+#~ msgid "parameter names (without types) in function declaration"
+#~ msgstr "Parameternamen (ohne Typen) in Funktionsdeklaration"
+
+#~ msgid "parameter `%s' has incomplete type"
+#~ msgstr "Parameter »%s« hat unvollständigen Typen"
+
+#~ msgid "parameter has incomplete type"
+#~ msgstr "Parameter hat unvollständigen Typen"
+
+#~ msgid "\"void\" as only parameter may not be qualified"
+#~ msgstr "\"void\" kann als einziger Parameter nicht qualifiziert werden"
+
+#~ msgid "\"void\" must be the only parameter"
+#~ msgstr "\"void\" muss der einzige Parameter sein"
+
+#~ msgid "%Jparameter \"%D\" has just a forward declaration"
+#~ msgstr "%JParameter »%D« hat nur eine Vorwärtsdeklaration"
+
+#~ msgid "\"%s %s\" declared inside parameter list"
+#~ msgstr "\"%s %s\" innerhalb Parameterliste deklariert"
+
+#~ msgid "anonymous %s declared inside parameter list"
+#~ msgstr "anonymes %s innerhalb Parameterliste deklariert"
+
+#~ msgid "its scope is only this definition or declaration, which is probably not what you want"
+#~ msgstr "sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten"
+
+#~ msgid "redefinition of `union %s'"
+#~ msgstr "Redefinition von »union %s«"
+
+#~ msgid "redefinition of `struct %s'"
+#~ msgstr "Redefinition von »struct %s«"
+
+#~ msgid "declaration does not declare anything"
+#~ msgstr "Deklaration deklariert nichts"
+
+#~ msgid "%Jduplicate member '%D'"
+#~ msgstr "%Jdoppeltes Element »%D«"
+
+#~ msgid "%s defined inside parms"
+#~ msgstr "%s innerhalb Parameter definiert"
+
+#~ msgid "union"
+#~ msgstr "Union"
+
+#~ msgid "structure"
+#~ msgstr "Struktur"
+
+#~ msgid "%s has no %s"
+#~ msgstr "%s hat kein %s"
+
+#~ msgid "struct"
+#~ msgstr "struct"
+
+#~ msgid "named members"
+#~ msgstr "benannte Elemente"
+
+#~ msgid "members"
+#~ msgstr "Elemente"
+
+#~ msgid "nested redefinition of `%s'"
+#~ msgstr "Verschachtelte Redefinition von »%s«"
+
+#~ msgid "%Jflexible array member in union"
+#~ msgstr "%Jflexibles Feldelement in Union"
+
+#~ msgid "%Jflexible array member not at end of struct"
+#~ msgstr "%Jflexibles Feld-Element nicht am Ende von struct"
+
+#~ msgid "%Jflexible array member in otherwise empty struct"
+#~ msgstr "%Jlexibler Feld-Element in ansonsten leerem struct"
+
+#~ msgid "%Jinvalid use of structure with flexible array member"
+#~ msgstr "%Jungültige Verwendung einer Struktur mit flexiblem Feld-Element"
+
+#~ msgid "union cannot be made transparent"
+#~ msgstr "union kann nicht transparent gemacht werden"
+
+#~ msgid "redeclaration of `enum %s'"
+#~ msgstr "Redeklaration von »enum %s«"
+
+#~ msgid "enum defined inside parms"
+#~ msgstr "enum innerhalb von Parametern definiert"
+
+#~ msgid "enumeration values exceed range of largest integer"
+#~ msgstr "Aufzählungswerte überschreiten Wertebereich des größten Ganzzahltypen"
+
+#~ msgid "enumerator value for `%s' not integer constant"
+#~ msgstr "Aufzählungswert für »%s« ist keine Ganzzahlkonstante"
+
+#~ msgid "overflow in enumeration values"
+#~ msgstr "Überlauf in Aufzählungswerten"
+
+#~ msgid "ISO C restricts enumerator values to range of `int'"
+#~ msgstr "ISO-C beschränkt Aufzählungswerte auf Bereich von »int«"
+
+#~ msgid "return type is an incomplete type"
+#~ msgstr "Rückgabetyp ist unvollständig"
+
+#~ msgid "return type defaults to `int'"
+#~ msgstr "Rückgabetyp ist auf »int« voreingestellt"
+
+#~ msgid "%Jno previous prototype for '%D'"
+#~ msgstr "%Jkein vorheriger Prototyp für »%D«"
+
+#~ msgid "%J'%D' was used with no prototype before its definition"
+#~ msgstr "%J»%D« wurde vor seiner Definition ohne Prototyp verwendet"
+
+#~ msgid "%Jno previous declaration for '%D'"
+#~ msgstr "%Jkeine vorherige Deklaration für »%D«"
+
+#~ msgid "%J`%D' was used with no declaration before its definition"
+#~ msgstr "%J»%D« wurde vor seiner Definition ohne Deklaration verwendet"
+
+#~ msgid "%Jreturn type of '%D' is not `int'"
+#~ msgstr "%JRückgabetyp von »%D« ist nicht »int«"
+
+#~ msgid "%Jfirst argument of '%D' should be `int'"
+#~ msgstr "%Jerstes Argument von »%D« sollte »int« sein"
+
+#~ msgid "%Jsecond argument of '%D' should be 'char **'"
+#~ msgstr "%Jzweites Argument von »%D« sollte »char **« sein"
+
+#~ msgid "%Jthird argument of '%D' should probably be 'char **'"
+#~ msgstr "%Jdrittes Argument von »%D« sollte wahrscheinlich »char **« sein"
+
+#~ msgid "%J'%D' takes only zero or two arguments"
+#~ msgstr "%J»%D« benötigt entweder null oder zwei Argumente"
+
+#~ msgid "%J'%D' is normally a non-static function"
+#~ msgstr "%J»%D« ist normalerweise eine Nicht-static-Funktion"
+
+#~ msgid "%Jold-style parameter declarations in prototyped function definition"
+#~ msgstr "%JParameterdeklarationen alten Stils in Prototyp-Funktionsdeklaration"
+
+#~ msgid "%Jparameter name omitted"
+#~ msgstr "%JParametername ausgelassen"
+
+#~ msgid "%Jparameter name missing from parameter list"
+#~ msgstr "%JParametername fehlt in Parameterliste"
+
+#~ msgid "%J\"%D\" declared as a non-parameter"
+#~ msgstr "%J\"%D\" als Nicht-Parameter deklariert"
+
+#~ msgid "%Jmultiple parameters named \"%D\""
+#~ msgstr "%Jmehrere Parameter wurden »%D« genannt"
+
+#~ msgid "%Jparameter \"%D\" declared void"
+#~ msgstr "%JParameter »%D« als void deklariert"
+
+#~ msgid "%Jtype of \"%D\" defaults to \"int\""
+#~ msgstr "%JTyp von »%D« ist auf »int« voreingestellt"
+
+#~ msgid "%Jparameter \"%D\" has incomplete type"
+#~ msgstr "%JParameter \"%D\" hat unvollständigen Typen"
+
+#~ msgid "%Jdeclaration for parameter \"%D\" but no such parameter"
+#~ msgstr "%Jnicht vorhandener Parameter »%D« deklariert"
+
+#~ msgid "number of arguments doesn't match prototype"
+#~ msgstr "Anzahl der Argumente passt nicht zum Prototypen"
+
+#~ msgid "%Hprototype declaration"
+#~ msgstr "%HPrototyp-Deklaration"
+
+#~ msgid "promoted argument \"%D\" doesn't match prototype"
+#~ msgstr "weitergegebenes Argument »%D« passt nicht zum Prototypen"
+
+#~ msgid "argument \"%D\" doesn't match prototype"
+#~ msgstr "Argument »%D« passt nicht zum Prototypen"
+
+#~ msgid "no return statement in function returning non-void"
+#~ msgstr "keine return-Anweisung in nicht void zurückgebender Funktion"
+
+#~ msgid "this function may return with or without a value"
+#~ msgstr "diese Funktion kann mit oder ohne Wert zurückkehren"
+
+#~ msgid "'for' loop initial declaration used outside C99 mode"
+#~ msgstr "Anfangsdeklaration in »for«-Schleife außerhalb C99-Modus verwendet"
+
+#~ msgid "'struct %s' declared in 'for' loop initial declaration"
+#~ msgstr "»struct %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#~ msgid "'union %s' declared in 'for' loop initial declaration"
+#~ msgstr "»union %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#~ msgid "'enum %s' declared in 'for' loop initial declaration"
+#~ msgstr "»enum %s« in Anfangsdeklaration einer »for«-Schleife deklariert"
+
+#~ msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%JDeklaration der Nicht-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife"
+
+#~ msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%JDeklaration der »static«-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife"
+
+#~ msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%JDeklaration der »extern«-Variablen »%D« in Anfangsdeklaration einer »for«-Schleife"
+
+#~ msgid "%Jredefinition of global '%D'"
+#~ msgstr "%JRedefinition des globalen »%D«"
+
+#~ msgid "%J'%D' previously defined here"
+#~ msgstr "%J»%D« bereits hier verwendet"
+
+#~ msgid "format string has invalid operand number"
+#~ msgstr "Formatzeichenkette hat ungültige Operandenzahl"
+
+#~ msgid "function does not return string type"
+#~ msgstr "Funktion gibt keinen Zeichenkettentypen zurück"
+
+#~ msgid "format string arg not a string type"
+#~ msgstr "Format-Zeichenkettenargument ist kein Zeichenkettentyp"
+
+#~ msgid "unrecognized format specifier"
+#~ msgstr "unerkannte Formatangabe"
+
+#~ msgid "`%s' is an unrecognized format function type"
+#~ msgstr "»%s« ist ein nicht erkannter Formatfunktionstyp"
+
+#~ msgid "'...' has invalid operand number"
+#~ msgstr "»...« hat ungültige Operandenzahl"
+
+#~ msgid "format string arg follows the args to be formatted"
+#~ msgstr "Format-Zeichenkettenargument folgt den zu formatierenden Argumenten"
+
+#~ msgid "` ' flag"
+#~ msgstr "» «-Kennzeichen"
+
+#~ msgid "the ` ' printf flag"
+#~ msgstr "das » «-printf-Kennzeichen"
+
+#~ msgid "`+' flag"
+#~ msgstr "»+«-Kennzeichen"
+
+#~ msgid "the `+' printf flag"
+#~ msgstr "das »+«-printf-Kennzeichen"
+
+#~ msgid "`#' flag"
+#~ msgstr "»#«-Kennzeichen"
+
+#~ msgid "the `#' printf flag"
+#~ msgstr "das »#«-printf-Kennzeichen"
+
+#~ msgid "`0' flag"
+#~ msgstr "»0«-Kennzeichen"
+
+#~ msgid "the `0' printf flag"
+#~ msgstr "das »0«-printf-Kennzeichen"
+
+#~ msgid "`-' flag"
+#~ msgstr "»-«-Kennzeichen"
+
+#~ msgid "the `-' printf flag"
+#~ msgstr "das »-«-printf-Kennzeichen"
+
+#~ msgid "`'' flag"
+#~ msgstr "»'«-Kennzeichen"
+
+#~ msgid "the `'' printf flag"
+#~ msgstr "das »'«-printf-Kennzeichen"
+
+#~ msgid "`I' flag"
+#~ msgstr "»I«-Kennzeichen"
+
+#~ msgid "the `I' printf flag"
+#~ msgstr "das »I«-printf-Kennzeichen"
+
+#~ msgid "field width"
+#~ msgstr "Feldbreite"
+
+#~ msgid "field width in printf format"
+#~ msgstr "Feldbreite im printf-Format"
+
+#~ msgid "precision"
+#~ msgstr "Genauigkeit"
+
+#~ msgid "precision in printf format"
+#~ msgstr "Genauigkeit im printf-Format"
+
+#~ msgid "length modifier"
+#~ msgstr "Längenmodifizierer"
+
+#~ msgid "length modifier in printf format"
+#~ msgstr "Längenmodifizierer im printf-Format"
+
+#~ msgid "assignment suppression"
+#~ msgstr "Zuweisungsunterdrückung"
+
+#~ msgid "the assignment suppression scanf feature"
+#~ msgstr "das scanf-Merkmal der Zuweisungsunterdrückung"
+
+#~ msgid "`a' flag"
+#~ msgstr "»a«-Kennzeichen"
+
+#~ msgid "the `a' scanf flag"
+#~ msgstr "das »a«-scanf-Kennzeichen"
+
+#~ msgid "field width in scanf format"
+#~ msgstr "Feldbreite im scanf-Format"
+
+#~ msgid "length modifier in scanf format"
+#~ msgstr "Längenmodifizierer im scanf-Format"
+
+#~ msgid "the `'' scanf flag"
+#~ msgstr "das »'«-scanf-Kennzeichen"
+
+#~ msgid "the `I' scanf flag"
+#~ msgstr "das »I«-scanf-Kennzeichen"
+
+#~ msgid "`_' flag"
+#~ msgstr "»_«-Kennzeichen"
+
+#~ msgid "the `_' strftime flag"
+#~ msgstr "das »_«-strftime-Kennzeichen"
+
+#~ msgid "the `-' strftime flag"
+#~ msgstr "das »-«-strftime-Kennzeichen"
+
+#~ msgid "the `0' strftime flag"
+#~ msgstr "das »0«-strftime-Kennzeichen"
+
+#~ msgid "`^' flag"
+#~ msgstr "»^«-Kennzeichen"
+
+#~ msgid "the `^' strftime flag"
+#~ msgstr "das »^«-strftime-Kennzeichen"
+
+#~ msgid "the `#' strftime flag"
+#~ msgstr "das »#«-strftime-Kennzeichen"
+
+#~ msgid "field width in strftime format"
+#~ msgstr "Feldbreite im strftime-Format"
+
+#~ msgid "`E' modifier"
+#~ msgstr "»E«-Modifizierer"
+
+#~ msgid "the `E' strftime modifier"
+#~ msgstr "der »E«-strftime-Modifizierer"
+
+#~ msgid "`O' modifier"
+#~ msgstr "»O«-Modifizierer"
+
+#~ msgid "the `O' strftime modifier"
+#~ msgstr "der »O«-strftime-Modifizierer"
+
+#~ msgid "the `O' modifier"
+#~ msgstr "der »O«-Modifizierer"
+
+#~ msgid "fill character"
+#~ msgstr "Füllzeichen"
+
+#~ msgid "fill character in strfmon format"
+#~ msgstr "Füllzeichen im strfmon-Format"
+
+#~ msgid "the `^' strfmon flag"
+#~ msgstr "das »^«-strfmon-Kennzeichen"
+
+#~ msgid "the `+' strfmon flag"
+#~ msgstr "das »+«-strfmon-Kennzeichen"
+
+#~ msgid "`(' flag"
+#~ msgstr "»(«-Kennzeichen"
+
+#~ msgid "the `(' strfmon flag"
+#~ msgstr "das »(«-strfmon-Kennzeichen"
+
+#~ msgid "`!' flag"
+#~ msgstr "»!«-Kennzeichen"
+
+#~ msgid "the `!' strfmon flag"
+#~ msgstr "das »!«-strfmon-Kennzeichen"
+
+#~ msgid "the `-' strfmon flag"
+#~ msgstr "das »-«-strfmon-Kennzeichen"
+
+#~ msgid "field width in strfmon format"
+#~ msgstr "Feldbreite im strfmon-Format"
+
+#~ msgid "left precision"
+#~ msgstr "linke Präzision"
+
+#~ msgid "left precision in strfmon format"
+#~ msgstr "linke Präzision im strfmon-Format"
+
+#~ msgid "right precision"
+#~ msgstr "rechte Präzision"
+
+#~ msgid "right precision in strfmon format"
+#~ msgstr "rechte Präzision im strfmon-Format"
+
+#~ msgid "length modifier in strfmon format"
+#~ msgstr "Längenmodifizierer im strfmon-Format"
+
+#~ msgid "function might be possible candidate for `%s' format attribute"
+#~ msgstr "Funktion könnte möglicher Kandidat für Formatattribut »%s« sein"
+
+#~ msgid "missing $ operand number in format"
+#~ msgstr "fehlende $-Operandennummer im Format"
+
+#~ msgid "%s does not support %%n$ operand number formats"
+#~ msgstr "%s unterstützt nicht %%n$-Operandennummerformate"
+
+#~ msgid "operand number out of range in format"
+#~ msgstr "Operandennummer außerhalb des Wertebereiches im Format"
+
+#~ msgid "format argument %d used more than once in %s format"
+#~ msgstr "Formatargument %d mehr als einmal im %s-Format verwendet"
+
+#~ msgid "format argument %d unused before used argument %d in $-style format"
+#~ msgstr "Formatargument %d nicht verwendet vor benutztem Argument %d im $-Stil-Format"
+
+#~ msgid "format not a string literal, format string not checked"
+#~ msgstr "Format ist kein Zeichenkettenliteral, Formatzeichenkette ungeprüft"
+
+#~ msgid "format not a string literal and no format arguments"
+#~ msgstr "Format ist kein Zeichenkettenliteral, und keine Formatargumente"
+
+#~ msgid "format not a string literal, argument types not checked"
+#~ msgstr "Format ist kein Zeichenkettenliteral, Argumenttypen ungeprüft"
+
+#~ msgid "too many arguments for format"
+#~ msgstr "zu viele Argumente für Format"
+
+#~ msgid "unused arguments in $-style format"
+#~ msgstr "unbenutzte Argumente in $-Stil-Format"
+
+#~ msgid "zero-length %s format string"
+#~ msgstr "Format-Zeichenkette %s der Länge null"
+
+#~ msgid "format is a wide character string"
+#~ msgstr "Format ist »wide character«-Zeichenkette"
+
+#~ msgid "embedded `\\0' in format"
+#~ msgstr "eingebettetes »\\0« im Format"
+
+#~ msgid "spurious trailing `%%' in format"
+#~ msgstr "störendes letztes »%%« im Format"
+
+#~ msgid "repeated %s in format"
+#~ msgstr "wiederholtes %s im Format"
+
+#~ msgid "missing fill character at end of strfmon format"
+#~ msgstr "fehlendes Füllzeichen am Ende des strfmon-Formates"
+
+#~ msgid "too few arguments for format"
+#~ msgstr "zu wenig Argumente für Format"
+
+#~ msgid "zero width in %s format"
+#~ msgstr "Breite null im Format %s"
+
+#~ msgid "empty left precision in %s format"
+#~ msgstr "leere linke Präzision im Format %s"
+
+#~ msgid "field precision"
+#~ msgstr "Feldpräzision"
+
+#~ msgid "empty precision in %s format"
+#~ msgstr "fehlende Präzision im Format %s"
+
+#~ msgid "%s does not support the `%s' %s length modifier"
+#~ msgstr "%s unterstützt nicht den Längenmodifizierer »%s« %s"
+
+#~ msgid "conversion lacks type at end of format"
+#~ msgstr "Konvertierung fehlt der Typ am Ende des Formates"
+
+#~ msgid "unknown conversion type character `%c' in format"
+#~ msgstr "unbekanntes Konvertierungstyp-Zeichen »%c« im Format"
+
+#~ msgid "unknown conversion type character 0x%x in format"
+#~ msgstr "unbekanntes Konvertierungstyp-Zeichen 0x%x im Format"
+
+#~ msgid "%s does not support the `%%%c' %s format"
+#~ msgstr "%s unterstützt nicht das Format »%%%c« %s"
+
+#~ msgid "%s used with `%%%c' %s format"
+#~ msgstr "%s verwendet mit Format »%%%c« %s"
+
+#~ msgid "%s does not support %s"
+#~ msgstr "%s unterstützt nicht %s"
+
+#~ msgid "%s does not support %s with the `%%%c' %s format"
+#~ msgstr "%s unterstützt nicht %s mit dem Format »%%%c« %s"
+
+#~ msgid "%s ignored with %s and `%%%c' %s format"
+#~ msgstr "%s ignoriert mit %s und Format »%%%c« %s"
+
+#~ msgid "%s ignored with %s in %s format"
+#~ msgstr "%s ignoriert mit %s im Format %s"
+
+#~ msgid "use of %s and %s together with `%%%c' %s format"
+#~ msgstr "Verwendung von %s und %s zusammen mit Format »%%%c« %s"
+
+#~ msgid "use of %s and %s together in %s format"
+#~ msgstr "Verwendung von %s und %s zusammen im Format %s"
+
+#~ msgid "`%%%c' yields only last 2 digits of year in some locales"
+#~ msgstr "»%%%c« liefert in manchen Locales nur die letzten 2 Ziffern des Jahres"
+
+#~ msgid "`%%%c' yields only last 2 digits of year"
+#~ msgstr "»%%%c« liefert nur die letzten 2 Ziffern des Jahres"
+
+#~ msgid "no closing `]' for `%%[' format"
+#~ msgstr "kein schließendes »]« für »%%[«-Format"
+
+#~ msgid "use of `%s' length modifier with `%c' type character"
+#~ msgstr "Verwendung des »%s«-Längenmodifizierers mit »%c«-Typ-Zeichen"
+
+#~ msgid "%s does not support the `%%%s%c' %s format"
+#~ msgstr "%s unterstützt nicht das Format »%%%s%c« %s"
+
+#~ msgid "operand number specified with suppressed assignment"
+#~ msgstr "Operandennummer mit unterdrückter Zuweisung angegeben"
+
+#~ msgid "operand number specified for format taking no argument"
+#~ msgstr "Operandennummer für Format ohne Argumente angegeben"
+
+#~ msgid "writing through null pointer (arg %d)"
+#~ msgstr "Schreiben mit Null-Zeiger (Argument %d)"
+
+#~ msgid "reading through null pointer (arg %d)"
+#~ msgstr "Lesen mit Null-Zeiger (Argument %d)"
+
+#~ msgid "writing into constant object (arg %d)"
+#~ msgstr "Schreiben in konstantes Objekt (Argument %d)"
+
+#~ msgid "extra type qualifiers in format argument (arg %d)"
+#~ msgstr "zusätzliche Typqualifizierer in Format-Argument (Argument %d)"
+
+#~ msgid "format argument is not a pointer (arg %d)"
+#~ msgstr "Format-Argument ist kein Zeiger (Argument %d)"
+
+#~ msgid "format argument is not a pointer to a pointer (arg %d)"
+#~ msgstr "Format-Argument ist kein Zeiger auf einen Zeiger (Argument %d)"
+
+#~ msgid "pointer"
+#~ msgstr "Zeiger"
+
+#~ msgid "different type"
+#~ msgstr "anderer Typ"
+
+#~ msgid "%s is not type %s (arg %d)"
+#~ msgstr "%s ist nicht vom Typ %s (Argument %d)"
+
+#~ msgid "%s format, %s arg (arg %d)"
+#~ msgstr "%s Format, %s Argument (Argument %d)"
+
+#~ msgid "args to be formatted is not '...'"
+#~ msgstr "zu formatierendes Argument ist nicht »...«"
+
+#~ msgid "strftime formats cannot format arguments"
+#~ msgstr "strftime-Formate können keine Argumente formatieren"
+
+#~ msgid "ignoring duplicate directory \"%s\"\n"
+#~ msgstr "doppeltes Verzeichnis »%s« wird ignoriert\n"
+
+#~ msgid " as it is a non-system directory that duplicates a system directory\n"
+#~ msgstr " da es ein Nicht-Systemverzeichnis ist, das ein Systemverzeichnis dupliziert\n"
+
+#~ msgid "ignoring nonexistent directory \"%s\"\n"
+#~ msgstr "nicht vorhandenes Verzeichnis »%s« wird ignoriert\n"
+
+#~ msgid "#include \"...\" search starts here:\n"
+#~ msgstr "#include \"...\" - Suche beginnt hier:\n"
+
+#~ msgid "#include <...> search starts here:\n"
+#~ msgstr "#include <...> - Suche beginnt hier:\n"
+
+#~ msgid "End of search list.\n"
+#~ msgstr "Ende der Suchliste.\n"
+
+#~ msgid "badly nested C headers from preprocessor"
+#~ msgstr "schlecht geschachtelte C-Header vom Präprozessor"
+
+#~ msgid "ignoring #pragma %s %s"
+#~ msgstr "ignoriere #pragma %s %s"
+
+#~ msgid "%Hstray '@' in program"
+#~ msgstr "%Hverirrtes »@« im Programm"
+
+#~ msgid "stray '%c' in program"
+#~ msgstr "verirrtes »%c« im Programm"
+
+#~ msgid "stray '\\%o' in program"
+#~ msgstr "verirrtes »\\%o« im Programm"
+
+#~ msgid "this decimal constant is unsigned only in ISO C90"
+#~ msgstr "diese Dezimalkonstante ist nur in ISO-C90 vorzeichenlos"
+
+#~ msgid "this decimal constant would be unsigned in ISO C90"
+#~ msgstr "diese Dezimalkonstante wäre in ISO-C90 vorzeichenlos"
+
+#~ msgid "integer constant is too large for \"%s\" type"
+#~ msgstr "Ganzzahlkonstante ist zu groß für »%s«-Typ"
+
+#~ msgid "floating constant exceeds range of \"%s\""
+#~ msgstr "Gleitkommakonstante überschreitet Wertebereich von »%s«"
+
+#~ msgid "traditional C rejects string constant concatenation"
+#~ msgstr "traditionelles C weist Stringkonstantenverkettung zurück"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it is supressed using -fno-inline"
+#~ msgstr "%JFunktion »%F« kann nie inline sein, da dies mit -fno-inline unterdrückt wird"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it might not be bound within this unit of translation"
+#~ msgstr "%JFunktion »%F« kann nie inline sein, da sie nicht in diese Übersetzungseinheit gebunden wird"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses attributes conflicting with inlining"
+#~ msgstr "%JFunktion »%F« kann nie inline sein, da sie mit inline in Konflikt stehende Attribute hat"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it has pending sizes"
+#~ msgstr "%JFunktion »%F« kann nie inline sein, da sie noch offene Größen hat"
+
+#~ msgid "%Jnested function '%F' can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%Jdie geschachtelte Funktion »%F« kann nie inline sein, da sie möglicherweise gespeicherte, noch offene Größen hat"
+
+#~ msgid "no class name specified with \"%s\""
+#~ msgstr "kein Klassenname mit \"%s\" angegeben"
+
+#~ msgid "assertion missing after \"%s\""
+#~ msgstr "Behauptung fehlt hinter \"%s\""
+
+#~ msgid "macro name missing after \"%s\""
+#~ msgstr "Makroname fehlt hinter \"%s\""
+
+#~ msgid "missing path after \"%s\""
+#~ msgstr "fehlender Pfad hinter \"%s\""
+
+#~ msgid "missing filename after \"%s\""
+#~ msgstr "fehlender Dateiname hinter \"%s\""
+
+#~ msgid "missing makefile target after \"%s\""
+#~ msgstr "fehlendes Makefile-Ziel hinter \"%s\""
+
+#~ msgid "-I- specified twice"
+#~ msgstr "-I- doppelt angegeben"
+
+#~ msgid "switch \"%s\" is no longer supported"
+#~ msgstr "Option »%s« wird nicht mehr unterstützt"
+
+#~ msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
+#~ msgstr "-fhandle-exceptions wurde in -fexceptions umbenannt (und ist nun voreingestellt)"
+
+#~ msgid "output filename specified twice"
+#~ msgstr "Ausgabedatei doppelt angegeben"
+
+#~ msgid "-Wformat-y2k ignored without -Wformat"
+#~ msgstr "-Wformat-y2k wird ohne -Wformat ignoriert"
+
+#~ msgid "-Wformat-extra-args ignored without -Wformat"
+#~ msgstr "-Wformat-extra-args wird ohne -Wformat ignoriert"
+
+#~ msgid "-Wformat-zero-length ignored without -Wformat"
+#~ msgstr "-Wformat-zero-length wird ohne -Wformat ignoriert"
+
+#~ msgid "-Wformat-nonliteral ignored without -Wformat"
+#~ msgstr "-Wformat-nonliteral wird ohne -Wformat ignoriert"
+
+#~ msgid "-Wformat-security ignored without -Wformat"
+#~ msgstr "-Wformat-security wird ohne -Wformat ignoriert"
+
+#~ msgid "-Wmissing-format-attribute ignored without -Wformat"
+#~ msgstr "-Wmissing-format-attribute wird ohne -Wformat ignoriert"
+
+#~ msgid "opening output file %s: %m"
+#~ msgstr "Ausgabedatei »%s« wird geöffnet: %m"
+
+#~ msgid "too many filenames given. Type %s --help for usage"
+#~ msgstr "zu viele Dateinamen angegeben. Geben sie »%s --help« für Hilfe ein"
+
+#~ msgid "YYDEBUG not defined"
+#~ msgstr "YYDEBUG ist nicht definiert"
+
+#~ msgid "opening dependency file %s: %m"
+#~ msgstr "Abhängigkeitsdatei »%s« wird geöffnet: %m"
+
+#~ msgid "closing dependency file %s: %m"
+#~ msgstr "Abhängigkeitsdatei »%s« wird geschlossen: %m"
+
+#~ msgid "when writing output to %s: %m"
+#~ msgstr "beim Schreiben der Ausgabe nach %s: %m"
+
+#~ msgid "to generate dependencies you must specify either -M or -MM"
+#~ msgstr "um Abhängigkeiten zu erzeugen, müssen Sie entweder -M oder -MM angeben"
+
+#~ msgid "<built-in>"
+#~ msgstr "<eingebaut>"
+
+#~ msgid "<command line>"
+#~ msgstr "<Kommandozeile>"
+
+#~ msgid "too late for # directive to set debug directory"
+#~ msgstr "zu spät für »#«-Direktive, um Debug-Verzeichnis festzulegen"
+
+#~ msgid "syntax error"
+#~ msgstr "Syntaxfehler"
+
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "Syntaxfehler: es kann nicht zurückgesetzt werden"
+
+#~ msgid "ISO C forbids an empty source file"
+#~ msgstr "ISO-C erlaubt keine leeren Quelldateien"
+
+#~ msgid "argument of `asm' is not a constant string"
+#~ msgstr "Argument von »asm« ist keine konstante Zeichenkette"
+
+#~ msgid "ISO C forbids data definition with no type or storage class"
+#~ msgstr "ISO-C verbietet Datendefinition ohne Typ und Speicherklasse"
+
+#~ msgid "data definition has no type or storage class"
+#~ msgstr "Datendefinition hat keinen Typ oder Speicherklasse"
+
+#~ msgid "ISO C does not allow extra `;' outside of a function"
+#~ msgstr "ISO-C erlaubt kein extra »;« außerhalb einer Funktion"
+
+#~ msgid "`sizeof' applied to a bit-field"
+#~ msgstr "»sizeof«-Operator auf ein Bitfeld angewandt"
+
+#~ msgid "ISO C forbids omitting the middle term of a ?: expression"
+#~ msgstr "ISO-C verbietet das Weglassen des mittleren Terms eines ?:-Ausdruckes"
+
+#~ msgid "ISO C89 forbids compound literals"
+#~ msgstr "ISO-C89 verbietet zusammengesetzte Literale"
+
+#~ msgid "ISO C forbids braced-groups within expressions"
+#~ msgstr "ISO-C verbietet geklammerte Gruppen innerhalb von Ausdrücken"
+
+#~ msgid "first argument to __builtin_choose_expr not a constant"
+#~ msgstr "das erste Argument für __builtin_choose_expr ist keine Konstante"
+
+#~ msgid "traditional C rejects ISO C style function definitions"
+#~ msgstr "traditionelles C weist Funktionsdefinitionen im ISO-C-Stil zurück"
+
+#~ msgid "old-style parameter declaration"
+#~ msgstr "Parameterdeklaration alten Stils"
+
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr "»%s« ist nicht am Beginn einer Deklaration"
+
+#~ msgid "`typeof' applied to a bit-field"
+#~ msgstr "»typeof« auf ein Bitfeld angewandt"
+
+#~ msgid "ISO C forbids empty initializer braces"
+#~ msgstr "ISO-C verbietet leere Initialisierungsklammern"
+
+#~ msgid "ISO C89 forbids specifying subobject to initialize"
+#~ msgstr "ISO-C89 verbietet die Angabe von zu initialisierenden Unterobjekten"
+
+#~ msgid "obsolete use of designated initializer without `='"
+#~ msgstr "veraltete Verwendung einer bestimmten Initialisierung ohne »=«"
+
+#~ msgid "obsolete use of designated initializer with `:'"
+#~ msgstr "veraltete Verwendung einer bestimmten Initialisierung mit »:«"
+
+#~ msgid "ISO C forbids specifying range of elements to initialize"
+#~ msgstr "ISO-C verbietet die Angabe eines zu initialisierenden Wertebereiches"
+
+#~ msgid "ISO C forbids nested functions"
+#~ msgstr "ISO-C verbietet verschachtelte Funktionen"
+
+#~ msgid "ISO C forbids forward references to `enum' types"
+#~ msgstr "ISO-C verbietet Vorwärts-Referenzen auf »enum«-Typen"
+
+#~ msgid "comma at end of enumerator list"
+#~ msgstr "Komma am Ende der Aufzählungsliste"
+
+#~ msgid "no semicolon at end of struct or union"
+#~ msgstr "kein Semikolon am Ende von »struct« oder »union«"
+
+#~ msgid "extra semicolon in struct or union specified"
+#~ msgstr "zusätzliches Semikolon in »struct« oder »union« angegeben"
+
+#~ msgid "ISO C doesn't support unnamed structs/unions"
+#~ msgstr "ISO-C unterstützt keine namenlosen structs/unions"
+
+#~ msgid "ISO C forbids member declarations with no members"
+#~ msgstr "ISO-C verbietet Elementdeklarationen ohne Elemente"
+
+#~ msgid "label at end of compound statement"
+#~ msgstr "Marke am Ende einer Verbundanweisung"
+
+#~ msgid "ISO C90 forbids mixed declarations and code"
+#~ msgstr "ISO-C90 verbietet gemischte Deklarationen und Code"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO-C verbietet Markendeklarationen"
+
+#~ msgid "braced-group within expression allowed only inside a function"
+#~ msgstr "geklammerte Gruppe innerhalb eines Ausdrucks nur in Funktion erlaubt"
+
+#~ msgid "empty body in an else-statement"
+#~ msgstr "leerer Körper in einer else-Anweisung"
+
+#~ msgid "%Hempty body in an if-statement"
+#~ msgstr "%Hleerer Körper in einer if-Anweisung"
+
+#~ msgid "break statement not within loop or switch"
+#~ msgstr "break-Anweisung nicht innerhalb einer Schleife oder »switch«"
+
+#~ msgid "continue statement not within a loop"
+#~ msgstr "continue-Anweisung nicht innerhalb einer Schleife"
+
+#~ msgid "ISO C forbids `goto *expr;'"
+#~ msgstr "ISO-C verbietet »goto *expr;«"
+
+#~ msgid "ISO C requires a named argument before `...'"
+#~ msgstr "ISO-C erfordert ein benanntes Argument vor »...«"
+
+#~ msgid "`...' in old-style identifier list"
+#~ msgstr "»...« in einer Bezeichnerliste alten Stils"
+
+#~ msgid "syntax error; also virtual memory exhausted"
+#~ msgstr "Syntaxfehler; auch virtueller Speicher verbraucht"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "Parser-Keller-Überlauf"
+
+#~ msgid "syntax error at '%s' token"
+#~ msgstr "Syntaxfehler beim Token »%s«"
+
+#~ msgid "can't create precompiled header %s: %m"
+#~ msgstr "der vorkompilierte Header »%s« kann nicht erzeugt werden: %m"
+
+#~ msgid "can't write to %s: %m"
+#~ msgstr "in %s kann nicht geschrieben werden: %m"
+
+#~ msgid "`%s' is not a valid output file"
+#~ msgstr "»%s« ist keine gültige Ausgabedatei"
+
+#~ msgid "can't write %s: %m"
+#~ msgstr "%s kann nicht geschrieben werden: %m"
+
+#~ msgid "can't seek in %s: %m"
+#~ msgstr "in %s kann nicht positioniert werden: %m"
+
+#~ msgid "can't read %s: %m"
+#~ msgstr "%s kann nicht gelesen werden: %m"
+
+#~ msgid "%s: not compatible with this GCC version"
+#~ msgstr "%s: nicht kompatibel mit dieser Version des GCC"
+
+#~ msgid "%s: not for %s"
+#~ msgstr "%s: nicht für %s"
+
+#~ msgid "%s: not a PCH file"
+#~ msgstr "%s: keine PCH-Datei"
+
+#~ msgid "%s: created on host `%.*s', but used on host `%s'"
+#~ msgstr "%s: auf Rechner »%.*s« erzeugt, aber auf Rechner »%s« verwendet"
+
+#~ msgid "%s: created for target `%.*s', but used for target `%s'"
+#~ msgstr "%s: für das Ziel »%.*s« erzeugt, aber für das Ziel »%s« verwendet"
+
+#~ msgid "%s: created by version `%.*s', but this is version `%s'"
+#~ msgstr "%s: durch Version »%.*s« erzeugt, aber dies ist Version »%s«"
+
+#~ msgid "%s: created with -g%s, but used with -g%s"
+#~ msgstr "%s: mit -g%s erzeugt, aber mit -g%s verwendet"
+
+#~ msgid "%s: had text segment at different address"
+#~ msgstr "%s: Textsegment trat an anderer Adresse auf"
+
+#~ msgid "calling fdopen"
+#~ msgstr "fdopen wird aufgerufen"
+
+#~ msgid "reading"
+#~ msgstr "Lesen"
+
+#~ msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+#~ msgstr "#pragma pack (pop) gefunden ohne passendes #pragma pack (push, <n>)"
+
+#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+#~ msgstr "#pragma pack(pop, %s) gefunden ohne passendes #pragma pack(push, %s, <n>)"
+
+#~ msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(push[, id], <n>) wird von diesem Ziel nicht unterstützt"
+
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(pop[, id], <n>) wird von diesem Ziel nicht unterstützt"
+
+#~ msgid "missing '(' after '#pragma pack' - ignored"
+#~ msgstr "fehlendes »(« hinter »#pragma pack« - ignoriert"
+
+#~ msgid "malformed '#pragma pack' - ignored"
+#~ msgstr "falsch geformtes »#pragma pack« - ignoriert"
+
+#~ msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+#~ msgstr "falsch geformtes »#pragma pack(push[, id], <n>)« - ignoriert"
+
+#~ msgid "malformed '#pragma pack(pop[, id])' - ignored"
+#~ msgstr "falsch geformtes »#pragma pack(pop[, id])« - ignoriert"
+
+#~ msgid "unknown action '%s' for '#pragma pack' - ignored"
+#~ msgstr "unbekannte Aktion »%s« für »#pragma pack« - ignoriert"
+
+#~ msgid "junk at end of '#pragma pack'"
+#~ msgstr "Ausschuss am Ende von »#pragma pack«"
+
+#~ msgid "alignment must be a small power of two, not %d"
+#~ msgstr "Ausrichtung muss eine kleine Zweierpotenz sein, nicht %d"
+
+#~ msgid "%Japplying #pragma weak '%D' after first use results in unspecified behavior"
+#~ msgstr "%JAnwendung von #pragma weak »%D« nach erster Benutzung führt zu nicht spezifiziertem Verhalten"
+
+#~ msgid "malformed #pragma weak, ignored"
+#~ msgstr "falsch geformtes #pragma weak, ignoriert"
+
+#~ msgid "junk at end of #pragma weak"
+#~ msgstr "Ausschuss am Ende von #pragma weak"
+
+#~ msgid "malformed #pragma redefine_extname, ignored"
+#~ msgstr "falsch geformtes #pragma redefine_extname, ignoriert"
+
+#~ msgid "junk at end of #pragma redefine_extname"
+#~ msgstr "Ausschuss am Ende von #pragma redefine_extname"
+
+#~ msgid "#pragma redefine_extname conflicts with declaration"
+#~ msgstr "#pragma redefine_extname steht in Konflikt mit Deklaration"
+
+#~ msgid "malformed #pragma extern_prefix, ignored"
+#~ msgstr "falsch geformtes #pragma extern_prefix, ignoriert"
+
+#~ msgid "junk at end of #pragma extern_prefix"
+#~ msgstr "Ausschuss am Ende von #pragma extern_prefix"
+
+#~ msgid "asm declaration conflicts with previous rename"
+#~ msgstr "asm-Deklaration steht in Konflikt mit vorheriger Umbenennung"
+
+#~ msgid "destructor needed for `%D'"
+#~ msgstr "Destruktor für »%D« benötigt"
+
+#~ msgid "where case label appears here"
+#~ msgstr "wobei die case-Marke hier auftritt"
+
+#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+#~ msgstr "(schließen Sie Aktionen vorheriger case-Anweisungen, die Destruktoren benötigen, in ihrem eigenen Gültigkeitsbereich ein)"
+
+#~ msgid "%s qualifier ignored on asm"
+#~ msgstr "%s-Qualifizierer für asm ignoriert"
+
+#~ msgid "will never be executed"
+#~ msgstr "wird niemals ausgeführt"
+
+#~ msgid "`%s' has an incomplete type"
+#~ msgstr "»%s« hat unvollständigen Typ"
+
+#~ msgid "invalid use of void expression"
+#~ msgstr "falsche Benutzung eines void-Ausdruckes"
+
+#~ msgid "invalid use of flexible array member"
+#~ msgstr "falsche Benutzung eines flexiblen Feldelements"
+
+#~ msgid "invalid use of array with unspecified bounds"
+#~ msgstr "falsche Benutzung eines Feldes mit unbekannten Grenzen"
+
+#~ msgid "invalid use of undefined type `%s %s'"
+#~ msgstr "falsche Benutzung des undefinierten Typs »%s %s«"
+
+#~ msgid "invalid use of incomplete typedef `%s'"
+#~ msgstr "falsche Benutzung des unvollständigen typedef »%s«"
+
+#~ msgid "function types not truly compatible in ISO C"
+#~ msgstr "Funktionstypen nicht wirklich kompatibel in ISO-C"
+
+#~ msgid "types are not quite compatible"
+#~ msgstr "Typen nicht sehr kompatibel"
+
+#~ msgid "function return types not compatible due to `volatile'"
+#~ msgstr "Funktionsrückgabetypen nicht kompatibel wegen »volatile«"
+
+#~ msgid "arithmetic on pointer to an incomplete type"
+#~ msgstr "Arithmetik mit Zeiger auf unvollständigen Typen"
+
+#~ msgid "%s has no member named `%s'"
+#~ msgstr "%s hat kein Element namens »%s«"
+
+#~ msgid "request for member `%s' in something not a structure or union"
+#~ msgstr "Anfrage nach Element »%s« in etwas, was keine Struktur oder Variante ist"
+
+#~ msgid "dereferencing pointer to incomplete type"
+#~ msgstr "Dereferenzierung eines Zeigers auf unvollständigen Typen"
+
+#~ msgid "dereferencing `void *' pointer"
+#~ msgstr "Dereferenzierung eines »void *«-Zeigers"
+
+#~ msgid "invalid type argument of `%s'"
+#~ msgstr "falsches Typ-Argument von »%s«"
+
+#~ msgid "subscript missing in array reference"
+#~ msgstr "Index fehlt in Feldreferenz"
+
+#~ msgid "array subscript has type `char'"
+#~ msgstr "Feldindex hat Typ »char«"
+
+#~ msgid "array subscript is not an integer"
+#~ msgstr "Feldindex ist keine Ganzzahl"
+
+#~ msgid "ISO C forbids subscripting `register' array"
+#~ msgstr "ISO-C verbietet, ein »register«-Array zu indizieren"
+
+#~ msgid "ISO C90 forbids subscripting non-lvalue array"
+#~ msgstr "ISO-C90 verbietet, ein Nicht-L-Wert-Feld zu indizieren"
+
+#~ msgid "subscript has type `char'"
+#~ msgstr "Index hat Typ »char«"
+
+#~ msgid "subscripted value is neither array nor pointer"
+#~ msgstr "indizierter Wert ist weder ein Feld noch ein Zeiger"
+
+#~ msgid "local declaration of `%s' hides instance variable"
+#~ msgstr "lokale Deklaration von »%s« verdeckt Instanzvariable"
+
+#~ msgid "called object is not a function"
+#~ msgstr "gerufenes Objekt ist keine Funktion"
+
+#~ msgid "function called through a non-compatible type"
+#~ msgstr "Funktion über nicht kompatiblen Typen aufgerufen"
+
+#~ msgid "too many arguments to function"
+#~ msgstr "zu viele Argumente für Funktion"
+
+#~ msgid "type of formal parameter %d is incomplete"
+#~ msgstr "Typ des formalen Parameters %d ist unvollständig"
+
+#~ msgid "%s as integer rather than floating due to prototype"
+#~ msgstr "%s als Ganzzahl statt Gleitkomma aufgrund des Prototyps"
+
+#~ msgid "%s as integer rather than complex due to prototype"
+#~ msgstr "%s als Ganzzahl statt komplex aufgrund des Prototyps"
+
+#~ msgid "%s as complex rather than floating due to prototype"
+#~ msgstr "%s als komplex statt Gleitkomma aufgrund des Prototyps"
+
+#~ msgid "%s as floating rather than integer due to prototype"
+#~ msgstr "%s als Gleitkomma statt Ganzzahl aufgrund des Prototyps"
+
+#~ msgid "%s as complex rather than integer due to prototype"
+#~ msgstr "%s als komplex statt Ganzzahl aufgrund des Prototyps"
+
+#~ msgid "%s as floating rather than complex due to prototype"
+#~ msgstr "%s als Gleitkomma statt komplex aufgrund des Prototyps"
+
+#~ msgid "%s as `float' rather than `double' due to prototype"
+#~ msgstr "%s als »float« statt »double« aufgrund des Prototyps"
+
+#~ msgid "%s with different width due to prototype"
+#~ msgstr "%s mit anderer Breite aufgrund des Prototyps"
+
+#~ msgid "%s as unsigned due to prototype"
+#~ msgstr "%s als vorzeichenlos aufgrund des Prototyps"
+
+#~ msgid "%s as signed due to prototype"
+#~ msgstr "%s als vorzeichenbehaftet aufgrund des Prototyps"
+
+#~ msgid "too few arguments to function"
+#~ msgstr "zu wenige Argumente für Funktion"
+
+#~ msgid "suggest parentheses around + or - inside shift"
+#~ msgstr "Klammern um + oder - innerhalb von Schiebeoperation empfohlen"
+
+#~ msgid "suggest parentheses around && within ||"
+#~ msgstr "Klammern um && innerhalb von || empfohlen"
+
+#~ msgid "suggest parentheses around arithmetic in operand of |"
+#~ msgstr "Klammern um Arithmetik in Operand von | empfohlen"
+
+#~ msgid "suggest parentheses around comparison in operand of |"
+#~ msgstr "Klammern um Vergleich in Operand von | empfohlen"
+
+#~ msgid "suggest parentheses around arithmetic in operand of ^"
+#~ msgstr "Klammern um Arithmetik in Operand von ^ empfohlen"
+
+#~ msgid "suggest parentheses around comparison in operand of ^"
+#~ msgstr "Klammern um Vergleich in Operand von ^ empfohlen"
+
+#~ msgid "suggest parentheses around + or - in operand of &"
+#~ msgstr "Klammern um + oder - in Operand von & empfohlen"
+
+#~ msgid "suggest parentheses around comparison in operand of &"
+#~ msgstr "Klammern um Vergleich in Operand von & empfohlen"
+
+#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+#~ msgstr "Vergleiche wie X<=Y<=Z haben nicht ihre mathematische Bedeutung"
+
+#~ msgid "pointer of type `void *' used in subtraction"
+#~ msgstr "Zeiger des Typs »void *« in Subtraktion verwendet"
+
+#~ msgid "pointer to a function used in subtraction"
+#~ msgstr "Zeiger auf eine Funktion in Subtraktion verwendet"
+
+#~ msgid "wrong type argument to unary plus"
+#~ msgstr "Argument falschen Typs für unäres Plus"
+
+#~ msgid "wrong type argument to unary minus"
+#~ msgstr "Argument falschen Typs für unäres Minus"
+
+#~ msgid "ISO C does not support `~' for complex conjugation"
+#~ msgstr "ISO-C unterstützt nicht »~« für komplexe Konjugation"
+
+#~ msgid "wrong type argument to bit-complement"
+#~ msgstr "Argument falschen Typs für Bit-Komplement"
+
+#~ msgid "wrong type argument to abs"
+#~ msgstr "Argument falschen Typs für abs"
+
+#~ msgid "wrong type argument to conjugation"
+#~ msgstr "Argument falschen Typs für Konjugation"
+
+#~ msgid "wrong type argument to unary exclamation mark"
+#~ msgstr "Argument falschen Typs für unäres Ausrufungszeichen"
+
+#~ msgid "ISO C does not support `++' and `--' on complex types"
+#~ msgstr "ISO-C unterstützt kein »++« und »--« für komplexe Typen"
+
+#~ msgid "wrong type argument to increment"
+#~ msgstr "Argument falschen Typs für Inkrementierung"
+
+#~ msgid "wrong type argument to decrement"
+#~ msgstr "Argument falschen Typs für Dekrementierung"
+
+#~ msgid "increment of pointer to unknown structure"
+#~ msgstr "Erhöhung eines Zeigers auf unbekannte Struktur"
+
+#~ msgid "decrement of pointer to unknown structure"
+#~ msgstr "Verminderung eines Zeigers auf unbekannte Struktur"
+
+#~ msgid "invalid lvalue in unary `&'"
+#~ msgstr "ungültiger L-Wert in unärem »&«"
+
+#~ msgid "attempt to take address of bit-field structure member `%s'"
+#~ msgstr "Versuch, die Adresse des Bitfeld-Element »%s« einer Struktur zu verwenden"
+
+#~ msgid "use of conditional expressions as lvalues is deprecated"
+#~ msgstr "die Verwendung bedingter Ausdrücke als L-Werte ist veraltet"
+
+#~ msgid "use of compound expressions as lvalues is deprecated"
+#~ msgstr "Verwendung zusammengesetzter Ausdrücke als L-Werte ist veraltet"
+
+#~ msgid "use of cast expressions as lvalues is deprecated"
+#~ msgstr "die Verwendung von cast-Ausdrücken als L-Werte ist veraltet"
+
+#~ msgid "%s of read-only member `%s'"
+#~ msgstr "%s des schreibgeschützten Elementes »%s«"
+
+#~ msgid "%s of read-only variable `%s'"
+#~ msgstr "%s der schreibgeschützten Variable »%s«"
+
+#~ msgid "%s of read-only location"
+#~ msgstr "%s der schreibgeschützten Speicherstelle"
+
+#~ msgid "cannot take address of bit-field `%s'"
+#~ msgstr "die Adresse des Bit-Feldes »%s« kann nicht ermittelt werden"
+
+#~ msgid "global register variable `%s' used in nested function"
+#~ msgstr "globale Register-Variable »%s« in verschachtelter Funktion verwendet"
+
+#~ msgid "register variable `%s' used in nested function"
+#~ msgstr "Register-Variable »%s« in verschachtelter Funktion verwendet"
+
+#~ msgid "address of global register variable `%s' requested"
+#~ msgstr "Adresse der globalen Variable »%s« angefordert"
+
+#~ msgid "cannot put object with volatile field into register"
+#~ msgstr "kann kein Objekt mit volatile-Feld in Register laden"
+
+#~ msgid "address of register variable `%s' requested"
+#~ msgstr "Adresse der Register-Variablen »%s« angefordert"
+
+#~ msgid "signed and unsigned type in conditional expression"
+#~ msgstr "Vorzeichenloser und -behafteter Typ in bedingtem Ausdruck"
+
+#~ msgid "ISO C forbids conditional expr with only one void side"
+#~ msgstr "ISO-C verbietet bedingten Ausdruck mit nur einer void-Seite"
+
+#~ msgid "ISO C forbids conditional expr between `void *' and function pointer"
+#~ msgstr "ISO-C verbietet bedingten Ausdruck zwischen »void *« und Funktionszeiger"
+
+#~ msgid "pointer type mismatch in conditional expression"
+#~ msgstr "Zeigertyp passt nicht in bedingtem Ausdruck"
+
+#~ msgid "pointer/integer type mismatch in conditional expression"
+#~ msgstr "Zeiger-/Ganzzahltyp passt nicht in bedingtem Ausdruck"
+
+#~ msgid "type mismatch in conditional expression"
+#~ msgstr "Typ passt nicht in bedingtem Ausdruck"
+
+#~ msgid "left-hand operand of comma expression has no effect"
+#~ msgstr "linker Operand des Komma-Ausdrucks hat keinen Effekt"
+
+#~ msgid "cast specifies array type"
+#~ msgstr "Typkonvertierung gibt Feldtyp an"
+
+#~ msgid "cast specifies function type"
+#~ msgstr "Typkonvertierung gibt Funktionstyp an"
+
+#~ msgid "ISO C forbids casting nonscalar to the same type"
+#~ msgstr "ISO-C verbietet Typkonvertierung von Nicht-Skalar auf selben Typen"
+
+#~ msgid "ISO C forbids casts to union type"
+#~ msgstr "ISO-C verbietet Typkonvertierung auf union-Typ"
+
+#~ msgid "cast to union type from type not present in union"
+#~ msgstr "Typkonvertierung in union-Typ von nicht in union vorhandenem Typen"
+
+#~ msgid "cast adds new qualifiers to function type"
+#~ msgstr "Typkonvertierung fügt neue Typqualifizierer zu Funktionstypen hinzu"
+
+#~ msgid "cast discards qualifiers from pointer target type"
+#~ msgstr "Typkonvertierung streicht Qualifizierer von Zeiger-Zieltyp"
+
+#~ msgid "cast increases required alignment of target type"
+#~ msgstr "Typkonvertierung erfordert Ausrichtung des Zieltyps"
+
+#~ msgid "cast from pointer to integer of different size"
+#~ msgstr "Typkonvertierung von Zeiger auf Ganzzahl anderer Breite"
+
+#~ msgid "cast does not match function type"
+#~ msgstr "Typkonvertierung passt nicht zum Funktionstypen"
+
+#~ msgid "cast to pointer from integer of different size"
+#~ msgstr "Typkonvertierung in Zeiger von Ganzzahl anderer Breite"
+
+#~ msgid "type-punning to incomplete type might break strict-aliasing rules"
+#~ msgstr "Type-Punning auf unvollständigen Typen kann strict-aliasing-Regeln verletzen"
+
+#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+#~ msgstr "Dereferenzierung eines Type-Pun-Zeigers verletzt strict-aliasing-Regeln"
+
+#~ msgid "ISO C forbids conversion of function pointer to object pointer type"
+#~ msgstr "ISO-C verbietet Konvertierung von Funktionszeigern in Objektzeigertyp"
+
+#~ msgid "ISO C forbids conversion of object pointer to function pointer type"
+#~ msgstr "ISO-C verbietet Konvertierung von Objektzeigertypen in Funktionszeigertyp"
+
+#~ msgid "invalid lvalue in assignment"
+#~ msgstr "ungültiger L-Wert in Zuweisung"
+
+#~ msgid "assignment"
+#~ msgstr "Zuweisung"
+
+#~ msgid "cannot pass rvalue to reference parameter"
+#~ msgstr "kann R-Wert nicht an Referenzparameter übergeben"
+
+#~ msgid "%s makes qualified function pointer from unqualified"
+#~ msgstr "%s erzeugt aus unqualifiziertem einen qualifizierten Funktionszeiger"
+
+#~ msgid "%s discards qualifiers from pointer target type"
+#~ msgstr "%s streicht Qualifizierer von Zeiger-Zieltypen"
+
+#~ msgid "ISO C prohibits argument conversion to union type"
+#~ msgstr "ISO-C verbietet Argumentkonvertierung in union-Typ"
+
+#~ msgid "ISO C forbids %s between function pointer and `void *'"
+#~ msgstr "ISO-C verbietet %s zwischen Funktionszeiger und »void *«"
+
+#~ msgid "pointer targets in %s differ in signedness"
+#~ msgstr "Zeigerziele in %s unterscheiden sich im Vorzeichenbesitz"
+
+#~ msgid "%s from incompatible pointer type"
+#~ msgstr "%s von inkompatiblem Zeigertyp"
+
+#~ msgid "invalid use of non-lvalue array"
+#~ msgstr "ungültige Verwendung eines Nicht-L-Wert-Feldes"
+
+#~ msgid "%s makes pointer from integer without a cast"
+#~ msgstr "%s erzeugt Zeiger von Ganzzahl ohne Typkonvertierung"
+
+#~ msgid "%s makes integer from pointer without a cast"
+#~ msgstr "%s erzeugt Ganzzahl von Zeiger ohne Typkonvertierung"
+
+#~ msgid "incompatible type for argument %d of `%s'"
+#~ msgstr "inkompatibler Typ für Argument %d von »%s«"
+
+#~ msgid "incompatible type for argument %d of indirect function call"
+#~ msgstr "inkompatibler Typ für Argument %d eines indirekten Funktionsaufrufes"
+
+#~ msgid "incompatible types in %s"
+#~ msgstr "inkompatible Typen in %s"
+
+#~ msgid "passing arg of `%s'"
+#~ msgstr "Verarbeiten des Argumentes von »%s«"
+
+#~ msgid "passing arg of pointer to function"
+#~ msgstr "Verarbeiten des Zeigerargumentes an Funktion"
+
+#~ msgid "passing arg %d of `%s'"
+#~ msgstr "Verarbeiten des Argumentes %d von »%s«"
+
+#~ msgid "passing arg %d of pointer to function"
+#~ msgstr "Verarbeiten des Argumentes %d von Zeiger auf Funktion"
+
+#~ msgid "traditional C rejects automatic aggregate initialization"
+#~ msgstr "traditionelles C lehnt automatische Gesamt-Initialisierung ab"
+
+#~ msgid "(near initialization for `%s')"
+#~ msgstr "(nahe der Initialisierung für »%s«)"
+
+#~ msgid "char-array initialized from wide string"
+#~ msgstr "char-Feld mit wide-Zeichenkette initialisiert"
+
+#~ msgid "int-array initialized from non-wide string"
+#~ msgstr "int-Feld mit Nicht-wide-Zeichenkette initialisiert"
+
+#~ msgid "initializer-string for array of chars is too long"
+#~ msgstr "Initialisierungs-Zeichenkette für char-Feld ist zu lang"
+
+#~ msgid "array initialized from non-constant array expression"
+#~ msgstr "Feld mit nicht konstantem Feldausdruck initialisiert"
+
+#~ msgid "initializer element is not constant"
+#~ msgstr "Initialisierungselement ist nicht konstant"
+
+#~ msgid "initialization"
+#~ msgstr "Initialisierung"
+
+#~ msgid "initializer element is not computable at load time"
+#~ msgstr "Initialisierungs-Element ist zur Lade-Zeit nicht berechenbar"
+
+#~ msgid "invalid initializer"
+#~ msgstr "ungültige Initialisierung"
+
+#~ msgid "opaque vector types cannot be initialized"
+#~ msgstr "opake Vektortypen können nicht initialisiert werden"
+
+#~ msgid "extra brace group at end of initializer"
+#~ msgstr "zusätzliche geschweifte Klammern am Ende der Initialisierung"
+
+#~ msgid "missing braces around initializer"
+#~ msgstr "geschweifte Klammern fehlen um Initialisierung"
+
+#~ msgid "braces around scalar initializer"
+#~ msgstr "geschweifte Klammern um Skalar-Initialisierung"
+
+#~ msgid "initialization of flexible array member in a nested context"
+#~ msgstr "Initialisierung eines flexiblen Feld-Elements in geschachteltem Kontext"
+
+#~ msgid "initialization of a flexible array member"
+#~ msgstr "Initialisierung eines flexiblen Feld-Elements"
+
+#~ msgid "missing initializer"
+#~ msgstr "fehlende Initialisierung"
+
+#~ msgid "empty scalar initializer"
+#~ msgstr "leere Skalar-Initialisierung"
+
+#~ msgid "extra elements in scalar initializer"
+#~ msgstr "zusätzliche Elemente in Skalar-Initialisierung"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "Initialisierungs-Bezeichner dürfen nicht geschachtelt werden"
+
+#~ msgid "array index in non-array initializer"
+#~ msgstr "Feldindex in Nicht-Feld-Initialisierung"
+
+#~ msgid "field name not in record or union initializer"
+#~ msgstr "Feldname nicht in Datensatz- oder union-Initialisierung"
+
+#~ msgid "nonconstant array index in initializer"
+#~ msgstr "nichtkonstanter Feldindex in Initialisierung"
+
+#~ msgid "array index in initializer exceeds array bounds"
+#~ msgstr "Feldindex in Initialisierung überschreitet Feldgrenzen"
+
+#~ msgid "empty index range in initializer"
+#~ msgstr "leerer Indexbereich in Initialisierung"
+
+#~ msgid "array index range in initializer exceeds array bounds"
+#~ msgstr "Feldindexbereich in Initialisierung überschreitet Feldgrenzen"
+
+#~ msgid "unknown field `%s' specified in initializer"
+#~ msgstr "unbekanntes Feld »%s« in Initialisierung angegeben"
+
+#~ msgid "initialized field with side-effects overwritten"
+#~ msgstr "initialisiertes Feld mit Seiteneffekten überschrieben"
+
+#~ msgid "excess elements in char array initializer"
+#~ msgstr "Elementüberschreitung in char-Feld-Initialisierung"
+
+#~ msgid "excess elements in struct initializer"
+#~ msgstr "Elementüberschreitung in struct-Initialisierung"
+
+#~ msgid "non-static initialization of a flexible array member"
+#~ msgstr "nicht-statische Initialisierung eines flexiblen Feldelements"
+
+#~ msgid "excess elements in union initializer"
+#~ msgstr "Elementüberschreitung in union-Initialisierung"
+
+#~ msgid "traditional C rejects initialization of unions"
+#~ msgstr "traditionelles C lehnt Initialisierung von unions ab"
+
+#~ msgid "excess elements in array initializer"
+#~ msgstr "Elementüberschreitung in Feldinitialisierung"
+
+#~ msgid "excess elements in vector initializer"
+#~ msgstr "Elementüberschreitung in Vektorinitialisierung"
+
+#~ msgid "excess elements in scalar initializer"
+#~ msgstr "Elementüberschreitung in Skalar-Initialisierung"
+
+#~ msgid "asm template is not a string constant"
+#~ msgstr "asm-Template ist keine Zeichenkettenkonstante"
+
+#~ msgid "invalid lvalue in asm statement"
+#~ msgstr "ungültiger L-Wert in asm-Anweisung"
+
+#~ msgid "modification by `asm'"
+#~ msgstr "Modifizierung durch »asm«"
+
+#~ msgid "function declared `noreturn' has a `return' statement"
+#~ msgstr "als »noreturn« deklarierte Funktion hat »return«-Anweisung"
+
+#~ msgid "`return' with no value, in function returning non-void"
+#~ msgstr "»return« ohne Wert in nicht void zurückgebender Funktion"
+
+#~ msgid "`return' with a value, in function returning void"
+#~ msgstr "»return« mit Wert in void zurückgebender Funktion"
+
+#~ msgid "return"
+#~ msgstr "return"
+
+#~ msgid "function returns address of local variable"
+#~ msgstr "Funktion liefert Adresse einer lokalen Variablen zurück"
+
+#~ msgid "switch quantity not an integer"
+#~ msgstr "switch-Größe keine Ganzzahl"
+
+#~ msgid "`long' switch expression not converted to `int' in ISO C"
+#~ msgstr "»long« switch-Ausdruck nicht nach »int« konvertiert in ISO C"
+
+#~ msgid "case label not within a switch statement"
+#~ msgstr "case-Marke nicht innerhalb einer switch-Anweisung"
+
+#~ msgid "`default' label not within a switch statement"
+#~ msgstr "»default«-Marke nicht innerhalb einer switch-Anweisung"
+
+#~ msgid "division by zero"
+#~ msgstr "Teilung durch Null"
+
+#~ msgid "right shift count is negative"
+#~ msgstr "Rechts-Schiebe-Weite ist negativ"
+
+#~ msgid "right shift count >= width of type"
+#~ msgstr "Rechts-Schiebe-Weite >= Breite des Typs"
+
+#~ msgid "left shift count is negative"
+#~ msgstr "Links-Schiebe-Weite ist negativ"
+
+#~ msgid "left shift count >= width of type"
+#~ msgstr "Links-Schiebe-Weite >= Breite des Typs"
+
+#~ msgid "shift count is negative"
+#~ msgstr "Schiebeweite ist negativ"
+
+#~ msgid "shift count >= width of type"
+#~ msgstr "Schiebeweite >= Breite des Typs"
+
+#~ msgid "comparing floating point with == or != is unsafe"
+#~ msgstr "Vergleich von Gleitkomma mit == oder != ist unsicher"
+
+#~ msgid "ISO C forbids comparison of `void *' with function pointer"
+#~ msgstr "ISO-C verbietet Vergleich von »void *« mit Funktionszeiger"
+
+#~ msgid "comparison of distinct pointer types lacks a cast"
+#~ msgstr "in Vergleich verschiedener Zeigertypen fehlt Typkonvertierung"
+
+#~ msgid "comparison between pointer and integer"
+#~ msgstr "Vergleich zwischen Zeiger und Ganzzahl"
+
+#~ msgid "ISO C forbids ordered comparisons of pointers to functions"
+#~ msgstr "ISO-C verbietet geordnete Vergleiche zwischen Zeigern auf Funktionen"
+
+#~ msgid "comparison of complete and incomplete pointers"
+#~ msgstr "Vergleich von vollständigen und unvollständigen Zeigern"
+
+#~ msgid "ordered comparison of pointer with integer zero"
+#~ msgstr "geordneter Vergleich von Zeiger mit Ganzzahlnull"
+
+#~ msgid "unordered comparison on non-floating point argument"
+#~ msgstr "ungeordneter Vergleich mit Nicht-Gleitkomma-Argument"
+
+#~ msgid "comparison between signed and unsigned"
+#~ msgstr "Vergleich zwischen vorzeichenbehaftet und vorzeichenlos"
+
+#~ msgid "comparison of promoted ~unsigned with constant"
+#~ msgstr "Vergleich von weitergegebenem ~unsigned mit Konstante"
+
+#~ msgid "comparison of promoted ~unsigned with unsigned"
+#~ msgstr "Vergleich von weitergegebenem ~unsigned mit unsigned"
+
+#~ msgid "%Jinlining failed in call to '%F'"
+#~ msgstr "%J»inline« beim Aufruf von »%F« gescheitert"
+
+#~ msgid "called from here"
+#~ msgstr "von hier aufgerufen"
+
+#~ msgid "%Jcan't inline call to '%F'"
+#~ msgstr "%JAufruf von »%F« kann nicht »inline« erfolgen"
+
+#~ msgid "ignoring return value of `%D', declared with attribute warn_unused_result"
+#~ msgstr "Rückgabewert von »%D«, das mit dem Attribut warn_unused_result definiert wurde, wird ignoriert"
+
+#~ msgid "ignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "Rückgabewert der mit dem Attribut warn_unused_result definierten Funktion wird ignoriert"
+
+#~ msgid "function call has aggregate value"
+#~ msgstr "Funktionsaufruf hat zusammengesetzten Wert"
+
+#~ msgid "bb %d on wrong place"
+#~ msgstr "bb %d an falscher Stelle"
+
+#~ msgid "prev_bb of %d should be %d, not %d"
+#~ msgstr "prev_bb von %d sollte %d sein, nicht %d"
+
+#~ msgid "verify_flow_info: Wrong count of block %i %i"
+#~ msgstr "verify_flow_info: Falsche Blockzahl %i %i"
+
+#~ msgid "verify_flow_info: Wrong frequency of block %i %i"
+#~ msgstr "verify_flow_info: Falsche Blockfrequenz %i %i"
+
+#~ msgid "verify_flow_info: Duplicate edge %i->%i"
+#~ msgstr "verify_flow_info: Doppelte Kante %i->%i"
+
+#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Falsche Wahrscheinlichkeit der Kante %i->%i %i"
+
+#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Falsche Kantenzahl %i->%i %i"
+
+#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+#~ msgstr "verify_flow_info: Nachfolgekante des Basis-Blocks %d ist beschädigt"
+
+#~ msgid "Wrong amount of branch edges after unconditional jump %i"
+#~ msgstr "Falsche Summe der Zweig-Kanten nach unbedingtem Sprung %i"
+
+#~ msgid "basic block %d pred edge is corrupted"
+#~ msgstr "Vorgänger des Basis-Blocks %d ist beschädigt"
+
+#~ msgid "basic block %i edge lists are corrupted"
+#~ msgstr "Kantenlisten des Basis-Blockes %i sind beschädigt"
+
+#~ msgid "verify_flow_info failed"
+#~ msgstr "verify_flow_info gescheitert"
+
+#~ msgid "Size of loop %d should be %d, not %d."
+#~ msgstr "Größe der Schleife %d sollte %d sein, nicht %d"
+
+#~ msgid "Bb %d do not belong to loop %d."
+#~ msgstr "Bb %d gehört nicht zur Schleife %d."
+
+#~ msgid "Loop %d's header does not have exactly 2 entries."
+#~ msgstr "Kopf der Schleife %d hat nicht genau 2 Einträge."
+
+#~ msgid "Loop %d's latch does not have exactly 1 successor."
+#~ msgstr "Falle der Schleife %d hat nicht genau einen Nachfolger."
+
+#~ msgid "Loop %d's latch does not have header as successor."
+#~ msgstr "Falle der Schleife %d hat nicht den Kopf als Nachfolger."
+
+#~ msgid "Loop %d's latch does not belong directly to it."
+#~ msgstr "Falle der Schleife %d gehört nicht direkt zu ihr."
+
+#~ msgid "Loop %d's header does not belong directly to it."
+#~ msgstr "Kopf der Schleife %d gehört nicht direkt zu ihr."
+
+#~ msgid "Loop %d's latch is marked as part of irreducible region."
+#~ msgstr "Falle der Schleife %d ist als Teil einer irreduziblen Region markiert."
+
+#~ msgid "Basic block %d should be marked irreducible."
+#~ msgstr "Basisblock %d sollte als irreduzibel markiert werden."
+
+#~ msgid "Basic block %d should not be marked irreducible."
+#~ msgstr "Basisblock %d sollte nicht als irreduzibel markiert werden."
+
+#~ msgid "Edge from %d to %d should be marked irreducible."
+#~ msgstr "Kante von %d nach %d sollte als irreduzibel markiert werden."
+
+#~ msgid "Edge from %d to %d should not be marked irreducible."
+#~ msgstr "Kante von %d nach %d sollte nicht als irreduzibel markiert werden."
+
+#~ msgid "end insn %d for block %d not found in the insn stream"
+#~ msgstr "Ende-insn %d für Block %d nicht im insn-Stream gefunden"
+
+#~ msgid "insn %d is in multiple basic blocks (%d and %d)"
+#~ msgstr "insn %d ist in mehreren Basisblöcken (%d und %d)"
+
+#~ msgid "head insn %d for block %d not found in the insn stream"
+#~ msgstr "Kopf-insn %d für Block %d nicht im insn-Stream gefunden"
+
+#~ msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
+#~ msgstr "verify_flow_info: REG_BR_PROB passt nicht zu cfg %wi %i"
+
+#~ msgid "Missing REG_EH_REGION note in the end of bb %i"
+#~ msgstr "Fehlender Vermerk von REG_EH_REGION am Ende vom bb %i"
+
+#~ msgid "Too many outgoing branch edges from bb %i"
+#~ msgstr "Zu viele abgehende Zweig-Kanten vom bb %i"
+
+#~ msgid "Fallthru edge after unconditional jump %i"
+#~ msgstr "Fallthru-Kante nach unbedingtem Sprung %i"
+
+#~ msgid "Wrong amount of branch edges after conditional jump %i"
+#~ msgstr "Falsche Summe der Zweig-Kanten nach bedingtem Sprung %i"
+
+#~ msgid "Call edges for non-call insn in bb %i"
+#~ msgstr "Ruf-Kanten für Nicht-Aufruf-insn im bb %i"
+
+#~ msgid "Abnormal edges for no purpose in bb %i"
+#~ msgstr "Abnormale Kanten ohne Grund in bb %i"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is NULL"
+#~ msgstr "insn %d innerhalb des Basis-Blockes %d, aber block_for_insn ist NULL"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is %i"
+#~ msgstr "insn %d innerhalb Basis-Blockes %d, aber block_for_insn ist %i"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK fehlt für Block %d"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK %d in der Mitte des Basis-Blocks %d"
+
+#~ msgid "in basic block %d:"
+#~ msgstr "im Basis-Block %d:"
+
+#~ msgid "flow control insn inside a basic block"
+#~ msgstr "Flusskontroll-insn innerhalb eines Basis-Blockes"
+
+#~ msgid "missing barrier after block %i"
+#~ msgstr "fehlende Sperre nach Block %i"
+
+#~ msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+#~ msgstr "verify_flow_info: Falsche Blöcke für »fallthru« %i->%i"
+
+#~ msgid "verify_flow_info: Incorrect fallthru %i->%i"
+#~ msgstr "verify_flow_info: Falsches »fallthru« %i->%i"
+
+#~ msgid "wrong insn in the fallthru edge"
+#~ msgstr "falsche insn in »fallthru«-Kante"
+
+#~ msgid "basic blocks not laid down consecutively"
+#~ msgstr "Basis-Blöcke sind nicht fortlaufend"
+
+#~ msgid "insn outside basic block"
+#~ msgstr "insn außerhalb eines Basis-Blockes"
+
+#~ msgid "return not followed by barrier"
+#~ msgstr "»return« nicht gefolgt von Sperre"
+
+#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+#~ msgstr "Anzahl der bb-Vermerke in insn-Kette (%d) != n_basic_blocks (%d)"
+
+#~ msgid "function body not available"
+#~ msgstr "Funktionskörper nicht verfügbar"
+
+#~ msgid "redefined extern inline functions are not considered for inlining"
+#~ msgstr "redefinierte »extern inline«-Funktionen kommen nicht als »inline« in Betracht"
+
+#~ msgid "function not considered for inlining"
+#~ msgstr "Funktion kommt nicht für »inline« in Betracht"
+
+#~ msgid "function not inlinable"
+#~ msgstr "Funktion kann nicht »inline« sein"
+
+#~ msgid "%D renamed after being referenced in assembly"
+#~ msgstr "%D nach Referenzierung in Assemblierung umbenannt"
+
+#~ msgid "--param large-function-growth limit reached"
+#~ msgstr "--param large-function-growth: Limit erreicht"
+
+#~ msgid "--param large-function-growth limit reached while inlining the caller"
+#~ msgstr "--param large-function-growth: Limit bei »inline« des Aufrufers erreicht"
+
+#~ msgid "--param max-inline-insns-single limit reached"
+#~ msgstr "--param max-inline-insns-single: Limit erreicht"
+
+#~ msgid "--param max-inline-insns-single limit reached after inlining into the callee"
+#~ msgstr "--param max-inline-insns-single: Limit nach »inline« im Aufgerufenen erreicht"
+
+#~ msgid "--param inline-unit-growth limit reached"
+#~ msgstr "--param inline-unit-growth: Limit erreicht"
+
+#~ msgid "recursive inlining"
+#~ msgstr "rekursives inline"
+
+#~ msgid "internal error"
+#~ msgstr "interner Fehler"
+
+#~ msgid "no arguments"
+#~ msgstr "Keiner Argumente"
+
+#~ msgid "fopen %s"
+#~ msgstr "fopen %s"
+
+#~ msgid "fclose %s"
+#~ msgstr "fclose %s"
+
+#~ msgid "collect2 version %s"
+#~ msgstr "collect2-Version %s"
+
+#~ msgid "%d constructor(s) found\n"
+#~ msgstr "%d Konstruktor(en) gefunden\n"
+
+#~ msgid "%d destructor(s) found\n"
+#~ msgstr "%d Destruktor(en) gefunden\n"
+
+#~ msgid "%d frame table(s) found\n"
+#~ msgstr "%d Rahmentabelle(n) gefunden\n"
+
+#~ msgid "%s terminated with signal %d [%s]%s"
+#~ msgstr "%s mit Signal %d [%s]%s beendet"
+
+#~ msgid "%s returned %d exit status"
+#~ msgstr "%s gab Ende-Status %d zurück"
+
+#~ msgid "[cannot find %s]"
+#~ msgstr "[kann %s nicht finden]"
+
+#~ msgid "cannot find `%s'"
+#~ msgstr "kann »%s« nicht finden"
+
+#~ msgid "redirecting stdout: %s"
+#~ msgstr "leite Standardausgabe um: %s"
+
+#~ msgid "[Leaving %s]\n"
+#~ msgstr "[Verlasse %s]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "write_c_file - output name is %s, prefix is %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "write_c_file - Ausgabename ist %s, Präfix ist %s\n"
+
+#~ msgid "cannot find `nm'"
+#~ msgstr "kann »nm« nicht finden"
+
+#~ msgid "pipe"
+#~ msgstr "Pipe"
+
+#~ msgid "fdopen"
+#~ msgstr "fdopen"
+
+#~ msgid "dup2 %d 1"
+#~ msgstr "dup2 %d 1"
+
+#~ msgid "close %d"
+#~ msgstr "close %d"
+
+#~ msgid "execv %s"
+#~ msgstr "execv %s"
+
+#~ msgid "init function found in object %s"
+#~ msgstr "init-Funktion im Objekt %s gefunden"
+
+#~ msgid "fini function found in object %s"
+#~ msgstr "fini-Funktion im Objekt %s gefunden"
+
+#~ msgid "fclose"
+#~ msgstr "fclose"
+
+#~ msgid "unable to open file '%s'"
+#~ msgstr "kann Datei »%s« nicht öffnen"
+
+#~ msgid "unable to stat file '%s'"
+#~ msgstr "kann Dateistatus für »%s« nicht ermitteln"
+
+#~ msgid "unable to mmap file '%s'"
+#~ msgstr "kann mmap nicht auf Datei »%s« anwenden"
+
+#~ msgid "not found\n"
+#~ msgstr "nicht gefunden\n"
+
+#~ msgid "dynamic dependency %s not found"
+#~ msgstr "dynamische Abhängigkeit %s nicht gefunden"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "Falsche magische Zahl in Datei »%s«"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr "dynamische Abhängigkeiten.\n"
+
+#~ msgid "cannot find `ldd'"
+#~ msgstr "kann »ldd« nicht finden"
+
+#~ msgid ""
+#~ "\n"
+#~ "ldd output with constructors/destructors.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Ausgabe von ldd mit Konstruktoren/Destruktoren.\n"
+
+#~ msgid "unable to open dynamic dependency '%s'"
+#~ msgstr "kann dynamische Abhängigkeit »%s« nicht öffnen"
+
+#~ msgid "%s: not a COFF file"
+#~ msgstr "%s: keine COFF-Datei"
+
+#~ msgid "%s: cannot open as COFF file"
+#~ msgstr "kann %s nicht als COFF-Datei öffnen"
+
+#~ msgid "library lib%s not found"
+#~ msgstr "Bibliothek lib%s nicht gefunden"
+
+#~ msgid ""
+#~ ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ "\n"
+#~ msgstr ""
+#~ ";; Kombinierer-Statistik: %d Versuche, %d Ersetzungen (%d benötigten neuen Platz),\n"
+#~ ";; %d Erfolge.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ msgstr ""
+#~ "\n"
+#~ ";; Kombinierer-Gesamtwerte: %d Versuche, %d Ersetzungen (%d benötigten neuen Platz),\n"
+#~ ";; %d Erfolge.\n"
+
+#~ msgid "cannot convert to a pointer type"
+#~ msgstr "kann nicht in Zeigertyp konvertieren"
+
+#~ msgid "pointer value used where a floating point value was expected"
+#~ msgstr "Zeigerwert verwendet, wo Gleitkommawert erwartet wurde"
+
+#~ msgid "aggregate value used where a float was expected"
+#~ msgstr "zusammengesetzten Wert verwendet, wo Gleitkomma erwartet wurde"
+
+#~ msgid "conversion to incomplete type"
+#~ msgstr "Konvertierung in unvollständigen Typen"
+
+#~ msgid "can't convert between vector values of different size"
+#~ msgstr "kann nicht zwischen Vektorwerten verschiedener Größen konvertieren"
+
+#~ msgid "aggregate value used where an integer was expected"
+#~ msgstr "zusammengesetzter Wert verwendet, wo Ganzzahl erwartet wurde"
+
+#~ msgid "pointer value used where a complex was expected"
+#~ msgstr "Zeigerwert verwendet, wo »complex« erwartet wurde"
+
+#~ msgid "aggregate value used where a complex was expected"
+#~ msgstr "zusammengesetzer Wert verwendet, wo »complex« erwartet wurde"
+
+#~ msgid "can't convert value to a vector"
+#~ msgstr "kann Wert nicht in Vektor konvertieren"
+
+#~ msgid "`%s' is not a gcov data file"
+#~ msgstr "»%s« ist keine gcov-Datei"
+
+#~ msgid "`%s' is version `%.4s', expected version `%.4s'"
+#~ msgstr "»%s« hat Version »%.4s«, Version »%.4s« erwartet"
+
+#~ msgid "coverage mismatch for function %u while reading execution counters."
+#~ msgstr "Überdeckung passt nicht für Funktion %u beim Lesen der Ausführungszähler."
+
+#~ msgid "checksum is %x instead of %x"
+#~ msgstr "Prüfsumme ist %x statt %x"
+
+#~ msgid "number of counters is %d instead of %d"
+#~ msgstr "Zahl der Zähler ist %d statt %d"
+
+#~ msgid "cannot merge separate %s counters for function %u"
+#~ msgstr "separate %s Zähler für die Funktion %u können nicht verschmolzen werden"
+
+#~ msgid "`%s' has overflowed"
+#~ msgstr "»%s« übergelaufen"
+
+#~ msgid "`%s' is corrupted"
+#~ msgstr "»%s« ist beschädigt"
+
+#~ msgid "file %s not found, execution counts assumed to be zero"
+#~ msgstr "Datei %s nicht gefunden, Ausführungszähler als null angenommen"
+
+#~ msgid "no coverage for function '%s' found."
+#~ msgstr "keine Überdeckung für Funktion »%s« gefunden."
+
+#~ msgid "coverage mismatch for function '%s' while reading counter '%s'."
+#~ msgstr "Überdeckung passt nicht bei Funktion »%s« beim Lesen des Zählers »%s«."
+
+#~ msgid "cannot open %s"
+#~ msgstr "Es ist nicht möglich, »%s« zu öffnen"
+
+#~ msgid "error writing `%s'"
+#~ msgstr "Fehler beim Schreiben der Datei »%s«"
+
+#~ msgid "\"%s\" is not a valid option to the preprocessor"
+#~ msgstr "»%s« ist keine gültige Präprozessoroption"
+
+#~ msgid "too many input files"
+#~ msgstr "zu viele Eingabedateien"
+
+#~ msgid ";; Processing block from %d to %d, %d sets.\n"
+#~ msgstr ";; Bearbeite Block von %d bis %d, %d Sets.\n"
+
+#~ msgid "%s:%d: confused by earlier errors, bailing out\n"
+#~ msgstr "%s:%d: durch frühere Fehler verwirrt, Abbruch\n"
+
+#~ msgid "compilation terminated.\n"
+#~ msgstr "Kompilierung beendet.\n"
+
+#~ msgid "Internal compiler error: Error reporting routines re-entered.\n"
+#~ msgstr "Interner Compilerfehler: Fehlerbehandlungsroutinen doppelt betreten.\n"
+
+#~ msgid "in %s, at %s:%d"
+#~ msgstr "in %s, bei %s:%d"
+
+#~ msgid "dominator of %d should be %d, not %d"
+#~ msgstr "Herrscher über %d sollte %d sein, nicht %d"
+
+#~ msgid "DW_LOC_OP %s not implemented\n"
+#~ msgstr "DW_LOC_OP %s nicht implementiert\n"
+
+#~ msgid "can't access real part of complex value in hard register"
+#~ msgstr "kann nicht auf realen Teil des komplexen Wertes im festen Register zugreifen"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "kann nicht auf imaginären Teil des komplexen Wertes im festen Register zugreifen"
+
+#~ msgid "Invalid rtl sharing found in the insn"
+#~ msgstr "ungültige gemeinsame rtl-Benutzung in insn gefunden"
+
+#~ msgid "Shared rtx"
+#~ msgstr "Gemeinsames rtx"
+
+#~ msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+#~ msgstr "ICE: emit_insn verwendet, wo emit_jump_insn erforderlich:\n"
+
+#~ msgid "abort in %s, at %s:%d"
+#~ msgstr "Abbruch in %s, bei %s:%d"
+
+#~ msgid "exception handling disabled, use -fexceptions to enable"
+#~ msgstr "Ausnahmebehandlung ausgeschaltet, benutzen Sie -fexeptions zum Anschalten"
+
+#~ msgid "argument of `__builtin_eh_return_regno' must be constant"
+#~ msgstr "Argument für »__builtin_eh_return_regno« muss konstant sein"
+
+#~ msgid "__builtin_eh_return not supported on this target"
+#~ msgstr "__builtin_eh_return für dieses Ziel nicht unterstützt"
+
+#~ msgid "stack limits not supported on this target"
+#~ msgstr "Kellergrenzen nicht für dieses Ziel unterstützt"
+
+#~ msgid "function using short complex types cannot be inline"
+#~ msgstr "Funktion, die komplexe »short«-Typen verwendet, kann nicht »inline« sein"
+
+#~ msgid "%Jprior parameter's size depends on '%D'"
+#~ msgstr "%Jvorherige Parametergröße hängt von »%D« ab"
+
+#~ msgid "returned value in block_exit_expr"
+#~ msgstr "zurückgelieferter Wert in block_exit_expr"
+
+#~ msgid "cannot take the address of an unaligned member"
+#~ msgstr "die Adresse eines nicht ausgerichteten Elements kann nicht ermittelt werden"
+
+#~ msgid "negative insn length"
+#~ msgstr "negative insn-Länge"
+
+#~ msgid "could not split insn"
+#~ msgstr "insn kann nicht aufgeteilt werden"
+
+#~ msgid "invalid `asm': "
+#~ msgstr "ungültiges »asm«: "
+
+#~ msgid "nested assembly dialect alternatives"
+#~ msgstr "geschachtelte Assemblerdialekt-Alternativen"
+
+#~ msgid "unterminated assembly dialect alternative"
+#~ msgstr "unbeendete Assemblerdialekt-Alternative"
+
+#~ msgid "operand number missing after %%-letter"
+#~ msgstr "Operandenzahl fehlt hinter %%-Buchstabe"
+
+#~ msgid "operand number out of range"
+#~ msgstr "Operandenzahl außerhalb des Wertebereiches"
+
+#~ msgid "invalid %%-code"
+#~ msgstr "ungültiger %%-Code"
+
+#~ msgid "`%%l' operand isn't a label"
+#~ msgstr "»%%l«-Operand ist keine Marke"
+
+#~ msgid "floating constant misused"
+#~ msgstr "Gleitkommakonstante falsch benutzt"
+
+#~ msgid "invalid expression as operand"
+#~ msgstr "ungültiger Ausdruck als Operand"
+
+#~ msgid "function might be possible candidate for attribute `noreturn'"
+#~ msgstr "Funktion könnte möglicher Kandidat für Attribut »noreturn« sein"
+
+#~ msgid "`noreturn' function does return"
+#~ msgstr "»noreturn«-Funktion kehrt zurück"
+
+#~ msgid "control reaches end of non-void function"
+#~ msgstr "Kontrollfluss erreicht Ende einer Nicht-void-Funktion"
+
+#~ msgid "Attempt to delete prologue/epilogue insn:"
+#~ msgstr "Versuch, Prolog/Epilog-insn zu löschen"
+
+#~ msgid "comparison is always %d due to width of bit-field"
+#~ msgstr "Vergleich ist immer %d wegen Breite des Bitfeldes"
+
+#~ msgid "comparison is always %d"
+#~ msgstr "Vergleich ist immer %d"
+
+#~ msgid "`or' of unmatched not-equal tests is always 1"
+#~ msgstr "»oder« nicht passender Ungleichheits-Tests ist immer 1"
+
+#~ msgid "`and' of mutually exclusive equal-tests is always 0"
+#~ msgstr "»und« gegenseitig ausschließender Gleichheits-Tests ist immer 0"
+
+#~ msgid "fold check: original tree changed by fold"
+#~ msgstr "Faltungstest: ursprünglicher Baum durch Faltung geändert"
+
+#~ msgid "%Jsize of variable '%D' is too large"
+#~ msgstr "%JGröße der Variable »%D« ist zu hoch"
+
+#~ msgid "impossible constraint in `asm'"
+#~ msgstr "unmögliche Bedingung in »asm«"
+
+#~ msgid "%J'%D' might be used uninitialized in this function"
+#~ msgstr "%J»%D« könnte in dieser Funktion uninitialisiert bleiben"
+
+#~ msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "%JVariable »%D« könnte von »longjmp« oder »vfork« zerstört werden"
+
+#~ msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "%JArgument »%D« könnte von »longjmp« oder »vfork« zerstört werden"
+
+#~ msgid "function returns an aggregate"
+#~ msgstr "Funktion gibt Aggregat zurück"
+
+#~ msgid "%Junused parameter '%D'"
+#~ msgstr "%Jnicht benutzter Parameter »%D«"
+
+#~ msgid "ambiguous abbreviation %s"
+#~ msgstr "mehrdeutige Abkürzung %s"
+
+#~ msgid "incomplete `%s' option"
+#~ msgstr "unvollständige »%s«-Option"
+
+#~ msgid "missing argument to `%s' option"
+#~ msgstr "fehlendes Argument für »%s«-Option"
+
+#~ msgid "extraneous argument to `%s' option"
+#~ msgstr "zusätzliches (belangloses) Argument für »%s«-Option"
+
+#~ msgid "Using built-in specs.\n"
+#~ msgstr "Benutze eingebaute Spezifikationen.\n"
+
+#~ msgid ""
+#~ "Setting spec %s to '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Setze Spezifikation %s auf '%s'\n"
+#~ "\n"
+
+#~ msgid "Reading specs from %s\n"
+#~ msgstr "Lese Spezifikationen von %s\n"
+
+#~ msgid "specs %%include syntax malformed after %ld characters"
+#~ msgstr "falsche %%include-Syntax für Spezifikationen nach %ld Zeichen"
+
+#~ msgid "could not find specs file %s\n"
+#~ msgstr "konnte Spezifikationsdatei %s nicht finden\n"
+
+#~ msgid "specs %%rename syntax malformed after %ld characters"
+#~ msgstr "falsche %%rename-Syntax für Spezifikationen nach %ld Zeichen"
+
+#~ msgid "specs %s spec was not found to be renamed"
+#~ msgstr "keine %s-Spezifikation zum Umbenennen gefunden"
+
+#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+#~ msgstr "%s: Versuch, Spezifikation »%s« in bereits definierte Spezifikation »%s« umzubenennen"
+
+#~ msgid "rename spec %s to %s\n"
+#~ msgstr "benenne Spezifikation %s nach %s um\n"
+
+#~ msgid ""
+#~ "spec is '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Spezifikation ist '%s'\n"
+#~ "\n"
+
+#~ msgid "specs unknown %% command after %ld characters"
+#~ msgstr "Spezifikation: unbekannter %%-Befehl nach %ld Zeichen"
+
+#~ msgid "specs file malformed after %ld characters"
+#~ msgstr "Fehler in Spezifikationsdatei nach %ld Zeichen"
+
+#~ msgid "spec file has no spec for linking"
+#~ msgstr "Spezifikationsdatei hat keine Spezifikation zum Binden"
+
+#~ msgid "-pipe not supported"
+#~ msgstr "-pipe wird nicht unterstützt"
diff --git a/gcc-4.9/libcpp/po/el.po b/gcc-4.9/libcpp/po/el.po
new file mode 100644
index 000000000..49ace1d04
--- /dev/null
+++ b/gcc-4.9/libcpp/po/el.po
@@ -0,0 +1,5282 @@
+# Greek translation of gcc.
+# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+# Simos Xenitellis <simos@hellug.gr>, 2001, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gcc 3.2\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2002-08-18 15:46+0100\n"
+"Last-Translator: Simos Xenitellis <simos@hellug.gr>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"Language: el\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-7\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, fuzzy, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr " `%s' `%s' "
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr ""
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr ""
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr ""
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr ""
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr ""
+
+#: charset.c:997
+#, fuzzy
+msgid "universal character names are only valid in C++ and C99"
+msgstr "U+%04X: "
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr ""
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr ""
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr ""
+
+#: charset.c:1049
+#, fuzzy, c-format
+msgid "%.*s is not a valid universal character"
+msgstr " `%s' ."
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr ""
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr ""
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr ""
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr ""
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr ""
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr ""
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr ""
+
+#: charset.c:1205
+#, fuzzy
+msgid "hex escape sequence out of range"
+msgstr " "
+
+#: charset.c:1243
+#, fuzzy
+msgid "octal escape sequence out of range"
+msgstr " "
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr ""
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr ""
+
+# src/main.c:663
+#: charset.c:1324
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr " `%s'"
+
+# src/main.c:663
+#: charset.c:1332
+#, fuzzy, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr " `%s'"
+
+#: charset.c:1339
+#, fuzzy
+msgid "converting escape sequence to execution character set"
+msgstr " "
+
+#: charset.c:1512 charset.c:1576
+#, fuzzy
+msgid "character constant too long for its type"
+msgstr " "
+
+#: charset.c:1515
+#, fuzzy
+msgid "multi-character character constant"
+msgstr " `%s'"
+
+#: charset.c:1615
+#, fuzzy
+msgid "empty character constant"
+msgstr " "
+
+#: charset.c:1724
+#, fuzzy, c-format
+msgid "failure to convert %s to %s"
+msgstr " %s `%s' `%s'"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr ""
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr ""
+
+#: directives.c:362
+#, fuzzy, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr " `%s' "
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr ""
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr ""
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr ""
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr ""
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr ""
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr ""
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr ""
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr ""
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr ""
+
+#: directives.c:563
+#, fuzzy
+msgid "macro names must be identifiers"
+msgstr " "
+
+#: directives.c:612
+#, fuzzy, c-format
+msgid "undefining \"%s\""
+msgstr " %s"
+
+#: directives.c:667
+#, fuzzy
+msgid "missing terminating > character"
+msgstr " "
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr ""
+
+#: directives.c:772
+#, fuzzy, c-format
+msgid "empty filename in #%s"
+msgstr " %s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr ""
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr ""
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr ""
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr ""
+
+#: directives.c:912
+#, fuzzy, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "%s' ."
+
+#: directives.c:918 directives.c:920
+#, fuzzy
+msgid "line number out of range"
+msgstr "%s: "
+
+#: directives.c:933 directives.c:1013
+#, fuzzy, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "%s' ."
+
+#: directives.c:973
+#, fuzzy, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "%s' ."
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, fuzzy, c-format
+msgid "invalid #%s directive"
+msgstr "%%%c: ."
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr ""
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr ""
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr ""
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr ""
+
+#: directives.c:1192
+#, fuzzy, c-format
+msgid "#pragma %s is already registered"
+msgstr " `%s' "
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr ""
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr ""
+
+#: directives.c:1462
+#, fuzzy
+msgid "invalid #pragma push_macro directive"
+msgstr "%%%c: ."
+
+#: directives.c:1517
+#, fuzzy
+msgid "invalid #pragma pop_macro directive"
+msgstr "%%%c: ."
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr ""
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr ""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr ""
+
+#: directives.c:1625
+#, fuzzy, c-format
+msgid "cannot find source file %s"
+msgstr " : %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr ""
+
+#: directives.c:1653
+#, fuzzy, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr " `%s' ."
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr ""
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr ""
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr ""
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr ""
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr ""
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr ""
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr ""
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr ""
+
+#: directives.c:2186
+#, fuzzy
+msgid "assertion without predicate"
+msgstr " "
+
+#: directives.c:2189
+#, fuzzy
+msgid "predicate must be an identifier"
+msgstr " "
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr ""
+
+#: directives.c:2567
+#, fuzzy, c-format
+msgid "unterminated #%s"
+msgstr " o "
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+#, fuzzy
+msgid "unterminated comment"
+msgstr " `s'"
+
+#: errors.c:234
+msgid "stdout"
+msgstr ""
+
+# src/request.c:37
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr ""
+
+#: expr.c:535
+#, fuzzy
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr " : %s"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr ""
+
+#: expr.c:588
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr " : %s"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr ""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr ""
+
+#: expr.c:613
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr " : %s"
+
+#: expr.c:624
+#, fuzzy
+msgid "decimal float constants are a GCC extension"
+msgstr "%s: %s "
+
+#: expr.c:642
+#, fuzzy, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr " `%s'"
+
+#: expr.c:667
+#, fuzzy
+msgid "use of C++11 long long integer constant"
+msgstr " `%s'"
+
+#: expr.c:668
+#, fuzzy
+msgid "use of C99 long long integer constant"
+msgstr " `%s'"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr ""
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr ""
+
+#: expr.c:787
+#, fuzzy
+msgid "integer constant is too large for its type"
+msgstr "%s: %s "
+
+#: expr.c:818
+#, fuzzy
+msgid "integer constant is so large that it is unsigned"
+msgstr "%s: %s "
+
+#: expr.c:913
+#, fuzzy
+msgid "missing ')' after \"defined\""
+msgstr " "
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr ""
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr ""
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr ""
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr ""
+
+#: expr.c:1003
+#, fuzzy
+msgid "floating constant in preprocessor expression"
+msgstr " "
+
+#: expr.c:1009
+#, fuzzy
+msgid "imaginary number in preprocessor expression"
+msgstr " "
+
+#: expr.c:1057
+#, fuzzy, c-format
+msgid "\"%s\" is not defined"
+msgstr " `%s' "
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr ""
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr ""
+
+# src/dfa.c:652 src/dfa.c:655 src/dfa.c:682 src/dfa.c:686 src/dfa.c:687
+# src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
+# src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
+# src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
+#: expr.c:1318
+#, fuzzy, c-format
+msgid "unbalanced stack in %s"
+msgstr " ["
+
+#: expr.c:1338
+#, fuzzy, c-format
+msgid "impossible operator '%u'"
+msgstr "RPC: RPC"
+
+#: expr.c:1439
+#, fuzzy
+msgid "missing ')' in expression"
+msgstr " "
+
+#: expr.c:1468
+#, fuzzy
+msgid "'?' without following ':'"
+msgstr " : %s"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr ""
+
+#: expr.c:1483
+#, fuzzy
+msgid "missing '(' in expression"
+msgstr " "
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr ""
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr ""
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr ""
+
+#: expr.c:2013
+#, fuzzy
+msgid "division by zero in #if"
+msgstr " : %s"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr ""
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr ""
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr ""
+
+#: files.c:660
+#, fuzzy, c-format
+msgid "%s is a block device"
+msgstr " "
+
+# src/shred.c:1134
+#: files.c:677
+#, fuzzy, c-format
+msgid "%s is too large"
+msgstr "%s: "
+
+#: files.c:717
+#, fuzzy, c-format
+msgid "%s is shorter than expected"
+msgstr "%s: .\n"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr ""
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr ""
+
+#: init.c:536
+#, fuzzy
+msgid "cppchar_t must be an unsigned type"
+msgstr " "
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr ""
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr ""
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr ""
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr ""
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr ""
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr ""
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr ""
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr ""
+
+#: lex.c:924
+#, fuzzy
+msgid "backslash-newline at end of file"
+msgstr " "
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr ""
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr ""
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr ""
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr ""
+
+#: lex.c:1064
+#, fuzzy
+msgid "null character(s) ignored"
+msgstr " : "
+
+#: lex.c:1101
+#, fuzzy, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr " `%s' "
+
+#: lex.c:1104
+#, fuzzy, c-format
+msgid "`%.*s' is not in NFC"
+msgstr " `%s' "
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr ""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr ""
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, fuzzy, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr " `%c' `%s'"
+
+#: lex.c:1611 lex.c:1633
+#, fuzzy
+msgid "unterminated raw string"
+msgstr " o "
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr ""
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr " %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr ""
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr ""
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr ""
+
+#: lex.c:2660
+#, fuzzy, c-format
+msgid "unspellable token %s"
+msgstr "%s: %s: %m\n"
+
+#: macro.c:191
+#, fuzzy, c-format
+msgid "macro \"%s\" is not used"
+msgstr " `%s' "
+
+#: macro.c:229 macro.c:433
+#, fuzzy, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr " : %s"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+#, fuzzy
+msgid "could not determine file timestamp"
+msgstr " %s"
+
+#: macro.c:368
+#, fuzzy
+msgid "could not determine date and time"
+msgstr " %s"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr ""
+
+#: macro.c:542
+#, fuzzy
+msgid "invalid string literal, ignoring final '\\'"
+msgstr " : `%s'"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr ""
+
+#: macro.c:726
+#, fuzzy
+msgid "ISO C99 requires rest arguments to be used"
+msgstr " "
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr ""
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr ""
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr ""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr ""
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, fuzzy, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr " `%s'"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr ""
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr ""
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr ""
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr ""
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr ""
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr ""
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr ""
+
+#: macro.c:2902
+#, fuzzy
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr " "
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr ""
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr ""
+
+#: macro.c:3118
+#, fuzzy, c-format
+msgid "\"%s\" redefined"
+msgstr ""
+
+#: macro.c:3124
+#, fuzzy
+msgid "this is the location of the previous definition"
+msgstr " "
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr ""
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr ""
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr ""
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr ""
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr ""
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr ""
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr ""
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr ""
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr ""
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr ""
+
+#: traditional.c:968
+#, fuzzy
+msgid "syntax error in macro parameter list"
+msgstr " "
+
+#, fuzzy
+#~ msgid "wrong number of arguments specified for `%s' attribute"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unknown machine mode `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "no data type for mode `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "section attributes are not supported for this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "requested alignment is too large"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "alignment may not be specified for `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't set `%s' attribute after definition"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%s' attribute ignored for `%s'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "invalid vector type for attribute `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "__builtin_saveregs not supported by this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing argument in `__builtin_args_info'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "too many arguments to function `va_start'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "vector overflow in expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid truth-value expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid operands to binary %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid use of `restrict'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot disable built-in function `%s'"
+#~ msgstr " ioctl `%s'"
+
+#, fuzzy
+#~ msgid "too few arguments to function `%s'"
+#~ msgstr ": `%s'"
+
+#, fuzzy
+#~ msgid "too many arguments to function `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "empty range specified"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "this is the first entry overlapping that value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate case value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "this is the first default label"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unknown C standard `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "conflicting types for `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "redefinition of `%s'"
+#~ msgstr " `UNDEFINED'"
+
+#, fuzzy
+#~ msgid "redeclaration of `%s'"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "`%s' declared inline after its definition"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "a parameter"
+#~ msgstr " "
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr " "
+
+#~ msgid "previous implicit declaration of `%s'"
+#~ msgstr " `%s'"
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "this is a previous declaration"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "empty declaration"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "array size missing in `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "storage size of `%s' isn't known"
+#~ msgstr " `%s' \n"
+
+#, fuzzy
+#~ msgid "duplicate `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "both signed and unsigned specified for `%s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "complex invalid for `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate `const'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate `restrict'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate `volatile'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "size of array `%s' is too large"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "invalid storage class for function `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot inline function `main'"
+#~ msgstr " fifo `%s'"
+
+#, fuzzy
+#~ msgid "parameter has incomplete type"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "redefinition of `union %s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s defined inside parms"
+#~ msgstr " "
+
+#~ msgid "union"
+#~ msgstr ""
+
+#~ msgid "structure"
+#~ msgstr ""
+
+# src/request.c:37
+#, fuzzy
+#~ msgid "%s has no %s"
+#~ msgstr "%s %s"
+
+#~ msgid "struct"
+#~ msgstr ""
+
+#~ msgid "named members"
+#~ msgstr " "
+
+#~ msgid "members"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "nested redefinition of `%s'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "negative width in bit-field `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%s' is narrower than values of its type"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid "duplicate member `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "enum defined inside parms"
+#~ msgstr " %s"
+
+#~ msgid "return type defaults to `int'"
+#~ msgstr " `int'"
+
+#, fuzzy
+#~ msgid "`%s' was used with no declaration before its definition"
+#~ msgstr " "
+
+#~ msgid "return type of `%s' is not `int'"
+#~ msgstr " `%s' `int'"
+
+#~ msgid "first argument of `%s' should be `int'"
+#~ msgstr " `%s' `int'"
+
+#~ msgid "second argument of `%s' should be `char **'"
+#~ msgstr " `%s' `char **'"
+
+#~ msgid "third argument of `%s' should probably be `char **'"
+#~ msgstr " `%s' `char **'"
+
+#~ msgid "`%s' takes only zero or two arguments"
+#~ msgstr " `%s' "
+
+#~ msgid "`%s' is normally a non-static function"
+#~ msgstr " `%s' - "
+
+#~ msgid "parameter name omitted"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "parameter `%s' declared void"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "multiple parameters named `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "no return statement in function returning non-void"
+#~ msgstr "`return' , -"
+
+#, fuzzy
+#~ msgid "size of return value of `%s' is larger than %d bytes"
+#~ msgstr "%s: `%s' %d"
+
+#, fuzzy
+#~ msgid "unrecognized format specifier"
+#~ msgstr " : %s"
+
+#~ msgid "field width"
+#~ msgstr " "
+
+#~ msgid "precision"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "fill character"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "fill character in strfmon format"
+#~ msgstr " : "
+
+#, fuzzy
+#~ msgid "right precision"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing $ operand number in format"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "operand number out of range in format"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many arguments for format"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "format is a wide character string"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "null format string"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "repeated %s in format"
+#~ msgstr "repeated leap second moment"
+
+#, fuzzy
+#~ msgid "too few arguments for format"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "zero width in %s format"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "unknown conversion type character `%c' in format"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "%s does not support %s"
+#~ msgstr " fifo "
+
+#, fuzzy
+#~ msgid "different type"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "floating constant out of range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr ""
+#~ " bytes `%s' \n"
+#~ " `long'"
+
+#, fuzzy
+#~ msgid "ignoring invalid multibyte character"
+#~ msgstr " multibyte "
+
+#~ msgid "syntax error"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "syntax error: cannot back up"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "parser stack overflow"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "comma at end of enumerator list"
+#~ msgstr " "
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr " "
+
+#~ msgid "parse error"
+#~ msgstr " "
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s "
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s %s'%c'"
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s %s'\\x%x'"
+
+#, fuzzy
+#~ msgid "%s before string constant"
+#~ msgstr " "
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s "
+
+# src/request.c:37
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s \"%s\""
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s '%s'"
+
+#~ msgid "syntax error at '%s' token"
+#~ msgstr " '%s'"
+
+#, fuzzy
+#~ msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+#~ msgstr ": --pid=PID "
+
+#, fuzzy
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr ": --pid=PID "
+
+#, fuzzy
+#~ msgid "malformed '#pragma pack' - ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "malformed #pragma weak, ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "malformed #pragma redefine_extname, ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "junk at end of #pragma redefine_extname"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "malformed #pragma extern_prefix, ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "junk at end of #pragma extern_prefix"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "invalid use of void expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid use of flexible array member"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%s %s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "invalid use of incomplete typedef `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid type argument of `%s'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "called object is not a function"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many arguments to function"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments to function"
+#~ msgstr " "
+
+#~ msgid "division by zero"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unordered comparison on non-floating point argument"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "wrong type argument to abs"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid lvalue in unary `&'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s of read-only variable `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot take address of bit-field `%s'"
+#~ msgstr " fifo `%s'"
+
+#, fuzzy
+#~ msgid "invalid lvalue in assignment"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "assignment"
+#~ msgstr " "
+
+#~ msgid "%s makes pointer from integer without a cast"
+#~ msgstr "%s "
+
+#, fuzzy
+#~ msgid "incompatible type for argument %d of `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "incompatible types in %s"
+#~ msgstr " `%s'"
+
+#~ msgid "passing arg %d of `%s'"
+#~ msgstr " %d `%s'"
+
+#~ msgid "passing arg %d of pointer to function"
+#~ msgstr " %d "
+
+# src/request.c:263
+#, fuzzy
+#~ msgid "(near initialization for `%s')"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "initializer element is not constant"
+#~ msgstr " "
+
+# src/request.c:263
+#~ msgid "initialization"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "invalid initializer"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "extra brace group at end of initializer"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing initializer"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "asm template is not a string constant"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "modification by `asm'"
+#~ msgstr " "
+
+#~ msgid "`return' with no value, in function returning non-void"
+#~ msgstr "`return' , -"
+
+#~ msgid "return"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "can't inline call to `%s'"
+#~ msgstr " ioctl `%s'"
+
+#~ msgid "internal error"
+#~ msgstr " "
+
+#~ msgid "no arguments"
+#~ msgstr " "
+
+# src/getopt1.c:132
+# src/getopt1.c:132
+#~ msgid "fopen %s"
+#~ msgstr "fopen %s"
+
+#~ msgid "fclose %s"
+#~ msgstr "fclose %s"
+
+#, fuzzy
+#~ msgid "%s terminated with signal %d [%s]%s"
+#~ msgstr "%s: C %d\n"
+
+#, fuzzy
+#~ msgid "[cannot find %s]"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "cannot find `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "[Leaving %s]\n"
+#~ msgstr " %s\n"
+
+#, fuzzy
+#~ msgid "cannot find `nm'"
+#~ msgstr " `%s'"
+
+#~ msgid "pipe"
+#~ msgstr ""
+
+#~ msgid "fdopen"
+#~ msgstr "fdopen"
+
+#~ msgid "dup2 %d 1"
+#~ msgstr "dup2 %d 1"
+
+#~ msgid "close %d"
+#~ msgstr "close %d"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#~ msgid "fclose"
+#~ msgstr "fclose"
+
+#, fuzzy
+#~ msgid "unable to open file '%s'"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "unable to stat file '%s'"
+#~ msgstr " (stat()) `%s': %s"
+
+#, fuzzy
+#~ msgid "unable to mmap file '%s'"
+#~ msgstr " (mmap) %s.\n"
+
+#~ msgid "not found\n"
+#~ msgstr " \n"
+
+#, fuzzy
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr " : `%s'"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr " .\n"
+
+#, fuzzy
+#~ msgid "cannot find `ldd'"
+#~ msgstr " `%s'"
+
+#~ msgid "execv %s"
+#~ msgstr "execv %s"
+
+#, fuzzy
+#~ msgid "%s: not a COFF file"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "%s: cannot open as COFF file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "library lib%s not found"
+#~ msgstr " "
+
+# src/getopt1.c:132
+# src/getopt1.c:132
+#~ msgid "open %s"
+#~ msgstr "open %s"
+
+#, fuzzy
+#~ msgid "section pointer missing"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "no symbol table found"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no cmd_strings found"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid ""
+#~ "writing load commands.\n"
+#~ "\n"
+#~ msgstr " "
+
+#~ msgid "close %s"
+#~ msgstr "close %s"
+
+#, fuzzy
+#~ msgid "bad magic number"
+#~ msgstr " "
+
+#~ msgid "bad header version"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "old raw header file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unsupported version"
+#~ msgstr " "
+
+# src/request.c:37
+#~ msgid "fstat %s"
+#~ msgstr "fstat %s"
+
+#~ msgid "lseek %s 0"
+#~ msgstr "lseek %s 0"
+
+#~ msgid "read %s"
+#~ msgstr "read %s"
+
+#~ msgid "msync %s"
+#~ msgstr "msync %s"
+
+#~ msgid "munmap %s"
+#~ msgstr "munmap %s"
+
+#~ msgid "write %s"
+#~ msgstr "write %s"
+
+#, fuzzy
+#~ msgid "cannot convert to a pointer type"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "conversion to incomplete type"
+#~ msgstr " "
+
+#~ msgid "internal error: "
+#~ msgstr " : "
+
+#~ msgid "warning: "
+#~ msgstr ": "
+
+#, fuzzy
+#~ msgid "integer constant out of range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid character '\\%03o' in #if"
+#~ msgstr " `%c' `%s'"
+
+#, fuzzy
+#~ msgid "\"%s\" is not valid in #if expressions"
+#~ msgstr "%s: : %s"
+
+#, fuzzy
+#~ msgid "missing binary operator"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "missing binary operator before '%s'"
+#~ msgstr "%s: .\n"
+
+#, fuzzy
+#~ msgid "ignoring nonexistent directory \"%s\"\n"
+#~ msgstr " - `%s'\n"
+
+#, fuzzy
+#~ msgid "%s: Not a directory"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "ignoring duplicate directory \"%s\"\n"
+#~ msgstr " \"%s\""
+
+#, fuzzy
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr " \"%s\""
+
+#, fuzzy
+#~ msgid "End of search list.\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "I/O error on output"
+#~ msgstr " /"
+
+#, fuzzy
+#~ msgid "argument missing after %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "assertion missing after %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "file name missing after %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "number missing after %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "target missing after %s"
+#~ msgstr " %s\n"
+
+#, fuzzy
+#~ msgid "-I- specified twice"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr " "
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no newline at end of file"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "unknown string token %s\n"
+#~ msgstr " `s'"
+
+# src/main.c:663
+#, fuzzy
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr " `%s'"
+
+#~ msgid "invalid option %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "\"%s\" is not a valid option to the preprocessor"
+#~ msgstr "%s' ."
+
+#~ msgid "too many input files"
+#~ msgstr " "
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: : "
+
+#~ msgid "%s: warning: "
+#~ msgstr "%s: : "
+
+#~ msgid "((anonymous))"
+#~ msgstr "(())"
+
+# src/request.c:37
+#~ msgid "%s: %s: "
+#~ msgstr "%s: %s: "
+
+#~ msgid "sorry, not implemented: "
+#~ msgstr ", : "
+
+#~ msgid "%s "
+#~ msgstr "%s "
+
+#~ msgid " %s"
+#~ msgstr " %s"
+
+#~ msgid "In member function `%s':"
+#~ msgstr " `%s':"
+
+#~ msgid "In function `%s':"
+#~ msgstr " `%s':"
+
+#, fuzzy
+#~ msgid "compilation terminated.\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Internal compiler error in %s, at %s:%d"
+#~ msgstr " %s, %u"
+
+#~ msgid ":\n"
+#~ msgstr ":\n"
+
+#, fuzzy
+#~ msgid "DW_LOC_OP %s not implemented\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't get current directory"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "__builtin_eh_return not supported on this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "stack limits not supported on this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "could not split insn"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid `asm': "
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "unterminated assembly dialect alternative"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "operand number missing after %%-letter"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "operand number out of range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%-code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid expression as operand"
+#~ msgstr "%s: : %s"
+
+#~ msgid "control reaches end of non-void function"
+#~ msgstr " - "
+
+# src/shred.c:1134
+#, fuzzy
+#~ msgid "size of variable `%s' is too large"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "unused parameter `%s'"
+#~ msgstr " `%s'"
+
+# src/main.c:785
+#, fuzzy
+#~ msgid "ambiguous abbreviation %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "missing argument to `%s' option"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "extraneous argument to `%s' option"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid ""
+#~ "Setting spec %s to '%s'\n"
+#~ "\n"
+#~ msgstr " %s %s %s"
+
+#, fuzzy
+#~ msgid "rename spec %s to %s\n"
+#~ msgstr " %s %s %s"
+
+#, fuzzy
+#~ msgid "specs unknown %% command after %ld characters"
+#~ msgstr " "
+
+#~ msgid "-pipe not supported"
+#~ msgstr " -pipe "
+
+#~ msgid ""
+#~ "\n"
+#~ "Go ahead? (y or n) "
+#~ msgstr ""
+#~ "\n"
+#~ " ; (y n) "
+
+#~ msgid "# %s %.2f %.2f\n"
+#~ msgstr "# %s %.2f %.2f\n"
+
+#~ msgid "Usage: %s [options] file...\n"
+#~ msgstr ": %s [] ...\n"
+
+#~ msgid "Options:\n"
+#~ msgstr ":\n"
+
+#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+#~ msgstr " -pass-exit-codes \n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help \n"
+
+#~ msgid " --target-help Display target specific command line options\n"
+#~ msgstr " --target-help \n"
+
+#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+#~ msgstr " ( '-v --help' )\n"
+
+#~ msgid " -dumpspecs Display all of the built in spec strings\n"
+#~ msgstr " -dumpspecs \n"
+
+#~ msgid " -dumpversion Display the version of the compiler\n"
+#~ msgstr " -dumpversion \n"
+
+#~ msgid " -dumpmachine Display the compiler's target processor\n"
+#~ msgstr " -dumpmachine \n"
+
+#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+#~ msgstr " -print-search-dirs \n"
+
+#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+#~ msgstr " -print-libgcc-file-name \n"
+
+#~ msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+#~ msgstr " -print-file-name=<> <>\n"
+
+#~ msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+#~ msgstr " -print-prog-name=<> <>\n"
+
+#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+#~ msgstr " -print-multi-directory libgcc\n"
+
+#~ msgid ""
+#~ " -print-multi-lib Display the mapping between command line options and\n"
+#~ " multiple library search directories\n"
+#~ msgstr ""
+#~ " -print-multi-lib \n"
+#~ " \n"
+#~ " \n"
+
+#~ msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+#~ msgstr " -Wa,<> <> \n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<> <> -\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<> <> \n"
+
+#~ msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+#~ msgstr " -Xlinker <> <> \n"
+
+#~ msgid " -save-temps Do not delete intermediate files\n"
+#~ msgstr " -save-temps \n"
+
+#~ msgid " -pipe Use pipes rather than intermediate files\n"
+#~ msgstr " -pipe \n"
+
+#~ msgid " -time Time the execution of each subprocess\n"
+#~ msgstr " -time \n"
+
+#~ msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+#~ msgstr " -specs=<> <> \n"
+
+#~ msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+#~ msgstr ""
+#~ " -std=<> <>\n"
+#~ "\n"
+
+#~ msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+#~ msgstr " -B <> <> \n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr " -b <> gcc <>, \n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <> <> gcc, \n"
+
+#~ msgid " -v Display the programs invoked by the compiler\n"
+#~ msgstr " -v \n"
+
+#~ msgid " -E Preprocess only; do not compile, assemble or link\n"
+#~ msgstr " -E , \n"
+
+#~ msgid " -S Compile only; do not assemble or link\n"
+#~ msgstr " -S \n"
+
+#~ msgid " -c Compile and assemble, but do not link\n"
+#~ msgstr " -c , \n"
+
+#~ msgid " -o <file> Place the output into <file>\n"
+#~ msgstr " -o <> <>\n"
+
+#~ msgid ""
+#~ " -x <language> Specify the language of the following input files\n"
+#~ " Permissable languages include: c c++ assembler none\n"
+#~ " 'none' means revert to the default behavior of\n"
+#~ " guessing the language based on the file's extension\n"
+#~ msgstr ""
+#~ " -x <> \n"
+#~ " : c c++ assembler none\n"
+#~ " 'none' \n"
+#~ " \n"
+#~ " \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+#~ " passed on to the various sub-processes invoked by %s. In order to pass\n"
+#~ " other options on to these processes the -W<letter> options must be used.\n"
+#~ msgstr ""
+#~ "\n"
+#~ " -g, -f, -m, -O, -W --param \n"
+#~ " %s. \n"
+#~ " , \n"
+#~ " -W<>.\n"
+
+#~ msgid "%s (GCC) %s\n"
+#~ msgstr "%s (GCC) %s\n"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr " (C) 2002 Free Software Foundation, Inc.\n"
+
+# src/main.c:850
+#, fuzzy
+#~ msgid ""
+#~ "This is free software; see the source for copying conditions. There is NO\n"
+#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ " \n"
+#~ ". \n"
+#~ " .\n"
+
+#, fuzzy
+#~ msgid "argument to `-Xlinker' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-l' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-specs' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-specs=' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-b' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-B' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-V' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid version number format"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-x' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `-%s' is missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr " (port)"
+
+#, fuzzy
+#~ msgid "spec failure: unrecognized spec option '%c'"
+#~ msgstr "%s: `-%c'\n"
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr " `-%s'"
+
+#~ msgid "install: %s%s\n"
+#~ msgstr ": %s%s\n"
+
+#~ msgid "programs: %s\n"
+#~ msgstr ": %s\n"
+
+#~ msgid "libraries: %s\n"
+#~ msgstr ": %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ msgstr ""
+#~ "\n"
+#~ " . :\n"
+
+#~ msgid "Configured with: %s\n"
+#~ msgstr " : %s\n"
+
+#~ msgid "Thread model: %s\n"
+#~ msgstr " : %s\n"
+
+#~ msgid "gcc version %s\n"
+#~ msgstr " gcc %s\n"
+
+#~ msgid "gcc driver version %s executing gcc version %s\n"
+#~ msgstr " gcc %s gcc %s\n"
+
+#~ msgid "no input files"
+#~ msgstr " "
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s "
+
+#~ msgid "internal gcc abort"
+#~ msgstr " gcc"
+
+# src/main.c:178
+#, fuzzy
+#~ msgid "Internal gcov abort.\n"
+#~ msgstr " (recoding)"
+
+#~ msgid ""
+#~ "Usage: gcov [OPTION]... SOURCEFILE\n"
+#~ "\n"
+#~ msgstr ""
+#~ ": gcov []... [ź]\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Print code coverage information.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "E .\n"
+#~ "\n"
+
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " -h, --help , \n"
+
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -v, --version , \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ "%s.\n"
+#~ msgstr ""
+#~ "\n"
+#~ " , :\n"
+#~ "%s.\n"
+
+#~ msgid "gcov (GCC) %s\n"
+#~ msgstr "gcov (GCC) %s\n"
+
+#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+#~ msgstr " (C) 2001 Free Software Foundation, Inc.\n"
+
+#, fuzzy
+#~ msgid "Could not open basic block file %s.\n"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "Could not open program flow graph file %s.\n"
+#~ msgstr " \"%s\""
+
+#, fuzzy
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "No branches in function %s\n"
+#~ msgstr " `%s'.\n"
+
+#, fuzzy
+#~ msgid "No calls in function %s\n"
+#~ msgstr " URL %s.\n"
+
+#, fuzzy
+#~ msgid "didn't use all bb entries of graph, function %s\n"
+#~ msgstr " %s\n"
+
+#, fuzzy
+#~ msgid "No branches in file %s\n"
+#~ msgstr ""
+#~ " `%s'.\n"
+#~ "\n"
+
+#, fuzzy
+#~ msgid "No calls in file %s\n"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "Could not open source file %s.\n"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "Could not open output file %s.\n"
+#~ msgstr " `%s'"
+
+#~ msgid "Creating %s.\n"
+#~ msgstr " %s.\n"
+
+#, fuzzy
+#~ msgid "can't open %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "function cannot be inline"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid parameter `%s'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "%s: internal abort\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s: error writing file `%s': %s\n"
+#~ msgstr "%s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+#~ msgstr "%s: %s [ -v ] [ -c ] ...\n"
+
+#, fuzzy
+#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#~ msgstr "%s: %s [ -v ] [ -c ] ...\n"
+
+#, fuzzy
+#~ msgid "%s: warning: no read access for file `%s'\n"
+#~ msgstr "%s: : uname : %s\n"
+
+#, fuzzy
+#~ msgid "%s: warning: no write access for file `%s'\n"
+#~ msgstr "%s: : uname : %s\n"
+
+#, fuzzy
+#~ msgid "%s: invalid file name: %s\n"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "%s: %s: can't get status: %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: %s\n"
+
+# src/request.c:37
+#, fuzzy
+#~ msgid "%s: wait: %s\n"
+#~ msgstr "%s %s"
+
+#, fuzzy
+#~ msgid "%s: subprocess got fatal signal %d\n"
+#~ msgstr "%s: C %d\n"
+
+#, fuzzy
+#~ msgid "%s: %s exited with status %d\n"
+#~ msgstr "%s: C %d\n"
+
+#, fuzzy
+#~ msgid "%s: warning: missing SYSCALLS file `%s'\n"
+#~ msgstr "%s: : uname : %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't read aux info file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't get status of aux info file `%s': %s\n"
+#~ msgstr " (stat()) `%s': %s"
+
+#, fuzzy
+#~ msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#~ msgstr " `%s' `%s'"
+
+# src/shred.c:1103
+#, fuzzy
+#~ msgid "%s: error reading aux info file `%s': %s\n"
+#~ msgstr "%s: %s"
+
+#, fuzzy
+#~ msgid "%s: error closing aux info file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't delete aux info file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+#~ msgstr "%s: : uname : %s\n"
+
+#, fuzzy
+#~ msgid "%s: %d: warning: no extern definition for `%s'\n"
+#~ msgstr "%s: : "
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ": `%s'"
+
+#, fuzzy
+#~ msgid "%s: `%s' not converted\n"
+#~ msgstr "%s: `%s': "
+
+#, fuzzy
+#~ msgid "%s: would convert file `%s'\n"
+#~ msgstr "%s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: converting file `%s'\n"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "%s: can't get status for file `%s': %s\n"
+#~ msgstr " (stat()) `%s': %s"
+
+#, fuzzy
+#~ msgid "%s: can't open file `%s' for reading: %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr "%s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't create/open clean file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't link file `%s' to `%s': %s\n"
+#~ msgstr "%s: %s %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: can't create/open output file `%s': %s\n"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "%s: can't change mode of file `%s': %s\n"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "%s: cannot get working directory: %s\n"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "conversion from NaN to int"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "floating point overflow"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "%s: overflow range error"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "unknown register name: %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "unable to generate reloads for:"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "this is the insn:"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "could not find a spill register"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unrecognizable insn:"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid punctuation `%c' in constraint"
+#~ msgstr " `%s' [c*n]"
+
+#, fuzzy
+#~ msgid "unknown register name `%s' in `asm'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "too many alternatives in `asm'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "undefined named operand '%s'"
+#~ msgstr " %s"
+
+#~ msgid "unused variable `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "size of `%s' is larger than %d bytes"
+#~ msgstr "%s: `%s' %d"
+
+#~ msgid " TOTAL :"
+#~ msgstr " :"
+
+#, fuzzy
+#~ msgid "collect: reading %s\n"
+#~ msgstr " %s"
+
+#~ msgid "ld returned %d exit status"
+#~ msgstr " ld %d"
+
+#, fuzzy
+#~ msgid "Floating-point operations can trap"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not suppress warnings from system headers"
+#~ msgstr " "
+
+#~ msgid "invalid option `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "internal error: %s"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid ""
+#~ "\n"
+#~ "Target specific options:\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unrecognized gcc debugging option: %c"
+#~ msgstr " `-%c'"
+
+# src/request.c:806 src/request.c:912
+#, fuzzy
+#~ msgid "unrecognized register name `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "unrecognized option `%s'"
+#~ msgstr " `-%c'"
+
+#, fuzzy
+#~ msgid "`%s': unknown or unsupported -g option"
+#~ msgstr "%s: / .\n"
+
+#, fuzzy
+#~ msgid "-param option missing argument"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid --param option: %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid parameter value `%s'"
+#~ msgstr " `%s'"
+
+# src/getopt1.c:132
+# src/getopt1.c:132
+#, fuzzy
+#~ msgid "options passed: "
+#~ msgstr " %s"
+
+# src/getopt1.c:155
+# src/getopt1.c:155
+#, fuzzy
+#~ msgid "options enabled: "
+#~ msgstr " \n"
+
+#, fuzzy
+#~ msgid "can't open %s for writing"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "ignoring command line option '%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-f%sleading-underscore not supported on this target machine"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr " --no-dereference (-h) "
+
+#, fuzzy
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr " --no-dereference (-h) "
+
+#, fuzzy
+#~ msgid "-fprefetch-loop-arrays is not supported with -Os"
+#~ msgstr " --no-dereference (-h) "
+
+#, fuzzy
+#~ msgid "error writing to %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "error closing %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "invalid character constant in #if"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid token in expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "hex character constant does not fit in a byte"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Junk after end of expression."
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr " --string --check "
+
+#, fuzzy
+#~ msgid "-pedantic and -traditional are mutually exclusive"
+#~ msgstr "\" %s\" -l "
+
+#, fuzzy
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr " --string --check "
+
+#, fuzzy
+#~ msgid "unterminated #%s conditional"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "not in any file?!"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid macro name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid macro name `%s'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid format #line command"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "undefining `defined'"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "undefining `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "#warning%.*s"
+#~ msgstr ": "
+
+#, fuzzy
+#~ msgid "unterminated string or character constant"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "no args to macro `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "could not open dump file `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "ignoring unknown option `%.*s' in `-f%s'"
+#~ msgstr " : %s %s %s"
+
+#, fuzzy
+#~ msgid "invalid initializer for bit string"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "register name not specified for `%s'"
+#~ msgstr " -"
+
+#, fuzzy
+#~ msgid "invalid register name for `%s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "unknown set constructor type"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "invalid initial value for member `%s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "weak declaration of `%s' after first use results in unspecified behavior"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "weak declaration of `%s' not supported"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many #pragma options align=reset"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "malformed '#pragma options', ignoring"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%Q value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%C value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%N value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%M value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%m value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%L value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%O value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%P value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%V value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-f%s ignored for Unicos/Mk (not supported)"
+#~ msgstr " fifo "
+
+#, fuzzy
+#~ msgid "-mieee not supported on Unicos/Mk"
+#~ msgstr " servname ai_socktype"
+
+#, fuzzy
+#~ msgid "trap mode not supported on Unicos/Mk"
+#~ msgstr " servname ai_socktype"
+
+#, fuzzy
+#~ msgid "rounding mode not supported for VAX floats"
+#~ msgstr " servname ai_socktype"
+
+#, fuzzy
+#~ msgid "trap mode not supported for VAX floats"
+#~ msgstr " servname ai_socktype"
+
+#, fuzzy
+#~ msgid "invalid %%H value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%J value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%r value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%R value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%h value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%U value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%s value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%E value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%xn code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument of `%s' attribute is not a string constant"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "invalid operand to %%R code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%H/%%L code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%U code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%V code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand output code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid floating point emulation option: -mfpe-%s"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "Don't do symbol renaming"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "MCU `%s' not supported"
+#~ msgstr " fifo "
+
+#, fuzzy
+#~ msgid "invalid insn:"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "incorrect insn:"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unknown move insn:"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "Specify the MCU name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "trampolines not supported"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "malformed '#pragma %s' - ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "mode not QImode"
+#~ msgstr "_: \n"
+
+#, fuzzy
+#~ msgid "invalid indirect memory address"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not allocate BK register"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Enable parallel instructions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Disable parallel instructions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid operand for 'b' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'v' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'P' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'p' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'z' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'H' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "bad register"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid operand for 'e' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'm' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'A' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'D' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand for 'T' modifier"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand modifier letter"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "internal error: bad register: %d"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "unexpected operand"
+#~ msgstr " %s"
+
+# src/request.c:806 src/request.c:912
+#, fuzzy
+#~ msgid "unrecognized address"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "unrecognized supposed constant"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "unknown CRIS cpu version specification in -mtune= : %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-fPIC and -fpic are not supported in this configuration"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unexpected address expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Debug argument support in compiler"
+#~ msgstr "%s: .\n"
+
+#, fuzzy
+#~ msgid "Debug stack support in compiler"
+#~ msgstr "%s: .\n"
+
+#, fuzzy
+#~ msgid "invalid addressing mode"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "bad register extension code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid offset in ybase addressing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid register in ybase addressing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid mode for gen_tst_reg"
+#~ msgstr " dlopen()"
+
+#, fuzzy
+#~ msgid "Generate code for near calls"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Generate code for near jumps"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "profiling not implemented yet"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "trampolines not yet implemented"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "fr30_print_operand: invalid operand to %%A code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "fr30_print_operand: invalid %%x code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Use registers for argument passing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "malformed #pragma map, ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Generate char instructions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "code model `large' not supported yet"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%i-bit mode not compiled in"
+#~ msgstr "%s: .\n"
+
+#, fuzzy
+#~ msgid "argument to `%s' attribute larger than %d"
+#~ msgstr "%s: `%s' %d"
+
+#, fuzzy
+#~ msgid "invalid UNSPEC as operand"
+#~ msgstr " UTC"
+
+#, fuzzy
+#~ msgid "invalid operand code `%c'"
+#~ msgstr " `%s'"
+
+# src/grep.c:1133
+#, fuzzy
+#~ msgid "unknown insn mode"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "selector must be an immediate"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "mask must be an immediate"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "Retain legend information"
+#~ msgstr " "
+
+# lib/argmatch.c:188
+#, fuzzy
+#~ msgid "argument is a structure"
+#~ msgstr " :"
+
+#, fuzzy
+#~ msgid "Alternate calling convention"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Use mcount for profiling"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "malformed #pragma align - ignored"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "stack limit expression is not supported"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not use complex addressing modes"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid argument of `%s' attribute"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "invalid operand to %%s code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%p code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%T/%%B code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid operand to %%N code"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "bad address"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "lo_sum not of register"
+#~ msgstr "RPC: "
+
+#, fuzzy
+#~ msgid "invalid operand in the instruction"
+#~ msgstr " `%s' [c*n]"
+
+#, fuzzy
+#~ msgid "invalid register in the instruction"
+#~ msgstr " `%c' `%s'"
+
+#, fuzzy
+#~ msgid "invalid rotate insn"
+#~ msgstr " `%s'."
+
+#, fuzzy
+#~ msgid "cannot do z-register replacement"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not use direct addressing mode for soft registers"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Specify the register allocation order"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Use unaligned memory references"
+#~ msgstr " -"
+
+#, fuzzy
+#~ msgid "invalid %%x/X value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%q value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%o value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%p value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%s/S value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%P operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%B value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%D value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid option `-mshort-data-%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid option `-mstack-increment=%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "Emit call graph information"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-mips%d not supported"
+#~ msgstr " ai_family "
+
+#, fuzzy
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr " ai_socktype "
+
+#, fuzzy
+#~ msgid "invalid option `entry%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "can't rewind temp file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't write to output file"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "can't read from temp file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't close temp file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can not handle inconsistent calls to `%s'"
+#~ msgstr " ioctl `%s'"
+
+#, fuzzy
+#~ msgid "Use symbolic register names"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-f%s not supported: ignored"
+#~ msgstr " fifo "
+
+#, fuzzy
+#~ msgid "stack frame not a multiple of 8 bytes: %d"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not use addresses that allocate global registers"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Do not use register sb"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Use bit-field instructions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-g option disabled"
+#~ msgstr " NIS+ "
+
+#, fuzzy
+#~ msgid "Return floating point results in ac0"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Target does not have split I&D"
+#~ msgstr "-nt -l\n"
+
+#, fuzzy
+#~ msgid "invalid %%S value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%b value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%z value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%Z value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%k value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%j value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-mmultiple is not supported on little endian systems"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-mstring is not supported on little endian systems"
+#~ msgstr ": --pid=PID "
+
+#, fuzzy
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unknown ABI specified: '%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "argument 3 of `%s' must be a 2-bit literal"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "invalid %%f value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%F value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%G value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%j code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%J code"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%K value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%T value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%u value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%v value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "Use AltiVec instructions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no description yet"
+#~ msgstr "( )"
+
+#, fuzzy
+#~ msgid "Use alternate register names"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "bad value for -mcall-%s"
+#~ msgstr " ai_flags"
+
+#, fuzzy
+#~ msgid "bad value for -msdata=%s"
+#~ msgstr " ai_flags"
+
+#, fuzzy
+#~ msgid "-mcall-aixdesc must be big endian"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Cannot decompose address."
+#~ msgstr " "
+
+#~ msgid "64 bit mode"
+#~ msgstr " 64 bit"
+
+#~ msgid "31 bit mode"
+#~ msgstr " 31 bit"
+
+#, fuzzy
+#~ msgid "mvcle use"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "__builtin_saveregs not supported by this subtarget"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%s' attribute argument not a string constant"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Profiling is not supported on this target."
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s is not supported by this configuration"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-mcmodel= is not supported on 32 bit systems"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%Y operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%A operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%B operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%c operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%C operand"
+#~ msgstr " UTC"
+
+#, fuzzy
+#~ msgid "invalid %%d operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%D operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %%f operand"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Utilize Visual Instruction Set"
+#~ msgstr " "
+
+#~ msgid "Use 32-bit ABI"
+#~ msgstr " ABI 32-bit"
+
+#~ msgid "Use 64-bit ABI"
+#~ msgstr " ABI 64-bit"
+
+# src/request.c:806 src/request.c:912
+#, fuzzy
+#~ msgid "unrecognized section name \"%s\""
+#~ msgstr " `%s'"
+
+# src/dfa.c:569 src/dfa.c:583 src/dfa.c:587
+# src/dfa.c:577 src/dfa.c:591 src/dfa.c:595
+#, fuzzy
+#~ msgid "malformed #pragma ghs section"
+#~ msgstr " "
+
+# src/shred.c:1134
+#, fuzzy
+#~ msgid "%s=%s is too large"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "output_move_single:"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "bad test"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid mask"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid address"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no register in address"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "address offset not a constant"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid "Use the Xtensa boolean register option"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "conversion from `%T' to `%T' is ambiguous"
+#~ msgstr " `%s' `%s' "
+
+# src/getopt.c:813
+# src/getopt.c:813
+#, fuzzy
+#~ msgid "call of `(%T) (%A)' is ambiguous"
+#~ msgstr "%s: `-W %s' \n"
+
+#, fuzzy
+#~ msgid "`%+#D' is inaccessible"
+#~ msgstr " `%s' -"
+
+#, fuzzy
+#~ msgid "invalid conversion from `%T' to `%T'"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid " initializing argument %P of `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid " in call to `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid " for conversion from `%T' to `%T'"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "duplicate enum value `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate nested type `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate member `%D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%D' invalid in `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%D' invalid in `%#T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "redefinition of `%#T'"
+#~ msgstr " `UNDEFINED'"
+
+#, fuzzy
+#~ msgid "previous definition of `%#T'"
+#~ msgstr " `UNDEFINED'"
+
+#~ msgid " by `%D'"
+#~ msgstr " `%D'"
+
+#, fuzzy
+#~ msgid "negative width in bit-field `%D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "field `%#D' with same name as class"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "not enough type information"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "declaration of `%#D'"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "converting from `%T' to `%T'"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "cannot convert `%E' from type `%T' to type `%T'"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "conversion from `%T' to `%T' discards qualifiers"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "cannot convert type `%T' to type `%T'"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "conversion from `%#T' to `%#T'"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "conversion from `%T' to non-scalar type `%T' requested"
+#~ msgstr " `%s' `%s' "
+
+#, fuzzy
+#~ msgid "`%#D' previously declared here"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "after previous specification in `%#D'"
+#~ msgstr "%s: `%s'.\n"
+
+#, fuzzy
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%#D' hides constructor for `%#T'"
+#~ msgstr " `%s' `%s'"
+
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr " `%#D'"
+
+#, fuzzy
+#~ msgid "duplicate label `%D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid use of `%D'"
+#~ msgstr " `%s'."
+
+#, fuzzy
+#~ msgid "`%D::%D' is not a template"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%#D' is not a static member of `%#T'"
+#~ msgstr " `%s' `%s'"
+
+# src/request.c:263
+#, fuzzy
+#~ msgid "duplicate initialization of %D"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot initialize `%T' from `%T'"
+#~ msgstr " `.' `..'"
+
+#, fuzzy
+#~ msgid "array size missing in `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "uninitialized const `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid catch parameter"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "creating %s"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "invalid declarator"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%D' as declarator"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`bool' is now a keyword"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "multiple declarations `%T' and `%T'"
+#~ msgstr " `s'"
+
+#, fuzzy
+#~ msgid "can't initialize friend function `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "friend declaration not in class definition"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot declare %s to references"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "invalid type: `void &'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot declare member `%T::%s' within `%T'"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "template parameters cannot be friends"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid use of `::'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid string constant `%E'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate base type `%T' invalid"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "multiple definition of `%#T'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "-f%s is no longer supported"
+#~ msgstr " fifo "
+
+#, fuzzy
+#~ msgid "prototype for `%#D' does not match any in class `%T'"
+#~ msgstr " `%s' `%s'"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#, fuzzy
+#~ msgid "local class `%#T' shall not have static data member `%#D'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "use of old-style cast"
+#~ msgstr " "
+
+# src/getopt.c:628
+# src/getopt.c:628
+#, fuzzy
+#~ msgid "use of `%D' is ambiguous"
+#~ msgstr "%s: `%s' \n"
+
+#, fuzzy
+#~ msgid "`%D' is not a function,"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "unknown namespace `%D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%T' is not a namespace"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%D' is not a namespace"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%D' not declared"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%T' does not have a class or union named `%D'"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%T' is not a class or union type"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%s' not supported by %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "%s: In instantiation of `%s':\n"
+#~ msgstr "%s: `%s'.\n"
+
+#, fuzzy
+#~ msgid "`%#T' is not a template"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "`%T' is already a friend of `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "argument to `%s' missing\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "base class `%T' already initialized"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "type `%D' is not a direct base of `%T'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "`%T' is not an aggregate type"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "invalid use of non-static field `%D'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "invalid use of member `%D'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "`%D' is not a member of type `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "illegal pointer to bit-field `%D'"
+#~ msgstr " :`%s'\n"
+
+#, fuzzy
+#~ msgid "invalid type `void' for new"
+#~ msgstr " dlopen()"
+
+#, fuzzy
+#~ msgid "type name expected before `*'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "type name expected before `&'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%D' not defined"
+#~ msgstr ""
+
+#, fuzzy
+#~ msgid "name lookup of `%s' changed"
+#~ msgstr " %s %s\n"
+
+#, fuzzy
+#~ msgid "`%s' tag used in naming `%#T'"
+#~ msgstr " `%s'"
+
+# src/grep.c:785 src/grep.c:792
+# src/grep.c:1060 src/grep.c:1067 src/grep.c:1076
+#, fuzzy
+#~ msgid "invalid default template argument"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%T' is not a valid expression"
+#~ msgstr "%s' ."
+
+# src/dfa.c:962
+# src/dfa.c:970
+#, fuzzy
+#~ msgid "sigof type specifier"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%T' is not a class or namespace"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "no type `%D' in `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid " from definition of `%#D'"
+#~ msgstr " `UNDEFINED'"
+
+#~ msgid " `%D'"
+#~ msgstr " `%D'"
+
+#, fuzzy
+#~ msgid "no default argument for `%D'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "template class without a name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "template definition of non-template `%#D'"
+#~ msgstr " locale `%s'"
+
+#~ msgid " but %d required"
+#~ msgstr " %d "
+
+#, fuzzy
+#~ msgid "`%T' is not a template type"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "template parameter `%#D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%E' is not a valid template argument"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid " expected a type, got `%E'"
+#~ msgstr "%s: `%c'"
+
+#, fuzzy
+#~ msgid " expected a type, got `%T'"
+#~ msgstr "%s: `%c'"
+
+#, fuzzy
+#~ msgid "wrong number of template arguments (%d, should be %d)"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "template argument %d is invalid"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%T' is not a template"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "invalid parameter type `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "creating pointer to member reference type `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "creating array of `%T'"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "incomplete type unification"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no matching template for `%D' found"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "duplicate explicit instantiation of `%#D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate explicit instantiation of `%#T'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%#T' is not a valid type for a template constant parameter"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid "can't create repository information file `%s'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "cannot use typeid with -fno-rtti"
+#~ msgstr " -a -n"
+
+#, fuzzy
+#~ msgid "`%T' is an inaccessible base of `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "`%T' is an ambiguous base of `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "invalid covariant return type for `%#D'"
+#~ msgstr " `%c' `%s'"
+
+#, fuzzy
+#~ msgid " overriding `%#D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid " overriding `%#F'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%#D' cannot be declared"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "`%E' is not of type `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "invalid definition of qualified type `%T'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "parse error in method specification"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid type `%T' for default argument to `%T'"
+#~ msgstr " `%s'"
+
+#~ msgid "%s before `%s'"
+#~ msgstr "%s `%s'"
+
+#~ msgid "%s before `%c'"
+#~ msgstr "%s `%c'"
+
+#~ msgid "%s before `\\%o'"
+#~ msgstr "%s `\\%o'"
+
+#, fuzzy
+#~ msgid "%s before `%s' token"
+#~ msgstr "%s ( `%s')"
+
+#, fuzzy
+#~ msgid "`%V' qualifiers cannot be applied to `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "`%s' attribute is not supported on this platform"
+#~ msgstr ": --pid=PID "
+
+#, fuzzy
+#~ msgid "invalid use of non-lvalue array"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "type `%T' has no destructor"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "`%T' is not a pointer-to-object type"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "invalid type argument"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many arguments to %s `%+#D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments to %s `%+#D'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "division by zero in `%E %% 0'"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "division by zero in `%E %% 0.'"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "invalid use of `--' on bool variable `%D'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "cannot create pointer to reference member `%D'"
+#~ msgstr " `stat' locale `%s'"
+
+#, fuzzy
+#~ msgid "invalid static_cast from type `%T' to type `%T'"
+#~ msgstr " `%c' `%s'"
+
+#, fuzzy
+#~ msgid "invalid const_cast from type `%T' to type `%T'"
+#~ msgstr " `%c' `%s'"
+
+#, fuzzy
+#~ msgid "invalid cast to function type `%T'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot convert `%T' to `%T' in %s"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "in passing argument %P of `%+D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "returning reference to temporary"
+#~ msgstr "xdr_reference: \n"
+
+#, fuzzy
+#~ msgid "cannot declare variable `%D' to be of type `%T'"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "cannot declare parameter `%D' to be of type `%T'"
+#~ msgstr " %s `%s' `%s'"
+
+#, fuzzy
+#~ msgid "cannot declare field `%D' to be of type `%T'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "invalid return type for function `%#D'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot allocate an object of type `%T'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "declaration of `%#T'"
+#~ msgstr " `%s'\n"
+
+#, fuzzy
+#~ msgid "invalid use of `%T'"
+#~ msgstr " `%s'."
+
+#, fuzzy
+#~ msgid "Emit cross referencing information"
+#~ msgstr " "
+
+#~ msgid "note:"
+#~ msgstr ":"
+
+#, fuzzy
+#~ msgid "warning:"
+#~ msgstr ": "
+
+#~ msgid "fatal:"
+#~ msgstr ":"
+
+#~ msgid "(continued):"
+#~ msgstr "():"
+
+#~ msgid "[REPORT BUG!!] %"
+#~ msgstr "[ָ ֶ!!] %"
+
+#~ msgid "[REPORT BUG!!]"
+#~ msgstr "[ָ !!]"
+
+#, fuzzy
+#~ msgid "In statement function"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument to `%s' missing"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no input files; unwilling to write output files"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "Implicit declaration of `%A' at %0"
+#~ msgstr " `%s'"
+
+# src/main.c:663
+#, fuzzy
+#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+#~ msgstr " `%s'"
+
+# src/main.c:663
+#, fuzzy
+#~ msgid "Unknown escape sequence `\\%A' at %0"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "Unterminated escape sequence `\\' at %0"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "Hex escape at %0 out of range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Escape sequence at %0 out of range for character"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "hex escape out of range"
+#~ msgstr " "
+
+# src/main.c:663
+#, fuzzy
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr " `%s'"
+
+# src/main.c:663
+#, fuzzy
+#~ msgid "unknown escape sequence `\\%c'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "ignoring pragma: %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid #ident"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "undefined or invalid # directive"
+#~ msgstr "%%%c: ."
+
+#, fuzzy
+#~ msgid "invalid #line"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid #-line"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Null character at %0 -- line ignored"
+#~ msgstr " : "
+
+#, fuzzy
+#~ msgid "Set the maximum line length"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Missing first operand for binary operator at %0"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid token at %0 in expression or subexpression at %1"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Character constant at %0 has no closing apostrophe at %1"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Integer at %0 too large"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Unrecognized FORMAT specifier at %0"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "Zero-size specification invalid at %0"
+#~ msgstr "%s: `%s'.\n"
+
+#, fuzzy
+#~ msgid "Unable to open INCLUDE file `%A' at %0"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "Truncating characters on right side of character constant at %0"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "Typeless constant at %0 too large"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Array `%A' at %0 is too large to handle"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "Internal compiler error -- cannot perform operation"
+#~ msgstr " %s, %u"
+
+# src/grep.c:1133
+#, fuzzy
+#~ msgid "In unknown kind"
+#~ msgstr " "
+
+#~ msgid "In function"
+#~ msgstr " "
+
+#~ msgid "In subroutine"
+#~ msgstr " "
+
+#~ msgid "In program"
+#~ msgstr " "
+
+#~ msgid "In block-data unit"
+#~ msgstr " -"
+
+#~ msgid "In common block"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "internal error - too many interface type"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "field `%s' not found"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "ret instruction not implemented"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't expand %s"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "invalid PC in line number table"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "bad string constant"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't reopen %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "can't close %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot find file for class %s"
+#~ msgstr " C: %s \n"
+
+#, fuzzy
+#~ msgid "not a valid Java .class file"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "error while parsing constant pool"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "error while parsing fields"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "error while parsing methods"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "error while parsing final attributes"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "missing Code attribute"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "no input file specified"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "can't close input file %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "field initializer type mismatch"
+#~ msgstr " /"
+
+#, fuzzy
+#~ msgid "can't create directory %s"
+#~ msgstr "%s: %s: %s\n"
+
+#, fuzzy
+#~ msgid "can't create %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "can't open output file `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "file not found `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%s' is not a valid class name"
+#~ msgstr "%s' ."
+
+#, fuzzy
+#~ msgid "--resource requires -o"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot specify both -C and -o"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot create temporary file"
+#~ msgstr ": "
+
+#, fuzzy
+#~ msgid "cannot specify `main' class when not linking"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "can't mangle %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "internal error - invalid Utf8 name"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "Missing name"
+#~ msgstr " "
+
+#~ msgid "';' expected"
+#~ msgstr " ';'"
+
+#~ msgid "'*' expected"
+#~ msgstr " '*'"
+
+#, fuzzy
+#~ msgid "Missing class name"
+#~ msgstr " "
+
+#~ msgid "'{' expected"
+#~ msgstr " '{'"
+
+#, fuzzy
+#~ msgid "Missing interface name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Missing term"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid declaration"
+#~ msgstr " "
+
+#~ msgid "']' expected"
+#~ msgstr " ']'"
+
+# src/dfa.c:652 src/dfa.c:655 src/dfa.c:682 src/dfa.c:686 src/dfa.c:687
+# src/dfa.c:690 src/dfa.c:703 src/dfa.c:704
+# src/dfa.c:660 src/dfa.c:663 src/dfa.c:690 src/dfa.c:694 src/dfa.c:695
+# src/dfa.c:698 src/dfa.c:711 src/dfa.c:712
+#, fuzzy
+#~ msgid "Unbalanced ']'"
+#~ msgstr " ["
+
+#, fuzzy
+#~ msgid "Identifier expected"
+#~ msgstr " "
+
+#~ msgid "')' expected"
+#~ msgstr " '('"
+
+#, fuzzy
+#~ msgid "Missing formal parameter term"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Missing identifier"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid interface type"
+#~ msgstr " (verifier) "
+
+#~ msgid "':' expected"
+#~ msgstr " ':'"
+
+#, fuzzy
+#~ msgid "Invalid expression statement"
+#~ msgstr " "
+
+#~ msgid "'(' expected"
+#~ msgstr " '('"
+
+#, fuzzy
+#~ msgid "Missing term or ')'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "Missing or invalid constant expression"
+#~ msgstr "%s: : %s"
+
+#, fuzzy
+#~ msgid "Invalid control expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid update expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid init statement"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "'class' expected"
+#~ msgstr " ')'\n"
+
+#, fuzzy
+#~ msgid "')' or term expected"
+#~ msgstr " ')'\n"
+
+#~ msgid "'[' expected"
+#~ msgstr " '['"
+
+#, fuzzy
+#~ msgid "Field expected"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "']' expected, invalid type expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid type expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Invalid reference type"
+#~ msgstr " -"
+
+#~ msgid ""
+#~ "%s.\n"
+#~ "%s"
+#~ msgstr ""
+#~ "%s.\n"
+#~ "%s"
+
+#, fuzzy
+#~ msgid "missing static field `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "not a static field `%s'"
+#~ msgstr " (stat()) `%s': %s"
+
+#, fuzzy
+#~ msgid "No case for %s"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "unregistered operator %s"
+#~ msgstr " %d\n"
+
+#, fuzzy
+#~ msgid "internal error - use of undefined type"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "junk at end of signature string"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "bad pc in exception_table"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "Warn if modifiers are specified when not necessary"
+#~ msgstr " --string"
+
+#, fuzzy
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr " `%.*s'"
+
+#, fuzzy
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr " C: %s \n"
+
+#, fuzzy
+#~ msgid "cannot find class `%s'"
+#~ msgstr " ioctl `%s'"
+
+#, fuzzy
+#~ msgid "class `%s' already exists"
+#~ msgstr "( )"
+
+#, fuzzy
+#~ msgid "inconsistent instance variable specification"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "multiple declarations for method `%s'"
+#~ msgstr " `s'"
+
+#, fuzzy
+#~ msgid "invalid receiver type `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%s' does not respond to `%s'"
+#~ msgstr " `%s' `%s'"
+
+# src/outer.c:102
+#, fuzzy
+#~ msgid "no super class declared in interface for `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "method `%s' not implemented by protocol"
+#~ msgstr " "
+
+# src/install.c:562
+#, fuzzy
+#~ msgid "cannot find method"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate definition of class method `%s'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "duplicate declaration of class method `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate definition of instance method `%s'"
+#~ msgstr " locale `%s'"
+
+#, fuzzy
+#~ msgid "duplicate declaration of instance method `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "incomplete implementation of category `%s'"
+#~ msgstr " `%s'"
+
+# src/request.c:806 src/request.c:912
+#, fuzzy
+#~ msgid "conflicting super class name `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate interface declaration for class `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "duplicate declaration for protocol `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "profiling not supported with -mg\n"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "may not use both -m32 and -m64"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "-mapcs-26 and -mapcs-32 may not be used together"
+#~ msgstr ""
+#~ " \n"
+#~ " ."
+
+#, fuzzy
+#~ msgid "-msoft-float and -mhard_float may not be used together"
+#~ msgstr ""
+#~ " \n"
+#~ " ."
+
+#, fuzzy
+#~ msgid "-mbig-endian and -mlittle-endian may not be used together"
+#~ msgstr ""
+#~ " \n"
+#~ " ."
+
+#, fuzzy
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr " -C , -Z"
+
+#~ msgid "-pipe is not supported"
+#~ msgstr " -pipe "
+
+#, fuzzy
+#~ msgid "-mhard-float not supported"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "\" %s\" -l "
+
+#, fuzzy
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "ignoring #pragma %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %H value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %h value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %Q value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %q value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %p value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %B value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %C value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %E value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid %r value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "bad string length in %s"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "mode mismatch in %s expression"
+#~ msgstr " `%s'"
+
+# src/main.c:697 src/main.c:751
+#, fuzzy
+#~ msgid "no label named `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "this is the first ELSE label"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "duplicate CASE value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "this is the first entry for that value"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "CASE value out of range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "empty range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "internal error - unknown type in multiple assignment"
+#~ msgstr " - addtype ttisgmt"
+
+#, fuzzy
+#~ msgid "cannot convert to a boolean mode"
+#~ msgstr " U+%04X "
+
+#, fuzzy
+#~ msgid "cannot convert to a char mode"
+#~ msgstr " U+%04X "
+
+#, fuzzy
+#~ msgid "powerset tuple element out of range"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "missing variant fields (at least `%s')"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "bad initializer for field `%s'"
+#~ msgstr " byte "
+
+#, fuzzy
+#~ msgid "invalid array tuple label"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "array tuple index out of range"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "too many array tuple values"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing array tuple element %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "missing array tuple elements %s : %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "`%s' must not be declared readonly"
+#~ msgstr " `%s' "
+
+# src/request.c:263
+#, fuzzy
+#~ msgid "no initialization allowed for `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "location for `%s' not read-compatible"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "too few tag labels"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many tag labels"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "...is duplicated here"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "mode of `%s' is not a mode"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "duplicate grant for `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "previous grant for `%s'"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "duplicate definition `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "previous definition of `%s'"
+#~ msgstr " `UNDEFINED'"
+
+# src/main.c:785
+#, fuzzy
+#~ msgid "ambiguous choice for seize `%s' -"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "INTERNAL ERROR: handle_one_level is broken"
+#~ msgstr " : expand_token ()"
+
+#, fuzzy
+#~ msgid "conditional expression not allowed in %s"
+#~ msgstr " ( ): %s"
+
+#, fuzzy
+#~ msgid "internal error: unknown expression mode in %s"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "array is not addressable"
+#~ msgstr " `%s' ."
+
+#~ msgid "too few arguments in call to `%s'"
+#~ msgstr " `%s'"
+
+#~ msgid "too many arguments in call to `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "cannot dereference, not a pointer"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid type argument of `->'"
+#~ msgstr " `%s' ."
+
+#, fuzzy
+#~ msgid "no field named `%s'"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "argument %d to ABSTIME must be of integer type"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "parameter 2 must be a positive integer"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "argument 1 to `%s' must be of floating point mode"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "first argument to `%s' must be a mode"
+#~ msgstr " `%s' "
+
+#~ msgid "too many arguments to procedure `%s'"
+#~ msgstr " `%s'"
+
+#~ msgid "too many arguments to procedure"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments to procedure `%s'"
+#~ msgstr ": `%s'"
+
+#, fuzzy
+#~ msgid "too few arguments to procedure"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "syntax error (integer used as function)"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "syntax error - missing operator, comma, or '('?"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "internal error - bad built-in function `%s'"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "invalid operation on array of chars"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid left operand of %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid right operand of %s"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "ADDR requires a LOCATION argument"
+#~ msgstr " `-k' "
+
+#, fuzzy
+#~ msgid "-> expression is not addressable"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "%s is not addressable"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid "can't write to %s"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "FORBID is not yet implemented"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "text length must be greater then 0"
+#~ msgstr "%s: "
+
+#, fuzzy
+#~ msgid "argument %d of %s must be a location"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "argument 2 of ASSOCIATE must not be an empty string"
+#~ msgstr "%s: `%s' "
+
+#, fuzzy
+#~ msgid "argument 2 to ASSOCIATE must be a string"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "argument 3 to ASSOCIATE must be a string"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "too many arguments in call to MODIFY"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument 2 of MODIFY must not be an empty string"
+#~ msgstr "%s: `%s' "
+
+#, fuzzy
+#~ msgid "argument 2 to MODIFY must be a string"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "argument 3 to MODIFY must be a string"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "incompatible index mode"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "argument %d of %s must be of mode ACCESS"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "too few arguments in call to `readrecord'"
+#~ msgstr " bytes "
+
+#, fuzzy
+#~ msgid "incompatible record mode"
+#~ msgstr " (truncated)"
+
+#, fuzzy
+#~ msgid "too few arguments in call to `writerecord'"
+#~ msgstr " bytes "
+
+#, fuzzy
+#~ msgid "argument %d of %s must be of mode TEXT"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "argument %d must be referable"
+#~ msgstr " <%s> "
+
+#, fuzzy
+#~ msgid "too few arguments for this format string"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "internal error in check_format_string"
+#~ msgstr " %s, %u"
+
+# src/recode.c:171
+#, fuzzy
+#~ msgid "no padding character (offset %d)"
+#~ msgstr " %3d"
+
+#, fuzzy
+#~ msgid "too many arguments for this format string"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing index expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments in call to `readtext'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "non-constant expression"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "invalid C'xx' "
+#~ msgstr " UTC"
+
+#, fuzzy
+#~ msgid "unrecognized compiler directive"
+#~ msgstr " `-%c'"
+
+#, fuzzy
+#~ msgid "unrecognized compiler directive `%s'"
+#~ msgstr " `-%c'"
+
+#, fuzzy
+#~ msgid "invalid control sequence"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "unterminated string literal"
+#~ msgstr " o "
+
+#, fuzzy
+#~ msgid "invalid number format `%s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "can't find %s"
+#~ msgstr " %s"
+
+#, fuzzy
+#~ msgid "invalid `%c' character in name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "loop identifier undeclared"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "BY expression is negative or zero"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "start label '%s' does not match end label '%s'"
+#~ msgstr " `%s' `%s'"
+
+#, fuzzy
+#~ msgid "expected a name here"
+#~ msgstr "%s: ."
+
+#, fuzzy
+#~ msgid "expected a name string here"
+#~ msgstr "%s: ."
+
+#, fuzzy
+#~ msgid "missing defining occurrence"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing '(' in exception list"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "syntax error in exception list"
+#~ msgstr " %s: %s"
+
+#, fuzzy
+#~ msgid "empty ON-condition"
+#~ msgstr " /"
+
+#, fuzzy
+#~ msgid "expected another rename clause"
+#~ msgstr "%s: ."
+
+#, fuzzy
+#~ msgid "syntax error while parsing signal definition statement"
+#~ msgstr " %s: %s"
+
+#, fuzzy
+#~ msgid "expression is not an action"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "syntax error in action"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "bad tuple field name list"
+#~ msgstr " byte "
+
+#, fuzzy
+#~ msgid "invalid syntax for label in tuple"
+#~ msgstr " byte "
+
+#, fuzzy
+#~ msgid "missing field name"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "missing field"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "VARYING bit-strings not implemented"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "SIGNAL is not a valid mode"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "syntax error - missing mode"
+#~ msgstr " locale "
+
+#~ msgid " `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "undeclared identifier `%s'"
+#~ msgstr " : `%s'"
+
+#, fuzzy
+#~ msgid "too many arguments to process `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many arguments to process"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments to process `%s'"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too few arguments to process"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "GEN_INST parameter 2 must be an integer mode"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "%s is not a declared process"
+#~ msgstr " `%s' "
+
+#, fuzzy
+#~ msgid " and no default priority was set."
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid " and no destination process specified"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "slice length out-of-range"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "too many index expressions"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "cannot convert to float"
+#~ msgstr " U+%04X "
+
+#, fuzzy
+#~ msgid "cannot convert float to this mode"
+#~ msgstr "yp_update: \n"
+
+#, fuzzy
+#~ msgid "internal error in chill_root_resulting_mode"
+#~ msgstr " %s, %u"
+
+#, fuzzy
+#~ msgid "cannot process BIN (>32)"
+#~ msgstr " ."
+
+#, fuzzy
+#~ msgid "negative string length"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "floating point ranges"
+#~ msgstr " : %s"
+
+#, fuzzy
+#~ msgid "starting word in POS must be an integer constant"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "length in POS must be an integer constant"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "end bit in POS must be an integer constant"
+#~ msgstr " %s "
+
+#, fuzzy
+#~ msgid "invalid parameterized type"
+#~ msgstr "%s: "
+
+# src/main.c:659
+#, fuzzy
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr " `%s'"
+
+#, fuzzy
+#~ msgid "invalid use of %D"
+#~ msgstr " "
+
+#, fuzzy
+#~ msgid "internal error #%d"
+#~ msgstr " NIS"
+
+#, fuzzy
+#~ msgid "can't to open %s"
+#~ msgstr " `%s'"
diff --git a/gcc-4.9/libcpp/po/eo.po b/gcc-4.9/libcpp/po/eo.po
new file mode 100644
index 000000000..8c2b99ec7
--- /dev/null
+++ b/gcc-4.9/libcpp/po/eo.po
@@ -0,0 +1,952 @@
+# Translation of cpplib to Esperanto
+# Copyright (C) 2013, 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Felipe Castro <fefcas@gmail.com>, 2013, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-04 10:41-0300\n"
+"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
+"Language: eo\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "konverto de %s al %s ne estas subtenata de iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "neniu realigo de iconv, ne eblas konverti de %s al %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "la signo 0x%lx ne estas en la baza fonta signaro\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "konverto al plenumiga signaro"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "la signo 0x%lx ne estas unubajta en plenumiga signaro"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universalaj signo-nomoj nur validas en C++ kaj C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "la signifo de '\\%c' estas malsama en tradicia C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "En _cpp_valid_ucn sed ne estas UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nekompleta universala signo-nomo %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ne estas valida universala signo"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "'$' en identiganto aŭ numero"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "la universala signo %.*s ne estas valida en identiganto"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "la universala signo %.*s ne estas valida en komenco de identiganto"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "konverto de UCN al la fonta signaro"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "konverto de UCN al la plenumiga signaro"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "la signifo de '\\x' estas malsama en tradicia C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x estis uzata kun la jenaj deksesumaj ciferoj"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "deksesuma eskapa sekvo estas for de intervalo"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "okuma eskapa sekvo estas for de intervalo"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "la signifo de '\\a' estas malsama en tradicia C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "ne-ISO-norma eskapa sekvo, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "nekonata eskapa sekvo: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "nekonata eskapa sekvo: '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "konverto de eskapa sekvo al plenumiga signaro"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "signa konstanto tro longas por ties tipo"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "plursigna signa konstanto"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "malplena signa konstanto"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "problemo por konverti %s al %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "kromaj ĵetonoj ĉe la fino de la instrukcio #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s estas aldono de GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s estas evitinda aldono de GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "sugesti ne uzi #elif en tradicia C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "tradicia C preteratentas #%s kun la # krommarĝenita"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "sugesti kaŝi #%s el tradicia C per krommarĝenigo de #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "enkorpigi instrukcion ene de makroaj argumentoj ne estas portebla"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "stilo de lini-instrukcioj estas aldono de GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "malvalida antaŭproceza instrukcio #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" ne povas estis uzata kiel makroa nomo"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" ne povas esti uzata kiel makroa nomo ĉar ĝi estas operatoro en C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "neniu makroa nomo estas indikita en la instrukcio #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "makroaj nomoj devas esti identigantoj"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "ni maldifinas \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "mankas finiganta signo >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s atendas \"DOSIERNOMO\" aŭ <DOSIERNOMO>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "malplena dosiernomo en #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include estas ingita tro profunde"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next en ĉefa fonta dosiero"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "malvalida flago \"%s\" en lini-instrukcio"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "neatendita dosierfino post #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" post #line ne estas pozitiva entjero"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "lininumero estas for de intervalo"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" ne estas valida dosiernomo"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" post # ne estas pozitiva entjero"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "malvalida instrukcio #%s"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "registro de pragma en nomspaco \"%s\" kun nekongrua nom-etendigo"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registro de pragma \"%s\" kun nom-etendigo kaj sen nomspaco"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registro de \"%s\" kaj kiel pragma kaj kiel pragma-nomspaco"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s jam estas registrita"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s jam estas registrita"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "registro de pragma kun traktilo de NULL"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma unufoje en ĉefdosiero"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "malvalida instrukcio #pragma push_macro"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "malvalida instrukcio #pragma pop_macro"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "malvalida instrukcio #pragma GCC poison"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "venenigo de ekzistanta makroo \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header estis preteratentata for de inkluziv-dosiero"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "ne eblas trovi la fontan dosieron %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "nuna dosiero estas pli malnova ol %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "malvalida instrukcio \"#pragma GCC %s\""
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma prenas kurbkrampitan ĉenan literaĵon"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else sen #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else post #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "la kondiĉo komencis ĉi tie"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif sen #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif post #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif sen #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "mankas '(' post predikato"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "mankas ')' por kompletigi respondon"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "respondo de predikato estas malplena"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "aserto sen predikato"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predikato devas esti identiganto"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" estas re-asertita"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "nefinigita #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "nefinigita komento"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "ĉefeligujo"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "fisk-komaj konstantoj estas aldono de GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "malvalida prefikso \"0b\" por glitkoma konstanto"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "uzo de deksesuma glitkoma konstanto laŭ C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "malvalida sufikso \"%.*s\" en glitkoma konstanto"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "tradicia C rifuzas la sufikson \"%.*s\""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "sufikso por duobla konstanto estas aldono de GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "malvalida sufikso \"%.*s\" kun deksesuma glitkoma konstanto"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "dekumaj glitkomaj konstantoj estas aldono de GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "malvalida sufikso \"%.*s\" en entjera konstanto"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "uzo de konstanto C++11 long long integer"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "uzo de konstanto de C99 long long integer"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginaraj konstantoj estas aldono de GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "duumaj konstantoj estas aldono de C++1y aŭ de GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "entjera konstanto tro larĝas pro ties tipo"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "entjera konstanto estas tiom larĝa ke ĝi estas sen-signuma"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "mankas ')' post \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "la operatoro \"defined\" postulas identiganton"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" estas alternativa ĵetono por \"%s\" en C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "tiu ĉi uzo de \"defined\" eble ne estas portebla"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "uzant-difinita literaĵo en antaŭproceza esprimo"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "glitkoma konstanto en antaŭproceza esprimo"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginara numero en antaŭproceza esprimo"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" ne estas difinita"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "asertoj estas aldono de GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "asertoj estas evitinda aldono"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "neekvilibrita stako en %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "neebla operatoro '%u'"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "mankas ')' en esprimo"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' sen sekvanta ':'"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "entjera troigo en antaŭproceza esprimo"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "mankas '(' en esprimo"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "la maldekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "la dekstra operaciato de \"%s\" ŝanĝas signumon kiam promociita"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "tradicia C rifuzas la unuloka plusan operatoron"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "koma operatoro en operaciado de #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "divido per nulo en #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "NULL-dosierujo en find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "unu aŭ pli dosieroj PCH estis trovataj, sed ili estas malvalidaj"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "uzu -Winvalid-pch por pli da informo"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s estas blok-aparato"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s tro larĝas"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s estas pli mallonga ol atendite"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "estas neniu inkluziva vojo por serĉi %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Multoblaj inkluzivaj gardnodoj povas esti utilaj por:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t devas esti sensignuma tipo"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "antaŭproceza aritmetiko havas maksimuman precizecon de %lu bitoj; la celo postulas %lu bitojn"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "Aritmetiko de CPP devas esti minimue tiel preciza kiel la celata int"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "la celata char estas pli eta ol 8 bitoj"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "la celata wchar_t estas pli mallarĝa ol la celata char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "la celata int estas pli mallarĝa ol la celata char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "duon-entjero de CPP estas pli mallarĝa ol la signo de CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP en tiu ĉi komputilo ne povas trakti larĝ-signajn konstantoj plilarĝaj ol %lu bitoj, sed la celato postulas %lu bitojn"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "retroklino kaj novlinio apartitaj de spaco"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "retroklino-novlinio ĉe dosierfino"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigrafikaĵo ??%c konvertita al %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigrafikaĵo ??%c preteratentita, uzu -trigraphs por ebligi"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" ene de komento"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en antaŭproceza instrukcio"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "nul-signo(j) estas preteratentitaj"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "'%.*s' ne estas en NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "'%.*s' ne estas en NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "provo uzi venenitan \"%s\""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ nur povas aperi en la etendigo de variebl-argumenta makroo de C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "la identiganto \"%s\" estas speciala operator-nomo en C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "kruda ĉen-apartigilo pli longas ol 16 signoj"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "malvalida nov-linio en kruda ĉen-apartigilo"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "malvalida signo '%c' en kruda ĉen-apartigilo"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "nefinigita kruda ĉeno"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "malvalida sufikso en literaĵo; C++11 postulas spacon inter literaĵo kaj ĉena makroo"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "nul-signo(j) tenitaj en literaĵo"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "mankas finigantan signon %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Komentoj laŭ la estilo de C++ ne estas permesataj en ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(tio ĉi estos raportata nur po unu foje por ĉiu enigdosiero)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "plurlinia komento"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "neliterumebla ĵetono %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroo \"%s\" ne estas uzata"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "malvalida enkonstruita makroo \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "la makroo \"%s\" povos malebligi reprodukteblajn konstruojn"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "ne eblis determini la dosieran tempomarkon"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "ne eblis determini la daton kaj horon"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ estas etendigata interne de instrukcio per -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "malvalida ĉena literaĵo, ni preterpasas finan '\\'"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "algluo de \"%s\" kaj \"%s\" ne rezultas en valida antaŭproceza ĵetono"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 postulas ke restantaj argumentoj estu uzataj"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "la makroo \"%s\" postulas %u argumentojn, sed nur %u estis indikataj"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la makroo \"%s\" pasis %u argumentojn, sed ĝi prenas nur %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "nefinigita argumentlisto alvokanta la makroon \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funkci-simila makroo \"%s\" devas esti uzata kun argumentoj laŭ tradicia C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "alvoko de makroo %s, argumento %d: malplenaj makro-argumentoj estas nedifinitaj en ISO C90 kaj ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "duobligata makro-parametro \"%s\""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" ne povas aperi en makroa parametro-listo"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "makro-parametroj devas esti apartitaj per komoj"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "mankas parametra nomo"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "sennomaj variebl-argumentaj makrooj estis enkondukataj en C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ne permesas nomitajn variebl-argumentajn makroojn"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "mankas ')' en makroa parametro-listo"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' ne povas aperi ĉe iu ajn fino de makroa etendigo"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 postulas blankspacon post la makroa nomo"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "mankas blankspacon post la makroa nomo"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' ne estas sekvata de makroa parametro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" estas redifinita"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "tiu ĉi estas la loko de la antaŭa difino"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroa argumento \"%s\" devus esti ĉenigita laŭ tradicia C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "malvalida haketa tipo %d en cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "dum skribo de antaŭkompilita kapo"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: ne uzata ĉar '%.*s' estas venenita"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: ne uzata ĉar '%.*s' ne estas difinita"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: ne uzata ĉar '%.*s' estas difinita kiel '%s', ne '%.*s'"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: ne uzata ĉar '%s' estas difinita"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: ne uzata ĉar '__COUNTER__' estas malvalida"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "dum lego de antaŭkompilita kapo"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "estis detektata rekursigo dum etendigo de la makroo \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "sintaksa eraro en makroa parametro-listo"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "La signo %x povas ne esti NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "tro multaj frakciaj ciferoj en numero"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "malvalida cifero \"%c\" en duuma konstanto"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "malvalida cifero \"%c\" en okuma konstanto"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "neniu cifero en deksesuma glitkoma konstanto"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "eksponento ne havas ciferojn"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "deksesumaj glitkomaj konstantoj postulas eksponenton"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "mankas duuma operatoro antaŭ la ĵetono \"%s\""
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "la ĵetono \"%s\" ne estas valida en antaŭprocezaj esprimoj"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "mankas esprimo inter '(' kaj ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s sen iu ajn esprimo"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "la operatoro '%s' havas neniun desktran operaciaton"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "la operatoro '%s' havas neniun maldesktran operaciaton"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' sen antaŭanta '?'"
diff --git a/gcc-4.9/libcpp/po/es.po b/gcc-4.9/libcpp/po/es.po
new file mode 100644
index 000000000..ea5853fcb
--- /dev/null
+++ b/gcc-4.9/libcpp/po/es.po
@@ -0,0 +1,983 @@
+# Mensajes en español para cpplib-4.7-b20120128.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.7-b20120128\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2012-01-29 12:55-0600\n"
+"Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv no admite la conversión de %s a %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "no hay una implementación de iconv, no se puede convertir de %s a %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "el carácter 0x%lx no está en el conjunto básico de caracteres fuente\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "convirtiendo al conjunto de caracteres de ejecución"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "el carácter 0x%lx no es unibyte en el conjunto de caracteres de ejecución"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "los nombres universales de carácter sólo son válidos en C++ y C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "el significado de '\\%c' es diferente en C tradicional"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "En _cpp_valid_unc pero no es un NUC"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nombre universal de carácter %.*s incompleto"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s no es un carácter universal válido"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "'$' en el identificador o número"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "el carácter universal %.*s no es válido en un identificador"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "el carácter universal %.*s no es válido al inicio de un identificador"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "convirtiendo un NUC al conjunto de caracteres fuente"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "convirtiendo un NUC al conjunto de caracteres de ejecución"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "el significado de '\\x' es diferente en C tradicional"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "se usó \\x sin dígitos hexadecimales a continuación"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "secuencia de escape hexadecimal fuera de rango"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "secuencia de escape octal fuera de rango"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "el significado de '\\a' es diferente en C tradicional"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "secuencia de escape que no es estándard ISO, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "secuencia de escape desconocida: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "secuencia de escape desconocida: '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "convirtiendo una secuencia de escape al conjunto de caracteres de ejecución"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "constante de carácter demasiado grande para su tipo"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "constante de carácter con múltiples caracteres"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "constante de carácter vacía"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "no se puede convertir %s a %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "elementos extra al final de la directiva #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s es una extensión de GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s es una extensión de GCC obsoleta"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "se sugiere no usar #elif en C tradicional"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s con el # indentado"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "se sugiere ocultar #%s de C tradicional con un # indentado"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "imbuir una directiva dentro de los argumentos de una macro no es transportable"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "la directiva de estilo de línea es una extensión de GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directiva de preprocesamiento #%s inválida"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" no se puede usar como un nombre de macro"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "no se puede usar \"%s\" como un nombre de macro porque es un operador en C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "no se dio un nombre de macro en la directiva #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "los nombres de macro deben ser identificadores"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "borrando la definición de \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "falta el carácter de terminación >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOMBRE_ARCHIVO\" ó <NOMBRE_ARCHIVO>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nombre de fichero vacío en #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include anidado con demasiada profundidad"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next en fichero primario de código fuente"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "indicador \"%s\" inválido en la línea de la directiva"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "fin de fichero inesperado después de #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" después de #line no es un entero positivo"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "número de línea fuera de rango"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" no es un nombre de fichero válido"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" después de # no es un entero positivo"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "directiva #%s inválida"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "se registran pragmas en el espacio de nombres \"%s\" con una expansión de nombre que no coincide"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "se registra el pragma \"%s\" con expansión de nombre y sin un espacio de nombres"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "se registra \"%s\" como un pragma y como un espacio de nombres de pragma"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s ya está registrado"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s ya está registrado"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "se registra un pragma con manejador NULL"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma una vez en el fichero principal"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "directiva #pragma push_macro inválida"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "directiva #pragma pop_macro inválida"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "directiva #pragma de GCC envenenada inválida"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "se envenena la macro existente \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorado fuera del fichero a incluir"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "no se puede encontrar el fichero fuente %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "el fichero actual es más antiguo que %s"
+
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "directiva #pragma de GCC envenenada inválida"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma lleva una cadena literal entre paréntesis"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else sin #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else después de #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "el condicional empezó aquí"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif sin #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif después de #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif sin #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "falta '(' antes del predicado"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "falta ')' para completar la respuesta"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "la respuesta del predicado está vacía"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "afirmación sin predicado"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "el predicado debe ser un identificador"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" reafirmado"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s sin terminar"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "comentario sin terminar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "salida estándard"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "las constantes de coma fija son una extensión GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "prefijo \"0b\" inválido en la constante de coma flotante"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "uso de una constante de coma flotante hexadecimal C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C tradicional rechaza el sufijo \"%.*s\""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "el sufijo para una constante doble es una extensión GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "sufijo \"%.*s\" inválido en la constante de coma flotante hexadecimal"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "las constantes de coma flotante decimal son una extensión GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufijo \"%.*s\" inválido en la constante entera"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "uso de una constante entera long long C++0x"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "uso de una constante entera long long C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "las constantes imaginarias son una extensión GCC"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "las constantes binarias son una extensión GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "la constante entera es demasiado grande para su tipo"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "la constante entera es tan grande que es unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "falta ')' después de \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "el operador \"defined\" requiere un identificador"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" es un elemento alternativo para \"%s\" en C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "este uso de \"defined\" puede no ser transportable"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "literal definida por el usuario en una expresión del preprocesador"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "constante de coma flotante en una expresión del preprocesador"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "número imaginario en una expresión del preprocesador"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" no está definido"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "las aserciones son una extensión GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "las aserciones son una extensión obsoleta"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "pila desbalanceada en %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador '%u' imposible"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "falta un ')' en la expresión"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' sin ':' a continuación"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "desbordamiento entero en expresión del preprocesador"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "falta un '(' en la expresión"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "el operando izquierdo de \"%s\" cambia de signo cuando es promovido"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "el operando derecho de \"%s\" cambia de signo cuando es promovido"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rechaza el operador unario mas"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "operador coma en operando de #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "división por cero en #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "directorio NULL en find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "se encontró uno o más ficheros PCH, pero eran inválidos"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "use -Winvalid-pch para más información"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s es un dispositivo de bloques"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s es demasiado grande"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s es más corto de lo esperado"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "no hay ruta de inclusión en la cual se pueda buscar %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Guardias múltiples de include pueden ser útiles para:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t debe ser de un tipo unsigned"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "la aritmética del preprocesador tiene una precisión máxima de %lu bits; el objetivo requiere de %lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "la aritmética de CPP debe se al menos tan precisa como un int del objetivo"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "el char del objetivo tiene menos de 8 bits de ancho"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "el wchar_t del objetivo es más estrecho que el char del objetivo"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "el int del objetivo es más estrecho que el char del objetivo"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "el medio-entero de CPP es más estrecho que el carácter de CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+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"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "caracteres de barra invertida y fin de línea separados por espacio"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "no hay caractér de barra invertida o fin de línea al final del fichero"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "se convierte el trigrafo ??%c a %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "se ignora el trigrafo ??%c, use -trigraphs para reconocerlo"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dentro de un comentario"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s en la directiva de preprocesamiento"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "caracter(es) nulo(s) ignorados"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' no está en NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' no está en NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "intento de usar \"%s\" envenenado"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ solamente puede aparecer en la expansión de una macro variadic C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "el identificador \"%s\" es un nombre de operador especial en C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "el delimitador de cadena cruda es más largo que 16 caracteres"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "carácter inválido '%c' en un delimitador de cadena cruda"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "carácter inválido '%c' en un delimitador de cadena cruda"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "cadena cruda sin terminar"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "caracter(es) nulo(s) preservados en la literal"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "falta el carácter de terminación %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "los comentarios de estilo C++ no se permiten en ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(esto se reportará solamente una vez por cada fichero de entrada)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "comentario en múltiples líneas"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "elemento %s impronunciable"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro \"%s\" no se utiliza"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna \"%s\" inválida"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "no se puede determinar la marca de fecha del fichero"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "no se puede determinar la fecha y la hora"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "se expande __COUNTER__ dentro de una directiva con -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "cadena literal inválida, se ignora el '\\' final"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "pegar \"%s\" y \"%s\" no da un elemento válido de preprocesamiento"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requiere que el resto de los argumentos sea usado"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "la macro \"%s\" requiere %u argumentos, pero solo se proporcionan %u"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la macro \"%s\" pasó %u argumentos, pero solamente toma %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "lista de argumentos sin terminar al invocar la macro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "la función de macro \"%s\" se debe usar con argumentos en C tradicional"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "al invocar el macro %s argumento %d: los argumentos de macro vacíos están indefinidos en ISO C90 y en ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "parámetro de macro \"%s\" duplicado"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" podría faltar en la lista de parámetro de macro"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "los parámetros de macro deben ser separados por comas"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "falta el nombre del parámetro"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "los macros variadic anónimos se introdujeron en C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C no permite macros variadic nombrados"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "falta ')' en la lista de parámetros de macro"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' no puede aparece en o al final de una expansión de macro"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requiere espacios en blanco después del nombre de macro"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "faltan espacios en blanco después del nombre de macro"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' no es seguido por un parámetro de macro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "se redefinió \"%s\""
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "esta es la ubicación de la definición previa"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "el argumento de macro \"%s\" debería ser convertido a cadena en C tradicional"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipo de hash %d inválido en cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "al escribir el encabezado precompilado"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: no se usa porque `%.*s' está envenenado"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: no se usa porque `%.*s' no está definido"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: no se usa porque `%.*s' está definido como `%s' no como `%.*s'"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: no se usa porque `%s' está definido"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: no se usa porque `__COUNTER__' es inválido"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "al leer el encabezado precompilado"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "se detectó recursión al expandir la macro \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "error de sintaxis en la lista de parámetros de macro"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "El carácter %x puede no ser NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "demasiados puntos decimales en el número"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "dígito \"%c\" inválido en la constante binaria"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "dígito \"%c\" inválido en la constante octal"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "no hay dígitos en la constante de coma flotante hexadecimal"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "el exponente no tiene dígitos"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "las constantes de coma flotante hexadecimal requieren un exponente"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "falta un operador binario antes del elemento \"%s\""
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "el elemento \"%s\" no es válido en las expresiones del preprocesador"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "falta una expresión entre '(' y ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s sin expresión"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "el operador '%s' no tiene operando derecho"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "el operador '%s' no tiene operando izquierdo"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' sin una '?' precedente"
+
+#~ msgid "warning: "
+#~ msgstr "aviso: "
+
+#~ msgid "internal error: "
+#~ msgstr "error interno: "
+
+#~ msgid "error: "
+#~ msgstr "error: "
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "En el fichero incluído de %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " de %s:%u"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "no hay caractér de fin de línea al final del fichero"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "secuencia de escape desconocida: '\\%03o'"
diff --git a/gcc-4.9/libcpp/po/fi.po b/gcc-4.9/libcpp/po/fi.po
new file mode 100644
index 000000000..fa09c1e45
--- /dev/null
+++ b/gcc-4.9/libcpp/po/fi.po
@@ -0,0 +1,963 @@
+# Finnish messages for cpplib.
+# Copyright © 2010, 2012, 2013, 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010, 2012-2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-07 20:19+0200\n"
+"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
+"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
+"Language: fi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ei tue muunnosta kohteesta %s kohteeseen %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "ei iconv-toteutusta, muuntaminen kohteesta %s kohteeseen %s epäonnistui"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "merkki 0x%lx ei ole peruslähdemerkkien joukossa\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "muunnetaan suoritusmerkkijoukkoon"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "merkki 0x%lx ei ole yksitavumerkki suoritusmerkkijoukossa"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "yleispätevät merkkinimet ovat kelvollisia vai C++:ssa ja C99:ssä"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "’\\%c’-merkitys on erilainen perinteisessä C:ssä"
+
+# UCN tarkoittaa Universal Character Names ja se sallii minkä tahansa kirjaimen käyttämisen C-lähdekielessä, ei vain englanninkielen kirjainten käytön. Merkki voidaan ilmaista joko kenoviivalla, sitä seuraavalla pienellä u-kirjaimella ja nelinumeroisella heksadesimaaliluvulla tai kenoviivaa seuraavalla suurella U-kirjaimella ja kahdeksannumeroisella heksadesimaaliluvulla.
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Kohteessa _cpp_valid_ucn mutta ei UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "vaillinainen yleispätevä merkkinimi %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s ei ole kelvollinen yleispätevä merkki"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "’$’ tunnisteessa tai numerossa"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "yleispätevä merkki %.*s ei ole kelvollinen tunniste"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "yleispätevä merkki %.*s ei ole kelvollien tunnisteen alussa"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "muunnetaan UCN lähdemerkkijoukoksi"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "muunnetaan UCN suoritusmerkkijoukoksi"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "merkin ’\\x’ merkitys on erilainen perinteisessä C:ssä"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x käytetty ilman seuraavia heksadesimaalinumeroita"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "heksadesimaali koodinvaihtosekvenssi lukualueen ulkopuolella"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "oktaaliluku koodinvaihtosekvenssi lukualueen ulkopuolella"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "merkin ’\\a’ merkitys on erilainen perinteisessä C:ssä"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "ei-ISO-standardi koodinvaihtosekvenssi ’\\%c’"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "tuntematon koodinvaihtosekvenssi ’\\%c’"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "tuntematon koodinvaihtosekvenssi ’\\%s’"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "muunnetaan koodinvaihtosekvenssi suoritusmerkkijoukoksi"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "merkkivakio on liian pitkä tälle tyypille"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "monimerkkikirjainvakio"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "tyhjä merkkivakio"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "virhe muuntaa kohde %s kohteeksi %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "direktiivin #%s lopussa ylimääräisiä merkkejä"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s on GCC-laajennus"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s on vanhentunut GCC-laajennus"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "ei suositella #elif-käyttöä perinteisessä C:ssä"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "perinteinen C ohittaa #%s merkillä # sisennettynä"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "suosittelee piilottamaan #%s perinteisestä C:stä sisennetyllä #-merkillä"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "direktiivin upottaminen makroargumenttien sisälle ei ole siirrettävä"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "rividirektiivin tyyli on GCC-laajennus"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "virheellinen esikäsittelijädirektiivi #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "”defined” ei voida käyttää makronimenä"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "”%s” ei voida käyttää makronimenä, koska se on operaattori C++:ssa"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "makronimeä ei ole annettu #%s-direktiivissä"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "makronimien on oltava tunnisteita"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "määrittelemätön ”%s”"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "puuttuva päättymismerkki >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s odottaa ”TIEDOSTONIMI” tai <TIEDOSTONIMI>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "tyhjä tiedostonimi kohteessa #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include sisäkkäinen liian syvälle"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next ensisijaisessa lähdetiedostossa"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "virheellinen lippu ”%s” rividirektiivissä"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "tiedoston odottamaton loppu #line-direktiivin jälkeen"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "”%s” direktiivin #line jälkeen ei ole positiivinen kokonaisluku"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "rivinumero lukualueen ulkopuolella"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "”%s” ei ole kelvollinen tiedostonimi"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "”%s” merkin # jälkeen ei ole positiivinen kokonaisluku"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "virheellinen #%s-direktiivi"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "rekisteröidään pragmat nimiavaruudessa ”%s” täsmäämättömällä nimilaajennuksella"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "rekisteröidään pragma ”%s” nimilaajennuksella ja ilman nimiavaruutta"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "rekisteröidään ”%s” sekä pragmana ja pragma-nimiavaruutena"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s on jo rekisteröity"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s on jo rekisteröity"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "rekisteröidään pragma NULL-käsittelijällä"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once main-tiedostossa"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "virheellinen #pragma push_macro-direktiivi"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "virheellinen #pragma pop_macro-direktiivi"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "virheellinen #pragma GCC poison-direktiivi"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "kielletään olemassaoleva makro ”%s”"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ohitetaan include-tiedoston ulkopuolella"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "lähdetiedoston %s löytäminen epäonnistui"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "nykyinen tiedosto on vanhempi kuin %s"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "virheellinen ”#pragma GCC %s”-direktiivi"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma ottaa sulkumerkkeillä ympäröidyn merkkijonoliteraalin"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else ilman #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else jälkeen #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "ehdollinen alkoi tässä"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif ilman #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif jälkeen #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif ilman #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "merkki ’(’ puuttuu predikaatin jälkeen"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "merkki ’)’ puuttuu täydelliseen vastaukseen"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "predikaatin vastaus on tyhjä"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "assertion-toiminto ilman predikaattia"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predikaatin on oltava tunniste"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "”%s” uudelleen assert-toimintoon"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "päättämätön #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "päättämätön kommentti"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "vakiotuloste"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "kiintopistevakiot ovat GCC-laajennus"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "virheellinen etuliite ”0b” liukulukuvakiolle"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "käytä C99 heksadesimaaliliukulukuvakiota"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiossa"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "perinteinen C hylkää ”%.*s”-loppuliitteen"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "loppuliite double-vakiolle on GCC-laajennus"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "virheellinen loppuliite ”%.*s” heksadesimaalisessa liukulukuvakiossa"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "desimaaliliukulukuvakiot ovat GCC-laajennus"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "virheellinen loppuliite ”%.*s” kokonaislukuvakiossa"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "käytä ”C++11 long long”-kokonaislukuvakiota"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "käytä ”C99 long long”-kokonaislukuvakiota"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginaarivakiot ovat GCC-laajennus"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "binäärivakiot ovat C++1y-ominaisuus tai GCC-laajennus"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "kokonaislukuvakio on liian iso sen tyypiksi"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "kokonaislukuvakio on niin iso, että se on etumerkitön"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "merkki ’)’ puuttuu ”defined”-merkkijonon jäljestä"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "operaattori ”defined” vaatii tunnisteen"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(”%s” on vaihtoehtoinen merkkijono ”%s” C++:ssa)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "tämä ”defined”-käyttö ei ehkä ole siirrettävä"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "käyttäjämääritelty literaali esikääntäjälausekkeessa"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "liukulukuvakio esikäsittelijälausekkeessa"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginaariluku esikääntäjälausekkeessa"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "”%s” ei ole määritelty"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "assertion-toiminnot ovat GCC-laajennus"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "assertion-toiminnot ovat vanhentunut laajennus"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "tasapainoton pino kohteessa %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "mahdoton operaattori ’%u’"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "merkki ’)’ puuttuu lausekkeessa"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "’?’ ilman seuraavaa ’:’"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "kokonaislukuylivuoto esikääntäjälausekkeessa"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "merkki ’(’ puuttuu lausekkeessa"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "vasen ”%s”-operandi vaihtaa merkkiä, kun korotettiin"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "oikea ”%s”-operandi vaihtaa merkkiä, kun korotettiin"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "perinteinen C hylkää unaariplus-operaattorin"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "pilkkuoperaattori #if-operandissa"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "jako nollalla #if-lauseessa"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "NULL-hakemistto kohteessa find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "yksi tai useampia PCH-tiedostoja löytyi, mutta ne olivat virheellisiä"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "käytä lisätietoja varten valitsinta -Winvalid-pch"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s on lohkolaite"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s on liian laaja"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s on lyhyempi kuin otaksuttiin"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "ei include-polkua, jossa etsiä kohdetta %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Useat include-vartijat saattavat olla hyödyllisiä kohteelle:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t on oltava etumerkitön tyyppi"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "esikääntäjäaritmetiikan maksimitarkkuus on %lu bittiä; kohde vaatii %lu bittiä"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-aritmetiikan on oltava vähintään yhtä tarkkaa kuin kohteen int-tyypin"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "kohdemerkki on pienempi kuin 8 bittiä leveä"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "kohteen wchar_t-tyyppi on kapeampi kuin kohteen char-tyyppi"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "kohteen kokonaislukutyyppi on kapeampi kuin kohteen char-tyyppi"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP-puolikokonaisluku on kapeampi kuin CPP-merkki"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP tällä tietokoneella ei voi käsitellä wide-merkkivakioita, jotka ovat yli %lu bittiä, mutta kohde vaatii %lu bittiä"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "kenoviiva ja rivinvaihtomerkki eroteltu välilyönnillä"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "kenoviiva-rivinvaihto tiedoston lopussa"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph-merkki ??%c muunnettu merkiksi %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph-merkki ??%c ohitettiin, käytä valitsinta -trigraphs merkkien käyttöönottamiseksi"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "”/*” kommentin sisällä"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s esikäsittelijädirektiivissä"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "null-merkkejä ei oteta huomioon"
+
+# NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "”%.*s” ei ole Unicode-normalisointimerkkijonomuodossa NFKC"
+
+# NFC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "”%.*s” ei ole Unicode-normalisointimerkkijonomuodossa NFC"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "yritys käyttää poison-kiellettyä makroa ”%s”"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ voi vain esiintyä C99 variadic-makrolaajennuksessa"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "tunniste ”%s” on erikoisoperaattorinimi C++:ssa"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "raakamerkkijonoerotin pitempi kuin 16 merkkiä"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "virheellinen rivinvaihtomerkki raakamerkkijonoerottimessa"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "virheellinen merkki ’%c’ raakamerkkijonoerottimessa"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "päättämätön raakamerkkijono"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "literaalissa virheellinen loppuliite; C++11 vaatii välilyönnin literaalin ja merkkijonomakron väliin"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "null-merkit säilytetään literaaleissa"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "puuttuva päättymismerkki %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++-tyyliset kommentit eivät ole sallittuja ISO C90-standardissa"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(tästä ilmoitetaan vain kerran per syötetiedosto)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "monirivinen kommentti"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "tavaamaton merkkijono %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makroa ”%s” ei ole käytetty"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "virheellinen sisäinen makro ”%s”"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "makro ”%s” saattaisi estää toistettavat rakentamiset"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "ei voitu ottaa selvää tiedoston aikaleimasta"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "ei voitu ottaa selvää päivämäärästä ja ajasta"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ laajennettu direktiivin sisällä valitsimella -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "virheellinen merkijonoliteraali, ei oteta huomioon lopun ’\\’ merkkejä"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "liittämällä ”%s” ja ”%s” ei anneta kelvollista esikääntäjämerkkijonoa"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 vaatii, että loput argumentit käytetään"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makro ”%s” vaatii %u argumenttia, mutta vain %u on annettu"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makrolle ”%s” välitetty %u argumenttia, mutta se ottaa vain %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "päättämätön argumenttiluettelo kutsuttaessa makroa ”%s”"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktion kaltaista makroa ”%s” on käytettävä argumenteilla perinteisessä C:ssä "
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "kutsutaan makron %s argumenttia %d: tyhjät makroargumentit ovat määrittelemättömiä ISO C90:ssä ja ISO C++98:ssa"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "kaksoiskappale makroparametri ”%s”"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "”%s” ei ehkä ilmene makroparametriluettelossa"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametrien on oltava pilkulla eroteltuja"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "parametrinimi puuttuu"
+
+# Variadic-makro on sellainen makro, jonka argumenttien lukumäärä voi vaihdella.
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyymit variadic-makrot esiteltiin C99:ssä"
+
+# Variadic-makro on sellainen makro, joka hyväksyy vaihtelevan määrän argumentteja.
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ei salli nimettyjä variadic-makroja"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "puuttuu ’)’ makroparametriluettelosta"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "’##’ ei voi esiintyä makrolaajennuksen kummassakaan päässä"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 vaatii tyhjemerkin makronimen jälkeen"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "puuttuu tyhjemerkki makronimen jälkeen"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "’#’-merkkiä seuraa makroparametri"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "”%s” on määritelty uudelleen"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "tämä on edellisen määrittelyn sijainti"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroargumentti ”%s” muunnettaisiin merkkijonoksi perinteisessä C:ssä"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "virheellinen hash-tyyppi %d kohteessa cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "kirjoitettaessa esikäännettyjä otsaketiedostoja"
+
+# poison tarkoittaa, että makroa tai direktiiviä ei koskaan määritellä tai käytetä
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: ei käytetä, koska ”%.*s” on poison-kielletty"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: ei käytetä, koska ”%.*s” ei ole määritelty"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: ei käytetä, koska ”%.*s” on määritelty nimellä ”%s” ei nimellä ”%.*s”"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: ei käytetä, koska ”%s” on määritelty"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: ei käytetty, koska ”__COUNTER__” on virheellinen"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "luettaessa esikäännettyjä otsaketiedostoja"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "havaittu rekursio laajennettaessa makroa ”%s”"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "syntaksivirhe makroparameteriluettelossa"
+
+# NFKC-muodossa Unicode-merkki ilmaistaan nelinumeroisella heksadesimaaliluvulla
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Merkki %x ei saattaisi olla Unicode-normalisointimerkkijonomuotoa NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "liian monta desimaalipistettä numerossa"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "virheellinen numero ”%c” binäärivakiossa"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "virheellinen numero ”%c” oktaalivakiossa"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "ei lukuja heksadesimaalisessa liukulukuvakiossa"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "eksponentilla ei ole numeoita"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "heksadesimaalinen liukulukuvakio vaatii eksponentin"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "puuttua binäärioperaattori ennen merkkijonoa ”%s”"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "merkkijono ”%s” ei ole kelvollinen esikäsittelijälausekkeissa"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "puuttuva lauseke merkkien ’(’ ja ’)’ välillä"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s ilman lauseketta"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "operaattorilla ’%s’ ei ole oikeaa operandia"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operaattorilla ’%s’ ei ole vasenta operandia"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ’:’ ilman edeltävää ’?’"
diff --git a/gcc-4.9/libcpp/po/fr.po b/gcc-4.9/libcpp/po/fr.po
new file mode 100644
index 000000000..0cb14823b
--- /dev/null
+++ b/gcc-4.9/libcpp/po/fr.po
@@ -0,0 +1,20029 @@
+# Messages franais pour GNU concernant cpplib.
+# Copyright 2001, 2008 Free Software Foundation, Inc.
+# Michel Robitaille <robitail@IRO.UMontreal.CA>, traducteur depuis/since 1996.
+# Franois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+#
+# Vocabulaire utilis
+# lvalue = membre gauche
+# deprecated = obsolte
+# out of range = hors des limites
+# range = gamme
+# scope = port, champ
+# shadowing = masquer
+# embedded PIC = PIC enchss
+# CPU = processeur
+# structure with flexible member
+# = structure ayant un membre flexible
+# flag = fanion
+# forward declaration
+# = dclaration anticipe
+# token = lment lexical (dans le contexte du parsing)
+# to subscript = indicer
+# top-level = hors de toute fonction
+# member function = fonction membre
+#
+# Pas traduit:
+# thread
+#
+# J'ai des doutes pour :
+# inline = enligne (pas systmatiquement)
+# oui dans le contexte du langage C par exemple MR
+# non autrement ...de manire gnrale MR
+# section attribute attribut de section OK MR
+# wide char caractre long ...non mieux caractre large MR
+# plus conforme l'esprit.
+#
+# ------
+# literals littral, ou mot compos ?
+# msgid "ISO C89 forbids compound literals"
+# msgstr "le C89 ISO interdit les mots composs"
+#
+# symbol table table des symboles ou table de symbole
+# command map carte des commandes
+# Combiner combinateur
+# msgid ""
+# ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+# ";; %d successes.\n"
+# "\n"
+# msgstr ""
+# ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n"
+# ";; %d succs.\n"
+# "\n"
+#
+# promote promouvoir
+# msgid "the left operand of \"%s\" changes sign when promoted"
+# msgstr "L'oprande gauche de %s change de signe lors de sa promotion"
+#
+# include guards ???
+# msgid "Multiple include guards may be useful for:\n"
+# msgstr "De multiples balises pour les inclusions peuvent tre utiles pour :\n"
+#
+#
+# universal-character-name ???
+# msgid "incomplete universal-character-name"
+# msgid "non-hex digit '%c' in universal-character-name"
+# msgid "universal-character-name on EBCDIC target"
+#
+# poisoning empoisonnement
+# msgid "poisoning existing macro \"%s\""
+# msgstr "empoisonnement de la macro existente %s "
+# MR 9-jan 2004: poisoning etc... transform par corruption corrompu etc..
+# MR 24-mai 2004: poison etc...suite au msg concernant le #pragma once et #pragma poison
+#
+# Autres rgles:
+# - j'ai ajout un adjectif par rapport l'anglais si le message est
+# une phrase avec verbe conjug.
+# - ISO est considr comme un adjectif dans C ISO
+#
+# Erreurs corriges:
+# librairies, assumer
+#
+# A faire:
+# - s/en ligne/en-ligne/ modifi 9-janv-2004 MR
+# - s/en-ligne/enligne/ modifi 18-fvrier-2004 MR pcq expression ou terme enlignage vs inlining
+# - hors gamme a t chang pour hors limite ...MR 09-jan-2004
+# - literal
+# - chane de format => formatage
+# - scope
+# - support est un faux ami
+#
+# A rapporter upstream:
+# <<<<<<<<
+# In c-opts.c, begining line 1732, a lot of options are of the kind:
+# " -W[no-]trigraphs Warn if trigraphs are encountered\n"
+# I guess it would be better to change them all to something like
+# " -W[no-]trigraphs Warn [or not] if trigraphs are encountered\n"
+#
+#
+# #: c-opts.c:1759
+# " -MP\t\t\t Generate phony targets for all headers\n"
+# you may want to change the \t to spaces, as it is done for the other lines.
+#
+# #: c-typeck.c:3166 c-typeck.c:4632 c-typeck.c:4648 c-typeck.c:4664
+# #: final.c:3146 final.c:3148 gcc.c:4397 rtl-error.c:122 toplev.c:1694
+# #: config/cris/cris.c:529 cp/typeck.c:4341 java/expr.c:364 java/verify.c:1467
+# #: java/verify.c:1468 java/verify.c:1483
+# #, c-format
+# msgid "%s"
+# msgstr "%s"
+#
+# Are you sure you want to translate the messages in cfgrtl.c, or are they
+# debugging informations ?
+#
+# You may want to use ngettext instead of putting (s) in text.
+# msgid "null character(s) preserved in literal"
+#
+# >>>>>>>>>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU cpplib 4.3.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2008-03-27 22:46+0000\n"
+"Last-Translator: Franois-Xavier Coudert <fxcoudert@gmail.com>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "conversion de %s vers %s n'est pas support par iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "pas d'implantation iconv, ne peut convertir de %s vers %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "caractre 0x%lx n'est pas dans le jeu de caractres de base\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "conversion vers un jeu d'excution de caractres"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "caractre 0x%lx n'est pas unibyte dans le jeu de caractres d'excution"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "noms de caractre universel sont seulement valides en C++ et C89"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "la signification de \\%c est diffrente en C traditionel"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Dans _cpp_valid_ucn mais pas un Universal Character Name"
+
+# FIXME
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nom de caractre universel incomplet %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s n'est pas un caractre universel valide"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr " $ dans un identificateur ou un nombre"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "caractre universel %.*s n'est pas valide dans un identificcateur"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "caractre universel %.*s n'est pas valide au dbut d'un identificcateur"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "conversion UCN vers le jeu source de caractres"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "conversion UCN vers le jeu d'excution de caractres"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "la signification de \\x est diffrente en C traditionel"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x utilis sans tre suivi de chiffres en hexdcimal"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "squence d'chappement hexadcimale hors limite"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "squence d'chappement octale hors limite"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "la signification de \\a est diffrente en C traditionel"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "squence d'chappement \\%c non conforme au standard ISO"
+
+#: charset.c:1324
+#, fuzzy, c-format
+#| msgid "unknown escape sequence '\\%c'"
+msgid "unknown escape sequence: '\\%c'"
+msgstr "squence d'chappement \\%c inconnue"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "squence d'chappement \\%s inconnue"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "conversion d'une squence d'chappement vers un jeu d'excution de caractres"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "constante caractre trop longue pour son type"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "constante caractre multi-caractres"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "constante caractre vide"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "chec de conversion de %s vers %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "lments lexicaux superflus la fin de la directive #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s est une extension GCC"
+
+#: directives.c:362
+#, fuzzy, c-format
+#| msgid "#%s is a GCC extension"
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s est une extension GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "il est suggr de ne pas utiliser #elif en C traditionnel"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "le C traditionel ignore la directive #%s si le caractre # est indent"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "il est suggr de cacher #%s au C traditionel en indentant le # "
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "placer une directive dans les arguments d'une macro n'est pas portable"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "la directive de style de ligne est extension GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "directive de pr-traitement #%s invalide"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr " defined ne peut tre utilis comme nom de macro"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr " %s ne peut tre utilis comme nom de macro car c'est un oprateur en C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "aucun nom de macro donn dans la directive #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "les noms de macro doivent tre des identificateurs"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "indfinition de %s "
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "caractre > de terminaison manquant"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s attend \"NOM_DE_FICHIER\" ou <NOM_DE_FICHIER>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nom de fichier vide dans #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include imbriqu trop profondment"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next dans un fichier source primaire"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "fanion %s invalide dans la ligne de directive"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "fin de fichier inattendue aprs #ligne"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr " %s aprs #ligne n'est pas un nombre entier positif"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "numro de ligne hors limite"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr " %s n'est pas un nom de fichier valide"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr " %s aprs # n'est pas un nombre entier positif"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "directive #%s invalide"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "enregistrement des pragmas dans l'espace de nom %s avec une expansion de nom ne correspondant pas"
+
+# FIXME
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "enregistrement du pragma %s avec une expansion de nom mais pas d'espace de nom"
+
+# FIXME
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "enregistrement de \"%s\" la fois comme une pragma et un espace de nom de pragma"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "la #pragma %s %s est dj enregistre"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "la #pragma %s est dj enregistre"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "enregistrement d'un pragma avec un handler gal NULL"
+
+# FIXME
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once utilise une seule fois dans le fichier principal"
+
+# FIXME
+#: directives.c:1462
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma push_macro directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1517
+#, fuzzy
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid #pragma pop_macro directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+# FIXME
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "limination de la macro existente %s "
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignore en dehors du fichier d'inclusion"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "impossible de trouver le fichier source %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "le fichier courant est plus vieux que %s"
+
+# FIXME
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "la directive GCC #pragma poison est invalide"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma prend une chane entoure de parenthrese"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else sans #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else aprs #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "la condition dbute ici"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif sans #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif aprs #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif sans #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr " ( manquante aprs le prdicat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr " ) manquante pour completer la rponse"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "la rponse du prdicat est vide"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "assertion sans prdicat"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "le prdicat doit tre un identificateur"
+
+# FIXME
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr " %s re-asserti"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s non termin"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "commentaire non termin"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s : %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "les constantes virgule fixe sont une extension GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "prfixe 0b invalide pour une constante flottante"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "usage d'une constante hexadcimale constante la C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "suffixe %.*s invalide pour une constante flottante"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "le C traditionnel interdit le suffixe %.*s "
+
+#: expr.c:607
+#, fuzzy
+#| msgid "fixed-point constants are a GCC extension"
+msgid "suffix for double constant is a GCC extension"
+msgstr "les constantes virgule fixe sont une extension GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "suffixe %.*s invalide pour une constante flottante hexadcimale"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "les constantes flottantes dcimales sont une extension GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "suffixe %.*s invalide pour une constante entire"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C99 long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "usage d'une constante entire long long la C99"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "usage d'une constante entire long long la C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "les constantes imaginaires sont une extension GCC"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "constante entire trop grande pour tenir dans son type"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "cette constante entire est si grande qu'elle ne peut tre signe"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr " ) manquant aprs defined "
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "l'oprateur defined requiert un identificateur"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "( %s est un lment lexical alternatif pour %s en C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "cette utilisation de defined peut ne pas tre portable"
+
+#: expr.c:998
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "dbordement d'entier dans l'expresion pour le prprocesseur"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "constante flottante dans une expresion pour le prprocesseur"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "constante complexe dans une expresion pour le prprocesseur"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr " %s n'est pas dfini"
+
+#: expr.c:1070
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "assertions are a GCC extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:1073
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "assertions are a deprecated extension"
+msgstr "les constantes binaires sont une extension GCC"
+
+#: expr.c:1318
+#, fuzzy, c-format
+#| msgid "unbalanced stack in #if"
+msgid "unbalanced stack in %s"
+msgstr "pile non balance dans #if"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "oprateur impossible %u "
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr " ) manquante dans l'expresion"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr " ? n'est pas suivi de : "
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "dbordement d'entier dans l'expresion pour le prprocesseur"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr " ( manquante dans l'expresion"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "L'oprande gauche de %s change de signe lors de sa promotion"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "L'oprande droite de %s change de signe lors de sa promotion"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "le C traditionnel rejette le plus unaire"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "oprateur virgule dans l'oprande de #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "division par zro dans #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "rpertoire NUL dans find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "un ou plusieurs fichiers PCH ont t reprs, mais ils taient invalides"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "utiliser -Winvalid-pch pour plus d'informations"
+
+# FIXME
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s est un priphrique de blocs"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s est trop grand"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s est plus petit que prvu"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "aucun chemin d'inclusion dans lequel on pourrait reprer %s"
+
+# FIXME
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "De multiples balises pour les inclusions peuvent tre utiles pour:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t doit tre d'un type non sign"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "l'arithmtique du prprocesseur a une prcision maximale de %lu bits ; la cible require %lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "l'arithmtique de CPP doit tre au moins aussi prcise que le type int de la cible"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "sur la cible, char fait moins de 8 bits"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "sur la cible, wchar_t est plus petit que char "
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "sur la cible, int est plus petit que char "
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "les demi-entiers de CPP sont plus petit que les caractres de CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP sur cette machine ne peut grer les constantes larges de caractres de plus de %lu bits, mais la cible require %lu bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr " \\ et retour de chariot spars par un blanc"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr " \\ en fin de ligne la fin du fichier"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraphe ??%c converti en %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraphe ??%c ignor, utilisez -trigraphs pour le permettre"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr " /* l'intrieur d'un commentaire"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s dans la directive du prprocesseur"
+
+# I18N
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "caractre(s) nul(s) ignor(s)"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr " %.*s n'est pas dans la normalisation NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr " %.*s n'est pas dans la normalisation NFC"
+
+# FIXME
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "tentative d'utilisation d'un %s corrompu"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr " __VA_ARGS__ peut seulement appratre dans l'expansion des macros C99 nombre variable d'arguments"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr ""
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr ""
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr ""
+
+#: lex.c:1562
+#, fuzzy, c-format
+#| msgid "invalid character '%c' in #if"
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "caractre %c invalide dans #if"
+
+#: lex.c:1611 lex.c:1633
+#, fuzzy
+#| msgid "unterminated format string"
+msgid "unterminated raw string"
+msgstr "chane de format non termine"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "caractre(s) nul prserv(s) dans la chane"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "caractre %c de terminaison manquant"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Les commentaires la C++ ne sont pas permis en C89 ISO"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(ceci sera rapport une seule fois seulement par fichier d'entre)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "commentaire multi-lignes"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "l'lment lexical %s ne peut tre pel"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "la macro %s n'est pas utilise"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interne invalide %s "
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "ne peut dterminer la date de modification du fichier"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "ne peut dterminer la date et l'heure"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "Expansion de __COUNTER__ l'intrieur d'une directive avec -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "chane invalide, \\ final ignor"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "le collage de %s et de %s ne donne pas d'lment lexical de pr-traitement valide"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requiert que tous les arguments soient utiliss"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "macro %s requiert %u arguments, mais seulement %u ont t passs"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "la macro %s a reu %u arguments, mais elle n'en prend que %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "liste d'arguments non termine invoquant la macro %s "
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "la macro %s ressemblant une fonction doit utilise avec des arguments en C traditionnel"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr ""
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "paramtre de macro %s en double"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr " %s peut ne pas apparatre parmi les paramtres de macros"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "les paramtres de macro doivent tre spars par des virgules"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "nom de paramtre manquant"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "les macros anonymes nombre variable d'arguments ont t introduites avec le C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C ne permet pas les macros nommes nombre variable d'arguments"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr " ) manquante dans la liste des paramtres de macros"
+
+# FIXME
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr " ## ne peut apparatre chacune des fins de l'expansion de macros"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requiert un blanc aprs le nom de la macro"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "blanc d'espacement manquant aprs le nom de la macro"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr " # n'est pas suivi d'un paramtre de macro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr " %s redfini"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "ceci est la localisation d'une prcdente dfinition"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "l'argument macro %s serait chang en chaine en C traditionnel"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "type de hachage %d invalide dans cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "lors de l'criture de l'en-tte pr-compile"
+
+#: pch.c:619
+#, fuzzy, c-format
+#| msgid "%s: not used because `%s' is defined"
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: non utilis parce que %s est dfini"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: n'est pas utilis parce que %.*s n'est pas dfinie"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: n'est pas utilis parce que %.*s est dfini en tant %s et non pas %.*s "
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: non utilis parce que %s est dfini"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: non utilis parce que __COUNTER__ est invalide"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "lors de la lecture de l'en-tte pr-compile"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "rcursion dtecte lors de l'expansion de la macro %s "
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "erreur de syntaxe dans la liste de paramtres macro"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Le charactre %x n'est peut-tre pas dans la normalisation NFKC"
+
+#~ msgid "warning: "
+#~ msgstr "attention : "
+
+#~ msgid "internal error: "
+#~ msgstr "erreur interne : "
+
+#~ msgid "error: "
+#~ msgstr "erreur: "
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "trop de points dcimaux dans le nombre"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "chiffre %c invalide dans la constante binaire"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "chiffre %c invalide dans la constante en base 8"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "l'exposant n'a pas de chiffre"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "la contante hexadcimale flottante require un exposant"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "oprateur binaire manquant avant l'lment lexical %s "
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "l'lment lexical %s n'est pas valide dans les expressions pour le prprocesseur"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "expression manquante entre '(' et ')'"
+
+#~ msgid "#if with no expression"
+#~ msgstr "#if sans expression"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "l'oprateur %s n'a pas d'oprande droite"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "oprateur %s n'a pas d'oprande gauche"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " : n'est pas prcd de ? "
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "Dans le fichier inclus partir de %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " partir de %s:%u"
+
+#~ msgid "unknown escape sequence: '\\%03o'"
+#~ msgstr "squence d'chappement \\%03o inconnue"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "pas de retour chariot la fin du fichier"
+
+#~ msgid "`%s' attribute directive ignored"
+#~ msgstr "attribut de directive %s ignor"
+
+#~ msgid "wrong number of arguments specified for `%s' attribute"
+#~ msgstr "nombre erron d'arguments spcifi pour l'attribut %s "
+
+#~ msgid "`%s' attribute does not apply to types"
+#~ msgstr "l'attribut %s ne s'applique pas aux types"
+
+#~ msgid "`%s' attribute only applies to function types"
+#~ msgstr "l'attribut %s ne s'applique qu' des types de fonction"
+
+#~ msgid "`%s' attribute ignored"
+#~ msgstr "attribut %s ignor"
+
+#~ msgid "offset outside bounds of constant string"
+#~ msgstr "dcalage hors des limites d'une chane de constante"
+
+#~ msgid "second arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "second argument de __builtin_prefetch doit tre une constante"
+
+#~ msgid "invalid second arg to __builtin_prefetch; using zero"
+#~ msgstr "second argument invalide de __builtin_prefetch ; utilisation de zro"
+
+#~ msgid "third arg to `__builtin_prefetch' must be a constant"
+#~ msgstr "troisime argument de __builtin_prefetch doit tre une constante"
+
+#~ msgid "invalid third arg to __builtin_prefetch; using zero"
+#~ msgstr "troisime argument invalide de __builtin_prefetch ; utilisation de zro"
+
+#~ msgid "argument of `__builtin_args_info' must be constant"
+#~ msgstr "argument de __builtin_args_info doit tre une constante"
+
+#~ msgid "argument of `__builtin_args_info' out of range"
+#~ msgstr "argument de __builtin_args_info hors des limites"
+
+#~ msgid "missing argument in `__builtin_args_info'"
+#~ msgstr "argument manquant dans __builtin_args_info "
+
+#~ msgid "`va_start' used in function with fixed args"
+#~ msgstr " va_start utilis dans une fonction ayant des arguments fixes"
+
+#~ msgid "second parameter of `va_start' not last named argument"
+#~ msgstr "second paramtre de va_start n'est pas le dernier argument nomm"
+
+#~ msgid "`__builtin_next_arg' called without an argument"
+#~ msgstr " __builtin_next_arg appel sans argument"
+
+#~ msgid "too many arguments to function `va_start'"
+#~ msgstr "trop d'arguments pour la function va_start "
+
+#~ msgid "first argument to `va_arg' not of type `va_list'"
+#~ msgstr "premier argument de va_arg n'est pas de type va_list "
+
+#~ msgid "`%s' is promoted to `%s' when passed through `...'"
+#~ msgstr " %s a t promu %s lors du passage travers ... "
+
+#~ msgid "(so you should pass `%s' not `%s' to `va_arg')"
+#~ msgstr "(vous devriez donc passer %s et non %s va_arg )"
+
+#~ msgid "if this code is reached, the program will abort"
+#~ msgstr "si ce code est atteint, le programme s'arrtera"
+
+#~ msgid "invalid arg to `__builtin_frame_address'"
+#~ msgstr "argument de __builtin_frame_address invalide"
+
+#~ msgid "invalid arg to `__builtin_return_address'"
+#~ msgstr "argument de __builtin_return_address invalide"
+
+#~ msgid "unsupported arg to `__builtin_frame_address'"
+#~ msgstr "argument de __builtin_frame_address non support"
+
+#~ msgid "unsupported arg to `__builtin_return_address'"
+#~ msgstr "argument de __builtin_return_address non support"
+
+#~ msgid "second arg to `__builtin_expect' must be a constant"
+#~ msgstr "le second argument de __builtin_expect doit tre une constante"
+
+#~ msgid "__builtin_longjmp second argument must be 1"
+#~ msgstr "le second argument de __builtin_longjmp doit tre 1"
+
+#~ msgid "built-in function `%s' not currently supported"
+#~ msgstr "fonction interne %s n'est pas actuellement supporte"
+
+#~ msgid "target format does not support infinity"
+#~ msgstr "le format cible ne supporte pas l'infini"
+
+#~ msgid "%Hsuggest explicit braces to avoid ambiguous `else'"
+#~ msgstr "%Hon vous suggre des accolades explicitement pour viter des else ambigus"
+
+#~ msgid "%J'%D' is not defined outside of function scope"
+#~ msgstr "%J %D n'est pas dfini l'extrieur de la porte de la fonction"
+
+#~ msgid "string length `%d' is greater than the length `%d' ISO C%d compilers are required to support"
+#~ msgstr "longueur de la chane %d plus grande que la longueur %d que les compilateurs ISO C%d doivent supporter"
+
+#~ msgid "overflow in constant expression"
+#~ msgstr "dbordement dans l'expression de la constante"
+
+#~ msgid "integer overflow in expression"
+#~ msgstr "dbordement d'entier dans l'expression"
+
+#~ msgid "floating point overflow in expression"
+#~ msgstr "dbordement d'un nombre en virgule flottante dans l'expression"
+
+#~ msgid "vector overflow in expression"
+#~ msgstr "dbordement du vecteur dans l'expression"
+
+#~ msgid "large integer implicitly truncated to unsigned type"
+#~ msgstr "grand entier implicitement tronqu pour un type non sign"
+
+#~ msgid "negative integer implicitly converted to unsigned type"
+#~ msgstr "entier ngatif implicitement converti en un type non sign"
+
+#~ msgid "overflow in implicit constant conversion"
+#~ msgstr "dbordement dans la conversion implicte de la constante"
+
+#~ msgid "operation on `%s' may be undefined"
+#~ msgstr "l'opration portant sur %s est peut tre indfinie"
+
+#~ msgid "expression statement has incomplete type"
+#~ msgstr "la dclaration de l'expression a un type incomplet"
+
+#~ msgid "case label does not reduce to an integer constant"
+#~ msgstr "l'tiquette du case ne se rduit pas en une constante entire"
+
+#~ msgid "invalid truth-value expression"
+#~ msgstr "expression valeur de vrit invalide"
+
+#~ msgid "invalid operands to binary %s"
+#~ msgstr "oprandes invalides pour le binaire %s"
+
+#~ msgid "comparison is always false due to limited range of data type"
+#~ msgstr "comparaison est toujours fausse en raison d'une gamme limite de type de donnes"
+
+#~ msgid "comparison is always true due to limited range of data type"
+#~ msgstr "comparaison est toujours vraie en raison d'une gamme limite de type de donnes"
+
+#~ msgid "comparison of unsigned expression >= 0 is always true"
+#~ msgstr "comparaison d'une expression non signe >=0 est toujours vraie"
+
+#~ msgid "comparison of unsigned expression < 0 is always false"
+#~ msgstr "comparaison d'une expression non signe < 0 est toujours fausse"
+
+#~ msgid "pointer of type `void *' used in arithmetic"
+#~ msgstr "usage en arithmtique d'un pointeur de type void * "
+
+#~ msgid "pointer to a function used in arithmetic"
+#~ msgstr "usage en arithmtique d'un pointeur vers une fonction"
+
+#~ msgid "pointer to member function used in arithmetic"
+#~ msgstr "usage en arithmtique d'un pointeur vers une fonction membre"
+
+#~ msgid "struct type value used where scalar is required"
+#~ msgstr "valeur de type struct utilis l o un scalaire est attendu"
+
+#~ msgid "union type value used where scalar is required"
+#~ msgstr "valeur de type union utilis l o un scalaire est attendu"
+
+#~ msgid "array type value used where scalar is required"
+#~ msgstr "valeur de type array utilis l o un scalaire est attendu"
+
+#~ msgid "the address of `%D', will always evaluate as `true'"
+#~ msgstr "l'adresse de %D sera toujours value comme tant true "
+
+#~ msgid "suggest parentheses around assignment used as truth value"
+#~ msgstr "parenthses suggres autour de l'affectation utilise comme valeur de vrit"
+
+#~ msgid "invalid use of `restrict'"
+#~ msgstr "usage de restrict invalide"
+
+#~ msgid "invalid application of `sizeof' to a function type"
+#~ msgstr "application de sizeof sur un type de fonction invalide"
+
+#~ msgid "invalid application of `%s' to a void type"
+#~ msgstr "application invalide de %s sur un type void"
+
+#~ msgid "invalid application of `%s' to an incomplete type"
+#~ msgstr "application invalide de %s sur un type incomplet"
+
+#~ msgid "`__alignof' applied to a bit-field"
+#~ msgstr " __alignof appliqu sur un champ de bits"
+
+#~ msgid "cannot disable built-in function `%s'"
+#~ msgstr "ne peut dsactiver la fonction interne %s "
+
+#~ msgid "too few arguments to function `%s'"
+#~ msgstr "pas assez d'arguments pour la fonction %s "
+
+#~ msgid "too many arguments to function `%s'"
+#~ msgstr "trop d'arguments pour la fonction %s "
+
+#~ msgid "non-floating-point argument to function `%s'"
+#~ msgstr "argument pour la fonction %s n'tant pas en virgule flottante"
+
+#~ msgid "pointers are not permitted as case values"
+#~ msgstr "les pointeurs ne sont pas permis comme valeurs de case "
+
+#~ msgid "range expressions in switch statements are non-standard"
+#~ msgstr "l'tendue des expressions dans les dclarations switch ne sont pas standard"
+
+#~ msgid "empty range specified"
+#~ msgstr "intervalle vide spcifi"
+
+#~ msgid "duplicate (or overlapping) case value"
+#~ msgstr "valeur du case dupplique (ou en chevauchant une autre)"
+
+#~ msgid "%Jthis is the first entry overlapping that value"
+#~ msgstr "%Jest la premire entre chevauchant cette valeur"
+
+#~ msgid "duplicate case value"
+#~ msgstr "valeur du case dupplique"
+
+#~ msgid "%Jpreviously used here"
+#~ msgstr "%Jprcdemment utilis ici"
+
+#~ msgid "multiple default labels in one switch"
+#~ msgstr "plusieurs tiquettes par dfaut dans un switch "
+
+#~ msgid "%Jthis is the first default label"
+#~ msgstr "%Jest la premire tiquette par dfaut"
+
+#~ msgid "taking the address of a label is non-standard"
+#~ msgstr "prendre l'adresse d'une tiquette n'est pas standard"
+
+#~ msgid "%Hignoring return value of `%D', declared with attribute warn_unused_result"
+#~ msgstr "%Hvaleur retourner %D ignore, dclare avec l'attribut warn_unused_result"
+
+#~ msgid "%Hignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "%Hvaleur retourner ignore de la fonction dclare avec l'attribut warn_unused_result"
+
+#~ msgid "unknown machine mode `%s'"
+#~ msgstr "mode machine %s inconnu"
+
+#~ msgid "no data type for mode `%s'"
+#~ msgstr "aucun type de donnes pour le mode %s "
+
+#~ msgid "invalid pointer mode `%s'"
+#~ msgstr "mode pointeur invalide %s "
+
+#~ msgid "unable to emulate '%s'"
+#~ msgstr "impossible d'muler %s "
+
+#~ msgid "%Jsection attribute cannot be specified for local variables"
+#~ msgstr "%Jl'attribut de section ne peut tre spcifi pour des variables locales"
+
+#~ msgid "%Jsection of '%D' conflicts with previous declaration"
+#~ msgstr "%Jsection de %D en conflit avec une dclaration prcdente"
+
+#~ msgid "%Jsection attribute not allowed for '%D'"
+#~ msgstr "%Jattribut de section n'est pas permis pour %D "
+
+#~ msgid "%Jsection attributes are not supported for this target"
+#~ msgstr "%Jattributs de section ne sont pas supports pour la cible"
+
+#~ msgid "requested alignment is not a constant"
+#~ msgstr "l'alignement demand n'est pas une constante"
+
+#~ msgid "requested alignment is not a power of 2"
+#~ msgstr "l'alignement demand n'est pas une puissance de 2"
+
+#~ msgid "requested alignment is too large"
+#~ msgstr "l'alignement demand est trop grand"
+
+#~ msgid "%Jalignment may not be specified for '%D'"
+#~ msgstr "%Jl'alignement ne peut pas tre spcifi pour %D "
+
+#~ msgid "%J'%D' defined both normally and as an alias"
+#~ msgstr "%J'%D dfini la fois normalement et en tant qu'alias"
+
+#~ msgid "alias arg not a string"
+#~ msgstr "l'argument d'alias n'est pas une chane"
+
+#~ msgid "visibility arg not a string"
+#~ msgstr "l'argument de visibilit n'est pas une chane"
+
+#~ msgid "visibility arg must be one of \"default\", \"hidden\", \"protected\" or \"internal\""
+#~ msgstr "l'argument de visibilit doit tre l'un de default (par dfaut), hidden (masqu), protected (protg) ou internal (interne)"
+
+#~ msgid "tls_model arg not a string"
+#~ msgstr "l'argument de tls_model n'est pas une chane"
+
+#~ msgid "tls_model arg must be one of \"local-exec\", \"initial-exec\", \"local-dynamic\" or \"global-dynamic\""
+#~ msgstr "l'argument de tls_model doit tre l'un de local-exec , initial-exec , local-dynamic or global-dynamic "
+
+#~ msgid "%J'%E' attribute applies only to functions"
+#~ msgstr "%J'%E l'attribut ne s'applique seulement qu' des fonctions"
+
+#~ msgid "%Jcan't set '%E' attribute after definition"
+#~ msgstr "%Jne peut initialiser l'attribut %E aprs dfinition"
+
+#~ msgid "`%s' attribute ignored for `%s'"
+#~ msgstr "attribut %s ignor pour %s "
+
+#~ msgid "invalid vector type for attribute `%s'"
+#~ msgstr "type de vecteur invalide pour l'attribut %s "
+
+#~ msgid "no vector mode with the size and type specified could be found"
+#~ msgstr "aucun mode vecteur avec la taille et le type spcifi n'a t trouv"
+
+#~ msgid "nonnull attribute without arguments on a non-prototype"
+#~ msgstr "attribut non nul sans argument sur un non-prototype"
+
+#~ msgid "nonnull argument has invalid operand number (arg %lu)"
+#~ msgstr "un argument non nul a un nombre d'oprande invalide (argument %lu)"
+
+#~ msgid "nonnull argument with out-of-range operand number (arg %lu, operand %lu)"
+#~ msgstr "un argument non nul a un nombre d'oprande hors des bornes (arg %lu, oprande %lu)"
+
+#~ msgid "nonnull argument references non-pointer operand (arg %lu, operand %lu)"
+#~ msgstr "un argument non nul rfrence une oprande qui n'est pas un pointeur (arg %lu, oprande %lu)"
+
+#~ msgid "null argument where non-null required (arg %lu)"
+#~ msgstr "argument nul l o un non-nul est requis (arg %lu)"
+
+#~ msgid "cleanup arg not an identifier"
+#~ msgstr "argument de nettoyage n'est pas un identificateur"
+
+#~ msgid "cleanup arg not a function"
+#~ msgstr "argument de nettoyage n'est pas une fonction"
+
+#~ msgid "%s at end of input"
+#~ msgstr "%s la fin de l'entre"
+
+#~ msgid "%s before %s'%c'"
+#~ msgstr "%s avant %s %c "
+
+#~ msgid "%s before %s'\\x%x'"
+#~ msgstr "%s avant %s'\\x%x'"
+
+#~ msgid "%s before string constant"
+#~ msgstr "%s avant une chane constante"
+
+#~ msgid "%s before numeric constant"
+#~ msgstr "%s avant une constante numrique"
+
+#~ msgid "%s before \"%s\""
+#~ msgstr "%s avant %s "
+
+#~ msgid "%s before '%s' token"
+#~ msgstr "%s avant un lment lexical %s "
+
+#~ msgid "void value not ignored as it ought to be"
+#~ msgstr "valeur void n'a pas t ignore comme elle aurait d l'tre"
+
+#~ msgid "conversion to non-scalar type requested"
+#~ msgstr "conversion vers un type non scalaire demande"
+
+#~ msgid "%Jarray '%D' assumed to have one element"
+#~ msgstr "%Jon assume que le tableau %D n'a qu'un seul lment"
+
+#~ msgid "%Jlabel `%D' used but not defined"
+#~ msgstr "%Jtiquette %D utilise mais non dfinie"
+
+#~ msgid "%Jlabel `%D' defined but not used"
+#~ msgstr "%Jtiquette %D dfinie mais non utilise"
+
+#~ msgid "%Jlabel `%D' declared but not defined"
+#~ msgstr "%Jtiquette %D utilise mais non dfinie"
+
+#~ msgid "%Junused variable `%D'"
+#~ msgstr "%Jvariable inutilise %D "
+
+#~ msgid "a parameter list with an ellipsis can't match an empty parameter name list declaration"
+#~ msgstr "un paramtre de la liste avec une ellipse ne peut concorder une dclaration vide de liste de noms de paramtres"
+
+#~ msgid "an argument type that has a default promotion can't match an empty parameter name list declaration"
+#~ msgstr "un type d'argument ayant une promotion par dfaut ne peut concorder avec une dclaration vide de noms de paramtres"
+
+#~ msgid "%Jprototype for '%D' declares more arguments than previous old-style definition"
+#~ msgstr "%Jprototype pour %D dclare plus d'arguments que la dfinition prcdente de style ancien"
+
+#~ msgid "%Jprototype for '%D' declares fewer arguments than previous old-style definition"
+#~ msgstr "%Jprototype pour %D dclare moins d'arguments que la dfinition prcdente de style ancien"
+
+#~ msgid "%Jprototype for '%D' declares arg %d with incompatible type"
+#~ msgstr "%Jprototype pour %D dclare l'arguments %d avec un type incompatible"
+
+#~ msgid "%Jprototype for '%D' follows non-prototype definition"
+#~ msgstr "%Jprototype pour %D suit la dfinition d'un non prototype"
+
+#~ msgid "%Jprevious definition of '%D' was here"
+#~ msgstr "%Jdfinition prcdente de %D tait ici"
+
+#~ msgid "%Jprevious implicit declaration of '%D' was here"
+#~ msgstr "%Jdclaration prcdente implicite de %D tait ici"
+
+#~ msgid "%Jprevious declaration of '%D' was here"
+#~ msgstr "%Jdclaration prcdente de %D tait ici"
+
+#~ msgid "%J'%D' redeclared as different kind of symbol"
+#~ msgstr "%J %D redclar comme une sorte diffrente de symbole"
+
+#~ msgid "%Jbuilt-in function '%D' declared as non-function"
+#~ msgstr "%Jfonction interne %D n'est pas dclare comme une fonction"
+
+#~ msgid "%Jshadowing built-in function '%D'"
+#~ msgstr "%Jmasquage de la fonction interne %D "
+
+#~ msgid "%Jconflicting types for built-in function '%D'"
+#~ msgstr "%Jtypes conflictuels pour la fonction interne %D "
+
+#~ msgid "%Jconflicting types for '%D'"
+#~ msgstr "%Jtypes conflictuels pour %D "
+
+#~ msgid "%Jredefinition of typedef '%D'"
+#~ msgstr "%Jredfinition de %D "
+
+#~ msgid "%Jredefinition of '%D'"
+#~ msgstr "%Jredfinition de %D "
+
+#~ msgid "%Jstatic declaration of '%D' follows non-static declaration"
+#~ msgstr "%Jdclaration statique de %D suit une dclaration non statique"
+
+#~ msgid "%Jnon-static declaration of '%D' follows static declaration"
+#~ msgstr "%Jdclaration non statique de %D suite une dclaration statique"
+
+#~ msgid "%Jthread-local declaration of '%D' follows non-thread-local declaration"
+#~ msgstr "%Jdclaration de thread local de %D suit une dclaration non thread-local"
+
+#~ msgid "%Jnon-thread-local declaration of '%D' follows thread-local declaration"
+#~ msgstr "%Jdclaration non thread local de %D suit une dclaration de thread local"
+
+#~ msgid "%Jextern declaration of '%D' follows declaration with no linkage"
+#~ msgstr "%Jdclaration externe de %D suit une dclaraion sans lien"
+
+#~ msgid "%Jdeclaration of '%D' with no linkage follows extern declaration"
+#~ msgstr "%Jdclaration de %D sasn lien suivant une dclaration externe"
+
+#~ msgid "%Jredeclaration of '%D' with no linkage"
+#~ msgstr "%Jredclaration de %D sans lien"
+
+#~ msgid "%Jredeclaration of '%D' with different visibility (old visibility preserved)"
+#~ msgstr "%Jredclaration de %D avec une visibilit diffrente (visibilit prcdente conserve)"
+
+#~ msgid "%Jinline declaration of '%D' follows declaration with attribute noinline"
+#~ msgstr "%Jdclaration enligne de %D suit la dclaration avec un attribut non enligne"
+
+#~ msgid "%Jdeclaration of '%D' with attribute noinline follows inline declaration "
+#~ msgstr "%Jclaration de %D avec un attribut non enligne suit une dclaration enligne"
+
+#~ msgid "%J'%D' declared inline after being called"
+#~ msgstr "%J %D dclar enligne aprs avoir t appel"
+
+#~ msgid "%J'%D' declared inline after its definition"
+#~ msgstr "%J %D dclar enligne aprs sa dfinition"
+
+#~ msgid "%Jredefinition of parameter '%D'"
+#~ msgstr "%Jredfinition du paramtre %D "
+
+#~ msgid "%Jvolatile declaration of '%D' follows non-volatile declaration"
+#~ msgstr "%Jdclaration volatile de %D suit une dclaration non volatile"
+
+#~ msgid "%Jnon-volatile declaration of '%D' follows volatile declaration"
+#~ msgstr "%Jdclaration non volatile de %D suit une dclaration volatile"
+
+#~ msgid "%Jconst declaration of '%D' follows non-const declaration"
+#~ msgstr "%Jdclaration de constante de %D suit une dclaration de non constante"
+
+#~ msgid "%Jnon-const declaration of '%D' follows const declaration"
+#~ msgstr "%Jdclaration de non constante de %D suit une dclaration de constante"
+
+#~ msgid "%Jredundant redeclaration of '%D'"
+#~ msgstr "%Jdclaration redondante de %D "
+
+#~ msgid "%Jdeclaration of '%D' shadows a parameter"
+#~ msgstr "%Jdclaration de %D masque un paramtre"
+
+#~ msgid "%Jdeclaration of '%D' shadows a global declaration"
+#~ msgstr "%Jdclaration de %D masque une dclaration globale"
+
+#~ msgid "%Jdeclaration of '%D' shadows a previous local"
+#~ msgstr "%Jdclaration de %D masque la dclaration d'un local prcdent"
+
+#~ msgid "%Jshadowed declaration is here"
+#~ msgstr "%Jdclaration est masque ici"
+
+#~ msgid "nested extern declaration of `%s'"
+#~ msgstr "dclaration de %s externe imbrique"
+
+#~ msgid "%Jprevious declaration of '%D'"
+#~ msgstr "%Jdclaration prcdente de %D "
+
+#~ msgid "implicit declaration of function `%s'"
+#~ msgstr "dclaration implicite de la fonction %s "
+
+#~ msgid "`%s' undeclared here (not in a function)"
+#~ msgstr " %s non dclar ici (hors de toute fonction)"
+
+#~ msgid "`%s' undeclared (first use in this function)"
+#~ msgstr " %s non dclar (premire utilisation dans cette fonction)"
+
+#~ msgid "(Each undeclared identifier is reported only once"
+#~ msgstr "(Chaque identificateur non dclar est rapport une seule fois"
+
+#~ msgid "for each function it appears in.)"
+#~ msgstr "pour chaque fonction dans laquelle il apparat.)"
+
+#~ msgid "label %s referenced outside of any function"
+#~ msgstr "tiquette %s rfrence l'extrieur de toute fonction"
+
+#~ msgid "duplicate label declaration `%s'"
+#~ msgstr "dclaration de l'tiquette %s en double"
+
+#~ msgid "%Jthis is a previous declaration"
+#~ msgstr "%Jest la dclaration prcdente"
+
+#~ msgid "%Hduplicate label `%D'"
+#~ msgstr "%Htiquette %D apparat en double"
+
+#~ msgid "%J`%D' previously defined here"
+#~ msgstr "%J %D prcdemment dfini ici"
+
+#~ msgid "%J`%D' previously declared here"
+#~ msgstr "%J %D prcdemment dclar ici"
+
+#~ msgid "%Htraditional C lacks a separate namespace for labels, identifier `%s' conflicts"
+#~ msgstr "%HC traditionnel manque d'un espace nom spar pour les tiquettes, identificateur %D est en conflit"
+
+#~ msgid "%H`%s' defined as wrong kind of tag"
+#~ msgstr "%H %s dfini incorrectement comme une mauvais sorte d'tiquette"
+
+#~ msgid "unnamed struct/union that defines no instances"
+#~ msgstr "struct/union sans nom ne dfinissant aucune instance"
+
+#~ msgid "useless keyword or type name in empty declaration"
+#~ msgstr "mot cl ou nom de type inutile dans une dclaration vide"
+
+#~ msgid "two types specified in one empty declaration"
+#~ msgstr "deux types spcifis dans une dclaration vide"
+
+#~ msgid "empty declaration"
+#~ msgstr "dclaration vide"
+
+#~ msgid "ISO C90 does not support `static' or type qualifiers in parameter array declarators"
+#~ msgstr "ISO C90 ne supporte pas static ou les qualificateurs de type dans les dclarateurs de tableau de paramtres"
+
+#~ msgid "ISO C90 does not support `[*]' array declarators"
+#~ msgstr "ISO C90 ne supporte pas [*] dans les dclarateurs de tableau"
+
+#~ msgid "GCC does not yet properly implement `[*]' array declarators"
+#~ msgstr "GCC n'implmente pas encore correctement les dclarateurs de tableau [*] "
+
+#~ msgid "static or type qualifiers in abstract declarator"
+#~ msgstr "static ou qualificateurs de type dans un dclarateur abstrait"
+
+#~ msgid "%J'%D' is usually a function"
+#~ msgstr "%J %D est habituellement une fonction"
+
+#~ msgid "typedef `%s' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef %s est initialis (utilisez __typeof__ la place)"
+
+#~ msgid "function `%s' is initialized like a variable"
+#~ msgstr "la fonction %s est initialise comme une variable"
+
+#~ msgid "parameter `%s' is initialized"
+#~ msgstr "le paramtre %s est initialis"
+
+#~ msgid "variable-sized object may not be initialized"
+#~ msgstr "un objet de taille variable peut ne pas tre initialis"
+
+#~ msgid "variable `%s' has initializer but incomplete type"
+#~ msgstr "la variable %s est initialise alors qu'elle est de type incomplet"
+
+#~ msgid "elements of array `%s' have incomplete type"
+#~ msgstr "les lments du tableau %s ont des types incomplets"
+
+#~ msgid "%Jinline function '%D' given attribute noinline"
+#~ msgstr "%J fonction enligne %D a reu l'attribut non enligne"
+
+#~ msgid "%Jinitializer fails to determine size of '%D'"
+#~ msgstr "%Jinitialisateur a chou dterminer la taille de %D "
+
+#~ msgid "%Jarray size missing in '%D'"
+#~ msgstr "%Jtaille du tableau est manquante dans %D "
+
+#~ msgid "%Jzero or negative size array '%D'"
+#~ msgstr "%Jtableau %D de taille zro ou ngative"
+
+#~ msgid "%Jstorage size of '%D' isn't known"
+#~ msgstr "%Jtaille de stockage de %D n'est pas connue"
+
+#~ msgid "%Jstorage size of '%D' isn't constant"
+#~ msgstr "%Jtaille de stockage de %D n'est pas une constante"
+
+#~ msgid "%Jignoring asm-specifier for non-static local variable '%D'"
+#~ msgstr "%Jspcificateur asm ignor pour la variable locale non statique %D "
+
+#~ msgid "ISO C forbids forward parameter declarations"
+#~ msgstr "ISO C interdit la dclaration anticipe de paramtres"
+
+#~ msgid "<anonymous>"
+#~ msgstr "<anonymous>"
+
+#~ msgid "bit-field `%s' width not an integer constant"
+#~ msgstr "la largeur du champ de bits %s n'est pas une constante entire"
+
+#~ msgid "negative width in bit-field `%s'"
+#~ msgstr "largeur ngative du champ de bits %s "
+
+#~ msgid "zero width for bit-field `%s'"
+#~ msgstr "largeur nulle pour le champ de bits %s "
+
+#~ msgid "bit-field `%s' has invalid type"
+#~ msgstr "le champ de bits %s a un type invalide"
+
+#~ msgid "type of bit-field `%s' is a GCC extension"
+#~ msgstr "le type de champ de bit %s est une extension GCC"
+
+#~ msgid "width of `%s' exceeds its type"
+#~ msgstr "la largeur de %s excde son type"
+
+#~ msgid "`%s' is narrower than values of its type"
+#~ msgstr " %s est plus troit que les valeurs de son type"
+
+#~ msgid "`long long long' is too long for GCC"
+#~ msgstr " long long long est trop long pour GCC"
+
+#~ msgid "ISO C90 does not support `long long'"
+#~ msgstr "ISO C90 ne permet pas long long "
+
+#~ msgid "duplicate `%s'"
+#~ msgstr " %s apparat en double"
+
+#~ msgid "`__thread' before `extern'"
+#~ msgstr " __thread avant extern "
+
+#~ msgid "`__thread' before `static'"
+#~ msgstr " __thread avant static "
+
+#~ msgid "two or more data types in declaration of `%s'"
+#~ msgstr "deux types de donnes ou plus dans la dclaration de %s "
+
+#~ msgid "`%s' fails to be a typedef or built in type"
+#~ msgstr " %s n'a pu devenir un typedef ou un type construit"
+
+#~ msgid "type defaults to `int' in declaration of `%s'"
+#~ msgstr "dans la dclaration de %s , utilisation de int par dfaut pour le type"
+
+#~ msgid "both long and short specified for `%s'"
+#~ msgstr " long et short spcifis la fois pour %s "
+
+#~ msgid "long or short specified with char for `%s'"
+#~ msgstr " long ou short spcifi avec char pour %s "
+
+#~ msgid "long or short specified with floating type for `%s'"
+#~ msgstr " long ou short spcifi avec un type flottant pour %s "
+
+#~ msgid "the only valid combination is `long double'"
+#~ msgstr "la seule combinaison valide est long double "
+
+#~ msgid "both signed and unsigned specified for `%s'"
+#~ msgstr " %s est la fois sign et non sign"
+
+#~ msgid "long, short, signed or unsigned invalid for `%s'"
+#~ msgstr " long , short , signed ou unsigned invalide pour %s "
+
+#~ msgid "long, short, signed or unsigned used invalidly for `%s'"
+#~ msgstr " long , short , signed ou unsigned utilis incorrectement pour %s "
+
+#~ msgid "complex invalid for `%s'"
+#~ msgstr " complex invalide pour %s "
+
+#~ msgid "ISO C90 does not support complex types"
+#~ msgstr "ISO C90 ne permet pas les types complex "
+
+#~ msgid "ISO C does not support plain `complex' meaning `double complex'"
+#~ msgstr "ISO C ne permet pas d'utiliser complex la place de double complex "
+
+#~ msgid "ISO C does not support complex integer types"
+#~ msgstr "ISO C interdit le type d'entiers complexes"
+
+#~ msgid "duplicate `const'"
+#~ msgstr " const apparat en double"
+
+#~ msgid "duplicate `restrict'"
+#~ msgstr " restrict apparat en double"
+
+#~ msgid "duplicate `volatile'"
+#~ msgstr " volatile apparat en double"
+
+#~ msgid "multiple storage classes in declaration of `%s'"
+#~ msgstr "multiples classes de stockage dans la dclaration de %s "
+
+#~ msgid "function definition declared `auto'"
+#~ msgstr "dfinition de fonction dclar auto "
+
+#~ msgid "function definition declared `register'"
+#~ msgstr "dfinition de fonction dclare register "
+
+#~ msgid "function definition declared `typedef'"
+#~ msgstr "dfinition de fonction dclare typedef "
+
+#~ msgid "function definition declared `__thread'"
+#~ msgstr "dfinition de fonction dclare __thread "
+
+#~ msgid "storage class specified for structure field `%s'"
+#~ msgstr "classe de stockage spcifie pour le champ de structure %s "
+
+#~ msgid "storage class specified for parameter `%s'"
+#~ msgstr "classe de stockage spcifie pour le paramtre %s "
+
+#~ msgid "storage class specified for typename"
+#~ msgstr "classe de stockage spcifi pour un typename"
+
+#~ msgid "`%s' initialized and declared `extern'"
+#~ msgstr " %s initialis et dclar extern "
+
+#~ msgid "`%s' has both `extern' and initializer"
+#~ msgstr " %s a les deux extern et initialisateur"
+
+#~ msgid "file-scope declaration of `%s' specifies `auto'"
+#~ msgstr "la dclaration de l'tendue de fichier %s spcifie auto "
+
+#~ msgid "nested function `%s' declared `extern'"
+#~ msgstr "fonction imbrique %s dclare extern "
+
+#~ msgid "function-scope `%s' implicitly auto and declared `__thread'"
+#~ msgstr " %s dans le champ de la fonction est implicitement dclar auto, et dclar __thread "
+
+#~ msgid "static or type qualifiers in non-parameter array declarator"
+#~ msgstr "static ou qualificateurs de type dans un dclarateur de tableau n'tant pas un paramtre"
+
+#~ msgid "declaration of `%s' as array of voids"
+#~ msgstr "dclaration de %s comme un tableau de void "
+
+#~ msgid "declaration of `%s' as array of functions"
+#~ msgstr "dclaration de %s comme un tableau de fonctions"
+
+#~ msgid "invalid use of structure with flexible array member"
+#~ msgstr "utilisation invalide d'une structure ayant un membre flexible"
+
+#~ msgid "size of array `%s' has non-integer type"
+#~ msgstr "la taille du tableau %s n'est pas de type entier"
+
+#~ msgid "ISO C forbids zero-size array `%s'"
+#~ msgstr "ISO C interdit le tableau de taille zro %s "
+
+#~ msgid "size of array `%s' is negative"
+#~ msgstr "la taille du tableau %s est ngative"
+
+#~ msgid "ISO C90 forbids array `%s' whose size can't be evaluated"
+#~ msgstr "ISO C90 interdit le tableau %s dont la taille ne peut tre value"
+
+#~ msgid "ISO C90 forbids variable-size array `%s'"
+#~ msgstr "ISO C90 interdit le tableau %s de taille variable"
+
+#~ msgid "size of array `%s' is too large"
+#~ msgstr "la taille du tableau %s est trop grande"
+
+#~ msgid "ISO C90 does not support flexible array members"
+#~ msgstr "ISO C90 interdit les tableaux ayant des membres flexibles"
+
+#~ msgid "array type has incomplete element type"
+#~ msgstr "les lments du tableau sont de type incomplet"
+
+#~ msgid "`%s' declared as function returning a function"
+#~ msgstr " %s dclar comme une fonction retournant une fonction"
+
+#~ msgid "`%s' declared as function returning an array"
+#~ msgstr " %s dclar comme une fonction retournant un tableau"
+
+#~ msgid "ISO C forbids qualified void function return type"
+#~ msgstr "ISO C interdit d'utiliser un void qualifi en valeur retourner par la fonction"
+
+#~ msgid "type qualifiers ignored on function return type"
+#~ msgstr "qualificateurs de type ignors pour le type retourner par la fonction"
+
+#~ msgid "ISO C forbids qualified function types"
+#~ msgstr "ISO C interdit les types de fonction qualifis"
+
+#~ msgid "invalid type modifier within pointer declarator"
+#~ msgstr "modificateur de type invalide dans la dclaration de pointeur"
+
+#~ msgid "ISO C forbids const or volatile function types"
+#~ msgstr "ISO C interdit les fonction de type volatile ou constante"
+
+#~ msgid "variable or field `%s' declared void"
+#~ msgstr "variable ou champ %s dclar void "
+
+#~ msgid "attributes in parameter array declarator ignored"
+#~ msgstr "les attributs dans un dclarateur de tableau de paramtres sont ignors"
+
+#~ msgid "invalid type modifier within array declarator"
+#~ msgstr "modificateur invalide de type l'intrieur d'un dclarateur de tableau"
+
+#~ msgid "field `%s' declared as a function"
+#~ msgstr "champ %s dclar comme une fonction"
+
+#~ msgid "field `%s' has incomplete type"
+#~ msgstr "champ %s est de type incomplet"
+
+#~ msgid "invalid storage class for function `%s'"
+#~ msgstr "classe de stockage invalide pour la fonction %s "
+
+#~ msgid "`noreturn' function returns non-void value"
+#~ msgstr "fonction marque noreturn retourne une valeur n'tant pas de type void "
+
+#~ msgid "cannot inline function `main'"
+#~ msgstr "ne peut transformer main en fonction enligne"
+
+#~ msgid "variable previously declared `static' redeclared `extern'"
+#~ msgstr "variable prcdemment dclare static redclare extern "
+
+#~ msgid "%Jvariable '%D' declared `inline'"
+#~ msgstr "%Jvariable %D dclare inline "
+
+#~ msgid "thread-local storage not supported for this target"
+#~ msgstr "cette cible ne permet pas le stockage en local au thread"
+
+#~ msgid "function declaration isn't a prototype"
+#~ msgstr "la dclaration de fonction n'est pas un prototype valide"
+
+#~ msgid "parameter names (without types) in function declaration"
+#~ msgstr "noms de paramtres (sans type) dans la dclaration de fonction"
+
+#~ msgid "parameter `%s' has incomplete type"
+#~ msgstr "le paramtre %s a un type incomplet"
+
+#~ msgid "parameter has incomplete type"
+#~ msgstr "le paramtre a un type incomplet"
+
+#~ msgid "\"void\" as only parameter may not be qualified"
+#~ msgstr "\"void\" comme seul paramtre ne peut tre qualifi"
+
+#~ msgid "\"void\" must be the only parameter"
+#~ msgstr "\"void\" doit tre le seul paramtre"
+
+#~ msgid "%Jparameter \"%D\" has just a forward declaration"
+#~ msgstr "%Jparamtre %D n'a qu'une dclaration anticipe"
+
+#~ msgid "\"%s %s\" declared inside parameter list"
+#~ msgstr "\"%s %s\" dclare l'intrieur de la liste de paramtres"
+
+#~ msgid "anonymous %s declared inside parameter list"
+#~ msgstr "structure anonyme %s dclare l'intrieur de la liste des paramtres"
+
+#~ msgid "its scope is only this definition or declaration, which is probably not what you want"
+#~ msgstr "visible uniquement depuis cette dfinition ou dclaration, ce qui n'est probablement pas ce que vous dsirez"
+
+#~ msgid "redefinition of `union %s'"
+#~ msgstr "redfinition de union %s "
+
+#~ msgid "redefinition of `struct %s'"
+#~ msgstr "redfinition de struct %s "
+
+#~ msgid "declaration does not declare anything"
+#~ msgstr "dclaration ne dclarant rien du tout"
+
+#~ msgid "%Jduplicate member '%D'"
+#~ msgstr "%Jmembre %D est double"
+
+#~ msgid "%s defined inside parms"
+#~ msgstr "%s dfini l'intrieur des paramtres"
+
+#~ msgid "union"
+#~ msgstr "union"
+
+#~ msgid "structure"
+#~ msgstr "structure"
+
+#~ msgid "%s has no %s"
+#~ msgstr "%s n'a pas de %s"
+
+#~ msgid "struct"
+#~ msgstr "struct"
+
+#~ msgid "named members"
+#~ msgstr "membres nomms"
+
+#~ msgid "members"
+#~ msgstr "membres"
+
+#~ msgid "nested redefinition of `%s'"
+#~ msgstr "redfinition imbrique de %s "
+
+#~ msgid "%Jflexible array member in union"
+#~ msgstr "%Jmembre flexible de tableau dans l'union"
+
+#~ msgid "%Jflexible array member not at end of struct"
+#~ msgstr "%Jle membre flexible de tableau n'est pas la fin de la structure"
+
+#~ msgid "%Jflexible array member in otherwise empty struct"
+#~ msgstr "%Jmembre flexible de tableau dans une structure vide par ailleurs"
+
+#~ msgid "%Jinvalid use of structure with flexible array member"
+#~ msgstr "%Jutilisation invalide d'une structure ayant un membre flexible"
+
+#~ msgid "union cannot be made transparent"
+#~ msgstr "union ne peut pas tre rendu transparente"
+
+#~ msgid "redeclaration of `enum %s'"
+#~ msgstr "redclaration de enum %s "
+
+#~ msgid "enum defined inside parms"
+#~ msgstr "enum dfini l'intrieur des paramtres"
+
+#~ msgid "enumeration values exceed range of largest integer"
+#~ msgstr "valeurs d'numration excde les bornes du plus grand entier"
+
+#~ msgid "enumerator value for `%s' not integer constant"
+#~ msgstr "valeur de l'numrateur pour %s n'est pas une constante entire"
+
+#~ msgid "overflow in enumeration values"
+#~ msgstr "dbordement dans les valeurs de l'numration"
+
+#~ msgid "ISO C restricts enumerator values to range of `int'"
+#~ msgstr "ISO C restreint les valeurs de l'numrateur aux bornes d'un int "
+
+#~ msgid "return type is an incomplete type"
+#~ msgstr "le type du retour est incomplet"
+
+#~ msgid "return type defaults to `int'"
+#~ msgstr "le type du retour est int par dfaut"
+
+#~ msgid "%Jno previous prototype for '%D'"
+#~ msgstr "%Jaucun prototype prcdent pour %D "
+
+#~ msgid "%J'%D' was used with no prototype before its definition"
+#~ msgstr "%J %D a t utilis sans prototype avant sa dfinition"
+
+#~ msgid "%Jno previous declaration for '%D'"
+#~ msgstr "%Jaucune dclaration prcdente pour %D "
+
+#~ msgid "%J`%D' was used with no declaration before its definition"
+#~ msgstr "%J %D a t utilis sans dclaration avant sa dfinition"
+
+#~ msgid "%Jreturn type of '%D' is not `int'"
+#~ msgstr "%Jle type de retour de %D n'est pas int "
+
+#~ msgid "%Jfirst argument of '%D' should be `int'"
+#~ msgstr "%Jle premier argument de %D devrait tre int "
+
+#~ msgid "%Jsecond argument of '%D' should be 'char **'"
+#~ msgstr "%Jle second argument de %D devrait tre char ** "
+
+#~ msgid "%Jthird argument of '%D' should probably be 'char **'"
+#~ msgstr "%Jle troisime argument de %D devrait probablement tre char ** "
+
+#~ msgid "%J'%D' takes only zero or two arguments"
+#~ msgstr "%J %D prend soit aucun argument ou soit deux arguments"
+
+#~ msgid "%J'%D' is normally a non-static function"
+#~ msgstr "%J %D n'est pas normalement une fonction statique"
+
+#~ msgid "%Jold-style parameter declarations in prototyped function definition"
+#~ msgstr "%Jdclaration de paramtre d'ancien style dans la dfinition prototype de fonction"
+
+#~ msgid "%Jparameter name omitted"
+#~ msgstr "%Jnom de paramtre omis"
+
+#~ msgid "%Jparameter name missing from parameter list"
+#~ msgstr "%Jnom du paramtre manquant dans la liste des paramtres"
+
+#~ msgid "%J\"%D\" declared as a non-parameter"
+#~ msgstr "%J\"%D\" dclar comme un non paramtre"
+
+#~ msgid "%Jmultiple parameters named \"%D\""
+#~ msgstr "%Jplusieurs paramtres nomms %D "
+
+#~ msgid "%Jparameter \"%D\" declared void"
+#~ msgstr "%Jparamtre \"%D\" dclar void "
+
+#~ msgid "%Jtype of \"%D\" defaults to \"int\""
+#~ msgstr "%Jtype de %D est int par dfaut"
+
+#~ msgid "%Jparameter \"%D\" has incomplete type"
+#~ msgstr "%Jparamtre \"%D\" a un type incomplet"
+
+#~ msgid "%Jdeclaration for parameter \"%D\" but no such parameter"
+#~ msgstr "%Jdclaration du paramtre %D mais pas de tel paramtre"
+
+#~ msgid "number of arguments doesn't match prototype"
+#~ msgstr "le nombre d'arguments ne concorde pas avec celui du prototype"
+
+#~ msgid "%Hprototype declaration"
+#~ msgstr "%Hdclaration de prototype"
+
+#~ msgid "promoted argument \"%D\" doesn't match prototype"
+#~ msgstr "argument promu \"%D\" ne concorde pas avec le prototype"
+
+#~ msgid "argument \"%D\" doesn't match prototype"
+#~ msgstr "argument \"%D\" ne concorde pas avec le prototype"
+
+#~ msgid "no return statement in function returning non-void"
+#~ msgstr " return manquant dans une fonction devant retourner une valeur"
+
+#~ msgid "this function may return with or without a value"
+#~ msgstr "cette fonction devrait finir en retournant ou non une valeur"
+
+#~ msgid "'for' loop initial declaration used outside C99 mode"
+#~ msgstr "dclaration initiale de la boucle for utilise en dehors du mode C99"
+
+#~ msgid "'struct %s' declared in 'for' loop initial declaration"
+#~ msgstr " struct %s dclare dans la dclaration initiale de la boucle for "
+
+#~ msgid "'union %s' declared in 'for' loop initial declaration"
+#~ msgstr " union %s dclare dans la dclaration initiale de la boucle for "
+
+#~ msgid "'enum %s' declared in 'for' loop initial declaration"
+#~ msgstr " enum %s dclare dans la dclaration initiale de la boucle for "
+
+#~ msgid "%Jdeclaration of non-variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdclaration de %D (qui n'est pas une variable) dans la dclaration initiale de for "
+
+#~ msgid "%Jdeclaration of static variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdclaration de la variable statique %D dans la dclaration initiale de la boucle for "
+
+#~ msgid "%Jdeclaration of 'extern' variable '%D' in 'for' loop initial declaration"
+#~ msgstr "%Jdclaration de la variable externe %D dans la dclaration initiale for "
+
+#~ msgid "%Jredefinition of global '%D'"
+#~ msgstr "%Jredfinition globale de %D "
+
+#~ msgid "%J'%D' previously defined here"
+#~ msgstr "%J %D prcdemment dfini ici"
+
+#~ msgid "format string has invalid operand number"
+#~ msgstr "la chane de format a un nombre invalide d'oprandes"
+
+#~ msgid "function does not return string type"
+#~ msgstr "fonction ne retourne pas un type string "
+
+#~ msgid "format string arg not a string type"
+#~ msgstr "l'argument de la chane de format n'est pas de type string "
+
+#~ msgid "unrecognized format specifier"
+#~ msgstr "spcificateur de format non reconnu"
+
+#~ msgid "`%s' is an unrecognized format function type"
+#~ msgstr " %s a un format de type de fonction non reconnu"
+
+#~ msgid "'...' has invalid operand number"
+#~ msgstr " ... a un nombre invalide d'oprandes"
+
+#~ msgid "format string arg follows the args to be formatted"
+#~ msgstr "l'argument de la chane de format suit les arguments devant tre formats"
+
+#~ msgid "` ' flag"
+#~ msgstr "fanion "
+
+#~ msgid "the ` ' printf flag"
+#~ msgstr "le fanion de printf"
+
+#~ msgid "`+' flag"
+#~ msgstr "fanion + "
+
+#~ msgid "the `+' printf flag"
+#~ msgstr "le fanion + de printf"
+
+#~ msgid "`#' flag"
+#~ msgstr "fanion # "
+
+#~ msgid "the `#' printf flag"
+#~ msgstr "le fanion # de printf"
+
+#~ msgid "`0' flag"
+#~ msgstr "fanion 0 "
+
+#~ msgid "the `0' printf flag"
+#~ msgstr "le fanion 0 de printf"
+
+#~ msgid "`-' flag"
+#~ msgstr "fanion - "
+
+#~ msgid "the `-' printf flag"
+#~ msgstr "le fanion - de printf"
+
+#~ msgid "`'' flag"
+#~ msgstr "fanion ' "
+
+#~ msgid "the `'' printf flag"
+#~ msgstr "le fanion ' de printf"
+
+#~ msgid "`I' flag"
+#~ msgstr "fanion I "
+
+#~ msgid "the `I' printf flag"
+#~ msgstr "le fanion I de printf"
+
+#~ msgid "field width"
+#~ msgstr "largeur de champ"
+
+#~ msgid "field width in printf format"
+#~ msgstr "largeur de champ dans le format de printf"
+
+#~ msgid "precision"
+#~ msgstr "prcision"
+
+#~ msgid "precision in printf format"
+#~ msgstr "prcision dans le format de printf"
+
+#~ msgid "length modifier"
+#~ msgstr "modificateur de longueur"
+
+#~ msgid "length modifier in printf format"
+#~ msgstr "modificateur de longueur dans le format printf"
+
+#~ msgid "assignment suppression"
+#~ msgstr "suppression d'affectation"
+
+#~ msgid "the assignment suppression scanf feature"
+#~ msgstr "options de scanf pour la suppression d'affectation"
+
+#~ msgid "`a' flag"
+#~ msgstr "fanion a "
+
+#~ msgid "the `a' scanf flag"
+#~ msgstr "le fanion a de scanf"
+
+#~ msgid "field width in scanf format"
+#~ msgstr "largeur de champ dans le format de scanf"
+
+#~ msgid "length modifier in scanf format"
+#~ msgstr "modificateur de longueur dans le format de scanf"
+
+#~ msgid "the `'' scanf flag"
+#~ msgstr "la fanion ' de scanf"
+
+#~ msgid "the `I' scanf flag"
+#~ msgstr "le fanion I de scanf"
+
+#~ msgid "`_' flag"
+#~ msgstr "fanion _ "
+
+#~ msgid "the `_' strftime flag"
+#~ msgstr "le fanion _ de strftime"
+
+#~ msgid "the `-' strftime flag"
+#~ msgstr "le fanion - de strftime"
+
+#~ msgid "the `0' strftime flag"
+#~ msgstr "le fanion 0 de strftime"
+
+#~ msgid "`^' flag"
+#~ msgstr "fanion ^ "
+
+#~ msgid "the `^' strftime flag"
+#~ msgstr "la fanion ^ de strftime"
+
+#~ msgid "the `#' strftime flag"
+#~ msgstr "le fanion # de strftime"
+
+#~ msgid "field width in strftime format"
+#~ msgstr "largeur de champ dans le format de strftime"
+
+#~ msgid "`E' modifier"
+#~ msgstr "modificateur E "
+
+#~ msgid "the `E' strftime modifier"
+#~ msgstr "le modificateur E de strftime"
+
+#~ msgid "`O' modifier"
+#~ msgstr "modificateur O "
+
+#~ msgid "the `O' strftime modifier"
+#~ msgstr "le modificateur O de strftime"
+
+#~ msgid "the `O' modifier"
+#~ msgstr "le modificateur O "
+
+#~ msgid "fill character"
+#~ msgstr "caractre de remplissage"
+
+#~ msgid "fill character in strfmon format"
+#~ msgstr "caractre de remplissage dans le format de strfmon"
+
+#~ msgid "the `^' strfmon flag"
+#~ msgstr "le fanion ^ de strfmon"
+
+#~ msgid "the `+' strfmon flag"
+#~ msgstr "le fanion + de strfmon"
+
+#~ msgid "`(' flag"
+#~ msgstr "fanion ( "
+
+#~ msgid "the `(' strfmon flag"
+#~ msgstr "le fanion ( de strfmon"
+
+#~ msgid "`!' flag"
+#~ msgstr "fanion ! "
+
+#~ msgid "the `!' strfmon flag"
+#~ msgstr "le fanion ! de strfmon"
+
+#~ msgid "the `-' strfmon flag"
+#~ msgstr "le fanion - de strfmon"
+
+#~ msgid "field width in strfmon format"
+#~ msgstr "largeur de champ dans le format de strfmon"
+
+#~ msgid "left precision"
+#~ msgstr "prcision de gauche"
+
+#~ msgid "left precision in strfmon format"
+#~ msgstr "prcision de gauche dans le format de strfmon"
+
+#~ msgid "right precision"
+#~ msgstr "prcision de droite"
+
+#~ msgid "right precision in strfmon format"
+#~ msgstr "prcision de droite dans le format de strfmon"
+
+#~ msgid "length modifier in strfmon format"
+#~ msgstr "modificateur de longueur dans le format de strfmon"
+
+#~ msgid "function might be possible candidate for `%s' format attribute"
+#~ msgstr "la fonction est peut tre candidate pour l'attribut de format de %s "
+
+#~ msgid "missing $ operand number in format"
+#~ msgstr "$ manquant dans le format pour l'oprande du nombre"
+
+#~ msgid "%s does not support %%n$ operand number formats"
+#~ msgstr "%s ne permet pas le format d'oprande de nombre %%n$"
+
+#~ msgid "operand number out of range in format"
+#~ msgstr "oprande de nombre au del de la limite dans le format"
+
+#~ msgid "format argument %d used more than once in %s format"
+#~ msgstr "argument de format %d utilis plus d'une fois dans le format %s"
+
+#~ msgid "format argument %d unused before used argument %d in $-style format"
+#~ msgstr "argument de format %d inutilis avant l'utilisation de l'argument %d dans le format de style $"
+
+#~ msgid "format not a string literal, format string not checked"
+#~ msgstr "le format n'est pas une chane littrale, le format n'est pas vrif"
+
+#~ msgid "format not a string literal and no format arguments"
+#~ msgstr "le format n'est pas une chane littrale et pas d'argument de format"
+
+#~ msgid "format not a string literal, argument types not checked"
+#~ msgstr "le format n'est pas une chane littrale, le type des arguments n'est pas vrifi"
+
+#~ msgid "too many arguments for format"
+#~ msgstr "trop d'arguments pour le format"
+
+#~ msgid "unused arguments in $-style format"
+#~ msgstr "arguments inutiliss dans le format de style $"
+
+#~ msgid "zero-length %s format string"
+#~ msgstr "chane de format de longueur nulle %s"
+
+#~ msgid "format is a wide character string"
+#~ msgstr "le format est une chane large de caractres"
+
+#~ msgid "embedded `\\0' in format"
+#~ msgstr " \\0 inclu dans le format"
+
+#~ msgid "spurious trailing `%%' in format"
+#~ msgstr "des caractres %% douteux tranent dans le format"
+
+#~ msgid "repeated %s in format"
+#~ msgstr "%s rpt dans le format"
+
+#~ msgid "missing fill character at end of strfmon format"
+#~ msgstr "caractre de remplissage manquant la fin du format pour strfmon"
+
+#~ msgid "too few arguments for format"
+#~ msgstr "trop peu d'arguments dans le format"
+
+#~ msgid "zero width in %s format"
+#~ msgstr "largeur zro dans le format %s"
+
+#~ msgid "empty left precision in %s format"
+#~ msgstr "prcision de gauche vide dans le format %s"
+
+#~ msgid "field precision"
+#~ msgstr "champ de prcision"
+
+#~ msgid "empty precision in %s format"
+#~ msgstr "prcision vide dans le format %s"
+
+#~ msgid "%s does not support the `%s' %s length modifier"
+#~ msgstr "%s ne supporte pas %s %s comme modificateur de longueur"
+
+#~ msgid "conversion lacks type at end of format"
+#~ msgstr "il manque un type pour la conversion la fin du format"
+
+#~ msgid "unknown conversion type character `%c' in format"
+#~ msgstr "type de caractre de conversion inconnu %c dans le format"
+
+#~ msgid "unknown conversion type character 0x%x in format"
+#~ msgstr "type de caractre de conversion inconnu 0x%x dans le format"
+
+#~ msgid "%s does not support the `%%%c' %s format"
+#~ msgstr "%s ne supporte pas le format %%%c %s"
+
+#~ msgid "%s used with `%%%c' %s format"
+#~ msgstr "%s utilis avec le format %%%c %s"
+
+#~ msgid "%s does not support %s"
+#~ msgstr "%s ne supporte pas %s"
+
+#~ msgid "%s does not support %s with the `%%%c' %s format"
+#~ msgstr "%s ne supporte pas %s avec le format %%%c %s "
+
+#~ msgid "%s ignored with %s and `%%%c' %s format"
+#~ msgstr "%s ignor avec %s et le format %%%c %s"
+
+#~ msgid "%s ignored with %s in %s format"
+#~ msgstr "%s ignor avec %s dans le format %s"
+
+#~ msgid "use of %s and %s together with `%%%c' %s format"
+#~ msgstr "utilisation de %s et de %s ensemble dans le format %%%c %s"
+
+#~ msgid "use of %s and %s together in %s format"
+#~ msgstr "utilisation de %s et de %s ensemble dans le format %s"
+
+#~ msgid "`%%%c' yields only last 2 digits of year in some locales"
+#~ msgstr " %%%c laisse seulement les 2 derniers chiffres de l'anne avec certaines locales"
+
+#~ msgid "`%%%c' yields only last 2 digits of year"
+#~ msgstr " %%%c laisse seulement les 2 derniers chiffres de l'anne"
+
+#~ msgid "no closing `]' for `%%[' format"
+#~ msgstr "pas de ] fermant pour le format %%[ "
+
+#~ msgid "use of `%s' length modifier with `%c' type character"
+#~ msgstr "utilisation du modificateur de longueur %s avec le type de caractre %c "
+
+#~ msgid "%s does not support the `%%%s%c' %s format"
+#~ msgstr "%s ne supporte par le format %%%s%c %s"
+
+#~ msgid "operand number specified with suppressed assignment"
+#~ msgstr "nombre d'oprandes spcifi avec des affectations suprimes"
+
+#~ msgid "operand number specified for format taking no argument"
+#~ msgstr "nombre d'oprandes spcifi pour un format n'acceptant aucun argument"
+
+#~ msgid "writing through null pointer (arg %d)"
+#~ msgstr "criture travers un pointeur nul (arg %d)"
+
+#~ msgid "reading through null pointer (arg %d)"
+#~ msgstr "lecture l'aide d'un pointeur nul (arg %d)"
+
+#~ msgid "writing into constant object (arg %d)"
+#~ msgstr "criture dans un objet constant (arg %d)"
+
+#~ msgid "extra type qualifiers in format argument (arg %d)"
+#~ msgstr "qualificateur de type additionnel dans l'argument du format (arg %d)"
+
+#~ msgid "format argument is not a pointer (arg %d)"
+#~ msgstr "l'argument de format n'est pas un pointeur (arg %d)"
+
+#~ msgid "format argument is not a pointer to a pointer (arg %d)"
+#~ msgstr "l'argument de format n'est pas un pointeur de pointeur (arg %d)"
+
+#~ msgid "pointer"
+#~ msgstr "pointeur"
+
+#~ msgid "different type"
+#~ msgstr "type diffrent"
+
+#~ msgid "%s is not type %s (arg %d)"
+#~ msgstr "%s n'est pas de type %s (arg %d)"
+
+#~ msgid "%s format, %s arg (arg %d)"
+#~ msgstr "format %s, arg %s (arg %d)"
+
+#~ msgid "args to be formatted is not '...'"
+#~ msgstr "les arguments devant tre formats ne sont pas ... "
+
+#~ msgid "strftime formats cannot format arguments"
+#~ msgstr "Les formats de strftime ne peuvent pas formater d'argument"
+
+#~ msgid "ignoring duplicate directory \"%s\"\n"
+#~ msgstr "le rpertoire %s est ignor car prsent deux fois\n"
+
+#~ msgid " as it is a non-system directory that duplicates a system directory\n"
+#~ msgstr " car il s'agit d'un rpertoire non systme dupliquant un rpertoire systme\n"
+
+#~ msgid "ignoring nonexistent directory \"%s\"\n"
+#~ msgstr "le rpertoire %s est ignor car inexistant\n"
+
+#~ msgid "#include \"...\" search starts here:\n"
+#~ msgstr "la recherche pour #include \"...\" dbute ici :\n"
+
+#~ msgid "#include <...> search starts here:\n"
+#~ msgstr "la recherche pour #include <...> dbute ici:\n"
+
+#~ msgid "End of search list.\n"
+#~ msgstr "Fin de la liste de recherche.\n"
+
+#~ msgid "badly nested C headers from preprocessor"
+#~ msgstr "en-ttes C du prprocesseur incorrectement imbriqus"
+
+#~ msgid "ignoring #pragma %s %s"
+#~ msgstr "#pragma %s %s ignor"
+
+#~ msgid "%Hstray '@' in program"
+#~ msgstr "%H @ perdu dans le programme"
+
+#~ msgid "stray '%c' in program"
+#~ msgstr " %c perdu dans le programme"
+
+#~ msgid "stray '\\%o' in program"
+#~ msgstr " \\%o perdu dans le programme"
+
+#~ msgid "this decimal constant is unsigned only in ISO C90"
+#~ msgstr "cette constante dcimale est unsigned seulement en C90 ISO"
+
+#~ msgid "this decimal constant would be unsigned in ISO C90"
+#~ msgstr "cette constante dcimale serait unsigned en C90 ISO"
+
+#~ msgid "integer constant is too large for \"%s\" type"
+#~ msgstr "constante entire trop grande pour le type %s "
+
+#~ msgid "floating constant exceeds range of \"%s\""
+#~ msgstr "constante en nombre flottant excdant les limites de %s "
+
+#~ msgid "traditional C rejects string constant concatenation"
+#~ msgstr "le C traditionel rejette la concatnation de chanes de constantes"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it is suppressed using -fno-inline"
+#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle supprime l'utilisation de -fno-inline"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it might not be bound within this unit of translation"
+#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle ne peut tre li dans cette unit de traduction"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses attributes conflicting with inlining"
+#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle utilise un attribut en conflit avec l'enlignage"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it has pending sizes"
+#~ msgstr "%Jfonction %F ne jamais tre enligne parce qu'elle a des tailles en attente"
+
+#~ msgid "%Jnested function '%F' can never be inlined because it has possibly saved pending sizes"
+#~ msgstr "%Jfonction imbriqu %F ne peut jamais tre enligne parce qu'ella possiblement sauvegard des tailles en attente"
+
+#~ msgid "no class name specified with \"%s\""
+#~ msgstr "aucun nom de classe spcifi avec \"%s\""
+
+#~ msgid "assertion missing after \"%s\""
+#~ msgstr "assertion manquante aprs \"%s\""
+
+#~ msgid "macro name missing after \"%s\""
+#~ msgstr "nom de macro manquant aprs \"%s\""
+
+#~ msgid "missing path after \"%s\""
+#~ msgstr "cible manquante aprs \"%s\""
+
+#~ msgid "missing filename after \"%s\""
+#~ msgstr "nom de fichier manquant aprs \"%s\""
+
+#~ msgid "missing makefile target after \"%s\""
+#~ msgstr "cible manquante dans le makefile aprs \"%s\""
+
+#~ msgid "-I- specified twice"
+#~ msgstr "-I- spcifi deux fois"
+
+#~ msgid "switch \"%s\" is no longer supported"
+#~ msgstr "l'option %s n'est plus supporte"
+
+#~ msgid "-fhandle-exceptions has been renamed -fexceptions (and is now on by default)"
+#~ msgstr "-fhandle-exceptions a t renomm -fexceptions (et est maintenant utilis par dfaut)"
+
+#~ msgid "output filename specified twice"
+#~ msgstr "nom du fichier de sortie spcifi deux fois"
+
+#~ msgid "-Wformat-y2k ignored without -Wformat"
+#~ msgstr "-Wformat-y2k ignore sans -Wformat"
+
+#~ msgid "-Wformat-extra-args ignored without -Wformat"
+#~ msgstr "-Wformat-extra-args ignore sans -Wformat"
+
+#~ msgid "-Wformat-zero-length ignored without -Wformat"
+#~ msgstr "-Wformat-zero-length ignore sans -Wformat"
+
+#~ msgid "-Wformat-nonliteral ignored without -Wformat"
+#~ msgstr "-Wformat-nonliteral ignore sans -Wformat"
+
+#~ msgid "-Wformat-security ignored without -Wformat"
+#~ msgstr "-Wformat-security ignore sans -Wformat"
+
+#~ msgid "-Wmissing-format-attribute ignored without -Wformat"
+#~ msgstr "-Wmissing-format-attribute ignore sans -Wformat"
+
+#~ msgid "opening output file %s: %m"
+#~ msgstr "ouverture du fichier de sortie %s: %m"
+
+#~ msgid "too many filenames given. Type %s --help for usage"
+#~ msgstr "trop de noms de fichiers. Taper %s --help pour en connatre l'usage"
+
+#~ msgid "YYDEBUG not defined"
+#~ msgstr "YYDEBUG n'est pas dfini"
+
+#~ msgid "opening dependency file %s: %m"
+#~ msgstr "ouverture du fichier de dpendances %s: %m"
+
+#~ msgid "closing dependency file %s: %m"
+#~ msgstr "fermeture du fichier de dpendances %s: %m"
+
+#~ msgid "when writing output to %s: %m"
+#~ msgstr "lors de l'criture de la sortie dans %s: %m"
+
+#~ msgid "to generate dependencies you must specify either -M or -MM"
+#~ msgstr "pour gnrer les dpendances, vous devez spcifier -M ou -MM"
+
+#~ msgid "<built-in>"
+#~ msgstr "<interne>"
+
+#~ msgid "<command line>"
+#~ msgstr "<ligne de commande>"
+
+#~ msgid "too late for # directive to set debug directory"
+#~ msgstr "il est trop tard pour la directive # pour fixer un rpertoire de mise au point"
+
+#~ msgid "syntax error"
+#~ msgstr "erreur de syntaxe"
+
+# FIXME
+#~ msgid "syntax error: cannot back up"
+#~ msgstr "erreur de syntaxe : impossible de reculer"
+
+#~ msgid "ISO C forbids an empty source file"
+#~ msgstr "ISO C interdit un fichier source vide"
+
+#~ msgid "argument of `asm' is not a constant string"
+#~ msgstr "l'argument de asm n'est pas une chane de constante"
+
+#~ msgid "ISO C forbids data definition with no type or storage class"
+#~ msgstr "ISO C interdit la dfinition de donnes sans type ni classe de stockage"
+
+#~ msgid "data definition has no type or storage class"
+#~ msgstr "la dfinition de donnes n'a pas de type ni de classe de stockage"
+
+#~ msgid "ISO C does not allow extra `;' outside of a function"
+#~ msgstr "ISO C ne permet pas de ; additionnel en dehors d'une fonction"
+
+#~ msgid "`sizeof' applied to a bit-field"
+#~ msgstr " sizeof appliqu un champ de bits"
+
+#~ msgid "ISO C forbids omitting the middle term of a ?: expression"
+#~ msgstr "ISO C interdit l'omission du terme central de l'expression ?:"
+
+# FIXME
+#~ msgid "ISO C90 forbids compound literals"
+#~ msgstr "ISO C90 interdit les mots composs"
+
+#~ msgid "ISO C forbids braced-groups within expressions"
+#~ msgstr "ISO C interdit les groupes d'accolades l'intrieur d'expressions"
+
+#~ msgid "first argument to __builtin_choose_expr not a constant"
+#~ msgstr "le premier argument de __builtin_choose_expr n'est pas une constante"
+
+#~ msgid "traditional C rejects ISO C style function definitions"
+#~ msgstr "le C traditionel rejette les dfinitions de fonction de style ISO C"
+
+#~ msgid "old-style parameter declaration"
+#~ msgstr "dclaration de paramtre d'un style dsuet"
+
+#~ msgid "`%s' is not at beginning of declaration"
+#~ msgstr " %s n'est pas au dbut de la dclaration"
+
+#~ msgid "`typeof' applied to a bit-field"
+#~ msgstr " typeof appliqu un champ de bits"
+
+#~ msgid "ISO C forbids empty initializer braces"
+#~ msgstr "ISO C interdit d'initialiser avec des accolades vides"
+
+#~ msgid "ISO C90 forbids specifying subobject to initialize"
+#~ msgstr "ISO C90 interdit de spcifier des sous-objets initialiser"
+
+#~ msgid "obsolete use of designated initializer without `='"
+#~ msgstr "utilisation obsolte d'une initialisation dsigne sans = "
+
+#~ msgid "obsolete use of designated initializer with `:'"
+#~ msgstr "utilisation obsolte d'une initialisation dsigne avec : "
+
+#~ msgid "ISO C forbids specifying range of elements to initialize"
+#~ msgstr "ISO C interdit de spcifier les bornes des lments initaliser"
+
+#~ msgid "ISO C forbids nested functions"
+#~ msgstr "ISO C interdit les fonctions imbriques"
+
+#~ msgid "ISO C forbids forward references to `enum' types"
+#~ msgstr "ISO C interdit les rfrences anticipe vers un type enum "
+
+#~ msgid "comma at end of enumerator list"
+#~ msgstr "virgule la fin de liste d'numerateurs"
+
+#~ msgid "no semicolon at end of struct or union"
+#~ msgstr "pas de point virgule la fin de la structure ou de l'union"
+
+#~ msgid "extra semicolon in struct or union specified"
+#~ msgstr "point virgule superflu dans la structure ou dans l'union"
+
+#~ msgid "ISO C doesn't support unnamed structs/unions"
+#~ msgstr "ISO C ne permet pas les structures et unions sans nom"
+
+#~ msgid "ISO C forbids member declarations with no members"
+#~ msgstr "ISO C interdit les dclarations de membre sans aucun membre"
+
+#~ msgid "label at end of compound statement"
+#~ msgstr "tiquette la fin d'une dclaration compose"
+
+#~ msgid "ISO C90 forbids mixed declarations and code"
+#~ msgstr "ISO C89 interdit les mlanges de dclarations et de code"
+
+#~ msgid "ISO C forbids label declarations"
+#~ msgstr "ISO C interdit la dclaration d'tiquette"
+
+#~ msgid "braced-group within expression allowed only inside a function"
+#~ msgstr "groupe entre accolades l'intrieur d'expression permis seulement l'intrieur d'une fonction"
+
+#~ msgid "empty body in an else-statement"
+#~ msgstr "le corps du else est vide"
+
+#~ msgid "%Hempty body in an if-statement"
+#~ msgstr "%Hle corps de la dclaration du if est vide"
+
+#~ msgid "break statement not within loop or switch"
+#~ msgstr "mot-cl break l'extrieur de toute boucle ou switch "
+
+#~ msgid "continue statement not within a loop"
+#~ msgstr "mot-cl continue l'extrieur de toute boucle"
+
+#~ msgid "ISO C forbids `goto *expr;'"
+#~ msgstr "ISO C interdit goto *expr; "
+
+#~ msgid "ISO C requires a named argument before `...'"
+#~ msgstr "ISO C requiert un argument nomm devant ... "
+
+#~ msgid "`...' in old-style identifier list"
+#~ msgstr " ... dans une liste d'identificateurs de style ancien"
+
+#~ msgid "parse error; also virtual memory exhausted"
+#~ msgstr "erreur d'analyse syntaxique; et la mmoire virtuelle est puise"
+
+#~ msgid "parse error"
+#~ msgstr "erreur d'analyse syntaxique"
+
+#~ msgid "parser stack overflow"
+#~ msgstr "dbordement de la pile de l'analyseur syntaxique"
+
+#~ msgid "syntax error at '%s' token"
+#~ msgstr "erreur de syntaxe l'lment lexical %s "
+
+#~ msgid "can't create precompiled header %s: %m"
+#~ msgstr "ne peut crer une en-tte prcompile %s: %m"
+
+#~ msgid "can't write to %s: %m"
+#~ msgstr "ne peut crire dans %s: %m"
+
+#~ msgid "`%s' is not a valid output file"
+#~ msgstr " %s n'est pas un nom de fichier valide"
+
+#~ msgid "can't write %s: %m"
+#~ msgstr "ne peut crire dans %s: %m"
+
+#~ msgid "can't seek in %s: %m"
+#~ msgstr "ne peut se positionner dans %s: %m"
+
+#~ msgid "can't read %s: %m"
+#~ msgstr "ne peut lire %s: %m"
+
+#~ msgid "%s: not compatible with this GCC version"
+#~ msgstr "%s: n'est pas compatible avec cette version de GCC"
+
+#~ msgid "%s: not for %s"
+#~ msgstr "%s: non pour %s"
+
+#~ msgid "%s: not a PCH file"
+#~ msgstr "%s: n'est pas un fichier PCH"
+
+#~ msgid "%s: created on host `%.*s', but used on host `%s'"
+#~ msgstr "%s: cr sur l'hte %.*s , mais utilis sur l'hte %s "
+
+#~ msgid "%s: created for target `%.*s', but used for target `%s'"
+#~ msgstr "%s: cr pour la cible %.*s , mais utilis pour la cible %s "
+
+#~ msgid "%s: created by version `%.*s', but this is version `%s'"
+#~ msgstr "%s: cr pour la version %.*s , mais utilis avec la version %s "
+
+#~ msgid "%s: created using different flags"
+#~ msgstr "%s: cr en utilisant des fanions diffrents"
+
+#~ msgid "%s: created with -g%s, but used with -g%s"
+#~ msgstr "%s: cr avec -g%s, mais utilis avec -g%s"
+
+#~ msgid "%s: had text segment at different address"
+#~ msgstr "%s: a un segment texte une adresse diffrente"
+
+# I18N
+#~ msgid "calling fdopen"
+#~ msgstr "appel de fdopen()"
+
+#~ msgid "reading"
+#~ msgstr "en lecture"
+
+#~ msgid "#pragma pack (pop) encountered without matching #pragma pack (push, <n>)"
+#~ msgstr "#pragma pack (pop) rencontr sans #pragma pack (push, <n>) correspondant"
+
+#~ msgid "#pragma pack(pop, %s) encountered without matching #pragma pack(push, %s, <n>)"
+#~ msgstr "#pragma pack(pop, %s) rencontr sans #pragma pack(push, %s, <n>) correspondant"
+
+#~ msgid "#pragma pack(push[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(push[, id], <n>) n'est pas permis sur cette cible"
+
+#~ msgid "#pragma pack(pop[, id], <n>) is not supported on this target"
+#~ msgstr "#pragma pack(pop[, id], <n>) n'est pas permis sur cette cible"
+
+#~ msgid "missing '(' after '#pragma pack' - ignored"
+#~ msgstr " ( manquante aprs #pragma pack - ignor"
+
+#~ msgid "malformed '#pragma pack' - ignored"
+#~ msgstr " #pragma pack mal compose - ignor"
+
+#~ msgid "malformed '#pragma pack(push[, id], <n>)' - ignored"
+#~ msgstr " #pragma pack(push[, id], <n>) mal compose - ignor"
+
+#~ msgid "malformed '#pragma pack(pop[, id])' - ignored"
+#~ msgstr " #pragma pack(pop[, id]) mal compose, ignor"
+
+#~ msgid "unknown action '%s' for '#pragma pack' - ignored"
+#~ msgstr "action %s inconnue pour #pragma pack - ignor"
+
+#~ msgid "junk at end of '#pragma pack'"
+#~ msgstr "rebut la fin de #pragma pack "
+
+#~ msgid "alignment must be a small power of two, not %d"
+#~ msgstr "l'alignement doit tre une petite puissance de 2, pas %d"
+
+#~ msgid "%Japplying #pragma weak '%D' after first use results in unspecified behavior"
+#~ msgstr "%Japplication de la #pragma weak %D aprs la premire utilisation conduit un comportement non spcifi"
+
+#~ msgid "malformed #pragma weak, ignored"
+#~ msgstr "#pragma weak mal compose, ignor"
+
+#~ msgid "junk at end of #pragma weak"
+#~ msgstr "rebut la fin de #pragma weak"
+
+#~ msgid "malformed #pragma redefine_extname, ignored"
+#~ msgstr "#pragma redefine_extname mal compose, ignor"
+
+#~ msgid "junk at end of #pragma redefine_extname"
+#~ msgstr "rebut la fin de #pragma redefine_extname"
+
+#~ msgid "#pragma redefine_extname conflicts with declaration"
+#~ msgstr "#pragma redefine_extname en conflit avec la dclaration"
+
+#~ msgid "malformed #pragma extern_prefix, ignored"
+#~ msgstr "#pragma extern_prefix mal compose, ignor"
+
+#~ msgid "junk at end of #pragma extern_prefix"
+#~ msgstr "rebut la fin de #pragma extern_prefix"
+
+#~ msgid "asm declaration conflicts with previous rename"
+#~ msgstr "dclaration asm en conflit avec le changement de nom prcdent"
+
+#~ msgid "destructor needed for `%D'"
+#~ msgstr "destructeur requis pour %D "
+
+#~ msgid "where case label appears here"
+#~ msgstr "o les tiquettes de case apparaissent ici"
+
+# FIXME
+#~ msgid "(enclose actions of previous case statements requiring destructors in their own scope.)"
+#~ msgstr "(les actions dans les case prcdents requierent des destructeurs dans leur propre champ.)"
+
+#~ msgid "%s qualifier ignored on asm"
+#~ msgstr "%s qualificateur ignor avec asm"
+
+# FIXME: c'est de l'assembleur ?
+#~ msgid "will never be executed"
+#~ msgstr "ne sera jamais excut"
+
+#~ msgid "`%s' has an incomplete type"
+#~ msgstr " %s a un type incomplet"
+
+#~ msgid "invalid use of void expression"
+#~ msgstr "utilisation invalide d'expression void"
+
+#~ msgid "invalid use of flexible array member"
+#~ msgstr "utilisation invalide d'un membre flexible de tableau"
+
+#~ msgid "invalid use of array with unspecified bounds"
+#~ msgstr "utilisation invalide d'un tableau sans borne spcifie"
+
+#~ msgid "invalid use of undefined type `%s %s'"
+#~ msgstr "utilisation invalide d'un type indfini %s %s "
+
+#~ msgid "invalid use of incomplete typedef `%s'"
+#~ msgstr "utilisation invalide d'un typedef incomplet %s "
+
+#~ msgid "function types not truly compatible in ISO C"
+#~ msgstr "types de fonction pas vraiment compatibles en C ISO"
+
+#~ msgid "types are not quite compatible"
+#~ msgstr "les types ne sont pas vraiment compatibles"
+
+#~ msgid "function return types not compatible due to `volatile'"
+#~ msgstr "les types retourns d'une fonction ne sont pas compatibles en raison de volatile "
+
+#~ msgid "arithmetic on pointer to an incomplete type"
+#~ msgstr "arithmtique sur un pointeur vers un type incomplet"
+
+#~ msgid "%s has no member named `%s'"
+#~ msgstr "%s n'a pas de membre nomm %s "
+
+#~ msgid "request for member `%s' in something not a structure or union"
+#~ msgstr "requte du membre %s dans quelque chose n'tant ni une structure ni une union"
+
+#~ msgid "dereferencing pointer to incomplete type"
+#~ msgstr "drfrencement d'un pointeur de type incomplet"
+
+#~ msgid "dereferencing `void *' pointer"
+#~ msgstr "drfrencement d'un pointeur void * "
+
+#~ msgid "invalid type argument of `%s'"
+#~ msgstr "type d'argument invalide pour %s "
+
+#~ msgid "subscript missing in array reference"
+#~ msgstr "indice manquant dans la rfrence du tableau"
+
+#~ msgid "array subscript has type `char'"
+#~ msgstr "l'indice du tableau est de type char "
+
+#~ msgid "array subscript is not an integer"
+#~ msgstr "l'indice du tableau n'est pas un entier"
+
+#~ msgid "ISO C forbids subscripting `register' array"
+#~ msgstr "ISO C interdit de sous-indicer des tableaux register "
+
+#~ msgid "ISO C90 forbids subscripting non-lvalue array"
+#~ msgstr "ISO C90 interdit d'indicer de tableau n'tant pas membre gauche"
+
+#~ msgid "subscript has type `char'"
+#~ msgstr "indice de type char "
+
+#~ msgid "subscripted value is neither array nor pointer"
+#~ msgstr "la valeur indice n'est ni un tableau ni un pointeur"
+
+#~ msgid "local declaration of `%s' hides instance variable"
+#~ msgstr "la dclaration locale de %s masque l'instance d'une variable"
+
+#~ msgid "called object is not a function"
+#~ msgstr "l'objet appel n'est pas une fonction"
+
+#~ msgid "function called through a non-compatible type"
+#~ msgstr "fonction appelle travers un type non compatible"
+
+#~ msgid "too many arguments to function"
+#~ msgstr "trop d'arguments pour la fonction"
+
+#~ msgid "type of formal parameter %d is incomplete"
+#~ msgstr "le type du paramtre formel %d est incomplet"
+
+#~ msgid "%s as integer rather than floating due to prototype"
+#~ msgstr "%s est entier plutt que flottant en raison du prototype"
+
+#~ msgid "%s as integer rather than complex due to prototype"
+#~ msgstr "%s est entier plutt que complexe en raison du prototype"
+
+#~ msgid "%s as complex rather than floating due to prototype"
+#~ msgstr "%s est complexe plutt que flottant en raison du prototype"
+
+#~ msgid "%s as floating rather than integer due to prototype"
+#~ msgstr "%s est flottant plutt qu'entier en raison du prototype"
+
+#~ msgid "%s as complex rather than integer due to prototype"
+#~ msgstr "%s est complexe plutt qu'entier en raison du prototype"
+
+#~ msgid "%s as floating rather than complex due to prototype"
+#~ msgstr "%s est flottant plutt que complexe en raison du prototype"
+
+#~ msgid "%s as `float' rather than `double' due to prototype"
+#~ msgstr "%s est float plutt qu'un double en raison du prototype"
+
+#~ msgid "%s with different width due to prototype"
+#~ msgstr "%s a une largeur diffrente en raison du prototype"
+
+#~ msgid "%s as unsigned due to prototype"
+#~ msgstr "%s est non sign en raison du prototype"
+
+#~ msgid "%s as signed due to prototype"
+#~ msgstr "%s est sign en raison du prototype"
+
+#~ msgid "too few arguments to function"
+#~ msgstr "trop peu d'arguments pour la fonction"
+
+#~ msgid "suggest parentheses around + or - inside shift"
+#~ msgstr "parenthses suggres autour de + ou - l'intrieur du dcalage"
+
+#~ msgid "suggest parentheses around && within ||"
+#~ msgstr "parenthses suggres autour de && l'intrieur de ||"
+
+#~ msgid "suggest parentheses around arithmetic in operand of |"
+#~ msgstr "parenthses suggres autour de l'arithmtique dans l'oprande de |"
+
+#~ msgid "suggest parentheses around comparison in operand of |"
+#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de |"
+
+#~ msgid "suggest parentheses around arithmetic in operand of ^"
+#~ msgstr "parenthses suggres autour de l'arithmtique dans l'oprande de ^"
+
+#~ msgid "suggest parentheses around comparison in operand of ^"
+#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de ^"
+
+#~ msgid "suggest parentheses around + or - in operand of &"
+#~ msgstr "parenthses suggres autour de + ou - dans l'oprande de &"
+
+#~ msgid "suggest parentheses around comparison in operand of &"
+#~ msgstr "parenthses suggres autour de la comparaison dans l'oprande de &"
+
+#~ msgid "comparisons like X<=Y<=Z do not have their mathematical meaning"
+#~ msgstr "les comparaisons telles que X<=Y<=Z n'ont pas de signification mathmatique"
+
+#~ msgid "pointer of type `void *' used in subtraction"
+#~ msgstr "pointeur de type void * utilis dans une soustraction"
+
+#~ msgid "pointer to a function used in subtraction"
+#~ msgstr "pointeur vers un fonction utilis dans une soustraction"
+
+#~ msgid "wrong type argument to unary plus"
+#~ msgstr "type d'argument erron pour le plus unaire"
+
+#~ msgid "wrong type argument to unary minus"
+#~ msgstr "type d'argument erron pour le moins unaire"
+
+#~ msgid "ISO C does not support `~' for complex conjugation"
+#~ msgstr "ISO C ne permet pas d'utiliser ~ pour le complexe conjugu"
+
+#~ msgid "wrong type argument to bit-complement"
+#~ msgstr "type d'argument erron pour un complment de bit"
+
+#~ msgid "wrong type argument to abs"
+#~ msgstr "type d'argument erron pour abs"
+
+#~ msgid "wrong type argument to conjugation"
+#~ msgstr "type d'argument erron pour la conjugaison"
+
+#~ msgid "wrong type argument to unary exclamation mark"
+#~ msgstr "type d'argument erron pour le point d'exclamation unaire"
+
+#~ msgid "ISO C does not support `++' and `--' on complex types"
+#~ msgstr "ISO C ne permet pas ++ ni -- sur les types complexes"
+
+#~ msgid "wrong type argument to increment"
+#~ msgstr "type d'argument erron pour un incrment"
+
+#~ msgid "wrong type argument to decrement"
+#~ msgstr "type d'argument erron pour un dcrment"
+
+#~ msgid "increment of pointer to unknown structure"
+#~ msgstr "incrment d'un pointeur vers une structure inconnue"
+
+#~ msgid "decrement of pointer to unknown structure"
+#~ msgstr "dcrment d'un pointeur vers une structure inconnue"
+
+#~ msgid "invalid lvalue in unary `&'"
+#~ msgstr "membre gauche invalide pour le & unaire"
+
+#~ msgid "attempt to take address of bit-field structure member `%s'"
+#~ msgstr "tentative pour prendre l'adresse du membre %s d'une structure de champ de bits"
+
+#~ msgid "use of conditional expressions as lvalues is deprecated"
+#~ msgstr "utilisation d'expressions conditionnelles comme lvalues est obsolte"
+
+#~ msgid "use of compound expressions as lvalues is deprecated"
+#~ msgstr "utilisation d'expressions composes comme lvalues est obsolte"
+
+#~ msgid "use of cast expressions as lvalues is deprecated"
+#~ msgstr "utilisation de transtypage d'expressions comme lvalues est obsolte"
+
+#~ msgid "%s of read-only member `%s'"
+#~ msgstr "%s d'un membre en lecture seule %s "
+
+#~ msgid "%s of read-only variable `%s'"
+#~ msgstr "%s d'une variable en lecture seule %s "
+
+#~ msgid "%s of read-only location"
+#~ msgstr "%s d'une position en lecture seule"
+
+#~ msgid "cannot take address of bit-field `%s'"
+#~ msgstr "ne peut prendre l'adresse du champ de bits %s "
+
+#~ msgid "global register variable `%s' used in nested function"
+#~ msgstr "variable globale de registre %s utilise dans une fonction imbrique"
+
+#~ msgid "register variable `%s' used in nested function"
+#~ msgstr "variable de registre %s utilise dans une fonction imbrique"
+
+#~ msgid "address of global register variable `%s' requested"
+#~ msgstr "adresse d'une variable registre globale %s requise"
+
+#~ msgid "cannot put object with volatile field into register"
+#~ msgstr "impossible de mettre un objet avec un champ volatile dans un registre"
+
+#~ msgid "address of register variable `%s' requested"
+#~ msgstr "adresse d'une variable registre %s requise"
+
+#~ msgid "signed and unsigned type in conditional expression"
+#~ msgstr "type sign et non sign dans une expression conditionnelle"
+
+#~ msgid "ISO C forbids conditional expr with only one void side"
+#~ msgstr "ISO C interdit une expression conditionnelle dont un seul ct est void "
+
+#~ msgid "ISO C forbids conditional expr between `void *' and function pointer"
+#~ msgstr "ISO C interdit une expression conditionnelle entre void * et un pointeur de fonction"
+
+#~ msgid "pointer type mismatch in conditional expression"
+#~ msgstr "non concordance de type de pointeurs dans un expression conditionnelle"
+
+#~ msgid "pointer/integer type mismatch in conditional expression"
+#~ msgstr "non concordance entre pointeur et entier dans une expression conditionnelle"
+
+#~ msgid "type mismatch in conditional expression"
+#~ msgstr "non concordance de type dans une expression conditionnelle"
+
+#~ msgid "left-hand operand of comma expression has no effect"
+#~ msgstr "l'oprande gauche de la virgule n'a pas d'effet"
+
+#~ msgid "cast specifies array type"
+#~ msgstr "le transtypage spcifie un type de tableau"
+
+#~ msgid "cast specifies function type"
+#~ msgstr "le transtypage spcifie un type de fonction"
+
+#~ msgid "ISO C forbids casting nonscalar to the same type"
+#~ msgstr "ISO C interdit le transtypage d'un type non scalaire vers lui-mme"
+
+#~ msgid "ISO C forbids casts to union type"
+#~ msgstr "ISO C interdit le transtypage vers un type union"
+
+#~ msgid "cast to union type from type not present in union"
+#~ msgstr "transtypage vers un type union depuis un type absent de l'union"
+
+#~ msgid "cast adds new qualifiers to function type"
+#~ msgstr "le transtypage ajoute un nouveau qualificateur au type de la fonction"
+
+#~ msgid "cast discards qualifiers from pointer target type"
+#~ msgstr "le transtypage annule des qualificateurs du type pointeur cibl"
+
+#~ msgid "cast increases required alignment of target type"
+#~ msgstr "le transtypage augmente l'alignement requis pour le type cibl"
+
+#~ msgid "cast from pointer to integer of different size"
+#~ msgstr "transtypage d'un pointeur vers un entier de taille diffrente"
+
+#~ msgid "cast does not match function type"
+#~ msgstr "le transtypage ne concorde pas avec le type de la fonction"
+
+#~ msgid "cast to pointer from integer of different size"
+#~ msgstr "transtypage vers un pointeur depuis un entier de taille diffrente"
+
+# FIXME
+#~ msgid "type-punning to incomplete type might break strict-aliasing rules"
+#~ msgstr "type-punning vers un type incomplet peut briser les rgles stricte d'aliases"
+
+# FIXME
+#~ msgid "dereferencing type-punned pointer will break strict-aliasing rules"
+#~ msgstr "drfrencement du pointeur type-punned brisera les strictes d'aliases"
+
+#~ msgid "ISO C forbids conversion of function pointer to object pointer type"
+#~ msgstr "ISO C interdit la conversion d'un pointeur de fonction en un type pointeur d'objet"
+
+#~ msgid "ISO C forbids conversion of object pointer to function pointer type"
+#~ msgstr "ISO C interdit la conversion d'un pointeur d'objet vers un type de pointeur une fonction"
+
+#~ msgid "invalid lvalue in assignment"
+#~ msgstr "membre gauche de l'affectation invalide"
+
+#~ msgid "assignment"
+#~ msgstr "affectation"
+
+#~ msgid "cannot pass rvalue to reference parameter"
+#~ msgstr "impossible de passer un membre droit en paramtre par rfrence"
+
+#~ msgid "%s makes qualified function pointer from unqualified"
+#~ msgstr "%s qualifie un pointeur de fonction non qualifi"
+
+#~ msgid "%s discards qualifiers from pointer target type"
+#~ msgstr "%s annule des qualificateurs du type du pointeur cible"
+
+#~ msgid "ISO C prohibits argument conversion to union type"
+#~ msgstr "ISO C interdit la conversion d'argument en type union"
+
+#~ msgid "ISO C forbids %s between function pointer and `void *'"
+#~ msgstr "ISO C interdit %s entre pointeur de fonction et void * "
+
+#~ msgid "pointer targets in %s differ in signedness"
+#~ msgstr "les cibles des pointeurs dans %s n'ont pas toutes de signe"
+
+#~ msgid "%s from incompatible pointer type"
+#~ msgstr "%s d'un type pointeur incompatible"
+
+#~ msgid "invalid use of non-lvalue array"
+#~ msgstr "utilisation invalide d'un tableau n'tant pas membre gauche"
+
+#~ msgid "%s makes pointer from integer without a cast"
+#~ msgstr "%s transforme un entier en pointeur sans transtypage"
+
+#~ msgid "%s makes integer from pointer without a cast"
+#~ msgstr "%s transforme un pointeur en entier sans transtypage"
+
+#~ msgid "incompatible type for argument %d of `%s'"
+#~ msgstr "type incompatible pour l'argument n%d de %s "
+
+#~ msgid "incompatible type for argument %d of indirect function call"
+#~ msgstr "type incompatible pour l'argument n%d de l'appel indirect de fonction"
+
+#~ msgid "incompatible types in %s"
+#~ msgstr "type incompatibles dans %s"
+
+#~ msgid "passing arg of `%s'"
+#~ msgstr "passage des arguments de %s "
+
+#~ msgid "passing arg of pointer to function"
+#~ msgstr "passage des arguments au pointeur de fonction"
+
+#~ msgid "passing arg %d of `%s'"
+#~ msgstr "passage de l'argument n%d de %s "
+
+#~ msgid "passing arg %d of pointer to function"
+#~ msgstr "passage de l'argument n%d au pointeur de fonction"
+
+#~ msgid "traditional C rejects automatic aggregate initialization"
+#~ msgstr "le C traditionel rejette l'initialisation automatique d'aggrgats"
+
+#~ msgid "(near initialization for `%s')"
+#~ msgstr "(prs de l'initialisation de %s )"
+
+#~ msgid "char-array initialized from wide string"
+#~ msgstr "tableau de caractres initialis l'aide d'une chane large de caractres"
+
+#~ msgid "int-array initialized from non-wide string"
+#~ msgstr "tableau d'entier initialis l'aide d'une chane non-large"
+
+#~ msgid "initializer-string for array of chars is too long"
+#~ msgstr "la chane d'initialisation est trop longue pour le tableau de caractres"
+
+#~ msgid "array initialized from non-constant array expression"
+#~ msgstr "tableau initialis l'aide de l'expression de tableau non constante"
+
+#~ msgid "initializer element is not constant"
+#~ msgstr "un lment de l'initialisation n'est pas une constante"
+
+#~ msgid "initialization"
+#~ msgstr "initialisation"
+
+#~ msgid "initializer element is not computable at load time"
+#~ msgstr "un lment de l'initialisation n'est pas valuable lors du chargement"
+
+#~ msgid "invalid initializer"
+#~ msgstr "initialisation invalide"
+
+#~ msgid "opaque vector types cannot be initialized"
+#~ msgstr "type de vecteur opaque ne peut tre initialis"
+
+#~ msgid "extra brace group at end of initializer"
+#~ msgstr "groupe d'accolades superflu la fin de l'initialisation"
+
+#~ msgid "missing braces around initializer"
+#~ msgstr "accolades manquantes autour de l'initialisation"
+
+#~ msgid "braces around scalar initializer"
+#~ msgstr "accolades autour d'une initialisation de scalaire"
+
+#~ msgid "initialization of flexible array member in a nested context"
+#~ msgstr "initialisation d'un membre de tableau flexible dans un contexte imbriqu"
+
+#~ msgid "initialization of a flexible array member"
+#~ msgstr "initialisation d'un membre de tableau flexible"
+
+#~ msgid "missing initializer"
+#~ msgstr "initialisation manquante"
+
+#~ msgid "empty scalar initializer"
+#~ msgstr "initialisation vide de scalaire"
+
+#~ msgid "extra elements in scalar initializer"
+#~ msgstr "lments superflus dans l'initialisation de scalaire"
+
+#~ msgid "initialization designators may not nest"
+#~ msgstr "l'initialisation des dsignateurs ne doit pas tre imbrique"
+
+#~ msgid "array index in non-array initializer"
+#~ msgstr "index de tableau dans l'initialisation de quelque chose n'tant pas un tableau"
+
+#~ msgid "field name not in record or union initializer"
+#~ msgstr "nom de champ dans l'initialisation de quelque chose n'tant ni un enregistrement ni une union"
+
+#~ msgid "nonconstant array index in initializer"
+#~ msgstr "index de tableau non constant dans l'initialisation"
+
+#~ msgid "array index in initializer exceeds array bounds"
+#~ msgstr "index de tableau hors limites lors de l'initialisation"
+
+#~ msgid "empty index range in initializer"
+#~ msgstr "borne d'index vide lors de l'initialisation"
+
+#~ msgid "array index range in initializer exceeds array bounds"
+#~ msgstr "plage d'index du tableau excdant les bornes lors de l'initialisation"
+
+#~ msgid "unknown field `%s' specified in initializer"
+#~ msgstr "champ inconnu %s spcifi lors de l'initialisation"
+
+#~ msgid "initialized field with side-effects overwritten"
+#~ msgstr "le champ initialis par effet de bord a t cras"
+
+#~ msgid "excess elements in char array initializer"
+#~ msgstr "lments en excs dans l'initialisation de tableau de caractres"
+
+#~ msgid "excess elements in struct initializer"
+#~ msgstr "lments en excs dans l'initialisation de la structure"
+
+#~ msgid "non-static initialization of a flexible array member"
+#~ msgstr "initialisation non statique d'un membre de tableau flexible"
+
+#~ msgid "excess elements in union initializer"
+#~ msgstr "lments en excs dans l'initialisation d'union"
+
+#~ msgid "traditional C rejects initialization of unions"
+#~ msgstr "le C traditionel rejette l'initialisation d'union"
+
+#~ msgid "excess elements in array initializer"
+#~ msgstr "lments en excs dans l'initialisation de tableau"
+
+#~ msgid "excess elements in vector initializer"
+#~ msgstr "lments en excs dans l'initialisation du vecteur"
+
+#~ msgid "excess elements in scalar initializer"
+#~ msgstr "lments en excs dans l'initialisation d'un scalaire"
+
+#~ msgid "asm template is not a string constant"
+#~ msgstr "le canevas asm n'est pas une chane de constante"
+
+#~ msgid "invalid lvalue in asm statement"
+#~ msgstr "membre gauche invalide avec asm"
+
+#~ msgid "modification by `asm'"
+#~ msgstr "modification par asm "
+
+#~ msgid "function declared `noreturn' has a `return' statement"
+#~ msgstr "fonction dclare avec noreturn utilisant le mot-cl return "
+
+#~ msgid "`return' with no value, in function returning non-void"
+#~ msgstr " return sans valeur dans une fonction retournant autre chose que void"
+
+#~ msgid "`return' with a value, in function returning void"
+#~ msgstr " return avec une valeur dans une fonction retournant un void"
+
+#~ msgid "return"
+#~ msgstr "return"
+
+#~ msgid "function returns address of local variable"
+#~ msgstr "cette fonction retourne l'adresse d'une variable locale"
+
+#~ msgid "switch quantity not an integer"
+#~ msgstr "quantit du switch n'est pas un entier"
+
+#~ msgid "`long' switch expression not converted to `int' in ISO C"
+#~ msgstr "expression long du switch non convertie en int par ISO C"
+
+#~ msgid "case label not within a switch statement"
+#~ msgstr "tiquette de case en dehors de tout switch"
+
+#~ msgid "`default' label not within a switch statement"
+#~ msgstr "tiquette default en dehors de tout switch"
+
+#~ msgid "division by zero"
+#~ msgstr "division par zro"
+
+#~ msgid "right shift count is negative"
+#~ msgstr "le compteur de dcalage vers la droite est ngatif"
+
+#~ msgid "right shift count >= width of type"
+#~ msgstr "compteur de dcalage vers la droite >= la largeur du type"
+
+#~ msgid "left shift count is negative"
+#~ msgstr "le compteur de dcalage vers la gauche est ngatif"
+
+#~ msgid "left shift count >= width of type"
+#~ msgstr "compteur de dcalage vers la gauche >= la largeur du type"
+
+#~ msgid "shift count is negative"
+#~ msgstr "le compteur de dcalage est ngatif"
+
+#~ msgid "shift count >= width of type"
+#~ msgstr "compteur de dcalage >= la largeur du type"
+
+#~ msgid "comparing floating point with == or != is unsafe"
+#~ msgstr "comparer des nombres flottants l'aide de == ou != n'est pas sr"
+
+#~ msgid "ISO C forbids comparison of `void *' with function pointer"
+#~ msgstr "ISO C interdit la comparaison de void * avec un pointeur de fonction"
+
+#~ msgid "comparison of distinct pointer types lacks a cast"
+#~ msgstr "il manque un transtypage pour comparer des types distincts de pointeur"
+
+#~ msgid "comparison between pointer and integer"
+#~ msgstr "comparaison entre un pointeur et un entier"
+
+#~ msgid "ISO C forbids ordered comparisons of pointers to functions"
+#~ msgstr "ISO C interdit les comparaisons ordonnes de pointeurs vers des fonctions"
+
+#~ msgid "comparison of complete and incomplete pointers"
+#~ msgstr "comparaison de pointeurs complet et incomplet"
+
+#~ msgid "ordered comparison of pointer with integer zero"
+#~ msgstr "comparaison ordonne de pointeur avec le zro entier"
+
+#~ msgid "unordered comparison on non-floating point argument"
+#~ msgstr "comparaison non ordonne sur un argument n'tant pas en virgule flottante"
+
+#~ msgid "comparison between signed and unsigned"
+#~ msgstr "comparaison entre lment sign et lment non sign"
+
+#~ msgid "comparison of promoted ~unsigned with constant"
+#~ msgstr "comparaison entre lment promu ~unsigned et une constante"
+
+#~ msgid "comparison of promoted ~unsigned with unsigned"
+#~ msgstr "comparaison entre lment promu ~unsigned et un lment non sign"
+
+#~ msgid "%Jinlining failed in call to '%F'"
+#~ msgstr "%Jenlignage a chou dans l'appel %F "
+
+#~ msgid "called from here"
+#~ msgstr "appel d'ici"
+
+#~ msgid "%Jcan't inline call to '%F'"
+#~ msgstr "%Jimpossible d'enligner l'appel %F "
+
+#~ msgid "ignoring return value of `%D', declared with attribute warn_unused_result"
+#~ msgstr "valeur retourner %D ignore, dclar avec l'attribut warn_unused_result"
+
+#~ msgid "ignoring return value of function declared with attribute warn_unused_result"
+#~ msgstr "valeur retourner d'une fonction ignore, dclar avec l'attribut warn_unused_result"
+
+#~ msgid "function call has aggregate value"
+#~ msgstr "l'appel de fonction a une valeur d'aggrgat"
+
+#~ msgid "bb %d on wrong place"
+#~ msgstr "bb %d au mauvais endroit"
+
+#~ msgid "prev_bb of %d should be %d, not %d"
+#~ msgstr "prev_bb de %d devrait tre %d, pas %d"
+
+#~ msgid "verify_flow_info: Wrong count of block %i %i"
+#~ msgstr "verify_flow_info: Nombre de blocs erron %i %i"
+
+#~ msgid "verify_flow_info: Wrong frequency of block %i %i"
+#~ msgstr "verify_flow_info: Frquence de blocs errone %i %i"
+
+#~ msgid "verify_flow_info: Duplicate edge %i->%i"
+#~ msgstr "verify_flow_info: arrte duplique %i->%i"
+
+#~ msgid "verify_flow_info: Wrong probability of edge %i->%i %i"
+#~ msgstr "verify_flow_info: probabilit de l'arrte %i->%i %i errone"
+
+#~ msgid "verify_flow_info: Wrong count of edge %i->%i %i"
+#~ msgstr "verify_flow_info: Mauvais nombre d'arrte %i->%i %i"
+
+#~ msgid "verify_flow_info: Basic block %d succ edge is corrupted"
+#~ msgstr "verify_flow_info: l'arrte succ du bloc de base %d est corrompue"
+
+#~ msgid "Wrong amount of branch edges after unconditional jump %i"
+#~ msgstr "Mauvais nombre d'arrtes de branchement aprs le branchement inconditionnel %i"
+
+#~ msgid "basic block %d pred edge is corrupted"
+#~ msgstr "arrte pred du bloc de base %d corrompue"
+
+#~ msgid "basic block %i edge lists are corrupted"
+#~ msgstr "les listes d'arrtes du bloc de base %i sont corrompues"
+
+#~ msgid "verify_flow_info failed"
+#~ msgstr "verify_flow_info a chou"
+
+#~ msgid "Size of loop %d should be %d, not %d."
+#~ msgstr "La taille de la boucle %d devrait tre %d, et non %d."
+
+# FIXME
+#~ msgid "Bb %d do not belong to loop %d."
+#~ msgstr "Bb %d n'appartient pas la boucle %d."
+
+#~ msgid "Loop %d's header does not have exactly 2 entries."
+#~ msgstr "L'en-tte de la boucle %d n'a pas exactement 2 entres."
+
+#~ msgid "Loop %d's latch does not have exactly 1 successor."
+#~ msgstr "Le verrou %d de la boucle n'a pas exactement 1 successeur."
+
+#~ msgid "Loop %d's latch does not have header as successor."
+#~ msgstr "Le verrou %d de la boucle n'a pas une en-tte comme successeur."
+
+#~ msgid "Loop %d's latch does not belong directly to it."
+#~ msgstr "Le verrou %d de la boucle ne lui appartient pas directement."
+
+#~ msgid "Loop %d's header does not belong directly to it."
+#~ msgstr "L'entte de la boucle %d ne lui appartient pas directement."
+
+#~ msgid "Loop %d's latch is marked as part of irreducible region."
+#~ msgstr "Le verrou %d de la boucle est dfini comme faisant partie d'une zone irrductible"
+
+#~ msgid "Basic block %d should be marked irreducible."
+#~ msgstr "bloc de base %d devrait tre marqu irrductible."
+
+#~ msgid "Basic block %d should not be marked irreducible."
+#~ msgstr "bloc de base %d ne devrait pas tre marqu irrductible."
+
+#~ msgid "Edge from %d to %d should be marked irreducible."
+#~ msgstr "Bordures partir de %d %d devraient tre marqus irrductibles."
+
+#~ msgid "Edge from %d to %d should not be marked irreducible."
+#~ msgstr "Bordures partir de %d %d ne devraient tre marques irrductibles."
+
+#~ msgid "end insn %d for block %d not found in the insn stream"
+#~ msgstr "fin insn %d du bloc %d n'a pas t repr dans le flot insn"
+
+#~ msgid "insn %d is in multiple basic blocks (%d and %d)"
+#~ msgstr "insn %d est dans de multiples blocs de base (%d et %d)"
+
+#~ msgid "head insn %d for block %d not found in the insn stream"
+#~ msgstr "en-tte insn %d du bloc %d n'a pas t repre dans le flot insn"
+
+#~ msgid "verify_flow_info: REG_BR_PROB does not match cfg %wi %i"
+#~ msgstr "verify_flow_info: REG_BR_PROB ne correspond pas la config %wi %i"
+
+#~ msgid "Missing REG_EH_REGION note in the end of bb %i"
+#~ msgstr "REG_EH_REGION note manquante la fin du bb %i"
+
+#~ msgid "Too many outgoing branch edges from bb %i"
+#~ msgstr "Trop d'arrtes de branchement sortantes dans le bb %i"
+
+#~ msgid "Fallthru edge after unconditional jump %i"
+#~ msgstr "Arrte fallthru aprs le branchement inconditionnel %i"
+
+#~ msgid "Wrong amount of branch edges after conditional jump %i"
+#~ msgstr "Mauvais nombre d'arrtes de branchement aprs le branchement conditionnel %i"
+
+#~ msgid "Call edges for non-call insn in bb %i"
+#~ msgstr "Arrtes d'appel pour un insn n'tant pas d'appel dans le bb %i"
+
+#~ msgid "Abnormal edges for no purpose in bb %i"
+#~ msgstr "Arrte anormale sans but dans le bb %i"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is NULL"
+#~ msgstr "insn %d l'intrieur du bloc de base %d mais block_for_insn est NULL"
+
+#~ msgid "insn %d inside basic block %d but block_for_insn is %i"
+#~ msgstr "insn %d l'intrieur du bloc de base %d mais block_for_insn est %i"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK manquant pour le bloc %d"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK %d in middle of basic block %d"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK %d au milieu du bloc de base %d"
+
+#~ msgid "in basic block %d:"
+#~ msgstr "dans le bloc de base %d :"
+
+#~ msgid "flow control insn inside a basic block"
+#~ msgstr "insn de contrle de flot l'intrieur d'un bloc de base"
+
+#~ msgid "missing barrier after block %i"
+#~ msgstr "barrire manquante aprs le boc %i"
+
+#~ msgid "verify_flow_info: Incorrect blocks for fallthru %i->%i"
+#~ msgstr "verify_flow_info: blocs incorrects pour le fallthru %i->%i"
+
+#~ msgid "verify_flow_info: Incorrect fallthru %i->%i"
+#~ msgstr "verify_flow_info: fallthru incorrect %i->%i"
+
+#~ msgid "wrong insn in the fallthru edge"
+#~ msgstr "insn errone dans l'arrte fallthru"
+
+#~ msgid "basic blocks not laid down consecutively"
+#~ msgstr "les blocs de base ne se suivent pas conscutivement"
+
+#~ msgid "insn outside basic block"
+#~ msgstr "insn l'extrieur de tout bloc de base"
+
+#~ msgid "return not followed by barrier"
+#~ msgstr "return n'est pas suivi d'une barrire"
+
+# FIXME
+# bb est une abrviation courante dans cette partie du fichier pour basic block
+#~ msgid "number of bb notes in insn chain (%d) != n_basic_blocks (%d)"
+#~ msgstr "nombre de bb not dans la chane d'insn (%d) != n_basic_blocks (%d)"
+
+#~ msgid "function body not available"
+#~ msgstr "corps de la fonction n'est pas disponible"
+
+#~ msgid "redefined extern inline functions are not considered for inlining"
+#~ msgstr "fonctions externes enlignes redfinies n'ont pas t retenues pour l'enlignage"
+
+#~ msgid "function not considered for inlining"
+#~ msgstr "fonction n'a pas t retenue pour l'enlignage"
+
+#~ msgid "function not inlinable"
+#~ msgstr "fonction ne peut tre enligne"
+
+#~ msgid "%D renamed after being referenced in assembly"
+#~ msgstr " %D renomm aprs avoir t rfrenc durant l'assemblage"
+
+#~ msgid "--param large-function-growth limit reached"
+#~ msgstr "--param large-function-growth limite atteinte"
+
+#~ msgid "--param large-function-growth limit reached while inlining the caller"
+#~ msgstr "--param large-function-growth limite atteinte lors de l'enlignage de l'appelant"
+
+#~ msgid "--param max-inline-insns-single limit reached"
+#~ msgstr "--param max-inline-insns-single limite atteinte"
+
+#~ msgid "--param max-inline-insns-single limit reached after inlining into the callee"
+#~ msgstr "--param max-inline-insns-single limite atteinte aprs l'enlignage dans l'appell"
+
+#~ msgid "--param inline-unit-growth limit reached"
+#~ msgstr "--param inline-unit-growth limite atteinte"
+
+#~ msgid "recursive inlining"
+#~ msgstr "enlignage rcursif"
+
+#~ msgid "internal error"
+#~ msgstr "erreur interne"
+
+#~ msgid "no arguments"
+#~ msgstr "pas d'argument"
+
+# I18N
+#~ msgid "fopen %s"
+#~ msgstr "fopen() %s"
+
+# I18N
+#~ msgid "fclose %s"
+#~ msgstr "fclose() %s"
+
+#~ msgid "collect2 version %s"
+#~ msgstr "collect2 version %s"
+
+#~ msgid "%d constructor(s) found\n"
+#~ msgstr "%d constructeur(s) trouv(s)\n"
+
+#~ msgid "%d destructor(s) found\n"
+#~ msgstr "%d destructeur(s) trouv(s)\n"
+
+#~ msgid "%d frame table(s) found\n"
+#~ msgstr "%d table(s) de trame trouve(s)\n"
+
+#~ msgid "%s terminated with signal %d [%s]%s"
+#~ msgstr "%s termin par le signal %d [%s]%s"
+
+#~ msgid "%s returned %d exit status"
+#~ msgstr "%s a retourn %d comme valeur de sortie"
+
+#~ msgid "[cannot find %s]"
+#~ msgstr "[%s introuvable]"
+
+#~ msgid "cannot find `%s'"
+#~ msgstr " %s introuvable"
+
+#~ msgid "redirecting stdout: %s"
+#~ msgstr "redirection de stdout : %s"
+
+# FIXME
+#~ msgid "[Leaving %s]\n"
+#~ msgstr "[Laissant %s]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "write_c_file - output name is %s, prefix is %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "write_c_file - le nom de sortie est %s, le prfixe est %s\n"
+
+#~ msgid "cannot find `nm'"
+#~ msgstr " nm introuvable"
+
+# I18N
+#~ msgid "pipe"
+#~ msgstr "pipe"
+
+# I18N
+#~ msgid "fdopen"
+#~ msgstr "fdopen"
+
+# I18N
+#~ msgid "dup2 %d 1"
+#~ msgstr "dup2 %d 1"
+
+# I18N
+#~ msgid "close %d"
+#~ msgstr "close %d"
+
+# I18N
+#~ msgid "execv %s"
+#~ msgstr "execv %s"
+
+#~ msgid "init function found in object %s"
+#~ msgstr "fonction init trouve dans l'objet %s"
+
+#~ msgid "fini function found in object %s"
+#~ msgstr "fonction fini() trouve dans l'objet %s"
+
+# I18N
+#~ msgid "fclose"
+#~ msgstr "fclose"
+
+#~ msgid "unable to open file '%s'"
+#~ msgstr "impossible d'ouvrir le fichier %s "
+
+#~ msgid "unable to stat file '%s'"
+#~ msgstr "impossible d'analyser le fichier %s avec stat()"
+
+#~ msgid "unable to mmap file '%s'"
+#~ msgstr "incpable de projeter en mmoire le fichier %s avec nmap()"
+
+#~ msgid "not found\n"
+#~ msgstr "introuvable\n"
+
+#~ msgid "dynamic dependency %s not found"
+#~ msgstr "dpendance dynamique %s introuvable"
+
+#~ msgid "bad magic number in file '%s'"
+#~ msgstr "le nombre magique du fichier %s est erron"
+
+#~ msgid "dynamic dependencies.\n"
+#~ msgstr "dpendances dynamiques.\n"
+
+#~ msgid "cannot find `ldd'"
+#~ msgstr " ldd introuvable"
+
+#~ msgid ""
+#~ "\n"
+#~ "ldd output with constructors/destructors.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "sortie de ldd avec constructeurs/destructeurs.\n"
+
+#~ msgid "unable to open dynamic dependency '%s'"
+#~ msgstr "incapable d'ouvrir la dpendance dynamique %s "
+
+#~ msgid "%s: not a COFF file"
+#~ msgstr "%s : n'est pas un fichier COFF"
+
+#~ msgid "%s: cannot open as COFF file"
+#~ msgstr "%s : ne peut ouvrir en tant que fichier COFF"
+
+# I18N
+#~ msgid "library lib%s not found"
+#~ msgstr "bibliothque lib%s introuvable"
+
+#~ msgid ""
+#~ ";; Combiner statistics: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ "\n"
+#~ msgstr ""
+#~ ";; Statistiques du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n"
+#~ ";; %d succs.\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "\n"
+#~ ";; Combiner totals: %d attempts, %d substitutions (%d requiring new space),\n"
+#~ ";; %d successes.\n"
+#~ msgstr ""
+#~ "\n"
+#~ ";; Totaux du combinateur : %d tentatives, %d substitutions (%d requrant un nouvel espace),\n"
+#~ ";; %d succs.\n"
+#~ "\n"
+
+#~ msgid "cannot convert to a pointer type"
+#~ msgstr "ne peut convertir en un type pointeur"
+
+#~ msgid "pointer value used where a floating point value was expected"
+#~ msgstr "valeur de pointeur utilise l o une valeur virgule flottante tait attendue"
+
+#~ msgid "aggregate value used where a float was expected"
+#~ msgstr "valeur d'aggrgat utilise l o un flottant tait attendu"
+
+#~ msgid "conversion to incomplete type"
+#~ msgstr "conversion vers un type incomplet"
+
+#~ msgid "can't convert between vector values of different size"
+#~ msgstr "ne peut convertir entre des valeurs de vecteurs de tailles diffrentes"
+
+#~ msgid "aggregate value used where an integer was expected"
+#~ msgstr "valeur d'aggrgat utilise l o un entier tait attendu"
+
+#~ msgid "pointer value used where a complex was expected"
+#~ msgstr "valeur de pointeur utilise l o un complexe tait attendu"
+
+#~ msgid "aggregate value used where a complex was expected"
+#~ msgstr "valeur d'aggrgat utilise l o un complexe tait attendu"
+
+#~ msgid "can't convert value to a vector"
+#~ msgstr "ne peut convertir une valeur en vecteur"
+
+#~ msgid "`%s' is not a gcov data file"
+#~ msgstr " %s n'est pas un fichier de donnes gcov"
+
+#~ msgid "`%s' is version `%.4s', expected version `%.4s'"
+#~ msgstr " %s est de version %.4s , version %.4s attendue"
+
+#~ msgid "coverage mismatch for function %u while reading execution counters."
+#~ msgstr "non concordance de la couverture pour la fonction %u lors de la lecture des compteurs d'excution"
+
+#~ msgid "checksum is %x instead of %x"
+#~ msgstr "somme de contrle est %x au lieu de %x"
+
+#~ msgid "number of counters is %d instead of %d"
+#~ msgstr "nombre de compteurs est %d au lieu de %d"
+
+#~ msgid "cannot merge separate %s counters for function %u"
+#~ msgstr "ne peut faire la fusion spare des compteurs %s pour la fonction %u"
+
+#~ msgid "`%s' has overflowed"
+#~ msgstr " %s a dborb"
+
+#~ msgid "`%s' is corrupted"
+#~ msgstr " %s est corrompu"
+
+#~ msgid "file %s not found, execution counts assumed to be zero"
+#~ msgstr "fichier %s non repr, compteur d'excution assum tre zro"
+
+#~ msgid "no coverage for function '%s' found."
+#~ msgstr "pas de couverture repre pour la fonction %s "
+
+#~ msgid "coverage mismatch for function '%s' while reading counter '%s'."
+#~ msgstr "non concordance de la couverture pour la fonction %s lors de la lecture des compteurs d'excution %s "
+
+#~ msgid "cannot open %s"
+#~ msgstr "ne peut ouvrir %s"
+
+#~ msgid "error writing `%s'"
+#~ msgstr "erreur d'criture dans %s"
+
+#~ msgid "\"%s\" is not a valid option to the preprocessor"
+#~ msgstr " %s n'est pas une option valide pour le prprocesseur"
+
+#~ msgid "too many input files"
+#~ msgstr "trop de fichiers d'entre"
+
+# FIXME: Initialis, ou ensembles?
+#~ msgid ";; Processing block from %d to %d, %d sets.\n"
+#~ msgstr ";; traitement du bloc de %d %d, %d initialiss.\n"
+
+#~ msgid "%s:%d: confused by earlier errors, bailing out\n"
+#~ msgstr "%s:%d: embrouill par les erreurs prcdentes, abandon\n"
+
+#~ msgid "compilation terminated.\n"
+#~ msgstr "compilation termine.\n"
+
+# FIXME
+#~ msgid "Internal compiler error: Error reporting routines re-entered.\n"
+#~ msgstr "erreur interne au compilateur : routine de rapport d'erreur prempte.\n"
+
+#~ msgid "in %s, at %s:%d"
+#~ msgstr "dans %s, %s:%d"
+
+# FIXME
+#~ msgid "dominator of %d should be %d, not %d"
+#~ msgstr "le dominateur de %d devrait tre %d, et non %d"
+
+#~ msgid "DW_LOC_OP %s not implemented\n"
+#~ msgstr "DW_LOC_OP %s n'est pas implant\n"
+
+#~ msgid "can't access real part of complex value in hard register"
+#~ msgstr "ne peut accder la partie relle d'une valeur complexe dans un registre matriel"
+
+#~ msgid "can't access imaginary part of complex value in hard register"
+#~ msgstr "ne peut accder la partie imaginaire d'une valeur complexe dans un registre matriel"
+
+#~ msgid "Invalid rtl sharing found in the insn"
+#~ msgstr "partage rtl invalide repr dans l'insn"
+
+#~ msgid "Shared rtx"
+#~ msgstr "rtx partag"
+
+#~ msgid "ICE: emit_insn used where emit_jump_insn needed:\n"
+#~ msgstr "ICE : emit_insn utilis l o emit_jump_insn tait attendu :\n"
+
+#~ msgid "abort in %s, at %s:%d"
+#~ msgstr "abandon dans %s, %s:%d"
+
+#~ msgid "exception handling disabled, use -fexceptions to enable"
+#~ msgstr "traitement des exceptions dsactiv, utiliser -fexceptions pour l'activer"
+
+#~ msgid "argument of `__builtin_eh_return_regno' must be constant"
+#~ msgstr "l'argument de __builtin_eh_return_regno doit tre une constante"
+
+#~ msgid "__builtin_eh_return not supported on this target"
+#~ msgstr " __builtin_eh_return n'est pas possible sur cette cible"
+
+# FIXME
+#~ msgid "stack limits not supported on this target"
+#~ msgstr "les limites de la pile ne sont pas supportes sur cette cible"
+
+#~ msgid "function using short complex types cannot be inline"
+#~ msgstr "un foncton utilisant un type complex short ne peut tre enligne"
+
+#~ msgid "%Jprior parameter's size depends on '%D'"
+#~ msgstr "%Jtaille du paramtre prcdent dpend de %D "
+
+#~ msgid "returned value in block_exit_expr"
+#~ msgstr "valeur retourne dans block_exit_expr"
+
+#~ msgid "cannot take the address of an unaligned member"
+#~ msgstr "ne peut prendre l'adresse d'un membre non align"
+
+#~ msgid "negative insn length"
+#~ msgstr "longueur ngative insn"
+
+#~ msgid "could not split insn"
+#~ msgstr "n'a pu sparer insn"
+
+#~ msgid "invalid `asm': "
+#~ msgstr " asm invalide: "
+
+#~ msgid "nested assembly dialect alternatives"
+#~ msgstr "assemblage de dialectes alternatifs imbriqus"
+
+#~ msgid "unterminated assembly dialect alternative"
+#~ msgstr "assemblage de dialectes alternatifs non termin"
+
+#~ msgid "operand number missing after %%-letter"
+#~ msgstr "numro d'oprande manquant aprs %%-letter"
+
+#~ msgid "operand number out of range"
+#~ msgstr "nombre d'oprandes hors limite"
+
+#~ msgid "invalid %%-code"
+#~ msgstr "%%-code est invalide"
+
+#~ msgid "`%%l' operand isn't a label"
+#~ msgstr "oprande %%l n'est pas une tiquette"
+
+#~ msgid "floating constant misused"
+#~ msgstr "constante flottante mal utilise"
+
+#~ msgid "invalid expression as operand"
+#~ msgstr "expression invalide comme oprande"
+
+#~ msgid "function might be possible candidate for attribute `noreturn'"
+#~ msgstr "fonction peut tre une possible candidate pour l'attribut norreturn "
+
+#~ msgid "`noreturn' function does return"
+#~ msgstr "fonction avec noreturn effectue des retour"
+
+#~ msgid "control reaches end of non-void function"
+#~ msgstr "contrle a atteint la fin non void de la fonction"
+
+#~ msgid "Attempt to delete prologue/epilogue insn:"
+#~ msgstr "Tentative pour dtruire le prologue/pilogue insn:"
+
+#~ msgid "comparison is always %d due to width of bit-field"
+#~ msgstr "comparaison est toujours %d en raison de la largeur du champ de bits"
+
+#~ msgid "comparison is always %d"
+#~ msgstr "comparaison est toujours %d"
+
+#~ msgid "`or' of unmatched not-equal tests is always 1"
+#~ msgstr " or de tests non pair de non galit est troujours 1"
+
+#~ msgid "`and' of mutually exclusive equal-tests is always 0"
+#~ msgstr " and de tests d'galit mutuellement exclusifs est toujours 0"
+
+#~ msgid "fold check: original tree changed by fold"
+#~ msgstr "vrification fold: arbre originale modifi par fold"
+
+#~ msgid "%Jsize of variable '%D' is too large"
+#~ msgstr "%Jtaille de la variable %D est trop grande"
+
+#~ msgid "impossible constraint in `asm'"
+#~ msgstr "contrainte impossible dans asm "
+
+#~ msgid "%J'%D' might be used uninitialized in this function"
+#~ msgstr "%J %D pourrait tre utilis sans tre initialis dans cette fonction"
+
+#~ msgid "%Jvariable '%D' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "%Jvariable %D pourrait tre maltraite par un longjmp ou un vfork "
+
+#~ msgid "%Jargument '%D' might be clobbered by `longjmp' or `vfork'"
+#~ msgstr "%Jargument %D pourrait tre maltraite par un longjmp ou un vfork "
+
+#~ msgid "function returns an aggregate"
+#~ msgstr "fonction retourne un aggrgat"
+
+#~ msgid "%Junused parameter '%D'"
+#~ msgstr "%Jparamtre %D inutilis"
+
+#~ msgid "ambiguous abbreviation %s"
+#~ msgstr "abrviation %s est ambigu"
+
+#~ msgid "incomplete `%s' option"
+#~ msgstr "option %s est incomplte"
+
+#~ msgid "missing argument to `%s' option"
+#~ msgstr "argument manquant l'option %s "
+
+#~ msgid "extraneous argument to `%s' option"
+#~ msgstr "argument superflu l'option %s "
+
+#~ msgid "Using built-in specs.\n"
+#~ msgstr "Utilisation des specs internes.\n"
+
+#~ msgid ""
+#~ "Setting spec %s to '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Initialisation des spec %s %s \n"
+#~ "\n"
+
+#~ msgid "Reading specs from %s\n"
+#~ msgstr "Lecture des spcification partir de %s\n"
+
+#~ msgid "specs %%include syntax malformed after %ld characters"
+#~ msgstr "syntaxe des specs %%include mal compose aprs %ld caractres"
+
+#~ msgid "could not find specs file %s\n"
+#~ msgstr "ne peut reprer le fichiers des specs %s\n"
+
+#~ msgid "specs %%rename syntax malformed after %ld characters"
+#~ msgstr "specs de la syntaxe %%rename mal composes aprs %ld caractres"
+
+#~ msgid "specs %s spec was not found to be renamed"
+#~ msgstr "specs de la spcification %s n'a pas t trouv pour tre renommer"
+
+#~ msgid "%s: attempt to rename spec '%s' to already defined spec '%s'"
+#~ msgstr "%s: tentative pour renommner la spcification %s un spcification %s dj dfinie"
+
+#~ msgid "rename spec %s to %s\n"
+#~ msgstr "renomm les specs %s %s\n"
+
+#~ msgid ""
+#~ "spec is '%s'\n"
+#~ "\n"
+#~ msgstr ""
+#~ "spec est %s \n"
+#~ "\n"
+
+#~ msgid "specs unknown %% command after %ld characters"
+#~ msgstr "specs inconnus de la commande %% aprs %ld caractres"
+
+#~ msgid "specs file malformed after %ld characters"
+#~ msgstr "fichier de specs mal compos aprs %ld caractres"
+
+#~ msgid "spec file has no spec for linking"
+#~ msgstr "fichier de specs n'a pas de spcification pour l'dition de liens"
+
+#~ msgid "-pipe not supported"
+#~ msgstr "-pipe n'est pas support"
+
+#~ msgid ""
+#~ "\n"
+#~ "Go ahead? (y or n) "
+#~ msgstr ""
+#~ "\n"
+#~ "Aller de l'avant? (y ou n) "
+
+#~ msgid ""
+#~ "Internal error: %s (program %s)\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Erreur internal error: %s (programme %s)\n"
+#~ "SVP soumettre un rapport complet d'anomalies.\n"
+#~ "Consulter %s pour les instructions."
+
+#~ msgid "# %s %.2f %.2f\n"
+#~ msgstr "# %s %.2f %.2f\n"
+
+#~ msgid "Usage: %s [options] file...\n"
+#~ msgstr "Usage: %s [options] fichier...\n"
+
+#~ msgid "Options:\n"
+#~ msgstr "Options:\n"
+
+#~ msgid " -pass-exit-codes Exit with highest error code from a phase\n"
+#~ msgstr " -pass-exit-codes quitter avec le plus grand code d'erreur de la phase\n"
+
+#~ msgid " --help Display this information\n"
+#~ msgstr " --help afficher l'aide mmoire\n"
+
+#~ msgid " --target-help Display target specific command line options\n"
+#~ msgstr " --target-help afficher les options spcifiques de la ligne de commande\n"
+
+#~ msgid " (Use '-v --help' to display command line options of sub-processes)\n"
+#~ msgstr " (Utiliser -v --help pour afficher les options de la ligne de commande des sous-processus)\n"
+
+#~ msgid " -dumpspecs Display all of the built in spec strings\n"
+#~ msgstr " -dumpspecs afficher tous les construits des chanes de specs\n"
+
+#~ msgid " -dumpversion Display the version of the compiler\n"
+#~ msgstr " -dumpversion afficher la version du compilateur\n"
+
+#~ msgid " -dumpmachine Display the compiler's target processor\n"
+#~ msgstr " -dumpmachine afficher le processeur cibl par le compilateur\n"
+
+#~ msgid " -print-search-dirs Display the directories in the compiler's search path\n"
+#~ msgstr " -print-search-dirs afficher les rpertoires du chemin de recherche du compiltateur\n"
+
+#~ msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n"
+#~ msgstr " -print-libgcc-file-name afficher le nom de la bibliothque compagne du compilateur\n"
+
+#~ msgid " -print-file-name=<lib> Display the full path to library <lib>\n"
+#~ msgstr " -print-file-name=<lib> afficher le chemin d'accs complet vers la bibliothque <lib>\n"
+
+#~ msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n"
+#~ msgstr " -print-prog-name=<prog> afficher le chemin d'accs complet vers le composant du compilateur <prog>\n"
+
+#~ msgid " -print-multi-directory Display the root directory for versions of libgcc\n"
+#~ msgstr " -print-multi-directory afficher la racine du rpertoire des version libgcc\n"
+
+#~ msgid ""
+#~ " -print-multi-lib Display the mapping between command line options and\n"
+#~ " multiple library search directories\n"
+#~ msgstr ""
+#~ " -print-multi-lib Afficher la table de projection entre les options de\n"
+#~ " la ligne de commande et les multiples rpertoires de\n"
+#~ " recherches des bibliothques\n"
+
+#~ msgid " -print-multi-os-directory Display the relative path to OS libraries\n"
+#~ msgstr " -print-multi-os-directory afficher le chemin relatif du rpertoire vers les librairies de l'OS\n"
+
+#~ msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n"
+#~ msgstr " -Wa,<options> passer les <options> spares par des virgules l'assembleur\n"
+
+#~ msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n"
+#~ msgstr " -Wp,<options> passer les <options> spares par des virgules au prprocesseur\n"
+
+#~ msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n"
+#~ msgstr " -Wl,<options> passer les <options> spares par des virgules l'diteur de liens\n"
+
+#~ msgid " -Xassembler <arg> Pass <arg> on to the assembler\n"
+#~ msgstr " -Xassembler <arg> passer l'<arg>ument l'assembleur\n"
+
+#~ msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n"
+#~ msgstr " -Xpreprocessor <arg> passer l'<arg>ument au pr-processeur\n"
+
+#~ msgid " -Xlinker <arg> Pass <arg> on to the linker\n"
+#~ msgstr " -Xlinker <argument> passer l'<argument> l'diteur de liens\n"
+
+#~ msgid " -save-temps Do not delete intermediate files\n"
+#~ msgstr " -save-temps ne pas dtruire les fichiers intermdiaires\n"
+
+#~ msgid " -pipe Use pipes rather than intermediate files\n"
+#~ msgstr " -pipe utiliser des pipes au lieu de fichiers intermdiares\n"
+
+#~ msgid " -time Time the execution of each subprocess\n"
+#~ msgstr " -time mesurer le temps d'excution de chaque sous-processus\n"
+
+#~ msgid " -specs=<file> Override built-in specs with the contents of <file>\n"
+#~ msgstr " -specs=<fichier> craser les specs internes l'aide du contenu du <fichier>\n"
+
+#~ msgid " -std=<standard> Assume that the input sources are for <standard>\n"
+#~ msgstr " -std=<standard> Prsumer que les fichiers sources respectent le <standard>\n"
+
+#~ msgid " -B <directory> Add <directory> to the compiler's search paths\n"
+#~ msgstr " -B <rpertoire> ajouter le <rpertoire> aux chemins de recherche du compilateur\n"
+
+#~ msgid " -b <machine> Run gcc for target <machine>, if installed\n"
+#~ msgstr " -b <machine> excuter gcc pour la <machine> cible, si install\n"
+
+#~ msgid " -V <version> Run gcc version number <version>, if installed\n"
+#~ msgstr " -V <version> excuter le numro de <version> de gcc, si installe\n"
+
+#~ msgid " -v Display the programs invoked by the compiler\n"
+#~ msgstr " -v afficher les programmes invoqus par le compilateur\n"
+
+#~ msgid " -### Like -v but options quoted and commands not executed\n"
+#~ msgstr " -### identique -v mais les options et les commandes entre guillemets ne sont pas excutes\n"
+
+#~ msgid " -E Preprocess only; do not compile, assemble or link\n"
+#~ msgstr " -E pr-traiter seulement; ne pas compiler, assembler ou diter les liens\n"
+
+#~ msgid " -S Compile only; do not assemble or link\n"
+#~ msgstr " -S compiler seulement; ne pas assembler ou diter les liens\n"
+
+#~ msgid " -c Compile and assemble, but do not link\n"
+#~ msgstr " -S compiler et assembler, mais ne pas diter les liens\n"
+
+#~ msgid " -o <file> Place the output into <file>\n"
+#~ msgstr " -o <fichier> placer la sortie dans le <fichier>\n"
+
+#~ msgid ""
+#~ " -x <language> Specify the language of the following input files\n"
+#~ " Permissible languages include: c c++ assembler none\n"
+#~ " 'none' means revert to the default behavior of\n"
+#~ " guessing the language based on the file's extension\n"
+#~ msgstr ""
+#~ " -x <langage> spcifier le langage des fichiers suivants d'entre\n"
+#~ " Les langages permis sont: c c++ assembler none\n"
+#~ " none signifiant d'utiliser le comportement par dfaut\n"
+#~ " en tentant d'identifier le langage par l'extension du fichier\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Options starting with -g, -f, -m, -O, -W, or --param are automatically\n"
+#~ " passed on to the various sub-processes invoked by %s. In order to pass\n"
+#~ " other options on to these processes the -W<letter> options must be used.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Options dbutant par -g, -f, -m, -O, -W, ou --param sont automatiquement\n"
+#~ " passs aux divers sous-processus invoqus par %s. Afin de passer\n"
+#~ " les autres options ces processus l'option -W<lettre> doit tre utilis.\n"
+
+#~ msgid "`-%c' option must have argument"
+#~ msgstr "l'option -%c require un argument"
+
+#~ msgid "couldn't run `%s': %s"
+#~ msgstr "impossible d'excuter %s : %s"
+
+#~ msgid "%s (GCC) %s\n"
+#~ msgstr "%s (GCC) %s\n"
+
+#~ msgid "(C)"
+#~ msgstr ""
+
+#~ msgid ""
+#~ "This is free software; see the source for copying conditions. There is NO\n"
+#~ "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ce logiciel est libre; voir les sources pour les conditions de copie. Il n'y a PAS\n"
+#~ "GARANTIE; ni implicite pour le MARCHANDAGE ou pour un BUT PARTICULIER.\n"
+#~ "\n"
+
+#~ msgid "argument to `-Xlinker' is missing"
+#~ msgstr "argument de -Xlinker est manquant"
+
+#~ msgid "argument to `-Xpreprocessor' is missing"
+#~ msgstr "argument de -Xpreprocessor est manquant"
+
+#~ msgid "argument to `-Xassembler' is missing"
+#~ msgstr "argument de -Xassembler est manquant"
+
+#~ msgid "argument to `-l' is missing"
+#~ msgstr "argument pour -l est manquant"
+
+#~ msgid "argument to `-specs' is missing"
+#~ msgstr "argument de -specs est manquant"
+
+#~ msgid "argument to `-specs=' is missing"
+#~ msgstr "argument de -specs= est manquant"
+
+#~ msgid "`-%c' must come at the start of the command line"
+#~ msgstr " -%c doit apparatre au dbut de la ligne de commande"
+
+#~ msgid "argument to `-B' is missing"
+#~ msgstr "argument de -B est manquant"
+
+#~ msgid "warning: -pipe ignored because -save-temps specified"
+#~ msgstr "AVERTISSEMENT: -pipe ignor parce que -save-temps a t spcifi"
+
+#~ msgid "warning: -pipe ignored because -time specified"
+#~ msgstr "AVERTISSEMENT: -pipe ignor parce que -time a t spcifi"
+
+#~ msgid "argument to `-x' is missing"
+#~ msgstr "argument pour -x est manquant"
+
+#~ msgid "argument to `-%s' is missing"
+#~ msgstr "argument pour -%s est manquant"
+
+#~ msgid "warning: `-x %s' after last input file has no effect"
+#~ msgstr "AVERTISSEMENT: -x %s aprs le dernier fichier d'entre n'a pas d'effet"
+
+#~ msgid "invalid specification! Bug in cc"
+#~ msgstr "spcification invalide! Bug dans cc."
+
+#~ msgid "%s\n"
+#~ msgstr "%s\n"
+
+#~ msgid "spec failure: '%%*' has not been initialized by pattern match"
+#~ msgstr "chec du spec: %%* n'a pas t initialis par concordance du canevas"
+
+#~ msgid "warning: use of obsolete %%[ operator in specs"
+#~ msgstr "AVERTISSEMENT: utilisation obsolte de l'oprateur %%[ dans les specs"
+
+#~ msgid "Processing spec %c%s%c, which is '%s'\n"
+#~ msgstr "Traitement du spec %c%s%c, lequel est %s \n"
+
+#~ msgid "spec failure: unrecognized spec option '%c'"
+#~ msgstr "chec de spec: option %c de spec non reconnue"
+
+#~ msgid "unknown spec function `%s'"
+#~ msgstr "spcification de fonction inconnue %s :"
+
+#~ msgid "error in args to spec function `%s'"
+#~ msgstr "ERREUR d'arguments pour la spcification de fonction %s "
+
+#~ msgid "malformed spec function name"
+#~ msgstr "nom de spcification de fonction mal compos"
+
+#~ msgid "no arguments for spec function"
+#~ msgstr "aucun argument pour la spcification de fonction"
+
+#~ msgid "malformed spec function arguments"
+#~ msgstr "arguments de spcification de fonction mal composs"
+
+#~ msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC."
+#~ msgstr "chec de spcification: plus d'un argument SYSROOT_SUFFIX_SPEC."
+
+#~ msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC."
+#~ msgstr "chec de spcification: plus d'un argument SYSROOT_HEADERS_SUFFIX_SPEC."
+
+#~ msgid "unrecognized option `-%s'"
+#~ msgstr "option -%s non reconnue"
+
+#~ msgid "install: %s%s\n"
+#~ msgstr "installs: %s%s\n"
+
+#~ msgid "programs: %s\n"
+#~ msgstr "programmes: %s\n"
+
+#~ msgid "libraries: %s\n"
+#~ msgstr "libraries: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
+
+#~ msgid "Configured with: %s\n"
+#~ msgstr "Configur avec: %s\n"
+
+#~ msgid "Thread model: %s\n"
+#~ msgstr "Modle de thread: %s\n"
+
+#~ msgid "gcc version %s\n"
+#~ msgstr "version gcc %s\n"
+
+#~ msgid "gcc driver version %s executing gcc version %s\n"
+#~ msgstr "version du pilote gcc %s excutant le version %s de gcc\n"
+
+#~ msgid "no input files"
+#~ msgstr "pas de fichier l'entre"
+
+#~ msgid "%s: linker input file unused because linking not done"
+#~ msgstr "%s: fichier d'entre d'dition de liens n'est pas utilis parce l'dition de lien n'a pas t faite"
+
+#~ msgid "cannot specify -o with -c or -S and multiple languages"
+#~ msgstr "ne peut spcifier -o avec -c ou -S et de multiples langages"
+
+#~ msgid "%s: %s compiler not installed on this system"
+#~ msgstr "%s: %s compilateur n'est pas install sur ce systme"
+
+#~ msgid "language %s not recognized"
+#~ msgstr "language %s n'est pas reconnu"
+
+#~ msgid "internal gcc abort"
+#~ msgstr "abandon interne de gcc"
+
+#~ msgid "Internal gcov abort.\n"
+#~ msgstr "Abandon interne de gcov.\n"
+
+#~ msgid ""
+#~ "Usage: gcov [OPTION]... SOURCEFILE\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Usage: gcov [OPTION]... FICHIER-SOURCE\n"
+#~ "\n"
+
+#~ msgid ""
+#~ "Print code coverage information.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Produire les informations de la couverture du code.\n"
+#~ "\n"
+
+#~ msgid " -h, --help Print this help, then exit\n"
+#~ msgstr " -h, --help afficher l'aide mmoire\n"
+
+#~ msgid " -v, --version Print version number, then exit\n"
+#~ msgstr " -v, --version excuter le numro de <version> de gcc, si installe\n"
+
+#~ msgid " -a, --all-blocks Show information for every basic block\n"
+#~ msgstr " -a, --all-blocks afficher l'information pour chaque bloc de base\n"
+
+#~ msgid " -b, --branch-probabilities Include branch probabilities in output\n"
+#~ msgstr " -b, --branch-probabilities inclure les probabilits de branchement dans la sortie\n"
+
+#~ msgid ""
+#~ " -c, --branch-counts Given counts of branches taken\n"
+#~ " rather than percentages\n"
+#~ msgstr ""
+#~ " -c, --branch-counts donner le dcompte de branchements pris\n"
+#~ " plutt que les pourcentages\n"
+
+#~ msgid " -n, --no-output Do not create an output file\n"
+#~ msgstr " -n, --no-output ne crer de fichier de sortie\n"
+
+#~ msgid ""
+#~ " -l, --long-file-names Use long output file names for included\n"
+#~ " source files\n"
+#~ msgstr ""
+#~ " -l, --long-file-names utiliser des longs noms de fichiers pour\n"
+#~ " les fichier sources d'inclusion\n"
+
+#~ msgid " -f, --function-summaries Output summaries for each function\n"
+#~ msgstr " -f, --function-summaries produire un sommaire pour chaque fonction\n"
+
+#~ msgid " -o, --object-directory DIR|FILE Search for object files in DIR or called FILE\n"
+#~ msgstr " -o, --object-directory RP|FICHIERS rechercher les fichiers objets dans le RPertoire ou appells FICHIERS\n"
+
+#~ msgid " -p, --preserve-paths Preserve all pathname components\n"
+#~ msgstr " -p, --preserve-paths prserver tous les composants des chemins d'accs\n"
+
+#~ msgid " -u, --unconditional-branches Show unconditional branch counts too\n"
+#~ msgstr " -u, --unconditional-branches afficher les compteurs de branchement inconditionnel aussi\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "For bug reporting instructions, please see:\n"
+#~ "%s.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pour les instructons afin de rapporter des anomales, SVP consulter:\n"
+#~ "%s.\n"
+
+#~ msgid "gcov (GCC) %s\n"
+#~ msgstr "gcov (GCC) %s\n"
+
+#~ msgid ""
+#~ "This is free software; see the source for copying conditions.\n"
+#~ "There is NO warranty; not even for MERCHANTABILITY or \n"
+#~ "FITNESS FOR A PARTICULAR PURPOSE.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Ce logiciel est libre; voir les sources pour les conditions de copie. \n"
+#~ "Il n'y a PAS GARANTIE; ni implicite pour le MARCHANDAGE ou\n"
+#~ "pour un BUT PARTICULIER.\n"
+#~ "\n"
+
+#~ msgid "%s:no functions found\n"
+#~ msgstr "%s: aucune fonction repre\n"
+
+# I18N
+#~ msgid "\n"
+#~ msgstr "\n"
+
+#~ msgid "%s:creating `%s'\n"
+#~ msgstr "%s: cration de %s \n"
+
+#~ msgid "%s:error writing output file `%s'\n"
+#~ msgstr "%s: ERREUR d'criture dans le fichier de sortie %s .\n"
+
+#~ msgid "%s:could not open output file `%s'\n"
+#~ msgstr "%s: ne peut ouvrir le fichier de sortie %s .\n"
+
+#~ msgid "%s:cannot open graph file\n"
+#~ msgstr "%s: ne peut ouvrir le fichier de graphe\n"
+
+#~ msgid "%s:not a gcov graph file\n"
+#~ msgstr "%s: n'est pas un fichier de graphe gcov\n"
+
+#~ msgid "%s:version `%.4s', prefer `%.4s'\n"
+#~ msgstr "%s:version %.4s , prfre %.4s \n"
+
+#~ msgid "%s:already seen blocks for `%s'\n"
+#~ msgstr "%s:blocs dj vus pour %s \n"
+
+#~ msgid "%s:corrupted\n"
+#~ msgstr "%s:corrompu\n"
+
+#~ msgid "%s:cannot open data file\n"
+#~ msgstr "%s: ne peut ouvrir le fichier de donnes\n"
+
+#~ msgid "%s:not a gcov data file\n"
+#~ msgstr "%s: n'est pas un fichier de donnes gcov\n"
+
+#~ msgid "%s:version `%.4s', prefer version `%.4s'\n"
+#~ msgstr "%s:version %.4s , prfre la version %.4s \n"
+
+#~ msgid "%s:stamp mismatch with graph file\n"
+#~ msgstr "%s: estampille ne concorde par avec le fichier de graphe\n"
+
+#~ msgid "%s:unknown function `%u'\n"
+#~ msgstr "%s: fonction inconnue %u \n"
+
+#~ msgid "%s:profile mismatch for `%s'\n"
+#~ msgstr "%s: profile ne concorde pas pour %s \n"
+
+#~ msgid "%s:overflowed\n"
+#~ msgstr "%s: dbordement\n"
+
+#~ msgid "%s:`%s' lacks entry and/or exit blocks\n"
+#~ msgstr "%s: %s manque de blocs d'entre et/ou de sortie\n"
+
+#~ msgid "%s:`%s' has arcs to entry block\n"
+#~ msgstr "%s: %s possde des arcs vers un bloc d'entre\n"
+
+#~ msgid "%s:`%s' has arcs from exit block\n"
+#~ msgstr "%s: %s possdes des arcs partir du bloc de sortie\n"
+
+#~ msgid "%s:graph is unsolvable for `%s'\n"
+#~ msgstr "%s: graphe n'a pas de solution pour %s \n"
+
+#~ msgid "%s `%s'\n"
+#~ msgstr "%s %s \n"
+
+#~ msgid "Lines executed:%s of %d\n"
+#~ msgstr "Lignes excutes: %s de %d\n"
+
+#~ msgid "No executable lines"
+#~ msgstr "Auncue ligne excutable"
+
+#~ msgid "Branches executed:%s of %d\n"
+#~ msgstr "Branchements excuts: %s de %d\n"
+
+#~ msgid "Taken at least once:%s of %d\n"
+#~ msgstr "Branchements pris au moins une fois: %s de %d\n"
+
+#~ msgid "No branches\n"
+#~ msgstr "Pas de branchement\n"
+
+#~ msgid "Calls executed:%s of %d\n"
+#~ msgstr "Appels excuts: %s de %d\n"
+
+#~ msgid "No calls\n"
+#~ msgstr "Pas d'appel\n"
+
+#~ msgid "%s:no lines for `%s'\n"
+#~ msgstr "%s: pas de ligne pour %s \n"
+
+#~ msgid "call %2d returned %s\n"
+#~ msgstr "appel %2d a retourn %s\n"
+
+# FIXME: c'est de l'assembleur ?
+#~ msgid "call %2d never executed\n"
+#~ msgstr "call %2d n'est jamais t excut\n"
+
+#~ msgid "branch %2d taken %s%s\n"
+#~ msgstr "branchement %2d a pris %s%s\n"
+
+#~ msgid "branch %2d never executed\n"
+#~ msgstr "branchement %2d n'a jamais t excut\n"
+
+#~ msgid "unconditional %2d taken %s\n"
+#~ msgstr "inconditionnel %2d a pris %s\n"
+
+# FIXME: c'est de l'assembleur ?
+#~ msgid "unconditional %2d never executed\n"
+#~ msgstr "inconditionnel %2d n'a jamais t excut\n"
+
+#~ msgid "%s:cannot open source file\n"
+#~ msgstr "%s: ne peut ouvrir le fichier source\n"
+
+#~ msgid "%s:source file is newer than graph file `%s'\n"
+#~ msgstr "%s: fichier source est plus rcent que le fichier graphe %s \n"
+
+#~ msgid "GCSE disabled"
+#~ msgstr "GCSE dsactiv"
+
+#~ msgid "NULL pointer checks disabled"
+#~ msgstr "vrification des pointeurs NULS dsactive"
+
+#~ msgid "jump bypassing disabled"
+#~ msgstr "saut d'vitement dsactiv"
+
+#~ msgid "%s: %d basic blocks and %d edges/basic block"
+#~ msgstr "%s: %d blocs de base et %d blocs edges/basic"
+
+#~ msgid "%s: %d basic blocks and %d registers"
+#~ msgstr "%s: %d blocs basic et %d registres"
+
+#~ msgid "can't write PCH file: %m"
+#~ msgstr "ne peut crire le fichier PCH: %m"
+
+#~ msgid "can't get position in PCH file: %m"
+#~ msgstr "ne peut obtenir la position dans le fichier PCH: %m"
+
+#~ msgid "can't write padding to PCH file: %m"
+#~ msgstr "ne peut crire de remplissage dans le fichier PCH: %m"
+
+#~ msgid "can't read PCH file: %m"
+#~ msgstr "ne peut lire le fichier PCH: %m"
+
+#~ msgid "had to relocate PCH"
+#~ msgstr "a d relocaliser PCH"
+
+#~ msgid "open /dev/zero: %m"
+#~ msgstr "ouverture de /dev/zero: %m"
+
+#~ msgid "can't write PCH file"
+#~ msgstr "ne peut crire dans le fichier PCH"
+
+#~ msgid "Generating PCH files is not supported when using ggc-simple.c"
+#~ msgstr "Gnration des ficheirs PCH n'est pas support lors de l'utilisation de ggc-simple.c"
+
+#~ msgid "%s cannot be used in asm here"
+#~ msgstr "%s ne peut tre utilis dans asm ici"
+
+#~ msgid "can't open %s: %m"
+#~ msgstr "ne peut ouvrir %s: %m"
+
+#~ msgid "fix_sched_param: unknown param: %s"
+#~ msgstr "fix_sched_param: paramtre inconnu: %s"
+
+#~ msgid "function cannot be inline"
+#~ msgstr "fonction ne pas pas tre enligne"
+
+#~ msgid "varargs function cannot be inline"
+#~ msgstr "varargs de fonction ne peuvent par tre enligne"
+
+#~ msgid "function using alloca cannot be inline"
+#~ msgstr "fonction utilisant alloca ne pas pas tre enligne"
+
+#~ msgid "function using longjmp cannot be inline"
+#~ msgstr "fonction utilisant longjmp ne peut pas tre enligne"
+
+#~ msgid "function using setjmp cannot be inline"
+#~ msgstr "fonction utilisant setjmp ne peut pas tre enligne"
+
+#~ msgid "function uses __builtin_eh_return"
+#~ msgstr "fonction utilise __builtin_eh_return "
+
+#~ msgid "function with nested functions cannot be inline"
+#~ msgstr "fonction avec fonctions imbriques ne peut pas tre enligne"
+
+#~ msgid "function with label addresses used in initializers cannot inline"
+#~ msgstr "un fonction avec tiquette d'adresses utilise pour l'initialisation ne peut pas tre enligne (inline)"
+
+#~ msgid "function too large to be inline"
+#~ msgstr "fonction trop grande pour tre enligne"
+
+#~ msgid "no prototype, and parameter address used; cannot be inline"
+#~ msgstr "pas de prototpe, et de adresse de paramtre utilise; ne peut pas tre enligne"
+
+#~ msgid "inline functions not supported for this return value type"
+#~ msgstr "fonctions enligne ne peuvent pas tre supportes pour ce type de valeur retourne"
+
+#~ msgid "function with varying-size return value cannot be inline"
+#~ msgstr "fonction avec une valeur retourne de taille variable ne peut pas tre enligne"
+
+#~ msgid "function with varying-size parameter cannot be inline"
+#~ msgstr "fonction avec un paramtre de taille variable ne peut pas tre enligne"
+
+#~ msgid "function with transparent unit parameter cannot be inline"
+#~ msgstr "fonction avec une unit transparente de paramtre ne peut pas tre enligne"
+
+#~ msgid "function with computed jump cannot inline"
+#~ msgstr "fonction avec un saut calcul ne peut pas tre enligne"
+
+#~ msgid "function with nonlocal goto cannot be inline"
+#~ msgstr "fonction avec un goto non local ne peut pas tre enligne"
+
+#~ msgid "function with target specific attribute(s) cannot be inlined"
+#~ msgstr "fonction avec des attributs spcifiques la cible ne peut pas tre enligne"
+
+# FIXME: c'est de l'assembleur ?
+#~ msgid "%Hwill never be executed"
+#~ msgstr "%Hne sera jamais excut"
+
+#~ msgid "This switch lacks documentation"
+#~ msgstr "Cette option manque de documentation"
+
+#~ msgid "command line option \"%s\" is valid for %s but not for %s"
+#~ msgstr "l'option de la ligne de commande \"%s\" est valide pour %s mais pas pour %s"
+
+#~ msgid "missing argument to \"%s\""
+#~ msgstr "argument manquant \"%s\""
+
+#~ msgid "argument to \"%s\" should be a non-negative integer"
+#~ msgstr "argument de \"%s\" doit tre un entier non ngatif"
+
+#~ msgid "unrecognized command line option \"%s\""
+#~ msgstr "option \"%s\" de la ligne de commande non reconnue"
+
+#~ msgid "-Wuninitialized is not supported without -O"
+#~ msgstr "-Wuninitialized n'est pas support sans -O"
+
+#~ msgid "unrecognized register name \"%s\""
+#~ msgstr "nom de registre non reconnue \"%s\""
+
+#~ msgid "unknown tls-model \"%s\""
+#~ msgstr "tls-model \"%s\" inconnu"
+
+#~ msgid "-fwritable-strings is deprecated; see documentation for details"
+#~ msgstr "-fwritable-strings est obsolte, voir la documentation pour les dtails"
+
+#~ msgid "%s: --param arguments should be of the form NAME=VALUE"
+#~ msgstr "%s: arguments de --param devrait tre de la forme NOM=VALEUR"
+
+#~ msgid "invalid --param value `%s'"
+#~ msgstr "valeur de --param invalide %s "
+
+#~ msgid "target system does not support debug output"
+#~ msgstr "le ssytme cible ne supporte pas la sortie pour mise au point"
+
+#~ msgid "debug format \"%s\" conflicts with prior selection"
+#~ msgstr "le format de mise au point \"%s\" entre en conflit avec une slection prcdente"
+
+#~ msgid "unrecognised debug output level \"%s\""
+#~ msgstr "niveau de sortie de mise au point non reconnu \"%s\""
+
+#~ msgid "debug output level %s is too high"
+#~ msgstr "niveau de sortie de mise au point %s est trop lev"
+
+#~ msgid "The following options are language-independent:\n"
+#~ msgstr "Les options suivantes sont indpendantes du langage:\n"
+
+#~ msgid ""
+#~ "The %s front end recognizes the following options:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "L'interface %s reconnat les options suivantes:\n"
+#~ "\n"
+
+#~ msgid "The --param option recognizes the following as parameters:\n"
+#~ msgstr "L'option --param reconnat les paramtres suivant:\n"
+
+#~ msgid "invalid parameter `%s'"
+#~ msgstr "paramtre invalide %s "
+
+#~ msgid "corrupted profile info: run_max * runs < sum_max"
+#~ msgstr "profile info corrompu: run_max * runs < sum_max"
+
+#~ msgid "corrupted profile info: sum_all is smaller than sum_max"
+#~ msgstr "info profile corrompu: sum_all est plus petit que sum_max"
+
+#~ msgid "corrupted profile info: edge from %i to %i exceeds maximal count"
+#~ msgstr "info de profilage corrompu: bordure (edge) %i %i excde le compte maximal"
+
+#~ msgid "corrupted profile info: number of iterations for basic block %d thought to be %i"
+#~ msgstr "info de profilage corrompu: nombre d'itrations pour un bloc basic %d devrait tre %i"
+
+#~ msgid "corrupted profile info: number of executions for edge %d-%d thought to be %i"
+#~ msgstr "info de profilage corrompu: nombre d'excutions pour bordures (edge) %d-%d devrait tre %i"
+
+#~ msgid "%s: internal abort\n"
+#~ msgstr "%s: abandon interne\n"
+
+#~ msgid "%s: error writing file `%s': %s\n"
+#~ msgstr "%s: erreur d'criture au fichier %s : %s\n"
+
+#~ msgid "%s: usage '%s [ -VqfnkN ] [ -i <istring> ] [ filename ... ]'\n"
+#~ msgstr "%s: usage %s [ -VqfnkN ] [ -i <chane> ] [ nom-de-fichier ... ] \n"
+
+#~ msgid "%s: usage '%s [ -VqfnkNlgC ] [ -B <dirname> ] [ filename ... ]'\n"
+#~ msgstr "%s: usage %s [ -VqfnkNlgC ] [ -B <rpertoire> ] [ nom-de-fichier ... ] \n"
+
+#~ msgid "%s: warning: no read access for file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accs en lecture du fichier %s \n"
+
+#~ msgid "%s: warning: no write access for file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accs en criture du fichier %s \n"
+
+#~ msgid "%s: warning: no write access for dir containing `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: aucun accs en criture du rpertoire contenant %s \n"
+
+#~ msgid "%s: invalid file name: %s\n"
+#~ msgstr "%s: nom de fichier invalide: %s\n"
+
+#~ msgid "%s: %s: can't get status: %s\n"
+#~ msgstr "%s: %s: ne peut obtenir l'tat: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: fatal error: aux info file corrupted at line %d\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: erreur fatale: fichier auxiliaire d'infos la ligne %d\n"
+
+#~ msgid "%s:%d: declaration of function `%s' takes different forms\n"
+#~ msgstr "%s:%d: dclaration de fonction %s prend diffrentes formes\n"
+
+#~ msgid "%s: compiling `%s'\n"
+#~ msgstr "%s: en compilation %s \n"
+
+#~ msgid "%s: wait: %s\n"
+#~ msgstr "%s: en attente: %s\n"
+
+#~ msgid "%s: subprocess got fatal signal %d\n"
+#~ msgstr "%s: sous-processus a reu le signal fatal %d\n"
+
+#~ msgid "%s: %s exited with status %d\n"
+#~ msgstr "%s: %s a termin avec le statut %d\n"
+
+#~ msgid "%s: warning: missing SYSCALLS file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: fichier des SYSCALLS %s est manquant\n"
+
+#~ msgid "%s: can't read aux info file `%s': %s\n"
+#~ msgstr "%s: ne peut lire le fichier auxiliaire d'infos %s : %s\n"
+
+#~ msgid "%s: can't get status of aux info file `%s': %s\n"
+#~ msgstr "%s: ne peut obtenir l'tat du fichier auxiliaire d'infos %s : %s\n"
+
+#~ msgid "%s: can't open aux info file `%s' for reading: %s\n"
+#~ msgstr "%s: ne peut ouvrir le fichier auxiliaire d'infos %s en lecture: %s\n"
+
+#~ msgid "%s: error reading aux info file `%s': %s\n"
+#~ msgstr "%s: erreur lors de la lecture du fichier auxilaire d'infos %s : %s\n"
+
+#~ msgid "%s: error closing aux info file `%s': %s\n"
+#~ msgstr "%s: erreur lors de la fermeture du fichier auxiliaire d'infos %s : %s\n"
+
+#~ msgid "%s: can't delete aux info file `%s': %s\n"
+#~ msgstr "%s: ne peut dtruire le fichier auxiliaire d'infos %s : %s\n"
+
+#~ msgid "%s: can't delete file `%s': %s\n"
+#~ msgstr "%s: ne peut dtruire le fichier %s : %s\n"
+
+#~ msgid "%s: warning: can't rename file `%s' to `%s': %s\n"
+#~ msgstr "%s: AVERTISSEMENT: ne peut renommer le fichier %s %s : %s\n"
+
+#~ msgid "%s: conflicting extern definitions of '%s'\n"
+#~ msgstr "%s: dfinitions externes conflictuelles de %s \n"
+
+#~ msgid "%s: declarations of '%s' will not be converted\n"
+#~ msgstr "%s: dclarations de %s ne seront pas converties\n"
+
+#~ msgid "%s: conflict list for '%s' follows:\n"
+#~ msgstr "%s: liste conflictuelle pour %s suit:\n"
+
+#~ msgid "%s: warning: using formals list from %s(%d) for function `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: using la liste des formels de %s(%d) pour la fonction %s \n"
+
+#~ msgid "%s: %d: `%s' used but missing from SYSCALLS\n"
+#~ msgstr "%s: %d: %s utilis mais manquant dans les SYSCALLS\n"
+
+#~ msgid "%s: %d: warning: no extern definition for `%s'\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: pas de dfinition externe pour %s \n"
+
+#~ msgid "%s: warning: no static definition for `%s' in file `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: pas de dfinition statique pour %s dans le fichier %s \n"
+
+#~ msgid "%s: multiple static defs of `%s' in file `%s'\n"
+#~ msgstr "%s: multiples dfinitions statiques de %s dans le fichier %s \n"
+
+#~ msgid "%s: %d: warning: source too confusing\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: trop de confusions dans le source\n"
+
+#~ msgid "%s: %d: warning: varargs function declaration not converted\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: dclaration de varargs de fonction non convertis\n"
+
+#~ msgid "%s: declaration of function `%s' not converted\n"
+#~ msgstr "%s: dclaration de la fonction %s non convertie\n"
+
+#~ msgid "%s: warning: too many parameter lists in declaration of `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: trop de paramtres de listes dans la dclaration de %s \n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: warning: too few parameter lists in declaration of `%s'\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: AVERTISSEMENT: trop peu de paramtres de listes dans la dclaration de %s \n"
+
+#~ msgid "%s: %d: warning: found `%s' but expected `%s'\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: a obtenu %s mais attendait %s \n"
+
+#~ msgid "%s: local declaration for function `%s' not inserted\n"
+#~ msgstr "%s: dclaration locale pour la fonction %s n'a pas t insre\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: %d: warning: can't add declaration of `%s' into macro call\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: %d: AVERTISSEMENT: ne peut ajouter une dclaration de %s dans l'appel macro\n"
+
+#~ msgid "%s: global declarations for file `%s' not inserted\n"
+#~ msgstr "%s: dclarations globale du fichier %s n'ont pas t insres\n"
+
+#~ msgid "%s: definition of function `%s' not converted\n"
+#~ msgstr "%s: dfinition de la fonction %s n'a pas t convertie\n"
+
+#~ msgid "%s: %d: warning: definition of %s not converted\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: dfinition de %s n'a pas t convertie\n"
+
+#~ msgid "%s: found definition of `%s' at %s(%d)\n"
+#~ msgstr "%s: dfinition de %s trouv %s(%d)\n"
+
+#~ msgid "%s: %d: warning: `%s' excluded by preprocessing\n"
+#~ msgstr "%s: %d: AVERTISSEMENT: %s exclu par le prprocesseur\n"
+
+#~ msgid "%s: function definition not converted\n"
+#~ msgstr "%s: dfinition de fonction n'a pas t convertie\n"
+
+#~ msgid "%s: `%s' not converted\n"
+#~ msgstr "%s: %s n'a pas t converti\n"
+
+#~ msgid "%s: would convert file `%s'\n"
+#~ msgstr "%s: devrait convertir le fichier %s \n"
+
+#~ msgid "%s: converting file `%s'\n"
+#~ msgstr "%s: conversion du fichier %s \n"
+
+#~ msgid "%s: can't get status for file `%s': %s\n"
+#~ msgstr "%s: ne peut obtenur l'tat du fichier %s : %s\n"
+
+#~ msgid "%s: can't open file `%s' for reading: %s\n"
+#~ msgstr "%s: ne peut ouvrir le fichier %s en lecture: %s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "%s: error reading input file `%s': %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "%s: erreur de lecture du fichier d'entre %s : %s\n"
+
+#~ msgid "%s: can't create/open clean file `%s': %s\n"
+#~ msgstr "%s: ne peut crer/ouvrir un fichier propre %s : %s\n"
+
+#~ msgid "%s: warning: file `%s' already saved in `%s'\n"
+#~ msgstr "%s: AVERTISSEMENT: fichier %s est dj sauvegard dans %s \n"
+
+#~ msgid "%s: can't link file `%s' to `%s': %s\n"
+#~ msgstr "%s: ne peut lier le fichier %s %s : %s\n"
+
+#~ msgid "%s: can't create/open output file `%s': %s\n"
+#~ msgstr "%s: ne peut crer/ouvrier le fichier de sortie %s : %s\n"
+
+#~ msgid "%s: can't change mode of file `%s': %s\n"
+#~ msgstr "%s: ne peut changer le mode du fichier %s : %s\n"
+
+#~ msgid "%s: cannot get working directory: %s\n"
+#~ msgstr "%s: ne peut reprer le rpertoire de travail: %s\n"
+
+#~ msgid "%s: input file names must have .c suffixes: %s\n"
+#~ msgstr "%s: noms de fichiers d'entre doivent avoir le suffixe .c: %s\n"
+
+#~ msgid "Didn't find a coloring.\n"
+#~ msgstr "N'a pas repr une coloration.\n"
+
+#~ msgid "output constraint %d must specify a single register"
+#~ msgstr "Contrainte de sortie %d doit spcifier un simple registre"
+
+#~ msgid "output constraint %d cannot be specified together with \"%s\" clobber"
+#~ msgstr "contrainte de sortie %d ne doit pas tre spcifi avec %s clobber"
+
+#~ msgid "output regs must be grouped at top of stack"
+#~ msgstr "registres de sortie doivent tre regroups au haut de la pile"
+
+#~ msgid "implicitly popped regs must be grouped at top of stack"
+#~ msgstr "les registres implicitement dpils doivent tre groups au haut de la pile"
+
+#~ msgid "output operand %d must use `&' constraint"
+#~ msgstr "oprande de sortie %d doit utiliser la contrainte & "
+
+#~ msgid "can't use '%s' as a %s register"
+#~ msgstr "ne peut utiliser %s comme le registre %s"
+
+#~ msgid "unknown register name: %s"
+#~ msgstr "nom de registre inconnu: %s"
+
+#~ msgid "global register variable follows a function definition"
+#~ msgstr "variable registre globale suit la dfinition d'une fonction"
+
+#~ msgid "register used for two global register variables"
+#~ msgstr "registre utilis pour deux variables registres globales"
+
+#~ msgid "call-clobbered register used for global register variable"
+#~ msgstr "registre maltrait par un appel utilis par un variable registre globale"
+
+#~ msgid "validate_value_data: [%u] Bad next_regno for empty chain (%u)"
+#~ msgstr "validate_value_data: [%u] next_regno erron pour une chane vide (%u)"
+
+#~ msgid "validate_value_data: Loop in regno chain (%u)"
+#~ msgstr "validate_value_data: boucle dans la chane regno (%u)"
+
+#~ msgid "validate_value_data: [%u] Bad oldest_regno (%u)"
+#~ msgstr "validate_value_data: [%u] oldest_regno erron (%u)"
+
+#~ msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)"
+#~ msgstr "validate_value_data: [%u] registre non vide dans la chane (%s %u %i)"
+
+#~ msgid "cannot reload integer constant operand in `asm'"
+#~ msgstr "ne peut recharger l'oprande de constante entire dans asm "
+
+#~ msgid "impossible register constraint in `asm'"
+#~ msgstr "impossible de contraindre les registres en asm "
+
+#~ msgid "`&' constraint used with no register class"
+#~ msgstr "contrainte & utilis sans classe registre"
+
+#~ msgid "unable to generate reloads for:"
+#~ msgstr "incapable de gnrer des recharges pour:"
+
+#~ msgid "inconsistent operand constraints in an `asm'"
+#~ msgstr "contrainte d'oprande inconsistente en asm "
+
+#~ msgid "frame size too large for reliable stack checking"
+#~ msgstr "taille de trame trop grande pour une vrification fiable de la pile"
+
+#~ msgid "try reducing the number of local variables"
+#~ msgstr "essayer de rduire le nombre de variables locales"
+
+#~ msgid "can't find a register in class `%s' while reloading `asm'"
+#~ msgstr "ne peut reprer un registre dans la classe %s durant le rechargement asm "
+
+#~ msgid "unable to find a register to spill in class `%s'"
+#~ msgstr "incapable de trouver un registre de dversement dans la classe %s "
+
+#~ msgid "this is the insn:"
+#~ msgstr "ceci est le insn:"
+
+#~ msgid "`asm' operand requires impossible reload"
+#~ msgstr "oprande asm requiert une recharge impossible"
+
+#~ msgid "could not find a spill register"
+#~ msgstr "ne peut reprer un registre de dversement"
+
+#~ msgid "`asm' operand constraint incompatible with operand size"
+#~ msgstr "contrainte de l'oprande asm incompatible avec la taille de l'oprande"
+
+#~ msgid "VOIDmode on an output"
+#~ msgstr "mode VOID sur une sortie"
+
+#~ msgid "output operand is constant in `asm'"
+#~ msgstr "oprande de sortie est une constante dans asm "
+
+#~ msgid "unrecognizable insn:"
+#~ msgstr "insn non reconnaissable:"
+
+#~ msgid "insn does not satisfy its constraints:"
+#~ msgstr "insn ne satisfait pas ses contraintes:"
+
+#~ msgid "RTL check: access of elt %d of `%s' with last elt %d in %s, at %s:%d"
+#~ msgstr "vrification RTL: accs de elt %d de %s avec le dernier elt %d dans %s, %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "vrification RTL: attendu elt %d de type %c , a %c (rtx %s) dans %s, %s:%d"
+
+#~ msgid "RTL check: expected elt %d type '%c' or '%c', have '%c' (rtx %s) in %s, at %s:%d"
+#~ msgstr "vrification RTL: attendu elt %d de type %c ou %c , a %c (rtx %s) dans %s, %s:%d"
+
+#~ msgid "RTL check: expected code `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "vrification RTL: code attendu %s , a %s dans %s, %s:%d"
+
+#~ msgid "RTL check: expected code `%s' or `%s', have `%s' in %s, at %s:%d"
+#~ msgstr "vrification RTL: code attendu %s ou %s , a %s dans %s, %s:%d"
+
+#~ msgid "RTL check: access of elt %d of vector with last elt %d in %s, at %s:%d"
+#~ msgstr "vrification RTL: accs de elt %d du vecteur avec le dernier elt %d dans %s, %s:%d"
+
+#~ msgid "RTL flag check: %s used with unexpected rtx code `%s' in %s, at %s:%d"
+#~ msgstr "vrification du fanion RTL: %s utilis avec un code rtx inattendu, %s dans %s, %s:%d"
+
+#~ msgid "jump to `%s' invalidly jumps into binding contour"
+#~ msgstr "saut vers %s saute de manire invalide dans un contour de liaison"
+
+#~ msgid "%Jlabel '%D' used before containing binding contour"
+#~ msgstr "%Jtiquette %D utilis avant de contenir le contour de liaison"
+
+#~ msgid "output operand constraint lacks `='"
+#~ msgstr "contrainte de sortie de l'oprande manque = "
+
+#~ msgid "output constraint `%c' for operand %d is not at the beginning"
+#~ msgstr "contrainte de sortie %c pour l'oprande %d n'est pas au dbut"
+
+#~ msgid "operand constraint contains incorrectly positioned '+' or '='"
+#~ msgstr "contrainte de l'oprande contient + ou - incorrectement positionn"
+
+#~ msgid "`%%' constraint used with last operand"
+#~ msgstr "contrainte %% utilise avec la dernire oprande"
+
+#~ msgid "matching constraint not valid in output operand"
+#~ msgstr "contrainte concordante n'est pas valide dans une oprande de sortie"
+
+#~ msgid "read-write constraint does not allow a register"
+#~ msgstr "contrainte de lecture-ccriture ne permet pas de registre"
+
+#~ msgid "input operand constraint contains `%c'"
+#~ msgstr "contrainte d'entre de l'oprande contient %c "
+
+#~ msgid "matching constraint references invalid operand number"
+#~ msgstr "nombre d'oprandes invalides pour rfrences de containte concordantes"
+
+#~ msgid "invalid punctuation `%c' in constraint"
+#~ msgstr "ponctuation invalide %c dans la contrainte"
+
+#~ msgid "matching constraint does not allow a register"
+#~ msgstr "contrainte de concordance ne permet pas de reigstre"
+
+#~ msgid "asm-specifier for variable `%s' conflicts with asm clobber list"
+#~ msgstr "asm-specifier pour la variable %s est en conflit avec la liste asm clobber"
+
+#~ msgid "unknown register name `%s' in `asm'"
+#~ msgstr "nom de registre inconnu %s dans asm "
+
+#~ msgid "PIC register `%s' clobbered in `asm'"
+#~ msgstr "registre PIC %s est maltrait dans asm "
+
+#~ msgid "more than %d operands in `asm'"
+#~ msgstr "plus que %d oprandes dans asm "
+
+#~ msgid "output number %d not directly addressable"
+#~ msgstr "nombre de sortie %d n,est pas directement adressable"
+
+#~ msgid "asm operand %d probably doesn't match constraints"
+#~ msgstr "oprande asm %d ne concorde pas probablement avec les contraintes"
+
+#~ msgid "use of memory input without lvalue in asm operand %d is deprecated"
+#~ msgstr "utilisation de l'entr mmoire sans lvalue dans l'oprande asm %d est obsolte"
+
+#~ msgid "asm clobber conflict with output operand"
+#~ msgstr "asm clobber est en conflit sans oprande de sortie"
+
+#~ msgid "asm clobber conflict with input operand"
+#~ msgstr "asm globber est en conflit avec l'oprande d'entre"
+
+#~ msgid "too many alternatives in `asm'"
+#~ msgstr "trop d'alternatives dans asm "
+
+#~ msgid "operand constraints for `asm' differ in number of alternatives"
+#~ msgstr "contraintes de l'oprande pour asm diffrent en nombre d'alternatives"
+
+#~ msgid "duplicate asm operand name '%s'"
+#~ msgstr "nom d'oprande asm %s apparat en double"
+
+#~ msgid "missing close brace for named operand"
+#~ msgstr "accolade de fermeture manquante pour l'oprand nomme"
+
+#~ msgid "undefined named operand '%s'"
+#~ msgstr "oprande nomme %s indfinie"
+
+#~ msgid "%Hstatement with no effect"
+#~ msgstr "%Hdclaration sasn effet"
+
+#~ msgid "%Hvalue computed is not used"
+#~ msgstr "%Hvaleur calcule n'est pas utilise"
+
+#~ msgid "%Junused variable '%D'"
+#~ msgstr "%Jvariable %D inutilise"
+
+#~ msgid "%Hunreachable code at beginning of %s"
+#~ msgstr "%Hcode inatteignable au dbut de %s"
+
+#~ msgid "enumeration value `%s' not handled in switch"
+#~ msgstr "valeur d'numration %s n'est pas traite dans le switch"
+
+#~ msgid "case value `%ld' not in enumerated type"
+#~ msgstr "valeur du case %ld n'est pas dans le type numr"
+
+#~ msgid "case value `%ld' not in enumerated type `%s'"
+#~ msgstr "valeur du case %ld n'est pas dans le type numr %s "
+
+#~ msgid "switch missing default case"
+#~ msgstr "switch n'a pas de case par dfaut"
+
+#~ msgid "type size can't be explicitly evaluated"
+#~ msgstr "taille du type ne peut tre explicitement value"
+
+#~ msgid "variable-size type declared outside of any function"
+#~ msgstr "type de taille variable dclar l'extrieur den'importe quelle fonction"
+
+#~ msgid "%Jsize of '%D' is %d bytes"
+#~ msgstr "%Jtaille de %D est de %d octets"
+
+#~ msgid "%Jsize of '%D' is larger than %d bytes"
+#~ msgstr "%Jtaille de %D est plus grande que %d octets"
+
+#~ msgid "%Jpacked attribute causes inefficient alignment for '%D'"
+#~ msgstr "%Jattribut empaquet provoque un alignement inefficient pour %D "
+
+#~ msgid "%Jpacked attribute is unnecessary for '%D'"
+#~ msgstr "%Jattribut empaquet n'est pas ncessaire pour %D "
+
+#~ msgid "%Jpadding struct to align '%D'"
+#~ msgstr "%Jremplissage du struct pour aligner %D "
+
+#~ msgid "padding struct size to alignment boundary"
+#~ msgstr "remplissage la taille du struct pour aligner les frontires"
+
+#~ msgid "packed attribute causes inefficient alignment for `%s'"
+#~ msgstr "attribut empaquet provoque un alignement inefficient pour %s "
+
+#~ msgid "packed attribute is unnecessary for `%s'"
+#~ msgstr "attribut empaquet n'est pas ncessaire pour %s "
+
+#~ msgid "packed attribute causes inefficient alignment"
+#~ msgstr "attribut empaquet provoque un alignement inefficient"
+
+#~ msgid "packed attribute is unnecessary"
+#~ msgstr "attribut empaquet n'est pas ncessaire"
+
+#~ msgid "__builtin_saveregs not supported by this target"
+#~ msgstr " __builtin_saveregs n'est pas support par cette cible"
+
+#~ msgid "cannot timevar_pop '%s' when top of timevars stack is '%s'"
+#~ msgstr "ne peut faire timevar_pop %s lorsque le haut de la pile timevars est %s "
+
+#~ msgid ""
+#~ "\n"
+#~ "Execution times (seconds)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Temps d'excution (secondes)\n"
+
+#~ msgid " TOTAL :"
+#~ msgstr " TOTAL :"
+
+#~ msgid "time in %s: %ld.%06ld (%ld%%)\n"
+#~ msgstr "temps pass dans %s: %ld.%06ld (%ld%%)\n"
+
+#~ msgid "collect: reading %s\n"
+#~ msgstr "collect: lecture de %s\n"
+
+#~ msgid "collect: recompiling %s\n"
+#~ msgstr "collect: recompilation de %s\n"
+
+#~ msgid "collect: tweaking %s in %s\n"
+#~ msgstr "collect: tordage de %s dans %s\n"
+
+#~ msgid "collect: relinking\n"
+#~ msgstr "collect: r-dition des liens\n"
+
+#~ msgid "ld returned %d exit status"
+#~ msgstr "ld a retourn %d code d'tat d'excution"
+
+# I18N
+#~ msgid "%s "
+#~ msgstr "%s "
+
+# I18N
+#~ msgid " %s"
+#~ msgstr " %s"
+
+#~ msgid "invalid option argument `%s'"
+#~ msgstr "argument de l'option invalide %s "
+
+#~ msgid "getting core file size maximum limit: %m"
+#~ msgstr "limite maximale obtenue de la taille du fichier de vidange (core file): %m"
+
+#~ msgid "setting core file size limit to maximum: %m"
+#~ msgstr "initialisation de la limite maximal de la taille du fichier de vidance (core file): %m"
+
+#~ msgid "%J'%F' used but never defined"
+#~ msgstr "%J %F utilis mais n'a jamais t dfini"
+
+#~ msgid "%J'%F' declared `static' but never defined"
+#~ msgstr "%J %F dclar static mais n'a jamais t dfinie"
+
+#~ msgid "%J'%D' defined but not used"
+#~ msgstr "%J %F dfini mais n'a pas t utilis"
+
+#~ msgid "`%s' is deprecated (declared at %s:%d)"
+#~ msgstr " %s est obsolte (dclar %s:%d)"
+
+#~ msgid "`%s' is deprecated"
+#~ msgstr " %s est obsolte"
+
+#~ msgid "type is deprecated (declared at %s:%d)"
+#~ msgstr "type est obsolte (dclar %s:%d)"
+
+#~ msgid "type is deprecated"
+#~ msgstr "type est obsolte"
+
+#~ msgid "invalid register name `%s' for register variable"
+#~ msgstr "nom de registre invalide %s pour un variable registre"
+
+#~ msgid "branch target register load optimization is not intended to be run twice"
+#~ msgstr "optimisation du chargement du registre cible de branchement est pas prvu pour tre excut deux fois"
+
+#~ msgid ""
+#~ "\n"
+#~ "Target specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Options spcifiques la cible:\n"
+
+#~ msgid " -m%-23s [undocumented]\n"
+#~ msgstr " -m%-23s [non document]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "There are undocumented target specific options as well.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Il y a des options spcifiques la cible qui ne sont pas documents aussi.\n"
+
+#~ msgid " They exist, but they are not documented.\n"
+#~ msgstr " Ils existent, mais ils ne sont pas documents.\n"
+
+#~ msgid "unrecognized gcc debugging option: %c"
+#~ msgstr "option gcc de mise au point non reconnue: %c"
+
+#~ msgid "invalid option `%s'"
+#~ msgstr "option invalide %s "
+
+#~ msgid ""
+#~ "%s%s%s version %s (%s)\n"
+#~ "%s\tcompiled by GNU C version %s.\n"
+#~ "%s%s%s version %s (%s) compiled by CC.\n"
+#~ msgstr ""
+#~ "%s%s%s version %s (%s)\n"
+#~ "%s\tcompil par GNU C version %s.\n"
+#~ "%s%s%s version %s (%s) compil par CC.\n"
+
+#~ msgid "%s%sGGC heuristics: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+#~ msgstr "heuristiques %s%sGGC: --param ggc-min-expand=%d --param ggc-min-heapsize=%d\n"
+
+#~ msgid "options passed: "
+#~ msgstr "options passes: "
+
+#~ msgid "options enabled: "
+#~ msgstr "options autorises: "
+
+#~ msgid "can't open %s for writing: %m"
+#~ msgstr "ne peut ouvrir %s en criture: %m"
+
+#~ msgid "created and used with different settings of -fpic"
+#~ msgstr "cr et utilis avec des configurations diffrentes de -fpic"
+
+#~ msgid "created and used with different settings of -fpie"
+#~ msgstr "cr et utilis avec des configurations diffrentes de -fpie"
+
+#~ msgid "created and used with differing settings of `-m%s'"
+#~ msgstr "cr et utilis avec des configurations diffrentes de -m%s "
+
+#~ msgid "out of memory"
+#~ msgstr "mmoire puise"
+
+#~ msgid "instruction scheduling not supported on this target machine"
+#~ msgstr "instruction d'ordonnancement n'est pas supporte sur cette machine cible"
+
+#~ msgid "this target machine does not have delayed branches"
+#~ msgstr "cette machine cible n'a pas de branchments avec dlais"
+
+#~ msgid "-f%sleading-underscore not supported on this target machine"
+#~ msgstr "-f%sleading-underscore n'est pas support sur cette machine cible"
+
+#~ msgid "target system does not support the \"%s\" debug format"
+#~ msgstr "systme cible ne supporte par le format \"%s\" de mise au point"
+
+#~ msgid "-ffunction-sections not supported for this target"
+#~ msgstr "-ffunction-sections n'est pas support pour cette cible"
+
+#~ msgid "-fdata-sections not supported for this target"
+#~ msgstr "-fdata-sections n'est pas support pour cette machine cible"
+
+#~ msgid "-ffunction-sections disabled; it makes profiling impossible"
+#~ msgstr "-ffunction-sections dsactiv; cela rend le profilage impossible"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target"
+#~ msgstr "-fprefetch-loop-arrays n'est pas support pour cette machine cible"
+
+#~ msgid "-fprefetch-loop-arrays not supported for this target (try -march switches)"
+#~ msgstr "-fprefetch-loop-arrays n'est pas support sur cette machine cible (essayer -march options)"
+
+#~ msgid "-fprefetch-loop-arrays is not supported with -Os"
+#~ msgstr "-fprefetch-loop-arrays n'est pas support avec -Os"
+
+#~ msgid "-ffunction-sections may affect debugging on some targets"
+#~ msgstr "-ffunction-sections peut affecter la mise au point sur quelques machines cibles."
+
+#~ msgid "error writing to %s: %m"
+#~ msgstr "erreur d'criture dans %s: %m"
+
+#~ msgid "error closing %s: %m"
+#~ msgstr "erreur de fermeture %s: %m"
+
+#~ msgid "could not open dump file `%s'"
+#~ msgstr "ne peut ouvrir le fichier de vidange %s "
+
+#~ msgid "ignoring unknown option `%.*s' in `-fdump-%s'"
+#~ msgstr "option inconnue %.*s ignore dans -fdump-%s "
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses alloca (override using the always_inline attribute)"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise alloca (crasant l'utiliastion de l'attribut always_inline)"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise setjmp"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses variable argument lists"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise une liste variable d'arguments"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses setjmp-longjmp exception handling"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise le traitement d'exception setjmp-longjmp"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a nested function"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient une fonction imbrique"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a computed goto"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient un goto calcul"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it contains a nonlocal goto"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle contient un goto qui n'est pas local"
+
+#~ msgid "%Jfunction '%F' can never be inlined because it uses variable sized variables"
+#~ msgstr "%Jfonction %F ne peut tre enligne parce qu'elle utilise une taille variable de variables"
+
+#~ msgid "%Jinlining failed in call to '%F': %s"
+#~ msgstr "%Jl'enlignage de l'appel %F : %s a chou"
+
+#~ msgid "%Jsize of return value of '%D' is %u bytes"
+#~ msgstr "%Jtaille de la valeur retourne par %D est %u octets"
+
+#~ msgid "%Jsize of return value of '%D' is larger than %wd bytes"
+#~ msgstr "%Jtaille de la valeur retourne par %D suprieure %wd octets"
+
+#~ msgid "arrays of functions are not meaningful"
+#~ msgstr "tableaux de fonctions n'a pas grand sens"
+
+#~ msgid "function return type cannot be function"
+#~ msgstr "Le type retourn d'une fonction ne peut tre une fonction"
+
+#~ msgid "invalid initializer for bit string"
+#~ msgstr "initialisation invalide pour une chane de bits"
+
+#~ msgid "tree check: expected %s, have %s in %s, at %s:%d"
+#~ msgstr "vrification de l'arbre: attendait %s, obtenu %s dans %s, %s:%d"
+
+#~ msgid "tree check: expected class '%c', have '%c' (%s) in %s, at %s:%d"
+#~ msgstr "vrification de l'arbre: attendait classe %c , obtenu %c (%s) dans %s, %s:%d"
+
+#~ msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d"
+#~ msgstr "vrification de l'arbre: accs de elt %d de tree-vec avec %d elts dans %s, %s:%d"
+
+#~ msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d"
+#~ msgstr "vrification de l'arbre: oprande accd %d de %s avec %d oprandes dans %s, %s:%d"
+
+#~ msgid "%J%D causes a section type conflict"
+#~ msgstr "%J%D cause un conflit du type de section"
+
+#~ msgid "%Jregister name not specified for '%D'"
+#~ msgstr "%Jnom de registre n'est pas spcifi pour %D "
+
+#~ msgid "%Jinvalid register name for '%D'"
+#~ msgstr "%Jnom de registre invalide pour %D "
+
+#~ msgid "%Jdata type of '%D' isn't suitable for a register"
+#~ msgstr "%Jtype de donnes de %D n'est pas applicable pour un registre"
+
+#~ msgid "%Jregister specified for '%D' isn't suitable for data type"
+#~ msgstr "%Jregistre spcifi pour %D n'est applicable un type de donnes"
+
+#~ msgid "global register variable has initial value"
+#~ msgstr "variable globale registre a une valeur initiale"
+
+#~ msgid "volatile register variables don't work as you might wish"
+#~ msgstr "variables resgistres volatiles ne fonctionne pas comme vous le souhaiteriez"
+
+#~ msgid "%Jregister name given for non-register variable '%D'"
+#~ msgstr "%Jnom de registre donn pour une variable non registre %D "
+
+#~ msgid "%Jstorage size of `%D' isn't known"
+#~ msgstr "%Jtaille de stockage de %D n'est pas connue"
+
+#~ msgid "%Jalignment of '%D' is greater than maximum object file alignment. Using %d"
+#~ msgstr "%Jalignement de %D est plus grand que l'alignement maximal du fichier objet. %d est utilis."
+
+#~ msgid "thread-local COMMON data not implemented"
+#~ msgstr "thread-local COMMON data n'est pas implant"
+
+#~ msgid "%Jrequested alignment for '%D' is greater than implemented alignment of %d"
+#~ msgstr "%Jrequte d'alignement pour '%D' est plus grand que l'alignement implant de %d"
+
+#~ msgid "initializer for integer value is too complicated"
+#~ msgstr "initialisation d'entier trop complique"
+
+#~ msgid "initializer for floating value is not a floating constant"
+#~ msgstr "l'initialisation d'une valeur virgule flottante n'est pas une constante virgule flottante"
+
+#~ msgid "unknown set constructor type"
+#~ msgstr "type de jeu de constructeurs inconnu"
+
+#~ msgid "invalid initial value for member `%s'"
+#~ msgstr "valeur initiale invalide pour le membre %s "
+
+#~ msgid "%Jweak declaration of '%D' must precede definition"
+#~ msgstr "%Jdclaration faible de %D qui doit tre prcde d'une dfinition"
+
+#~ msgid "%Jweak declaration of '%D' after first use results in unspecified behavior"
+#~ msgstr "%Jdclaration faible de %D aprs une premire utilisation des rsultats d'un comportement non spcifi"
+
+#~ msgid "%Jweak declaration of '%D' must be public"
+#~ msgstr "%Jdclaration faible de %D doit tre publique"
+
+#~ msgid "%Jweak declaration of '%D' not supported"
+#~ msgstr "%Jdclaration faible de %D n'est pas supporte"
+
+#~ msgid "only weak aliases are supported in this configuration"
+#~ msgstr "seulement les alias faibles sont supports dans cette configuration"
+
+#~ msgid "alias definitions not supported in this configuration; ignored"
+#~ msgstr "dfinitions d'alias ne sont pas supports dans cette configuration; ignor"
+
+#~ msgid "visibility attribute not supported in this configuration; ignored"
+#~ msgstr "visibilit de l'attribut n'est pas support dans cette configuration; ignor"
+
+#~ msgid "virtual array %s[%lu]: element %lu out of bounds in %s, at %s:%d"
+#~ msgstr "tableau virtuel %s[%lu]: lment %lu hors limite dans %s, %s:%d"
+
+#~ msgid "underflowed virtual array %s in %s, at %s:%d"
+#~ msgstr "sous dbordement du tableau virtuele %s dans %s, %s:%d"
+
+#~ msgid "no sclass for %s stab (0x%x)\n"
+#~ msgstr "pas de sclass pour le stab %s (0x%x)\n"
+
+#~ msgid "fatal error: "
+#~ msgstr "erreur fatale: "
+
+#~ msgid "internal compiler error: "
+#~ msgstr "erreur interne du compilateur: "
+
+#~ msgid "sorry, unimplemented: "
+#~ msgstr "dsol, pas implant: "
+
+#~ msgid "anachronism: "
+#~ msgstr "anachronisme: "
+
+#~ msgid "note: "
+#~ msgstr "note: "
+
+#~ msgid "debug: "
+#~ msgstr "mise au point: "
+
+#~ msgid "The maximum number of instructions in a single function eligible for inlining"
+#~ msgstr "Le nombre maximum d'instructions dans une fonction simple ligible au type enligne"
+
+#~ msgid "The maximum number of instructions when automatically inlining"
+#~ msgstr "Le nombre maximum d'instructions lorsqu'automatiquement de type enligne"
+
+#~ msgid "The maximum number of instructions for the RTL inliner"
+#~ msgstr "Le nombre maximum d'instructions pour la fonction d'enlignage RTL"
+
+#~ msgid "The maximum number of instructions to consider to fill a delay slot"
+#~ msgstr "Le nombre maximum d'instructions considrer pour remplir une slot dlai"
+
+#~ msgid "The maximum number of instructions to consider to find accurate live register information"
+#~ msgstr "Le nombre maximum d'instructions considrer pour reprer un registre d'information actif et prcis"
+
+#~ msgid "The maximum length of scheduling's pending operations list"
+#~ msgstr "La longueur maximale de la liste des opration en attente d'ordonnancement"
+
+#~ msgid "The size of function body to be considered large"
+#~ msgstr "La taille du corps de la fonction est considr comme tant grande"
+
+#~ msgid "Maximal growth due to inlining of large function (in percent)"
+#~ msgstr "Croissance maximal en raison de l'enlignage d'une grande fonction (en pourcent)"
+
+#~ msgid "how much can given compilation unit grow because of the inlining (in percent)"
+#~ msgstr "quelle croissance d'une unit de compilation peut tre tolre en raison de l'enlignage (en pourcent)"
+
+#~ msgid "The maximum amount of memory to be allocated by GCSE"
+#~ msgstr "La taille maximale de mmoire tre allou par GCSE"
+
+#~ msgid "The maximum number of passes to make when doing GCSE"
+#~ msgstr "Le nombre maxium de passes effectuer lors de l'excution de GCSE"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop"
+#~ msgstr "Le nombre maximum d'instructions considrer inclure dans une boucle"
+
+#~ msgid "The maximum number of instructions to consider to unroll in a loop on average"
+#~ msgstr "Le nombre maximum d'instructions considrer inclure dans une boucle en moyenne"
+
+#~ msgid "The maximum number of unrollings of a single loop"
+#~ msgstr "Le nombre maximum d'instructions inclure dans une boucle simple"
+
+#~ msgid "The maximum number of insns of a peeled loop"
+#~ msgstr "Le nombre maximum d'insns de boucle rduite"
+
+#~ msgid "The maximum number of peelings of a single loop"
+#~ msgstr "Le nombre maxium de passes de rduction d'une boucle simple"
+
+#~ msgid "The maximum number of insns of a completely peeled loop"
+#~ msgstr "Le nombre maximum d'insns d'une boucle compltement rduite"
+
+#~ msgid "The maximum number of peelings of a single loop that is peeled completely"
+#~ msgstr "Le nombre maximum de rductions d'une boucle simple qui a t compltement rduite"
+
+#~ msgid "The maximum number of insns of a peeled loop that rolls only once"
+#~ msgstr "Le nombre maximum d'insns d'une boucle rduite qui tourne une seule fois"
+
+#~ msgid "The maximum number of insns of an unswitched loop"
+#~ msgstr "Le nombre maximum d'insns d'une boucle sans branchement"
+
+#~ msgid "The maximum number of unswitchings in a single loop"
+#~ msgstr "Le nombre maximum de non branchement dans une boucle simple"
+
+#~ msgid "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot"
+#~ msgstr "Slectionner la fraction du dcompte maximal de rptition du bloc de base dans le programme selon le bloc de bsae donn doit tre considr comme chaud hot "
+
+#~ msgid "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot"
+#~ msgstr "Slectionner la fraction de la frquence maximale d'excutions du bloc de base dans la fonction selon le bloc de bsae donn doit tre considr comme chaud hot "
+
+#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available"
+#~ msgstr "Le pourcentage de fonction, pondr par la frquence d'excutions, qui doit tre couvert la formation de la trace. Utilis lorsque le feedback par profile est disponible"
+
+#~ msgid "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available"
+#~ msgstr "Le pourcentage de fonction, pondr par la frquence d'excutions, qui doit tre couvert la formation de la trace. Utilis lorsque le feedback par profilage n'est disponible"
+
+#~ msgid "Maximal code growth caused by tail duplication (in percent)"
+#~ msgstr "Croissance maximal du code en raison de duplication de queue (en pourcent)"
+
+#~ msgid "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)"
+#~ msgstr "Stopper la croissance renverse si la probabilit inverse des meilleures bordures est infrieure ce seuil (en pourcent)"
+
+#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available"
+#~ msgstr "Stopper la croissance anticipe si la probabilit des meilleures bordures est infrieure ce seuil (en pourcent). Utilis lorsque le feedback par profilage est disponible"
+
+#~ msgid "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available"
+#~ msgstr "Stopper la croissance anticipe si la probabilit des meilleures bordures est infrieure ce seuil (en pourcent). Utilis lorsque le feedback par profilage n'est pas disponible"
+
+#~ msgid "The maximum number of incoming edges to consider for crossjumping"
+#~ msgstr "Le nombre maximum de bordures considrer pour les sauts croiss"
+
+#~ msgid "The maximum length of path considered in cse"
+#~ msgstr "La longueur maximale des chemins considrs dans cse"
+
+#~ msgid "The maximum memory locations recorded by cselib"
+#~ msgstr "Le nombre maximum de localisations mmoire enregistres par cselib"
+
+#~ msgid "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap"
+#~ msgstr "L'expansion minimale des tas pour lancer la collecte des rebuts, en pourcentage de la taille totale du tas."
+
+#~ msgid "Minimum heap size before we start collecting garbage, in kilobytes"
+#~ msgstr "La taille minimale du tas avant de lancer la collecte des rebuts, en kilo-octets."
+
+#~ msgid "The maximum number of instructions to search backward when looking for equivalent reload"
+#~ msgstr "Le nombre maximum d'instructions rechercher antrieurement lors d'une recherche d'une recharge quivalente"
+
+#~ msgid "too many #pragma options align=reset"
+#~ msgstr "trop d'options pour #pragma pour align=reset"
+
+#~ msgid "malformed '#pragma options', ignoring"
+#~ msgstr " #pragma options mal compos, ignor"
+
+#~ msgid "junk at end of '#pragma options'"
+#~ msgstr "rebut la fin de #pragma options "
+
+#~ msgid "malformed '#pragma options align={mac68k|power|reset}', ignoring"
+#~ msgstr " #pragma options align={mac68k|power|reset} mal compos, ignor"
+
+#~ msgid "missing '(' after '#pragma unused', ignoring"
+#~ msgstr " ( manquante aprs #pragma unused , ignor"
+
+#~ msgid "missing ')' after '#pragma unused', ignoring"
+#~ msgstr " ( manquante aprs #pragma unused , ignor"
+
+#~ msgid "junk at end of '#pragma unused'"
+#~ msgstr "rebut la fin de #pragma unused "
+
+#~ msgid "internal and protected visibility attributes not supportedin this configuration; ignored"
+#~ msgstr "visibilit des attributs internes et protges n'est pas supporte dans cette configuration; ignor"
+
+#~ msgid "-msystem-v and -p are incompatible"
+#~ msgstr "-msystem-v et -p sont incompatibles"
+
+#~ msgid "-msystem-v and -mthreads are incompatible"
+#~ msgstr "-msystem-v et -mthreads sont incompatibles"
+
+#~ msgid "profiler support for WindISS"
+#~ msgstr "support du profileur pour WindISS"
+
+#~ msgid "-f%s ignored for Unicos/Mk (not supported)"
+#~ msgstr "-f%s ignor pour Unicos/Mk (non support)"
+
+#~ msgid "-mieee not supported on Unicos/Mk"
+#~ msgstr "-mieee n'est pas support sur Unicos/Mk"
+
+#~ msgid "-mieee-with-inexact not supported on Unicos/Mk"
+#~ msgstr "-mieee-with-inexact n'est pas support sur Unicos/Mk"
+
+#~ msgid "bad value `%s' for -mtrap-precision switch"
+#~ msgstr "valeur %s errone pour l'option -mtrap-precision"
+
+#~ msgid "bad value `%s' for -mfp-rounding-mode switch"
+#~ msgstr "valeur %s errone pour l'option -mfp-rounding-mode"
+
+#~ msgid "bad value `%s' for -mfp-trap-mode switch"
+#~ msgstr "valeur %s errone pour l'option -mfp-trap-mode"
+
+#~ msgid "bad value `%s' for -mtls-size switch"
+#~ msgstr "valeur %s errone pour l'option -mtls-size"
+
+#~ msgid "bad value `%s' for -mcpu switch"
+#~ msgstr "valeur %s errone pour l'option -mcpu"
+
+#~ msgid "trap mode not supported on Unicos/Mk"
+#~ msgstr "mode trappe n'est pas support sur Unicos/Mk"
+
+#~ msgid "fp software completion requires -mtrap-precision=i"
+#~ msgstr "compltion logicielle FP requiert -mtrap-precision=i"
+
+#~ msgid "rounding mode not supported for VAX floats"
+#~ msgstr "mode d'arondissement n'est pas support pour les flottants sur VAX"
+
+#~ msgid "trap mode not supported for VAX floats"
+#~ msgstr "mode trappe n'est pas support avec les flottants sur VAX"
+
+#~ msgid "128-bit long double not supported for VAX floats"
+#~ msgstr "long double de 128 bits ne sont pas support pour les flottants sur VAX"
+
+#~ msgid "L%d cache latency unknown for %s"
+#~ msgstr "latence de la cache L%d inconnue pour %s"
+
+#~ msgid "bad value `%s' for -mmemory-latency"
+#~ msgstr "valeur %s errone pour -mmemory-latency"
+
+#~ msgid "invalid %%H value"
+#~ msgstr "valeur %%H invalide"
+
+#~ msgid "invalid %%J value"
+#~ msgstr "valeur %%J invalide"
+
+#~ msgid "invalid %%r value"
+#~ msgstr "valeur %%r invalide"
+
+#~ msgid "invalid %%R value"
+#~ msgstr "valeur %%R invalide"
+
+#~ msgid "invalid %%N value"
+#~ msgstr "valeur %%N invalide"
+
+#~ msgid "invalid %%P value"
+#~ msgstr "valeur %%P invalide"
+
+#~ msgid "invalid %%h value"
+#~ msgstr "valeur %%h invalide"
+
+#~ msgid "invalid %%L value"
+#~ msgstr "valeur %%L invalide"
+
+#~ msgid "invalid %%m value"
+#~ msgstr "valeur %%m invalide"
+
+#~ msgid "invalid %%M value"
+#~ msgstr "valeur %%M invalide"
+
+#~ msgid "invalid %%U value"
+#~ msgstr "valeur %%U invalide"
+
+#~ msgid "invalid %%s value"
+#~ msgstr "valeur %%s invalide"
+
+#~ msgid "invalid %%C value"
+#~ msgstr "valeur %%C invalide"
+
+#~ msgid "invalid %%E value"
+#~ msgstr "valeur %%E invalide"
+
+#~ msgid "unknown relocation unspec"
+#~ msgstr "relocalisation unspec inconnue"
+
+#~ msgid "invalid %%xn code"
+#~ msgstr "valeur %%xn invalide"
+
+#~ msgid "bad builtin fcode"
+#~ msgstr "construit interne erron de fcode"
+
+#~ msgid "Use hardware fp"
+#~ msgstr "Utiliser le FP matriel"
+
+#~ msgid "Do not use hardware fp"
+#~ msgstr "Ne pas utiliser l'unit FP matrielle"
+
+#~ msgid "Use fp registers"
+#~ msgstr "Utiliser les registres FP"
+
+#~ msgid "Do not use fp registers"
+#~ msgstr "Ne pas utiliser les registres FP"
+
+#~ msgid "Do not assume GAS"
+#~ msgstr "Ne pas prsumer la prsence de GAS"
+
+#~ msgid "Assume GAS"
+#~ msgstr "Prsumer la prsence de GAS"
+
+#~ msgid "Request IEEE-conformant math library routines (OSF/1)"
+#~ msgstr "Requte des routine de la bibliothque mathmatique conforme IEEE (OSF/1)"
+
+#~ msgid "Emit IEEE-conformant code, without inexact exceptions"
+#~ msgstr "Produire du code conforme IEEE, sans exceptions inexactes"
+
+#~ msgid "Emit IEEE-conformant code, with inexact exceptions"
+#~ msgstr "Produire du code conforme IEEE, avec exceptions inexactes"
+
+#~ msgid "Do not emit complex integer constants to read-only memory"
+#~ msgstr "Ne pas produire des constantes entires complexes en mmoire en mode lecture seulement"
+
+#~ msgid "Use VAX fp"
+#~ msgstr "Utiliser les registres FP sur VAX"
+
+#~ msgid "Do not use VAX fp"
+#~ msgstr "Ne pas utiliser les registres FP sur VAX"
+
+#~ msgid "Emit code for the byte/word ISA extension"
+#~ msgstr "Produire du code pour les octets/mots des extensions ISA"
+
+#~ msgid "Emit code for the motion video ISA extension"
+#~ msgstr "Produire du code pour les extensions vido ISA"
+
+#~ msgid "Emit code for the fp move and sqrt ISA extension"
+#~ msgstr "Produire du code pour les dplacements FP et sqrt des extensions ISA"
+
+#~ msgid "Emit code for the counting ISA extension"
+#~ msgstr "Produire du code pour les extensions ISA de comptage"
+
+#~ msgid "Emit code using explicit relocation directives"
+#~ msgstr "Produire du code utilisant des directives explicites de relocalisation"
+
+#~ msgid "Emit 16-bit relocations to the small data areas"
+#~ msgstr "Produire du code de 16 bits pour le relocalisation des petites zones de donnes"
+
+#~ msgid "Emit 32-bit relocations to the small data areas"
+#~ msgstr "Produire du code de 32 bits pour le relocalisation des petites zones de donnes"
+
+#~ msgid "Emit direct branches to local functions"
+#~ msgstr "Omettre le branchement direct aux fonctions locales"
+
+#~ msgid "Emit rdval instead of rduniq for thread pointer"
+#~ msgstr "Produire rdval au lieu de rduniq pour le pointeur de thread"
+
+#~ msgid "Use 128-bit long double"
+#~ msgstr "Utiliser un long double de 128 bits"
+
+#~ msgid "Use 64-bit long double"
+#~ msgstr "Utiliser un long double de 64 bits"
+
+#~ msgid "Use features of and schedule given CPU"
+#~ msgstr "Utiliser les options et ordonnancer pour le processeur donn "
+
+#~ msgid "Schedule given CPU"
+#~ msgstr "Ordonnancer le processeur donn"
+
+#~ msgid "Control the generated fp rounding mode"
+#~ msgstr "Contrler le mode d'arondissement FP gnr"
+
+#~ msgid "Control the IEEE trap mode"
+#~ msgstr "Contrler le mode trappe IEEE"
+
+#~ msgid "Control the precision given to fp exceptions"
+#~ msgstr "Contrler la prcision donne des exceptions FP"
+
+#~ msgid "Specify bit size of immediate TLS offsets"
+#~ msgstr "Spcifier la taille de bit des dcalages immdiats TLS"
+
+#~ msgid "bad value (%s) for -mcpu switch"
+#~ msgstr "valeur (%s) errone pour l'option -mcpu"
+
+#~ msgid "argument of `%s' attribute is not a string constant"
+#~ msgstr "argument de l'attribut %s n'est pas une chane de constante"
+
+#~ msgid "argument of `%s' attribute is not \"ilink1\" or \"ilink2\""
+#~ msgstr "l'argument de l'attribut %s n'est pas ilink1 ou ilink2 "
+
+#~ msgid "invalid operand to %%R code"
+#~ msgstr "oprande invalide pour le code %%R"
+
+#~ msgid "invalid operand to %%H/%%L code"
+#~ msgstr "oprande invalide pour le code %%H/%%L"
+
+#~ msgid "invalid operand to %%U code"
+#~ msgstr "oprande invalide pour le code %%U"
+
+#~ msgid "invalid operand to %%V code"
+#~ msgstr "oprande invalide pour le code %%V"
+
+#~ msgid "invalid operand output code"
+#~ msgstr "oprande invalide pour le code de sortie"
+
+#~ msgid "switch -mcpu=%s conflicts with -march= switch"
+#~ msgstr "l'option -mcpu=%s est en conflit avec l'option -march= "
+
+#~ msgid "bad value (%s) for %s switch"
+#~ msgstr "valeur (%s) errone pour l'option %s"
+
+#~ msgid "target CPU does not support APCS-32"
+#~ msgstr "le processeur cible ne supporte pas APCS-32"
+
+#~ msgid "target CPU does not support APCS-26"
+#~ msgstr "le processeur cible ne supporte pas APCS-26"
+
+#~ msgid "target CPU does not support interworking"
+#~ msgstr "le processeur cible ne supporte pas l'inter-rseautage"
+
+#~ msgid "target CPU does not support THUMB instructions"
+#~ msgstr "le processeur cible ne supporte pas les instructions THUMB"
+
+#~ msgid "future releases of GCC will not support -mapcs-26"
+#~ msgstr "les prochaines versions de GCC ne supporteront pas -mapcs-26"
+
+#~ msgid "enabling backtrace support is only meaningful when compiling for the Thumb"
+#~ msgstr "autoriser le support de pistage arrire si seulement significatif lors de la compilation pour le Thumb"
+
+#~ msgid "enabling callee interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "autoriser le support d'inter-rseautage des appels si seulement significatif lors de la compilation pour le Thumb"
+
+#~ msgid "enabling caller interworking support is only meaningful when compiling for the Thumb"
+#~ msgstr "autoriser le support d'inter-rseautage des appelants si seulement significatif lors de la compilation pour le Thumb"
+
+#~ msgid "interworking forces APCS-32 to be used"
+#~ msgstr "l'inter-rseautage force l'utilisation de APCS-32"
+
+#~ msgid "-mapcs-stack-check incompatible with -mno-apcs-frame"
+#~ msgstr "-mapcs-stack-check incompatible avec -mno-apcs-frame"
+
+#~ msgid "-fpic and -mapcs-reent are incompatible"
+#~ msgstr "-fpic et -mapcs-reent sont incompatibles"
+
+#~ msgid "APCS reentrant code not supported. Ignored"
+#~ msgstr "Code rentrant APCS n'est pas support. Ignor"
+
+#~ msgid "-g with -mno-apcs-frame may not give sensible debugging"
+#~ msgstr "-g avec -mno-apcs-frame peut ne pas donner une mise au point sense"
+
+#~ msgid "passing floating point arguments in fp regs not yet supported"
+#~ msgstr "passage d'argument en virgule flottante dans les registres FP n'est pas encore support"
+
+#~ msgid "invalid floating point emulation option: -mfpe-%s"
+#~ msgstr "option d'mulation en virgule flottante invalide: -mfpe-%s"
+
+#~ msgid "-mfpe switch not supported by ep9312 target cpu - ignored."
+#~ msgstr "opeion -mfpe n'est pas supporte par le processeur cible ep9312 - ignor"
+
+#~ msgid "structure size boundary can only be set to 8 or 32"
+#~ msgstr "taille des bornes de la structure peut seulement tre 8 ou 32"
+
+#~ msgid "-mpic-register= is useless without -fpic"
+#~ msgstr "-mpic-register= est inutile sans -fpic"
+
+#~ msgid "unable to use '%s' for PIC register"
+#~ msgstr "incapable d'utiliser %s pour un registre PIC"
+
+#~ msgid "`%s' attribute only applies to functions"
+#~ msgstr "attribut %s s'applique seulement aux fonctions"
+
+#~ msgid "unable to compute real location of stacked parameter"
+#~ msgstr "incapable de calculer la localisation relle de la pile de paramtres"
+
+#~ msgid "selector must be an immediate"
+#~ msgstr "slecteur doit tre un immdiat"
+
+#~ msgid "mask must be an immediate"
+#~ msgstr "masque doit tre un immdiat"
+
+#~ msgid "no low registers available for popping high registers"
+#~ msgstr "pas de registre bas disponible pour faire ressortir les registres du haut"
+
+#~ msgid "interrupt Service Routines cannot be coded in Thumb mode"
+#~ msgstr "routines d'interruption de service ne peuvent tre codes en mode THUMB"
+
+#~ msgid "%Jinitialized variable '%D' is marked dllimport"
+#~ msgstr "%Jvariable initialis %D est marque dllimport"
+
+#~ msgid "%Jstatic variable '%D' is marked dllimport"
+#~ msgstr "%Jvariable statique %D est marque dllimport"
+
+#~ msgid "Generate APCS conformant stack frames"
+#~ msgstr "Gnrer des trames de pile conformes APCS"
+
+#~ msgid "Store function names in object code"
+#~ msgstr "Sotcker les noms de fonctions dans le code objet"
+
+#~ msgid "Use the 32-bit version of the APCS"
+#~ msgstr "Utilise la version 32 bts de APCS"
+
+#~ msgid "Pass FP arguments in FP registers"
+#~ msgstr "Passer les arguments FP par les registres FP"
+
+#~ msgid "Generate re-entrant, PIC code"
+#~ msgstr "Gnrer du code PIC r-entrant"
+
+#~ msgid "The MMU will trap on unaligned accesses"
+#~ msgstr "Le MMU va intercepter les accs mal aligns"
+
+#~ msgid "Use library calls to perform FP operations"
+#~ msgstr "Utiliser les appels de bibliothque pour excuter les oprations FP"
+
+#~ msgid "Use hardware floating point instructions"
+#~ msgstr "Utiliser les instructions matrielles en virgule flottante"
+
+#~ msgid "Assume target CPU is configured as big endian"
+#~ msgstr "Prsumer que le processeur cible est un systme octets de poids fort"
+
+#~ msgid "Assume target CPU is configured as little endian"
+#~ msgstr "Prsumer que le processeur cible est un systme octets de poids faible"
+
+#~ msgid "Assume big endian bytes, little endian words"
+#~ msgstr "Prsumer un systme octets de poids fort pour les octets et faible pour les mots"
+
+#~ msgid "Support calls between Thumb and ARM instruction sets"
+#~ msgstr "Supporter les appels des jeux d'instructions THUMB et ARM"
+
+#~ msgid "Generate a call to abort if a noreturn function returns"
+#~ msgstr "Gnrer un appel pour stopper si une fonction sans retour retourne un rsultat"
+
+#~ msgid "Do not move instructions into a function's prologue"
+#~ msgstr "Ne pas dplacer les instruction dans le prologue de fonction"
+
+#~ msgid "Do not load the PIC register in function prologues"
+#~ msgstr "Ne pas charger le registre PIC dans les prologue de fonction"
+
+#~ msgid "Generate call insns as indirect calls, if necessary"
+#~ msgstr "Gnrer l'appel insn comme un appel indirect, si ncessaire"
+
+#~ msgid "Compile for the Thumb not the ARM"
+#~ msgstr "Compiler pour le THUMB et non pas le ARM"
+
+#~ msgid "Thumb: Generate (non-leaf) stack frames even if not needed"
+#~ msgstr "Thumb: gnrer (non feuilles) trames de pile mme si non ncessaire"
+
+#~ msgid "Thumb: Generate (leaf) stack frames even if not needed"
+#~ msgstr "Thumb : Gnrer (feuilles) trames de pile mme si non ncessaire"
+
+#~ msgid "Thumb: Assume non-static functions may be called from ARM code"
+#~ msgstr "Thumb : Prsumer que les fonctions non statiques peuvent tre appeles du code ARM"
+
+#~ msgid "Thumb: Assume function pointers may go to non-Thumb aware code"
+#~ msgstr "Thumb : Prsumer que les pointeurs de fonction peuvent tomber dans le code en dehors non sensible au Thumb"
+
+#~ msgid "Cirrus: Place NOPs to avoid invalid instruction combinations"
+#~ msgstr "Cirrus: insrer des NOP pour viter un combinaison d'instructions invalides"
+
+#~ msgid "Cirrus: Do not break up invalid instruction combinations with NOPs"
+#~ msgstr "Cirrus: ne pas briser la combinaison d'instructions invalides avec des NOP"
+
+#~ msgid "Specify the name of the target CPU"
+#~ msgstr "Spcifier le nom du processeur cible"
+
+#~ msgid "Specify the name of the target architecture"
+#~ msgstr "Spcifier le nom de l'architecture cible"
+
+#~ msgid "Specify the version of the floating point emulator"
+#~ msgstr "Spcifier la version de l'mulateur en virgule flottante"
+
+#~ msgid "Specify the minimum bit alignment of structures"
+#~ msgstr "Spcifier le minimum de bits pour l'alignement de structures"
+
+#~ msgid "Specify the register to be used for PIC addressing"
+#~ msgstr "Spcifier le registre utiliser pour l'adressage PIC"
+
+#~ msgid "Ignore dllimport attribute for functions"
+#~ msgstr "Ignorer l'attribut dllimport pour les fonctions"
+
+#~ msgid "large frame pointer change (%d) with -mtiny-stack"
+#~ msgstr "grand pointeur de trames change (%d) avec -mtiny-stack"
+
+#~ msgid "bad address, not (reg+disp):"
+#~ msgstr "adresse errone, pas (reg+disp):"
+
+#~ msgid "internal compiler error. Bad address:"
+#~ msgstr "erreur internal du compilateur. Adresse errone:"
+
+#~ msgid "internal compiler error. Unknown mode:"
+#~ msgstr "erreur internal du compilateur. Mode inconnu:"
+
+#~ msgid "invalid insn:"
+#~ msgstr "insn invalide:"
+
+#~ msgid "incorrect insn:"
+#~ msgstr "insn incoorect:"
+
+#~ msgid "unknown move insn:"
+#~ msgstr "insn de dplacement inconnu:"
+
+#~ msgid "bad shift insn:"
+#~ msgstr "dcalage insn erron:"
+
+#~ msgid "internal compiler error. Incorrect shift:"
+#~ msgstr "erreur internal du compilateur. Dcalage incorrect:"
+
+#~ msgid "only initialized variables can be placed into program memory area"
+#~ msgstr "seules les variables initialises peuvent tre places dans la zone mmoire du programme"
+
+#~ msgid "only uninitialized variables can be placed in the .noinit section"
+#~ msgstr "seuls les variables non initialises peuvent tre places dans une section .noinit"
+
+#~ msgid "MCU `%s' supported for assembler only"
+#~ msgstr "MCU %s est support pour l'assembleur seulement"
+
+#~ msgid "Assume int to be 8 bit integer"
+#~ msgstr "Prsumer que les int sont des entiers de 8 bits"
+
+#~ msgid "Change the stack pointer without disabling interrupts"
+#~ msgstr "Changer le pointeur de pile sans dsactiver les interruptions"
+
+#~ msgid "Use subroutines for function prologue/epilogue"
+#~ msgstr "Utiliser des sous-routines pour le prologue/epilogue de fonction"
+
+#~ msgid "Change only the low 8 bits of the stack pointer"
+#~ msgstr "Changer seulement les 8 bits du bas du pointeur de pile"
+
+#~ msgid "Do not generate tablejump insns"
+#~ msgstr "Ne pas gnrer les sauts de table insns"
+
+#~ msgid "Use rjmp/rcall (limited range) on >8K devices"
+#~ msgstr "Utiliser rjpm/rcall (tendue limite) sur des priphriques >8K"
+
+#~ msgid "Output instruction sizes to the asm file"
+#~ msgstr "Produire les tailles d'instructions dans le fichier asm"
+
+#~ msgid "Specify the initial stack address"
+#~ msgstr "Spcifier l'adresse initiale de la pile"
+
+#~ msgid "Specify the MCU name"
+#~ msgstr "Spcifier le nom du MCU"
+
+#~ msgid "trampolines not supported"
+#~ msgstr "trampolines ne sont pas supportes"
+
+#~ msgid "missing '(' after '#pragma %s' - ignored"
+#~ msgstr "( manquante aprs #pragma %s - ignor"
+
+#~ msgid "missing function name in '#pragma %s' - ignored"
+#~ msgstr "nom de fonction manquant dans #pragma %s - ignor"
+
+#~ msgid "malformed '#pragma %s' - ignored"
+#~ msgstr "#pragma %s mal compos - ignor"
+
+#~ msgid "missing section name in '#pragma %s' - ignored"
+#~ msgstr "nom de section manquant dans #pragma %s - ignor"
+
+#~ msgid "missing ')' for '#pragma %s' - ignored"
+#~ msgstr ") manquante pour #pragma %s - ignor"
+
+#~ msgid "junk at end of '#pragma %s'"
+#~ msgstr "rebut la fin de #pragma %s'"
+
+#~ msgid "unknown CPU version %d, using 40.\n"
+#~ msgstr "version de processeur %d inconnue, 40 est utilis.\n"
+
+#~ msgid "ISR %s requires %d words of local vars, max is 32767"
+#~ msgstr "ISR %s requiert %d mots de var. locales, max est 32767."
+
+#~ msgid "using CONST_DOUBLE for address"
+#~ msgstr "CONST_DOUBLE utilis pour l'adresse"
+
+#~ msgid "c4x_address_cost: Invalid addressing mode"
+#~ msgstr "c4x_address_cost: mode d'adressage invalide"
+
+#~ msgid "c4x_print_operand: %%L inconsistency"
+#~ msgstr "c4x_print_operand: %%L inconsistent"
+
+#~ msgid "c4x_print_operand: %%N inconsistency"
+#~ msgstr "c4x_print_operand: %%N inconsistent"
+
+#~ msgid "c4x_print_operand: %%O inconsistency"
+#~ msgstr "c4x_print_operand: %%O inconsisten"
+
+#~ msgid "c4x_print_operand: Bad operand case"
+#~ msgstr "c4x_print_operand: oprande errone pour un case"
+
+#~ msgid "c4x_print_operand_address: Bad post_modify"
+#~ msgstr "c4x_print_operand_address: post-modification errone"
+
+#~ msgid "c4x_print_operand_address: Bad pre_modify"
+#~ msgstr "c4x_print_operand_address: pr-modification errone"
+
+#~ msgid "c4x_print_operand_address: Bad operand case"
+#~ msgstr "c4x_print_operand_address: oprande errone pour un case"
+
+#~ msgid "c4x_rptb_insert: Cannot find start label"
+#~ msgstr "c4x_rptb_insert: ne peut reprer l'tiquette de dpart"
+
+#~ msgid "mode not QImode"
+#~ msgstr "mode n'est pas QImode"
+
+#~ msgid "invalid indirect memory address"
+#~ msgstr "adresse mmoire d'indirection invalide"
+
+#~ msgid "invalid indirect (S) memory address"
+#~ msgstr "adresse mmoire (S) d'indirection invalide"
+
+#~ msgid "c4x_valid_operands: Internal error"
+#~ msgstr "c4x_valid_operands: erreur interne"
+
+#~ msgid "c4x_operand_subword: invalid mode"
+#~ msgstr "c4x_oprande_subword: mode invalide"
+
+#~ msgid "c4x_operand_subword: invalid operand"
+#~ msgstr "c4x_operand_subword: oprande invalide"
+
+#~ msgid "c4x_operand_subword: invalid autoincrement"
+#~ msgstr "c4x_operand_subword: autoincrement invalide"
+
+#~ msgid "c4x_operand_subword: invalid address"
+#~ msgstr "c4x_operand_subword: adresse invalide"
+
+#~ msgid "c4x_operand_subword: address not offsettable"
+#~ msgstr "c4x_operand_subword: un dcalage d'adresse ne peut s'appliquer sur cette adresse"
+
+#~ msgid "c4x_rptb_rpts_p: Repeat block top label moved\n"
+#~ msgstr "c4x_rptb_rpts_p: tiquette suprieur de bloc de rptition dplace\n"
+
+#~ msgid "Small memory model"
+#~ msgstr "Modle de mmoire petite"
+
+#~ msgid "Big memory model"
+#~ msgstr "Modle de mmoire grande"
+
+#~ msgid "Use MPYI instruction for C3x"
+#~ msgstr "Utiliser les instructions MPYI pour C3x"
+
+#~ msgid "Do not use MPYI instruction for C3x"
+#~ msgstr "Ne pas utiliser les instructions MPYI pour C3x"
+
+#~ msgid "Use fast but approximate float to integer conversion"
+#~ msgstr "Utiliser le mode rapide mais approximatif de conversion de flottant entier"
+
+#~ msgid "Use slow but accurate float to integer conversion"
+#~ msgstr "Utiliser le mode lent mais prcis de conversion de flottant entier"
+
+#~ msgid "Enable use of RTPS instruction"
+#~ msgstr "Autoriser l'utilisation de l'instruction RTPS"
+
+#~ msgid "Disable use of RTPS instruction"
+#~ msgstr "Interdire l'utilisation de l'instruction RTPS"
+
+#~ msgid "Enable use of RTPB instruction"
+#~ msgstr "Autoriser l'utilisation de l'instruction RTPB"
+
+#~ msgid "Disable use of RTPB instruction"
+#~ msgstr "Interdire l'utilisation de l'instruction RTPB"
+
+#~ msgid "Generate code for C30 CPU"
+#~ msgstr "Gnrer du code pour processeur C30"
+
+#~ msgid "Generate code for C31 CPU"
+#~ msgstr "Gnrer du code pour processeur C31"
+
+#~ msgid "Generate code for C32 CPU"
+#~ msgstr "Gnrer du code pour processeur C32"
+
+#~ msgid "Generate code for C33 CPU"
+#~ msgstr "Gnrer du code pour processeur C33"
+
+#~ msgid "Generate code for C40 CPU"
+#~ msgstr "Gnrer du code pour processeur C40"
+
+#~ msgid "Generate code for C44 CPU"
+#~ msgstr "Gnrer du code pour processeur C44"
+
+#~ msgid "Emit code compatible with TI tools"
+#~ msgstr "Produire du code compatible avec les outils TI"
+
+#~ msgid "Emit code to use GAS extensions"
+#~ msgstr "Produire du code pour utiliser les extensions GAS"
+
+#~ msgid "Save DP across ISR in small memory model"
+#~ msgstr "Sauvegarder DP travers ISR dans le modle de mmoire restreinte"
+
+#~ msgid "Don't save DP across ISR in small memory model"
+#~ msgstr "Ne pas sauvegarder DP travers ISR dans le modle de mmoire restreinte"
+
+#~ msgid "Pass arguments on the stack"
+#~ msgstr "Passer les arguments sur la pile"
+
+#~ msgid "Pass arguments in registers"
+#~ msgstr "Passer les arguments par les registres"
+
+#~ msgid "Enable new features under development"
+#~ msgstr "Autoriser les nouvelles options en dveloppement"
+
+#~ msgid "Disable new features under development"
+#~ msgstr "Dsactiver les nouvelles options en dveloppement"
+
+#~ msgid "Use the BK register as a general purpose register"
+#~ msgstr "Utiliser le registre BK comme registre gnral tout usage"
+
+#~ msgid "Do not allocate BK register"
+#~ msgstr "Ne pas allouer de registre BK"
+
+#~ msgid "Enable use of DB instruction"
+#~ msgstr "Activer l'utilisation d'instruction DB"
+
+#~ msgid "Disable use of DB instruction"
+#~ msgstr "Dsactiver l'utilisation d'instruction DB"
+
+#~ msgid "Enable debugging"
+#~ msgstr "Permettre la mise au point"
+
+#~ msgid "Disable debugging"
+#~ msgstr "Dsactiver la mise au point"
+
+#~ msgid "Force constants into registers to improve hoisting"
+#~ msgstr "Forcer les constantes dans les registres pour amliorer la monte"
+
+#~ msgid "Don't force constants into registers"
+#~ msgstr "Ne pas forcer les constantes dans les registres"
+
+#~ msgid "Force RTL generation to emit valid 3 operand insns"
+#~ msgstr "Forcer la gnration RTL pour produire des oprandes insn 3 valides"
+
+#~ msgid "Allow RTL generation to emit invalid 3 operand insns"
+#~ msgstr "Autoriser la gnration RTL pour produire des oprandes insn 3 invalides"
+
+#~ msgid "Allow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Autoriser un compteur non sign d'itrations pour RPTB/DB"
+
+#~ msgid "Disallow unsigned iteration counts for RPTB/DB"
+#~ msgstr "Interdire un compteur non sign d'itration pour RPTB/DB"
+
+#~ msgid "Preserve all 40 bits of FP reg across call"
+#~ msgstr "Prserver tous les 40 bits du registre FP travers les appels"
+
+#~ msgid "Only preserve 32 bits of FP reg across call"
+#~ msgstr "Prserver seulement 32 bits du registre FP travers les appels"
+
+#~ msgid "Enable parallel instructions"
+#~ msgstr "Autoriser les instructions parallles"
+
+#~ msgid "Disable parallel instructions"
+#~ msgstr "Interdire les instructions parallles"
+
+#~ msgid "Enable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Autoriser les instructions MPY||ADD et MPY||SUB"
+
+#~ msgid "Disable MPY||ADD and MPY||SUB instructions"
+#~ msgstr "Interdire les instructions MPY||ADD et MPY||SUB"
+
+#~ msgid "Assume that pointers may be aliased"
+#~ msgstr "Prsumer que les pointeurs peuvent tre aliass"
+
+#~ msgid "Assume that pointers not aliased"
+#~ msgstr "Prsumer que les pointeurs ne peuvent pas tre aliass"
+
+#~ msgid "Specify maximum number of iterations for RPTS"
+#~ msgstr "Spcifier le nombre maximum d'itrations pour RPTS"
+
+#~ msgid "Select CPU to generate code for"
+#~ msgstr "Slectionner le processeur pour lequel le code doit tre gnr"
+
+#~ msgid "unexpected index-type in cris_print_index"
+#~ msgstr "type d'index inattendu dans cris_print_index"
+
+#~ msgid "unexpected base-type in cris_print_base"
+#~ msgstr "type de base inattendu dans cris_print_base"
+
+#~ msgid "stackframe too big: %d bytes"
+#~ msgstr "trame de pile trop grande: %d octets"
+
+#~ msgid "allocated but unused delay list in epilogue"
+#~ msgstr "allou mais liste de dlai non utilise dans l'pilogue"
+
+#~ msgid "unexpected function type needing stack adjustment for __builtin_eh_return"
+#~ msgstr "type de fonction inattendue ajustement de la pile ncessaire pour __builtin_eh_return "
+
+#~ msgid "invalid operand for 'b' modifier"
+#~ msgstr "oprande invalide pour le modificateur b "
+
+#~ msgid "invalid operand for 'v' modifier"
+#~ msgstr "oprande invalide pour le modificateur v "
+
+#~ msgid "invalid operand for 'P' modifier"
+#~ msgstr "oprande invalide pour le modificateur P "
+
+#~ msgid "invalid operand for 'p' modifier"
+#~ msgstr "oprande invalide pour le modificateur p "
+
+#~ msgid "invalid operand for 'z' modifier"
+#~ msgstr "oprande invalide pour le modificateur z "
+
+#~ msgid "invalid operand for 'H' modifier"
+#~ msgstr "oprande invalide pour le modificateur H "
+
+#~ msgid "bad register"
+#~ msgstr "registre erron"
+
+#~ msgid "invalid operand for 'e' modifier"
+#~ msgstr "oprande invalide pour le modificateur e "
+
+#~ msgid "invalid operand for 'm' modifier"
+#~ msgstr "oprande invalide pour le modificateur m "
+
+#~ msgid "invalid operand for 'A' modifier"
+#~ msgstr "oprande invalide pour le modificateur A "
+
+#~ msgid "invalid operand for 'D' modifier"
+#~ msgstr "oprande invalide pour le modificateur D "
+
+#~ msgid "invalid operand for 'T' modifier"
+#~ msgstr "oprande invalide pour le modificateur T "
+
+#~ msgid "invalid operand modifier letter"
+#~ msgstr "oprande invalide pour le modificateur de lettre"
+
+#~ msgid "internal error: bad register: %d"
+#~ msgstr "erreur interne: registre erron: %d"
+
+#~ msgid "unexpected multiplicative operand"
+#~ msgstr "oprande multiplicative inattendue"
+
+#~ msgid "unexpected operand"
+#~ msgstr "oprande inattendue"
+
+#~ msgid "unrecognized address"
+#~ msgstr "adresse non reconnue"
+
+#~ msgid "internal error: sideeffect-insn affecting main effect"
+#~ msgstr "erreur interne: effet de bord de insn sideeffect-insn ayant un effet principal"
+
+#~ msgid "internal error: cris_side_effect_mode_ok with bad operands"
+#~ msgstr "erreur interne: cris_side_effect_mode_ok avec des oprandes errones"
+
+#~ msgid "unrecognized supposed constant"
+#~ msgstr "suppose constante non reconnue"
+
+#~ msgid "unrecognized supposed constant in cris_global_pic_symbol"
+#~ msgstr "suppose constante non reconnue dans cris_global_pic_symbol"
+
+#~ msgid "-max-stackframe=%d is not usable, not between 0 and %d"
+#~ msgstr "-max-stackframe=%d n'est pas utilisable, n'est pas entre 0 et %d"
+
+#~ msgid "unknown CRIS version specification in -march= or -mcpu= : %s"
+#~ msgstr "spcification de version CRIS inconnue dans -march= ou -mcpu= : %s"
+
+#~ msgid "unknown CRIS cpu version specification in -mtune= : %s"
+#~ msgstr "spcification de version CRIS inconnue dans -mtune= : %s"
+
+#~ msgid "-fPIC and -fpic are not supported in this configuration"
+#~ msgstr "-fPIC et -fpic ne sont pas supportes par cette configuration"
+
+#~ msgid "that particular -g option is invalid with -maout and -melinux"
+#~ msgstr "l'option particulire -g est invalide avec -maout et -melinux"
+
+#~ msgid "unexpected side-effects in address"
+#~ msgstr "effets de bord inattendue dans l'adresse"
+
+#~ msgid "unexpected PIC symbol"
+#~ msgstr "symbole PIC inattendue"
+
+#~ msgid "PIC register isn't set up"
+#~ msgstr "le registre n'est pas initialis"
+
+#~ msgid "unexpected address expression"
+#~ msgstr "expression d'adresse inattendue"
+
+#~ msgid "emitting PIC operand, but PIC register isn't set up"
+#~ msgstr "gnration d'une oprande PIC mais le registre PIC n'est pas initialis"
+
+#~ msgid "unexpected NOTE as addr_const:"
+#~ msgstr "NOTE inattendu comme addr_conts:"
+
+#~ msgid "Compile for the MMU-less Etrax 100-based elinux system"
+#~ msgstr "Compiler pour le MMU-less Etrax 100-based de systme elinux"
+
+#~ msgid "For elinux, request a specified stack-size for this program"
+#~ msgstr "Pour elinux, faire la requte pour un taille de pile spcifique pour ce programme"
+
+#~ msgid "Work around bug in multiplication instruction"
+#~ msgstr "Travailler autour de l'anomalie dans l'instructions de multiplication"
+
+#~ msgid "Compile for ETRAX 4 (CRIS v3)"
+#~ msgstr "Compil pour ETRAX 4 (CRIS v3)"
+
+#~ msgid "Compile for ETRAX 100 (CRIS v8)"
+#~ msgstr "Compile pour ETRAX 100 (CRIS v8)"
+
+#~ msgid "Emit verbose debug information in assembly code"
+#~ msgstr "Produire des informations de mise au point dans le code assembl"
+
+#~ msgid "Do not use condition codes from normal instructions"
+#~ msgstr "Ne pas utiliser du code conditionnel pour des instructions normales"
+
+#~ msgid "Do not emit addressing modes with side-effect assignment"
+#~ msgstr "Ne pas produire de modes d'adressage avec des affectations avec effet de bord"
+
+#~ msgid "Do not tune stack alignment"
+#~ msgstr "Ne pas ajuster l'alignement de la pile"
+
+#~ msgid "Do not tune writable data alignment"
+#~ msgstr "Ne pas ajuster l'alignement les sections de donnes dynamiques"
+
+#~ msgid "Do not tune code and read-only data alignment"
+#~ msgstr "Ne pas ajuster l'alignement du code et des sections de donnes statiques"
+
+#~ msgid "Align code and data to 32 bits"
+#~ msgstr "Aligner le code et les donnes sur 32 bits"
+
+#~ msgid "Don't align items in code or data"
+#~ msgstr "Ne pas aligner les items dans le code ou les donnes"
+
+#~ msgid "Do not emit function prologue or epilogue"
+#~ msgstr "Ne pas gnrer de prologue ou d'pilogue de fonction"
+
+#~ msgid "Use the most feature-enabling options allowed by other options"
+#~ msgstr "Utiliser le plus d'options autorisant autorisant des options permises par les autres options"
+
+#~ msgid "Override -mbest-lib-options"
+#~ msgstr "craser -mbest-lib-options"
+
+#~ msgid "Generate code for the specified chip or CPU version"
+#~ msgstr "Gnrer le code pour la version de processeur ou de circuit spcifie"
+
+#~ msgid "Tune alignment for the specified chip or CPU version"
+#~ msgstr "Ajuster l'alignement pour la version de processeur ou de circuit spcifie"
+
+#~ msgid "Warn when a stackframe is larger than the specified size"
+#~ msgstr "Avertir lorsqu'une trame de pile est plus grande que la taille spcifie"
+
+#~ msgid "no FUNCTION_PROFILER for CRIS"
+#~ msgstr "pas de FUNCTION_PROFILER pour CRIS"
+
+#~ msgid "Together with -fpic and -fPIC, do not use GOTPLT references"
+#~ msgstr "ensemble avec -fpic et -fPIC, ne pas utiliser les rfrences GOTPLT"
+
+#~ msgid "bad modes_tieable_p for register %s, mode1 %s, mode2 %s"
+#~ msgstr "modes_tieable_p errone pour le registre %s, mode1 %s, mode2 %s"
+
+#~ msgid "bad insn to d30v_print_operand_address:"
+#~ msgstr "insn erron pour d30v_print_operand_addresse:"
+
+#~ msgid "bad insn to d30v_print_operand_memory_reference:"
+#~ msgstr "insn erron pour d30v_print_operand_memory_reference:"
+
+#~ msgid "bad insn to d30v_print_operand, 'f' modifier:"
+#~ msgstr "insn erron pour d30v_print_operand, modificateur f :"
+
+#~ msgid "bad insn to d30v_print_operand, 'A' modifier:"
+#~ msgstr "insn erron pour d30v_print_operand, modificateur A :"
+
+#~ msgid "bad insn to d30v_print_operand, 'M' modifier:"
+#~ msgstr "insn erron pour d30v_print_operand, modificateur M :"
+
+#~ msgid "bad insn to print_operand, 'F' or 'T' modifier:"
+#~ msgstr "insn erron pour print_operand, modificateur F ou T :"
+
+#~ msgid "bad insn to print_operand, 'B' modifier:"
+#~ msgstr "insn erron pour print_operand, modificateur B :"
+
+#~ msgid "bad insn to print_operand, 'E' modifier:"
+#~ msgstr "insn erron pour print_operand, modificateur E :"
+
+#~ msgid "bad insn to print_operand, 'R' modifier:"
+#~ msgstr "insn erron to print_operand, modificateur R :"
+
+#~ msgid "bad insn to print_operand, 's' modifier:"
+#~ msgstr "insn erron to print_operand, modificateur s :"
+
+#~ msgid "bad insn in d30v_print_operand, 0 case"
+#~ msgstr "insn erron dans d30v_print_operand, cas 0"
+
+#~ msgid "d30v_emit_comparison"
+#~ msgstr "d30v_emit_comparison"
+
+#~ msgid "bad call to d30v_move_2words"
+#~ msgstr "appel erron d30v_move_2words"
+
+#~ msgid "Enable use of conditional move instructions"
+#~ msgstr "Autoriser l'utilisation des instructions conditionnelles move"
+
+#~ msgid "Disable use of conditional move instructions"
+#~ msgstr "Interdire l'utilisation des instructions conditionnelles move"
+
+#~ msgid "Debug argument support in compiler"
+#~ msgstr "Mettre au point le support d'argument dans le compilateur"
+
+#~ msgid "Debug stack support in compiler"
+#~ msgstr "Mettre au point le support de la pile dans le compilateur"
+
+#~ msgid "Debug memory address support in compiler"
+#~ msgstr "Mettre au point le support d'adresses dans le compilateur"
+
+#~ msgid "Make adjacent short instructions parallel if possible"
+#~ msgstr "Rendre adjacentes les instructions short en instructions parallles si possible"
+
+#~ msgid "Do not make adjacent short instructions parallel"
+#~ msgstr "Ne pas rendre adjacentes les instructions short en instructions parallles"
+
+#~ msgid "Link programs/data to be in external memory by default"
+#~ msgstr "Faire l'dition de lien des programmes/donnes comme tant externe la mmoire par dfaut"
+
+#~ msgid "Link programs/data to be in onchip memory by default"
+#~ msgstr "Faire l'dition de lien des programmes/donnes comme tant interne dans la circuiterie de la mmoire par dfaut"
+
+#~ msgid "Change the branch costs within the compiler"
+#~ msgstr "Changer les cots de branchement l'intrieur du compilateur"
+
+#~ msgid "Change the threshold for conversion to conditional execution"
+#~ msgstr "Changer le seuil pour la conversion en une excution conditionnelle"
+
+#~ msgid "stack size > 32k"
+#~ msgstr "taille de la pile > 32k"
+
+#~ msgid "invalid addressing mode"
+#~ msgstr "mode d'adressage invalide"
+
+#~ msgid "bad register extension code"
+#~ msgstr "code d'extension de registre erron"
+
+#~ msgid "invalid offset in ybase addressing"
+#~ msgstr "dcalage invalide dans l'adresse ybase"
+
+#~ msgid "invalid register in ybase addressing"
+#~ msgstr "registre invalide dans l'adressage ybase"
+
+#~ msgid "invalid shift operator in emit_1600_core_shift"
+#~ msgstr "oprateur de dcalage invalide dans emit_1600_core_shift"
+
+#~ msgid "invalid mode for gen_tst_reg"
+#~ msgstr "mode invalide pour gen_tst_reg"
+
+#~ msgid "invalid mode for integer comparison in gen_compare_reg"
+#~ msgstr "mode invalide pour la comparaison d'entiers dans gen_compare_reg"
+
+#~ msgid "Pass parameters in registers (default)"
+#~ msgstr "Passer les paramtres par les registres (par dfaut)"
+
+#~ msgid "Don't pass parameters in registers"
+#~ msgstr "Ne pas passer les paramtres par les registres"
+
+#~ msgid "Generate code for near calls"
+#~ msgstr "Gnrer du code pour les appels proches"
+
+#~ msgid "Don't generate code for near calls"
+#~ msgstr "Ne pas gnrer du code pour les appels proches"
+
+#~ msgid "Generate code for near jumps"
+#~ msgstr "Gnrer du code pour les sauts proches"
+
+#~ msgid "Don't generate code for near jumps"
+#~ msgstr "Ne pas gnrer du code pour les sauts proches"
+
+#~ msgid "Generate code for a bit-manipulation unit"
+#~ msgstr "Gnrer du code pour une unit de manipulation de bits"
+
+#~ msgid "Don't generate code for a bit-manipulation unit"
+#~ msgstr "Ne pas gnrer du code pour une unit de manipulation de bits"
+
+#~ msgid "Generate code for memory map1"
+#~ msgstr "Gnrer du code pour la mmoire map1"
+
+#~ msgid "Generate code for memory map2"
+#~ msgstr "Gnrer du code pour la mmoire map2"
+
+#~ msgid "Generate code for memory map3"
+#~ msgstr "Gnrer du code pour la mmoire map3"
+
+#~ msgid "Generate code for memory map4"
+#~ msgstr "Gnrer du code pour la mmoire map4"
+
+#~ msgid "Ouput extra code for initialized data"
+#~ msgstr "Produire du code additionnel pour les donnes initialises"
+
+#~ msgid "Don't let reg. allocator use ybase registers"
+#~ msgstr "Ne pas laisser l'allocateur de registres utiliser les registres ybase"
+
+#~ msgid "Output extra debug info in Luxworks environment"
+#~ msgstr "Produire des informations supplmentaires de mise au point dans l'environnement Luxworks"
+
+#~ msgid "Save temp. files in Luxworks environment"
+#~ msgstr "Sauvegarder les fichiers temporaires dans l'environnement Luxworks"
+
+#~ msgid "Specify alternate name for text section"
+#~ msgstr "Spcifier un nom alternatif pour la section texte"
+
+#~ msgid "Specify alternate name for data section"
+#~ msgstr "Spcifier un nom alternatif pour la section donnes"
+
+#~ msgid "Specify alternate name for bss section"
+#~ msgstr "Spcifier un nom alternatif pour la section bss"
+
+#~ msgid "Specify alternate name for constant section"
+#~ msgstr "Spcifier un nom alternatif pour la section des constantes"
+
+#~ msgid "Specify alternate name for dsp16xx chip"
+#~ msgstr "Spcifier un nom alternatif pour le cirsuit dsp16xx"
+
+#~ msgid "profiling not implemented yet"
+#~ msgstr "profilage n'est pas implant encore"
+
+#~ msgid "trampolines not yet implemented"
+#~ msgstr "trampolines ne sont pas encore implantes"
+
+#~ msgid "fr30_print_operand_address: unhandled address"
+#~ msgstr "fr30_print_operand_address: adresse non traite"
+
+#~ msgid "fr30_print_operand: unrecognized %%p code"
+#~ msgstr "fr30_print_operand: code %%p non reconnue"
+
+#~ msgid "fr30_print_operand: unrecognized %%b code"
+#~ msgstr "fr30_print_operand: code %%b non reconnue"
+
+#~ msgid "fr30_print_operand: unrecognized %%B code"
+#~ msgstr "fr30_print_operand: code %%B non reconnu"
+
+#~ msgid "fr30_print_operand: invalid operand to %%A code"
+#~ msgstr "fr30_print_operand: oprande invalide pour code %%A"
+
+#~ msgid "fr30_print_operand: invalid %%x code"
+#~ msgstr "fr30_print_operand: code %%x invalide"
+
+#~ msgid "fr30_print_operand: invalid %%F code"
+#~ msgstr "fr30_print_operand: code %%F invalide"
+
+#~ msgid "fr30_print_operand: unknown code"
+#~ msgstr "fr30_print_operand: code inconnu"
+
+#~ msgid "fr30_print_operand: unhandled MEM"
+#~ msgstr "fr30_print_operand: MEM non trait"
+
+#~ msgid "Assume small address space"
+#~ msgstr "Prsumer un petit espace d'adressage"
+
+#~ msgid "Unknown cpu: -mcpu=%s"
+#~ msgstr "Processeur inconnu : -mcpu=%s"
+
+#~ msgid "-fpic and -gdwarf are incompatible (-fpic and -g/-gdwarf-2 are fine)"
+#~ msgstr "-fpic et -gdwarf sont incompatibles (-fpic et -g/-gdwarf-2 sont acceptables)"
+
+#~ msgid "Bad insn to frv_print_operand_address:"
+#~ msgstr "insn erron pour frv_print_operand_addresse:"
+
+#~ msgid "Bad register to frv_print_operand_memory_reference_reg:"
+#~ msgstr "registre erron pour frv_print_operand_memory_reference_reg:"
+
+#~ msgid "Bad insn to frv_print_operand_memory_reference:"
+#~ msgstr "insn erron pour frv_print_operand_memory_reference:"
+
+#~ msgid "Bad insn in frv_print_operand, bad const_double"
+#~ msgstr "insn erron dans frv_print_operand, bad const_double"
+
+#~ msgid "Bad insn to frv_print_operand, 'C' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur C :"
+
+#~ msgid "Bad insn to frv_print_operand, 'c' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur c :"
+
+#~ msgid "Bad insn to frv_print_operand, 'e' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur e :"
+
+#~ msgid "Bad insn to frv_print_operand, 'F' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur F :"
+
+#~ msgid "Bad insn to frv_print_operand, 'f' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur f :"
+
+#~ msgid "Bad insn to frv_print_operand, 'L' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur L :"
+
+#~ msgid "Bad insn to frv_print_operand, 'M/N' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur M/N :"
+
+#~ msgid "Bad insn to frv_print_operand, 'O' modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur O :"
+
+#~ msgid "Bad insn to frv_print_operand, P modifier:"
+#~ msgstr "insn erron pour frv_print_operand, modificateur P :"
+
+#~ msgid "Bad insn in frv_print_operand, z case"
+#~ msgstr "insn erron dans frv_print_operand, case z"
+
+#~ msgid "Bad insn in frv_print_operand, 0 case"
+#~ msgstr "insn erron dans frv_print_operand, case 0"
+
+#~ msgid "frv_print_operand: unknown code"
+#~ msgstr "frv_print_operand: code inconnu"
+
+#~ msgid "Bad output_move_single operand"
+#~ msgstr "oprande output_move_single errone"
+
+#~ msgid "Bad output_move_double operand"
+#~ msgstr "oprande output_move_double errone"
+
+#~ msgid "Bad output_condmove_single operand"
+#~ msgstr "oprande output_condmove_single errone"
+
+#~ msgid "frv_registers_update"
+#~ msgstr "frv_registers_update"
+
+#~ msgid "frv_registers_used_p"
+#~ msgstr "frv_registers_used_p"
+
+#~ msgid "frv_registers_set_p"
+#~ msgstr "frv_registers_set_p"
+
+#~ msgid "accumulator is not a constant integer"
+#~ msgstr "accumulateur n'est pas une constante en entier"
+
+#~ msgid "accumulator number is out of bounds"
+#~ msgstr "numro de l'accumulateur est hors limite"
+
+#~ msgid "inappropriate accumulator for `%s'"
+#~ msgstr "accumulateur inappropri pour %s "
+
+#~ msgid "`%s' expects a constant argument"
+#~ msgstr " %s attend un argument de constante"
+
+#~ msgid "constant argument out of range for `%s'"
+#~ msgstr "argument de constante hors limite pour %s "
+
+#~ msgid "media functions are not available unless -mmedia is used"
+#~ msgstr "fonctions mdia ne sont pas disponibles mois que -mmedia soit utilis"
+
+#~ msgid "this media function is only available on the fr500"
+#~ msgstr "cette fonction mdia est seulement disponible sur le fr500"
+
+#~ msgid "this media function is only available on the fr400"
+#~ msgstr "cette fonction mdia est seulement disponible sur le fr400"
+
+#~ msgid " (frv)"
+#~ msgstr " (frv)"
+
+#~ msgid "-ms2600 is used without -ms"
+#~ msgstr "-ms2600 est utilis sans -ms"
+
+#~ msgid "-mn is used without -mh or -ms"
+#~ msgstr "-mm est utilis sans -mh ou -ms"
+
+#~ msgid "Generate H8S code"
+#~ msgstr "Gnrer du code H8S"
+
+#~ msgid "Do not generate H8S code"
+#~ msgstr "Ne pas gnrer du code H8S"
+
+#~ msgid "Generate H8S/2600 code"
+#~ msgstr "Gnrer du code H8S/S2600"
+
+#~ msgid "Do not generate H8S/2600 code"
+#~ msgstr "Ne pas gnrer du code H8S/2600"
+
+#~ msgid "Make integers 32 bits wide"
+#~ msgstr "Rendre les entiers larges de 32 bits"
+
+#~ msgid "Use registers for argument passing"
+#~ msgstr "Utiliser les registres pour le passage d'arguments"
+
+#~ msgid "Do not use registers for argument passing"
+#~ msgstr "Ne pas utiliser les registres pour le passage d'arguments"
+
+#~ msgid "Consider access to byte sized memory slow"
+#~ msgstr "Considrer l'accs mmoire lent pour la taille d'octets"
+
+#~ msgid "Enable linker relaxing"
+#~ msgstr "Activer la rlche par l'diteur de liens"
+
+#~ msgid "Generate H8/300H code"
+#~ msgstr "Gnrer du code H8/300H"
+
+#~ msgid "Enable the normal mode"
+#~ msgstr "Activer le mode normal"
+
+#~ msgid "Do not generate H8/300H code"
+#~ msgstr "Ne pas gnrer du code H8/300H"
+
+#~ msgid "Use H8/300 alignment rules"
+#~ msgstr "Utiliser les rgles d'alignement H8/300"
+
+#~ msgid "junk at end of #pragma map"
+#~ msgstr "rebut la fin de #pragma map"
+
+#~ msgid "malformed #pragma map, ignored"
+#~ msgstr "#pragma map mal compos, ignor"
+
+#~ msgid "real name is too long - alias ignored"
+#~ msgstr "nom rel est trop long - alias ignor"
+
+#~ msgid "alias name is too long - alias ignored"
+#~ msgstr "nom d'alias est trop long - alias ignor"
+
+#~ msgid "internal error--no jump follows compare:"
+#~ msgstr "erreur interne--pas de saut suivant la comparaison:"
+
+#~ msgid "Generate char instructions"
+#~ msgstr "Gnrer des instructions char "
+
+#~ msgid "Do not generate char instructions"
+#~ msgstr "Ne pas gnrer des instructions char "
+
+#~ msgid "code model %s not supported in PIC mode"
+#~ msgstr "model de code %s n'est pas support en mode PIC"
+
+#~ msgid "bad value (%s) for -mcmodel= switch"
+#~ msgstr "valeur errone (%s) pour l'opton -mcmodel="
+
+#~ msgid "bad value (%s) for -masm= switch"
+#~ msgstr "valeur errone (%s) pour l'option -masm"
+
+#~ msgid "code model `%s' not supported in the %s bit mode"
+#~ msgstr "model de code %s n'est pas support dans le mode %s bits"
+
+#~ msgid "code model `large' not supported yet"
+#~ msgstr "model de code large n'est pas support encore"
+
+#~ msgid "%i-bit mode not compiled in"
+#~ msgstr "mode %i bits pas compil en"
+
+#~ msgid "CPU you selected does not support x86-64 instruction set"
+#~ msgstr "le processeur slectionn ne supporte pas le jeu d'instructions x86-64"
+
+#~ msgid "bad value (%s) for -march= switch"
+#~ msgstr "valeur errone (%s) pour l'option -march="
+
+#~ msgid "bad value (%s) for -mtune= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mtune="
+
+#~ msgid "-mregparm=%d is not between 0 and %d"
+#~ msgstr "-mregparm=%d n'est pas entre 0 et %d"
+
+#~ msgid "-malign-loops is obsolete, use -falign-loops"
+#~ msgstr "-malign-loops est obsolte, utiliser -falign-loops"
+
+#~ msgid "-malign-loops=%d is not between 0 and %d"
+#~ msgstr "-malign-loops=%d n'est pas entre 0 et %d"
+
+#~ msgid "-malign-jumps is obsolete, use -falign-jumps"
+#~ msgstr "-malign-jumps est obsolte, utiliser -falign-loops"
+
+#~ msgid "-malign-functions is obsolete, use -falign-functions"
+#~ msgstr "-malign-functions est obsolte, utiliser -falign-loops"
+
+#~ msgid "-mpreferred-stack-boundary=%d is not between %d and 12"
+#~ msgstr "-mpreferred-stack-boundary=%d n'est pas entre %d et 12"
+
+#~ msgid "-mbranch-cost=%d is not between 0 and 5"
+#~ msgstr "-mbranch-cost=%d n'est pas entre 0 et 5"
+
+#~ msgid "bad value (%s) for -mtls-dialect= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mtls-dialect"
+
+#~ msgid "-malign-double makes no sense in the 64bit mode"
+#~ msgstr "-malign-double n'a aucun sens en mode 64 bits"
+
+#~ msgid "-mrtd calling convention not supported in the 64bit mode"
+#~ msgstr "la conversion d'appel -mrtd n'est pas support en mode 64 bits"
+
+#~ msgid "SSE instruction set disabled, using 387 arithmetics"
+#~ msgstr "jeu d'instructions SSE dsactiv, arithmtique 387 est utilis"
+
+#~ msgid "387 instruction set disabled, using SSE arithmetics"
+#~ msgstr "jeu d'instructions 387 dsactiv, arithmtique SSE est utilis"
+
+#~ msgid "bad value (%s) for -mfpmath= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mfpmath"
+
+#~ msgid "fastcall and stdcall attributes are not compatible"
+#~ msgstr "les attributs fastcall et stdcall ne sont pas compatibles"
+
+#~ msgid "fastcall and regparm attributes are not compatible"
+#~ msgstr "les attributs fastcall et regparm ne sont pas compatibles"
+
+#~ msgid "`%s' attribute requires an integer constant argument"
+#~ msgstr "l'attribut %s requiert un argument de type constante entire"
+
+#~ msgid "argument to `%s' attribute larger than %d"
+#~ msgstr "l'argument pour l'attribut %s est plus grand que %d"
+
+#~ msgid "SSE vector argument without SSE enabled changes the ABI"
+#~ msgstr "l'argument vecteur SSE sans autorisation SSE modifie l'ABI "
+
+#~ msgid "MMX vector argument without MMX enabled changes the ABI"
+#~ msgstr "l'argument vecteur SSE sans autorisation MXX modifie l'ABI "
+
+#~ msgid "SSE vector return without SSE enabled changes the ABI"
+#~ msgstr "vecteur SSE retourn sans autorisation SSE des changements de l'ABI "
+
+#~ msgid "invalid UNSPEC as operand"
+#~ msgstr "UNSPEC invalide comme oprande"
+
+#~ msgid "extended registers have no high halves"
+#~ msgstr "registres tendus n'a pas de demis hauts"
+
+#~ msgid "unsupported operand size for extended register"
+#~ msgstr "taille d'oprande non supporte pour un registre tendu"
+
+#~ msgid "operand is neither a constant nor a condition code, invalid operand code 'c'"
+#~ msgstr "l'oprande n'est ni une constante ni du code de condition, code d'oprande invalide c "
+
+#~ msgid "invalid operand code `%c'"
+#~ msgstr "oprande invalide pour %c "
+
+#~ msgid "invalid constraints for operand"
+#~ msgstr "contrainte invalide pour l'oprande"
+
+#~ msgid "unknown insn mode"
+#~ msgstr "mode insn inconnu"
+
+#~ msgid "selector must be an integer constant in the range 0..%i"
+#~ msgstr "le slecteur doit tre une constante entire entre les bornes 0..%i"
+
+#~ msgid "shift must be an immediate"
+#~ msgstr "dcalage doit tre un immdiat"
+
+#~ msgid "`%s' incompatible attribute ignored"
+#~ msgstr "attribut %s incompatible ignor"
+
+#~ msgid "%Jfunction `%D' definition is marked dllimport."
+#~ msgstr "%Jdfinition de la fonction %D est marque dllimport"
+
+#~ msgid "%Jvariable `%D' definition is marked dllimport."
+#~ msgstr "%Jdfinition de la variable %D est marque dllimport"
+
+#~ msgid "%Jexternal linkage required for symbol '%D' because of '%s' attribute."
+#~ msgstr "%Jdition de lien externe requise pour le symbole %D en raison de l'attribut %s "
+
+#~ msgid "`%s' attribute only applies to variables"
+#~ msgstr "attribut %s s'applique seulement aux variables"
+
+#~ msgid "%Jfunction '%D' is defined after prior declaration as dllimport: attribute ignored"
+#~ msgstr "%Jfonction %D est dfinie aprs un dclaration antrieure en tant que dllimport: attribut ignor"
+
+#~ msgid "%Jinline function '%D' is declared as dllimport: attribute ignored."
+#~ msgstr "%Jfonction enligne %D est dclare en tant que dllimport: attribut ignor."
+
+#~ msgid "%Jdefinition of static data member '%D' of dllimport'd class."
+#~ msgstr "%Jdfinition d'un membre statique de donnes %D de la classe dllimport"
+
+#~ msgid "%Jinconsistent dll linkage for '%D', dllexport assumed."
+#~ msgstr "%Jdition de lien dll inconsistent pour %D : dllexport assum."
+
+#~ msgid "`%s' declared as both exported to and imported from a DLL"
+#~ msgstr " %s dclar la fois comme export et import d'une DLL"
+
+#~ msgid "%Jfailure in redeclaration of '%D': dllimport'd symbol lacks external linkage."
+#~ msgstr "%Jchec dans la redclation de %D : symbol dllimport manque de liens externes."
+
+#~ msgid "%J'%D' defined locally after being referenced with dllimport linkage"
+#~ msgstr "%J %D dfini localement aprs avoir t rfrenc avec lien dllimport."
+
+#~ msgid "%J'%D' redeclared without dllimport attribute after being referenced with dllimport linkage"
+#~ msgstr "%J %D redclar sans attribut dllimport aprs avoir t rfrenc avec lien dllimport."
+
+#~ msgid "%J'%D' causes a section type conflict"
+#~ msgstr "%J %D cause un conflit du type de section"
+
+#~ msgid "Use the Cygwin interface"
+#~ msgstr "Utiliser l'interface Cygwin"
+
+#~ msgid "Use the Mingw32 interface"
+#~ msgstr "Utiliser l'interface Mingw32"
+
+#~ msgid "Create GUI application"
+#~ msgstr "Crer une application de type GUI"
+
+#~ msgid "Don't set Windows defines"
+#~ msgstr "Ne pas initialiser les dfinitions Windows"
+
+#~ msgid "Set Windows defines"
+#~ msgstr "Initialiser les dfinitions Windows"
+
+#~ msgid "Create console application"
+#~ msgstr "Crer une application de type console"
+
+#~ msgid "Generate code for a DLL"
+#~ msgstr "Gnrer le code pour un DLL"
+
+#~ msgid "Ignore dllimport for functions"
+#~ msgstr "Ignorer dllimport pour fonctions"
+
+#~ msgid "Use Mingw-specific thread support"
+#~ msgstr "Utilise le support de thread spcifique Mingw"
+
+#~ msgid "-f%s ignored for target (all code is position independent)"
+#~ msgstr "-f%s ignor pour la cible (tout le code set indpendant de la position)"
+
+#~ msgid "-mbnu210 is ignored (option is obsolete)"
+#~ msgstr "-mbnu210 est ignor (option obsolte)"
+
+#~ msgid "ms-bitfields not supported for objc"
+#~ msgstr "ms-bitfields n'est pas support pour objc"
+
+#~ msgid "Alternate calling convention"
+#~ msgstr "Convention alternative d'appels"
+
+#~ msgid "Use normal calling convention"
+#~ msgstr "Utiliser la convention normale d'appels"
+
+#~ msgid "Align some doubles on dword boundary"
+#~ msgstr "Aligner quelques doubles sur des frontires de mots doubles"
+
+#~ msgid "Align doubles on word boundary"
+#~ msgstr "Aligner les doubles sur des frontires de mots"
+
+#~ msgid "Uninitialized locals in .bss"
+#~ msgstr "Var. locales non initialises dans .bss"
+
+#~ msgid "Uninitialized locals in .data"
+#~ msgstr "Var. locales non initialises dans .data"
+
+#~ msgid "Use IEEE math for fp comparisons"
+#~ msgstr "Utiliser les mathmatiques IEEE pour les comparaisons FP"
+
+#~ msgid "Do not use IEEE math for fp comparisons"
+#~ msgstr "Ne pas utiliser les mathmatiques IEEE pour les comparaisons FP"
+
+#~ msgid "Return values of functions in FPU registers"
+#~ msgstr "Retourner les valeurs de fonctions dans les registres FPU"
+
+#~ msgid "Do not return values of functions in FPU registers"
+#~ msgstr "Ne pas retourner les valeurs de fonctions dans les registres FPU"
+
+#~ msgid "Do not generate sin, cos, sqrt for FPU"
+#~ msgstr "Ne pas gnrer sin, cos, sqrt pour le FPU"
+
+#~ msgid "Generate sin, cos, sqrt for FPU"
+#~ msgstr "Gnrer sin, cos, sqrt pour le FPU"
+
+#~ msgid "Omit the frame pointer in leaf functions"
+#~ msgstr "Omettre le pointeur de trame dans les fonctions feuilles"
+
+#~ msgid "Enable stack probing"
+#~ msgstr "Autoriser le sondage de la pile"
+
+#~ msgid "Align destination of the string operations"
+#~ msgstr "Aligner la destination des oprations sur les chanes"
+
+#~ msgid "Do not align destination of the string operations"
+#~ msgstr "Ne pas aligner la destination des oprations sur les chanes"
+
+#~ msgid "Inline all known string operations"
+#~ msgstr "Permettre l'enlignage dans toutes les oprations portant sur les chanes"
+
+#~ msgid "Do not inline all known string operations"
+#~ msgstr "Ne pas permettre l'enlignage dans toutes les oprations portant sur les chanes"
+
+#~ msgid "Use push instructions to save outgoing arguments"
+#~ msgstr "Utiliser les instructions push pour sauvegardes les arguments sortants"
+
+#~ msgid "Do not use push instructions to save outgoing arguments"
+#~ msgstr "Ne pas utiliser les instructions push pour sauvegardes les arguments sortants"
+
+#~ msgid "Support MMX built-in functions"
+#~ msgstr "Supporte les fonctions internes MMX"
+
+#~ msgid "Do not support MMX built-in functions"
+#~ msgstr "Ne supporte pas les fonctions internes MMX"
+
+#~ msgid "Support 3DNow! built-in functions"
+#~ msgstr "Supporte les fonctions internes 3DNOW!"
+
+#~ msgid "Do not support 3DNow! built-in functions"
+#~ msgstr "Ne supporte pas les fonctions internes 3DNOW!"
+
+#~ msgid "Support MMX and SSE built-in functions and code generation"
+#~ msgstr "Supporte les fonctions internes MMX et SSE et la gnration de code"
+
+#~ msgid "Do not support MMX and SSE built-in functions and code generation"
+#~ msgstr "Ne supporte pas les fonctions internes MMX et SSE et la gnration de code"
+
+#~ msgid "Support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Supporte les fonctions internes MMX, SSE et SSE2 et la gnration de code"
+
+#~ msgid "Do not support MMX, SSE and SSE2 built-in functions and code generation"
+#~ msgstr "Ne supporte pas les fonctions internes MMX, SSE et SSE2 et la gnration de code"
+
+#~ msgid "Support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+#~ msgstr "Supporte les fonctions internes MMX, SSE, SSE2 et SSE3 et la gnration de code"
+
+#~ msgid "Do not support MMX, SSE, SSE2 and SSE3 built-in functions and code generation"
+#~ msgstr "Ne supporte pas les fonctions internes MMX, SSE, SSE2 et SSE3 et la gnration de code"
+
+#~ msgid "sizeof(long double) is 16"
+#~ msgstr "sizeof(long double) est 16"
+
+#~ msgid "sizeof(long double) is 12"
+#~ msgstr "sizeof(long double) est 12"
+
+#~ msgid "Generate 64bit x86-64 code"
+#~ msgstr "Gnrer du code 64 bits pour x86-64"
+
+#~ msgid "Generate 32bit i386 code"
+#~ msgstr "Gnrer du code 32 bits pour i386"
+
+#~ msgid "Use native (MS) bitfield layout"
+#~ msgstr "Utiliser une configuration de champ de bits native (MS)"
+
+#~ msgid "Use gcc default bitfield layout"
+#~ msgstr "Utiliser la configuration par dfaut de gcc pour les champs de bits"
+
+#~ msgid "Use red-zone in the x86-64 code"
+#~ msgstr "Utiliser la zone-rouge pour le code x86-64"
+
+#~ msgid "Do not use red-zone in the x86-64 code"
+#~ msgstr "Ne pas utiliser la zone-rouge pour le code x86-64"
+
+#~ msgid "Use direct references against %gs when accessing tls data"
+#~ msgstr "Utiliser la rfrence directe envers %gs lors de l'accs des donnes tls"
+
+#~ msgid "Do not use direct references against %gs when accessing tls data"
+#~ msgstr "Ne pas utiliser la rfrence directe envers %gs lors de l'accs des donnes tls"
+
+#~ msgid "Schedule code for given CPU"
+#~ msgstr "Ordonnancer le code pour le processeur donn"
+
+#~ msgid "Generate floating point mathematics using given instruction set"
+#~ msgstr "Gnrer les mathmatiques en virgule flottante avec le jeu d'instructions donnes"
+
+#~ msgid "Generate code for given CPU"
+#~ msgstr "Gnrer le code pour le processeur donn"
+
+#~ msgid "Number of registers used to pass integer arguments"
+#~ msgstr "Nombre de registres utiliss pour passer les arguments entiers"
+
+#~ msgid "Loop code aligned to this power of 2"
+#~ msgstr "Codes de boucles aligns selon une puissance de 2"
+
+#~ msgid "Jump targets are aligned to this power of 2"
+#~ msgstr "Sauts de cibles aligns selon une puissance de 2"
+
+#~ msgid "Function starts are aligned to this power of 2"
+#~ msgstr "Dbuts des fonction aligns selon une puissance de 2"
+
+#~ msgid "Attempt to keep stack aligned to this power of 2"
+#~ msgstr "Tentative de conservation de la pile aligne selon une puissance de 2"
+
+#~ msgid "Branches are this expensive (1-5, arbitrary units)"
+#~ msgstr "Branchements coteux ce point (1-4, units arbitraires)"
+
+#~ msgid "Use given x86-64 code model"
+#~ msgstr "Utiliser le modle de x86-64 donn"
+
+#~ msgid "Use given assembler dialect"
+#~ msgstr "Utiliser la syntaxe de l'assembleur donn"
+
+#~ msgid "Use given thread-local storage dialect"
+#~ msgstr "Utiliser le dialecte de stockage du thread local fourni"
+
+#~ msgid "Generate ELF output"
+#~ msgstr "Gnrer la sortie ELF"
+
+#~ msgid "environment variable DJGPP not defined"
+#~ msgstr "variable d'environment DJGPP non dfinie"
+
+#~ msgid "environment variable DJGPP points to missing file '%s'"
+#~ msgstr "variable d'environment DJGPP pointe sur un fichier manquant %s "
+
+#~ msgid "environment variable DJGPP points to corrupt file '%s'"
+#~ msgstr "variable d'environment DJGPP pointe vers un fichier corrompu %s "
+
+#~ msgid "Generate code which uses the FPU"
+#~ msgstr "Gnrer du code qui utilise le FPU"
+
+#~ msgid "Do not generate code which uses the FPU"
+#~ msgstr "Ne pas gnrer du code qui utilise le FPU"
+
+#~ msgid "sorry, not implemented: #pragma align NAME=SIZE"
+#~ msgstr "dsol, pas implant: #pragma align NOM=TAILLE"
+
+#~ msgid "malformed #pragma align - ignored"
+#~ msgstr "#pragma align mal compos - ignor"
+
+#~ msgid "sorry, not implemented: #pragma noalign NAME"
+#~ msgstr "dsol, pas implant: #pragma noalign NOM"
+
+#~ msgid "conflicting architectures defined - using C series"
+#~ msgstr "architectures conflictuelles dfinies - utilise les sries C"
+
+#~ msgid "conflicting architectures defined - using K series"
+#~ msgstr "architectures conflictuelles dfinies - utilise les sries K"
+
+#~ msgid "iC2.0 and iC3.0 are incompatible - using iC3.0"
+#~ msgstr "iC2.0 et iC3.0 sont incompatibles - utilise iC3.0"
+
+#~ msgid "stack limit expression is not supported"
+#~ msgstr "expression limitant la pile n'est pas supporte"
+
+#~ msgid "Generate SA code"
+#~ msgstr "Gnrer du code SA"
+
+#~ msgid "Generate SB code"
+#~ msgstr "Gnrer du code SB"
+
+#~ msgid "Generate KA code"
+#~ msgstr "Gnrer du code KA"
+
+#~ msgid "Generate KB code"
+#~ msgstr "Gnrer du code KB"
+
+#~ msgid "Generate JA code"
+#~ msgstr "Gnrer du code JA"
+
+#~ msgid "Generate JD code"
+#~ msgstr "Gnrer du code JD"
+
+#~ msgid "Generate JF code"
+#~ msgstr "Gnrer du code JF"
+
+#~ msgid "generate RP code"
+#~ msgstr "Gnrer du code RP"
+
+#~ msgid "Generate MC code"
+#~ msgstr "Gnrer du code MC"
+
+#~ msgid "Generate CA code"
+#~ msgstr "Gnrer du code CA"
+
+#~ msgid "Generate CF code"
+#~ msgstr "Gnrer du code CF"
+
+#~ msgid "Use software floating point"
+#~ msgstr "Utiliser le traitement par logiciel des nombres flottants"
+
+#~ msgid "Use alternate leaf function entries"
+#~ msgstr "Utiliser les entres alternatives pour les fonctions de feuilles"
+
+#~ msgid "Do not use alternate leaf function entries"
+#~ msgstr "Ne pas utiliser les entres alternatives pour les fonctions de feuilles"
+
+#~ msgid "Perform tail call optimization"
+#~ msgstr "Effectuer une optimisation sur mesure des appels"
+
+#~ msgid "Do not perform tail call optimization"
+#~ msgstr "Ne pas effectuer une optimisation sur mesure des appels"
+
+#~ msgid "Use complex addressing modes"
+#~ msgstr "Utiliser les modes d'adressage complexes"
+
+#~ msgid "Do not use complex addressing modes"
+#~ msgstr "Ne pas utiliser les modes d'adressage complexes"
+
+#~ msgid "Align code to 8 byte boundary"
+#~ msgstr "Aligner le code sur des frontires de 8 octets"
+
+#~ msgid "Do not align code to 8 byte boundary"
+#~ msgstr "Ne pas aligner le code sur des frontires de 8 octets"
+
+#~ msgid "Enable compatibility with iC960 v2.0"
+#~ msgstr "Autoriser la compatibilit avec iC960 v2.0"
+
+#~ msgid "Enable compatibility with iC960 v3.0"
+#~ msgstr "Autoriser la compatibilit avec iC960 v3.0"
+
+#~ msgid "Enable compatibility with ic960 assembler"
+#~ msgstr "Autoriser la compatibilit avec l'assembleur iC960"
+
+#~ msgid "Do not permit unaligned accesses"
+#~ msgstr "Ne pas permettre les accs non aligns"
+
+#~ msgid "Permit unaligned accesses"
+#~ msgstr "Permettre les accs non aligns"
+
+#~ msgid "Layout types like Intel's v1.3 gcc"
+#~ msgstr "Utiliser une disposition de type Intel's v1.3 gcc"
+
+#~ msgid "Do not layout types like Intel's v1.3 gcc"
+#~ msgstr "Ne pas utiliser une disposition de type Intel's v1.3 gcc"
+
+#~ msgid "Use 64 bit long doubles"
+#~ msgstr "Utiliser les doubles longs de 64 bits"
+
+#~ msgid "Enable linker relaxation"
+#~ msgstr "Autoriser la relche par l'diteur de liens"
+
+#~ msgid "Do not enable linker relaxation"
+#~ msgstr "Ne pas autoriser la relche par l'diteur de liens"
+
+#~ msgid "malformed #pragma builtin"
+#~ msgstr "construit #pragma mal compos"
+
+#~ msgid "invalid argument of `%s' attribute"
+#~ msgstr "type d'argument invalide pour l'attribut %s "
+
+#~ msgid "%Jan address area attribute cannot be specified for local variables"
+#~ msgstr "%Jun attribut d'adresse de zone de donnes ne peut pas tre spcifi pour des variables locales"
+
+#~ msgid "%Jaddress area of '%s' conflicts with previous declaration"
+#~ msgstr "%Jl'adresse de la zone %s entre en conflit avec un dclaration prcdente"
+
+#~ msgid "%Jaddress area attribute cannot be specified for functions"
+#~ msgstr "%Jl'attribut de la zone d'adresse ne peut pas tre spcifi pour des fonctiones"
+
+#~ msgid "ia64_print_operand: unknown code"
+#~ msgstr "ia64_print_operand: code inconnu"
+
+#~ msgid "value of -mfixed-range must have form REG1-REG2"
+#~ msgstr "valeur de -mfixed-range doit avoir la forme REG1-REG2"
+
+#~ msgid "%s-%s is an empty range"
+#~ msgstr "%s-%s est une tendue vide"
+
+#~ msgid "cannot optimize floating point division for both latency and throughput"
+#~ msgstr "ne peut optimiser la division en point flottant la fois pour la latence et le dbit"
+
+#~ msgid "cannot optimize integer division for both latency and throughput"
+#~ msgstr "ne peut optimiser la division entire la fois pour la latence et le dbit"
+
+#~ msgid "cannot optimize square root for both latency and throughput"
+#~ msgstr "ne peut optimiser la racine carre la fois pour la latence et le dbit"
+
+#~ msgid "not yet implemented: latency-optimized inline square root"
+#~ msgstr "pas encore implant: racine carre enligne optimise pour la latence"
+
+#~ msgid "bad value (%s) for -mtls-size= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mtls-size"
+
+#~ msgid "bad value (%s) for -tune= switch"
+#~ msgstr "valeur errone (%s) pour l'option -tune="
+
+#~ msgid "Generate big endian code"
+#~ msgstr "Gnrer du code de systme octets de poids fort"
+
+#~ msgid "Generate little endian code"
+#~ msgstr "Gnrer du code de systme octets de poids faible"
+
+#~ msgid "Generate code for GNU as"
+#~ msgstr "Gnrer du code pour GNU tel que"
+
+#~ msgid "Generate code for Intel as"
+#~ msgstr "Gnrer du code pour Intel tel que"
+
+#~ msgid "Generate code for GNU ld"
+#~ msgstr "Gnrer du code pour GNU ld"
+
+#~ msgid "Generate code for Intel ld"
+#~ msgstr "Gnrer du code pour Intel ld"
+
+#~ msgid "Generate code without GP reg"
+#~ msgstr "Gnrer du code sans registre GP"
+
+#~ msgid "Emit stop bits before and after volatile extended asms"
+#~ msgstr "Produire de stop bits avant et aprs les asms tendus"
+
+#~ msgid "Don't emit stop bits before and after volatile extended asms"
+#~ msgstr "Ne pas produire de stop bits avant et aprs les asms tendus"
+
+#~ msgid "Emit code for Itanium (TM) processor B step"
+#~ msgstr "Produire du code pour le processeur B Itanium (TM)"
+
+#~ msgid "Use in/loc/out register names"
+#~ msgstr "Utilise les noms des registres in/loc/out "
+
+#~ msgid "Disable use of sdata/scommon/sbss"
+#~ msgstr "Interdire l'utilisation de sdata/scommon/sbss"
+
+#~ msgid "Enable use of sdata/scommon/sbss"
+#~ msgstr "Autoriser l'utilisation de sdata/scommon/sbss"
+
+#~ msgid "gp is constant (but save/restore gp on indirect calls)"
+#~ msgstr "gp est une constante (mais save/restore gp fait par appels indirects)"
+
+#~ msgid "Generate self-relocatable code"
+#~ msgstr "Gnrer du code auto-relocalisable"
+
+#~ msgid "Generate inline floating point division, optimize for latency"
+#~ msgstr "Gnrer la division enligne en point flottant, optimiser pour la latence"
+
+#~ msgid "Generate inline floating point division, optimize for throughput"
+#~ msgstr "Gnrer la division en point flottant enligne, optimiser pour le dbit"
+
+#~ msgid "Generate inline integer division, optimize for latency"
+#~ msgstr "Gnrer la division entire enligne, optimiser pour la latence"
+
+#~ msgid "Generate inline integer division, optimize for throughput"
+#~ msgstr "Gnrer la divisions entire enligne, optimiser pour le dbit"
+
+#~ msgid "Generate inline square root, optimize for latency"
+#~ msgstr "Gnrer la racine carre enligne, optimiser pour la latence"
+
+#~ msgid "Generate inline square root, optimize for throughput"
+#~ msgstr "Gnrer la racine carre enligne, optimiser pour le dbit"
+
+#~ msgid "Enable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Autoriser les infos de lignes de mise au point Dwarf 2 via GNU tel que"
+
+#~ msgid "Disable Dwarf 2 line debug info via GNU as"
+#~ msgstr "Interdire les infos de lignes de mise au point Dwarf 2 via GNU tel que"
+
+#~ msgid "Enable earlier placing stop bits for better scheduling"
+#~ msgstr "Autoriser l'insertion antrieure de stop bits pour un meilleur ordonnancement"
+
+#~ msgid "Disable earlier placing stop bits"
+#~ msgstr "Interdire l'installation antrieure de bits d'arrt"
+
+#~ msgid "Specify range of registers to make fixed"
+#~ msgstr "spcifier l'tendue des registres pour la rendre fixe"
+
+#~ msgid "bad operand"
+#~ msgstr "oprande errone"
+
+#~ msgid "bad value (%s) for -mcpu= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mcpu="
+
+#~ msgid "The compiler does not support -march=%s."
+#~ msgstr "Le compilateur ne supporte pas -march=%s."
+
+#~ msgid "gp_offset (%ld) or end_offset (%ld) is less than zero."
+#~ msgstr "gp_offset (%ld) ou end_offset (%ld) est plus petit que zro."
+
+#~ msgid "argument `%d' is not a constant"
+#~ msgstr "l'argument de %d n'est pas une constante"
+
+#~ msgid "PRINT_OPERAND_ADDRESS, null pointer"
+#~ msgstr "PRINT_OPERAND_ADDRESS, pointeur nul"
+
+#~ msgid "PRINT_OPERAND: Unknown punctuation '%c'"
+#~ msgstr "PRINT_OPERAND: ponctuation %c inconnue"
+
+#~ msgid "PRINT_OPERAND null pointer"
+#~ msgstr "PRINT_OPERAND pointeur nul"
+
+#~ msgid "invalid %%P operand"
+#~ msgstr "oprande %%P invalide"
+
+#~ msgid "invalid %%p value"
+#~ msgstr "valeur %%p invalide"
+
+#~ msgid "invalid use of %%d, %%x, or %%X"
+#~ msgstr "utilisation invalide de %%d, %%x, ou %%X"
+
+#~ msgid "No default crt0.o"
+#~ msgstr "Aucun dfaut pour crt0.o"
+
+#~ msgid "Use GP relative sdata/sbss sections"
+#~ msgstr "Utiliser GP en mode relatif aux sections sdata/sbss"
+
+#~ msgid "Don't use GP relative sdata/sbss sections"
+#~ msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss"
+
+#~ msgid "Use ROM instead of RAM"
+#~ msgstr "Utiliser le ROM au lieu de la RAM"
+
+#~ msgid "Don't use ROM instead of RAM"
+#~ msgstr "Ne pas utiliser le ROM au lieu de la RAM"
+
+#~ msgid "Put uninitialized constants in ROM (needs -membedded-data)"
+#~ msgstr "Placer les constantes non itialises dans le ROM (a besoin de -membedded-data)"
+
+#~ msgid "Don't put uninitialized constants in ROM"
+#~ msgstr "Ne pas placer les constantes non itialises dans le ROM (a besoin de -membedded-data)"
+
+#~ msgid "Specify CPU for scheduling purposes"
+#~ msgstr "Spcifier le processeur pour les besoins de l'ordonnancement"
+
+#~ msgid "Specify CPU for code generation purposes"
+#~ msgstr "Spcifier le processeur pour les besoins de la gnration de code"
+
+#~ msgid "bad value (%s) for -mmodel switch"
+#~ msgstr "valeur errone (%s) pour l'option -mmodel"
+
+#~ msgid "bad value (%s) for -msdata switch"
+#~ msgstr "valeur errone (%s) pour l'option -msdata"
+
+#~ msgid "bad value (%s) for -flush-trap=n (0=<n<=15)"
+#~ msgstr "valeur errone (%s) pour l'option -flush-trap=n (0=<n<=15)"
+
+#~ msgid "invalid operand to %%s code"
+#~ msgstr "oprande invalide pour le code %%s"
+
+#~ msgid "invalid operand to %%p code"
+#~ msgstr "oprande invalide pour le code %%p"
+
+#~ msgid "bad insn for 'A'"
+#~ msgstr "insn erron pour A "
+
+#~ msgid "invalid operand to %%T/%%B code"
+#~ msgstr "oprande invalide pour le code %%T/%%B"
+
+#~ msgid "invalid operand to %%N code"
+#~ msgstr "oprande invalide pour le code %%N"
+
+#~ msgid "pre-increment address is not a register"
+#~ msgstr "pr-incrment d'adresse n'est pas un registre"
+
+#~ msgid "pre-decrement address is not a register"
+#~ msgstr "pr-dcrment d'adresse n'est pas un registre"
+
+#~ msgid "post-increment address is not a register"
+#~ msgstr "post-incrment d'adresse n'est pas un registre"
+
+#~ msgid "bad address"
+#~ msgstr "adresse errone"
+
+#~ msgid "lo_sum not of register"
+#~ msgstr "lo_sum n'est pas un registre"
+
+#~ msgid "Display compile time statistics"
+#~ msgstr "Afficher les statistiques de temps de compilation"
+
+#~ msgid "Align all loops to 32 byte boundary"
+#~ msgstr "Aligner toutes les boucles sur des frontires de 32 octets"
+
+#~ msgid "Only issue one instruction per cycle"
+#~ msgstr "mettre seulement une instruction par cycle"
+
+#~ msgid "Prefer branches over conditional execution"
+#~ msgstr "Privilgier les branchements au lieu d'une excution conditionnelle"
+
+#~ msgid "Code size: small, medium or large"
+#~ msgstr "Taille du code: small, medium ou large"
+
+#~ msgid "Small data area: none, sdata, use"
+#~ msgstr "Petite zone de donnes: none, sdata, use"
+
+#~ msgid "Don't call any cache flush functions"
+#~ msgstr "Ne pas faire d'appel de fonction de vidange de la cache"
+
+#~ msgid "Specify cache flush function"
+#~ msgstr "Spcifier la fonction de vidange de la cache"
+
+#~ msgid "Don't call any cache flush trap"
+#~ msgstr "Ne pas faire d'appel de fonction de droutement de vidange de la cache"
+
+#~ msgid "Specify cache flush trap number"
+#~ msgstr "Spcifier la fonction de droutement de vidange de la cache"
+
+#~ msgid "-f%s ignored for 68HC11/68HC12 (not supported)"
+#~ msgstr "-f%s ignor pour 68HC11/68HC12 (non support)"
+
+#~ msgid "`trap' and `far' attributes are not compatible, ignoring `far'"
+#~ msgstr "attributs trap et far ne sont pas compatibles, far ignor "
+
+#~ msgid "`trap' attribute is already used"
+#~ msgstr "attribut trap est dj utilis"
+
+#~ msgid "move insn not handled"
+#~ msgstr "dplacement insn non trait"
+
+#~ msgid "invalid register in the move instruction"
+#~ msgstr "registre invalide dans l'instruction de dplacement"
+
+#~ msgid "invalid operand in the instruction"
+#~ msgstr "oprande invalide dans l'instruction"
+
+#~ msgid "invalid register in the instruction"
+#~ msgstr "registre invalide dans l'instruction"
+
+#~ msgid "operand 1 must be a hard register"
+#~ msgstr "l'oprande 1 doit tre un registre matriel"
+
+#~ msgid "invalid rotate insn"
+#~ msgstr "rotation invalide insn"
+
+#~ msgid "registers IX, IY and Z used in the same INSN"
+#~ msgstr "registres IX, IY et Z utiliss dans le mme INSN"
+
+#~ msgid "cannot do z-register replacement"
+#~ msgstr "ne peut effectuer le remplacement d'un registre z"
+
+#~ msgid "invalid Z register replacement for insn"
+#~ msgstr "remplacement invalide de registre Z pour insn"
+
+#~ msgid "Compile with 16-bit integer mode"
+#~ msgstr "Compiler en mode entier de 16 bits"
+
+#~ msgid "Compile with 32-bit integer mode"
+#~ msgstr "Compiler en mode entier de 32 bits"
+
+#~ msgid "Auto pre/post decrement increment allowed"
+#~ msgstr "Auto pr/post dcrementation incrmentation permise"
+
+#~ msgid "Auto pre/post decrement increment not allowed"
+#~ msgstr "Auto pr/post dcrementation incrmentation non permise"
+
+#~ msgid "Min/max instructions allowed"
+#~ msgstr "instructions min/max permises"
+
+#~ msgid "Min/max instructions not allowed"
+#~ msgstr "instructions min/max ne sont pas permises"
+
+#~ msgid "Use call and rtc for function calls and returns"
+#~ msgstr "Utiliser call et rtc pour les appels fonction et les retours"
+
+#~ msgid "Use jsr and rts for function calls and returns"
+#~ msgstr "Utiliser jsr et rtc pour les appels de fonction et les retours"
+
+#~ msgid "Do not use direct addressing mode for soft registers"
+#~ msgstr "Ne pas utiliser les modes directs d'adressage pour des registres logiciels"
+
+#~ msgid "Use direct addressing mode for soft registers"
+#~ msgstr "Ne pas utiliser les modes directs d'adressage pour les registres logiciels"
+
+#~ msgid "Compile for a 68HC11"
+#~ msgstr "Compiler pour un 68HC11"
+
+#~ msgid "Compile for a 68HC12"
+#~ msgstr "Compiler pour un 68HC12"
+
+#~ msgid "Compile for a 68HCS12"
+#~ msgstr "Compiler pour un 68HCS12"
+
+#~ msgid "Specify the register allocation order"
+#~ msgstr "Spcifier l'ordre d'allocation des registres"
+
+#~ msgid "Indicate the number of soft registers available"
+#~ msgstr "Indiquer le nombre de registres logiciels disponibles"
+
+#~ msgid "-malign-loops=%d is not between 1 and %d"
+#~ msgstr "-malign-loops=%d n'est pas entre 1 et %d"
+
+#~ msgid "-mshared-library-id= specified without -mid-shared-library"
+#~ msgstr "-mshared-library-id= spcifi sans -mid-shared-library"
+
+#~ msgid "-mshared-library-id=%d is not between 0 and %d"
+#~ msgstr "-mshared-library-id=%d n'est pas entre 0 et %d"
+
+#~ msgid "cannot specify both -msep-data and -mid-shared-library"
+#~ msgstr "ne peut spcifier la fois -msep-data et -mid-shared-library"
+
+#~ msgid "-malign-jumps=%d is not between 1 and %d"
+#~ msgstr "-malign-jumps=%d n'est pas entre 1 et %d"
+
+#~ msgid "-malign-functions=%d is not between 1 and %d"
+#~ msgstr "-malign-functions=%d n'est pas entre 1 et %d"
+
+#~ msgid "-fPIC is not currently supported on the 68000 or 68010\n"
+#~ msgstr "-fPIC n'est pas couramment support pour le 68000 ou 68010\n"
+
+#~ msgid "Generate code for a 68020"
+#~ msgstr "Gnrer le code pour un 68020"
+
+#~ msgid "Generate code for a 68000"
+#~ msgstr "Gnrer le code pour un 68000"
+
+#~ msgid "Use the bit-field instructions"
+#~ msgstr "Utiliser les instructions de champs de bits"
+
+#~ msgid "Do not use the bit-field instructions"
+#~ msgstr "Ne pas utiliser les instructions de champs de bits"
+
+#~ msgid "Consider type `int' to be 16 bits wide"
+#~ msgstr "Considrer le type int comme ayant une largeur de 16 bits"
+
+#~ msgid "Consider type `int' to be 32 bits wide"
+#~ msgstr "Considrer le type int comme ayant une largeur de 32 bits"
+
+#~ msgid "Generate code with library calls for floating point"
+#~ msgstr "Gnrer du code avec les appels de bibliothques pour la virgule flottante"
+
+#~ msgid "Generate code for a 68040, without any new instructions"
+#~ msgstr "Gnrer du code pour un 68040 sans les nouvelles instructions"
+
+#~ msgid "Generate code for a 68060, without any new instructions"
+#~ msgstr "Gnrer du code pour un 68060 sans les nouvelles instructions"
+
+#~ msgid "Generate code for a 68030"
+#~ msgstr "Gnrer du code pour un 68030"
+
+#~ msgid "Generate code for a 68040"
+#~ msgstr "Gnrer du code pour un 68040"
+
+#~ msgid "Generate code for a 68060"
+#~ msgstr "Gnrer du code pour un 68060"
+
+#~ msgid "Generate code for a 520X"
+#~ msgstr "Gnrer du code pour un 520X"
+
+#~ msgid "Generate code for a 5206e"
+#~ msgstr "Gnrer du code pour un 5206e"
+
+#~ msgid "Generate code for a 528x"
+#~ msgstr "Gnrer du code pour un 528x"
+
+#~ msgid "Generate code for a 5307"
+#~ msgstr "Gnrer du code pour un 5307"
+
+#~ msgid "Generate code for a 5407"
+#~ msgstr "Gnrer du code pour un 5407"
+
+#~ msgid "Generate code for a 68851"
+#~ msgstr "Gnrer le code pour un 68851"
+
+#~ msgid "Do no generate code for a 68851"
+#~ msgstr "Ne pas gnrer de code pour un 68851"
+
+#~ msgid "Generate code for a 68302"
+#~ msgstr "Gnrer du code pour un 68302"
+
+#~ msgid "Generate code for a 68332"
+#~ msgstr "Gnrer du code pour un 68332"
+
+#~ msgid "Generate code for a cpu32"
+#~ msgstr "Gnrer du code pour un cpu32"
+
+#~ msgid "Align variables on a 32-bit boundary"
+#~ msgstr "Aligner les variables sur des frontires de 32 bits"
+
+#~ msgid "Align variables on a 16-bit boundary"
+#~ msgstr "Aligner les variables sur des frontires de 16 bits"
+
+#~ msgid "Enable separate data segment"
+#~ msgstr "Autoriser des segments de donnes spars"
+
+#~ msgid "Disable separate data segment"
+#~ msgstr "Dsactiver les segments spars de donnes"
+
+#~ msgid "Enable ID based shared library"
+#~ msgstr "Autoriser les identificateurs de librairies partages de base"
+
+#~ msgid "Disable ID based shared library"
+#~ msgstr "Interdire les identificateurs de librairies partages de base"
+
+#~ msgid "Generate pc-relative code"
+#~ msgstr "Gnrer du code relatif au compteur de programme (PC)"
+
+#~ msgid "Do not use unaligned memory references"
+#~ msgstr "Ne pas utiliser des rfrences mmoire non alignes"
+
+#~ msgid "Use unaligned memory references"
+#~ msgstr "Utiliser des rfrences mmoire non alignes"
+
+#~ msgid "Use different calling convention using 'rtd'"
+#~ msgstr "Utiliser une convention diffrente d'appel en utilisant rtd "
+
+#~ msgid "ID of shared library to build"
+#~ msgstr "Identification de librairie partag construire"
+
+#~ msgid "invalid option `-mstack-increment=%s'"
+#~ msgstr "opton invalide -mstack-increment=%s "
+
+#~ msgid "Inline constants if it can be done in 2 insns or less"
+#~ msgstr "Constante enligne si elle peut tre dans 2 insn ou moins"
+
+#~ msgid "Inline constants if it only takes 1 instruction"
+#~ msgstr "Constante enligne si elle prend seulement 1 instruction"
+
+#~ msgid "Set maximum alignment to 4"
+#~ msgstr "Initialiser l'alignement maximal 4"
+
+#~ msgid "Set maximum alignment to 8"
+#~ msgstr "Initialiser l'alignement maximal 8"
+
+#~ msgid "Do not use the divide instruction"
+#~ msgstr "Ne pas utiliser l'instruction de division"
+
+#~ msgid "Do not arbitrary sized immediates in bit operations"
+#~ msgstr "Ne pas calculer la taille des immdiats dans les oprations sur les bits"
+
+#~ msgid "Always treat bit-field as int-sized"
+#~ msgstr "Toujours traiter les champs de bits comme si la taille entire"
+
+#~ msgid "Force functions to be aligned to a 4 byte boundary"
+#~ msgstr "Forcer les fonctions tre aligns sur des frontires de 4 octets"
+
+#~ msgid "Force functions to be aligned to a 2 byte boundary"
+#~ msgstr "Forcer les fonctions tre aligns sur des frontires de 2 octets"
+
+#~ msgid "Emit call graph information"
+#~ msgstr "Produire les informations du graphe d'appel"
+
+#~ msgid "Prefer word accesses over byte accesses"
+#~ msgstr "Prfrer l'accs des mots plutt qu'un accs des octets"
+
+#~ msgid "Generate code for the M*Core M340"
+#~ msgstr "Gnrer du code pour M*Core M340"
+
+#~ msgid "Maximum amount for a single stack increment operation"
+#~ msgstr "Montant maximal pour une opration d'incrmentation simple de la pile"
+
+#~ msgid "bad test"
+#~ msgstr "test erron"
+
+#~ msgid "bad value (%s) for -mabi= switch"
+#~ msgstr "valeur errone (%s) pour l'option -mabi"
+
+#~ msgid "-mips%s conflicts with the other architecture options, which specify a MIPS%d processor"
+#~ msgstr "-mips%s en conflit avec d'autres options d'architecture, lesquelles spcifie un processeur MIPS%d"
+
+#~ msgid "-march=%s is not compatible with the selected ABI"
+#~ msgstr "-march=%s n'est pas compatible avec l'ABI slectionn"
+
+#~ msgid "-mgp64 used with a 32-bit processor"
+#~ msgstr "-mgp64 utilis avec un processeur de 32 bits"
+
+#~ msgid "-mgp32 used with a 64-bit ABI"
+#~ msgstr "-mgp32 utilis avec un ABI de 64 bits"
+
+#~ msgid "-mgp64 used with a 32-bit ABI"
+#~ msgstr "-mgp64 utilis avec un ABI de 32 bits"
+
+#~ msgid "unsupported combination: %s"
+#~ msgstr "combinaison non supporte: %s"
+
+#~ msgid "-g is only supported using GNU as,"
+#~ msgstr "L'option -g est seulement supporte lorsque GNU est utilis tel,"
+
+#~ msgid "-g is only supported using GNU as with -mabi=32,"
+#~ msgstr "L'option -g est seulement supporte lorsque GNU est utilis avec -mabi=32,"
+
+#~ msgid "-g option disabled"
+#~ msgstr "option -g dsactive"
+
+#~ msgid "generation of Branch Likely instructions enabled, but not supported by architecture"
+#~ msgstr "activer la gnration d'instructions identiques des branchements mais non supports par l'architecture"
+
+#~ msgid "-G is incompatible with PIC code which is the default"
+#~ msgstr "-G est incompatible avec le code PIC par dfaut"
+
+#~ msgid "-membedded-pic and -mabicalls are incompatible"
+#~ msgstr "-membedded-pic et -mabicalls sont incompatibles"
+
+#~ msgid "-G and -membedded-pic are incompatible"
+#~ msgstr "-G et -membedded-pic sont incompatibles"
+
+#~ msgid "non-PIC n64 with explicit relocations"
+#~ msgstr "non PIC n64 avec une relocalisation explicite"
+
+#~ msgid "mips_debugger_offset called with non stack/frame/arg pointer"
+#~ msgstr "mips_debugger_offset appell avec un pointeur non stack/frame/arg"
+
+#~ msgid "internal error: %%) found without a %%( in assembler pattern"
+#~ msgstr "erreur interne: %%) trouv sans %%( dans le canevas d'assemblage"
+
+#~ msgid "internal error: %%] found without a %%[ in assembler pattern"
+#~ msgstr "erreur interne: %%] trouv sans %%[ dans le canevas d'assemblage"
+
+#~ msgid "internal error: %%> found without a %%< in assembler pattern"
+#~ msgstr "erreur interne: %%> trouv sans %%< dans le canevas d'assemblage"
+
+#~ msgid "internal error: %%} found without a %%{ in assembler pattern"
+#~ msgstr "erreur interne: %%} trouv sans %%{ dans le canevas d'assemblage"
+
+#~ msgid "PRINT_OPERAND: unknown punctuation '%c'"
+#~ msgstr "PRINT_OPERAND: ponctuation %c inconnue"
+
+#~ msgid "PRINT_OPERAND, invalid insn for %%C"
+#~ msgstr "PRINT_OPERAND insn invalide pour %%C"
+
+#~ msgid "PRINT_OPERAND, invalid insn for %%N"
+#~ msgstr "PRINT_OPERAND insn invalide pour %%N"
+
+#~ msgid "PRINT_OPERAND, invalid insn for %%F"
+#~ msgstr "PRINT_OPERAND insn invalide pour %%F"
+
+#~ msgid "PRINT_OPERAND, invalid insn for %%W"
+#~ msgstr "PRINT_OPERAND insn invalide pour %%W"
+
+#~ msgid "PRINT_OPERAND, invalid operand for relocation"
+#~ msgstr "PRINT_OPERAND, oprande invalide pour la relocalisation"
+
+#~ msgid "can not handle inconsistent calls to `%s'"
+#~ msgstr "ne peut traiter des appels inconsistents %s "
+
+#~ msgid "the cpu name must be lower case"
+#~ msgstr "le nom du cpu doit tre en minuscules"
+
+#~ msgid "bad value (%s) for %s"
+#~ msgstr "valeur (%s) errone pour %s"
+
+#~ msgid "can't rewind temp file: %m"
+#~ msgstr "ne peut rembobiner le fichier temporaire: %m"
+
+#~ msgid "can't write to output file: %m"
+#~ msgstr "ne peut crire dans le fichier de sortie: %m"
+
+#~ msgid "can't read from temp file: %m"
+#~ msgstr "ne peut lire du fichier temporaire: %m"
+
+#~ msgid "can't close temp file: %m"
+#~ msgstr "ne peut fermer le fichier temporaire: %m"
+
+#~ msgid "Same as -mabi=32, just trickier"
+#~ msgstr "Identique -mabi=32, juste plus complexe"
+
+#~ msgid "Use 64-bit int type"
+#~ msgstr "Utiliser le type int de 64 bits"
+
+#~ msgid "Use 64-bit long type"
+#~ msgstr "Utiliser le type long de 64 bits"
+
+#~ msgid "Use 32-bit long type"
+#~ msgstr "Utiliser le type long de 32 bits"
+
+#~ msgid "Optimize lui/addiu address loads"
+#~ msgstr "Optimiser les chargements d'adresses lui/addiu"
+
+#~ msgid "Don't optimize lui/addiu address loads"
+#~ msgstr "Ne pas optimiser les chargements d'adresses lui/addiu"
+
+#~ msgid "Use MIPS as"
+#~ msgstr "Utiliser MIPS tel que"
+
+#~ msgid "Use GNU as"
+#~ msgstr "Utiliser GNU tel que"
+
+#~ msgid "Use symbolic register names"
+#~ msgstr "Utiliser les noms de registres symboliques"
+
+#~ msgid "Don't use symbolic register names"
+#~ msgstr "Ne pas utiliser les noms de registres symboliques"
+
+#~ msgid "Use GP relative sdata/sbss sections (now ignored)"
+#~ msgstr "Utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignor)"
+
+#~ msgid "Don't use GP relative sdata/sbss sections (now ignored)"
+#~ msgstr "Ne pas utiliser GP en mode relatif aux sections sdata/sbss (maintenant ignor)"
+
+#~ msgid "Output compiler statistics (now ignored)"
+#~ msgstr "Afficher les statistiques de compilation (maintenant ignor)"
+
+#~ msgid "Don't output compiler statistics"
+#~ msgstr "Ne pas afficher les statistiques de compilation"
+
+#~ msgid "Don't optimize block moves"
+#~ msgstr "Ne pas optimiser les dplacements de blocs"
+
+#~ msgid "Optimize block moves"
+#~ msgstr "Optimiser les dplacements de blocs"
+
+#~ msgid "Use mips-tfile asm postpass"
+#~ msgstr "Utiliser la post-passe de type mips-tfile de l'assembleur"
+
+#~ msgid "Don't use mips-tfile asm postpass"
+#~ msgstr "Ne pas utiliser la post-passe de type mips-tfile de l'assembleur"
+
+#~ msgid "Use hardware floating point"
+#~ msgstr "Utiliser l'unit matrielle en virgule flottante"
+
+#~ msgid "Use 64-bit FP registers"
+#~ msgstr "Utiliser les registres FP de 64 bits"
+
+#~ msgid "Use 32-bit FP registers"
+#~ msgstr "Utiliser les registres FP de 32 bits"
+
+#~ msgid "Use 64-bit general registers"
+#~ msgstr "Utiliser les registres gnraux de 64 bits"
+
+#~ msgid "Use 32-bit general registers"
+#~ msgstr "Utiliser les registres gnraux de 32 bits"
+
+#~ msgid "Use Irix PIC"
+#~ msgstr "Utiliser le code PIC Irix"
+
+#~ msgid "Don't use Irix PIC"
+#~ msgstr "Ne pas utiliser le code PIC Irix"
+
+#~ msgid "Use indirect calls"
+#~ msgstr "Utiliser les appels indirects"
+
+#~ msgid "Don't use indirect calls"
+#~ msgstr "Ne pas utiliser les appels indirects"
+
+#~ msgid "Use embedded PIC"
+#~ msgstr "Utiliser le code PIC enchss"
+
+#~ msgid "Don't use embedded PIC"
+#~ msgstr "Ne pas utiliser le code PIC enchss"
+
+#~ msgid "Use big-endian byte order"
+#~ msgstr "Utiliser l'ordre des octets pour systme octets de poids fort"
+
+#~ msgid "Use little-endian byte order"
+#~ msgstr "Utiliser l'ordre des octets pour systme octets de poids faible"
+
+#~ msgid "Use single (32-bit) FP only"
+#~ msgstr "Utiliser un simple FP (32 bits) seulement"
+
+#~ msgid "Don't use single (32-bit) FP only"
+#~ msgstr "Ne pas utiliser un simple FP (32 bits) seulement"
+
+#~ msgid "Use multiply accumulate"
+#~ msgstr "Utiliser les multiplications par accumulations"
+
+#~ msgid "Don't use multiply accumulate"
+#~ msgstr "Ne pas utiliser les multiplications par accumulations"
+
+#~ msgid "Don't generate fused multiply/add instructions"
+#~ msgstr "Ne pas gnrer des instructions fusionns de multiplication/addition"
+
+#~ msgid "Generate fused multiply/add instructions"
+#~ msgstr "Gnrer des instructions fusionns de multiplication/addition"
+
+#~ msgid "Work around early 4300 hardware bug"
+#~ msgstr "Contourner le bug matriel des premiers 4300"
+
+#~ msgid "Don't work around early 4300 hardware bug"
+#~ msgstr "Ne pas contourner le bug matriel des premiers 4300"
+
+#~ msgid "Work around errata for early SB-1 revision 2 cores"
+#~ msgstr "Contourner l'erreur pour la rvision 2 du noyau des versions initiales SB-1"
+
+#~ msgid "Don't work around errata for early SB-1 revision 2 cores"
+#~ msgstr "Ne pas contourner l'erreur pour la rvision 2 du noyau des versions initiales SB-1"
+
+#~ msgid "Trap on integer divide by zero"
+#~ msgstr "Intercepter les divisions par zros sur des entiers"
+
+#~ msgid "Don't trap on integer divide by zero"
+#~ msgstr "Ne pas intercepter les divisions par zros sur des entiers"
+
+#~ msgid "Use Branch Likely instructions, overriding default for arch"
+#~ msgstr "Utiliser des instructions se comportant comme des branchements, crasant le dfaut de l'architecture"
+
+#~ msgid "Don't use Branch Likely instructions, overriding default for arch"
+#~ msgstr "Ne pas utiliser des instructions se comportant comme des branchements, crasant le dfaut de l'architecture"
+
+#~ msgid "Use NewABI-style %reloc() assembly operators"
+#~ msgstr "Utiliser NewABI-style %reloc() les oprateurs d'assemblage"
+
+#~ msgid "Use assembler macros instead of relocation operators"
+#~ msgstr "Utiliser les macros assembleurs au lieu des oprateurs de relocalisation"
+
+#~ msgid "Generate mips16 code"
+#~ msgstr "Gnrer du code mips16"
+
+#~ msgid "Generate normal-mode code"
+#~ msgstr "Gnrer du code en mode normal"
+
+#~ msgid "Lift restrictions on GOT size"
+#~ msgstr "Enlever les restrictions sur la taille GOT"
+
+#~ msgid "Do not lift restrictions on GOT size"
+#~ msgstr "Ne pas enlever les restrictions sur la taille GOT"
+
+#~ msgid "Specify an ABI"
+#~ msgstr "Spcifier une ABI"
+
+#~ msgid "Specify a Standard MIPS ISA"
+#~ msgstr "Spcifier le standard MIPS ISA"
+
+#~ msgid "mips16 function profiling"
+#~ msgstr "profilage de fonction mips16"
+
+#~ msgid "-f%s not supported: ignored"
+#~ msgstr "-f%s n'est pas support: ignor"
+
+#~ msgid "too large function value type, needs %d registers, have only %d registers for this"
+#~ msgstr "valeur de type de fonction trop grande, a besoin de %d registres mais seuls %d disponibles"
+
+#~ msgid "function_profiler support for MMIX"
+#~ msgstr "function_profiler support pour MMIX"
+
+#~ msgid "MMIX Internal: Last named vararg would not fit in a register"
+#~ msgstr "MMIX interne: dernier vararg nomm ne pourra tre insr dans un registre"
+
+#~ msgid "MMIX Internal: Expected a CONST_INT, not this"
+#~ msgstr "MMIX interne: attendait CONST_INT, pas ceci"
+
+#~ msgid "MMIX Internal: Bad register: %d"
+#~ msgstr "MMIX interne: registre erron: %d"
+
+#~ msgid "MMIX Internal: Bad value for 'm', not a CONST_INT"
+#~ msgstr "MMIX interne: valeur errone pour m , pas un CONST_INT"
+
+#~ msgid "MMIX Internal: Expected a register, not this"
+#~ msgstr "MMIX interne: attendait un registre, pas ceci"
+
+#~ msgid "MMIX Internal: Expected a constant, not this"
+#~ msgstr "MMIX interne: attendait une constante, pas ceci"
+
+#~ msgid "MMIX Internal: Missing `%c' case in mmix_print_operand"
+#~ msgstr "MMIX interne: cas %c manquant dans mmix_print_operand"
+
+#~ msgid "MMIX Internal: Cannot decode this operand"
+#~ msgstr "MMIX interne: ne peut dcoder cette oprande"
+
+#~ msgid "MMIX Internal: This is not a recognized address"
+#~ msgstr "MMIX interne: ce n'est pas une adresse reconnue"
+
+#~ msgid "stack frame not a multiple of 8 bytes: %d"
+#~ msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
+
+#~ msgid "stack frame not a multiple of octabyte: %d"
+#~ msgstr "trame de pile n'est pas un multiple de 8 octets: %d"
+
+#~ msgid "MMIX Internal: %s is not a shiftable int"
+#~ msgstr "MMIX interne: %s n'est pas un entier pouvant dcal"
+
+#~ msgid "MMIX Internal: Trying to output invalidly reversed condition:"
+#~ msgstr "MMIX interne: tentative de produire incorrectement une condition renverse:"
+
+#~ msgid "MMIX Internal: What's the CC of this?"
+#~ msgstr "MMIX interne: quel sorte de CC est-ce?"
+
+#~ msgid "MMIX Internal: What is the CC of this?"
+#~ msgstr "MMIX interne: quel sorte de CC est-ce?"
+
+#~ msgid "MMIX Internal: This is not a constant:"
+#~ msgstr "interne MMIX: ce n'est pas une constante:"
+
+#~ msgid "Set start-address of the program"
+#~ msgstr "Adress de dpart du programme fixe"
+
+#~ msgid "Set start-address of data"
+#~ msgstr "Adresse de dpart des donnes fixe"
+
+#~ msgid "For intrinsics library: pass all parameters in registers"
+#~ msgstr "Pour les bibliothques intrinsques : passer tous les paramtres par registre"
+
+#~ msgid "Use register stack for parameters and return value"
+#~ msgstr "Utiliser le registre de la pile pour les paramtres et la valeur retourne"
+
+#~ msgid "Use call-clobbered registers for parameters and return value"
+#~ msgstr "utiliser les registres d'appels maltraits pour les paramtres et les valeurs retournes"
+
+#~ msgid "Use epsilon-respecting floating point compare instructions"
+#~ msgstr "Utiliser un epsilon respectant les instructions de comparaison en virgule flottante"
+
+#~ msgid "Use zero-extending memory loads, not sign-extending ones"
+#~ msgstr "utiliser des chargements mmoire avec zro extension, pas celles avec signe d'extension"
+
+#~ msgid "Generate divide results with reminder having the same sign as the divisor (not the dividend)"
+#~ msgstr "gnrer des rsultats de division avec reste ayant le mme signe que le diviseur (pas le dividende)"
+
+#~ msgid "Prepend global symbols with \":\" (for use with PREFIX)"
+#~ msgstr "pr ajouter les symboles globaux avec : (pour l'utilisation avec PREFIX)"
+
+#~ msgid "Do not provide a default start-address 0x100 of the program"
+#~ msgstr "Ne pas fournir d'adresse de dpart par dfaut 0x100 du programme"
+
+#~ msgid "Link to emit program in ELF format (rather than mmo)"
+#~ msgstr "Faire l'dition de liens pour produire le programme en format ELF (au lieu de mmo)"
+
+#~ msgid "Use P-mnemonics for branches statically predicted as taken"
+#~ msgstr "Utiliser les mnmoniques P pour les branchements statiquement prvus tre pris"
+
+#~ msgid "Don't use P-mnemonics for branches"
+#~ msgstr "Ne pas utiliser les mnmoniques P pour les branchements"
+
+#~ msgid "Use addresses that allocate global registers"
+#~ msgstr "Utiliser les adresses qui allouent des registres globaux"
+
+#~ msgid "Do not use addresses that allocate global registers"
+#~ msgstr "Ne pas utiliser des adresses qui allouent des registres globaux"
+
+#~ msgid "Generate a single exit point for each function"
+#~ msgstr "Gnrer un point de sortie simple pour chaque fonction"
+
+#~ msgid "Do not generate a single exit point for each function"
+#~ msgstr "Ne pas gnrer un point de sortie simple pour chaque fonction"
+
+#~ msgid "Target the AM33 processor"
+#~ msgstr "Cible le processeur AM33"
+
+#~ msgid "Target the AM33/2.0 processor"
+#~ msgstr "Cibler le processeur AM33/2.0"
+
+#~ msgid "Enable linker relaxations"
+#~ msgstr "Autoriser la relche de l'diteur de liens"
+
+#~ msgid "Work around hardware multiply bug"
+#~ msgstr "Contourner le bug matriel de la multiplication"
+
+#~ msgid "Do not work around hardware multiply bug"
+#~ msgstr "Ne pas contourner le bug matriel de la multiplication"
+
+#~ msgid "Don't use hardware fp"
+#~ msgstr "Ne pas utiliser le FP matriel"
+
+#~ msgid "Alternative calling convention"
+#~ msgstr "Convention alternative d'appels"
+
+#~ msgid "Pass some arguments in registers"
+#~ msgstr "Passer quelques arguments par les registres"
+
+#~ msgid "Pass all arguments on stack"
+#~ msgstr "PAsser tous les arguments par la pile"
+
+#~ msgid "Optimize for 32532 cpu"
+#~ msgstr "Optimiser pour le processeur 32532"
+
+#~ msgid "Optimize for 32332 cpu"
+#~ msgstr "Optimiser pour le processeur 32332"
+
+#~ msgid "Optimize for 32032"
+#~ msgstr "Optimiser pour le 32022"
+
+#~ msgid "Register sb is zero. Use for absolute addressing"
+#~ msgstr "Registre sb est zro. Utilis pour l'adressage absolu"
+
+#~ msgid "Do not use register sb"
+#~ msgstr "Ne pas utiliser le registre sb"
+
+#~ msgid "Use bit-field instructions"
+#~ msgstr "Utiliser les instructions de champs de bits"
+
+#~ msgid "Do not use bit-field instructions"
+#~ msgstr "Ne pas utiliser les instructions de champs de bits"
+
+#~ msgid "Generate code for high memory"
+#~ msgstr "Gnrer du code pour la partie haute de la mmoire"
+
+#~ msgid "Generate code for low memory"
+#~ msgstr "Gnrer du code pour la partie basse de la mmoire"
+
+#~ msgid "32381 fpu"
+#~ msgstr "FPU 32381"
+
+#~ msgid "Use multiply-accumulate fp instructions"
+#~ msgstr "Utiliser les instructions FP de multiplications avec accumulations"
+
+#~ msgid "Do not use multiply-accumulate fp instructions"
+#~ msgstr "Ne pas utiliser les instructions FP de multiplications avec accumulations"
+
+#~ msgid "\"Small register classes\" kludge"
+#~ msgstr "\"Petites classes de registres\" kludge"
+
+#~ msgid "No \"Small register classes\" kludge"
+#~ msgstr "Pas de \"Petites classes de registres\" kludge"
+
+#~ msgid ""
+#~ "unknown -mschedule= option (%s).\n"
+#~ "Valid options are 700, 7100, 7100LC, 7200, 7300, and 8000\n"
+#~ msgstr ""
+#~ "Option inconnue -mschedule= (%s)\n"
+#~ "Les options valides sont 700, 7100, 7100LC, 7200, 7300 et 8000\n"
+
+#~ msgid ""
+#~ "unknown -march= option (%s).\n"
+#~ "Valid options are 1.0, 1.1, and 2.0\n"
+#~ msgstr ""
+#~ "Option inconnue -march= (%s)\n"
+#~ "Les options valides sont 1.0, 1.1 et 2.0\n"
+
+#~ msgid "PIC code generation is not supported in the portable runtime model\n"
+#~ msgstr "La gnration de code PIC n'est pas supporte dans le modle portable d'excution\n"
+
+#~ msgid "PIC code generation is not compatible with fast indirect calls\n"
+#~ msgstr "La gnration de code PIC n'est pas compatible avec les appels indirects rapides.\n"
+
+#~ msgid "-g is only supported when using GAS on this processor,"
+#~ msgstr "L'option -g est seulement supporte lorsque GAS est utilis sur ce processeur,"
+
+#~ msgid "Generate cpp defines for server IO"
+#~ msgstr "Gnrer les defines pour les IO d'un serveur"
+
+#~ msgid "Generate cpp defines for workstation IO"
+#~ msgstr "Gnrer les defines pour les IO d'une station de travail"
+
+#~ msgid "Generate PA1.1 code"
+#~ msgstr "Gnrer du code PA1.1"
+
+#~ msgid "Generate PA1.0 code"
+#~ msgstr "Gnrer du code PA1.0"
+
+#~ msgid "Generate PA2.0 code (requires binutils 2.10 or later)"
+#~ msgstr "Gnrer du code PA2.0 (ncessite binutils 2.10 ou suprieur)"
+
+#~ msgid "Disable FP regs"
+#~ msgstr "Dsactiver les registres FP"
+
+#~ msgid "Do not disable FP regs"
+#~ msgstr "Ne pas dsactiver les registres FP"
+
+#~ msgid "Disable space regs"
+#~ msgstr "Dsactiver l'espace registre"
+
+#~ msgid "Do not disable space regs"
+#~ msgstr "Ne pas dsactiver l'espace registre"
+
+#~ msgid "Put jumps in call delay slots"
+#~ msgstr "Mettre des sauts dant les fentes de dlais"
+
+#~ msgid "Do not put jumps in call delay slots"
+#~ msgstr "Ne pas mettre des sauts dant les fentes de dlais"
+
+#~ msgid "Disable indexed addressing"
+#~ msgstr "dsactiver l'adressage index"
+
+#~ msgid "Do not disable indexed addressing"
+#~ msgstr "Ne pas dsactiver l'adressage index"
+
+#~ msgid "Use portable calling conventions"
+#~ msgstr "Utiliser les conventions d'appels portables"
+
+#~ msgid "Do not use portable calling conventions"
+#~ msgstr "Ne pas utiliser les conventions d'appel portables"
+
+#~ msgid "Assume code will be assembled by GAS"
+#~ msgstr "Assumer que le code sera assembl par GAS"
+
+#~ msgid "Do not assume code will be assembled by GAS"
+#~ msgstr "Ne pas assumer que le code sera assembl par GAS"
+
+#~ msgid "Do not use software floating point"
+#~ msgstr "Ne pas utiliser le logiciel pour virgule flottante"
+
+#~ msgid "Emit long load/store sequences"
+#~ msgstr "Gnrer des instructions multiples pour chargement/stockage"
+
+#~ msgid "Do not emit long load/store sequences"
+#~ msgstr "Ne pas gnrer les instructions multiples de chargement/stockage"
+
+#~ msgid "Generate fast indirect calls"
+#~ msgstr "Ne pas utiliser les appels rapides indirects"
+
+#~ msgid "Do not generate fast indirect calls"
+#~ msgstr "Ne pas gnrer de directives rapides indirects"
+
+#~ msgid "Generate code for huge switch statements"
+#~ msgstr "Gnrer du code pour les grandes dclarations de branchements"
+
+#~ msgid "Do not generate code for huge switch statements"
+#~ msgstr "Ne pas gnrer du code pour les grandes dclarations de branchement"
+
+#~ msgid "Always generate long calls"
+#~ msgstr "Gnrer toujours des appels longs"
+
+#~ msgid "Generate long calls only when needed"
+#~ msgstr "Gnrer des appels longs lorsque ncessaire"
+
+#~ msgid "Enable linker optimizations"
+#~ msgstr "Activer les optimisations par l'diteur de liens"
+
+#~ msgid "Specify architecture for code generation. Values are 1.0, 1.1, and 2.0. 2.0 requires gas snapshot 19990413 or later."
+#~ msgstr "Spcifier l'architecture pour la gnration de code. Les valeurs sont 1.0, 1.1 et 2.0. 2.0 requiert gas snapshot 19990413 ou plus rcent."
+
+#~ msgid "Assume code will be linked by GNU ld"
+#~ msgstr "Assumer que le code sera li par GNU ld"
+
+#~ msgid "Assume code will be linked by HP ld"
+#~ msgstr "Assumer que le code sera li par HP ld"
+
+#~ msgid "Do not use hardware floating point"
+#~ msgstr "Ne pas utiliser le matriel pour virgule flottante"
+
+#~ msgid "Return floating point results in ac0"
+#~ msgstr "Le rsultat retourn en virgule flottante se retrouve dans AC0."
+
+#~ msgid "Return floating point results in memory"
+#~ msgstr "Le rsultat retourn en virgule flottante se retrouve en mmoire."
+
+#~ msgid "Generate code for an 11/40"
+#~ msgstr "Gnrer du code pour un 11/40"
+
+#~ msgid "Generate code for an 11/45"
+#~ msgstr "Gnrer du code pour un 11/45"
+
+#~ msgid "Generate code for an 11/10"
+#~ msgstr "Gnrer du code pour un 11/10"
+
+#~ msgid "Use 32 bit int"
+#~ msgstr "Utiliser des int de 32 bits"
+
+#~ msgid "Use 16 bit int"
+#~ msgstr "Utiliser des int de 16 bits"
+
+#~ msgid "Use 32 bit float"
+#~ msgstr "Utiliser des flottants de 32 bits"
+
+#~ msgid "Use 64 bit float"
+#~ msgstr "Utiliser des flottants de 64 bits"
+
+#~ msgid "Target has split I&D"
+#~ msgstr "Cible a un I&D spar"
+
+#~ msgid "Target does not have split I&D"
+#~ msgstr "Cible n'a pas un I&D spar"
+
+#~ msgid "Use UNIX assembler syntax"
+#~ msgstr "Utliser la syntaxe de l'assembleur UNIX"
+
+#~ msgid "Use DEC assembler syntax"
+#~ msgstr "Utliser la syntaxe de l'assembleur DEC"
+
+#~ msgid "Segmentation Fault (code)"
+#~ msgstr "Faute de segmentation (code)"
+
+#~ msgid "Out of stack space.\n"
+#~ msgstr "Manque d'espace sur la pile.\n"
+
+#~ msgid "Try running `%s' in the shell to raise its limit.\n"
+#~ msgstr "Essayer d'excuter %s dans le shell pour augmenter la limite.\n"
+
+#~ msgid "Segmentation Fault"
+#~ msgstr "Faute de segmentation"
+
+#~ msgid "While setting up signal stack: %m"
+#~ msgstr "Lors de la configuration de la pile de signaux: %m"
+
+#~ msgid "While setting up signal handler: %m"
+#~ msgstr "Lors de la configuration de la routine de traitement de signal: %m"
+
+#~ msgid "couldn't unmap pch_address_space: %m\n"
+#~ msgstr "ne peut dfaire la map pch_address_space: %m\n"
+
+#~ msgid "ignoring malformed #pragma longcall"
+#~ msgstr "#pragma longcall mal compos"
+
+#~ msgid "missing open paren"
+#~ msgstr "parenthse ouvrante manquante"
+
+#~ msgid "missing number"
+#~ msgstr "nombre manquant"
+
+#~ msgid "missing close paren"
+#~ msgstr "parenthse fermante manquante"
+
+#~ msgid "number must be 0 or 1"
+#~ msgstr "le nombre doit tre 0 ou 1"
+
+#~ msgid "junk at end of #pragma longcall"
+#~ msgstr "rebut la fin de #pragma longcall"
+
+#~ msgid "-mmultiple is not supported on little endian systems"
+#~ msgstr "-mmultiple n'est pas support sur des systme octets de poids faible"
+
+#~ msgid "-mstring is not supported on little endian systems"
+#~ msgstr "-mstring n'est pas support sur des systme octets de poids faible"
+
+#~ msgid "unknown -mdebug-%s switch"
+#~ msgstr "option -mdebug-%s inconnue"
+
+#~ msgid "unknown -mtraceback arg `%s'; expecting `full', `partial' or `none'"
+#~ msgstr "argument %s inconnu de l'option -mtraceback; attendu full , partial ou none "
+
+#~ msgid "Unknown switch -mlong-double-%s"
+#~ msgstr "option -mlong-double-%s inconnue"
+
+#~ msgid "unknown -m%s= option specified: '%s'"
+#~ msgstr "option -m%s= inconnue spcifie: %s "
+
+#~ msgid "not configured for ABI: '%s'"
+#~ msgstr "pas configur pour ABI: %s "
+
+#~ msgid "unknown ABI specified: '%s'"
+#~ msgstr "ABI spcifi inconnu: %s "
+
+#~ msgid "unknown -malign-XXXXX option specified: '%s'"
+#~ msgstr "option -malign-XXXXX inconnue spcifie: %s "
+
+#~ msgid "Cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them."
+#~ msgstr "Ne peut retourner la valeur dans le registre de vecteur parce que les instructions altivec sont dsactives, utiliser -maltivec pour les autoriser"
+
+#~ msgid "Cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them."
+#~ msgstr "Ne peut relayer l'argument dans le registre de vecteur parce que les instructions altivec sont dsactives, utiliser -maltivec pour les autoriser"
+
+#~ msgid "argument 1 must be a 5-bit signed literal"
+#~ msgstr "argument 1 doit tre un litral sign de 5 bits"
+
+#~ msgid "argument 2 must be a 5-bit unsigned literal"
+#~ msgstr "argument 2 doit tre un litral non sign de 5 bits"
+
+#~ msgid "argument 1 of __builtin_altivec_predicate must be a constant"
+#~ msgstr "argument 1 de __builtin_altivec_predicate doit tre une constante"
+
+#~ msgid "argument 1 of __builtin_altivec_predicate is out of range"
+#~ msgstr "argument 1 de __builtin_altivec_predicate est hors limite"
+
+#~ msgid "argument 3 must be a 4-bit unsigned literal"
+#~ msgstr "argument 3 doit tre un litral non sign de 4 bits"
+
+#~ msgid "argument to `%s' must be a 2-bit unsigned literal"
+#~ msgstr "argument de %s doit tre un litral non sign de 2 bits"
+
+#~ msgid "argument to dss must be a 2-bit unsigned literal"
+#~ msgstr "argument de dss doit tre un litral non sign de 2 bits"
+
+#~ msgid "argument 1 of __builtin_spe_predicate must be a constant"
+#~ msgstr "argument 1 de __builtin_spe_predicate doit tre une constante"
+
+#~ msgid "argument 1 of __builtin_spe_predicate is out of range"
+#~ msgstr "argument 1 de __builtin_spe_predicate est hors limite"
+
+#~ msgid "your function will be miscompiled"
+#~ msgstr "votre fonction sera mal compile"
+
+#~ msgid "invalid %%f value"
+#~ msgstr "valeur %%f invalide"
+
+#~ msgid "invalid %%F value"
+#~ msgstr "valeur %%F invalide"
+
+#~ msgid "invalid %%G value"
+#~ msgstr "valeur %%G invalide"
+
+#~ msgid "invalid %%j code"
+#~ msgstr "valeur %%j invalide"
+
+#~ msgid "invalid %%J code"
+#~ msgstr "valeur %%J invalide"
+
+#~ msgid "invalid %%k value"
+#~ msgstr "valeur %%k invalide"
+
+#~ msgid "invalid %%K value"
+#~ msgstr "valeur %%K invalide"
+
+#~ msgid "invalid %%O value"
+#~ msgstr "valeur %%O invalide"
+
+#~ msgid "invalid %%q value"
+#~ msgstr "valeur %%q invalide"
+
+#~ msgid "invalid %%S value"
+#~ msgstr "valeur %%S invalide"
+
+#~ msgid "invalid %%T value"
+#~ msgstr "valeur %%T invalide"
+
+#~ msgid "invalid %%u value"
+#~ msgstr "valeur %%u invalide"
+
+#~ msgid "invalid %%v value"
+#~ msgstr "valeur %%v invalide"
+
+#~ msgid "no profiling of 64-bit code for this ABI"
+#~ msgstr "pas de profilage du code de 64 bits pour cet ABI"
+
+#~ msgid "Always pass floating-point arguments in memory"
+#~ msgstr "Toujours passer des arguments en virgule flottante en mmoire"
+
+#~ msgid "Don't always pass floating-point arguments in memory"
+#~ msgstr "Na pas toujours passer des arguments en virgule flottante en mmoire"
+
+#~ msgid "Support message passing with the Parallel Environment"
+#~ msgstr "Supporter le passage de messages dans un environnement parallle"
+
+#~ msgid "Compile for 64-bit pointers"
+#~ msgstr "Compiler pour des pointeurs de 64 bits"
+
+#~ msgid "Compile for 32-bit pointers"
+#~ msgstr "Compiler pour des pointeurs de 32 bits"
+
+#~ msgid "-maix64 and POWER architecture are incompatible"
+#~ msgstr "-maix64 et architecture POWER sont incompatibles"
+
+#~ msgid "-maix64 requires PowerPC64 architecture remain enabled"
+#~ msgstr "-maix64 requiert une architecture PowerPC64 qui demeure slectionne"
+
+#~ msgid "-maix64 required: 64-bit computation with 32-bit addressing not yet supported"
+#~ msgstr "-maix64 requis: calcul en 64 bits avec un adressage de 32 bits n'est pas encore support"
+
+#~ msgid "Generate code suitable for executables (NOT shared libs)"
+#~ msgstr "Gnrer du code adapt pour les excutables (PAS les librairies partages)"
+
+#~ msgid "-mdynamic-no-pic overrides -fpic or -fPIC"
+#~ msgstr "-mdynamic-no-pic crase -fpic ou -fPIC"
+
+#~ msgid "-fpic is not supported; -fPIC assumed"
+#~ msgstr "-fpic n'est pas support; -fPIC assum"
+
+#~ msgid "-m64 requires a PowerPC64 cpu"
+#~ msgstr "-m64 requiert un processeur PowerPC64"
+
+#~ msgid "Call mcount for profiling before a function prologue"
+#~ msgstr "Appeller mcount pour le profilage avant le prologue de la fonction"
+
+#~ msgid "Call mcount for profiling after a function prologue"
+#~ msgstr "Ne pas appeller mcount pour le profilage avant le prologue de la fonction"
+
+#~ msgid "Use POWER instruction set"
+#~ msgstr "Utiliser le jeu d'instructions du POWER"
+
+#~ msgid "Use POWER2 instruction set"
+#~ msgstr "Utiliser le jeu d'instructions du POWER2"
+
+#~ msgid "Do not use POWER2 instruction set"
+#~ msgstr "Ne pas utiliser le jeu d'instructions du POWER2"
+
+#~ msgid "Do not use POWER instruction set"
+#~ msgstr "Ne pas utiliser le jeu d'instructions du POWER"
+
+#~ msgid "Use PowerPC instruction set"
+#~ msgstr "Utiliser le jeu d'instructions du PowerPC"
+
+#~ msgid "Do not use PowerPC instruction set"
+#~ msgstr "Ne pas utiliser le jeu d'instructions du PowerPC"
+
+#~ msgid "Use PowerPC General Purpose group optional instructions"
+#~ msgstr "Utiliser le groupe d'instructions optionnelles d'utilit gnral du PowerPC"
+
+#~ msgid "Do not use PowerPC General Purpose group optional instructions"
+#~ msgstr "Ne pas utiliser le groupe d'instructions optionnelles d'usage gnral du PowerPC"
+
+#~ msgid "Use PowerPC Graphics group optional instructions"
+#~ msgstr "Utiliser le groupe d'instructions graphiques optionnelles du PowerPC"
+
+#~ msgid "Do not use PowerPC Graphics group optional instructions"
+#~ msgstr "Ne pas utiliser le groupe d'instructions optionnelles graphiques du PowerPC"
+
+#~ msgid "Use PowerPC-64 instruction set"
+#~ msgstr "Utiliser le jeu d'instructions du PowerPC-64"
+
+#~ msgid "Do not use PowerPC-64 instruction set"
+#~ msgstr "Ne pas utiliser le jeu d'instructions du PowerPC-64"
+
+#~ msgid "Use AltiVec instructions"
+#~ msgstr "Utiliser les instructions AltiVec"
+
+#~ msgid "Do not use AltiVec instructions"
+#~ msgstr "Ne pas utiliser les instructions AltiVec"
+
+#~ msgid "Use new mnemonics for PowerPC architecture"
+#~ msgstr "Utiliser les nouvelles mnmoniques pour l'architecture du PowerPC"
+
+#~ msgid "Use old mnemonics for PowerPC architecture"
+#~ msgstr "Utiliser les anciennes mnmoniques pour l'architecture du PowerPC"
+
+#~ msgid "Put everything in the regular TOC"
+#~ msgstr "Place tout dans le TOC rgulier"
+
+#~ msgid "Place floating point constants in TOC"
+#~ msgstr "Placer les constantes en virgule flottante dans le TOC"
+
+#~ msgid "Do not place floating point constants in TOC"
+#~ msgstr "Ne pas placer les constantes en virgule flottante dans le TOC"
+
+#~ msgid "Place symbol+offset constants in TOC"
+#~ msgstr "Placer les constantes symboles+dcalages dans le TOC"
+
+#~ msgid "Do not place symbol+offset constants in TOC"
+#~ msgstr "Ne pas placer les constantes symboles+dcalages dans le TOC"
+
+#~ msgid "Place variable addresses in the regular TOC"
+#~ msgstr "Placer les adresses variables dans un TOC rgulier"
+
+#~ msgid "Generate load/store multiple instructions"
+#~ msgstr "Gnrer les instructions multiples de chargement/stockage"
+
+#~ msgid "Do not generate load/store multiple instructions"
+#~ msgstr "Ne pas gnrer les instructions multiples de chargement/stockage"
+
+#~ msgid "Generate string instructions for block moves"
+#~ msgstr "Gnrer les instructions chanes pour les dplacements de blocs"
+
+#~ msgid "Do not generate string instructions for block moves"
+#~ msgstr "Ne pas gnrer les instructions chanes pour les dplacements de blocs"
+
+#~ msgid "Generate load/store with update instructions"
+#~ msgstr "Gnrer les instructions de mise jour de chargement/stockage"
+
+#~ msgid "Do not generate load/store with update instructions"
+#~ msgstr "Ne pas gnrer les instructions de mise jour de chargement/stockage"
+
+#~ msgid "Do not generate fused multiply/add instructions"
+#~ msgstr "Ne pas gnrer des instructions fusionns de multiplication/addition"
+
+#~ msgid "Do not schedule the start and end of the procedure"
+#~ msgstr "Ne pas ordonnancer le dbut et la fin de la procdure"
+
+#~ msgid "Return all structures in memory (AIX default)"
+#~ msgstr "Retourner toutes les structures en mmoire (par dfaut sur AIX)"
+
+#~ msgid "Return small structures in registers (SVR4 default)"
+#~ msgstr "Retourner les petites structures par les registres (par dfaut sur SVR4)"
+
+#~ msgid "Generate single field mfcr instruction"
+#~ msgstr "Gnrer des instructions champ simple mfcr"
+
+#~ msgid "Do not generate single field mfcr instruction"
+#~ msgstr "Ne pas gnrer des instructions champ simple mfcr"
+
+#~ msgid "Use features of and schedule code for given CPU"
+#~ msgstr "Utiliser les options et ordonnancer le code pour le processeur donn"
+
+#~ msgid "Enable debug output"
+#~ msgstr "Autoriser la sortie lors de la mise au point"
+
+#~ msgid "Select full, part, or no traceback table"
+#~ msgstr "Slectionner full , part ou none "
+
+#~ msgid "Specify ABI to use"
+#~ msgstr "Spcifier l'ABI utiliser"
+
+#~ msgid "Specify size of long double (64 or 128 bits)"
+#~ msgstr "Spcifier la taille des long double (64 ou 128 bits)"
+
+#~ msgid "Specify yes/no if isel instructions should be generated"
+#~ msgstr "Spcifier yes (pour oui)/ no (pour non) si les instruction isel doivent tre gnrs"
+
+#~ msgid "Specify yes/no if SPE SIMD instructions should be generated"
+#~ msgstr "Spcifier yes (pour oui) /no (pour non) si les instructions SPE SIMD doivent tre gnres"
+
+#~ msgid "Specify yes/no if using floating point in the GPRs"
+#~ msgstr "Spcifier yes (pour oui) /no (pour non) si les nombres en virgule flottante sont utiliss dans le GPR"
+
+#~ msgid "Specify yes/no if VRSAVE instructions should be generated for AltiVec"
+#~ msgstr "Spcifier yes (pour oui)/ no (pour non) si les instruction VRSAVE doivent tre gnrs pour ALtiVec"
+
+#~ msgid "Avoid all range limits on call instructions"
+#~ msgstr "viter toutes les limites sur les instructions d'appel"
+
+#~ msgid "Determine which dependences between insns are considered costly"
+#~ msgstr "Dterminer laquelle des dpendances entre les insns qui sont considres coteuses"
+
+#~ msgid "Specify which post scheduling nop insertion scheme to apply"
+#~ msgstr "Spcifier lequel schme de post ordonnancement d'insertion de NOP doit tre appliqu"
+
+#~ msgid "Specify alignment of structure fields default/natural"
+#~ msgstr "Spcifier l'alignement des champs de structure par dfaut/naturel"
+
+#~ msgid "Specify scheduling priority for dispatch slot restricted insns"
+#~ msgstr "Spcifier la priorit d'ordonnancement pour la rpartition de fentes insns restreintes"
+
+#~ msgid "RETURN_ADDRESS_OFFSET not supported"
+#~ msgstr "RETURN_ADDRESS_OFFSET n'est pas support"
+
+#~ msgid "Select ABI calling convention"
+#~ msgstr "Slectionner la convention d'appel ABI"
+
+#~ msgid "Select method for sdata handling"
+#~ msgstr "Slectionner la mthode de traitement sdata"
+
+#~ msgid "Align to the base type of the bit-field"
+#~ msgstr "Aligner la base du type du champ de bits"
+
+#~ msgid "Don't align to the base type of the bit-field"
+#~ msgstr "Ne pas aligner la base du type du champ de bits"
+
+#~ msgid "Don't assume that unaligned accesses are handled by the system"
+#~ msgstr "Ne pas prsumer que les accs non alignes sont traits par le systme"
+
+#~ msgid "Assume that unaligned accesses are handled by the system"
+#~ msgstr "Prsumer que les accs non alignes sont traits par le systme"
+
+#~ msgid "Produce code relocatable at runtime"
+#~ msgstr "Produire du code relocalisable au moment de l'excution"
+
+#~ msgid "Don't produce code relocatable at runtime"
+#~ msgstr "Ne pas produire du code relocalisable au moment de l'excution"
+
+#~ msgid "Produce little endian code"
+#~ msgstr "Produire du code pour systme octets de poids faible (little endian)"
+
+#~ msgid "Produce big endian code"
+#~ msgstr "Produire du code pour systme octets de poids fort (big endian)"
+
+#~ msgid "no description yet"
+#~ msgstr "aucune description encore"
+
+#~ msgid "Use EABI"
+#~ msgstr "Utiliser EABI"
+
+#~ msgid "Don't use EABI"
+#~ msgstr "Ne pas utiliser EABI"
+
+#~ msgid "Do not allow bit-fields to cross word boundaries"
+#~ msgstr "Ne pas permettre les champs de bits de traverser des frontires de mots"
+
+#~ msgid "Use alternate register names"
+#~ msgstr "Utiliser les noms alternatifs de registres"
+
+#~ msgid "Don't use alternate register names"
+#~ msgstr "Ne pas utiliser les noms alternatifs de registres"
+
+#~ msgid "Link with libsim.a, libc.a and sim-crt0.o"
+#~ msgstr "Faire l'dition de liens avec libsim.a, libc.a et sim-crt0.o"
+
+#~ msgid "Link with libads.a, libc.a and crt0.o"
+#~ msgstr "Faire l'dition de liens avec libads.a, libc.a and crt0.o"
+
+#~ msgid "Link with libyk.a, libc.a and crt0.o"
+#~ msgstr "Faire l'dition de liens avec libyk.a, libc.a and crt0.o"
+
+#~ msgid "Link with libmvme.a, libc.a and crt0.o"
+#~ msgstr "Faire l'dition de liens avec libmvme.a, libc.a and crt0.o"
+
+#~ msgid "Set the PPC_EMB bit in the ELF flags header"
+#~ msgstr "Initialiser le bit PPC_EMB bit dans l'en-tte des fanions ELF"
+
+#~ msgid "Use the WindISS simulator"
+#~ msgstr "Utiliser le simulateur WindISS"
+
+#~ msgid "Generate 64-bit code"
+#~ msgstr "Gnrer du code 64 bits"
+
+#~ msgid "Generate 32-bit code"
+#~ msgstr "Gnrer du code 32 bits"
+
+#~ msgid "bad value for -mcall-%s"
+#~ msgstr "valeur errone pour -mcall-%s"
+
+#~ msgid "bad value for -msdata=%s"
+#~ msgstr "valeur errone pour -msdata=%s"
+
+#~ msgid "-mrelocatable and -msdata=%s are incompatible"
+#~ msgstr "-mrelocatable et -msdata=%s sont incompatibles"
+
+#~ msgid "-f%s and -msdata=%s are incompatible"
+#~ msgstr "-f%s et -msdata=%s sont incompatibles"
+
+#~ msgid "-msdata=%s and -mcall-%s are incompatible"
+#~ msgstr "-msdata=%s et -mcall-%s sont incompatibles"
+
+#~ msgid "-mrelocatable and -mno-minimal-toc are incompatible"
+#~ msgstr "-mrelocatable et -mno-minimal-toc sont incompatibles"
+
+#~ msgid "-mrelocatable and -mcall-%s are incompatible"
+#~ msgstr "-mrelocatable et -mcall-%s sont incompatibles"
+
+#~ msgid "-fPIC and -mcall-%s are incompatible"
+#~ msgstr "-fPIC et -mcall-%s sont incompatibles"
+
+#~ msgid "-mcall-aixdesc must be big endian"
+#~ msgstr "-mcall-aixdesc doit tre pour un systme octets de poids fort"
+
+#~ msgid "-m%s not supported in this configuration"
+#~ msgstr "-m%s n'est pas support par cette configuration"
+
+#~ msgid "Unknown cpu used in -march=%s."
+#~ msgstr "Processeur inconnu utilis dans -march=%s"
+
+#~ msgid "Unknown cpu used in -mtune=%s."
+#~ msgstr "Processeur inconnu dans -mtune=%s"
+
+#~ msgid "z/Architecture mode not supported on %s."
+#~ msgstr "z/mode d'architecture n'est pas support sur %s"
+
+#~ msgid "64-bit ABI not supported in ESA/390 mode."
+#~ msgstr "ABI 64 bits n'est pas support en mode ESA/390"
+
+#~ msgid "invalid UNSPEC as operand (1)"
+#~ msgstr "UNSPEC invalide comme oprande (1)"
+
+#~ msgid "invalid UNSPEC as operand (2)"
+#~ msgstr "UNSPEC invalide comme oprande (2)"
+
+#~ msgid "UNKNOWN in s390_output_symbolic_const !?"
+#~ msgstr "INCONNU dans s390_output_symbolic_const !?"
+
+#~ msgid "Cannot decompose address."
+#~ msgstr "Ne pas dcomposer l'adresse"
+
+#~ msgid "UNKNOWN in print_operand !?"
+#~ msgstr "INCONNNU dans print_operand !?"
+
+#~ msgid "Total size of local variables exceeds architecture limit."
+#~ msgstr "Taille totale des variables locales excde la limite de l'architecture"
+
+#~ msgid "Set backchain"
+#~ msgstr "Fixer la chane arrire"
+
+#~ msgid "Don't set backchain (faster, but debug harder"
+#~ msgstr "Ne pas fixer la chane arrire (plus rapide mais plus difficle mettre au point)"
+
+#~ msgid "Use bras for executable < 64k"
+#~ msgstr "Utiliser bras pour les excutables < 64k"
+
+#~ msgid "Don't use bras"
+#~ msgstr "Ne pas utiliser bras"
+
+#~ msgid "Additional debug prints"
+#~ msgstr "Imprimer des informations additionnelles en mode dbug"
+
+#~ msgid "Don't print additional debug prints"
+#~ msgstr "Ne pas imprimer des informations additionnelles en mode dbug"
+
+#~ msgid "64 bit ABI"
+#~ msgstr "ABI de 64 bits"
+
+#~ msgid "31 bit ABI"
+#~ msgstr "ABI de 64 bits"
+
+#~ msgid "z/Architecture"
+#~ msgstr "z/Architecture"
+
+#~ msgid "ESA/390 architecture"
+#~ msgstr "architecture ESA/390"
+
+#~ msgid "mvcle use"
+#~ msgstr "mvcle utilis"
+
+#~ msgid "mvc&ex"
+#~ msgstr "mvc&ex"
+
+#~ msgid "enable tpf OS code"
+#~ msgstr "autoriser le code OS tpf"
+
+#~ msgid "disable tpf OS code"
+#~ msgstr "interdire le code OS tpf"
+
+#~ msgid "disable fused multiply/add instructions"
+#~ msgstr "interdire les instructions fusionns de multiplication/addition"
+
+#~ msgid "enable fused multiply/add instructions"
+#~ msgstr "autoriser les instructions fusionns de multiplication/addition"
+
+#~ msgid "__builtin_saveregs not supported by this subtarget"
+#~ msgstr "__builtin_saveregs n'est pas support par la sous-cible"
+
+#~ msgid "attribute interrupt_handler is not compatible with -m5-compact"
+#~ msgstr "attribut interrupt_handler n'est pas compatible avec -m5-compact"
+
+#~ msgid "`%s' attribute only applies to interrupt functions"
+#~ msgstr "attribut %s s'applique seulement des fonctions d'interruption"
+
+#~ msgid "`%s' attribute argument not a string constant"
+#~ msgstr "l'attribut %s de l'argument n'est pas une contante chane"
+
+#~ msgid "`%s' attribute argument not an integer constant"
+#~ msgstr "l'attribut %s de l'argument n'est pas une contante entire"
+
+#~ msgid "Profiling is not supported on this target."
+#~ msgstr "le profilage n'est pas support sur cette cible"
+
+#~ msgid "%s is not supported by this configuration"
+#~ msgstr "%s n'est pas support par cette configuration"
+
+#~ msgid "-mlong-double-64 not allowed with -m64"
+#~ msgstr "-mlong-double-64 n'est pas permis avec -m64"
+
+#~ msgid "-mcmodel= is not supported on 32 bit systems"
+#~ msgstr "-mcmodel= n'est pas support sur les systmes de 32 bits"
+
+#~ msgid "invalid %%Y operand"
+#~ msgstr "oprande %%Y invalide"
+
+#~ msgid "invalid %%A operand"
+#~ msgstr "oprande %%A invalide"
+
+#~ msgid "invalid %%B operand"
+#~ msgstr "Oprande %%B invalide"
+
+#~ msgid "invalid %%c operand"
+#~ msgstr "oprande %%c invalide"
+
+#~ msgid "invalid %%C operand"
+#~ msgstr "oprande %%C invalide"
+
+#~ msgid "invalid %%d operand"
+#~ msgstr "oprande %%d invalide"
+
+#~ msgid "invalid %%D operand"
+#~ msgstr "oprande %%D invalide"
+
+#~ msgid "invalid %%f operand"
+#~ msgstr "oprande %%f invalide"
+
+#~ msgid "invalid %%s operand"
+#~ msgstr "oprande %%s invalide"
+
+#~ msgid "long long constant not a valid immediate operand"
+#~ msgstr "constante long long n'est pas une oprande immdiate valide"
+
+#~ msgid "floating point constant not a valid immediate operand"
+#~ msgstr "constante en virgule flottante n'est pas une oprande immdiate valide"
+
+#~ msgid "Use 128 bit long doubles"
+#~ msgstr "Utiliser des longs doubles de 128 bits"
+
+#~ msgid "Generate code for big endian"
+#~ msgstr "Gnrer du code pour un systme octets de poids fort"
+
+#~ msgid "Generate code for little endian"
+#~ msgstr "Gnrer du code pour un systme octets de poids faible"
+
+#~ msgid "Use little-endian byte order for data"
+#~ msgstr "Utiliser l'ordre des octets de poids faible pour les donnes"
+
+#~ msgid "Assume possible double misalignment"
+#~ msgstr "Prsumer un possible mauvais alignement des doubles"
+
+#~ msgid "Assume all doubles are aligned"
+#~ msgstr "Prsumer que tous les doubles sont aligns"
+
+#~ msgid "Pass -assert pure-text to linker"
+#~ msgstr "Passer -assert pure-text l'diteur de liens"
+
+#~ msgid "Do not pass -assert pure-text to linker"
+#~ msgstr "Ne pas passer -assert pure-text l'diteur de liens"
+
+#~ msgid "Use flat register window model"
+#~ msgstr "Utiliser le modle de fentre de registre plat"
+
+#~ msgid "Do not use flat register window model"
+#~ msgstr "Ne pas utiliser le modle de fentre de registre plat"
+
+#~ msgid "Use ABI reserved registers"
+#~ msgstr "Utiliser les registres rservs ABI"
+
+#~ msgid "Do not use ABI reserved registers"
+#~ msgstr "Ne pas utiliser les registres rservs ABI"
+
+#~ msgid "Use hardware quad fp instructions"
+#~ msgstr "Utiliser les instructions matrielles quad FP"
+
+#~ msgid "Do not use hardware quad fp instructions"
+#~ msgstr "Ne pas utiliser les instructions matrielles quad FP"
+
+#~ msgid "Compile for v8plus ABI"
+#~ msgstr "Compiler pour ABI v8plus"
+
+#~ msgid "Do not compile for v8plus ABI"
+#~ msgstr "Ne pas compiler pour ABI v8plus"
+
+#~ msgid "Utilize Visual Instruction Set"
+#~ msgstr "Utiliser le jeu d'instructions Visual"
+
+#~ msgid "Do not utilize Visual Instruction Set"
+#~ msgstr "Ne pas utiliser le jeu d'instructions Visual"
+
+#~ msgid "Optimize for Cypress processors"
+#~ msgstr "Optimiser pour les processeurs Cypress"
+
+#~ msgid "Optimize for SPARCLite processors"
+#~ msgstr "Optimiser pour les processeurs SPARCLite"
+
+#~ msgid "Optimize for F930 processors"
+#~ msgstr "Optimiser pour les processeurs F930"
+
+#~ msgid "Optimize for F934 processors"
+#~ msgstr "Optimiser pour les processeurs F934"
+
+#~ msgid "Use V8 SPARC ISA"
+#~ msgstr "Utiliser le V8 SPARC ISA"
+
+#~ msgid "Optimize for SuperSPARC processors"
+#~ msgstr "Optimiser pour les processeurs SuperSPARC"
+
+#~ msgid "Pointers are 64-bit"
+#~ msgstr "Pointeurs sont de 64 bits"
+
+#~ msgid "Pointers are 32-bit"
+#~ msgstr "Pointeurs sont de 32 bits"
+
+#~ msgid "Use 32-bit ABI"
+#~ msgstr "Utiliser ABI de 32 bits"
+
+#~ msgid "Use 64-bit ABI"
+#~ msgstr "Utiliser ABI de 64 bits"
+
+#~ msgid "Use stack bias"
+#~ msgstr "Utiliser le biais de la pile"
+
+#~ msgid "Do not use stack bias"
+#~ msgstr "Ne pas utiliser le biais de la pile"
+
+#~ msgid "Use structs on stronger alignment for double-word copies"
+#~ msgstr "Utiliser des structs avec alignement plus fort pour les copies de mots-doubles"
+
+#~ msgid "Do not use structs on stronger alignment for double-word copies"
+#~ msgstr "Ne pas utiliser des structs avec alignement plus fort pour les copies de mots-doubles"
+
+#~ msgid "Optimize tail call instructions in assembler and linker"
+#~ msgstr "Optimiser sur mesure les instructions d'appel avec l'assembleur et l'diteur de liens"
+
+#~ msgid "Do not optimize tail call instructions in assembler or linker"
+#~ msgstr "Ne pas optimiser sur mesure les instructions d'appel avec l'assembleur et l'diteur de liens"
+
+#~ msgid "Use given SPARC code model"
+#~ msgstr "Utiliser le modle donn de code pour le SPARC"
+
+#~ msgid "Constant halfword load operand out of range."
+#~ msgstr "chargement de l'oprande de la constante demi-mot est hors limite"
+
+#~ msgid "Constant arithmetic operand out of range."
+#~ msgstr "oprande arithmtique de la constante est hors limite"
+
+#~ msgid "Local variable memory requirements exceed capacity."
+#~ msgstr "La mmoire requise pour les variables locales excde la capacit disponible."
+
+#~ msgid "function_profiler support"
+#~ msgstr "function_profiler support"
+
+#~ msgid "cannot use va_start in interrupt function"
+#~ msgstr "ne peut utiliser va-start dans une fonction d'interruption"
+
+#~ msgid "`B' operand is not constant"
+#~ msgstr "oprande B n'est pas une constante"
+
+#~ msgid "`B' operand has multiple bits set"
+#~ msgstr "l'oprande B a de multiples jeux de bits"
+
+#~ msgid "`o' operand is not constant"
+#~ msgstr "oprande o n'est pas une constante"
+
+#~ msgid "xstormy16_print_operand: unknown code"
+#~ msgstr "xstormy16_print_operand: code inconnu"
+
+#~ msgid "switch statement of size %lu entries too large"
+#~ msgstr "dclaration de switch de taille %lu entre est trop grande"
+
+#~ msgid "#pragma GHS endXXXX found without previous startXXX"
+#~ msgstr "#pragma GHS endXXXX repr sans tre prcd de startXXX"
+
+#~ msgid "#pragma GHS endXXX does not match previous startXXX"
+#~ msgstr "#pragma GHS endXXX ne concorde pas avec le prcdent startXXX"
+
+#~ msgid "cannot set interrupt attribute: no current function"
+#~ msgstr "ne peut initialiser l'attribut d'interruption: aucune fonction courante"
+
+#~ msgid "cannot set interrupt attribute: no such identifier"
+#~ msgstr "ne peut initialiser l'attribut d'interruption: pas de tel identificateur"
+
+#~ msgid "junk at end of #pragma ghs section"
+#~ msgstr "rebut la fin de la section #pragma ghs"
+
+#~ msgid "unrecognized section name \"%s\""
+#~ msgstr "nom de section non reconnue %s "
+
+#~ msgid "malformed #pragma ghs section"
+#~ msgstr "sectin mal compose #pragma ghs"
+
+#~ msgid "junk at end of #pragma ghs interrupt"
+#~ msgstr "rebut la fin de l'interruption #pragma ghs"
+
+#~ msgid "junk at end of #pragma ghs starttda"
+#~ msgstr "rebut la fin de #pragma ghs starttda"
+
+#~ msgid "junk at end of #pragma ghs startsda"
+#~ msgstr "rebut la fin de #pragma ghs startsda"
+
+#~ msgid "junk at end of #pragma ghs startzda"
+#~ msgstr "rebut la fin de #pragma ghs startzda"
+
+#~ msgid "junk at end of #pragma ghs endtda"
+#~ msgstr "rebut la fin de #pragma ghs endtda"
+
+#~ msgid "junk at end of #pragma ghs endsda"
+#~ msgstr "rebut la fin de #pragma ghs endsda"
+
+#~ msgid "junk at end of #pragma ghs endzda"
+#~ msgstr "rebut la fin de #pragma ghs endzda"
+
+#~ msgid "%s=%s is not numeric"
+#~ msgstr "%s=%s n'est pas numrique"
+
+#~ msgid "%s=%s is too large"
+#~ msgstr "%s=%s est trop grand"
+
+#~ msgid "const_double_split got a bad insn:"
+#~ msgstr "const_double_split a reu un insn erron:"
+
+#~ msgid "output_move_single:"
+#~ msgstr "output_move_single:"
+
+#~ msgid "%Jdata area attributes cannot be specified for local variables"
+#~ msgstr "%Jattribut de zone de donnes ne peut tre spcifi pour des variables locales"
+
+#~ msgid "%Jdata area of '%D' conflicts with previous declaration"
+#~ msgstr "%Jzone de donnes de %D entre en conflit avec un dclaration prcdente"
+
+#~ msgid "bogus JR construction: %d\n"
+#~ msgstr "construction JR bogg: %d\n"
+
+#~ msgid "bad amount of stack space removal: %d"
+#~ msgstr "taille errone pour l'enlvement d'espace de la pile: %d"
+
+#~ msgid "bogus JARL construction: %d\n"
+#~ msgstr "construction JARL bogge: %d\n"
+
+#~ msgid "Bogus DISPOSE construction: %d\n"
+#~ msgstr "construction DISPOSE bogg: %d\n"
+
+#~ msgid "Too much stack space to dispose of: %d"
+#~ msgstr "Trop d'espace pour l'empilage pour la disposition de: %d"
+
+#~ msgid "Bogus PREPEARE construction: %d\n"
+#~ msgstr "construction PREPEARE bogge: %d\n"
+
+#~ msgid "Too much stack space to prepare: %d"
+#~ msgstr "Trop d'espace pour l'empilage pour la prparation: %d"
+
+#~ msgid "Support Green Hills ABI"
+#~ msgstr "Supporter l'ABI Green Hills"
+
+#~ msgid "Prohibit PC relative function calls"
+#~ msgstr "Interdire les appels relatifs de fonctions par le PC"
+
+#~ msgid "Reuse r30 on a per function basis"
+#~ msgstr "R-utiliser R30 sur une base par fonction"
+
+#~ msgid "Use stubs for function prologues"
+#~ msgstr "Utiliser des stubs pour les prologues de fonction"
+
+#~ msgid "Same as: -mep -mprolog-function"
+#~ msgstr "Identique : -mep -mprolog-function"
+
+#~ msgid "Enable backend debugging"
+#~ msgstr "Autoriser la mise au point par la fin"
+
+#~ msgid "Compile for the v850 processor"
+#~ msgstr "Compiler pour le processeur v850"
+
+#~ msgid "Compile for v850e1 processor"
+#~ msgstr "Compiler pour le processeur v850e1"
+
+#~ msgid "Compile for v850e processor"
+#~ msgstr "Compiler pour le processeur v850e"
+
+#~ msgid "Enable the use of the short load instructions"
+#~ msgstr "Activer l'utilisation d'instructions courtes de chargement"
+
+#~ msgid "Do not use the callt instruction"
+#~ msgstr "Ne pas utiliser l'instruction callt"
+
+#~ msgid "Do not use registers r2 and r5"
+#~ msgstr "Ne pas utiliser les registres r2 et r5"
+
+#~ msgid "Enforce strict alignment"
+#~ msgstr "Forcer l'alignement stricte"
+
+#~ msgid "Use 4 byte entries in switch tables"
+#~ msgstr "Utiliser des entres de 4 octets dans les tables de switch"
+
+#~ msgid "Set the max size of data eligible for the TDA area"
+#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone TDA"
+
+#~ msgid "Set the max size of data eligible for the SDA area"
+#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone SDA"
+
+#~ msgid "Set the max size of data eligible for the ZDA area"
+#~ msgstr "Initialiser la taille maximale des donnes ligibles pour la zone ZDA"
+
+#~ msgid "boolean registers required for the floating-point option"
+#~ msgstr "registres boolens requis pour l'option de virgule flottante"
+
+#~ msgid "-f%s is not supported with CONST16 instructions"
+#~ msgstr "-f%s n'est pas support avec les instructions CONST16"
+
+#~ msgid "PIC is required but not supported with CONST16 instructions"
+#~ msgstr "PIC est requis mais non support avec des instructions CONST16"
+
+#~ msgid "invalid %%D value"
+#~ msgstr "valeur %%D invalide"
+
+#~ msgid "invalid mask"
+#~ msgstr "masque invalide"
+
+#~ msgid "invalid %%x value"
+#~ msgstr "valeur %%x invalide"
+
+#~ msgid "invalid %%d value"
+#~ msgstr "valeur %%d invalide"
+
+#~ msgid "invalid %%t/%%b value"
+#~ msgstr "valeur %%t/%%b invalide"
+
+#~ msgid "invalid address"
+#~ msgstr "adresse invalide"
+
+#~ msgid "no register in address"
+#~ msgstr "pas de registre dans l'adresse"
+
+#~ msgid "address offset not a constant"
+#~ msgstr "dcalage d'adresse n'est pas une constante"
+
+#~ msgid "only uninitialized variables can be placed in a .bss section"
+#~ msgstr "seules les variables non initialises peuvent tre places dans une section .bss"
+
+#~ msgid "Use CONST16 instruction to load constants"
+#~ msgstr "Utiliser les instructions CONST16 pour charger les constantes"
+
+#~ msgid "Use PC-relative L32R instruction to load constants"
+#~ msgstr "Utiliser les instructions L32R relatives au PC pour charger les constantes"
+
+#~ msgid "Disable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Interdire les instructions fusionns FP de multiplication/addition et de multiplication/soustraction"
+
+#~ msgid "Enable fused multiply/add and multiply/subtract FP instructions"
+#~ msgstr "Permettre les instructions fusionns FP de multiplication/addition et de multiplication/soustraction"
+
+#~ msgid "Intersperse literal pools with code in the text section"
+#~ msgstr "Entrecouper les lots de litraux avec le code dans la section texte"
+
+#~ msgid "Put literal pools in a separate literal section"
+#~ msgstr "Placer les lots de litraux dans des sections spares de litraux"
+
+#~ msgid "Automatically align branch targets to reduce branch penalties"
+#~ msgstr "Aligner automatiquement les branchements cibles pour rduire les pnalits de branchement"
+
+#~ msgid "Do not automatically align branch targets"
+#~ msgstr "Ne pas aligner automatiquement les branchements cibles pour rduire les pnalits de branchement"
+
+#~ msgid "Use indirect CALLXn instructions for large programs"
+#~ msgstr "Utiliser les instructions indirectes CALLXn pour les grands programmes"
+
+#~ msgid "Use direct CALLn instructions for fast calls"
+#~ msgstr "Utiliser les instructions directes CALLn pour des appels rapides"
+
+#~ msgid "missing argument to \"-%s\""
+#~ msgstr "argument manquant -%s "
+
+#~ msgid "`-gnat' misspelled as `-gant'"
+#~ msgstr " -gnat mal pell comme -gant "
+
+#~ msgid "unable to call pointer to member function here"
+#~ msgstr "incapable de faire l'appel avec le pointeur vers la fonction membre ici"
+
+#~ msgid "%s %D(%T, %T, %T) <built-in>"
+#~ msgstr "%s %D(%T, %T, %T) <construit-interne>"
+
+#~ msgid "%s %D(%T, %T) <built-in>"
+#~ msgstr "%s %D(%T, %T) <construit-interne>"
+
+#~ msgid "%s %D(%T) <built-in>"
+#~ msgstr "%s %D(%T) <interne>"
+
+#~ msgid "%s %T <conversion>"
+#~ msgstr "%s %T <conversion>"
+
+#~ msgid "%J%s %+#D <near match>"
+#~ msgstr "%J%s %+#D <prs d'une concordance>"
+
+#~ msgid "%J%s %+#D"
+#~ msgstr "%J%s %+#D"
+
+#~ msgid "candidates are:"
+#~ msgstr "candidats sont:"
+
+#~ msgid "conversion from `%T' to `%T' is ambiguous"
+#~ msgstr "conversion de %T vers %T est ambigu"
+
+#~ msgid "no matching function for call to `%D(%A)'"
+#~ msgstr "pas de fonction concordante pour l'appel de %D(%A) "
+
+#~ msgid "call of overloaded `%D(%A)' is ambiguous"
+#~ msgstr "appel du surcharg %D(%A) est ambigu"
+
+#~ msgid "pointer-to-member function %E cannot be called without an object; consider using .* or ->*"
+#~ msgstr "pointeur vers fonction membre %E ne peut tre appel sans un objet; utilisez .* ou ->*"
+
+#~ msgid "no match for call to `(%T) (%A)'"
+#~ msgstr "pas de concordance pour l'appel de (%T) (%A) "
+
+#~ msgid "call of `(%T) (%A)' is ambiguous"
+#~ msgstr "appel de (%T) (%A) est ambigu"
+
+#~ msgid "%s for ternary 'operator?:' in '%E ? %E : %E'"
+#~ msgstr "%s pour operator?: ternaire dans %E ? %E : %E "
+
+#~ msgid "%s for 'operator%s' in '%E%s'"
+#~ msgstr "%s pour operator%s dans %E%s "
+
+#~ msgid "%s for 'operator[]' in '%E[%E]'"
+#~ msgstr "%s pour operator[] dans %E[%E] "
+
+#~ msgid "%s for '%s' in '%s %E'"
+#~ msgstr "%s pour %s dans %s %E "
+
+#~ msgid "%s for 'operator%s' in '%E %s %E'"
+#~ msgstr "%s pour operator%s dans %E %s %E "
+
+#~ msgid "%s for 'operator%s' in '%s%E'"
+#~ msgstr "%s pour operator%s dans %s%E "
+
+#~ msgid "ISO C++ forbids omitting the middle term of a ?: expression"
+#~ msgstr "ISO C++ interdit l'omission du terme milieu de l'expression ?:"
+
+#~ msgid "`%E' has type `void' and is not a throw-expression"
+#~ msgstr " %E a le type void et n'est pas une expression de retour de type throw"
+
+#~ msgid "operands to ?: have different types"
+#~ msgstr "oprande vers ?: a diffrents types"
+
+#~ msgid "enumeral mismatch in conditional expression: `%T' vs `%T'"
+#~ msgstr "non concordance de type numr dans l'expression conditionnelle: %T vs %T "
+
+#~ msgid "enumeral and non-enumeral type in conditional expression"
+#~ msgstr "type numr et non numr dans l'expression conditionnelle"
+
+#~ msgid "no `%D(int)' declared for postfix `%s', trying prefix operator instead"
+#~ msgstr "pas %D(int) dclar pour le postfixe %s , essaie avec l'oprateur prfixe la place"
+
+#~ msgid "using synthesized `%#D' for copy assignment"
+#~ msgstr "utilisation du synthtis %#D pour l'affectaion par copie"
+
+#~ msgid " where cfront would use `%#D'"
+#~ msgstr " o cfront utiliserait %#D "
+
+#~ msgid "comparison between `%#T' and `%#T'"
+#~ msgstr "comparaison entre %#T et %#T "
+
+#~ msgid "no suitable `operator %s' for `%T'"
+#~ msgstr "pas operator %s adapt pour %T "
+
+#~ msgid "`%+#D' is private"
+#~ msgstr " %+#D est priv"
+
+#~ msgid "`%+#D' is protected"
+#~ msgstr " %+#D est protg"
+
+#~ msgid "`%+#D' is inaccessible"
+#~ msgstr " %+#D et inaccessible"
+
+#~ msgid "within this context"
+#~ msgstr " l'intrieur du contexte"
+
+#~ msgid "invalid conversion from `%T' to `%T'"
+#~ msgstr "conversion invalide de %T vers %T "
+
+#~ msgid " initializing argument %P of `%D'"
+#~ msgstr " initialisation de l'argument %P de %D "
+
+#~ msgid "cannot bind bitfield `%E' to `%T'"
+#~ msgstr "ne peut lier le champ de bits %E avec %T "
+
+#~ msgid "cannot bind packed field `%E' to `%T'"
+#~ msgstr "ne peut lier le champs empaquet %E avec %T "
+
+#~ msgid "cannot bind rvalue `%E' to `%T'"
+#~ msgstr "ne peut lier la rvalue %E avec %T "
+
+#~ msgid "cannot pass objects of non-POD type `%#T' through `...'; call will abort at runtime"
+#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... ; l'appel chouera lors de l'xecution"
+
+#~ msgid "cannot receive objects of non-POD type `%#T' through `...'; call will abort at runtime"
+#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... ; l'appel chouera lors de l'xecution"
+
+#~ msgid "the default argument for parameter %d of `%D' has not yet been parsed"
+#~ msgstr "argument par dfaut pour le paramtre %d de %D n'a pas encore t analys"
+
+#~ msgid "passing `%T' as `this' argument of `%#D' discards qualifiers"
+#~ msgstr "passant %T comme cet argument de %#D carte les qualificateurs"
+
+#~ msgid "`%T' is not an accessible base of `%T'"
+#~ msgstr " %T est une base accessible de %T "
+
+#~ msgid "could not find class$ field in java interface type `%T'"
+#~ msgstr "ne peut reprer le champ classe$ dans le type d'interface JAVA %T "
+
+#~ msgid "call to non-function `%D'"
+#~ msgstr "appel une non fonction %D "
+
+#~ msgid "request for member `%D' in `%E', which is of non-aggregate type `%T'"
+#~ msgstr "requte du membre %D dans %E , lequel n'est pas de type aggrgat %T "
+
+#~ msgid "no matching function for call to `%T::%s(%A)%#V'"
+#~ msgstr "pas de fonction concordante pour l'appel %T::%s(%A)%#V "
+
+#~ msgid "call of overloaded `%s(%A)' is ambiguous"
+#~ msgstr "appel du surcharg %s(%A) est ambigu"
+
+#~ msgid "cannot call member function `%D' without object"
+#~ msgstr "ne peut appeler la fonction membre %D sans objet"
+
+#~ msgid "passing `%T' chooses `%T' over `%T'"
+#~ msgstr "passant %T choisit %T au lieu de %T "
+
+#~ msgid " in call to `%D'"
+#~ msgstr " dans l'appel de %D "
+
+#~ msgid "choosing `%D' over `%D'"
+#~ msgstr "choix de %D la place de %D "
+
+#~ msgid " for conversion from `%T' to `%T'"
+#~ msgstr " pour la conversion de %T vers %T "
+
+#~ msgid " because conversion sequence for the argument is better"
+#~ msgstr " parce que la squence de conversion pour l'argument est meilleure"
+
+#~ msgid "ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:"
+#~ msgstr "ISO C++ indique qu'ils sont ambigus mme travers la plus mauvaise conversion pour le premier que la plus mauvaise pour la seconde:"
+
+#~ msgid "candidate 1:"
+#~ msgstr "candidat 1:"
+
+#~ msgid "candidate 2:"
+#~ msgstr "candidat 2:"
+
+#~ msgid "could not convert `%E' to `%T'"
+#~ msgstr "ne peut convertir %E vers %T "
+
+#~ msgid "invalid initialization of non-const reference of type '%T' from a temporary of type '%T'"
+#~ msgstr "initialisation invalide pour une rfrence un non constante de type %T partir d'un type temporaire de type %T "
+
+#~ msgid "invalid initialization of reference of type '%T' from expression of type '%T'"
+#~ msgstr "initialisation invalide de rfrence d'un type %T partir d'une expression de type %T "
+
+#~ msgid "cannot convert from base `%T' to derived type `%T' via virtual base `%T'"
+#~ msgstr "ne peut convertir de la base %T un type driv %T via la base virtuel %T "
+
+#~ msgid "Java class '%T' cannot have an implicit non-trivial destructor"
+#~ msgstr "classe Java %T ne peut avoir un destructeur implicite non trivial"
+
+#~ msgid "Java class '%T' cannot have a destructor"
+#~ msgstr "classe Java %T ne peut avoir un destructeur"
+
+#~ msgid "`%#D' and `%#D' cannot be overloaded"
+#~ msgstr " %#D et %#D ne peut tre surcharg"
+
+#~ msgid "conflicting access specifications for method `%D', ignored"
+#~ msgstr "spcifications d'accs conflictuelles pour la mthode %D , ignor"
+
+#~ msgid "conflicting access specifications for field `%s', ignored"
+#~ msgstr "spcifications d'accs conflictuelles pour le champ %s , ignor"
+
+#~ msgid "`%D' names constructor"
+#~ msgstr " %D nomme le constructeur"
+
+#~ msgid "`%D' invalid in `%T'"
+#~ msgstr " %D invalide dans %T "
+
+#~ msgid "no members matching `%D' in `%#T'"
+#~ msgstr "aucun membre concordant %D dans %#T "
+
+#~ msgid "`%D' invalid in `%#T'"
+#~ msgstr " %D invalide dans %#T "
+
+#~ msgid " because of local method `%#D' with same name"
+#~ msgstr " parce que la mthode locale %#D a le mme nom"
+
+#~ msgid " because of local member `%#D' with same name"
+#~ msgstr " parce que le membre local %#D a le mme nom"
+
+#~ msgid "base class `%#T' has a non-virtual destructor"
+#~ msgstr "classe de base %#T a un destructeur non virtuel"
+
+#~ msgid "base `%T' with only non-default constructor in class without a constructor"
+#~ msgstr "base %T avec seulement le constructeur non par dfaut dans la classe sans un constructeur"
+
+#~ msgid "all member functions in class `%T' are private"
+#~ msgstr "toutes les fonctions membres de la classe %T sont privs"
+
+#~ msgid "`%#T' only defines a private destructor and has no friends"
+#~ msgstr " %#T dfinit seulement les constructeurs privs et n'a pas d'amis"
+
+#~ msgid "`%#T' only defines private constructors and has no friends"
+#~ msgstr " %#T dfinit seulement les constructeurs privs et n'a pas d'amis"
+
+#~ msgid "no unique final overrider for `%D' in `%T'"
+#~ msgstr "pas d'craseur unique final pour %D dans %T "
+
+#~ msgid "`%D' was hidden"
+#~ msgstr " %D tait cach"
+
+#~ msgid " by `%D'"
+#~ msgstr " par %D "
+
+#~ msgid "`%#D' invalid; an anonymous union can only have non-static data members"
+#~ msgstr " %#D invalide; une union anonyme peut seulement avoir des donnes non statiques de membres"
+
+#~ msgid "private member `%#D' in anonymous union"
+#~ msgstr "membre priv %#D dans une union anonyme"
+
+#~ msgid "protected member `%#D' in anonymous union"
+#~ msgstr "membre protg %#D dans une union anonyme"
+
+#~ msgid "vtable layout for class `%T' may not be ABI-compliant and may change in a future version of GCC due to implicit virtual destructor"
+#~ msgstr "disposition vtable pour la classe %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future deGCC en raison d'un destructeur virtuel implicite"
+
+#~ msgid "bit-field `%#D' with non-integral type"
+#~ msgstr "largeur du champ de bits %#D n'est pas une constante entire"
+
+#~ msgid "bit-field `%D' width not an integer constant"
+#~ msgstr "largeur du champ de bits %D n'est pas une constante entire"
+
+#~ msgid "negative width in bit-field `%D'"
+#~ msgstr "largeur ngative du champ de bits %D "
+
+#~ msgid "zero width for bit-field `%D'"
+#~ msgstr "largeur zro pour le champ de bits %D "
+
+#~ msgid "width of `%D' exceeds its type"
+#~ msgstr "largeur de %D excde son type"
+
+#~ msgid "`%D' is too small to hold all values of `%#T'"
+#~ msgstr " %D est trop petit pour contenir toutes les valeurs de %#T "
+
+#~ msgid "member `%#D' with constructor not allowed in union"
+#~ msgstr "membre %#D avec consructeur n'est pas permis dans l'union"
+
+#~ msgid "member `%#D' with destructor not allowed in union"
+#~ msgstr "membre %#D avec destructeur n'est pas permis dans l'union"
+
+#~ msgid "member `%#D' with copy assignment operator not allowed in union"
+#~ msgstr "membre %#D avec oprateur d,affectation par copie n'st pas permis dans l'union"
+
+#~ msgid "multiple fields in union `%T' initialized"
+#~ msgstr "champs multiples dans l'union %T initialiss"
+
+#~ msgid "ignoring packed attribute on unpacked non-POD field `%#D'"
+#~ msgstr "attribut empaquet ignor sur un champ non POD non paquet %#D "
+
+#~ msgid "`%D' may not be static because it is a member of a union"
+#~ msgstr " %D peut ne pas tre statique parce qu'il est membre de l'uniont"
+
+#~ msgid "`%D' may not have reference type `%T' because it is a member of a union"
+#~ msgstr " %D peut ne pas avoir de type rfrenc %T parce qu'il est membre de l'union"
+
+#~ msgid "field `%D' in local class cannot be static"
+#~ msgstr "champ %D dans une classe locale ne peut tre statique"
+
+#~ msgid "field `%D' invalidly declared function type"
+#~ msgstr "champ %D incorrectement valid comme un type de fonction"
+
+#~ msgid "field `%D' invalidly declared method type"
+#~ msgstr "champ %D incorrectement valid comme un type de mthode"
+
+#~ msgid "non-static reference `%#D' in class without a constructor"
+#~ msgstr "rfrence non statique %#D dans la classe sans un constructeur"
+
+#~ msgid "non-static const member `%#D' in class without a constructor"
+#~ msgstr "constante non statique de membre %#D dans la classe sans un constructeur"
+
+#~ msgid "field `%#D' with same name as class"
+#~ msgstr "champ %#D avec le mme nom qu'une classe"
+
+#~ msgid "`%#T' has pointer data members"
+#~ msgstr " %#T a un pointeur vers un membre de donnes"
+
+#~ msgid " but does not override `%T(const %T&)'"
+#~ msgstr " mais n'crase pas %T(const %T&) "
+
+#~ msgid " or `operator=(const %T&)'"
+#~ msgstr " ou operator=(const %T&) "
+
+#~ msgid " but does not override `operator=(const %T&)'"
+#~ msgstr " mais n'crase pas operator=(const %T&) "
+
+#~ msgid "offset of empty base `%T' may not be ABI-compliant and maychange in a future version of GCC"
+#~ msgstr "dcalage d'une base vide %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC"
+
+#~ msgid "class `%T' will be considered nearly empty in a future version of GCC"
+#~ msgstr "classe %T devra tre considre pratiquement vide dans une version future de GCC"
+
+#~ msgid "initializer specified for non-virtual method `%D'"
+#~ msgstr "initialisation spcifie pour une mthode non virtuelle %D "
+
+#~ msgid "offset of virtual base `%T' is not ABI-compliant and may change in a future version of GCC"
+#~ msgstr "dcalage relatif d'une base virtuelle %T n'est pas compatible avec l'ABI et peut tre modifi dans une version future de GCC"
+
+#~ msgid "direct base `%T' inaccessible in `%T' due to ambiguity"
+#~ msgstr "base directe %T inaccessible dans %T en raison de l'ambiguit"
+
+#~ msgid "virtual base `%T' inaccessible in `%T' due to ambiguity"
+#~ msgstr "base virtuelle %T inaccessible dans %T en raison de l'ambiguit"
+
+#~ msgid "size assigned to `%T' may not be ABI-compliant and may change in a future version of GCC"
+#~ msgstr "taille assigne %T peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC"
+
+#~ msgid "the offset of `%D' may not be ABI-compliant and may change in a future version of GCC"
+#~ msgstr "le dcalage relatif de %D peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC"
+
+#~ msgid "offset of `%D' is not ABI-compliant and may change in a future version of GCC"
+#~ msgstr "le dcalage relatif de %D peut ne pas tre compatible avec l'ABI et peut tre modifi dans une version future de GCC"
+
+#~ msgid "`%D' contains empty classes which may cause base classes to be placed at different locations in a future version of GCC"
+#~ msgstr " %D contient des classes vides lesquelles peuvent placer les classes de base une localisation diffrente dans une version future de GCC"
+
+#~ msgid "layout of classes derived from empty class `%T' may change in a future version of GCC"
+#~ msgstr "disposition des classes est drivs de la classe vide %T peut tre modifie dans une version future de GCC"
+
+#~ msgid "redefinition of `%#T'"
+#~ msgstr "redfinition de %#T "
+
+#~ msgid "`%#T' has virtual functions but non-virtual destructor"
+#~ msgstr " %#T a des fonctions virtuelles mais un destructeur non virtuel"
+
+#~ msgid "trying to finish struct, but kicked out due to previous parse errors"
+#~ msgstr "tentative de compltion du struct, mais a t stopp en raison d'erreurs prcdentes d'analyses syntaxiques"
+
+#~ msgid "language string `\"%s\"' not recognized"
+#~ msgstr "chane du langage \"%s\" n'est pas reconnue"
+
+#~ msgid "cannot resolve overloaded function `%D' based on conversion to type `%T'"
+#~ msgstr "ne peut rsoudre la fonction surcharg %D bas sur la conversion vers le type %T "
+
+#~ msgid "no matches converting function `%D' to type `%#T'"
+#~ msgstr "pas de concordance de conversion de fonction %D vers le type %#T "
+
+#~ msgid "converting overloaded function `%D' to type `%#T' is ambiguous"
+#~ msgstr "conversion d'une fonction surcharge %D vers le type %#T est ambigu"
+
+#~ msgid "assuming pointer to member `%D'"
+#~ msgstr "pointeur assum vers le membre %D "
+
+#~ msgid "(a pointer to member can only be formed with `&%E')"
+#~ msgstr "(un pointeur vers un membre peut seulement tre form avec &%E)"
+
+#~ msgid "not enough type information"
+#~ msgstr "pas assez d'information sur le type"
+
+#~ msgid "argument of type `%T' does not match `%T'"
+#~ msgstr "argument de type %T ne concorde pas avec %T "
+
+#~ msgid "invalid operation on uninstantiated type"
+#~ msgstr "opration invalide sur un type non instanci"
+
+#~ msgid "declaration of `%#D'"
+#~ msgstr "dclaration de %#D "
+
+#~ msgid "changes meaning of `%D' from `%+#D'"
+#~ msgstr "changements signifiant de %D partir de %+#D "
+
+#~ msgid "inter-module optimisations not implemented yet"
+#~ msgstr "les optimisations inter-module n'est pas implant encore"
+
+#~ msgid "can't convert from incomplete type `%T' to `%T'"
+#~ msgstr "ne peut convertir d'un type incomplet %T vers %T "
+
+#~ msgid "conversion of `%E' from `%T' to `%T' is ambiguous"
+#~ msgstr "conversion de %E partir de %T vers %T est ambigu"
+
+#~ msgid "converting from `%T' to `%T'"
+#~ msgstr "conversion de %T vers %T "
+
+#~ msgid "cannot convert `%E' from type `%T' to type `%T'"
+#~ msgstr "ne peut convertir %E du type %T vers le type %T "
+
+#~ msgid "pointer to member cast from `%T' to `%T' is via virtual base"
+#~ msgstr "pointeur vers un membre transtyp de %T %T est fait via une base virtuelle"
+
+#~ msgid "invalid conversion from '%T' to '%T'"
+#~ msgstr "conversion invalide de %T vers %T "
+
+#~ msgid "conversion from `%T' to `%T' discards qualifiers"
+#~ msgstr "conversion de %T %T carte les qualificateurs"
+
+#~ msgid "casting `%T' to `%T' does not dereference pointer"
+#~ msgstr "transtypage de %T vers %T ne fait pas de d-rfrence de pointeur"
+
+#~ msgid "cannot convert type `%T' to type `%T'"
+#~ msgstr "ne peut convertir type %T vers le type %T "
+
+#~ msgid "conversion from `%#T' to `%#T'"
+#~ msgstr "conversion de %#T vers %#T "
+
+#~ msgid "`%#T' used where a `%T' was expected"
+#~ msgstr " %#T utilis o %T tait attendu"
+
+#~ msgid "`%#T' used where a floating point value was expected"
+#~ msgstr " %#T utilis o un nombre flottant tait attendu"
+
+#~ msgid "conversion from `%T' to non-scalar type `%T' requested"
+#~ msgstr "conversion de %T vers un type non scalaire %T demande"
+
+#~ msgid "object of incomplete type `%T' will not be accessed in %s"
+#~ msgstr "objet de type incomplet %T ne sera pas accessible dans %s"
+
+#~ msgid "object of type `%T' will not be accessed in %s"
+#~ msgstr "objet de type %T ne sera pas acccessible dans %s"
+
+#~ msgid "object `%E' of incomplete type `%T' will not be accessed in %s"
+#~ msgstr "objet %E d'un type incomplet %T ne sera pas accessible dans %s"
+
+#~ msgid "%s cannot resolve address of overloaded function"
+#~ msgstr "%s ne peut rsoudre l'adresse la fonction surcharge"
+
+#~ msgid "%s is a reference, not call, to function `%E'"
+#~ msgstr "%s est un rfrence, pas un appel, la fonction %E "
+
+#~ msgid "%s has no effect"
+#~ msgstr "%s n'a pas d'effet"
+
+#~ msgid "converting NULL to non-pointer type"
+#~ msgstr "conversion d'un NULL vers un type non pointeur"
+
+#~ msgid "ambiguous default type conversion from `%T'"
+#~ msgstr "conversion de type par dfaut ambigu partir de %T "
+
+#~ msgid " candidate conversions include `%D' and `%D'"
+#~ msgstr " conversions de candidat inclut %D et %D "
+
+#~ msgid "label `%D' used but not defined"
+#~ msgstr "tiquette %D utilise mais non dfinie"
+
+#~ msgid "label `%D' defined but not used"
+#~ msgstr "tiquette %D dfinie mais non utilise"
+
+#~ msgid "previous declaration of `%D'"
+#~ msgstr "dclaration prcdente de %D "
+
+#~ msgid "%Jfunction '%D' redeclared as inline"
+#~ msgstr "%Jfonction %D redclare comme tant enligne"
+
+#~ msgid "%Jprevious declaration of '%D' with attribute noinline"
+#~ msgstr "%Jdclaration prcdente de %D avec l'attribut non enligne"
+
+#~ msgid "%Jfunction '%D' redeclared with attribute noinline"
+#~ msgstr "%Jfonction %D redclare avec l'attribut non enligne"
+
+#~ msgid "%Jprevious declaration of '%D' was inline"
+#~ msgstr "%Jdclaration prcdente de %D tait enligne"
+
+#~ msgid "shadowing %s function `%#D'"
+#~ msgstr "%s masque la fonction %#D "
+
+#~ msgid "library function `%#D' redeclared as non-function `%#D'"
+#~ msgstr "fonction %#D de la bibliothque redclare comme n'tant pas une fonction %#D "
+
+#~ msgid "conflicts with built-in declaration `%#D'"
+#~ msgstr "conflits avec la dclaration interne de %#D "
+
+#~ msgid "new declaration `%#D'"
+#~ msgstr "nouvelle dclaration de %#D "
+
+#~ msgid "ambiguates built-in declaration `%#D'"
+#~ msgstr "ambiguits de la dclaration interne de %#D "
+
+#~ msgid "`%#D' redeclared as different kind of symbol"
+#~ msgstr " %#D redclar comme une sorte diffrente de symbole"
+
+#~ msgid "previous declaration of `%#D'"
+#~ msgstr "dclaration prcdente de %#D "
+
+#~ msgid "declaration of template `%#D'"
+#~ msgstr "dclaration du canevas %#D "
+
+#~ msgid "conflicts with previous declaration `%#D'"
+#~ msgstr "conflits avec la dclaration prcdente de %#D "
+
+#~ msgid "ambiguates old declaration `%#D'"
+#~ msgstr "ambiguits d'une vieille dclaration de %#D "
+
+#~ msgid "declaration of C function `%#D' conflicts with"
+#~ msgstr "dclaration de la fonction C %#D en conflit avec"
+
+#~ msgid "previous declaration `%#D' here"
+#~ msgstr "dclaration prcdente de %#D ici"
+
+#~ msgid "conflicting declaration '%#D'"
+#~ msgstr "dclaration conflictuelle %#D "
+
+#~ msgid "'%D' has a previous declaration as `%#D'"
+#~ msgstr " %D a une dclaration prcdente tel que %#D "
+
+#~ msgid "`%#D' previously defined here"
+#~ msgstr " %#D prcdemment dfini ici"
+
+#~ msgid "`%#D' previously declared here"
+#~ msgstr " %#D prcdemment dclar ici"
+
+#~ msgid "prototype for `%#D'"
+#~ msgstr "prototype de %#D "
+
+#~ msgid "%Jfollows non-prototype definition here"
+#~ msgstr "%Jsuit la dfinition d'un non prototype ici"
+
+#~ msgid "previous declaration of `%#D' with %L linkage"
+#~ msgstr "dclaration prcdente de %#D avec le lien %L"
+
+#~ msgid "conflicts with new declaration with %L linkage"
+#~ msgstr "conflits avec la nouvelle dclaration avec le lien %L"
+
+#~ msgid "default argument given for parameter %d of `%#D'"
+#~ msgstr "argument par dfaut donn pour le paramtre %d de %#D "
+
+#~ msgid "after previous specification in `%#D'"
+#~ msgstr "aprs la dclaration prcdente dans %#D "
+
+#~ msgid "`%#D' was used before it was declared inline"
+#~ msgstr " %#D a t utilis avant qu'il ne soit dclar enligne"
+
+#~ msgid "%Jprevious non-inline declaration here"
+#~ msgstr "%Jdclaration prcdente non enligne ici"
+
+#~ msgid "redundant redeclaration of `%D' in same scope"
+#~ msgstr "dclaration redondante de %D dans la mme tendue"
+
+#~ msgid "declaration of `%F' throws different exceptions"
+#~ msgstr "dclaration de %F amne diffrentes exceptions"
+
+#~ msgid "than previous declaration `%F'"
+#~ msgstr "qu'une prcdente dclaratio %F "
+
+#~ msgid "explicit specialization of %D after first use"
+#~ msgstr "spcialisation explicite de %D aprs la premire utilisation"
+
+#~ msgid "%J'%D': visibility attribute ignored because it"
+#~ msgstr "%J %D : attribut de visibilit ignor en cause de lui"
+
+#~ msgid "%Jconflicts with previous declaration here"
+#~ msgstr "%Jentre en conflit avec la dclaration prcdente ici"
+
+#~ msgid "implicit declaration of function `%#D'"
+#~ msgstr "dclaration implicite de la fonction %#D "
+
+#~ msgid "label `%s' referenced outside of any function"
+#~ msgstr "tiquette %s rfrence l'extrieur de n'importe quelle fonction"
+
+#~ msgid "jump to label `%D'"
+#~ msgstr "saut l'tiquette %D "
+
+#~ msgid "jump to case label"
+#~ msgstr "saut l'tiquette du case "
+
+#~ msgid "%H from here"
+#~ msgstr "%H partir d'ici"
+
+#~ msgid " crosses initialization of `%#D'"
+#~ msgstr " initialisation croise pour %#D "
+
+#~ msgid " enters scope of non-POD `%#D'"
+#~ msgstr " entre dans la port d'un non POD %#D "
+
+#~ msgid " enters try block"
+#~ msgstr " entre dans le bloc d'essais"
+
+#~ msgid " enters catch block"
+#~ msgstr " entre dans le bloc d'interceptions"
+
+#~ msgid " from here"
+#~ msgstr " partir d'ici"
+
+#~ msgid "%J enters catch block"
+#~ msgstr "%J entre dans le bloc d'interception"
+
+#~ msgid " skips initialization of `%#D'"
+#~ msgstr " saut d'initialisation pour %#D "
+
+#~ msgid "label named wchar_t"
+#~ msgstr "tiquette nomme wchar_t"
+
+#~ msgid "duplicate label `%D'"
+#~ msgstr "tiquette %D apparat en double"
+
+#~ msgid "`%D' used without template parameters"
+#~ msgstr " %D utilis sans canevas de paramtres"
+
+#~ msgid "no class template named `%#T' in `%#T'"
+#~ msgstr "pas de canevas de classe nomm %#T in %#T "
+
+#~ msgid "no type named `%#T' in `%#T'"
+#~ msgstr "pas de type nomm dans %#T dans %#T "
+
+#~ msgid "%Jan anonymous union cannot have function members"
+#~ msgstr "%Jun UNION anonyme ne peut avoir de fonctions membres"
+
+#~ msgid "member %#D' with constructor not allowed in anonymous aggregate"
+#~ msgstr "membre %#D avec constructeur n'est pas permis dans un aggrgat anonyme"
+
+#~ msgid "member %#D' with destructor not allowed in anonymous aggregate"
+#~ msgstr "membre %#D avec destructeur n'est pas permis dans un aggrgat anonyme"
+
+#~ msgid "member %#D' with copy assignment operator not allowed in anonymous aggregate"
+#~ msgstr "membre %#D avec oprateur d'affectation par copie n'est pas permis dans un aggrgat anonyme"
+
+#~ msgid "redeclaration of C++ built-in type `%T'"
+#~ msgstr "redclaration du type interne C++ %T "
+
+#~ msgid "multiple types in one declaration"
+#~ msgstr "types multiples dans une dclaration"
+
+#~ msgid "missing type-name in typedef-declaration"
+#~ msgstr "nom de type manquant dans la dclaration typedef"
+
+#~ msgid "ISO C++ prohibits anonymous structs"
+#~ msgstr "ISO C++ interdit les structures anonymes"
+
+#~ msgid "`%D' can only be specified for functions"
+#~ msgstr " %D ne peut seulement tre spcifier pour les fonctions"
+
+#~ msgid "`%D' can only be specified inside a class"
+#~ msgstr " %D peut seulement tre spcifi l'intrieur d'une classe"
+
+#~ msgid "`%D' can only be specified for constructors"
+#~ msgstr " %D ne peut seulement tre spcifi pour les constructeurs"
+
+#~ msgid "`%D' can only be specified for objects and functions"
+#~ msgstr " %D ne peut seulement tre spcifi pour les objets et les fonctions"
+
+#~ msgid "typedef `%D' is initialized (use __typeof__ instead)"
+#~ msgstr "typedef %D est initialis (use __typeof__ instead)"
+
+#~ msgid "function `%#D' is initialized like a variable"
+#~ msgstr "fonction %#D est initialise comme une variable"
+
+#~ msgid "declaration of `%#D' has `extern' and is initialized"
+#~ msgstr "dclaration de %#D est externe et initialis"
+
+#~ msgid "`%#D' is not a static member of `%#T'"
+#~ msgstr " %#D n'est pas un membre statique de %#T "
+
+#~ msgid "ISO C++ does not permit `%T::%D' to be defined as `%T::%D'"
+#~ msgstr "ISO C++ ne permet pas que %T::%D soit dfini comme %T::%D "
+
+#~ msgid "duplicate initialization of %D"
+#~ msgstr "initialisation en double de %D"
+
+#~ msgid "declaration of `%#D' outside of class is not definition"
+#~ msgstr "dclaraion de %#D en dehors de la classe n'est pas une dfinition"
+
+#~ msgid "variable `%#D' has initializer but incomplete type"
+#~ msgstr "la variable %#D est initialise, mais a un type incomplet"
+
+#~ msgid "elements of array `%#D' have incomplete type"
+#~ msgstr "lments du tableau %#D ont un type incomplet"
+
+#~ msgid "aggregate `%#D' has incomplete type and cannot be defined"
+#~ msgstr "aggrgat %#D a un type incomplet et ne peut tre dfini"
+
+#~ msgid "`%D' declared as reference but not initialized"
+#~ msgstr " %D dclar comme rfrence mais n'est pas initialis"
+
+#~ msgid "ISO C++ forbids use of initializer list to initialize reference `%D'"
+#~ msgstr "ISO C++ interdit l'usage de liste d'initialiseur pour initialiser la rfrence %D "
+
+#~ msgid "cannot initialize `%T' from `%T'"
+#~ msgstr "ne peut initialiser %T partir de %T "
+
+#~ msgid "initializer fails to determine size of `%D'"
+#~ msgstr "l'initialisation n'a pu dterminer la taille de %D "
+
+#~ msgid "array size missing in `%D'"
+#~ msgstr "taille de tableau manquante dans %D "
+
+#~ msgid "zero-size array `%D'"
+#~ msgstr "tableau %D de taille zro"
+
+#~ msgid "storage size of `%D' isn't known"
+#~ msgstr "taille de stockage de %D n'est pas connue"
+
+#~ msgid "storage size of `%D' isn't constant"
+#~ msgstr "taille de stockage de %D n'est pas une constante"
+
+#~ msgid "sorry: semantics of inline function static data `%#D' are wrong (you'll wind up with multiple copies)"
+#~ msgstr "dsol: smantique de fonction enligne de donnes statiques %#D est errone (vous obtiendrez de multiples copies)"
+
+#~ msgid "%J you can work around this by removing the initializer"
+#~ msgstr "%J vous pouvez contourner cela en enlevant l'initialiseur"
+
+#~ msgid "uninitialized const `%D'"
+#~ msgstr "constante %D non initialise"
+
+#~ msgid "brace-enclosed initializer used to initialize `%T'"
+#~ msgstr "initialiseur utilis entre accolades pour initialiser %T "
+
+#~ msgid "initializer for `%T' must be brace-enclosed"
+#~ msgstr "initialiseur de %T doit tre entre accolades"
+
+#~ msgid "ISO C++ does not allow designated initializers"
+#~ msgstr "ISO C++ ne permet de dsigner les initialiseurs"
+
+#~ msgid "`%T' has no non-static data member named `%D'"
+#~ msgstr " %T n'a pas de membre de donnes non statique nomm %D "
+
+#~ msgid "name `%D' used in a GNU-style designated initializer for an array"
+#~ msgstr "nom %D utilis dans un style GNU de l'initialisateur dsign pour un tableau"
+
+#~ msgid "too many initializers for `%T'"
+#~ msgstr "trop d'initialiseurs pour %T "
+
+#~ msgid "variable-sized object `%D' may not be initialized"
+#~ msgstr "objet de taille variable %D peut ne pas tre initialis"
+
+#~ msgid "`%D' has incomplete type"
+#~ msgstr " %D a un type incomplet"
+
+#~ msgid "`%D' must be initialized by constructor, not by `{...}'"
+#~ msgstr " %D doit tre initialis par un constructeur, non pas par {...} "
+
+#~ msgid "structure `%D' with uninitialized const members"
+#~ msgstr "structure %D avec constantes non initialises de membres"
+
+#~ msgid "structure `%D' with uninitialized reference members"
+#~ msgstr "structure %D avec rfrences non initialises de membres"
+
+#~ msgid "assignment (not initialization) in declaration"
+#~ msgstr "affectation (non pas l'initialisation) dans la dclaration"
+
+#~ msgid "cannot initialize `%D' to namespace `%D'"
+#~ msgstr "ne peut initialiser %D l'espace de noms %D "
+
+#~ msgid "shadowing previous type declaration of `%#D'"
+#~ msgstr "masque la dclaration prcdente de %#D "
+
+#~ msgid "`%D' cannot be thread-local because it has non-POD type `%T'"
+#~ msgstr " %D ne peut tre utilis comme un thread local parce qu'il a un non POD de type %T "
+
+#~ msgid "`%D' is thread-local and so cannot be dynamically initialized"
+#~ msgstr " %D est un thread local et ne peut donc pas tre initialis dynamiquement"
+
+#~ msgid "invalid catch parameter"
+#~ msgstr "paramtre d'interception invalide"
+
+#~ msgid "destructor for alien class `%T' cannot be a member"
+#~ msgstr "destructeur pour la classe trangre %T ne peut tre un membre"
+
+#~ msgid "constructor for alien class `%T' cannot be a member"
+#~ msgstr "constructeur pour la classe trangre %T ne peut tre un membre"
+
+#~ msgid "`%D' declared as a `virtual' %s"
+#~ msgstr " %D dclar comme virtual %s"
+
+#~ msgid "`%D' declared as an `inline' %s"
+#~ msgstr " %D dclar comme inline %s"
+
+#~ msgid "`const' and `volatile' function specifiers on `%D' invalid in %s declaration"
+#~ msgstr "spcificateurs de fonction const et volatile invalide pour %D dans la dclaration %s"
+
+#~ msgid "`%D' declared as a friend"
+#~ msgstr " %D dclar comme un ami"
+
+#~ msgid "`%D' declared with an exception specification"
+#~ msgstr " %D dclar avec une exception de spcification"
+
+#~ msgid "cannot declare `::main' to be a template"
+#~ msgstr "ne peut dclarer ::main comme tant un canevas"
+
+#~ msgid "cannot declare `::main' to be inline"
+#~ msgstr "ne peut dclarer ::main tre enligne"
+
+#~ msgid "cannot declare `::main' to be static"
+#~ msgstr "ne peut dclarer ::main comme tant static"
+
+#~ msgid "`main' must return `int'"
+#~ msgstr " main doit retourner int "
+
+#~ msgid "non-local function `%#D' uses anonymous type"
+#~ msgstr "fonction non locale %#D utilise un type anonyme"
+
+#~ msgid "`%#D' does not refer to the unqualified type, so it is not used for linkage"
+#~ msgstr " %#D ne rfre pas un type non qualifi, aussi il n'est pas utilis pour la liaison"
+
+#~ msgid "non-local function `%#D' uses local type `%T'"
+#~ msgstr "fonction non locale %#D utilise un type local %T "
+
+#~ msgid "%smember function `%D' cannot have `%T' method qualifier"
+#~ msgstr "%sfonction membre %D ne peut avoir %T comme qualificateur de mthode"
+
+#~ msgid "defining explicit specialization `%D' in friend declaration"
+#~ msgstr "dfinition explicite de spcialisation %D dans lka dclaration ami"
+
+#~ msgid "invalid use of template-id `%D' in declaration of primary template"
+#~ msgstr "utilisation invalide du template-id %D dans la dclaration du canevas primaire"
+
+#~ msgid "default arguments are not allowed in declaration of friend template specialization `%D'"
+#~ msgstr "arguments par dfaut ne sont pas permis dans la dclaration amie de la spcialisation du canevas %D "
+
+#~ msgid "`inline' is not allowed in declaration of friend template specialization `%D'"
+#~ msgstr " inline n'estpas permis dans la dclaration amie de la spcialisation du canevas %D "
+
+#~ msgid "definition of implicitly-declared `%D'"
+#~ msgstr "dfinition implicitement dclare %D "
+
+#~ msgid "no `%#D' member function declared in class `%T'"
+#~ msgstr "pas de fonction membre %#D dclare dans la classe %T "
+
+#~ msgid "non-local variable `%#D' uses local type `%T'"
+#~ msgstr "variable non locale %#D utilise un type local %T "
+
+#~ msgid "invalid in-class initialization of static data member of non-integral type `%T'"
+#~ msgstr "initialisation invalide dans la class de donnes de membre statiques d'un non entier de type %T "
+
+#~ msgid "ISO C++ forbids in-class initialization of non-const static member `%D'"
+#~ msgstr "ISO C++ interdit l'initialisation intra-classe d'un membre statique non constant %D "
+
+#~ msgid "ISO C++ forbids initialization of member constant `%D' of non-integral type `%T'"
+#~ msgstr "ISO C++ interdit l'initialisation d'une membre constant %D d'un type non entier %T "
+
+#~ msgid "size of array `%D' has non-integral type `%T'"
+#~ msgstr "taille du tableau %D n'est pas de type entier %T "
+
+#~ msgid "size of array has non-integral type `%T'"
+#~ msgstr "taille du tableau a type non entier %T "
+
+#~ msgid "size of array `%D' is negative"
+#~ msgstr "taille du tableau %D est ngative"
+
+#~ msgid "size of array is negative"
+#~ msgstr "taille du tableau est ngative"
+
+#~ msgid "ISO C++ forbids zero-size array `%D'"
+#~ msgstr "ISO C++ interdit les tableaux de taille zro %D "
+
+#~ msgid "ISO C++ forbids zero-size array"
+#~ msgstr "ISO C++ interdit les tableaux de taille zro"
+
+#~ msgid "size of array `%D' is not an integral constant-expression"
+#~ msgstr "taille du tableau %D n'a pas une expression de constante de type entier"
+
+#~ msgid "size of array is not an integral constant-expression"
+#~ msgstr "taille du tableau n'est pas une expression de constante de type entier"
+
+#~ msgid "ISO C++ forbids variable-size array `%D'"
+#~ msgstr "ISO C++ interdit les tableaus de taille variable %D "
+
+#~ msgid "ISO C++ forbids variable-size array"
+#~ msgstr "ISO C++ interdit le tableau de taille variable"
+
+#~ msgid "overflow in array dimension"
+#~ msgstr "dbordement dans les dimensions du tableau"
+
+#~ msgid "declaration of `%D' as %s"
+#~ msgstr "dclaration de %D comme %s "
+
+#~ msgid "creating %s"
+#~ msgstr "cration de %s"
+
+#~ msgid "declaration of `%D' as multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "dclaration de %D comme tableau multidimensionel doit avoir des bornes pour chaque dimension except pour la premire"
+
+#~ msgid "multidimensional array must have bounds for all dimensions except the first"
+#~ msgstr "tableau multidimensionel doit avoir des bornes pour chaque dimension except pour la premire"
+
+#~ msgid "return type specification for constructor invalid"
+#~ msgstr "spcification de type retourn pour un constructeur est invalide"
+
+#~ msgid "return type specification for destructor invalid"
+#~ msgstr "spcification de type retourn pour un destructeur est invalide"
+
+#~ msgid "operator `%T' declared to return `%T'"
+#~ msgstr "oprateur %T dclar comme retournant %T "
+
+#~ msgid "return type specified for `operator %T'"
+#~ msgstr "type spcifi retourn pour l'oprateur %T "
+
+#~ msgid "destructors must be member functions"
+#~ msgstr "les destructeurs doivent tre des fonctions membres"
+
+#~ msgid "destructor `%T' must match class name `%T'"
+#~ msgstr "destructeur %T doit concorder avec le nom de la classe %T "
+
+#~ msgid "declarator-id missing; using reserved word `%D'"
+#~ msgstr "declarator-id manquant; utilisation du mot rserv %D "
+
+#~ msgid "type `%T' is not derived from type `%T'"
+#~ msgstr "type %T n'est pas driv du type %T "
+
+#~ msgid "`%T' specified as declarator-id"
+#~ msgstr " %T spcifi comme declarator-id"
+
+#~ msgid " perhaps you want `%T' for a constructor"
+#~ msgstr " peut-tre que vous voulez %T comme constructeur"
+
+#~ msgid "invalid use of template-name '%E' in a declarator"
+#~ msgstr "utilisation invalide du template-name %E dans le dclarateur"
+
+#~ msgid "declaration of `%D' as non-function"
+#~ msgstr "dclaration de %D comme non-fonction"
+
+#~ msgid "`bool' is now a keyword"
+#~ msgstr " bool est maintenant un mot cl"
+
+#~ msgid "extraneous `%T' ignored"
+#~ msgstr " %T surperflu ignor"
+
+#~ msgid "multiple declarations `%T' and `%T'"
+#~ msgstr "multiples dclarations %T et %T "
+
+#~ msgid "ISO C++ does not support `long long'"
+#~ msgstr "ISO C++ ne permet pas long long "
+
+#~ msgid "ISO C++ forbids declaration of `%s' with no type"
+#~ msgstr "ISO C++ interdit la dclaration de %s sans type"
+
+#~ msgid "short, signed or unsigned invalid for `%s'"
+#~ msgstr "short, signed ou unsigned est invalide pour %s "
+
+#~ msgid "long and short specified together for `%s'"
+#~ msgstr "long et short spcifis ensembles pour %s "
+
+#~ msgid "signed and unsigned given together for `%s'"
+#~ msgstr "signed et unsigned donns ensembles pour %s "
+
+#~ msgid "qualifiers are not allowed on declaration of `operator %T'"
+#~ msgstr "qualificateurs ne sont pas permis dans la dclaration de operator %T "
+
+#~ msgid "member `%D' cannot be declared both virtual and static"
+#~ msgstr "membre %D ne peut tre dclar virtuel et statique"
+
+#~ msgid "`%T::%D' is not a valid declarator"
+#~ msgstr " %T::%D n'est pas un dclarateur valide"
+
+#~ msgid "storage class specifiers invalid in parameter declarations"
+#~ msgstr "spcificateurs de classe de stockage invalides dans la dclaration des paramtres"
+
+#~ msgid "typedef declaration invalid in parameter declaration"
+#~ msgstr "dclaration typedef invalide dans le paramtre de la dclaration"
+
+#~ msgid "virtual outside class declaration"
+#~ msgstr "virtuel en dehors de la dclaration de classe"
+
+#~ msgid "storage class specified for %s `%s'"
+#~ msgstr "classe de stockage spcifie pour %s %s "
+
+#~ msgid "top-level declaration of `%s' specifies `auto'"
+#~ msgstr "la dclaration hors de toute fonction de %s a spcifi auto "
+
+#~ msgid "storage class specifiers invalid in friend function declarations"
+#~ msgstr "spcificateurs de classe de stockage invalide dans les dclarations de fonction amie"
+
+#~ msgid "destructor cannot be static member function"
+#~ msgstr "le destructeur ne peut tre une fonction membre statique"
+
+#~ msgid "destructors may not be `%s'"
+#~ msgstr "destructeurs ne peut tre %s "
+
+#~ msgid "constructor cannot be static member function"
+#~ msgstr "le constructeur ne peut tre une fonction membre statique"
+
+#~ msgid "constructors cannot be declared virtual"
+#~ msgstr "constructeurs ne peut tre dclars virtuels"
+
+#~ msgid "constructors may not be `%s'"
+#~ msgstr "constructeurs ne peuvent pas tre %s "
+
+#~ msgid "return value type specifier for constructor ignored"
+#~ msgstr "type de valeur retourne d'un spcificateur pour un constructeur est ignor"
+
+#~ msgid "can't initialize friend function `%s'"
+#~ msgstr "ne peut initialiser la fonction amie %s "
+
+#~ msgid "virtual functions cannot be friends"
+#~ msgstr "fonctions virtuelles ne peuvent tre amies"
+
+#~ msgid "friend declaration not in class definition"
+#~ msgstr "dclaration amie n'est pas dans la dfinition de classe"
+
+#~ msgid "can't define friend function `%s' in a local class definition"
+#~ msgstr "ne peut dfinir une fonction amie %s dans une dfinition locale de classe"
+
+#~ msgid "destructors may not have parameters"
+#~ msgstr "destructeurs ne peuvent pas avoir de paramtre"
+
+#~ msgid "cannot declare reference to `%#T'"
+#~ msgstr "ne peut dclarer une rfrence vers %#T "
+
+#~ msgid "cannot declare pointer to `%#T'"
+#~ msgstr "ne peut dclarer un pointeur vers %#T "
+
+#~ msgid "cannot declare pointer to `%#T' member"
+#~ msgstr "ne peut dclarer un pointeur vers le membre %#T "
+
+#~ msgid "extra qualification `%T::' on member `%s' ignored"
+#~ msgstr "qualification additionnelle %T:: sur le membre %s est ignore"
+
+#~ msgid "cannot declare member function `%T::%s' within `%T'"
+#~ msgstr "ne peut dclarer la fonction membre %T::%s l'intrieur de %T "
+
+#~ msgid "cannot declare member `%T::%s' within `%T'"
+#~ msgstr "ne peut dclarer le membre %T::%s l'intrieur de %T "
+
+#~ msgid "data member may not have variably modified type `%T'"
+#~ msgstr "membre de donnes peut ne pas avoir de type %T modifi de manire variable"
+
+#~ msgid "parameter may not have variably modified type `%T'"
+#~ msgstr "paramtre peut ne pas avoir de type %T modifi de manire variable"
+
+#~ msgid "only declarations of constructors can be `explicit'"
+#~ msgstr "seuls les dclarations de constructeurs peuvent tre explicit "
+
+#~ msgid "non-member `%s' cannot be declared `mutable'"
+#~ msgstr "le non membre %s ne peut tre dclar mutable "
+
+#~ msgid "non-object member `%s' cannot be declared `mutable'"
+#~ msgstr "un membre non objet %s ne peut tre dclar mutable "
+
+#~ msgid "function `%s' cannot be declared `mutable'"
+#~ msgstr "fonction %s ne peut tre dclare mutable "
+
+#~ msgid "static `%s' cannot be declared `mutable'"
+#~ msgstr "static %s ne peut tre dclar mutable "
+
+#~ msgid "const `%s' cannot be declared `mutable'"
+#~ msgstr "const %s ne peut tre dclar mutable "
+
+#~ msgid "template-id `%D' used as a declarator"
+#~ msgstr "identificateur de canevas %D utilis comme dclarateur"
+
+#~ msgid "ISO C++ forbids nested type `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ interdit le type imbriqu %D avec le mme nom que la classe de fermeture"
+
+#~ msgid "%Jtypedef name may not be a nested-name-specifier"
+#~ msgstr "%Jnom du typedef peut ne pas tre un nom de spcificateur imbriqu"
+
+#~ msgid "%Jinvalid type qualifier for non-member function type"
+#~ msgstr "%Jqualificateur de type invalide pour un type de fonction non membre"
+
+#~ msgid "type qualifiers specified for friend class declaration"
+#~ msgstr "qulificateurs de types spcifis pour la dclaration d'une classe amie"
+
+#~ msgid "`inline' specified for friend class declaration"
+#~ msgstr " inline spcifi pour la dclaration d'une classe amie"
+
+#~ msgid "template parameters cannot be friends"
+#~ msgstr "paramtres du canevas ne peuvent pas tre amis"
+
+#~ msgid "friend declaration requires class-key, i.e. `friend class %T::%D'"
+#~ msgstr "dclaration ami requiert une cl de classe, i.e. friend class %T::%D "
+
+#~ msgid "friend declaration requires class-key, i.e. `friend %#T'"
+#~ msgstr "dclaration amie requiert une cl de classes, i.e. friend %#T "
+
+#~ msgid "trying to make class `%T' a friend of global scope"
+#~ msgstr "tentative de rendre la classe %T un ami de la porte globale"
+
+#~ msgid "invalid qualifiers on non-member function type"
+#~ msgstr "qualificteurs invalide pour un type de fonction (autre que fonction membre)"
+
+#~ msgid "abstract declarator `%T' used as declaration"
+#~ msgstr "dclaration abstrait %T utilis dans la dclaration"
+
+#~ msgid "unnamed variable or field declared void"
+#~ msgstr "variable non nomme ou champ dclar void"
+
+#~ msgid "variable or field declared void"
+#~ msgstr "variable ou champ dclar void"
+
+#~ msgid "cannot use `::' in parameter declaration"
+#~ msgstr "ne peut utiliser :: dans le paramtre d'un dclaration"
+
+#~ msgid "invalid use of `::'"
+#~ msgstr "utilisation invalide de :: "
+
+#~ msgid "function `%D' cannot be declared friend"
+#~ msgstr "fonction %D ne peut tre dclare amie"
+
+#~ msgid "can't make `%D' into a method -- not in a class"
+#~ msgstr "ne peut rendre %D dans la mthode -- n'est pas dans la classe"
+
+#~ msgid "function `%D' declared virtual inside a union"
+#~ msgstr "fonction %D dclar comme virtuelle l'intrieur d'un agrgat"
+
+#~ msgid "`%D' cannot be declared virtual, since it is always static"
+#~ msgstr " %D ne peut tre dclar virtuel, alors qu'il est toujours statique"
+
+#~ msgid "field `%D' has incomplete type"
+#~ msgstr "champ %D a un type incomplet"
+
+#~ msgid "name `%T' has incomplete type"
+#~ msgstr "nom %T a un type incomplet"
+
+#~ msgid " in instantiation of template `%T'"
+#~ msgstr " dans l'instanciation du canevas %T "
+
+#~ msgid "`%s' is neither function nor member function; cannot be declared friend"
+#~ msgstr " %s n'est ni une fonction ni une fonction membre ; ne peut tre dclar ami"
+
+#~ msgid "member functions are implicitly friends of their class"
+#~ msgstr "les fonctions membres sont implicitement amis de leur classe"
+
+#~ msgid "ISO C++ forbids initialization of member `%D'"
+#~ msgstr "ISO C++ interdit l'initialisation du membre %D "
+
+#~ msgid "making `%D' static"
+#~ msgstr "rendant %D statique"
+
+#~ msgid "storage class `auto' invalid for function `%s'"
+#~ msgstr "classe de stockage auto invalide pour une fonction %s "
+
+#~ msgid "storage class `register' invalid for function `%s'"
+#~ msgstr "classe de stockage register invalide pour une fonction %s "
+
+#~ msgid "storage class `__thread' invalid for function `%s'"
+#~ msgstr "classe de stockage __thread invalide pour la fonction %s "
+
+#~ msgid "storage class `static' invalid for function `%s' declared out of global scope"
+#~ msgstr "classe de stockage static invalide pour une fonction %s dclare en dehors de la porte globale"
+
+#~ msgid "storage class `inline' invalid for function `%s' declared out of global scope"
+#~ msgstr "classe de stockage inline invalide pour une fonction %s dclare en dehors de la porte globale"
+
+#~ msgid "virtual non-class function `%s'"
+#~ msgstr "fonction virtuelle d'une non classe %s "
+
+#~ msgid "cannot declare member function `%D' to have static linkage"
+#~ msgstr "ne peut dclarer la fonction membre %D comme ayant un lien statique"
+
+#~ msgid "cannot declare static function inside another function"
+#~ msgstr "ne peut dclarer une fonction statique l'intrieur d'une autre fonction"
+
+#~ msgid "`static' may not be used when defining (as opposed to declaring) a static data member"
+#~ msgstr " static ne peut pas tre utilis lors de la dfinition (contrairement la dclaration) de donnes de membres statiques"
+
+#~ msgid "static member `%D' declared `register'"
+#~ msgstr "mambre statique %D dclar register "
+
+#~ msgid "cannot explicitly declare member `%#D' to have extern linkage"
+#~ msgstr "ne peut explicitement dclarer le membre %#D comme ayant une liaison externe"
+
+#~ msgid "default argument for `%#D' has type `%T'"
+#~ msgstr "argument par dfaut pour %#D un type %T "
+
+#~ msgid "default argument for parameter of type `%T' has type `%T'"
+#~ msgstr "argument par dfaut pour le paramtre de type %T a le type %T "
+
+#~ msgid "default argument `%E' uses local variable `%D'"
+#~ msgstr "argument par dfaut %E utiliser une variable locale %D "
+
+#~ msgid "invalid string constant `%E'"
+#~ msgstr "constante chane invalide %E "
+
+#~ msgid "invalid integer constant in parameter list, did you forget to give parameter name?"
+#~ msgstr "constante entire invalide dans la liste de paramtre, avez-vous oublier de donner un nom de paramtre?"
+
+#~ msgid "parameter `%D' invalidly declared method type"
+#~ msgstr "paramtre %D incorrectement valid comme type de mthode"
+
+#~ msgid "parameter `%D' includes %s to array of unknown bound `%T'"
+#~ msgstr "paramtre %D inclut %s au tableau de bornes inconnues %T "
+
+#~ msgid "invalid constructor; you probably meant `%T (const %T&)'"
+#~ msgstr "constructeur invalide; vous vouliez probablement dire %T (const %T&) "
+
+#~ msgid "`%D' must be a nonstatic member function"
+#~ msgstr " %D doit tre une fonction membre non statique"
+
+#~ msgid "`%D' must be either a non-static member function or a non-member function"
+#~ msgstr " %D doit tre soit un membre non statique de fonction ou une fonction non membre"
+
+#~ msgid "`%D' must have an argument of class or enumerated type"
+#~ msgstr " %D doit avoir un argument de classe ou de type numr"
+
+#~ msgid "conversion to %s%s will never use a type conversion operator"
+#~ msgstr "conversion de %s%s ne sera jamais utilis dans un type d'oprateur de conversion"
+
+#~ msgid "ISO C++ prohibits overloading operator ?:"
+#~ msgstr "ISO C++ interdit la surcharge de l'oprateur ?:"
+
+#~ msgid "postfix `%D' must take `int' as its argument"
+#~ msgstr "postfixe %D doit prendre int comme argument"
+
+#~ msgid "postfix `%D' must take `int' as its second argument"
+#~ msgstr "postfixe %D doit prndre int pour son second argument"
+
+#~ msgid "`%D' must take either zero or one argument"
+#~ msgstr " %D doit prendre seulement zro ou un autre argument"
+
+#~ msgid "`%D' must take either one or two arguments"
+#~ msgstr " %D doit prendre seulement un OU deux arguments"
+
+#~ msgid "prefix `%D' should return `%T'"
+#~ msgstr "prfixe %D devrait retourner %T "
+
+#~ msgid "postfix `%D' should return `%T'"
+#~ msgstr "postfixe %D devrait retourner %T "
+
+#~ msgid "`%D' must take `void'"
+#~ msgstr " %D doit prendre void "
+
+#~ msgid "`%D' must take exactly one argument"
+#~ msgstr " %D doit prendre exactement un argument"
+
+#~ msgid "`%D' must take exactly two arguments"
+#~ msgstr " %D doit prendre exactemenr deux arguments"
+
+#~ msgid "user-defined `%D' always evaluates both arguments"
+#~ msgstr " %D dfini par l'usager value toujours les 2 arguments"
+
+#~ msgid "`%D' should return by value"
+#~ msgstr " %D devrait retourner par valeur"
+
+#~ msgid "`%D' cannot have default arguments"
+#~ msgstr " %D ne peut avoir d'arguments par dfaut"
+
+#~ msgid "using typedef-name `%D' after `%s'"
+#~ msgstr "utilisation d'un nom de typedef %D aprs %s "
+
+#~ msgid "using template type parameter `%T' after `%s'"
+#~ msgstr "utilisation de type de canevas de paramtre %T aprs %s "
+
+#~ msgid "`%T' referred to as `%s'"
+#~ msgstr " %TD rfr comme %s "
+
+#~ msgid "`%T' referred to as enum"
+#~ msgstr " %T rfr comme enum"
+
+#~ msgid "template argument required for `%s %T'"
+#~ msgstr "argument du canevas est requis pour %s %T "
+
+#~ msgid "use of enum `%#D' without previous declaration"
+#~ msgstr "utilisation de enum %#D sans dclaration prcdente"
+
+#~ msgid "derived union `%T' invalid"
+#~ msgstr "union drive %T invalide"
+
+#~ msgid "base type `%T' fails to be a struct or class type"
+#~ msgstr "type de base %T a chou pour devenir un type de classe ou un type construit"
+
+#~ msgid "recursive type `%T' undefined"
+#~ msgstr "type rcursif %T non dfini"
+
+#~ msgid "duplicate base type `%T' invalid"
+#~ msgstr "duplication du type de base %T invalide"
+
+#~ msgid "Java class '%T' cannot have multiple bases"
+#~ msgstr "classe Java %T ne peut avoir de bases multiples"
+
+#~ msgid "Java class '%T' cannot have virtual bases"
+#~ msgstr "classe Java %T ne peut avoir de bases virtuelles"
+
+#~ msgid "multiple definition of `%#T'"
+#~ msgstr "dfinition multiple de %#T "
+
+#~ msgid "%Jprevious definition here"
+#~ msgstr "%Jdfinition prcdente ici"
+
+#~ msgid "no integral type can represent all of the enumerator values for `%T'"
+#~ msgstr "aucun type entier peut reprsenter toutes les valeurs de l'numrateur pour %T "
+
+#~ msgid "enumerator value for `%D' not integer constant"
+#~ msgstr "valeur de l'numrateur pour %D n'est pas une constante entire"
+
+#~ msgid "overflow in enumeration values at `%D'"
+#~ msgstr "dbordement dans les valeurs de l'numration %D "
+
+#~ msgid "return type `%#T' is incomplete"
+#~ msgstr "type retourn %#T est incomplet"
+
+#~ msgid "return type for `main' changed to `int'"
+#~ msgstr "type retourn pour main est chang pour int "
+
+#~ msgid "`%D' implicitly declared before its definition"
+#~ msgstr " %D implicitement dclar avant sa dfinition"
+
+#~ msgid "`operator=' should return a reference to `*this'"
+#~ msgstr " operator= devrait retourner une rfrence *ceci "
+
+#~ msgid "parameter `%D' declared void"
+#~ msgstr "paramtre %D dclar void "
+
+#~ msgid "invalid member function declaration"
+#~ msgstr "dclaration de membre de fonction invalide"
+
+#~ msgid "`%D' is already defined in class `%T'"
+#~ msgstr " %D est dj dfini dans la classe %T "
+
+#~ msgid "static member function `%#D' declared with type qualifiers"
+#~ msgstr "membre de fonction statique %#D dclar avec des qualificateurs de tyep"
+
+#~ msgid "duplicate type qualifiers in %s declaration"
+#~ msgstr "qualificateurs de types dupliqus dans dclaration %s"
+
+#~ msgid "name missing for member function"
+#~ msgstr "nom manquant pour le membre d'une fonction"
+
+#~ msgid "ambiguous conversion for array subscript"
+#~ msgstr "comversion ambigue pour un sous-tableau"
+
+#~ msgid "invalid types `%T[%T]' for array subscript"
+#~ msgstr "types invalides %T[%T] pour un sous-script de tableau"
+
+#~ msgid "deleting array `%#D'"
+#~ msgstr "destruction du tableau %#D "
+
+#~ msgid "type `%#T' argument given to `delete', expected pointer"
+#~ msgstr "type %#T de l'argument donn pour delete , attendait un pointeur"
+
+#~ msgid "cannot delete a function. Only pointer-to-objects are valid arguments to `delete'"
+#~ msgstr "ne peut dtruire une fonction. Seuls les pointeurs-d'objets sont des arguments valable pour destruction"
+
+#~ msgid "deleting `%T' is undefined"
+#~ msgstr "destruction de %T est indfinie"
+
+#~ msgid "invalid declaration of member template `%#D' in local class"
+#~ msgstr "dclaration invalide du canevas de membre %#D dans la classe locale"
+
+#~ msgid "invalid use of `virtual' in template declaration of `%#D'"
+#~ msgstr "utilisation invalide de virtual dans la dclaration d'un canevas de %#D "
+
+#~ msgid "template declaration of `%#D'"
+#~ msgstr "dclaration du canevas de %#D "
+
+#~ msgid "Java method '%D' has non-Java return type `%T'"
+#~ msgstr "mthode Java %D a un type non Java retourn %T "
+
+#~ msgid "Java method '%D' has non-Java parameter type `%T'"
+#~ msgstr "mthode Java %D a un paramtre non Java de type %T "
+
+#~ msgid "prototype for `%#D' does not match any in class `%T'"
+#~ msgstr "prototype pour %#D ne concorde avec aucun dans la classe %T "
+
+#~ msgid "local class `%#T' shall not have static data member `%#D'"
+#~ msgstr "la classe locale %#T ne doit pas tre un membre de donnes statiques de %#D "
+
+#~ msgid "initializer invalid for static member with constructor"
+#~ msgstr "initialisation invalide pour un membre statique avec constructeur"
+
+#~ msgid "(an out of class initialization is required)"
+#~ msgstr "(une initialisation en dehors de la classe est requise)"
+
+#~ msgid "member `%D' conflicts with virtual function table field name"
+#~ msgstr "membre %D en conflit avec un nom de champ de table d'une fonction virtuelle"
+
+#~ msgid "`%D' is already defined in `%T'"
+#~ msgstr " %D est dj dfini dans %T "
+
+#~ msgid "field initializer is not constant"
+#~ msgstr "l'initialisation du champ n'est pas une constante"
+
+#~ msgid "`asm' specifiers are not permitted on non-static data members"
+#~ msgstr "spcificateurs asm ne sont pas permis pour des donnes de membres non statiques"
+
+#~ msgid "cannot declare `%D' to be a bit-field type"
+#~ msgstr "ne peut dclarer %D comme tant un type de champ de bits"
+
+#~ msgid "cannot declare bit-field `%D' with function type"
+#~ msgstr "ne peut dclarer un champ de bits %D avec un type de fonction"
+
+#~ msgid "`%D' is already defined in the class %T"
+#~ msgstr " %D est dj dfini dans la classe %T"
+
+#~ msgid "static member `%D' cannot be a bit-field"
+#~ msgstr "membre statique %D ne peut tre un champ de bits"
+
+#~ msgid "initializer specified for non-member function `%D'"
+#~ msgstr "initialisation spcifie pour une fonction %D n'tant pas membre"
+
+#~ msgid "invalid initializer for virtual method `%D'"
+#~ msgstr "initialisation invalide pour la mthode virtuelle %D "
+
+#~ msgid "anonymous struct not inside named type"
+#~ msgstr "struct anonyme n'est pas l'intrieur du type nomm"
+
+#~ msgid "namespace-scope anonymous aggregates must be static"
+#~ msgstr "aggrgats anonymes de champs d'espace nom doit tre statique"
+
+#~ msgid "anonymous union with no members"
+#~ msgstr "aggrgat anonyme sans aucun membre"
+
+#~ msgid "`operator new' must return type `%T'"
+#~ msgstr " operator new doit retourner un type %T "
+
+#~ msgid "`operator new' takes type `size_t' (`%T') as first parameter"
+#~ msgstr " operator new prend le type size_t ( %T ) comme premier paramtre"
+
+#~ msgid "`operator delete' must return type `%T'"
+#~ msgstr " operator delete doit retourner le type %T "
+
+#~ msgid "`operator delete' takes type `%T' as first parameter"
+#~ msgstr " operator delete prend le type %T comme premier paramtre"
+
+#~ msgid "inline function `%D' used but never defined"
+#~ msgstr "fonction enligne %D utilis mais n'a jamais t dfini"
+
+#~ msgid "default argument missing for parameter %P of `%+#D'"
+#~ msgstr "argument par dfaut manquant pour le paramtre %P de %+#D "
+
+#~ msgid "unexpected letter `%c' in locate_error\n"
+#~ msgstr "lettre inattendue %c dans locate_error\n"
+
+#~ msgid "type `%T' is disallowed in Java `throw' or `catch'"
+#~ msgstr "type %T n'est pas permis en Java throw ou catch "
+
+#~ msgid "call to Java `catch' or `throw' with `jthrowable' undefined"
+#~ msgstr "appel en Java de catch ou throw avec jthrowable undfini"
+
+#~ msgid "type `%T' is not derived from `java::lang::Throwable'"
+#~ msgstr "type %T n'est pas driv de java::lang::Throwable "
+
+#~ msgid "mixing C++ and Java catches in a single translation unit"
+#~ msgstr "mlange des interceptions C++ et Java dans une unit simple de traduction "
+
+#~ msgid "throwing NULL, which has integral, not pointer type"
+#~ msgstr "retounrnant NULL (par throw), lequel est entier, pas de type pointeur"
+
+#~ msgid "`%D' should never be overloaded"
+#~ msgstr " %D ne devrait jamais tre surcharg"
+
+#~ msgid " in thrown expression"
+#~ msgstr " dans l'expression projete"
+
+#~ msgid "expression '%E' of abstract class type '%T' cannot be used in throw-expression"
+#~ msgstr "expression %E de la classe abstraite de type %T ne peut tre utilis dans une expression throw"
+
+#~ msgid "exception of type `%T' will be caught"
+#~ msgstr "exception du type %T sera intercepte"
+
+#~ msgid " by earlier handler for `%T'"
+#~ msgstr " par un handler antrieur pour %T "
+
+#~ msgid "`...' handler must be the last handler for its try block"
+#~ msgstr " ... handler doit tre le dernier handler de son bloc d'essai"
+
+#~ msgid "`%D' is already a friend of class `%T'"
+#~ msgstr " %D est dj un ami de la classe %T "
+
+#~ msgid "invalid type `%T' declared `friend'"
+#~ msgstr "type invalide %T dclar friend "
+
+#~ msgid "partial specialization `%T' declared `friend'"
+#~ msgstr "spcialisation partielle %T dclare friend "
+
+#~ msgid "class `%T' is implicitly friends with itself"
+#~ msgstr "classe %T est implicitement ami avec elle-mme"
+
+#~ msgid "typename type `%#T' declared `friend'"
+#~ msgstr "type typename %#T dclar friend "
+
+#~ msgid "template parameter type `%T' declared `friend'"
+#~ msgstr "type paramtre du canevas %T dclar friend "
+
+#~ msgid "`%#T' is not a template"
+#~ msgstr " %#T n'est pas un canevas"
+
+#~ msgid "`%D' is already a friend of `%T'"
+#~ msgstr " %D est dj un ami de %T "
+
+#~ msgid "`%T' is already a friend of `%T'"
+#~ msgstr " %T est dj un ami de %T "
+
+#~ msgid "member `%D' declared as friend before type `%T' defined"
+#~ msgstr "membre %D dclar comme ami avant la dfinition du type %T "
+
+#~ msgid "friend declaration `%#D' declares a non-template function"
+#~ msgstr "dclaration amie %#D dclare une fonction non canevas"
+
+#~ msgid "(if this is not what you intended, make sure the function template has already been declared and add <> after the function name here) -Wno-non-template-friend disables this warning"
+#~ msgstr "(si ce n'est pas ce que vous vouliez faire, soyez sr que le canevas de la fonction a dj t dclar et ajouter <> aprs le nom de la fonction ici) -Wno-non-template-friend dsactive le prsent avertissement"
+
+#~ msgid "argument to `%s' missing\n"
+#~ msgstr "argument pour %s est manquant\n"
+
+#~ msgid "`%D' should be initialized in the member initialization list"
+#~ msgstr " %D devrait tre initialis dans la liste d'initialisation du membre"
+
+#~ msgid "default-initialization of `%#D', which has reference type"
+#~ msgstr "initialisation par dfaut de %#D , lequel a un type rfrenc"
+
+#~ msgid "uninitialized reference member `%D'"
+#~ msgstr "rfrence de membre non initialis %D "
+
+#~ msgid "uninitialized member `%D' with `const' type `%T'"
+#~ msgstr "membre non initialis %D avec const type %T "
+
+#~ msgid "`%D' will be initialized after"
+#~ msgstr " %D sera initialis aprs"
+
+#~ msgid "base `%T' will be initialized after"
+#~ msgstr "base %T sera initialis aprs"
+
+#~ msgid " `%#D'"
+#~ msgstr " %D "
+
+#~ msgid " base `%T'"
+#~ msgstr " base %T "
+
+#~ msgid " when initialized here"
+#~ msgstr " lorsqu'initialis ici"
+
+#~ msgid "multiple initializations given for `%D'"
+#~ msgstr "multiples initialisations donnes pour %D "
+
+#~ msgid "multiple initializations given for base `%T'"
+#~ msgstr "multiples initialisations donnes pour base %T "
+
+#~ msgid "initializations for multiple members of `%T'"
+#~ msgstr "initialisation de multiples membres de %T "
+
+#~ msgid "base class `%#T' should be explicitly initialized in the copy constructor"
+#~ msgstr "classe de base %#T devrait tre explicitement initialis dans la copie du constructeur"
+
+#~ msgid "class `%T' does not have any field named `%D'"
+#~ msgstr "classe %T n'a pas aucun champ nomm %D "
+
+#~ msgid "`%#D' is a static data member; it can only be initialized at its definition"
+#~ msgstr " %#D est un membre statique de donnes; il peut seulement tre initialise lors de sa dfinition"
+
+#~ msgid "`%#D' is not a non-static data member of `%T'"
+#~ msgstr " %#D n'est pas un membre statique de donnes de %T "
+
+#~ msgid "unnamed initializer for `%T', which has no base classes"
+#~ msgstr "initialiseur sans nom pour %T , lequel n'a pas de classe de base"
+
+#~ msgid "unnamed initializer for `%T', which uses multiple inheritance"
+#~ msgstr "initialiseur sans nom pour %T , lequel utilise de multiples hritages"
+
+#~ msgid "'%D' is both a direct base and an indirect virtual base"
+#~ msgstr " %D est la fois une base directe et indirecte virtuelle"
+
+#~ msgid "type `%D' is not a direct or virtual base of `%T'"
+#~ msgstr "type %D n'est pas une base directe ou virtuelle de %T "
+
+#~ msgid "type `%D' is not a direct base of `%T'"
+#~ msgstr "type %D n'est pas une base directe de %T "
+
+#~ msgid "bad array initializer"
+#~ msgstr "mauvaise initialisation de tableau"
+
+#~ msgid "`%T' is not an aggregate type"
+#~ msgstr " %T n'est pas de type aggrgat"
+
+#~ msgid "`%T' fails to be an aggregate typedef"
+#~ msgstr " %T a chou tre un typedef d'aggrgat"
+
+#~ msgid "type `%T' is of non-aggregate type"
+#~ msgstr "type %T est un type qui n'est pas d'aggrgat"
+
+#~ msgid "qualified type `%T' does not match destructor name `~%T'"
+#~ msgstr "type qualif %T ne concorde pas le nom du destructeur ~%T"
+
+#~ msgid "incomplete type `%T' does not have member `%D'"
+#~ msgstr "type incomplet %T n'a pas de membre %D "
+
+#~ msgid "`%D' is not a member of type `%T'"
+#~ msgstr " %D n'est pas un membre de type %T "
+
+#~ msgid "invalid pointer to bit-field `%D'"
+#~ msgstr "pointeur invalide pour un champ de bits %D "
+
+#~ msgid "invalid use of non-static member function `%D'"
+#~ msgstr "utilisation invalide d'un membre non statique de fonction %D "
+
+#~ msgid "invalid use of non-static data member `%D'"
+#~ msgstr "utilisation invalide d'un membre non statique de donnes %D "
+
+#~ msgid "new of array type fails to specify size"
+#~ msgstr "new sur un type tableau a chou dans l'valuation de la taille"
+
+#~ msgid "size in array new must have integral type"
+#~ msgstr "taille d'un nouveau tableau (new) doit avoir un type entier"
+
+#~ msgid "zero size array reserves no space"
+#~ msgstr "tableau de taille zro ne rserve pas d'espace"
+
+#~ msgid "new cannot be applied to a reference type"
+#~ msgstr "new ne peut tre appliqu un type rfrenc"
+
+#~ msgid "new cannot be applied to a function type"
+#~ msgstr "new ne peut tre appliqu un type de fonction"
+
+#~ msgid "call to Java constructor, while `jclass' undefined"
+#~ msgstr "appel d'un constructeur Java, alors que jclass est indfini"
+
+#~ msgid "can't find class$"
+#~ msgstr "ne peut reprer class$"
+
+#~ msgid "invalid type `void' for new"
+#~ msgstr "type void invalide pour new"
+
+#~ msgid "uninitialized const in `new' of `%#T'"
+#~ msgstr "constante non initialise dans new pour %#T "
+
+#~ msgid "call to Java constructor with `%s' undefined"
+#~ msgstr "appel au constructeur Java avec %s indfini"
+
+#~ msgid "request for member `%D' is ambiguous"
+#~ msgstr "la requte pour le membre %D est ambigu"
+
+#~ msgid "ISO C++ forbids initialization in array new"
+#~ msgstr "ISO C++ interdit l'initialisation d'un nouveau tableau"
+
+#~ msgid "initializer ends prematurely"
+#~ msgstr "fin prmature de l'initialisation"
+
+#~ msgid "cannot initialize multi-dimensional array with initializer"
+#~ msgstr "ne peut initialiser un table multi-dimensionnel avec initialiseur"
+
+#~ msgid "possible problem detected in invocation of delete operator:"
+#~ msgstr "problme possible dtect dans l'invocation de l'oprateur delete:"
+
+#~ msgid "neither the destructor nor the class-specific "
+#~ msgstr "ni le destructeur ni la classe spcifique"
+
+#~ msgid "operator delete will be called, even if they are "
+#~ msgstr "l'oprateur de destruction sera appell, mme s'ils sont "
+
+#~ msgid "declared when the class is defined."
+#~ msgstr "dclars lorsque la classe est dfinie."
+
+#~ msgid "unknown array size in delete"
+#~ msgstr "taille du tableau inconnue dans delete"
+
+#~ msgid "type to vector delete is neither pointer or array type"
+#~ msgstr "type du vesteur delete n'est ni un pointeur ou un type tableau"
+
+#~ msgid "type name expected before `*'"
+#~ msgstr "nom de type attendu avec *"
+
+#~ msgid "junk at end of #pragma %s"
+#~ msgstr "rebut la fin de #pragma %s"
+
+#~ msgid "invalid #pragma %s"
+#~ msgstr "#pragma %s invalde"
+
+#~ msgid "#pragma vtable no longer supported"
+#~ msgstr "#pragma vtable n'est plus support"
+
+#~ msgid "#pragma implementation for %s appears after file is included"
+#~ msgstr "implantation de #pragma pour %s apparat aprs l'inclusion du fichier"
+
+#~ msgid "junk at end of #pragma GCC java_exceptions"
+#~ msgstr "rebut la fin de #pragma GCC java_exceptions"
+
+#~ msgid "`%D' not defined"
+#~ msgstr " %D n'est pas dfini"
+
+#~ msgid "`%D' was not declared in this scope"
+#~ msgstr " %D n'a pas t dclar dans cet horizon"
+
+#~ msgid "`%D' undeclared (first use this function)"
+#~ msgstr " %D non dclar (premire utilisation dans cette fonction)"
+
+#~ msgid "(Each undeclared identifier is reported only once for each function it appears in.)"
+#~ msgstr "(Chaque identificateur non dclar est rapport seulement une seule fois pour la fonction dans laquelle il apparat.)"
+
+#~ msgid "there are no arguments to `%D' that depend on a template parameter, so a declaration of `%D' must be available"
+#~ msgstr "il n'y a pas d'argument %D qui dpend d'un paramtre du canevas, aussi une dclaration de %D doit tre disponible"
+
+#~ msgid "(if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)"
+#~ msgstr "(si vous utilisez -fpermissive , G++ acceptera votre core, mais permettre l'utilisation d'un nom non dclar est obsolte)"
+
+#~ msgid "call_expr cannot be mangled due to a defect in the C++ ABI"
+#~ msgstr "call_expr ne peut tre mutil en raison d'un faute dans l'ABI C++"
+
+#~ msgid "omitted middle operand to `?:' operand cannot be mangled"
+#~ msgstr "oprande du milieu ?: omise, l'oprande ne peut tre mutile"
+
+#~ msgid "the mangled name of `%D' will change in a future version of GCC"
+#~ msgstr "le nom mutil de %D sera modifi dans une version future de GCC"
+
+#~ msgid "generic thunk code fails for method `%#D' which uses `...'"
+#~ msgstr "code thunk gnrique a chou pour la mthode %#D laquelle utilise ... "
+
+#~ msgid "non-static const member `%#D', can't use default assignment operator"
+#~ msgstr "constante non statique du membre %#D , ne peut utiliser l'oprateur d'affectation par dfaut"
+
+#~ msgid "non-static reference member `%#D', can't use default assignment operator"
+#~ msgstr "rfrence non statique du membre %#D , ne peut utiliser l'oprateur d'affectation par dfaut"
+
+#~ msgid "`%#D' used prior to declaration"
+#~ msgstr " %#D utilis prcdemment avant sa dclaration"
+
+#~ msgid "redeclaration of `wchar_t' as `%T'"
+#~ msgstr "redclaration de wchar_t comme %T "
+
+#~ msgid "invalid redeclaration of `%D'"
+#~ msgstr "redclaration invalide de %D "
+
+#~ msgid "as `%D'"
+#~ msgstr "comme %D "
+
+#~ msgid "type mismatch with previous external decl of `%#D'"
+#~ msgstr "non concordance de type avec la dclaration externe prcdente de %D "
+
+#~ msgid "previous external decl of `%#D'"
+#~ msgstr "dclaration externe prcdente de %#D "
+
+#~ msgid "`%D' was previously implicitly declared to return `int'"
+#~ msgstr " %D a t prcdemment implicitement dclar comme retournant un entier"
+
+#~ msgid "extern declaration of `%#D' doesn't match"
+#~ msgstr "dclaration externe de %#D ne concorde pas"
+
+#~ msgid "global declaration `%#D'"
+#~ msgstr "dclaration globale %#D "
+
+#~ msgid "declaration of '%#D' shadows a parameter"
+#~ msgstr "dclaration de %#D masque un paramtre"
+
+#~ msgid "declaration of '%D' shadows a member of 'this'"
+#~ msgstr "dclaration de %D masque un membre de this "
+
+#~ msgid "declaration of '%D' shadows a previous local"
+#~ msgstr "dclaration de %D masque la dclaration d'un local prcdent"
+
+#~ msgid "declaration of '%D' shadows a global declaration"
+#~ msgstr "dclaration de %D masque une dclaration globale"
+
+#~ msgid "name lookup of `%D' changed"
+#~ msgstr "recherche du nom %D a chang"
+
+#~ msgid " matches this `%D' under ISO standard rules"
+#~ msgstr " concorde avec %D selon les rgles standards ISO"
+
+#~ msgid " matches this `%D' under old rules"
+#~ msgstr " concorde avec %D selon les vieilles rgles"
+
+#~ msgid "name lookup of `%D' changed for new ISO `for' scoping"
+#~ msgstr "recherche du nom de %D chang pour la nouvelle tendue ISO pour le for "
+
+#~ msgid " cannot use obsolete binding at `%D' because it has a destructor"
+#~ msgstr " ne peut utiliser une liaison obsolte %D parce qu'il a un destructeur"
+
+#~ msgid " using obsolete binding at `%D'"
+#~ msgstr " utilisation de liaison obsolte %D "
+
+#~ msgid "%s %s(%E) %p %d\n"
+#~ msgstr "%s %s(%E) %p %d\n"
+
+#~ msgid "%s %s %p %d\n"
+#~ msgstr "%s %s %p %d\n"
+
+#~ msgid "XXX is_class_level != (current_scope == class_scope)\n"
+#~ msgstr "XXX is_class_level != (current_scope == class_scope)\n"
+
+#~ msgid "`%#D' hides constructor for `%#T'"
+#~ msgstr " %#D cache un constructeur pour %#T "
+
+#~ msgid "`%#D' conflicts with previous using declaration `%#D'"
+#~ msgstr " %#D en conflit avec une dclaration prcdente %#D "
+
+#~ msgid "previous non-function declaration `%#D'"
+#~ msgstr "dclaration prcdente d'un non fonction %#D "
+
+#~ msgid "conflicts with function declaration `%#D'"
+#~ msgstr "conflits avec la dclaration de fonction de %#D "
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %D'"
+#~ msgstr "l'utilisation d'une dclaration ne peut spcifier un template-id. Essayer using %D "
+
+#~ msgid "namespace `%D' not allowed in using-declaration"
+#~ msgstr "espace de noms %D n'est pas permis dans l'utilisation d'une dclaration"
+
+#~ msgid "`%T' is not a namespace"
+#~ msgstr " %T n'est pas un espace de noms"
+
+#~ msgid "`%D' not declared"
+#~ msgstr " %D n'est pas dclar"
+
+#~ msgid "`%D' is already declared in this scope"
+#~ msgstr " %D est dj dclar dans cette porte"
+
+#~ msgid "using declaration `%D' introduced ambiguous type `%T'"
+#~ msgstr "l'utlisation de la dclaration %D introduit un type ambigu %T "
+
+#~ msgid "`%#D' redeclared as %C"
+#~ msgstr " %#D rdclar comme %C"
+
+#~ msgid "`%D' has the same name as the class in which it is declared"
+#~ msgstr " %D a le mme nom que la classe dans laquelle il est dclar"
+
+#~ msgid "using-declaration for non-member at class scope"
+#~ msgstr "l'utilisation de dclaration pour un non membre au niveau de la porte de la classe"
+
+#~ msgid "using-declaration cannot name destructor"
+#~ msgstr "utilisation de dclaration ne peut nommer le destructeur"
+
+#~ msgid "declaration of `%D' not in a namespace surrounding `%D'"
+#~ msgstr "dclaration de %D n'est pas dans l'espace de noms entourant %D "
+
+#~ msgid "`%D' should have been declared inside `%D'"
+#~ msgstr " %D devrait avoir t dclar l'intrieur de %D "
+
+#~ msgid "namespace alias `%D' not allowed here, assuming `%D'"
+#~ msgstr "alias d'espace de noms %D n'est pas permis ici, on assume %D "
+
+#~ msgid "unknown namespace `%D'"
+#~ msgstr "espace de nomes inconnu %D "
+
+#~ msgid "namespace `%T' undeclared"
+#~ msgstr "espace de noms %T n'est pas dclar"
+
+#~ msgid "strong using only meaningful at namespace scope"
+#~ msgstr "forte n'ayant un sens seulement sur l'tendue de l'espace nom"
+
+#~ msgid "`%D' attribute directive ignored"
+#~ msgstr " %D attribut de directive ignor"
+
+#~ msgid "use of `%D' is ambiguous"
+#~ msgstr "utilisation de %D est ambigu"
+
+#~ msgid " first declared as `%#D' here"
+#~ msgstr " d'abord dclar comme %#D ici"
+
+#~ msgid " also declared as `%#D' here"
+#~ msgstr " aussi dclar comme %#D ici"
+
+#~ msgid "`%D' denotes an ambiguous type"
+#~ msgstr " %D dnote un type ambigu"
+
+#~ msgid "%J first type here"
+#~ msgstr "%J premier type ici"
+
+#~ msgid "%J other type here"
+#~ msgstr "%J autre type ici"
+
+#~ msgid "invalid use of `%D'"
+#~ msgstr "utilisation invalide de %D "
+
+#~ msgid "`%D::%D' is not a template"
+#~ msgstr " %D::%D n'est pas un canevas"
+
+#~ msgid "`%D' undeclared in namespace `%D'"
+#~ msgstr " %D non dclar dans l'espace de noms %D "
+
+#~ msgid "`%D' is not a function,"
+#~ msgstr " %D n'est pas une fonction"
+
+#~ msgid " conflict with `%D'"
+#~ msgstr " en conflit avec %D "
+
+#~ msgid "XXX entering pop_everything ()\n"
+#~ msgstr "XXX on entre dans pop_everything ()\n"
+
+#~ msgid "XXX leaving pop_everything ()\n"
+#~ msgstr "XXX on quitte pop_everything ()\n"
+
+#~ msgid "invalid token"
+#~ msgstr "jeton invalide"
+
+#~ msgid "`%D::%D' has not been declared"
+#~ msgstr " %D::%D n'a pas t dclar"
+
+#~ msgid "`::%D' has not been declared"
+#~ msgstr " ::%D n'a pas t dclar"
+
+#~ msgid "`%D' has not been declared"
+#~ msgstr " %D n'a pas t dclar"
+
+#~ msgid "`%D::%D' %s"
+#~ msgstr " %D::%D %s"
+
+#~ msgid "`::%D' %s"
+#~ msgstr " ::%D %s"
+
+#~ msgid "`%D' %s"
+#~ msgstr " %D %s"
+
+#~ msgid "new types may not be defined in a return type"
+#~ msgstr "nouveaux types ne peuvent tre dfinis dans un type retourner"
+
+#~ msgid "`%T' is not a template"
+#~ msgstr " %T n'est pas un canevas"
+
+#~ msgid "invalid template-id"
+#~ msgstr "id de canevas invalide"
+
+#~ msgid "%s cannot appear in a constant-expression"
+#~ msgstr "%s ne peut apparatre dans une expression de constante"
+
+#~ msgid "`%s' does not name a type"
+#~ msgstr " %s ne nomme pas un type"
+
+#~ msgid "(perhaps `typename %T::%s' was intended)"
+#~ msgstr "(peut-tre typename %T::%s tait votre intention"
+
+#~ msgid "ISO C++ forbids braced-groups within expressions"
+#~ msgstr "ISO C++ interdit les groupes d'accolades l'intrieur des expressions"
+
+#~ msgid "statement-expressions are allowed only inside functions"
+#~ msgstr "expression de dclaration sont permises seulement l'intrieur de fonctions"
+
+#~ msgid "`this' may not be used in this context"
+#~ msgstr " cela ne peut tre utilis dans ce contexte"
+
+#~ msgid "local variable `%D' may not appear in this context"
+#~ msgstr "variable locale %D ne peut apparatre dans ce contexte"
+
+#~ msgid "typedef-name `%D' used as destructor declarator"
+#~ msgstr "nom du typdef %D utilis comme dclarateur de destructeur"
+
+#~ msgid "ISO C++ forbids compound-literals"
+#~ msgstr "ISO C++ interdit les chanes composes"
+
+#~ msgid "array bound forbidden after parenthesized type-id"
+#~ msgstr "les limites du tableau interdisent ce qui suit aprs le type-id mis entre parenthses"
+
+#~ msgid "try removing the parentheses around the type-id"
+#~ msgstr "essayer d'enlever les parenthses autour du type-id"
+
+#~ msgid "expression in new-declarator must have integral or enumeration type"
+#~ msgstr "expression dans le nouveau dclarateur doit tre un type entier ou d'numration"
+
+#~ msgid "use of old-style cast"
+#~ msgstr "utilisation d'un vieux style de transtypage (cast)"
+
+#~ msgid "case label `%E' not within a switch statement"
+#~ msgstr "tiquette du CASE %E n'est pas l'intrieur de la dclaration du SWITCH"
+
+#~ msgid "ISO C++ forbids computed gotos"
+#~ msgstr "ISO C++ interdit les gotos calculs"
+
+#~ msgid "extra `;'"
+#~ msgstr " ; superflu"
+
+#~ msgid "mixing declarations and function-definitions is forbidden"
+#~ msgstr "mlange de dclarations et de dfinitions de fonction est interdit"
+
+#~ msgid "duplicate `friend'"
+#~ msgstr " friend apparat en double"
+
+#~ msgid "class definition may not be declared a friend"
+#~ msgstr "dfinition de classe ne peut pas tre dclar comme ami"
+
+#~ msgid "only constructors take base initializers"
+#~ msgstr "seuls les constructeurs prennent des initialiseurs de base"
+
+#~ msgid "anachronistic old-style base class initializer"
+#~ msgstr "ancien style anachronique d'initialiseur de classe de base"
+
+#~ msgid "keyword `export' not implemented, and will be ignored"
+#~ msgstr "mot cl export n'est pas implant et sera ignor"
+
+#~ msgid "`<::' cannot begin a template-argument list"
+#~ msgstr " <:: ne peut pas tre au dbut d'une liste d'un canevas d'arguments"
+
+#~ msgid "`<:' is an alternate spelling for `['. Insert whitespace between `<' and `::'"
+#~ msgstr " <: est une pellation alternative pour [ . Insrer des blancs d,espacement entre < et :: "
+
+#~ msgid "(if you use `-fpermissive' G++ will accept your code)"
+#~ msgstr "(si vous utiliser -fpermissive G++ acceptera votre code)"
+
+#~ msgid "non-template `%D' used as template"
+#~ msgstr " %D qui n'est pas un canevas est utilis comme canevas"
+
+#~ msgid "(use `%T::template %D' to indicate that it is a template)"
+#~ msgstr "(utiliser %T::template %D pour indiquer que c'est un canevas)"
+
+#~ msgid "using `typename' outside of template"
+#~ msgstr "utilisation de typename en dehors du canevas"
+
+#~ msgid "expected type-name"
+#~ msgstr "un nom de type attendu"
+
+#~ msgid "type attributes are honored only at type definition"
+#~ msgstr "type d'attributs sont honors seulement lors de la dfinitions de type"
+
+#~ msgid "a template-id may not appear in a using-declaration"
+#~ msgstr "un id de canevas ne peut pas apparatre dans l'utilisation de la dclaration"
+
+#~ msgid "an asm-specification is not allowed on a function-definition"
+#~ msgstr "une spcification asm n'est pas permise dans la dfinition de fonction"
+
+#~ msgid "attributes are not allowed on a function-definition"
+#~ msgstr "attributs ne sont pas permis dans la dfinition de fonction"
+
+#~ msgid "attributes after parenthesized initializer ignored"
+#~ msgstr "attributs aprs l'initialisateur mis entre parenthses sont ignors"
+
+#~ msgid "file ends in default argument"
+#~ msgstr "fin de fichier dans l'argument par dfaut"
+
+#~ msgid "deprecated use of default argument for parameter of non-function"
+#~ msgstr "utilisation de l'argument par dfaut pour un paramtre d'une non fonction"
+
+#~ msgid "default arguments are only permitted for function parameters"
+#~ msgstr "arguments par dfaut sont permis seulement pour les paramtres de fonction"
+
+#~ msgid "declaration of `%D' in `%D' which does not enclose `%D'"
+#~ msgstr "dclaration de %D dans %D lequel n'entoure pas %D "
+
+#~ msgid "extra qualification ignored"
+#~ msgstr "qualification superflue ignore"
+
+#~ msgid "an explicit specialization must be preceded by 'template <>'"
+#~ msgstr "spcialisation explicite doit tre prcd par template <> "
+
+#~ msgid "extra semicolon"
+#~ msgstr " ; superflu"
+
+#~ msgid "a class-key must be used when declaring a friend"
+#~ msgstr "une cl de classe doit tre utilise lors de la dclaration d'un ami"
+
+#~ msgid "friend declaration does not name a class or function"
+#~ msgstr "dclaration amie ne nomme pas une classe ou une fonction"
+
+#~ msgid "pure-specifier on function-definition"
+#~ msgstr "spcificateur pur lors de la dfinition d'une fonction"
+
+#~ msgid "keyword `typename' not allowed outside of templates"
+#~ msgstr "mot cl typename n'est pas permis en dehors du canevas"
+
+#~ msgid "keyword `typename' not allowed in this context (the base class is implicitly a type)"
+#~ msgstr "mot cl typename n'est pas permis dans ce contexte (la classe de base est implicitement un type)"
+
+#~ msgid "reference to `%D' is ambiguous"
+#~ msgstr "rfrence %D est ambigu"
+
+#~ msgid "too few template-parameter-lists"
+#~ msgstr "trop peu de canevas de listes de paramtres"
+
+#~ msgid "too many template-parameter-lists"
+#~ msgstr "trop de canevas de listes de paramtres"
+
+#~ msgid "invalid function declaration"
+#~ msgstr "dclaration de fonction invalide"
+
+#~ msgid "named return values are no longer supported"
+#~ msgstr "valeurs nommes retourner ne sont plus supportes"
+
+#~ msgid "`>>' should be `> >' within a nested template argument list"
+#~ msgstr " >> devrait tre > > l'intrieur du canevas de la liste d'arguments"
+
+#~ msgid "spurious `>>', use `>' to terminate a template argument list"
+#~ msgstr "faux >> , utiliser > pour terminer la liste d'argument du canevas"
+
+#~ msgid "missing `>' to terminate the template argument list"
+#~ msgstr " > manquant pour terminer la liste d'argument du canevas"
+
+#~ msgid "`%s' tag used in naming `%#T'"
+#~ msgstr "tiquette %s utilise dans la dnomination de %#T "
+
+#~ msgid "%D redeclared with different access"
+#~ msgstr " %#D redclar avec un accs diffrent"
+
+#~ msgid "`template' (as a disambiguator) is only allowed within templates"
+#~ msgstr " template (afin de rendre moins ambigu) est seulement permis l'intrieur des canevas"
+
+#~ msgid "data member `%D' cannot be a member template"
+#~ msgstr "membre de donnes %D ne peut tre membre du canevas"
+
+#~ msgid "invalid member template declaration `%D'"
+#~ msgstr "dclaration de membre de canevas invalide %D "
+
+#~ msgid "explicit specialization in non-namespace scope `%D'"
+#~ msgstr "spcialisation explicite dans la porte d'un non espace de noms %D "
+
+#~ msgid "enclosing class templates are not explicitly specialized"
+#~ msgstr "fermetures de canevass de classe ne sont pas explicitement spcialises"
+
+#~ msgid "specializing `%#T' in different namespace"
+#~ msgstr "spcialisation de %#T dans diffrents espaces de noms"
+
+#~ msgid " from definition of `%#D'"
+#~ msgstr " partir de la dfinition de %#D "
+
+#~ msgid "specialization of `%T' after instantiation"
+#~ msgstr "spcialisation de %T aprs instanciation"
+
+#~ msgid "specialization `%T' after instantiation `%T'"
+#~ msgstr "spcialisation de %T aprs instanciation %T "
+
+#~ msgid "explicit specialization of non-template `%T'"
+#~ msgstr "spcialisation explicite du non canevas %T "
+
+#~ msgid "specialization of %D after instantiation"
+#~ msgstr "spcialisation de %D aprs instanciation"
+
+#~ msgid "%s %+#D"
+#~ msgstr "%s %+#D"
+
+#~ msgid "`%D' is not a function template"
+#~ msgstr " %D n'est pas un canevas de fonction"
+
+#~ msgid "template-id `%D' for `%+D' does not match any template declaration"
+#~ msgstr "template-id %D pour %+D ne concorde pas avec aucune dclaration de canevas"
+
+#~ msgid "ambiguous template specialization `%D' for `%+D'"
+#~ msgstr "spcialisation de canevas amibigu %D pour %+D "
+
+#~ msgid "template-id `%D' in declaration of primary template"
+#~ msgstr "template-id %D dans la dclaration de canevas primaire"
+
+#~ msgid "template parameter list used in explicit instantiation"
+#~ msgstr "canevas de liste de paramtres utilis dans une instanciation explicite"
+
+#~ msgid "definition provided for explicit instantiation"
+#~ msgstr "dfinition fournie pour une instanciation explicite"
+
+#~ msgid "too many template parameter lists in declaration of `%D'"
+#~ msgstr "trop de canevass de listes de paramtres dans la dclaration de %D "
+
+#~ msgid "too few template parameter lists in declaration of `%D'"
+#~ msgstr "trop peu de canevass de listes de paramtres dans la dclaration de %D "
+
+#~ msgid "explicit specialization not preceded by `template <>'"
+#~ msgstr "spcialisation explicite n'est pas prcde de template <> "
+
+#~ msgid "partial specialization `%D' of function template"
+#~ msgstr "spcialisation partielle %D du canevas de fonction"
+
+#~ msgid "default argument specified in explicit specialization"
+#~ msgstr "argument par dfaut spcifi dans la spcialisation explicite"
+
+#~ msgid "template specialization with C linkage"
+#~ msgstr "spcialisation de canevas avec dition de liens C"
+
+#~ msgid "specialization of implicitly-declared special member function"
+#~ msgstr "spcialisation d'un membre spcial d'nue fonction dclar implicitement"
+
+#~ msgid "no member function `%D' declared in `%T'"
+#~ msgstr "pas de membre de fonction %D dclar dans %T "
+
+#~ msgid "too many template parameter lists in declaration of `%T'"
+#~ msgstr "trop de canevass de listes de paramtres dans la dclaration de %T "
+
+#~ msgid " shadows template parm `%#D'"
+#~ msgstr " masque le paramtre du canevas %#D "
+
+#~ msgid "template parameters not used in partial specialization:"
+#~ msgstr "paramtres du canevas ne sont pas utiliss dans la spcialisation partielle:"
+
+#~ msgid " `%D'"
+#~ msgstr " %D "
+
+#~ msgid "partial specialization `%T' does not specialize any template arguments"
+#~ msgstr "spcialisation partielle %T ne spcialise pas aucun canevas d'arguments"
+
+#~ msgid "template argument `%E' involves template parameter(s)"
+#~ msgstr "canevas d'argument %E implique des paramtres du canevas"
+
+#~ msgid "type `%T' of template argument `%E' depends on template parameter(s)"
+#~ msgstr "type %T du canevas d'argument %E dpend des paramtres du canevas"
+
+#~ msgid "no default argument for `%D'"
+#~ msgstr "pas d'argument par dfaut pour %D "
+
+#~ msgid "template with C linkage"
+#~ msgstr "canevas avec liaison C"
+
+#~ msgid "template class without a name"
+#~ msgstr "canevas de classe sans nom"
+
+#~ msgid "destructor `%D' declared as member template"
+#~ msgstr "destructeur %D dclar en tant que membre du canevas"
+
+#~ msgid "`%D' does not declare a template type"
+#~ msgstr " %D ne dclare pas un type de canevas"
+
+#~ msgid "template definition of non-template `%#D'"
+#~ msgstr "dfinition de canevas d'un non canevas %#D "
+
+#~ msgid "expected %d levels of template parms for `%#D', got %d"
+#~ msgstr "attendait %d niveaux de canevas de paramtres pour %#D , obtenu %d"
+
+#~ msgid "got %d template parameters for `%#D'"
+#~ msgstr "a obtenu %d paramtres de canevas pour %#D "
+
+#~ msgid "got %d template parameters for `%#T'"
+#~ msgstr "a obtenu %d paramtres de canevas pour %#T "
+
+#~ msgid " but %d required"
+#~ msgstr " mais %d son requis"
+
+#~ msgid "`%T' is not a template type"
+#~ msgstr " %T n'est pas un type canevas"
+
+#~ msgid "previous declaration `%D'"
+#~ msgstr "dclaration prcdente de %D "
+
+#~ msgid "used %d template parameter%s instead of %d"
+#~ msgstr "utilis %d canevass paramtre%s au lieu de %d"
+
+#~ msgid "template parameter `%#D'"
+#~ msgstr "canevas de paramtre %#D "
+
+#~ msgid "redeclared here as `%#D'"
+#~ msgstr "redclar ici comme %#D "
+
+#~ msgid "redefinition of default argument for `%#D'"
+#~ msgstr "redfinition de l'argument par dfaut pour %#D "
+
+#~ msgid "%J original definition appeared here"
+#~ msgstr "%J dfinition originale apparat ici"
+
+#~ msgid "`%E' is not a valid template argument"
+#~ msgstr " %E n'est pas un argument valide pour le canevas"
+
+#~ msgid "it must be the address of a function with external linkage"
+#~ msgstr "il doit tre l'adresse d'une fonction avec lien externe"
+
+#~ msgid "it must be the address of an object with external linkage"
+#~ msgstr "il dot tre l'adresse d'un objet avec lien externe"
+
+#~ msgid "it must be a pointer-to-member of the form `&X::Y'"
+#~ msgstr "il doit tre un pointeur-vers-un-membre de la forme &X::Y"
+
+#~ msgid "string literal %E is not a valid template argument because it is the address of an object with static linkage"
+#~ msgstr "chane %E n'est pas un canevas d'argument valide parce que c'est l'adresse d'un objet avec lien statique"
+
+#~ msgid "address of non-extern `%E' cannot be used as template argument"
+#~ msgstr "adresse du non externe %E ne peut tre utilis comme canevas d'argument"
+
+#~ msgid "non-constant `%E' cannot be used as template argument"
+#~ msgstr "la non const %E ne peut tre utilis comme un canevas d'argument"
+
+#~ msgid "type '%T' cannot be used as a value for a non-type template-parameter"
+#~ msgstr "type %T ne peut tre utilis comme une valeur pour un non type de paramtre de canevas"
+
+#~ msgid "invalid use of '%D' as a non-type template-argument"
+#~ msgstr "utilisation invalide de %D pour un non type de paramtre de canevas"
+
+#~ msgid "invalid use of '%E' as a non-type template-argument"
+#~ msgstr "utilisation invalide de %E pour un non type de paramtre de canevas"
+
+#~ msgid "to refer to a type member of a template parameter, use `typename %E'"
+#~ msgstr "pour rfrencer un type de membre de canevas de paramtres, utiliser typename %E "
+
+#~ msgid "type/value mismatch at argument %d in template parameter list for `%D'"
+#~ msgstr "non concordance de type/valeur pour l'argument %d dans la liste des paramtres du canevas de %D "
+
+#~ msgid " expected a constant of type `%T', got `%T'"
+#~ msgstr " attendait une constante de type %T , a obtenu %T "
+
+#~ msgid " expected a class template, got `%E'"
+#~ msgstr " attendait un canevas de classe, a obtenu %E "
+
+#~ msgid " expected a type, got `%E'"
+#~ msgstr " attendait un type, a obtenu %E "
+
+#~ msgid " expected a type, got `%T'"
+#~ msgstr " attendait un type, a obtenu %T "
+
+#~ msgid " expected a class template, got `%T'"
+#~ msgstr " attendait un canevas de classe, a obtenu %T "
+
+#~ msgid " expected a template of type `%D', got `%D'"
+#~ msgstr " attendait un canevas de type %D , a obtenu %D "
+
+#~ msgid "could not convert template argument `%E' to `%T'"
+#~ msgstr "ne peut convertir l'argument du canevas %E vers %T "
+
+#~ msgid "wrong number of template arguments (%d, should be %d)"
+#~ msgstr "nombre erron d'arguments du canevas (%d devrait tre %d)"
+
+#~ msgid "provided for `%D'"
+#~ msgstr "fournie pour %D "
+
+#~ msgid "template argument %d is invalid"
+#~ msgstr "canevas de l'argument %d est invalide"
+
+#~ msgid "non-template used as template"
+#~ msgstr "non canevas utilis comme canevas"
+
+#~ msgid "non-template type `%T' used as a template"
+#~ msgstr "type non canevas %T utilis comme un canevas"
+
+#~ msgid "for template declaration `%D'"
+#~ msgstr "pour la dclaration du canevas %D "
+
+#~ msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth-NN to increase the maximum) instantiating `%D'"
+#~ msgstr "instantiation de la profondeur du canevas excde le maximum de %d (utiliser -ftemplate-depth-NN pour augmenter le maximum) lors de l'instanciation de %D "
+
+#~ msgid "ambiguous class template instantiation for `%#T'"
+#~ msgstr "instanciation ambigu de canevas de classe pour %#T "
+
+#~ msgid "%s %+#T"
+#~ msgstr "%s %+#T"
+
+#~ msgid "instantiation of `%D' as type `%T'"
+#~ msgstr "instanciation de %D comme type %T "
+
+#~ msgid "invalid parameter type `%T'"
+#~ msgstr "paramtre invalide pour le type %T "
+
+#~ msgid "in declaration `%D'"
+#~ msgstr "dans la dclaration de %D "
+
+#~ msgid "creating pointer to member function of non-class type `%T'"
+#~ msgstr "cration d'un pointeur vers le membre d'une fonction d'un type non classe %T "
+
+#~ msgid "creating array with size zero"
+#~ msgstr "cration d'un tableau de taille zro"
+
+#~ msgid "creating array with size zero (`%E')"
+#~ msgstr "cration d'un tableau de taille zro ( %E )"
+
+#~ msgid "forming reference to void"
+#~ msgstr "formation d'une rfrence en void"
+
+#~ msgid "forming %s to reference type `%T'"
+#~ msgstr "formant %s pour rfrencer le type %T "
+
+#~ msgid "creating pointer to member of non-class type `%T'"
+#~ msgstr "cration d'un pointeur vers le membre d'un type non classe %T "
+
+#~ msgid "creating pointer to member reference type `%T'"
+#~ msgstr "cration d'un pointeur vers le membre de rfrence du type %T "
+
+#~ msgid "creating array of `%T'"
+#~ msgstr "cration du tableau %T "
+
+#~ msgid "creating array of `%T', which is an abstract class type"
+#~ msgstr "cration d'un tableau %T , lequel est un type de classe abstraite"
+
+#~ msgid "`%T' is not a class, struct, or union type"
+#~ msgstr " %T n'est pas une classe, struct ou un type d'union"
+
+#~ msgid "use of `%s' in template"
+#~ msgstr "utilisation de %s dans le canevas"
+
+#~ msgid "dependent-name `%E' is parsed as a non-type, but instantiation yields a type"
+#~ msgstr "nom dpendant %E est analys comme un non type, mais son instantiation le rend comme un type"
+
+#~ msgid "say `typename %E' if a type is meant"
+#~ msgstr "utiliser typename %E si un type est dsir"
+
+#~ msgid "`%T' uses anonymous type"
+#~ msgstr " %T utilise un type anonyme"
+
+#~ msgid "`%T' uses local type `%T'"
+#~ msgstr " %T utilise un type local %T "
+
+#~ msgid "`%T' is a variably modified type"
+#~ msgstr " %T est type modifi de manire variable"
+
+#~ msgid "integral expression `%E' is not constant"
+#~ msgstr "expression intgrale %E n'est pas une constante"
+
+#~ msgid " trying to instantiate `%D'"
+#~ msgstr " tentative d'instanciation %D "
+
+#~ msgid "incomplete type unification"
+#~ msgstr "type d'unification incomplte"
+
+#~ msgid "use of `%s' in template type unification"
+#~ msgstr "utilisation de %s dans le canevas du type d'unification"
+
+#~ msgid "explicit instantiation of non-template `%#D'"
+#~ msgstr "instanciation explicite d'un non canevas %#D "
+
+#~ msgid "no matching template for `%D' found"
+#~ msgstr "non concordance de canevas pour %D repr"
+
+#~ msgid "explicit instantiation of `%#D'"
+#~ msgstr "instanciation explicite de %#D "
+
+#~ msgid "duplicate explicit instantiation of `%#D'"
+#~ msgstr "duplication d'instanciation explicite de %#D "
+
+#~ msgid "ISO C++ forbids the use of `extern' on explicit instantiations"
+#~ msgstr "ISO C++ interdit l'utilisation de extern sur instanciations explicites"
+
+#~ msgid "storage class `%D' applied to template instantiation"
+#~ msgstr "classe de stockage %D appliqu l'instanciation du canevas"
+
+#~ msgid "explicit instantiation of non-template type `%T'"
+#~ msgstr "instanciation explicite de type non canevas %T "
+
+#~ msgid "explicit instantiation of `%#T' before definition of template"
+#~ msgstr "instanciation explicite de %#T avant la dfinition de canevas"
+
+#~ msgid "ISO C++ forbids the use of `%s' on explicit instantiations"
+#~ msgstr "ISO C++ interdit l'utilisation de %s sur instanciations explicites"
+
+#~ msgid "duplicate explicit instantiation of `%#T'"
+#~ msgstr "duplication d'instanciation explicite de %#T "
+
+#~ msgid "explicit instantiation of `%D' but no definition available"
+#~ msgstr "instanciation explicite de %D mais pas de dfinition disponible"
+
+#~ msgid "`%#T' is not a valid type for a template constant parameter"
+#~ msgstr " %#T n'a pas un type valide pour un canevas de parametre de constante"
+
+#~ msgid "-frepo must be used with -c"
+#~ msgstr "-frepo doit tre utilis avec -c"
+
+#~ msgid "mysterious repository information in %s"
+#~ msgstr "dpt mystrieux d'informations dans %s"
+
+#~ msgid "can't create repository information file `%s'"
+#~ msgstr "ne peut crer le fichier %s pour dpt d'informations"
+
+#~ msgid "cannot use typeid with -fno-rtti"
+#~ msgstr "ne peut utiliser typeid avec -fno-rtti"
+
+#~ msgid "must #include <typeinfo> before using typeid"
+#~ msgstr "doit utiliser #include <typeinfo> avant d'utiliser typeid"
+
+#~ msgid "cannot create type information for type `%T' because its size is variable"
+#~ msgstr "ne peut crer une information pour le type %T parce que sa taille est variable"
+
+#~ msgid "dynamic_cast of `%#D' to `%#T' can never succeed"
+#~ msgstr "dynamic_cast de %#D vers %#T ne pourra jamais russir"
+
+#~ msgid "cannot dynamic_cast `%E' (of type `%#T') to type `%#T' (%s)"
+#~ msgstr "ne peut effectuer un dynamic_cast %E (du type %#T ) vers le type %#T (%s)"
+
+#~ msgid "`%T' is an ambiguous base of `%T'"
+#~ msgstr " %T est une base ambigu de %T "
+
+#~ msgid "`%T' is an inaccessible base of `%T'"
+#~ msgstr " %T est une base inaccessible de %T "
+
+#~ msgid "invalid covariant return type for `%#D'"
+#~ msgstr "type retourn covariant invalide pour %#D "
+
+#~ msgid " overriding `%#D'"
+#~ msgstr " crasant %#D "
+
+#~ msgid "conflicting return type specified for `%#D'"
+#~ msgstr "types retourns conflictuels spcifis pour %#D "
+
+#~ msgid "looser throw specifier for `%#F'"
+#~ msgstr "a plac un spcificateur pour %#F "
+
+#~ msgid " overriding `%#F'"
+#~ msgstr " crasant %#F "
+
+#~ msgid "`%#D' cannot be declared"
+#~ msgstr " %#D ne peut tre dclar"
+
+#~ msgid " since `%#D' declared in base class"
+#~ msgstr " alors que %#D est dclar dans la classe de base"
+
+#~ msgid "`%#D' needs a final overrider"
+#~ msgstr " %#D a besoin d'un craseur final"
+
+#~ msgid "type of asm operand `%E' could not be determined"
+#~ msgstr "type d'oprande asm %E ne peut tre dtermin"
+
+#~ msgid "invalid use of member `%D' in static member function"
+#~ msgstr "utilisation invalide du membre %D dans un membre statique de fonction"
+
+#~ msgid "from this location"
+#~ msgstr " partir de cette localisation"
+
+#~ msgid "object missing in reference to `%D'"
+#~ msgstr "objet manquant dans la rfrence %D "
+
+#~ msgid "arguments to destructor are not allowed"
+#~ msgstr "arguments au destructeur ne sont pas permis"
+
+#~ msgid "`this' is unavailable for static member functions"
+#~ msgstr " cela n'est pas disponible pour les membres statiques de fonctions"
+
+#~ msgid "invalid use of `this' in non-member function"
+#~ msgstr "utilisation invalide de ceci dans un non membre de fonction"
+
+#~ msgid "invalid use of `this' at top level"
+#~ msgstr "utilisation invalide de this hors de toute fonction"
+
+#~ msgid "invalid qualifying scope in pseudo-destructor name"
+#~ msgstr "tendue invalide du qualificateur dans un nom de pseudo-destructeur"
+
+#~ msgid "`%E' is not of type `%T'"
+#~ msgstr " %E n'est pas un type %T "
+
+#~ msgid "template type parameters must use the keyword `class' or `typename'"
+#~ msgstr "canevas de type de paramtres doit utiliser le mot cl class ou typename "
+
+#~ msgid "invalid use of type `%T' as a default value for a template template-parameter"
+#~ msgstr "utilisation invalide du type %T comme valeur par dfaut pour un canevas de paramtres de canevas"
+
+#~ msgid "invalid use of `%D' as a default value for a template template-parameter"
+#~ msgstr "utilisation invalide de %D comme valeur par dfaut pour un canevas de paramtres de canevas"
+
+#~ msgid "invalid default argument for a template template parameter"
+#~ msgstr "utilisation invalide d'argumenet pour un canevas de paramtres de canevas"
+
+#~ msgid "definition of `%#T' inside template parameter list"
+#~ msgstr "dfinition de %#T l'intrieur d'un canevas de liste de paramtres"
+
+#~ msgid "invalid definition of qualified type `%T'"
+#~ msgstr "dfinition invalide d'un type qualifi %T "
+
+#~ msgid "previous definition of `%#T'"
+#~ msgstr "dfinition prcdente de %#T "
+
+#~ msgid "invalid base-class specification"
+#~ msgstr "spcification de base de classe invalide"
+
+#~ msgid "base class `%T' has cv qualifiers"
+#~ msgstr "classe de base %T a des qualificateurs cv"
+
+#~ msgid "multiple declarators in template declaration"
+#~ msgstr "dclarateurs multiples dans la dclaration de canevas"
+
+#~ msgid "incomplete type `%T' used in nested name specifier"
+#~ msgstr "type %T incomplet utilis dans un spcificateur de noms imbriqu"
+
+#~ msgid "`%D' is not a member of `%T'"
+#~ msgstr " %D n'est pas un membre de %T "
+
+#~ msgid "`%D' is not a member of `%D'"
+#~ msgstr " %D n'est pas un membre de %D "
+
+#~ msgid "template parameter `%D' of type `%T' is not allowed in an integral constant expression because it is not of integral or enumeration type"
+#~ msgstr "paramtre %D du canevas du type %T ne sont pas permises dans une expression intgrale de constante parce qu'elle n'est pas intgral ou un type numration"
+
+#~ msgid "`%D' cannot appear in a constant-expression"
+#~ msgstr " %D ne peut apparatre dans une expression de constante"
+
+#~ msgid "use of namespace `%D' as expression"
+#~ msgstr "utilisation d'un espace de dnomes %D comme expression"
+
+#~ msgid "use of class template `%T' as expression"
+#~ msgstr "utilisation du canevas de classe %T comme expression"
+
+#~ msgid "request for member `%D' is ambiguous in multiple inheritance lattice"
+#~ msgstr "requte du membre %D est ambiqu dans de mutliples hritage de treillis"
+
+#~ msgid "use of %s from containing function"
+#~ msgstr "utilisation de %s d'un fonction contenante"
+
+#~ msgid " `%#D' declared here"
+#~ msgstr " %#D dclar ici"
+
+#~ msgid "type of `%E' is unknown"
+#~ msgstr "type %E est inconnu"
+
+#~ msgid "non-lvalue in %s"
+#~ msgstr "n'est pas un membre gauche dans %s"
+
+#~ msgid "`%V' qualifiers cannot be applied to `%T'"
+#~ msgstr "qualificateur %V ne peut pas tre appliqu %T "
+
+#~ msgid "`%s' attribute can only be applied to Java class definitions"
+#~ msgstr "attribut %s peut seulement tre appliqu aux dfinitions de classes Java"
+
+#~ msgid "`%s' attribute can only be applied to class definitions"
+#~ msgstr "attribut %s peut seulement tre appliqu aux dfinitions de classes"
+
+#~ msgid "`%s' is obsolete; g++ vtables are now COM-compatible by default"
+#~ msgstr " %s est obsolte; vtables g++ sont maintenant COM-compatibles par dfaut"
+
+#~ msgid "requested init_priority is not an integer constant"
+#~ msgstr "init_priority demand n'est pas une constante entire"
+
+#~ msgid "can only use `%s' attribute on file-scope definitions of objects of class type"
+#~ msgstr "peut seulement utiliser l'attribut %s sur la porte de fichier de dfinitions des objets de type de classe"
+
+#~ msgid "requested init_priority is out of range"
+#~ msgstr "init_priority demand est hors limite"
+
+#~ msgid "requested init_priority is reserved for internal use"
+#~ msgstr "init_priority demand est rserv pour un usage interne"
+
+#~ msgid "`%s' attribute is not supported on this platform"
+#~ msgstr "attribut %s n'est pas support sur cette plate-forme"
+
+#~ msgid "lang_* check: failed in %s, at %s:%d"
+#~ msgstr "vrification lang_* : ched dans %s, %s:%d"
+
+#~ msgid "%s between distinct pointer types `%T' and `%T' lacks a cast"
+#~ msgstr "%s entre des types distincs de pointeurs %T et %T manque de transtypage"
+
+#~ msgid "ISO C++ forbids %s between pointer of type `void *' and pointer-to-function"
+#~ msgstr "ISO C++ interdit %s entre les pointeurs de type void * et les pointeurs de fonctions"
+
+#~ msgid "%s between distinct pointer-to-member types `%T' and `%T' lacks a cast"
+#~ msgstr "%s entre des types distincs de pointeurs vers les membres %T et %T manque de transtypage"
+
+#~ msgid "invalid application of `%s' to a member function"
+#~ msgstr "application invalide de %s une fonction membre"
+
+#~ msgid "invalid application of `%s' to a bit-field"
+#~ msgstr "application invalide de %s sur un champ de bits"
+
+#~ msgid "ISO C++ forbids applying `%s' to an expression of function type"
+#~ msgstr "ISO C++ interdit l'application de %s une expression d'un type de fonction"
+
+#~ msgid "invalid use of non-static member function"
+#~ msgstr "utilisation invalide d'un membre non statique de fonction"
+
+#~ msgid "deprecated conversion from string constant to `%T'"
+#~ msgstr "conversion obsolte de la chane de constante vers %T "
+
+#~ msgid "request for member `%D' in `%E', which is of non-class type `%T'"
+#~ msgstr "requte du membre %D dans %E , lequel n'est pas de type classe %T "
+
+#~ msgid "invalid use of nonstatic data member '%E'"
+#~ msgstr "utilisation invalide d'un membre de donnes non statique %E "
+
+#~ msgid "invalid access to non-static data member `%D' of NULL object"
+#~ msgstr "accs invalide un membre de donnes non statique %D d'un objet null"
+
+#~ msgid "(perhaps the `offsetof' macro was used incorrectly)"
+#~ msgstr "(peut-tre que le macro offsetof a t utilis incorrectement)"
+
+#~ msgid "the type being destroyed is `%T', but the destructor refers to `%T'"
+#~ msgstr "le type devant tre dtruit est %T , mais le destructeur rfre %T "
+
+#~ msgid "`%D::%D' is not a member of `%T'"
+#~ msgstr " %D::%D n'est pas un membre de %T "
+
+#~ msgid "`%T' is not a base of `%T'"
+#~ msgstr " %D n'est pas une base de %T "
+
+#~ msgid "'%D' has no member named '%E'"
+#~ msgstr " %D n'a pas de membre nomm %E "
+
+#~ msgid "`%D' is not a member template function"
+#~ msgstr " %D n'est pas une membre du canevas de fonction"
+
+#~ msgid "`%T' is not a pointer-to-object type"
+#~ msgstr " %T n'est pas un type pointeur-vers-objet"
+
+#~ msgid "invalid use of `%s' on pointer to member"
+#~ msgstr "utilisation invalide de %s sur un pointeur vers un membre"
+
+#~ msgid "invalid type argument"
+#~ msgstr "type d'argument invalide"
+
+#~ msgid "ISO C++ forbids subscripting non-lvalue array"
+#~ msgstr "ISO C++ interdit le souscriptage de non lvalue de tableau"
+
+#~ msgid "subscripting array declared `register'"
+#~ msgstr "souscriptage de tableau dclar register "
+
+#~ msgid "object missing in use of `%E'"
+#~ msgstr "objet manquant dans l'usage de %E "
+
+#~ msgid "ISO C++ forbids calling `::main' from within program"
+#~ msgstr "ISO C++ interdit l'appel de ::main depuis l'intrieur du programme"
+
+#~ msgid "must use .* or ->* to call pointer-to-member function in `%E (...)'"
+#~ msgstr "doit utiliser .* ou ->* pour l'appel de la fonction pointer-to-member dans %E (...) "
+
+#~ msgid "`%E' cannot be used as a function"
+#~ msgstr " %E ne peut tre utilis comme une fonction"
+
+#~ msgid "too many arguments to %s `%+#D'"
+#~ msgstr "trop d'arguments pour %s %+#D "
+
+#~ msgid "at this point in file"
+#~ msgstr " ce point dans le fichier"
+
+#~ msgid "parameter %P of `%D' has incomplete type `%T'"
+#~ msgstr "paramtre %P de %D a un type incomplet %T "
+
+#~ msgid "parameter %P has incomplete type `%T'"
+#~ msgstr "paramtre %P a un type incomplet %T "
+
+#~ msgid "too few arguments to %s `%+#D'"
+#~ msgstr "pas assez d'argument pour %s %+#D "
+
+#~ msgid "assuming cast to type `%T' from overloaded function"
+#~ msgstr "transtypage vers le type %T est assum partir de la fonction surcharge"
+
+#~ msgid "division by zero in `%E / 0'"
+#~ msgstr "division par zro dans %E / 0 "
+
+#~ msgid "division by zero in `%E / 0.'"
+#~ msgstr "division par zro dans %E / 0. "
+
+#~ msgid "division by zero in `%E %% 0'"
+#~ msgstr "division par zro dans %E %% 0 "
+
+#~ msgid "division by zero in `%E %% 0.'"
+#~ msgstr "division par zro dans %E %% 0. "
+
+#~ msgid "%s rotate count is negative"
+#~ msgstr "compteur de rotation %s est ngatif"
+
+#~ msgid "%s rotate count >= width of type"
+#~ msgstr "compteur de rotation %s >= largeur du type"
+
+#~ msgid "ISO C++ forbids comparison between pointer and integer"
+#~ msgstr "ISO C++ interdit la comparaison entre un pointeur et un entier"
+
+#~ msgid "comparison between types `%#T' and `%#T'"
+#~ msgstr "comparaison entre les types %#T et %#T "
+
+#~ msgid "comparison between signed and unsigned integer expressions"
+#~ msgstr "comparaison entre des expressions entires signe et non signe"
+
+#~ msgid "invalid operands of types `%T' and `%T' to binary `%O'"
+#~ msgstr "oprandes invalides pour les types %T et %T en binaire %O "
+
+#~ msgid "NULL used in arithmetic"
+#~ msgstr "NULL utilis en arithmtique"
+
+#~ msgid "ISO C++ forbids using pointer of type `void *' in subtraction"
+#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur de type void * dans une soustraction"
+
+#~ msgid "ISO C++ forbids using pointer to a function in subtraction"
+#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une fonction dans une soustraction"
+
+#~ msgid "ISO C++ forbids using pointer to a method in subtraction"
+#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur survers une mthode dans une soustraction"
+
+#~ msgid "invalid use of a pointer to an incomplete type in pointer arithmetic"
+#~ msgstr "utilisation invalide d'un pointeur vers un type incomplet dans un pointeur arithmtique"
+
+#~ msgid "invalid use of '%E' to form a pointer-to-member-function. Use a qualified-id."
+#~ msgstr "utilisation invalide de %E pour former pointer-to-member-function. Utiliser un identifateur qualifi"
+
+#~ msgid "parenthesis around '%E' cannot be used to form a pointer-to-member-function"
+#~ msgstr "parenthses autour de %E ne peuvent tre utilises pour former pointer-to-member-function"
+
+#~ msgid "taking address of temporary"
+#~ msgstr "prise de l'adresse du temporaire"
+
+# FIXME: I18N
+#~ msgid "ISO C++ forbids %sing an enum"
+#~ msgstr "ISO C++ interdit de %ser un enum"
+
+#~ msgid "cannot %s a pointer to incomplete type `%T'"
+#~ msgstr "ne peut utiliser %s comme pointeur sur un type incomplet %T "
+
+#~ msgid "ISO C++ forbids %sing a pointer of type `%T'"
+#~ msgstr "ISO C++ interdit %s utilisation d'un pointeur de type %T "
+
+#~ msgid "cast to non-reference type used as lvalue"
+#~ msgstr "transtypage d'un type non rfrenc utilis comme membre gauche"
+
+#~ msgid "invalid use of `--' on bool variable `%D'"
+#~ msgstr "utilisation invalide de -- sur une variable boolenne %D "
+
+#~ msgid "ISO C++ forbids taking address of function `::main'"
+#~ msgstr "ISO C++ interdit de prendre l'adresse d'une fonction ::main"
+
+#~ msgid "ISO C++ forbids taking the address of an unqualified or parenthesized non-static member function to form a pointer to member function. Say `&%T::%D'"
+#~ msgstr "ISO C++ interdit de prendre l'adress d'un membre de fonction non statique non qualifi ou entre parenthses pour former un pointeur d'un membre de fonction. Utilisers &%T::%D"
+
+#~ msgid "ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&%T::%D'"
+#~ msgstr "ISO C++ interdit de prendre l'adresse d'une borne d'un membre de fontion pour former un membre la fonction. Disons &%T::%D"
+
+#~ msgid "ISO C++ forbids taking the address of a cast to a non-lvalue expression"
+#~ msgstr "ISO C++ interdit de prendre l'adresse du transtypage vers une expression n'etant pas membre gauche"
+
+#~ msgid "unary `&'"
+#~ msgstr "unaire & "
+
+#~ msgid "attempt to take address of bit-field structure member `%D'"
+#~ msgstr "tentative de prise d'adresse du membre %D d'une structure de champ de bits"
+
+#~ msgid "taking address of destructor"
+#~ msgstr "prise de l'adresse du destructeur"
+
+#~ msgid "taking address of bound pointer-to-member expression"
+#~ msgstr "prise de l'adresse de la borne de l'expression d'un pointeur-vers-un membre"
+
+#~ msgid "cannot create pointer to reference member `%D'"
+#~ msgstr "ne peut dclarer un pointeur vers le membre de rfrence %D "
+
+#~ msgid "cannot take the address of `this', which is an rvalue expression"
+#~ msgstr "ne peut prendre l'adresse de ceci , laquelle est une expression rvalue"
+
+#~ msgid "address requested for `%D', which is declared `register'"
+#~ msgstr "adresse requise pour %D, lequel est dclar register "
+
+#~ msgid "%s expression list treated as compound expression"
+#~ msgstr "%s liste d'expressions traite comme une expression compose"
+
+#~ msgid "%s from type `%T' to type `%T' casts away constness"
+#~ msgstr "%S partir du %T vers le type %T provoque un transtypage sans constante"
+
+#~ msgid "invalid static_cast from type `%T' to type `%T'"
+#~ msgstr "static_cast invalide du type %T au type %T "
+
+#~ msgid "invalid reinterpret_cast of an rvalue expression of type `%T' to type `%T'"
+#~ msgstr "reinterpret_cast invalide d'une expression rvalue de type %T vers le type %T "
+
+#~ msgid "reinterpret_cast from `%T' to `%T' loses precision"
+#~ msgstr "reinterpret_cast de %T vers %T gnre une perte de prcision"
+
+#~ msgid "ISO C++ forbids casting between pointer-to-function and pointer-to-object"
+#~ msgstr "ISO C++ interdit le transtypage entre un pointeur de fonction et un pointeur d'objet"
+
+#~ msgid "invalid reinterpret_cast from type `%T' to type `%T'"
+#~ msgstr "reinterpret_cast invalide partir du type %T vers le type %T "
+
+#~ msgid "invalid use of const_cast with type `%T', which is not a pointer, reference, nor a pointer-to-data-member type"
+#~ msgstr "utilisation invalide de const_cast avec le type %T , lequel n'est pas un pointeur, une rfrence, ni un type pointeur-vers-donnes-membre"
+
+#~ msgid "invalid use of const_cast with type `%T', which is a pointer or reference to a function type"
+#~ msgstr "utilisation invalide de const_cast avec le type %T , lequel est un pointeur ou un rfrence un type de fonction"
+
+#~ msgid "invalid const_cast of an rvalue of type `%T' to type `%T'"
+#~ msgstr "const_cast invalide de la rvalue du type %T vers le type %T "
+
+#~ msgid "invalid const_cast from type `%T' to type `%T'"
+#~ msgstr "const_cast invalide partir du type %T vers le type %T "
+
+#~ msgid "ISO C++ forbids casting to an array type `%T'"
+#~ msgstr "ISO C++ interdit le transtypage vers un type tableau %T "
+
+#~ msgid "invalid cast to function type `%T'"
+#~ msgstr "transtypage invalide pour un type de fonction %T "
+
+#~ msgid "cast from `%T' to `%T' discards qualifiers from pointer target type"
+#~ msgstr "transtypage de %T vers %T carte les qualificateurs du type cible du pointeur"
+
+#~ msgid "cast from `%T' to `%T' increases required alignment of target type"
+#~ msgstr "transtypage de %T vers %T augmente l'alignement requis pour le type cibl"
+
+#~ msgid " in evaluation of `%Q(%#T, %#T)'"
+#~ msgstr " lors de l'valuation de %Q(%#T, %#T) "
+
+#~ msgid "ISO C++ forbids cast to non-reference type used as lvalue"
+#~ msgstr "ISO C++ interdit le transtypage d'un type non rfrenc utilis comme membre gauche"
+
+#~ msgid "incompatible types in assignment of `%T' to `%T'"
+#~ msgstr "type incompatible dans l'affectation de %T vers %T "
+
+#~ msgid "ISO C++ forbids assignment of arrays"
+#~ msgstr "ISO C++ interdit l'affectation de tableaux"
+
+#~ msgid " in pointer to member function conversion"
+#~ msgstr " dans la conversion d'un pointeur vers un membre de fonction"
+
+#~ msgid " in pointer to member conversion"
+#~ msgstr " dans la conversion d'un pointeur vers un membre"
+
+#~ msgid "pointer to member cast via virtual base `%T'"
+#~ msgstr "pointeur vers un membre transtyp via la base virtuelle %T "
+
+#~ msgid "pointer to member conversion via virtual base `%T'"
+#~ msgstr "conversion de pointeur membre l'aide de la base virtuelle %T "
+
+#~ msgid "invalid conversion to type `%T' from type `%T'"
+#~ msgstr "conversion invalide vers un type %T partir du type %T "
+
+#~ msgid "passing NULL used for non-pointer %s %P of `%D'"
+#~ msgstr "passage d'un NULL utilis pour un non pointeur %s %P de %D "
+
+#~ msgid "%s to non-pointer type `%T' from NULL"
+#~ msgstr "%s vers un type non pointeur %T partir d'un NULL"
+
+#~ msgid "passing `%T' for %s %P of `%D'"
+#~ msgstr "passage %T pour %s %P de %D "
+
+#~ msgid "%s to `%T' from `%T'"
+#~ msgstr "%s vers %T partir de %T "
+
+#~ msgid "passing negative value `%E' for %s %P of `%D'"
+#~ msgstr "passage de valeur ngative %E pour %s %P de %D "
+
+#~ msgid "%s of negative value `%E' to `%T'"
+#~ msgstr "%s de valeur ngative %E vers %T "
+
+#~ msgid "cannot convert `%T' to `%T' for argument `%P' to `%D'"
+#~ msgstr "ne peut convertir %T %T pour l'argument %P vers %D "
+
+#~ msgid "cannot convert `%T' to `%T' in %s"
+#~ msgstr "ne peut convertir %T vers %T dans %s"
+
+#~ msgid "in passing argument %P of `%+D'"
+#~ msgstr "dans le passage de l'argument %P de %+D "
+
+#~ msgid "returning reference to temporary"
+#~ msgstr "retourn la rfrence vers le temporaire"
+
+#~ msgid "reference to non-lvalue returned"
+#~ msgstr "une rfrence vers quelque chose n'tant pas un membre gauche a t retourn"
+
+#~ msgid "reference to local variable `%D' returned"
+#~ msgstr "rfrence vers une variable locale %D retourn"
+
+#~ msgid "address of local variable `%D' returned"
+#~ msgstr "adresse d'une variable locale %D retourne"
+
+#~ msgid "returning a value from a destructor"
+#~ msgstr "retourn une valeur du destructeur"
+
+#~ msgid "cannot return from a handler of a function-try-block of a constructor"
+#~ msgstr "ne peut retourner d'un handler d'une fonction try-block d'un constructeur"
+
+#~ msgid "returning a value from a constructor"
+#~ msgstr "retourn une valeur d'un constructeur"
+
+#~ msgid "return-statement with no value, in function returning '%T'"
+#~ msgstr "dclaration retourner sans valeur dans une fonction retournant %T "
+
+#~ msgid "return-statement with a value, in function returning 'void'"
+#~ msgstr "dclaration a retourner avec une valeur dans une fonction retournant un void "
+
+#~ msgid "`operator new' must not return NULL unless it is declared `throw()' (or -fcheck-new is in effect)"
+#~ msgstr " operator new ne doit pas retourner NULL moins qu'il ne soit dclar throw() (ou -fcheck-new est utilise)"
+
+#~ msgid "type `%T' is not a base type for type `%T'"
+#~ msgstr "type %T n'est pas un type de base pour le type %T "
+
+#~ msgid "cannot declare variable `%D' to be of type `%T'"
+#~ msgstr "ne peut dclarer la variable %D comme tant de type %T "
+
+#~ msgid "cannot declare parameter `%D' to be of type `%T'"
+#~ msgstr "ne peut dclarer la paramtre %D comme tant de type %T "
+
+#~ msgid "cannot declare field `%D' to be of type `%T'"
+#~ msgstr "ne peut dclarer la champ %D comme tant de type %T "
+
+#~ msgid "invalid return type for member function `%#D'"
+#~ msgstr "type retourn invalide pour le membre de la fonction %#D "
+
+#~ msgid "invalid return type for function `%#D'"
+#~ msgstr "type retourn invalide pour la fonction %#D "
+
+#~ msgid "cannot allocate an object of type `%T'"
+#~ msgstr "ne peut allouer un objet de type %T "
+
+#~ msgid " because the following virtual functions are abstract:"
+#~ msgstr " parce que les fonctions viruelles suivantes sont abstraites:"
+
+#~ msgid "\t%#D"
+#~ msgstr "\t%#D"
+
+#~ msgid " since type `%T' has abstract virtual functions"
+#~ msgstr " depuis que le type %T a des fonctions virtuelles abstraites"
+
+#~ msgid "constructor syntax used, but no constructor declared for type `%T'"
+#~ msgstr "syntaxe de constructeur utilis mais aucun constructeur dclar pour le type %T "
+
+#~ msgid "cannot initialize arrays using this syntax"
+#~ msgstr "ne peut initialiser les tableaux en utilisant la syntaxe"
+
+#~ msgid "initializing array with parameter list"
+#~ msgstr "initialise le tableau avec la liste des paramtres"
+
+#~ msgid "initializer for scalar variable requires one element"
+#~ msgstr "l'initialisation de variable scalaire requiert un lment"
+
+#~ msgid "braces around scalar initializer for `%T'"
+#~ msgstr "accolades autour de l'initialiseur scalaire pour %T "
+
+#~ msgid "ignoring extra initializers for `%T'"
+#~ msgstr "initialiseurs superflus pour %T ignors"
+
+#~ msgid "variable-sized object of type `%T' may not be initialized"
+#~ msgstr "un objet de taille variable de type %T peut ne pas tre initialis"
+
+#~ msgid "subobject of type `%T' must be initialized by constructor, not by `%E'"
+#~ msgstr "sous-objet de type %T doit tre initialis par un constructeur, non pas par %E "
+
+#~ msgid "aggregate has a partly bracketed initializer"
+#~ msgstr "aggrgat a un initialiseur partiellement entour d'accolades"
+
+#~ msgid "non-trivial labeled initializers"
+#~ msgstr "initialiseur tiquet de manire non trivial"
+
+#~ msgid "non-empty initializer for array of empty elements"
+#~ msgstr "initialiseurs non vides pour un tableau d'lments vides"
+
+#~ msgid "initializer list for object of class with virtual base classes"
+#~ msgstr "liste d'initialiseurs pour les objets de classe avec classes de base virtuelles"
+
+#~ msgid "initializer list for object of class with base classes"
+#~ msgstr "liste d'initialiseurs pour les objets de classe avec classes de base"
+
+#~ msgid "initializer list for object using virtual functions"
+#~ msgstr "liste d'initialiseurs pour objet utilisant des fonctions virtuelles"
+
+#~ msgid "missing initializer for member `%D'"
+#~ msgstr "initialiseur manquant pour le membre %D "
+
+#~ msgid "uninitialized const member `%D'"
+#~ msgstr "membre de constante non initialis pour %D "
+
+#~ msgid "member `%D' with uninitialized const fields"
+#~ msgstr "membre %D avec des champs de constantes non initialise"
+
+#~ msgid "member `%D' is uninitialized reference"
+#~ msgstr "membre %D est une rfrence non initialise"
+
+#~ msgid "index value instead of field name in union initializer"
+#~ msgstr "valeur index au lieu du nom de champ dans l'initialiseur d'union"
+
+#~ msgid "no field `%D' in union being initialized"
+#~ msgstr "pas de champ %D dans l'aggrgat n'a t initialis"
+
+#~ msgid "union `%T' with no named members cannot be initialized"
+#~ msgstr "aggrgat %T sans mambre nomm ne peut tre initialis"
+
+#~ msgid "excess elements in aggregate initializer"
+#~ msgstr "lments en excs dans l'initialiseur d'aggrgat"
+
+#~ msgid "circular pointer delegation detected"
+#~ msgstr "dlgation de pointeur circulaire dtect"
+
+#~ msgid "base operand of `->' has non-pointer type `%T'"
+#~ msgstr "l'oprande de base de -> a un type non pointeur %T "
+
+#~ msgid "result of `operator->()' yields non-pointer result"
+#~ msgstr "rsultat de operator->() laisse comme rsultat un non pointeur"
+
+#~ msgid "base operand of `->' is not a pointer"
+#~ msgstr "l'oprande de base de -> n'est pas un pointeur"
+
+#~ msgid "`%E' cannot be used as a member pointer, since it is of type `%T'"
+#~ msgstr " %E ne peut tre utilis comme pointeur de membre, alors qu'il est de type %T "
+
+#~ msgid "cannot apply member pointer `%E' to `%E', which is of non-aggregate type `%T'"
+#~ msgstr "ne peut appliquer un pointeur de membre %E %E , lequel n'est pas un type d'aggrgat %T "
+
+#~ msgid "member type `%T::' incompatible with object type `%T'"
+#~ msgstr "type du membre %T:: incompatible avec le type d'objet %T "
+
+#~ msgid "call to function `%D' which throws incomplete type `%#T'"
+#~ msgstr "l'appel la fonction %D laquelle carte le type incomplet %T "
+
+#~ msgid "call to function which throws incomplete type `%#T'"
+#~ msgstr "l'appel la fonction laquelle carte le type incomplet %T "
+
+#~ msgid "%s is deprecated, please see the documentation for details"
+#~ msgstr "%s est obsolte, SVP voir la documentation pour les dtails"
+
+#~ msgid "note:"
+#~ msgstr "note :"
+
+#~ msgid "warning:"
+#~ msgstr "avertissement :"
+
+#~ msgid "fatal:"
+#~ msgstr "fatal :"
+
+#~ msgid "(continued):"
+#~ msgstr "(suite) :"
+
+#~ msgid "[REPORT BUG!!] %"
+#~ msgstr "[RAPPORTER L'ANOMALIE!!] %"
+
+#~ msgid "[REPORT BUG!!]"
+#~ msgstr "[RAPPORTER L'ANOMALIE!!]"
+
+#~ msgid "ASSIGN'ed label cannot fit into `%A' at %0 -- using wider sibling"
+#~ msgstr "l'tiquette affecte ne peut s'insrer dans %A %0 - utilisation d'un voisinage plus grand"
+
+#~ msgid "no INTEGER type can hold a pointer on this configuration"
+#~ msgstr "AUCUN type ENTIER ne peut tenir un pointeur sur cette configuration"
+
+#~ msgid "configuration: REAL, INTEGER, and LOGICAL are %d bits wide,"
+#~ msgstr "configuration : REAL, INTEGER, et LOGICAL ont %d bits,"
+
+#~ msgid "and pointers are %d bits wide, but g77 doesn't yet work"
+#~ msgstr "et les pointeurs ont %d bits, mais g77 ne fonctionne pas encore"
+
+#~ msgid "properly unless they all are 32 bits wide"
+#~ msgstr "correctement moins qu'ils aient tous 32 bits de largeur"
+
+#~ msgid "Please keep this in mind before you report bugs."
+#~ msgstr "SVP garder cela en tte avant de rapporter les anomalies."
+
+#~ msgid "configuration: char * holds %d bits, but ftnlen only %d"
+#~ msgstr "configuration: char * contient %d bits, mais ftnlen seulement %d"
+
+#~ msgid ""
+#~ "configuration: char * holds %d bits, but INTEGER only %d --\n"
+#~ " ASSIGN statement might fail"
+#~ msgstr ""
+#~ "configuration: char * contient %d bits, mais INTEGER seulement %d --\n"
+#~ " dclaration ASSIGN pourrait chouer"
+
+#~ msgid "In statement function"
+#~ msgstr "Dans la dclaration de fonction"
+
+#~ msgid "Outside of any program unit:\n"
+#~ msgstr "En dehors de toute unit de programme:\n"
+
+#~ msgid "%A from %B at %0%C"
+#~ msgstr "%A partir de %B %0%C"
+
+#~ msgid "At %0, INCLUDE file %A exists, but is not readable"
+#~ msgstr " %0, fichier INCLUDE %A existe mais n'est pas lisible"
+
+#~ msgid "At %0, INCLUDE nesting too deep"
+#~ msgstr " %0, imbrication du INCLUDE est trop profonde"
+
+#~ msgid "Two arithmetic operators in a row at %0 and %1 -- use parentheses"
+#~ msgstr "Deux oprateurs arithmtiques dans la range %0 et %1 -- utiliser des parenthses"
+
+#~ msgid "Operator at %0 has lower precedence than that at %1 -- use parentheses"
+#~ msgstr "L'oprateur %0 a une prcdence plus basse que celui %1 -- utiliser des parenthses"
+
+#~ msgid "Use .EQV./.NEQV. instead of .EQ./.NE. at %0 for LOGICAL operands at %1 and %2"
+#~ msgstr "Utiliser .EQV./.NEQV. au lieu de .EQ./.NE. %0 pour les oprandes LOGICAL %1 et %2"
+
+#~ msgid "Unsupported operand for ** at %1 -- converting to default INTEGER"
+#~ msgstr "Oprande non supporte pour ** %1 -- conversion INTEGER par dfaut"
+
+#~ msgid "overflowed output arg list for `%s'"
+#~ msgstr "dbordement de la liste d'arguments de sortie pour %s "
+
+#~ msgid ""
+#~ "GNU Fortran comes with NO WARRANTY, to the extent permitted by law.\n"
+#~ "You may redistribute copies of GNU Fortran\n"
+#~ "under the terms of the GNU General Public License.\n"
+#~ "For more information about these matters, see the file named COPYING\n"
+#~ "or type the command `info -f g77 Copying'.\n"
+#~ msgstr ""
+#~ "GNU Fortran est fourni sans aucune garantie, selon les limites permises par la loi.\n"
+#~ "Vous pouvez redistribuer des copies de GNU Fortran\n"
+#~ "selon les termes de la GNU General Public License.\n"
+#~ "Pour plus d'informations ce sujet, consulter le fichier portant le nom COPYING\n"
+#~ "ou taper la commande `info -f g77 Copying'.\n"
+
+#~ msgid "--driver no longer supported"
+#~ msgstr "--driver n'est plus support"
+
+#~ msgid "argument to `%s' missing"
+#~ msgstr "argument pour %s est manquant"
+
+#~ msgid "no input files; unwilling to write output files"
+#~ msgstr "aucun fichier d'entre; pas d'accord pour crire dans les fichiers de sortie"
+
+#~ msgid "Implicit declaration of `%A' at %0"
+#~ msgstr "dclaration implicite de %A %0"
+
+#~ msgid "Non-ISO-C-standard escape sequence `\\%A' at %0"
+#~ msgstr "squence d'chappement non conforme au standard ISO C \\%A %0"
+
+#~ msgid "Unknown escape sequence `\\%A' at %0"
+#~ msgstr "squence d'chappement inconnue \\%A %0"
+
+#~ msgid "Unterminated escape sequence `\\' at %0"
+#~ msgstr "squence d'chappement non termine \\ at %0"
+
+#~ msgid "Unknown escape sequence `\\' followed by char code 0x%A at %0"
+#~ msgstr "squence d'chappement inconnue \\ suivi par le code de caractres 0x%A at %0"
+
+#~ msgid "\\x used at %0 with no following hex digits"
+#~ msgstr "\\x utilis %0 sans tre suivi des chiffres hexdcimaux"
+
+#~ msgid "Hex escape at %0 out of range"
+#~ msgstr "chappement hexadcimal %0 hors limite"
+
+#~ msgid "Escape sequence at %0 out of range for character"
+#~ msgstr "squence d'chappement %0 hors limite pour le type caractre"
+
+#~ msgid "hex escape out of range"
+#~ msgstr "chappement hexadcimal hors limite"
+
+#~ msgid "non-ANSI-standard escape sequence, `\\%c'"
+#~ msgstr "squence d'chappement n'est pas ANSI standard: \\%c'"
+
+#~ msgid "non-ISO escape sequence `\\%c'"
+#~ msgstr "squence d'chappement non ISO \\%c'"
+
+#~ msgid "unknown escape sequence `\\%c'"
+#~ msgstr "squence d'chappement inconnue: \\%c'"
+
+#~ msgid "unknown escape sequence: `\\' followed by char code 0x%x"
+#~ msgstr "squence d'chappement inconnue: \\ suivi par le code de caractres 0x%x"
+
+#~ msgid "badly formed directive -- no closing quote"
+#~ msgstr "directive mal compose -- pas de guillement ou d'apostrophe de fermeture"
+
+#~ msgid "#-lines for entering and leaving files don't match"
+#~ msgstr "#-lines pour entrer et quitter les fichiers ne concordent pas"
+
+#~ msgid "bad directive -- missing close-quote"
+#~ msgstr "directive errone -- manque un apostrophe ou un guillemet de fermeture"
+
+#~ msgid "invalid #ident"
+#~ msgstr "#ident invalide"
+
+#~ msgid "undefined or invalid # directive"
+#~ msgstr "directive # non dfinie ou invalide"
+
+#~ msgid "invalid #line"
+#~ msgstr "#ligne invalide"
+
+#~ msgid "use `#line ...' instead of `# ...' in first line"
+#~ msgstr "utiliser #ligne ... au lieu de # ... dans la premire ligne"
+
+#~ msgid "invalid #-line"
+#~ msgstr "#-line invalide"
+
+#~ msgid "Null character at %0 -- line ignored"
+#~ msgstr "caractre null %0 -- ligne ignore"
+
+#~ msgid "INCLUDE at %0 not the only statement on the source line"
+#~ msgstr "INCLUDE %0 n'est pas la seule dclaration sur la ligne source"
+
+#~ msgid "ASSIGNed FORMAT specifier is too small"
+#~ msgstr "spcificateur dans ASSIGN FORMAT est trop petit"
+
+#~ msgid "SELECT CASE on CHARACTER type (at %0) not supported -- sorry"
+#~ msgstr "SLECTION du CASE sur un type CHARACTER ( %0) n'est pas support -- dsol"
+
+#~ msgid "SELECT (at %0) has duplicate cases -- check integer overflow of CASE(s)"
+#~ msgstr "SELECT ( %0) possde des cases doubles -- vrifier le dbordement d'entier des CASES"
+
+#~ msgid "ASSIGN to variable that is too small"
+#~ msgstr "ASSIGN la variable est trop petit"
+
+#~ msgid "ASSIGNed GOTO target variable is too small"
+#~ msgstr "variable cible par ASSIGN GOTO est trop petite"
+
+#~ msgid "Local adjustable symbol `%A' at %0"
+#~ msgstr "Symbole local ajustable %A %0"
+
+#~ msgid "data initializer on host with different endianness"
+#~ msgstr "initialiseur de donnes sur l'hte a un alignement des octets diffrent (endian)"
+
+#~ msgid "-fvxt-not-f90 no longer supported -- try -fvxt"
+#~ msgstr "-fvxt-not-f90 n'est plus support -- essayer -fvxt"
+
+#~ msgid "-ff90-not-vxt no longer supported -- try -fno-vxt -ff90"
+#~ msgstr "-ff90-not-vxt n'est plus support -- essayer -fno-vxt -ff90"
+
+#~ msgid "-fdebug-kludge is disabled, use normal debugging flags"
+#~ msgstr "-fdebug-kludge est dsactiv, utiliser le fanion normal de mise au point"
+
+#~ msgid "Missing first operand for binary operator at %0"
+#~ msgstr "premire oprande manquante pour l'oprateur biunaire %0"
+
+#~ msgid "Zero-length character constant at %0"
+#~ msgstr "constante caractre de longueur zro %0"
+
+#~ msgid "Invalid token at %0 in expression or subexpression at %1"
+#~ msgstr "lment lexical invalide %0 dans l'expression ou la sous-expression %1"
+
+#~ msgid "Missing operand for operator at %1 at end of expression at %0"
+#~ msgstr "Oprande manquante pour l'oprateur %1 la fin de l'expresssion %0"
+
+#~ msgid "Label %A already defined at %1 when redefined at %0"
+#~ msgstr "tiquette %A dj dfinie %1 et redfinie %0"
+
+#~ msgid "Unrecognized character at %0 [info -f g77 M LEX]"
+#~ msgstr "Caractre non reconnue %0 [info -f g77 M LEX]"
+
+#~ msgid "Label definition %A at %0 on empty statement (as of %1)"
+#~ msgstr "Dfinition d'tiquette %A %0 dans une dclaration vide (comme %1)"
+
+#~ msgid "Invalid first character at %0 [info -f g77 M LEX]"
+#~ msgstr "Premier caractre invalide %0 [info -f g77 M LEX]"
+
+#~ msgid "Line too long as of %0 [info -f g77 M LEX]"
+#~ msgstr "Ligne trop longue tel que %0 [info -f g77 M LEX]"
+
+#~ msgid "Non-numeric character at %0 in label field [info -f g77 M LEX]"
+#~ msgstr "Caractre non-numrique %0 dans le champ d'tiquette [info -f g77 M LEX]"
+
+#~ msgid "Label number at %0 not in range 1-99999"
+#~ msgstr "Numro d'tiquette %0 n'est pas entre les bornes 1-99999"
+
+#~ msgid "At %0, '!' and '/*' are not valid comment delimiters"
+#~ msgstr " %0, ! et /* ne sont pas des dlimiteurs de commentaire valides"
+
+#~ msgid "Continuation indicator at %0 must appear in column 6 [info -f g77 M LEX]"
+#~ msgstr "Indicateur de continuation %0 doit apparatre en colonne 6 [info -f g77 M LEX]"
+
+#~ msgid "Label at %0 invalid with continuation line indicator at %1 [info -f g77 M LEX]"
+#~ msgstr "tiquette invalide %0 avec l'indicateur de continuation de ligne %1 [info -f g77 M LEX]"
+
+#~ msgid "Character constant at %0 has no closing apostrophe at %1"
+#~ msgstr "constante caractre %0 n'a pas d'apostrophe de fermeture %1"
+
+#~ msgid "Hollerith constant at %0 specified %A more characters than are present as of %1"
+#~ msgstr "Constante Hollerith %0 spcifie %A a plus de caractres que ceux prsents dans %1"
+
+#~ msgid "Missing close parenthese at %0 needed to match open parenthese at %1"
+#~ msgstr "Paranethse fermante amnquante %0 ncessaire pour pairer la parenthse ouverte %1"
+
+#~ msgid "Integer at %0 too large"
+#~ msgstr "entier %0 est trop grand"
+
+#~ msgid "Period at %0 not followed by digits for floating-point number or by `NOT.', `TRUE.', or `FALSE.'"
+#~ msgstr "Priode %0 n'est pas suivie de chiffres en nombre flottant ou de NOT., TRUE., ou FALSE. "
+
+#~ msgid "Missing close-period between `.%A' at %0 and %1"
+#~ msgstr "Fermeture de priode manquante entre .%A %0 et %1"
+
+#~ msgid "Invalid exponent at %0 for real constant at %1; nondigit `%A' in exponent field"
+#~ msgstr "Exposant invalide %0 pour la constante relle %1; %A n'est pas un chiffre dans le champ de l'exposant"
+
+#~ msgid "Missing value at %1 for real-number exponent at %0"
+#~ msgstr "Valeur manquante %1 pour l'exposant d'un nombre real %0"
+
+#~ msgid "Expected binary operator between expressions at %0 and at %1"
+#~ msgstr "Oprateur binaire attendu entre les expressions %0 et %1"
+
+#~ msgid "Semicolon at %0 is an invalid token"
+#~ msgstr "Point-virgule ( ; ) en %0 est un lment lexical invalide"
+
+#~ msgid "Extraneous comma in FORMAT statement at %0"
+#~ msgstr "Virgule superflue dans la dclaration de FORMAT %0"
+
+#~ msgid "Missing comma in FORMAT statement at %0"
+#~ msgstr "Virgule manquante dans la dclaration de FORMAT %0"
+
+#~ msgid "Spurious sign in FORMAT statement at %0"
+#~ msgstr "faux signe dans la dclaration de FORMAT %0"
+
+#~ msgid "Spurious number in FORMAT statement at %0"
+#~ msgstr "faux nombre dans la dclaration de FORMAT %0"
+
+#~ msgid "Spurious text trailing number in FORMAT statement at %0"
+#~ msgstr "faux texte terminant le nombre dans la dclaration de FORMAT %0"
+
+#~ msgid "Unrecognized FORMAT specifier at %0"
+#~ msgstr "spcificateur de FORMAT non reconnu %0"
+
+#~ msgid "Missing close-parenthese(s) in FORMAT statement at %0"
+#~ msgstr "Parenthse(s) fermante(s) manquante(s) dans la dclaration de FORMAT %0"
+
+#~ msgid "Missing number following period in FORMAT statement at %0"
+#~ msgstr "Nombre manquant suivant la priode dans la dclaration de FORMAT %0"
+
+#~ msgid "Missing number following `E' in FORMAT statement at %0"
+#~ msgstr "Nombre manquant suivant E dans la dclaration de FORMAT %0"
+
+#~ msgid "Spurious trailing comma preceding terminator at %0"
+#~ msgstr "fausse virgule qui trane dans la prcdente terminaison %0"
+
+#~ msgid "At %0, specify OPERATOR instead of ASSIGNMENT for INTERFACE statement not specifying the assignment operator (=)"
+#~ msgstr " %0, spcifier l'OPRATEUR au lieu de l'AFFECTATION pour le dclaration d'INTERFACE ne spcifiant pas d'oprateur d'affectation (=)"
+
+#~ msgid "At %0, specify ASSIGNMENT instead of OPERATOR for INTERFACE statement specifying the assignment operator (=)"
+#~ msgstr " %0, spcifier une AFFECTATION au lieu d'un OPRATEUR dans la dclaration d'INTERFACE spcifiant un oprateur d'affectation (=)"
+
+#~ msgid "Cannot specify =initialization-expr at %0 unless `::' appears before list of objects"
+#~ msgstr "Ne peut spcifier une expression d'initialisation = %0 moins que :: n'apparaissae avant la liste d'objets"
+
+#~ msgid "Reference to label at %1 inconsistent with its definition at %0"
+#~ msgstr "La rfrence l'tiquette %1 est inconsistente avec sa dfinition %0"
+
+#~ msgid "Reference to label at %1 inconsistent with earlier reference at %0"
+#~ msgstr "La rfrence l'tiquette %1 est inconsistente avec sa prcdente rfrence %0"
+
+#~ msgid "DO-statement reference to label at %1 follows its definition at %0"
+#~ msgstr "Dclaration DO utilisant une rfrence l'tiquette %1 suis sa dfinition %0"
+
+#~ msgid "Reference to label at %1 is outside block containing definition at %0"
+#~ msgstr "Rfrence l'tiquette %1 est en dehors du bloc contenant la dfinition %0"
+
+#~ msgid "DO-statement references to label at %0 and %2 separated by unterminated block starting at %1"
+#~ msgstr "Dclaration DO utilisant des rfrences l'tiquette %0 et %2 spars par un bloc non complet dbutant %1"
+
+#~ msgid "DO-statement reference to label at %0 and label definition at %2 separated by unterminated block starting at %1"
+#~ msgstr "Dclaration DO utilisant une rfrence l'tiquette %0 et la dfinition d'tiquette %2 spars par un bloc non complet dbutant %1"
+
+#~ msgid "Label definition at %0 invalid on this kind of statement"
+#~ msgstr "dfinition d'tiquette %0 invalide pour ce genre de dclaration"
+
+#~ msgid "Statement at %0 invalid in this context"
+#~ msgstr "dclaration %0 invalide dans ce contexte"
+
+#~ msgid "Statement at %0 invalid in context established by statement at %1"
+#~ msgstr "dclaration %0 invalide dans le contexte tabli par la dclaration %1"
+
+#~ msgid "Statement at %0 must specify construct name specified at %1"
+#~ msgstr "Dclaration %0 doit spcifier un nom de construit spcifi %1"
+
+#~ msgid "Construct name at %0 superfluous, no construct name specified at %1"
+#~ msgstr "Nom de construit %0 superflue, aucun nom de construit spcifi %1"
+
+#~ msgid "Construct name at %0 not the same as construct name at %1"
+#~ msgstr "Nom de construit %0 n'est pas le mme que celui %1"
+
+#~ msgid "Construct name at %0 does not match construct name for any containing DO constructs"
+#~ msgstr "Nom de construit %0 ne concorde pas avec un nom de construit contenant des construits DO"
+
+#~ msgid "Label definition missing at %0 for DO construct specifying label at %1"
+#~ msgstr "Dfinition d'tiquette manquante %0 pour le construit DO spcifiant l'tiquette %1"
+
+#~ msgid "Statement at %0 follows ELSE block for IF construct at %1"
+#~ msgstr "Dclaration %0 suivant un bloc ELSE pour le construit IF %1"
+
+#~ msgid "No label definition for FORMAT statement at %0"
+#~ msgstr "pas de dfinition d'tiquette pour la dclaration de FORMAT %0"
+
+#~ msgid "Second occurrence of ELSE WHERE at %0 within WHERE at %1"
+#~ msgstr "Seconde occurente de ELSE WHERE %0 l'intrieur du WHERE %1"
+
+#~ msgid "END statement at %0 missing `%A' keyword required for internal or module procedure(s) bounded by %1"
+#~ msgstr "dclaration END %0 manquante mot cl %A requis pour une procdure interne ou un module li %1"
+
+#~ msgid "MODULE PROCEDURE statement at %0 disallowed because INTERFACE at %1 specifies no generic name, operator, or assignment"
+#~ msgstr "dclaration de MODULE PROCEDURE %0 non permise parce que l'INTERFACE %1 ne spcifie pas de nom gnrique, d'oprateur ou d'affectation"
+
+#~ msgid "BLOCK DATA name at %0 superfluous, no name specified at %1"
+#~ msgstr "nom du BLOCK DATA %0 superflue, aucun nom spcifi %1"
+
+#~ msgid "Program name at %0 superfluous, no PROGRAM statement specified at %1"
+#~ msgstr "nom de programme %0 superflue, aucune dclaration PROGRAM spcifi %1"
+
+#~ msgid "Program unit name at %0 not the same as name at %1"
+#~ msgstr "nom de l'unit programme %0 n'est pas le mme que le nom %1"
+
+#~ msgid "Type name at %0 not the same as name at %1"
+#~ msgstr "Nom de type %0 n'est pas le mme que le nom %1"
+
+#~ msgid "End of source file before end of block started at %0"
+#~ msgstr "Fin du fichier source avant la fin du bloc dbutant %0"
+
+#~ msgid "Undefined label, first referenced at %0"
+#~ msgstr "tiquette non dfinie, premire rfrence %0"
+
+#~ msgid "SAVE statement or attribute at %1 cannot be specified along with SAVE statement or attribute at %0"
+#~ msgstr "dclaration SAVE ou attribut %1 ne peut tre spcifie en mme temps avec la dclaration SAVE ou l'attribut %0"
+
+#~ msgid "PUBLIC or PRIVATE statement at %1 cannot be specified along with PUBLIC or PRIVATE statement at %0"
+#~ msgstr "dclaration PUBLIC ou PRIVATE %1 ne peut tre spcifi en mme temps avec la dclaration PUBLIC ou PRIVATE %0"
+
+#~ msgid "RETURN statement at %0 invalid within a main program unit"
+#~ msgstr "dclaration RETURN %0 invalide l'intrieur de l'unit du programme principal"
+
+#~ msgid "Alternate return specifier at %0 invalid within a main program unit"
+#~ msgstr "spcificateur alternatif de retour %0 invalide l'intrieur de l'unit du programme principal"
+
+#~ msgid "Alternate return specifier at %0 invalid within a function"
+#~ msgstr "spcificateur alternatif de retour %0 invalide l'intrieur de la fonction"
+
+#~ msgid "Access specifier or PRIVATE statement at %0 invalid for derived-type definition within other than the specification part of a module"
+#~ msgstr "spcificateur d'accs ou dclaration PRIVATE %0 invalide pour une dfinition de type driv l'intrieur d'autre chose que la portion de spcification d'un module"
+
+#~ msgid "Access specifier at %0 must immediately follow derived-type statement at %1 with no intervening statements"
+#~ msgstr "Spcificateur d'accs %0 doit suivre immdaitement la dclaration de type driv %1 sans intervention de dclarations"
+
+#~ msgid "No components specified as of %0 for derived-type definition beginning at %1"
+#~ msgstr "Aucun composant spcifi tel que %0 pour une dfinition de type driv dbutant %1"
+
+#~ msgid "No components specified as of %0 for structure definition beginning at %1"
+#~ msgstr "Aucun composant spcifi tel que %0 pour la dfinition de structure dbutant %1"
+
+#~ msgid "Missing structure name for outer structure definition at %0"
+#~ msgstr "Nom de structure manquant pour la dfinition de structure externe %0"
+
+#~ msgid "Field names at %0 for outer structure definition -- specify them in a subsequent RECORD statement instead"
+#~ msgstr "Noms de champs %0 pour la dfinition externe de structure -- les spcifier dans une dclaration subsquente de dclaration RECORD la place"
+
+#~ msgid "Missing field name(s) for structure definition at %0 within structure definition at %1"
+#~ msgstr "noms de champs manquant pour la dfinition de strcutreu %0 l'intrieur de la dfinition de structure %1"
+
+#~ msgid "No components specified as of %0 for map beginning at %1"
+#~ msgstr "Aucun composant spcifi tel que %0 pour la map dbutant %1"
+
+#~ msgid "Zero or one maps specified as of %0 for union beginning at %1 -- at least two are required"
+#~ msgstr "Aucune ou une map spcifi tel que %0 pour l'union dbutant %1 -- au moins deux sont requises"
+
+#~ msgid "Missing %A specifier in statement at %0"
+#~ msgstr "spcificateur %A manquant dans la dclaration %0"
+
+#~ msgid "Items in I/O list starting at %0 invalid for namelist-directed I/O"
+#~ msgstr "Items dans la liste E/S dbutant %0 invalide pour un liste nomm d'E/S diriges"
+
+#~ msgid "Conflicting I/O control specifications at %0 and %1"
+#~ msgstr "spcifications conflictuelles de contrle d'E/S %0 et %1"
+
+#~ msgid "No UNIT= specifier in I/O control list at %0"
+#~ msgstr "aucun spcificateur UNIT=1 dans la liste de contrle d'E/S %0"
+
+#~ msgid "Specification at %0 requires ADVANCE=`NO' specification in same I/O control list"
+#~ msgstr "spcification %0 requiert la spcification ADVANCE= NO dans la mme liste de contrel d'E/S"
+
+#~ msgid "Specification at %0 requires explicit FMT= specification in same I/O control list"
+#~ msgstr "spcification %0 requiert la spcification explicite FMT= dans la mme liste de contrel d'E/S"
+
+#~ msgid "Second occurrence of CASE DEFAULT at %0 within SELECT CASE at %1"
+#~ msgstr "Seconde occurence du CASE DEFAULT %0 l'intreur de SELECT CASE %1"
+
+#~ msgid "Duplicate or overlapping case values/ranges at %0 and %1"
+#~ msgstr "duplication ou chevauchement des valeurs/plages de case %0 et %1"
+
+#~ msgid "Type and/or kind-type parameter disagreement between CASE value or value within range at %0 and SELECT CASE at %1"
+#~ msgstr "Dsaccord du paramtre du Type et/ou type de sorte entre la valeur du CASE ou la valeur l'intrieur de l'tendue %0 et le SELECT CASE %1"
+
+#~ msgid "Range specification at %0 invalid for CASE statement within logical-type SELECT CASE statement"
+#~ msgstr "spcification d'tendue %0 invalide pour la dclaration du CASE l'intrieur de la dclaration du type logique du SELECT CASE"
+
+#~ msgid "Fortran 90 feature at %0 unsupported"
+#~ msgstr "option FORTRAN 90 %0 non supporte"
+
+#~ msgid "Invalid declaration of or reference to symbol `%A' at %0 [initially seen at %1]"
+#~ msgstr "dclaration invalide ou rfrence au symboe %A %0 [initialement vu %1]"
+
+#~ msgid "Null element at %0 for array reference at %1"
+#~ msgstr "lment nul %0 pour la rfrence au tableau %1"
+
+#~ msgid "Too few elements (%A missing) as of %0 for array reference at %1"
+#~ msgstr "Trop peu d'lments (%A manquant) tel que %0 pour la rfrence au tableau %1"
+
+#~ msgid "Too many elements as of %0 for array reference at %1"
+#~ msgstr "Trop peu d'lments tel que %0 pour la rfrence au tableau %1"
+
+#~ msgid "Missing colon as of %0 in substring reference for %1"
+#~ msgstr ": manquant dans %0 dans la sous-chane de rfrence pour %1"
+
+#~ msgid "Invalid use at %0 of substring operator on %1"
+#~ msgstr "utilisation invalide %0 de l'oprateur de sous-chane sur %1"
+
+#~ msgid "Substring begin/end point at %0 out of defined range"
+#~ msgstr "point begin/end de la sous-chane %0 en dehors de la plage dfinie"
+
+#~ msgid "Array element value at %0 out of defined range"
+#~ msgstr "Valeur de l'lment du tableau %0 en dehors de la plage dfinie"
+
+#~ msgid "Expression at %0 has incorrect data type or rank for its context"
+#~ msgstr "expression %0 a un type de donnes ou un rang incorrect pour son contexte"
+
+#~ msgid "Division by 0 (zero) at %0 (IEEE not yet supported)"
+#~ msgstr "division par 0 (zro) %0 (IEEE pas encore support)"
+
+#~ msgid "%A step count known to be 0 (zero) at %0"
+#~ msgstr "valeur du pas %A connu pour tre 0 (zro) %0"
+
+#~ msgid "%A end value plus step count known to overflow at %0"
+#~ msgstr "valeur finale %A plus la valeur du pas connus pour dborder %0"
+
+#~ msgid "%A begin, end, and step-count values known to result in implementation-dependent behavior due to overflow(s) in intermediate calculations at %0"
+#~ msgstr "valeur de dpart, fin et du pas %A connu pour rsulter dans un comportement dpendant de l'implantation en raison d'un dbordement dans les calculs intermdiaires %0"
+
+#~ msgid "%A begin, end, and step-count values known to result in no iterations at %0"
+#~ msgstr "valeur de dpart, fin et du pas %A connus pour ne faire aucune itration %0"
+
+#~ msgid "Type disagreement between expressions at %0 and %1"
+#~ msgstr "dsaccord de type entre les expressions %0 et %1"
+
+#~ msgid "No specification for implied-DO iterator `%A' at %0"
+#~ msgstr "aucune spcification pour l'itration DO-implicite %A %0"
+
+#~ msgid "Gratuitous parentheses surround implied-DO construct at %0"
+#~ msgstr "parenthses gratuites entourant le construit DO implicite %0"
+
+#~ msgid "Zero-size specification invalid at %0"
+#~ msgstr "spcification de taille zro invalide %0"
+
+#~ msgid "Zero-size array at %0"
+#~ msgstr "tableau de taille zro %0"
+
+#~ msgid "Target machine does not support complex entity of kind specified at %0"
+#~ msgstr "machine cible ne supporte par l'entit complexe de la sorte spcifi %0"
+
+#~ msgid "Target machine does not support DOUBLE COMPLEX, specified at %0"
+#~ msgstr "machine cible ne supporte pas DOUBLE COMPLEX spcifi %0"
+
+#~ msgid "Attempt to raise constant zero to a power at %0"
+#~ msgstr "Tentative d'augmentation d'une constante de valeur zro la puissance %0"
+
+#~ msgid "Reference to generic intrinsic `%A' at %0 could be to form %B or %C"
+#~ msgstr "rfrence un intrinsque gnrique %A %0 pourrait tre de la forme %B ou %C"
+
+#~ msgid "Ambiguous use of intrinsic `%A' at %0 [info -f g77 M CMPAMBIG]"
+#~ msgstr "utilisation ambiqu de l'intrinsque %A %0 [info -f g77 M CMPAMBIG]"
+
+#~ msgid "Intrinsic `%A' referenced %Bly at %0, %Cly at %1 [info -f g77 M EXPIMP]"
+#~ msgstr "intrinsque %A rfrenc %Bly %0, %Cly %1 [info -f g77 M EXPIMP]"
+
+#~ msgid "Same name `%A' used for %B at %0 and %C at %1 [info -f g77 M INTGLOB]"
+#~ msgstr "Mme nom %A utilis pour %B %0 et %C %1 [info -f g77 M INTGLOB]"
+
+#~ msgid "Explicit type declaration for intrinsic `%A' disagrees with invocation at %0"
+#~ msgstr "dclaration de type explicite pour l'intrinsque %A en dsaccord avec l'invocation %0"
+
+#~ msgid "Unable to open INCLUDE file `%A' at %0"
+#~ msgstr "incapable d'ouvrir le fichier INCLUDE %A %0"
+
+#~ msgid "Null argument at %0 for statement function reference at %1"
+#~ msgstr "argument nul %0 pour la dclaration de la rfrence de fonction %1"
+
+#~ msgid "Null argument at %0 for procedure invocation at %1"
+#~ msgstr "arguement nul %0 pour l'invocation de la procdure %1"
+
+#~ msgid "%A too few arguments (starting with dummy argument `%B') as of %0 for statement function reference at %1"
+#~ msgstr "trop peu d'arguments %A (dbutant avec l'argument factice %B ) tel que %0 pour la dclaration de la rfrence de fonction %1"
+
+#~ msgid "%A too many arguments as of %0 for statement function reference at %1"
+#~ msgstr "trop peu d'arguments %A tel que %0 pour la dclaration de la rfrence de fonction %1"
+
+#~ msgid "Array supplied at %1 for dummy argument `%A' in statement function reference at %0"
+#~ msgstr "tableau fourni %1 pour l'argument factice %A dans la dclaration de rfrence de fonction %0"
+
+#~ msgid "Unsupported FORMAT specifier at %0"
+#~ msgstr "spcificateur de FORMAT non support %0"
+
+#~ msgid "Variable-expression FORMAT specifier at %0 -- unsupported"
+#~ msgstr "expression variable dans le spcificateur de FORMAT %0 -- non supporte"
+
+#~ msgid "Unsupported VXT statement at %0"
+#~ msgstr "dclaration VXT non support %0"
+
+#~ msgid "Attempt to specify second initial value for `%A' at %0"
+#~ msgstr "Tentative de spcifier une seconde valeur initial pour %A %0"
+
+#~ msgid "Too few initial values in list of initializers for `%A' at %0"
+#~ msgstr "Trop peu de valeurs initiales dans la liste des initialisations pour %A %0"
+
+#~ msgid "Too many initial values in list of initializers starting at %0"
+#~ msgstr "Trop de valeurs initiales dans la liste des initialisations dbutant %0"
+
+#~ msgid "Array or substring specification for `%A' out of range in statement at %0"
+#~ msgstr "Tableau ou sous-chane de spcification pour %A hors limite dans la dclaration %0"
+
+#~ msgid "Array subscript #%B out of range for initialization of `%A' in statement at %0"
+#~ msgstr "souscript de tableau #%B hors limite pour l'initialisation de %A dans la dclaration %0"
+
+#~ msgid "Implied do-loop step count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "le pas implicite de la boucle DO a un compte de 0 (zro) pour la variable itrative %A dans la dclaration %0 "
+
+#~ msgid "Implied do-loop iteration count of 0 (zero) for iteration variable `%A' in statement at %0"
+#~ msgstr "le compte implicite de la boucle DO est 0 (zro) pour la variable itrative %A dans la dclaration %0 "
+
+#~ msgid "Not an integer constant expression in implied do-loop in statement at %0"
+#~ msgstr "N'est pas un entier dans l'expression de la constante dans la dclaration implicite de la boucle DO %0"
+
+#~ msgid "Attempt to specify second initial value for element of `%A' at %0"
+#~ msgstr "Tentative de spcifier une seconde valeur initiale pour l'lment %A %0"
+
+#~ msgid "Attempt to EQUIVALENCE common areas `%A' and `%B' at %0"
+#~ msgstr "Tentative de dfinit une zone commmue par EQUIVALENCE %A et %B %0"
+
+#~ msgid "Can't place `%A' as directed by EQUIVALENCE due to alignment restrictions"
+#~ msgstr "ne peut insrer %A tel que demand par EQUIVALENCE en raison des restrictions d'alignement"
+
+#~ msgid "Mismatched EQUIVALENCE requirements for placement of `%A' at both %C and %D bytes offset from `%B'"
+#~ msgstr "Dsaccord des conditions requises par EQUIVALENCE pour l'emplacement de %A aux deux dcalages d'octets %C et %D partir de %B"
+
+#~ msgid "Array or substring specification for `%A' out of range in EQUIVALENCE statement"
+#~ msgstr "spcification de tableau ou de sous-chane pour %A est hors limite dans la dclaration EQUIVALENCE"
+
+#~ msgid "Substring of non-CHARACTER entity `%A' in EQUIVALENCE statement"
+#~ msgstr "Sous-chane de non caractres %A dans la dclaration EQUIVALENCE"
+
+#~ msgid "Array reference to scalar variable `%A' in EQUIVALENCE statement"
+#~ msgstr "rfrence de tableau vers une variable scalaire %A dans une dclaraion EQUIVALENCE"
+
+#~ msgid "Array subscript #%B out of range for EQUIVALENCE of `%A'"
+#~ msgstr "souscript de tableau #%B hors limite pour la dclaration EQUIVALENCE de %A "
+
+#~ msgid "Attempt to extend COMMON area beyond its starting point via EQUIVALENCE of `%A'"
+#~ msgstr "Tentative d'tendre la zone COMMON au del de son point de dpart via EQUIVALENCE de %A "
+
+#~ msgid "Too few elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "Trop peu d'lmens dans la rfrence au tableau %A dans la dclaration d'EQUIVALENCE"
+
+#~ msgid "Too many elements in reference to array `%A' in EQUIVALENCE statement"
+#~ msgstr "Trop d'lmens dans la rfrence au tableau %A dans la dclaration d'EQUIVALENCE"
+
+#~ msgid "Mixed CHARACTER and non-CHARACTER types via COMMON/EQUIVALENCE -- for example, `%A' and `%B'"
+#~ msgstr "Mlange de type caractre et de non caractre via le COMMON/EQUIVALENCE -- par exemple %A et %B "
+
+#~ msgid "Return value `%A' for FUNCTION at %0 not referenced in subprogram"
+#~ msgstr "valeur retourne %A pour FUNCTION %0 n'est pas rfrenc dans le sous-programme"
+
+#~ msgid "Common block `%A' is SAVEd, explicitly or implicitly, at %0 but not SAVEd at %1"
+#~ msgstr "bloc commun %A est sauvegard, explicitement ou implicitement, %0 mais non pas %1"
+
+#~ msgid "Common block `%A' is %B %D in length at %0 but %C %E at %1"
+#~ msgstr "bloc commun %A est %B %D en longueur %0 mais %C %E %1"
+
+#~ msgid "Blank common initialized at %0"
+#~ msgstr "commun vide initialis %0"
+
+#~ msgid "Intrinsic `%A' is passed as actual argument at %0 but not explicitly declared INTRINSIC"
+#~ msgstr "intrinsque %A est pass comme argument actuel %0 mais non pas explicitment dclar INTRINSIC"
+
+#~ msgid "External procedure `%A' is passed as actual argument at %0 but not explicitly declared EXTERNAL"
+#~ msgstr "procdure externe %A est pass comme argument actuel %0 mais non pas dclar explicitement dclar EXTERNAL"
+
+#~ msgid "Character `%A' (for example) is upper-case in symbol name at %0"
+#~ msgstr "caractre %A (par exemple) est en majuscule dans le nom de symbole %0"
+
+#~ msgid "Character `%A' (for example) is lower-case in symbol name at %0"
+#~ msgstr "caractre %A (par exemple) est en minuscule dans le nom de symbole %0"
+
+#~ msgid "Character `%A' not followed at some point by lower-case character in symbol name at %0"
+#~ msgstr "caractre %A n'est pas suivi par un caractre en minuscule dans le nom de symbole %0"
+
+#~ msgid "Initial character `%A' is lower-case in symbol name at %0"
+#~ msgstr "caractre initial %A est en minuscule dans le nom de symbole %0"
+
+#~ msgid "NAMELIST not adequately supported by run-time library for source files with case preserved"
+#~ msgstr "nom de liste n'est pas adquatement support par la bibliothque d'excution pour les fichiers source avec une casse prserve"
+
+#~ msgid "Nested %% construct (%%VAL, %%REF, or %%DESCR) at %0"
+#~ msgstr "construit %% imbriqu (%%VAL, %%REF ou %%DESCR) %0"
+
+#~ msgid "Statement at %0 invalid in BLOCK DATA program unit at %1"
+#~ msgstr "Dclaration %0 invalide dans le bloc de donne de l'unit programme %1"
+
+#~ msgid "Truncating characters on right side of character constant at %0"
+#~ msgstr "troncation de caractres du ct droit de la constante caractres %0"
+
+#~ msgid "Truncating characters on right side of hollerith constant at %0"
+#~ msgstr "troncation de caractres du ct droit de la constante Hollerith %0"
+
+#~ msgid "Truncating non-zero data on left side of numeric constant at %0"
+#~ msgstr "troncation de donnes non zro du ct gauche de la constante numrique %0"
+
+#~ msgid "Truncating non-zero data on left side of typeless constant at %0"
+#~ msgstr "troncation de donnes non zro du ct gauche de la constante sans type %0"
+
+#~ msgid "Typeless constant at %0 too large"
+#~ msgstr "constante sans type %0 trop grande"
+
+#~ msgid "First-column ampersand continuation at %0"
+#~ msgstr "& en premire colonne de continuation %0"
+
+#~ msgid "Global name `%A' defined at %0 already defined at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "nom global %A dfini %0 est dj dfini %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Global name `%A' is %B at %0 but is %C at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "nom global %A est %B %0 mais est %C %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Global name `%A' at %0 has different type at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "nom global %A %0 a un type diffrent %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Too %B arguments passed to `%A' at %0 versus definition at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "trop %B d'arguments pass %A %0 par rapport la dfinition %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Too %B arguments for `%A' at %0 versus invocation at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "trop %B d'arguments pour %A %0 par rapport l'invocation %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Argument #%B of `%A' is %C at %0 but is %D at %1 [info -f g77 M GLOBALS]"
+#~ msgstr "Argument #%B de %A est %C %0 mais est %D %1 [info -f g77 M GLOBALS]"
+
+#~ msgid "Array `%A' at %0 is too large to handle"
+#~ msgstr "tableau %A %0 est trop grand pour tre trait"
+
+#~ msgid "Statement function `%A' defined at %0 is not used"
+#~ msgstr "dclaration de fonction %A dfinie %0 n'est pas utilise"
+
+#~ msgid "Intrinsic `%A', invoked at %0, known to be non-Y2K-compliant [info -f g77 M Y2KBAD]"
+#~ msgstr "Intrinsque %A invoqu %0 est connu pour ne pas tre conforme l'An 2000 [info -f g77 M Y2KBAD]"
+
+#~ msgid "Internal compiler error -- cannot perform operation"
+#~ msgstr "erreur interne du compilateur -- ne peut excuter l'opration"
+
+#~ msgid "In unknown kind"
+#~ msgstr "dans une sorte inconnue"
+
+#~ msgid "In entity"
+#~ msgstr "Dans l'entit"
+
+#~ msgid "In function"
+#~ msgstr "Dans la fonction"
+
+#~ msgid "In subroutine"
+#~ msgstr "Dans la sous-routine"
+
+#~ msgid "In program"
+#~ msgstr "Dans le programme"
+
+#~ msgid "In block-data unit"
+#~ msgstr "Dans l'unit du bloc de donnes"
+
+#~ msgid "In common block"
+#~ msgstr "Dans le bloc commun"
+
+#~ msgid "In construct"
+#~ msgstr "Dans le construit"
+
+#~ msgid "In namelist"
+#~ msgstr "Dans la liste de noms"
+
+#~ msgid "In anything"
+#~ msgstr "Dans n'importe quoi"
+
+#~ msgid "internal error in check-init: tree code not implemented: %s"
+#~ msgstr "erreur interne dans check-init: arbre de code n'est pas implant: %s"
+
+#~ msgid "%Jfinal field '%D' may not have been initialized"
+#~ msgstr "%Jchamp final %D peut ne pas avoir t initialis"
+
+#~ msgid "internal error - too many interface type"
+#~ msgstr "erreur interne - trop de type d'interface"
+
+#~ msgid "bad method signature"
+#~ msgstr "mthode de signature errone"
+
+#~ msgid "misplaced ConstantValue attribute (not in any field)"
+#~ msgstr "attribut ConstantValue mal positionn (n'est dans aucun champ)"
+
+#~ msgid "duplicate ConstantValue attribute for field '%s'"
+#~ msgstr "duplication de l'attribut ConstanValue pour le champ %s "
+
+#~ msgid "ConstantValue attribute of field '%s' has wrong type"
+#~ msgstr "attribut ConstanValue du champ %s a un type erron"
+
+#~ msgid "field '%s' not found in class"
+#~ msgstr "champ %s n'a pas t repr dans la classe"
+
+#~ msgid "%Jabstract method in non-abstract class"
+#~ msgstr "%Jmthode abstraite dans une classe non abstraite"
+
+#~ msgid "%Jnon-static method '%D' overrides static method"
+#~ msgstr "%Jmthode non statique %D crase la mthode statique"
+
+#~ msgid "%J'%D' used prior to declaration"
+#~ msgstr "%J %D utilis prcdemment avant sa dclaration"
+
+#~ msgid "declaration of `%s' shadows a parameter"
+#~ msgstr "la dclaration de %s masque un paramtre"
+
+#~ msgid "declaration of `%s' shadows a symbol from the parameter list"
+#~ msgstr "la dclaration de %s masque un symbole de la liste des paramtres"
+
+#~ msgid "%Jlabel '%D' used but not defined"
+#~ msgstr "%Jtiquette %D utilise mais non dfinie"
+
+#~ msgid "%Jlabel '%D' defined but not used"
+#~ msgstr "%Jtiquette %D dfinie mais non utilise"
+
+#~ msgid "%JIn %D: overlapped variable and exception ranges at %d"
+#~ msgstr "%JDans %D: chevauchement de variable et plage d'exception %d"
+
+#~ msgid "bad type in parameter debug info"
+#~ msgstr "type erron dans les paramtres d'informations de mise au point"
+
+#~ msgid "%Jbad PC range for debug info for local '%D'"
+#~ msgstr "%Jplage PC erron pour les infos de dbug pour la var. locale %D "
+
+#~ msgid "stack underflow - dup* operation"
+#~ msgstr "sous dbordement de la pile - opration dup*"
+
+#~ msgid "reference `%s' is ambiguous: appears in interface `%s' and interface `%s'"
+#~ msgstr "rfrence %s est ambigue: apparat dans l'interface %s et l'interface %s "
+
+#~ msgid "field `%s' not found"
+#~ msgstr "champ %s n'a pas t trouv"
+
+#~ msgid "ret instruction not implemented"
+#~ msgstr "instruction ret n'est pas implante"
+
+#~ msgid "method '%s' not found in class"
+#~ msgstr "mthode %s n'a pas t repr dans la classe"
+
+#~ msgid "failed to find class '%s'"
+#~ msgstr "chec de reprage de la classe %s "
+
+#~ msgid "class '%s' has no method named '%s' matching signature '%s'"
+#~ msgstr "classe %s n'a pas de mthode nomme %s concordant avec la signature %s "
+
+#~ msgid "invokestatic on non static method"
+#~ msgstr "invocation statique sur un mthode non statique"
+
+#~ msgid "invokestatic on abstract method"
+#~ msgstr "invocation statique sur un mthode abstraite"
+
+#~ msgid "invoke[non-static] on static method"
+#~ msgstr "invocation non statique sur un mthode statique"
+
+#~ msgid "missing field '%s' in '%s'"
+#~ msgstr "champ %s manquant dans %s "
+
+#~ msgid "mismatching signature for field '%s' in '%s'"
+#~ msgstr "aignature ne concorde pas pour le champ %s dans %s "
+
+#~ msgid "%Jassignment to final field '%D' not in field's class"
+#~ msgstr "%Jaffectation au champ final %D n'est pas le champ de la classe"
+
+#~ msgid "%Jassignment to final static field `%D' not in class initializer"
+#~ msgstr "%Jaffectation au champ statique final %D n'est pas dans l'initialiseur de la classe"
+
+#~ msgid "%Jassignment to final field '%D' not in constructor"
+#~ msgstr "%Jaffectation au champ final %D n'est pas dans le constructeur"
+
+#~ msgid "can't expand %s"
+#~ msgstr "ne peut faire l'expansion de %s"
+
+#~ msgid "invalid PC in line number table"
+#~ msgstr "PC invalide dans la numro de ligne de la table"
+
+#~ msgid "unreachable bytecode from %d to before %d"
+#~ msgstr "bytcode n'est pas atteignable partir de %d jusqu' %d"
+
+#~ msgid "unreachable bytecode from %d to the end of the method"
+#~ msgstr "bytcode n'est pas atteignable partir de %d jusqu' la fin de la mthode."
+
+#~ msgid "unrecogized wide sub-instruction"
+#~ msgstr "sous-instruction trs large non reconnue"
+
+#~ msgid "source file for class `%s' is newer than its matching class file. Source file `%s' used instead"
+#~ msgstr "fichier source de la classe %s est plus rcent que son fichier de classe concordant. Fichier source %s utilis la place."
+
+#~ msgid "bad string constant"
+#~ msgstr "constante chane errone"
+
+#~ msgid "bad value constant type %d, index %d"
+#~ msgstr "valeur %d de type de constante errone, index %d"
+
+#~ msgid "can't reopen %s: %m"
+#~ msgstr "ne peut r-ouvrir %s: %m"
+
+#~ msgid "can't close %s: %m"
+#~ msgstr "ne peut fermer %s: %m"
+
+#~ msgid "cannot find file for class %s"
+#~ msgstr "ne peut reprer le fichier pour la classe %s."
+
+#~ msgid "not a valid Java .class file"
+#~ msgstr "n'est pas un fichier Java .class valide"
+
+#~ msgid "error while parsing constant pool"
+#~ msgstr "error lors de l'analyse syntaxique du lots de constantes"
+
+#~ msgid "error in constant pool entry #%d\n"
+#~ msgstr "erreur dans l'entre #%d du lot de constantes\n"
+
+#~ msgid "reading class %s for the second time from %s"
+#~ msgstr "lecture de la classe %s pour la seconde fois depuis %s"
+
+#~ msgid "error while parsing fields"
+#~ msgstr "erreur lors de l'analyse syntaxique des champs"
+
+#~ msgid "error while parsing methods"
+#~ msgstr "erreur lors de l'analyse syntaxique des mthodes"
+
+#~ msgid "error while parsing final attributes"
+#~ msgstr "erreur lors de l'analyse syntaxique des attributs"
+
+#~ msgid "the `java.lang.Object' that was found in `%s' didn't have the special zero-length `gnu.gcj.gcj-compiled' attribute. This generally means that your classpath is incorrectly set. Use `info gcj \"Input Options\"' to see the info page describing how to set the classpath"
+#~ msgstr " java.lang.Object qui a t repr dans %s n'avait pas l'attribut spcial de longueur zro gnu.gcj.gcj-compiled. Cela gnralement signifie que le chemin d'accs aux classes est incorrectement initialis. Utiliser info gcj \"Input Options\" pour accder aux informations dcrivant comment initialiser le chemin d'accs des classes."
+
+#~ msgid "missing Code attribute"
+#~ msgstr "attribut Code manquant"
+
+#~ msgid "%Hsource file seen twice on command line and will be compiled only once"
+#~ msgstr "%Hfichier source vu deux fois sur la ligne de commande et ne sera compil une seule fois"
+
+#~ msgid "no input file specified"
+#~ msgstr "aucun fichier n'a t spcifi l'entre"
+
+#~ msgid "can't close input file %s: %m"
+#~ msgstr "ne peut fermer le fichier d'entre %s: %m"
+
+#~ msgid "bad zip/jar file %s"
+#~ msgstr "fichier zip/jar erron %s"
+
+#~ msgid "error while reading %s from zip file"
+#~ msgstr "erreur lors de la lecture de %s partir du fichier zip"
+
+#~ msgid "internal error in generate_bytecode_insn - tree code not implemented: %s"
+#~ msgstr "erreur interne dans generate_bytecode_insn - arbre de code n'est pas implant: %s"
+
+#~ msgid "field initializer type mismatch"
+#~ msgstr "type de initialiseur du champ ne concorde pas"
+
+#~ msgid "can't create directory %s: %m"
+#~ msgstr "ne peut crer le rpertoire %s: %m"
+
+#~ msgid "can't create %s: %m"
+#~ msgstr "ne peut crer %s: %m"
+
+#~ msgid "only one of `--print-main', `--list-class', and `--complexity' allowed"
+#~ msgstr "seule une des options --print-main, --list-class et --complexity est permise"
+
+#~ msgid "can't open output file `%s'"
+#~ msgstr "ne peut ouvrir le fichier de sortie %s "
+
+#~ msgid "file not found `%s'"
+#~ msgstr "fichier non repr %s "
+
+#~ msgid "can't specify `-D' without `--main'\n"
+#~ msgstr "ne peut spcifier -D sans --main\n"
+
+#~ msgid "`%s' is not a valid class name"
+#~ msgstr " %s n'est pas un nom de classe valide"
+
+#~ msgid "--resource requires -o"
+#~ msgstr "--resource requiert -o"
+
+#~ msgid "warning: already-compiled .class files ignored with -C"
+#~ msgstr "AVERTISSEMENT: fichiers .class dj compils ignors avec -C"
+
+#~ msgid "cannot specify both -C and -o"
+#~ msgstr "ne peut spcfier la fois -C et -o"
+
+#~ msgid "cannot create temporary file"
+#~ msgstr "ne peut crer un fichier temporaire"
+
+#~ msgid "using both @FILE with multiple files not implemented"
+#~ msgstr "utilis ensemble @FICHIER avec de multiples fichiers bMest pas implant"
+
+#~ msgid "cannot specify `main' class when not linking"
+#~ msgstr "ne peut spcifier la classe main lorsqu'il n'y a pas d'dition de liens"
+
+#~ msgid "can't do dependency tracking with input from stdin"
+#~ msgstr "ne peut faire le tracking de dpendance avec l'entre partir de stdin"
+
+#~ msgid "couldn't determine target name for dependency tracking"
+#~ msgstr "ne peut dterminer le nom de la cible pour le tracking de dpendance"
+
+#~ msgid ""
+#~ "unknown encoding: `%s'\n"
+#~ "This might mean that your locale's encoding is not supported\n"
+#~ "by your system's iconv(3) implementation. If you aren't trying\n"
+#~ "to use a particular encoding for your input file, try the\n"
+#~ "`--encoding=UTF-8' option"
+#~ msgstr ""
+#~ "encodage inconnu: %s \n"
+#~ "Cela signifie que votre encodage local n'est pas support\n"
+#~ "par l'implantation iconv(3) sur votre systme. Si vous n'essayez pas\n"
+#~ "d'utiliser un encodage particulier pour votre fichier d'entre, essayer\n"
+#~ "l'option --encoding=UTF-8."
+
+#~ msgid "can't mangle %s"
+#~ msgstr "ne peut mutiler %s"
+
+#~ msgid "internal error - invalid Utf8 name"
+#~ msgstr "erreur interne - nom Utf8 invalide"
+
+#~ msgid "Missing term"
+#~ msgstr "Terme manquant"
+
+#~ msgid "';' expected"
+#~ msgstr "; attendu"
+
+#~ msgid "Missing name"
+#~ msgstr "Nom manquant"
+
+#~ msgid "'*' expected"
+#~ msgstr " * attendu"
+
+#~ msgid "Class or interface declaration expected"
+#~ msgstr "Dclaration de classe ou d'interface attendue"
+
+#~ msgid "Missing class name"
+#~ msgstr "Nom de classe manquant"
+
+#~ msgid "'{' expected"
+#~ msgstr "{ attendu"
+
+#~ msgid "Missing super class name"
+#~ msgstr "Nom de super classe manquant"
+
+#~ msgid "Missing interface name"
+#~ msgstr "Nom d'interface manquant"
+
+#~ msgid "Missing variable initializer"
+#~ msgstr "Initialiseur de variable manquant"
+
+#~ msgid "Invalid declaration"
+#~ msgstr "Dclaration invalide"
+
+#~ msgid "']' expected"
+#~ msgstr "] attendu"
+
+#~ msgid "Unbalanced ']'"
+#~ msgstr "] non pair"
+
+#~ msgid "Invalid method declaration, method name required"
+#~ msgstr "Dclaration de mthode invalide, nom de mthode requis"
+
+#~ msgid "Identifier expected"
+#~ msgstr "Identificateur attendu"
+
+#~ msgid "Invalid method declaration, return type required"
+#~ msgstr "Dclaration de mthode invalide, type retourn requis"
+
+#~ msgid "')' expected"
+#~ msgstr ") attendu"
+
+#~ msgid "Missing formal parameter term"
+#~ msgstr "Paramtre term formel manquant"
+
+#~ msgid "Missing identifier"
+#~ msgstr "Identificateur manquant"
+
+#~ msgid "Missing class type term"
+#~ msgstr "Type term de classe manquant"
+
+#~ msgid "Invalid interface type"
+#~ msgstr "Type d'interface invalide"
+
+#~ msgid "':' expected"
+#~ msgstr ": attendu"
+
+#~ msgid "Invalid expression statement"
+#~ msgstr "Dclaration d'expression invalide"
+
+#~ msgid "'(' expected"
+#~ msgstr "( attendu"
+
+#~ msgid "Missing term or ')'"
+#~ msgstr "Terme manquant ou )"
+
+#~ msgid "Missing or invalid constant expression"
+#~ msgstr "Expresion de constante manquante ou invalide"
+
+#~ msgid "Missing term and ')' expected"
+#~ msgstr "Terme manquant et ) attendus"
+
+#~ msgid "Invalid control expression"
+#~ msgstr "Expression de contrle invalide"
+
+#~ msgid "Invalid update expression"
+#~ msgstr "Expression de mise jour invalide"
+
+#~ msgid "Invalid init statement"
+#~ msgstr "Dclaration init invalide"
+
+#~ msgid "Missing term or ')' expected"
+#~ msgstr "Terme manquant ou ) attendu"
+
+#~ msgid "'class' or 'this' expected"
+#~ msgstr " class ou ceci attendu"
+
+#~ msgid "'class' expected"
+#~ msgstr " class attendu"
+
+#~ msgid "')' or term expected"
+#~ msgstr ") or terme attendu"
+
+#~ msgid "'[' expected"
+#~ msgstr "[ attendu"
+
+#~ msgid "Field expected"
+#~ msgstr "Champ attendu"
+
+#~ msgid "Missing term and ']' expected"
+#~ msgstr "Terme manquant et ] attendu"
+
+#~ msgid "']' expected, invalid type expression"
+#~ msgstr "] attendu, type d'expression invalide"
+
+#~ msgid "Invalid type expression"
+#~ msgstr "Type d'expression invalide"
+
+#~ msgid "Invalid reference type"
+#~ msgstr "Type de rfrence invalide"
+
+#~ msgid "Constructor invocation must be first thing in a constructor"
+#~ msgstr "L'invaocation d'un constructeur doit tre la premire chose dans un constructeur"
+
+#~ msgid "Only constructors can invoke constructors"
+#~ msgstr "Seuls les constructeurs peuvent invoquer des constructeurs"
+
+#~ msgid ": `%s' JDK1.1(TM) feature"
+#~ msgstr ": %s option JDK1.1(TM)"
+
+#~ msgid ""
+#~ "%s.\n"
+#~ "%s"
+#~ msgstr ""
+#~ "%s.\n"
+#~ "%s"
+
+#~ msgid "malformed .zip archive in CLASSPATH: %s"
+#~ msgstr "archive .zip mal compose dans CLASSPATH: %s"
+
+#~ msgid "Can't find default package `%s'. Check the CLASSPATH environment variable and the access to the archives"
+#~ msgstr "ne peut reprer le package par dfaut %s . Vrifier la variable d'environnement CLASSPATH et l'accs aux archives."
+
+#~ msgid "missing static field `%s'"
+#~ msgstr "champ statique manquant %s "
+
+#~ msgid "not a static field `%s'"
+#~ msgstr "n'est pas un champ statique %s "
+
+#~ msgid "No case for %s"
+#~ msgstr "Oas de case pour %s"
+
+#~ msgid "unregistered operator %s"
+#~ msgstr "oprator %s non enregistr"
+
+#~ msgid "junk at end of signature string"
+#~ msgstr "rebut la fin de la chane de signature"
+
+#~ msgid "bad pc in exception_table"
+#~ msgstr "PC erron dans exception_table"
+
+#~ msgid "unknown opcode %d@pc=%d during verification"
+#~ msgstr "code-op inconnu %d@pc=%d durant la vrification"
+
+#~ msgid "verification error at PC=%d"
+#~ msgstr "erreur de vrification au PC=%d"
+
+#~ msgid "object does not conform to the `%s' protocol"
+#~ msgstr "objet n'est pas conforme au protocole %s "
+
+#~ msgid "class `%s' does not implement the `%s' protocol"
+#~ msgstr "classe %s n'implante pas le protocole %s "
+
+#~ msgid "statically allocated instance of Objective-C class `%s'"
+#~ msgstr "instance alloue de manire statique de la classe Objective-C %s "
+
+#~ msgid "unexpected type for `id' (%s)"
+#~ msgstr "type inattendu pour id (%s)"
+
+#~ msgid "undefined type `id', please import <objc/objc.h>"
+#~ msgstr "type id indfini, SVP importer <objc/objc.h>"
+
+#~ msgid "protocol `%s' has circular dependency"
+#~ msgstr "le protocole %s a une dpendance circulaire"
+
+#~ msgid "cannot find protocol declaration for `%s'"
+#~ msgstr "ne peut reprer la dclaration de protocole pour %s "
+
+#~ msgid "cannot find interface declaration for `%s'"
+#~ msgstr "ne peut reprer la dclaration d'interface pour %s "
+
+#~ msgid "interface `%s' does not have valid constant string layout"
+#~ msgstr "interface %s n'a pas une organisation valide de chanes de constantes"
+
+#~ msgid "cannot find reference tag for class `%s'"
+#~ msgstr "ne peut reprer la rfrence pour l'tiquette de classe %s."
+
+#~ msgid "creating selector for non existant method %s"
+#~ msgstr "cration du slection pour une mthode inexistente %s"
+
+#~ msgid "`%s' is not an Objective-C class name or alias"
+#~ msgstr " %s n'est pas une classe Objective-C ou un alias"
+
+#~ msgid "Objective-C declarations may only appear in global scope"
+#~ msgstr "dclarations Objective-C peut seulement apparatre dans l'tendue globale"
+
+#~ msgid "cannot find class `%s'"
+#~ msgstr "ne peut reprer la classe %s "
+
+#~ msgid "class `%s' already exists"
+#~ msgstr "classe %s existe dj"
+
+#~ msgid "`%s' redeclared as different kind of symbol"
+#~ msgstr " %s redclar comme une autre sorte de symbole"
+
+#~ msgid "cannot find interface declaration for `%s', superclass of `%s'"
+#~ msgstr "ne peut reprer une dclaration d'interface pour %s , super classe de %s "
+
+#~ msgid "circular inheritance in interface declaration for `%s'"
+#~ msgstr "hritage circulaire dans la dclaration de l'interface pour %s "
+
+#~ msgid "Use `-fobjc-exceptions' to enable Objective-C exception syntax"
+#~ msgstr "Utiliser -fobjc-exceptions pour autoriser la syntaxe d'exception d'Objective-C"
+
+#~ msgid "`@throw;' (rethrow) used outside of a `@catch' block"
+#~ msgstr " @throw; (rethrow) utilis en dehors d'un bloc @catch "
+
+#~ msgid "`@catch' parameter is not a known Objective-C class type"
+#~ msgstr "paramtre @catch n'est pas connu comme un type de classe Objective-C"
+
+#~ msgid "Exception already handled by preceding `@catch(id)'"
+#~ msgstr "Exception est dj trait par le prcdent @catch(id) "
+
+#~ msgid "Exception of type `%s *' already handled by `@catch (%s *)'"
+#~ msgstr "exception du type %s * est dj traite par @catch (%s *) "
+
+#~ msgid "`@try' without `@catch' or `@finally'"
+#~ msgstr " @try sans @catch ou @finally "
+
+#~ msgid "%Jtype '%D' does not have a known size"
+#~ msgstr "%Jtype %D n'a pas de taille connue"
+
+#~ msgid "%J%s `%s'"
+#~ msgstr "%J%s %s "
+
+#~ msgid "inconsistent instance variable specification"
+#~ msgstr "spcification inconsistente avec l'instance de la vairable"
+
+#~ msgid "can not use an object as parameter to a method\n"
+#~ msgstr "ne peut utiliser un objet comme paramtre une mthode\n"
+
+#~ msgid "multiple %s named `%c%s' found"
+#~ msgstr "multiples %s nomms %c%s reprs"
+
+#~ msgid "no super class declared in @interface for `%s'"
+#~ msgstr "pas de super classe dclare dans @nterface pour %s "
+
+#~ msgid "invalid receiver type `%s'"
+#~ msgstr "type du receveur invalide %s "
+
+#~ msgid "`%s' may not respond to `%c%s'"
+#~ msgstr " %s peut ne pas rpondre %c%s "
+
+#~ msgid "`%c%s' not implemented by protocol(s)"
+#~ msgstr " %c%s n'est pas implante dans le protocole"
+
+#~ msgid "(Messages without a matching method signature"
+#~ msgstr "(Messages sans une mthode concordante de signature"
+
+#~ msgid "will be assumed to return `id' and accept"
+#~ msgstr "sera assum pour retourner id et accepter"
+
+#~ msgid "`...' as arguments.)"
+#~ msgstr " ... comme argument.)"
+
+#~ msgid "undeclared selector `%s'"
+#~ msgstr "slecteur %s non dclar"
+
+#~ msgid "instance variable `%s' accessed in class method"
+#~ msgstr "instance %s de la variable accd par la mthode de classe"
+
+#~ msgid "duplicate declaration of method `%c%s'"
+#~ msgstr "duplication de dclaration de la mthode %c%s "
+
+#~ msgid "duplicate interface declaration for category `%s(%s)'"
+#~ msgstr "duplication de dclaration d'interface pour la catgorie %s(%s) "
+
+#~ msgid "illegal reference type specified for instance variable `%s'"
+#~ msgstr "type derfrence spcifi illgal pour l'instance de variable %s "
+
+#~ msgid "instance variable `%s' has unknown size"
+#~ msgstr "instance de la variable %s a une taille inconnue"
+
+#~ msgid "type `%s' has virtual member functions"
+#~ msgstr "type %s a des membres de fonction virtuelle"
+
+#~ msgid "illegal aggregate type `%s' specified for instance variable `%s'"
+#~ msgstr "type d'aggrgat illgal %s spcifi pour l'instance de la variable %s "
+
+#~ msgid "type `%s' has a user-defined constructor"
+#~ msgstr "type %s a un constructeur dfini par l'usager"
+
+#~ msgid "type `%s' has a user-defined destructor"
+#~ msgstr "type %s a un destructeur dfini par l'usager"
+
+#~ msgid "C++ constructors and destructors will not be invoked for Objective-C fields"
+#~ msgstr "constructeurs et destructeurs C++ ne seront pas invoqus pour les champs en Objective-C"
+
+#~ msgid "instance variable `%s' is declared private"
+#~ msgstr "instance de la variable %s est dclar prive"
+
+#~ msgid "instance variable `%s' is %s; this will be a hard error in the future"
+#~ msgstr "instance de la variable %s est %s; cela dclenchera une erreur dure dans le futur"
+
+#~ msgid "instance variable `%s' is declared %s"
+#~ msgstr "instance de la variable %s est dclar %s"
+
+#~ msgid "static access to object of type `id'"
+#~ msgstr "accs statique un objket de type id "
+
+#~ msgid "incomplete implementation of class `%s'"
+#~ msgstr "implantation incomplte de la classe %s "
+
+#~ msgid "incomplete implementation of category `%s'"
+#~ msgstr "implantation incomplte de la catgorie %s "
+
+#~ msgid "method definition for `%c%s' not found"
+#~ msgstr "dfinition de la mthode pour %c%s n'a pas t repre"
+
+#~ msgid "%s `%s' does not fully implement the `%s' protocol"
+#~ msgstr "%s %s n'implante pas compltement le protocole %s "
+
+#~ msgid "`@end' missing in implementation context"
+#~ msgstr "@end manquant dans l'implantation du contexte"
+
+#~ msgid "reimplementation of class `%s'"
+#~ msgstr "r-implantation de la classe %s "
+
+#~ msgid "conflicting super class name `%s'"
+#~ msgstr "nom de super classe %s est conflictuel"
+
+#~ msgid "previous declaration of `%s'"
+#~ msgstr "dclaration prcdente de %s "
+
+#~ msgid "duplicate interface declaration for class `%s'"
+#~ msgstr "double dclaration d'interface pour la classe %s "
+
+#~ msgid "duplicate declaration for protocol `%s'"
+#~ msgstr "double dclaration pour le protocole %s "
+
+#~ msgid "%J%s `%c%s'"
+#~ msgstr "%J%s %c%s "
+
+#~ msgid "no super class declared in interface for `%s'"
+#~ msgstr "pas de super classe dclare dans l'interface pour %s "
+
+#~ msgid "[super ...] must appear in a method context"
+#~ msgstr "[super ...] doit apparatre dans une mthode du contexte"
+
+#~ msgid "`@end' must appear in an implementation context"
+#~ msgstr "@end doit appratre dans un contaxte d'implantation"
+
+#~ msgid "method definition not in class context"
+#~ msgstr "mthode de dfinition n'est pas dans un contexte de classe"
+
+#~ msgid "Display this information"
+#~ msgstr "afficher l'aide-mmoire"
+
+#~ msgid "--param <param>=<value>\tSet paramter <param> to value. See below for a complete list of parameters"
+#~ msgstr "--param <paramtre>=<valeur>\tinitialiser le <paramtre> avec la valeur. Voir ci-bas pour la liste complte des paramtres"
+
+#~ msgid "-A<question>=<answer>\tAssert the <answer> to <question>. Putting '-' before <question> disables the <answer> to <question>"
+#~ msgstr "-A<question>=<rponse>\tassocier la <rponse> la <question>. Placer - devant la <question> dsactive la <rponse> la <question>"
+
+#~ msgid "Do not discard comments"
+#~ msgstr "Ne pas liminer les commentaires"
+
+#~ msgid "Do not discard comments in macro expansions"
+#~ msgstr "Ne pas liminer les commentaires dans les expansions macro"
+
+#~ msgid "-D<macro>[=<val>]\tDefine a <macro> with <val> as its value. If just <macro> is given, <val> is taken to be 1"
+#~ msgstr "-D<macro>[=<valeur>]\tdfinir le <macro> avec la <valeur>. Si seul le <macro> est fourni, <valeur> vaut 1 par dfaut"
+
+#~ msgid "-G<number>\tPut global and static data smaller than <number> bytes into a special section (on some targets)"
+#~ msgstr ""
+#~ " -G <nombre> placer les donnes globales et statiques plus\n"
+#~ " petites que <nombre> d'octets dans une section\n"
+#~ " spciale (sur certaines cibles)"
+
+#~ msgid "Print the name of header files as they are used"
+#~ msgstr "Afficher les noms des en-ttes de fichiers tel qu'ils sont utiliss"
+
+#~ msgid "-I <dir>\tAdd <dir> to the end of the main include path. -I- gives more include path control; see info documentation"
+#~ msgstr "-I <rp>\tajouter <rp> la fin du chemin principal d'inclusion. -I- donne plus de contrle sur le chemin d'inclusion; voir la documentation info"
+
+#~ msgid "Generate make dependencies"
+#~ msgstr "Gnrer les dpendances pour make"
+
+#~ msgid "Generate make dependencies and compile"
+#~ msgstr "Gnrer les dpendances pour make et compiler"
+
+#~ msgid "-MF <file>\tWrite dependency output to the given file"
+#~ msgstr "-MF <fichier>\tcrire les dpendances en sortie dans le fichier fourni"
+
+#~ msgid "Treat missing header files as generated files"
+#~ msgstr "Traiter les en-ttes manquantes de fichiers comme des fichiers gnrs"
+
+#~ msgid "Like -M but ignore system header files"
+#~ msgstr "Identique -M mais ignore les en-ttes de fichiers systme"
+
+#~ msgid "Like -MD but ignore system header files"
+#~ msgstr "Identique -MD mais ignore les en-ttes de fichiers systme"
+
+#~ msgid "Generate phony targets for all headers"
+#~ msgstr "Gnrer les cibles bidons pour toutes les en-ttes"
+
+#~ msgid "-MQ <target>\tAdd a MAKE-quoted target"
+#~ msgstr "-MQ <cible>\tajouter MAKE-quoted cible"
+
+#~ msgid "-MT <target>\tAdd an unquoted target"
+#~ msgstr "-MT <cible>\tajouter une cible sans quote"
+
+#~ msgid "-O<number>\tSet optimization level to <number>"
+#~ msgstr "-O<nombre>\tutiliser le niveau d'optimisation <nombre>"
+
+#~ msgid "Optimize for space rather than speed"
+#~ msgstr "Optimiser l'utilisation de l'espace plutt que la vitesse"
+
+#~ msgid "Do not generate #line directives"
+#~ msgstr "Ne pas gnrer de directives #ligne"
+
+#~ msgid "-U<macro>\tUndefine <macro>"
+#~ msgstr "-U<macro>\tabandonner la dfinition <macro>"
+
+#~ msgid "This switch is deprecated; use -Wextra instead"
+#~ msgstr "Cette option est obsolte; utiliser -Wextra la place"
+
+#~ msgid "Warn about returning structures, unions or arrays"
+#~ msgstr "Avertir propos de structures retourns, unions ou tableaux"
+
+#~ msgid "Enable most warning messages"
+#~ msgstr "Autoriser la plupart des messages d'avertissement"
+
+#~ msgid "Warn about casting functions to incompatible types"
+#~ msgstr "Avertir propos des fonctions de transtypage avec des types incompatibles"
+
+#~ msgid "Warn about pointer casts which increase alignment"
+#~ msgstr "Avertir propos des pointeurs convertis lesquels augment l'alignement"
+
+#~ msgid "Warn about casts which discard qualifiers"
+#~ msgstr "Avertir propos des transtypage qui cartent les qualificateurs"
+
+#~ msgid "Warn about subscripts whose type is \"char\""
+#~ msgstr "Avertir propos des souscripts dont le type est \"char\""
+
+#~ msgid "Warn about possibly nested block comments, and C++ comments spanning more than one physical line"
+#~ msgstr "Avertir propos des blocs de commentaires imbriqus et les commentaires C++ qui s'tendent sur plus d'une ligne physique"
+
+#~ msgid "Synonym for -Wcomment"
+#~ msgstr "Synonyme pour -Wcommentaire"
+
+#~ msgid "Warn about possibly confusing type conversions"
+#~ msgstr "Avertir propos des conversion confuses de types"
+
+#~ msgid "Warn when all constructors and destructors are private"
+#~ msgstr "Avertir lorsque tous les constructeurs et destructeurs sont privs"
+
+#~ msgid "Warn when a declaration is found after a statement"
+#~ msgstr "Avertir lorsqu'une dclaration est spcifie aprs une dclaration"
+
+#~ msgid "Warn about deprecated compiler features"
+#~ msgstr "Avertir propose de la dprciation des options du compilateur"
+
+#~ msgid "Warn about uses of __attribute__((deprecated)) declarations"
+#~ msgstr "Avertir propos de l'utilisation des dclarations __attribute__ ((deprecated)) "
+
+#~ msgid "Warn when an optimization pass is disabled"
+#~ msgstr "Avertir lorsque la passe d'optimisation est dsactive"
+
+#~ msgid "Warn about compile-time integer division by zero"
+#~ msgstr "Avertir au sujet de la division entire par zro au moment de la compilation"
+
+#~ msgid "Warn about violations of Effective C++ style rules"
+#~ msgstr "Avertir propos des violations des rgles de style de Effective C++"
+
+#~ msgid "Warn about stray tokens after #elif and #endif"
+#~ msgstr "Avertir propos des jetons perdus aprs #elif et #endif"
+
+#~ msgid "Treat all warnings as errors"
+#~ msgstr "Traiter tous les avertissements commes des erreurs"
+
+#~ msgid "Make implicit function declarations an error"
+#~ msgstr "Faire une erreur lors de dclaration de fonctions implicites"
+
+#~ msgid "Print extra (possibly unwanted) warnings"
+#~ msgstr "Afficher des avertissements superflus (possiblement non dsirs)"
+
+#~ msgid "Warn if testing floating point numbers for equality"
+#~ msgstr "Avertir propos des tests d'galit sur des nombres flottants"
+
+#~ msgid "Warn about printf/scanf/strftime/strfmon format string anomalies"
+#~ msgstr "Avertir propos des anomalies de format de chanes pour printf/scanf/strftime/strfmon"
+
+#~ msgid "Warn if passing too many arguments to a function for its format string"
+#~ msgstr "Avertir lorsqu'il y a trop de passage d'arguments une fonction pour le format de ses chanes"
+
+#~ msgid "Warn about format strings that are not literals"
+#~ msgstr "Avertir propos des chanes de format qui n'ont pas de litrals"
+
+#~ msgid "Warn about possible security problems with format functions"
+#~ msgstr "Avertir propos des problmes possibles de scurit avec les formats de fonction"
+
+#~ msgid "Warn about strftime formats yielding 2-digit years"
+#~ msgstr "Avertir propos des formats strftime ne laissant que 2 chiffres pour l'anne"
+
+#~ msgid "Warn about implicit function declarations"
+#~ msgstr "Avertir propos des dclarations de fonctions implicites"
+
+#~ msgid "Warn when a declaration does not specify a type"
+#~ msgstr "Avertir lorsqu'une dclaration ne spcifie pas le type"
+
+#~ msgid "Deprecated. This switch has no effect."
+#~ msgstr "Obsolte. Cette option n'a aucun effet."
+
+#~ msgid "Warn about variables which are initialized to themselves."
+#~ msgstr "Avertir au sujet des variables qui sont initialiss par elles-mme"
+
+#~ msgid "Warn when an inlined function cannot be inlined"
+#~ msgstr "Avertir lorsque des fonctions en ligne ne peuvent tre enligne"
+
+#~ msgid "Warn about invalid uses of the \"offsetof\" macro"
+#~ msgstr "Avertir propos de l'utilisation invalide de macro \"offsetof\""
+
+#~ msgid "Warn about PCH files that are found but not used"
+#~ msgstr "Avertir propos des fichier PCH qui sont reprs mais non utiliss"
+
+#~ msgid "-Wlarger-than-<number>\tWarn if an object is larger than <number> bytes"
+#~ msgstr "-Wlarger-than-<nombre>\tavertir si un objet est plus grand que <nombre> d'octets"
+
+#~ msgid "Do not warn about using \"long long\" when -pedantic"
+#~ msgstr "Ne pas avertir propos de l'utilisation de \"long long\" avec -pedantic"
+
+#~ msgid "Warn about suspicious declarations of \"main\""
+#~ msgstr "Avertir propos des dclarations douteuses de \"main\""
+
+#~ msgid "Warn about possibly missing braces around initializers"
+#~ msgstr "Avertir propos des possibles accolades manquantes autour des initialisations"
+
+#~ msgid "Warn about global functions without previous declarations"
+#~ msgstr "Avertir propos des fonctions globales sans dclaration prcdente"
+
+#~ msgid "Warn about functions which might be candidates for format attributes"
+#~ msgstr "Avertir propos des fonctions qui pourraient tre candidates pour les attributs de format"
+
+#~ msgid "Warn about functions which might be candidates for __attribute__((noreturn))"
+#~ msgstr "Avertir propos des fonctions qui seraient candidates pour __attribute__((noreturn))"
+
+#~ msgid "Warn about global functions without prototypes"
+#~ msgstr "Avertir propos des fonctions globales sans prototype"
+
+#~ msgid "Warn about use of multi-character character constants"
+#~ msgstr "Avertir propos de l'utilisation des chanes de multi-caractres"
+
+#~ msgid "Warn about \"extern\" declarations not at file scope"
+#~ msgstr "Avertir propos des dclarations \"extern\" qui n'est pas dans l'tendue du fichier"
+
+#~ msgid "Warn when non-templatized friend functions are declared within a template"
+#~ msgstr "Avertir lorsque des fonctions amis sans canevas sont dclars l'intrieur d'un canevas"
+
+#~ msgid "Warn about non-virtual destructors"
+#~ msgstr "Avertir propos des destructeurs non virtuels"
+
+#~ msgid "Warn if a C-style cast is used in a program"
+#~ msgstr "Avertir si le style de transtypage C est utilis dans un programme"
+
+#~ msgid "Warn if an old-style parameter definition is used"
+#~ msgstr "Avertir lorsqu'un paramtre de style ancien de dfinition est utilis"
+
+#~ msgid "Warn about overloaded virtual function names"
+#~ msgstr "Avertir propos de la surcharge des noms de fonctions virtuelles"
+
+#~ msgid "Warn when the packed attribute has no effect on struct layout"
+#~ msgstr "Avertir lorsque les attributs paquets n'ont pas d'effet sur l'organisation d'un struct"
+
+#~ msgid "Warn when padding is required to align structure members"
+#~ msgstr "Avertir lorsque le remplissage est requis pour aligner les membres de structure"
+
+#~ msgid "Warn about possibly missing parentheses"
+#~ msgstr "Avertir propos du manque possible de parenthses"
+
+#~ msgid "Warn when converting the type of pointers to member functions"
+#~ msgstr "Avertir lors de la conversion des types de pointeurs en membres de fonctions"
+
+#~ msgid "Warn about function pointer arithmetic"
+#~ msgstr "Avertir propos d'arithmtique portant sur un pointeur de fonction"
+
+#~ msgid "Warn if inherited methods are unimplemented"
+#~ msgstr "Avertir si les mthodes hrites ne sont pas implantes"
+
+#~ msgid "Warn about multiple declarations of the same object"
+#~ msgstr "Avertir propos des dclarations multiples portant sur le mme objet"
+
+#~ msgid "Warn when the compiler reorders code"
+#~ msgstr "Avertir lorsque le compilateur rordonne le code"
+
+#~ msgid "Warn whenever a function's return type defaults to \"int\" (C), or about inconsistent return types (C++)"
+#~ msgstr "Avertir lorsque le type de fonction retourner par dfaut est \"int\" (C) ou propos d'un type inconsisten retourner (C++)"
+
+#~ msgid "Warn if a selector has multiple methods"
+#~ msgstr "Avertir si le slecteur a de multiples mthodes"
+
+#~ msgid "Warn about possible violations of sequence point rules"
+#~ msgstr "Avertir propos des violations possibles des rgles de squence de points"
+
+#~ msgid "Warn when one local variable shadows another"
+#~ msgstr "Avertir lorsqu'une variable locale masque une autre"
+
+#~ msgid "Warn about signed-unsigned comparisons"
+#~ msgstr "Avertir propos des comparaisons signs ou non signs"
+
+#~ msgid "Warn when overload promotes from unsigned to signed"
+#~ msgstr "Avertir lorsque la surcharge fait la promotion d'un non sign en sign"
+
+#~ msgid "Warn about code which might break strict aliasing rules"
+#~ msgstr "Avertir propos du code qui pourrait briser les rgles strictes d'alias"
+
+#~ msgid "Warn about unprototyped function declarations"
+#~ msgstr "Avertir propos des dclarations de fonctions sans prototype"
+
+#~ msgid "Warn about enumerated switches, with no default, missing a case"
+#~ msgstr "Avertir propos d'un switch numr, sans dfaut ou un case est manquant"
+
+#~ msgid "Warn about enumerated switches missing a \"default:\" statement"
+#~ msgstr "Avertir propos d'un switch numr n'ayant pas de dclaration \"default:\""
+
+#~ msgid "Warn about all enumerated switches missing a specific case"
+#~ msgstr "Avertir propos de tous les switch numrs o un case spcific manque"
+
+#~ msgid "Warn when synthesis behavior differs from Cfront"
+#~ msgstr "Avertir lorsque le comportement de synthre diffre de Cfront"
+
+#~ msgid "Do not suppress warnings from system headers"
+#~ msgstr "Ne pas supprimer les avertissements pour les en-ttes systme"
+
+#~ msgid "Warn about features not present in traditional C"
+#~ msgstr "Avertir propos d'une option absente en C traditionnel"
+
+#~ msgid "Warn if trigraphs are encountered that might affect the meaning of the program"
+#~ msgstr "Avertir si des trigraphes sont rencontrs et qui pourraient affecter le sens du programme"
+
+#~ msgid "Warn if an undefined macro is used in an #if directive"
+#~ msgstr "Avertir si un macro indfini est utilis dans un directive #if"
+
+#~ msgid "Warn about uninitialized automatic variables"
+#~ msgstr "Avertir propos des variables automatiques non initialises"
+
+#~ msgid "Warn about unrecognized pragmas"
+#~ msgstr "Avertir propos des pragmas non reconnus"
+
+#~ msgid "Warn about code that will never be executed"
+#~ msgstr "Avertir propos du code qui ne sera jamais excut"
+
+#~ msgid "Enable all -Wunused- warnings"
+#~ msgstr "Autoriser tous les -Wunused- warnings"
+
+#~ msgid "Warn when a function is unused"
+#~ msgstr "Avertir lorsqu'une fonction est inutilise"
+
+#~ msgid "Warn when a label is unused"
+#~ msgstr "Avertir lorsqu'une tiquette est inutilise"
+
+#~ msgid "Warn about macros defined in the main file that are not used"
+#~ msgstr "Avertir propos de macros dfinis dans le fichier principal qui ne sont pas utiliss"
+
+#~ msgid "Warn when a function parameter is unused"
+#~ msgstr "Avertir lorsqu'un paramtre de fonction est inutilis"
+
+#~ msgid "Warn when an expression value is unused"
+#~ msgstr "Avertir lorsque la valeur d'une expression n'est pas utilise"
+
+#~ msgid "Warn when a variable is unused"
+#~ msgstr "Avertir lorsque 'une variable est inutilise"
+
+#~ msgid "Give strings the type \"array of char\""
+#~ msgstr "Fournir des chanes de type \"array of char\""
+
+#~ msgid "A synonym for -std=c89. In a future version of GCC it will become synonymous with -std=c99 instead"
+#~ msgstr "Un synonyme pour -std=c89. Dans une version future de GCC cela deviendra synonyme de -std=c99 la place"
+
+#~ msgid "-aux-info <file>\tEmit declaration information into <file>"
+#~ msgstr "-aux-info <fichier>\tproduire une dclaration d'information dans le <fichier>"
+
+#~ msgid "-d<letters>\tEnable dumps from specific passes of the compiler"
+#~ msgstr "-d<lettres>\tautoriser les vidanges pour des passes spcifiques du compilateur"
+
+#~ msgid "-dumpbase <file>\tSet the file basename to be used for dumps"
+#~ msgstr "-dumpbase <fichier>\tfixer le nom de base du fichier utiliser pour les vidanges"
+
+#~ msgid "Enforce class member access control semantics"
+#~ msgstr "Forcer la smantique du contrle d'accs un membre de classe"
+
+#~ msgid "Align the start of functions"
+#~ msgstr "Aligner le dbut des fonctions"
+
+#~ msgid "Align labels which are only reached by jumping"
+#~ msgstr "Aligner les tiquettes qui sont seulement atteintes par sauts"
+
+#~ msgid "Align all labels"
+#~ msgstr "Aligner toutes les tiquettes"
+
+#~ msgid "Align the start of loops"
+#~ msgstr "Aligner le dbut des boucles"
+
+#~ msgid "Change when template instances are emitted"
+#~ msgstr "Changer lorsque les instances du canevas sont produites"
+
+#~ msgid "Specify that arguments may alias each other and globals"
+#~ msgstr "Spcifier que les arguments peuvent avoir des alias l'un vers l'autre et globaux"
+
+#~ msgid "Assume arguments may alias globals but not each other"
+#~ msgstr "Prsumer que les arguments peuvent avoir des alias globaux mais pas l'un vers l'autre"
+
+#~ msgid "Assume arguments alias neither each other nor globals"
+#~ msgstr "Assumer que les alias d'arguments n'en ont pas l'un vers l'autre ou globaux"
+
+#~ msgid "Recognize the \"asm\" keyword"
+#~ msgstr "Reconnatre le mot cl asm "
+
+#~ msgid "Generate unwind tables that are exact at each instruction boundary"
+#~ msgstr "Gnrer des tables tendues qui soient exactes pour chaque borne d'instruction"
+
+#~ msgid "Generate code to check bounds before indexing arrays"
+#~ msgstr "Gnrer du code pour vrifier les bornes avant d'indexer les tableaux"
+
+#~ msgid "Replace add, compare, branch with branch on count register"
+#~ msgstr "Remplacer add,compare,branch avec des branchements utilisant un compteur registre"
+
+#~ msgid "Use profiling information for branch probabilities"
+#~ msgstr "Utiliser les informations de profilage pour les probabilits de branchements"
+
+#~ msgid "Perform branch target load optimization before prologue / epilogue threading"
+#~ msgstr "Effectuer l'optimisation du chargement du branchement cible avant le thread prologue / epilogue"
+
+#~ msgid "Perform branch target load optimization after prologue / epilogue threading"
+#~ msgstr "Effectuer l'optimisation du chargement du branchement cible aprs le thread prologue / epilogue"
+
+#~ msgid "Recognize built-in functions"
+#~ msgstr "Reconnatre aucun construit dans les fonctions"
+
+#~ msgid "-fcall-saved-<register>\tMark <register> as being preserved across functions"
+#~ msgstr "-fcall-saved-<registre>\tmarquer le <registre> comme tant prserv travers les fonctions"
+
+#~ msgid "-fcall-used-<register>\tMark <register> as being corrupted by function calls"
+#~ msgstr "-fcall-used-<registre>\tmarquer le <registre> comme tant corrompu par les appels de fonctions"
+
+#~ msgid "Save registers around function calls"
+#~ msgstr "Sauvegarder les registres autour des appels de fonction"
+
+#~ msgid "Check the return value of new"
+#~ msgstr "Vrifier la valeur retourne de new"
+
+#~ msgid "Do not put uninitialized globals in the common section"
+#~ msgstr "Ne pas placer de globaux non initialiss dans la section commune"
+
+#~ msgid "Allow the arguments of the '?' operator to have different types"
+#~ msgstr "Permettre les arguments de l'oprateur ? d'avoir diffrents types"
+
+#~ msgid "Reduce the size of object files"
+#~ msgstr "Rduire la taille des fichiers objets"
+
+#~ msgid "Make string literals \"const char[]\" not \"char[]\""
+#~ msgstr "Rendre les chanes de mots \"const char[]\" et non pas \"char[]\""
+
+#~ msgid "-fconst-string-class=<name>\tUse class <name> for constant strings"
+#~ msgstr "-fconst-string-class=<nom>\tutiliser la classe <nom> pour la chanes de constantes"
+
+#~ msgid "Perform a register copy-propagation optimization pass"
+#~ msgstr "Effectuer la passe d'optimisation de la propagation-de-copie par registre"
+
+#~ msgid "Perform cross-jumping optimization"
+#~ msgstr "Excuter des optimisations de sauts croiss"
+
+#~ msgid "When running CSE, follow jumps to their targets"
+#~ msgstr "Lorsque CSE s'excute, suivre les sauts vers leurs cibles"
+
+#~ msgid "When running CSE, follow conditional jumps"
+#~ msgstr "Lorsque CSE s'excute, suivre les sauts considitionnels vers leurs cibles"
+
+#~ msgid "Place data items into their own section"
+#~ msgstr "placer les items des donnes dans leur propre section"
+
+#~ msgid "Inline member functions by default"
+#~ msgstr "Rendre enligne un membre de fonction par dfaut"
+
+#~ msgid "Defer popping functions args from stack until later"
+#~ msgstr "Dfrer le dpilage des arguments de fonction de la pile plus tard"
+
+#~ msgid "Attempt to fill delay slots of branch instructions"
+#~ msgstr "Tented de remplir de dlais les fentes des instructions de branchement"
+
+#~ msgid "Delete useless null pointer checks"
+#~ msgstr "Dtruire les vrifications de pointeurs nul inutiles"
+
+#~ msgid "-fdiagnostics-show-location=[once|every-line]\tHow often to emit source location at the beginning of line-wrapped diagnostics"
+#~ msgstr "-fdiagnostics-show-location=[once|every-line]\tindiquer combien de fois les informations de localisation des sources doivent tre produites au dbut d'un diagnostique lorsque les lignes doivent s'enrouler"
+
+#~ msgid "Permit '$' as an identifier character"
+#~ msgstr "Autoriser '$' comme identificateur de caractre"
+
+#~ msgid "-fdump-<type>\tDump various compiler internals to a file"
+#~ msgstr "-fdump-<type>\tvidander les divers internes du compilateur dans un fichier"
+
+#~ msgid "Suppress output of instruction numbers and line number notes in debugging dumps"
+#~ msgstr "Supprimer dans la sortie les numros d'instructions et de notes de lignes dans les vidanges de mises au point"
+
+#~ msgid "Perform DWARF2 duplicate elimination"
+#~ msgstr "Excuter une limination DAWRF2 des doublons"
+
+#~ msgid "Perform unused type elimination in debug info"
+#~ msgstr "Effectuer l'limination des types non utiliss dans l'information de mise au point"
+
+#~ msgid "Generate code to check exception specifications"
+#~ msgstr "Gnrer le code pour vrifier les exceptions de spcifications"
+
+#~ msgid "Enable exception handling"
+#~ msgstr "Autoriser le traitement des exceptions"
+
+#~ msgid "-fexec-charset=<cset>\tConvert all strings and character constants to character set <cset>"
+#~ msgstr "-fexec-charset=<jeucar>\tconvertir toutes les chanes et les constantes de caractres en jeu de caractres <jeucar>"
+
+#~ msgid "Perform a number of minor, expensive optimizations"
+#~ msgstr "Effectuer un nombre mineur d'optimisations coteuses"
+
+#~ msgid "Assume no NaNs or infinities are generated"
+#~ msgstr "Assumer qu'aucun NaNs ou infinits ne soit gnr"
+
+#~ msgid "-ffixed-<register>\tMark <register> as being unavailable to the compiler"
+#~ msgstr "-ffixed-<registre>\tmarquer le <registre> comme n'tant plus disponible pour le compilateur"
+
+#~ msgid "Do not store floats in registers"
+#~ msgstr "Ne pas stocker les flottants dans les registres"
+
+#~ msgid "Scope of for-init-statement variables is local to the loop"
+#~ msgstr "tendue des variables for-init-statement est local la boucle"
+
+#~ msgid "Copy memory address constants into registers before use"
+#~ msgstr "Copier les constantes d'adresses mmoire dans les registres avant de les utiliser"
+
+#~ msgid "Copy memory operands into registers before use"
+#~ msgstr "Copier les oprandes mmoire dans les registres avant de les utiliser"
+
+#~ msgid "Do not assume that standard C libraries and \"main\" exist"
+#~ msgstr "Ne pas assumer que les bibliothques standards C et \"main\" existent"
+
+#~ msgid "Allow function addresses to be held in registers"
+#~ msgstr "Autoriser le maintien des adresses de fonction dans les registres"
+
+#~ msgid "Place each function into its own section"
+#~ msgstr "placer chaque fonction dans sa propre section"
+
+#~ msgid "Perform global common subexpression elimination"
+#~ msgstr "Excuter l'limination de sous-expression commune globale"
+
+#~ msgid "Perform redundant load after store elimination in global common subexpression elimination"
+#~ msgstr "Excuter un stockage redondant aprs l'limination de sous-expression commune globale"
+
+#~ msgid "Perform enhanced load motion during global common subexpression elimination"
+#~ msgstr "Excuter un chargement amlior lors de l'limination de sous-expression commune globale"
+
+#~ msgid "Perform store motion after global common subexpression elimination"
+#~ msgstr "Excuter un stockage aprs l'limination de sous-expression commune globale"
+
+#~ msgid "Recognize GNU-defined keywords"
+#~ msgstr "Reconnatre les mots cls dfinis GNU"
+
+#~ msgid "Generate code for GNU runtime environment"
+#~ msgstr "Gnrer du code pour l'environnement GNU d'excution"
+
+#~ msgid "Enable guessing of branch probabilities"
+#~ msgstr "Autoriser l'estimation des probabilits de branchement"
+
+#~ msgid "Assume normal C execution environment"
+#~ msgstr "Prsumer que l'environnement d'excution C est normal"
+
+#~ msgid "Enable support for huge objects"
+#~ msgstr "Autoriser le support des grands objets"
+
+#~ msgid "Process #ident directives"
+#~ msgstr "Traiter les directive #ident"
+
+#~ msgid "Perform conversion of conditional jumps to branchless equivalents"
+#~ msgstr "Excuter la conversion des sauts conditionels des quivalents sans branchements"
+
+#~ msgid "Perform conversion of conditional jumps to conditional execution"
+#~ msgstr "Excuter la conversion des sauts conditionnels une excution conditionnel"
+
+#~ msgid "Export functions even if they can be inlined"
+#~ msgstr "Exporter les fonctions mme si elles peuvent tre enligne"
+
+#~ msgid "Emit implicit instantiations of inline templates"
+#~ msgstr "Produire les instanciations explicites de canevas enligne"
+
+#~ msgid "Emit implicit instantiations of templates"
+#~ msgstr "Produire les instanciations explicites de canevas"
+
+#~ msgid "Do not generate .size directives"
+#~ msgstr "Ne pas gnrer de directives .size"
+
+#~ msgid "Pay attention to the \"inline\" keyword"
+#~ msgstr "Porter attention au mot cl \"inline\""
+
+#~ msgid "Integrate simple functions into their callers"
+#~ msgstr "Intgrer les fonctions simples l'intrieur des appelants"
+
+#~ msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>"
+#~ msgstr "-finline-limit=<nombre>\tlimiter la taille des fonction enligne <nombre>"
+
+#~ msgid "-finput-charset=<cset> Specify the default character set for source files."
+#~ msgstr "-finput-charset=<jeucar> spcifier le jeu de caractres par dfaut pour les fichiers source"
+
+#~ msgid "Instrument function entry and exit with profiling calls"
+#~ msgstr "Traiter les entres et les sorties des fonctions avec appels de profilage"
+
+#~ msgid "Generate code for functions even if they are fully inlined"
+#~ msgstr "Gnrer le code pour les fonctions mme si elles sont compltement enligne"
+
+#~ msgid "Emit static const variables even if they are not used"
+#~ msgstr "Produire des variables constantes statiques mme si elles ne sont pas utilises"
+
+#~ msgid "Give external symbols a leading underscore"
+#~ msgstr "Afficher les symboles externes prfixs d'un caractre de soulignement"
+
+#~ msgid "Perform loop optimizations"
+#~ msgstr "Excuter l'optimisation des boucles"
+
+#~ msgid "Set errno after built-in math functions"
+#~ msgstr "Initialiser errno aprs les fonctions internes mathmatiques"
+
+#~ msgid "Report on permanent memory allocation"
+#~ msgstr "Rapporter l'allocation de mmoire permanente"
+
+#~ msgid "Attempt to merge identical constants and constant variables"
+#~ msgstr "Tentative de fusion de constantes identique et des variables constantes"
+
+#~ msgid "Attempt to merge identical constants across compilation units"
+#~ msgstr "Tentative de fusion de constantes identiques travers des units de compilation"
+
+#~ msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping"
+#~ msgstr "-fmessage-length=<nombre>\tlimiter la longueur des diagnotiques <nombre> de caractres par ligne. 0 supprime l'enroulement de ligne"
+
+#~ msgid "Force all loop invariant computations out of loops"
+#~ msgstr "Forcer pour toutes les boucles des calculs invariants en dehors des boucles"
+
+#~ msgid "Don't warn about uses of Microsoft extensions"
+#~ msgstr "Ne donner d'avertissement au sujet de l'utilisation des extensions de Microsoft"
+
+#~ msgid "Use graph-coloring register allocation"
+#~ msgstr "Utiliser l'allocation des registres par coloriage de graphe"
+
+#~ msgid "Generate code for NeXT (Apple Mac OS X) runtime environment"
+#~ msgstr "Gnrer le code pour l'environnement d'excution du NeXT (Apple Mac OS X)"
+
+#~ msgid "Assume that receivers of Objective-C messages may be nil"
+#~ msgstr "Assumer que les receveur de messages Objective-C peut tre NIL"
+
+#~ msgid "Support synchronous non-call exceptions"
+#~ msgstr "Supporter les exceptions synchrones des non appels"
+
+#~ msgid "Enable Objective-C exception and synchronization syntax"
+#~ msgstr "Autoriser l'exception Objective-C et la synchronisation de syntaxe"
+
+#~ msgid "Perform loop unrolling for all loops"
+#~ msgstr "Excuter la boucle par dsenroulement de toutes les boucles"
+
+#~ msgid "Perform loop unrolling when iteration count is known"
+#~ msgstr "Excuter un d-roulement des boucles lorsque le compteur d'itration est connu"
+
+#~ msgid "When possible do not generate stack frames"
+#~ msgstr "Lorsque c'est possible ne pas gnrer des trames de pile"
+
+#~ msgid "Recognize C++ kewords like \"compl\" and \"xor\""
+#~ msgstr "Reconnatre les mots cls C++ comme \"compl\" et \"xor\""
+
+#~ msgid "Do the full register move optimization pass"
+#~ msgstr "Effectuer la passe d'optimisation complte des dplacements par les registres"
+
+#~ msgid "Optimize sibling and tail recursive calls"
+#~ msgstr "Optimiser sur mesure les appels enfants et rcursif"
+
+#~ msgid "Enable optional diagnostics"
+#~ msgstr "Autoriser les diagnostiques optionnels"
+
+#~ msgid "Pack structure members together without holes"
+#~ msgstr "Empaqueter les membres des structures ensembles sans trous"
+
+#~ msgid "Return small aggregates in memory, not registers"
+#~ msgstr "Retourner les petits aggrgats en mmoire, pas dans les registres"
+
+#~ msgid "Perform loop peeling"
+#~ msgstr "Excuter des rductions de boucles"
+
+#~ msgid "Enable machine specific peephole optimizations"
+#~ msgstr "Autoriser les optimisations des trous spcifiques une machine"
+
+#~ msgid "Enable an RTL peephole pass before sched2"
+#~ msgstr "Autoriser l'excution de la passe RTL avant sched2"
+
+#~ msgid "Downgrade conformance errors to warnings"
+#~ msgstr "Dgrader les erreurs de conformit en des avertissements"
+
+#~ msgid "Generate position-independent code if possible"
+#~ msgstr "Gnrer du code indpendant de la position si possible"
+
+#~ msgid "Generate position-independent code for executables if possible"
+#~ msgstr "Gnrer du code indpendant de la position pour les excutables si possible"
+
+#~ msgid "Generate prefetch instructions, if available, for arrays in loops"
+#~ msgstr "Gnrer des instructions prrecherches, si disponible, pour les tableaux dans les boucles"
+
+#~ msgid "Treat the input file as already preprocessed"
+#~ msgstr "Traiter le fichier d'entre comme ayant dj t pr-trait"
+
+#~ msgid "Enable basic program profiling code"
+#~ msgstr "Autoriser le code de profilage de base du programme"
+
+#~ msgid "Insert arc-based program profiling code"
+#~ msgstr "Insrer le code de profilage du programme de arc-based"
+
+#~ msgid "Enable common options for generating profile info for profile feedback directed optimizations"
+#~ msgstr "Autoriser les options communes pour la gnration d'information de profile pour le feedback d'optimisation direct de profile"
+
+#~ msgid "Enable common options for performing profile feedback directed optimizations"
+#~ msgstr "Autoriser les options communes pour effectuer le feedback d'optimisation direct de profile"
+
+#~ msgid "Insert code to profile values of expressions"
+#~ msgstr "Insrer le code pour profile les expressions de valeurs"
+
+#~ msgid "-frandom-seed=<string>\tMake compile reproducible using <string>"
+#~ msgstr "-frandom-seed=<chane>\tfaire une compilation reproduisible en utilisant <chane>"
+
+#~ msgid "Strength reduce all loop general induction variables"
+#~ msgstr "Renforcer la rduction de toutes les boucles par induction des variables"
+
+#~ msgid "Return small aggregates in registers"
+#~ msgstr "Retourner les petits aggrgats dans les registres"
+
+#~ msgid "Enables a register move optimization"
+#~ msgstr "Autoriser l'optimisation des dplacements par registre"
+
+#~ msgid "Perform a register renaming optimization pass"
+#~ msgstr "Effectuer une changement de nom de registres aprs une passe d'optimisation"
+
+#~ msgid "Reorder basic blocks to improve code placement"
+#~ msgstr "R-ordonner les blocs de base pour amliorer l'emplacement de code"
+
+#~ msgid "Reorder functions to improve code placement"
+#~ msgstr "R-ordonner les fonctions pour amliorer l'emplacement de code"
+
+#~ msgid "Used in Fix-and-Continue mode to indicate that object files may be swapped in at runtime"
+#~ msgstr "Utiliser le mode Fix-and-=Continue pour indique que des fichiers objets peuvent interchangs lors de l'excution"
+
+#~ msgid "Enable automatic template instantiation"
+#~ msgstr "Autoriser l'instanciation automatique de canevas"
+
+#~ msgid "Add a common subexpression elimination pass after loop optimizations"
+#~ msgstr "Ajouter une passe d'limination d'une sous-expression commune aprs les optimisations de boucle"
+
+#~ msgid "Run the loop optimizer twice"
+#~ msgstr "Excuter l'optimiseur de boucle deux fois"
+
+#~ msgid "Disable optimizations that assume default FP rounding behavior"
+#~ msgstr "Interdire les optimisation qui assument un comportement d'arrondissement FP par dfaut"
+
+#~ msgid "Generate run time type descriptor information"
+#~ msgstr "Gnrer l'information pour un type de descripteur lors de l'excution"
+
+#~ msgid "Enable scheduling across basic blocks"
+#~ msgstr "Autoriser l'ordonnancement travers les blocs de base"
+
+#~ msgid "Allow speculative motion of non-loads"
+#~ msgstr "Autoriser le mouvement spculatif de non chargements"
+
+#~ msgid "Allow speculative motion of some loads"
+#~ msgstr "Autoriser le mouvement spculatif de quelques chargements"
+
+#~ msgid "Allow speculative motion of more loads"
+#~ msgstr "Autoriser le mouvement spculatif de plusieurs chargements"
+
+#~ msgid "Allow premature scheduling of queued insns"
+#~ msgstr "Autoriser l'ordonnancement prmatur de queues insns"
+
+#~ msgid "Set dependence distance checking in premature scheduling of queued insns"
+#~ msgstr "Fixer la distance de vrification de dpendance dans l'ordonnancement prmatur d'insns en queue"
+
+#~ msgid "-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns"
+#~ msgstr "-fsched-stalled-insns-dep=<nombre> fixer la distance de vrification de dpendance dans l'ordonnancement d'insnsn en queue"
+
+#~ msgid "-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled"
+#~ msgstr "-fsched-stalled-insns=<nombre> fixer le nombre d'insns en queu qui peuvent tre prmaturment ordonnancs"
+
+#~ msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler"
+#~ msgstr "-fsched-verbose=<numro>\tnitialiser le niveau de verbosit de l'ordonnanceur"
+
+#~ msgid "If scheduling post reload, do superblock scheduling"
+#~ msgstr "Si l'ordonnancement fait une post recharge, faire un ordonnancement de super bloc"
+
+#~ msgid "If scheduling post reload, do trace scheduling"
+#~ msgstr "Si l'ordonnancement fait une post recharge, laisse une trace de l'ordonnancement"
+
+#~ msgid "Reschedule instructions before register allocation"
+#~ msgstr "Rordonnancer les instructions avant l'allocation de registres"
+
+#~ msgid "Reschedule instructions after register allocation"
+#~ msgstr "Rordonnancer les instructions aprs l'allocation de registres"
+
+#~ msgid "Mark data as shared rather than private"
+#~ msgstr "Marquer les donnes comme partages au lieu de prives"
+
+#~ msgid "Use the same size for double as for float"
+#~ msgstr "Utiliser la mme taille pour un double que pour un flottant"
+
+#~ msgid "Use the narrowest integer type possible for enumeration types"
+#~ msgstr "Utiliser le type d'entier le moins large possible pour les types d'numration"
+
+#~ msgid "Force the underlying type for \"wchar_t\" to be \"unsigned short\""
+#~ msgstr "craser le type sous-jacent de \"wchar_t\" vers \"unsigned short\""
+
+#~ msgid "Disable optimizations observable by IEEE signaling NaNs"
+#~ msgstr "Dsactiver les optimisations observable par le signalement NaNs IEEE"
+
+#~ msgid "When \"signed\" or \"unsigned\" is not given make the bitfield signed"
+#~ msgstr "Lorsque \"signed\" ou \"unsigned\" n,est pas fourni rendre le champ de bits sign"
+
+#~ msgid "Make \"char\" signed by default"
+#~ msgstr "Rendre les char signs par dfaut"
+
+#~ msgid "Convert floating point constants to single precision constants"
+#~ msgstr "Convertir les constantes en virgules flottantes en constantes de simple prcision"
+
+#~ msgid "Insert stack checking code into the program"
+#~ msgstr "Insrer du code de vrificaion de la pile dans le programme"
+
+#~ msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>"
+#~ msgstr "-fstack-limit-register=<registre>\tfaire un droutement si la pile va au del du <registre>"
+
+#~ msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>"
+#~ msgstr "-fstack-limit-symbol=<nom>\tfaire un droutement si la pile va au del du symbole <nom>"
+
+#~ msgid "Display statistics accumulated during compilation"
+#~ msgstr "Afficher les statistiques accumuls durant la compilation"
+
+#~ msgid "Perform strength reduction optimizations"
+#~ msgstr "Excuter un rduction en force des optimisations"
+
+#~ msgid "Assume strict aliasing rules apply"
+#~ msgstr "Prsumer que des rgles stricts d'alias s'appliquent"
+
+#~ msgid "Check for syntax errors, then stop"
+#~ msgstr "Vrifier les erreurs de syntaxes et puis stopper"
+
+#~ msgid "-ftabstop=<number>\tDistance between tab stops for column reporting"
+#~ msgstr "-ftabstop=<nombre>\tfixer la distance de la tabulation des colonnes dans les rapports"
+
+#~ msgid "-ftemplate-depth-<number>\tSpecify maximum template instantiation depth"
+#~ msgstr "-ftemplate-depth-<nombre>\tspcifier la profondeur maximale d'instanciation de canevas"
+
+#~ msgid "Create data files needed by \"gcov\""
+#~ msgstr "Crer les fichiers de donnes ncessaires \"gcov\""
+
+#~ msgid "Perform jump threading optimizations"
+#~ msgstr "Excuter des optimisations de sauts de thread"
+
+#~ msgid "Report the time taken by each compiler pass"
+#~ msgstr "Rapporter le temps pris par chaque passe de compilation"
+
+#~ msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model"
+#~ msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tinitialiser le modle de gnration de code par dfaut de thread local"
+
+#~ msgid "Perform superblock formation via tail duplication"
+#~ msgstr "Excuter la formation du super bloc via la duplication de la queue"
+
+#~ msgid "Assume floating-point operations can trap"
+#~ msgstr "On assume que les oprations en virgule flottante peuvent tre attrappes"
+
+#~ msgid "Trap for signed overflow in addition, subtraction and multiplication"
+#~ msgstr "Attrapper les dbordements de signe dans l'addition, la soustraction et la multiplication"
+
+#~ msgid "Compile whole compilation unit at a time"
+#~ msgstr "Compiler compltement la fois une unit de compilation"
+
+#~ msgid "Allow math optimizations that may violate IEEE or ISO standards"
+#~ msgstr "Permettre les optimisations mathmatiques qui peuvent violer les standards IEEE ou ISO"
+
+#~ msgid "When \"signed\" or \"unsigned\" is not given make the bitfield unsigned"
+#~ msgstr "Lorsque \"signed\" ou \"unsigned\" n'est pas fourni rendre le champ de bits non sign"
+
+#~ msgid "Make \"char\" unsigned by default"
+#~ msgstr "Rendre les \"char\" non signs par dfaut"
+
+#~ msgid "Perform loop unswitching"
+#~ msgstr "Excuter des boucles sans branchement"
+
+#~ msgid "Just generate unwind tables for exception handling"
+#~ msgstr "Gnrer simplement des tables tendues pour le traitement des exceptions"
+
+#~ msgid "Use __cxa_atexit to register destructors"
+#~ msgstr "Utiliser __cxa_atexit pour enregistrer les destructeurs."
+
+#~ msgid "Add extra commentary to assembler output"
+#~ msgstr "Ajouter des commentaires additionnels la sortie de l'assembleur"
+
+#~ msgid "Use expression value profiles in optimizations"
+#~ msgstr "Utiliser le profile de la valeur d'expression dans l'optimisation"
+
+#~ msgid "Discard unused virtual functions"
+#~ msgstr "carter les fonctions virtuelles non utilises"
+
+#~ msgid "Implement vtables using thunks"
+#~ msgstr "Implanter les vtables en utilisant des thunks"
+
+#~ msgid "Emit common-like symbols as weak symbols"
+#~ msgstr "Produire les symboles communs comme des symboles faibles"
+
+#~ msgid "Construct webs and split unrelated uses of single variable"
+#~ msgstr "Construire une toile et sparer les utilisations de variables simples"
+
+#~ msgid "-fwide-exec-charset=<cset>\tConvert all wide strings and character constants to character set <cset>"
+#~ msgstr "-fwide-exec-charset=<cset>\tconvertir toutes les chanes et les constantes larges de caractres en jeux de caractres <cset>"
+
+#~ msgid "Generate a #line directive pointing at the current working directory"
+#~ msgstr "Gnrer une directive #ligne pointant sur le rpertoire courant de travail"
+
+#~ msgid "Assume signed arithmetic overflow wraps around"
+#~ msgstr "Assumer un dbordement arithmtique sign enroul"
+
+#~ msgid "Store strings in writable data section"
+#~ msgstr "Stocker les chanes dans les sections d'criture des donnes"
+
+#~ msgid "Emit cross referencing information"
+#~ msgstr "Produire l'information des rfrences croises"
+
+#~ msgid "Put zero initialized data in the bss section"
+#~ msgstr "Placer des donnes initialises de zros dans la section bss"
+
+#~ msgid "Generate lazy class lookup (via objc_getClass()) for use in Zero-Link mode"
+#~ msgstr "Gnrer un recherche molle de class (via objc_getClass()) pour l'utilisation en mode Zero-Link"
+
+#~ msgid "Generate debug information in default format"
+#~ msgstr "Gnrer les informations de mise au point dans le format par dfaut"
+
+#~ msgid "Generate debug information in COFF format"
+#~ msgstr "Gnrer les informations de mise au point dans le format COFF"
+
+#~ msgid "Generate debug information in DWARF v2 format"
+#~ msgstr "Gnrer les informations de mise au point dans le format DWARF v2"
+
+#~ msgid "Dump declarations to a .decl file"
+#~ msgstr "Vidanger les dclarations dans un fichier .decl"
+
+#~ msgid "Generate debug information in default extended format"
+#~ msgstr "Gnrer les informations de mise au point dans le format tendu par dfaut"
+
+#~ msgid "Generate debug information in STABS format"
+#~ msgstr "Gnrer les informations de mise au point dans le format STABS"
+
+#~ msgid "Generate debug information in extended STABS format"
+#~ msgstr "Gnrer les informations de mise au point dans le format tendu STABS"
+
+#~ msgid "Generate debug information in VMS format"
+#~ msgstr "Gnrer les informations de mise au point dans le format VMS"
+
+#~ msgid "Generate debug information in XCOFF format"
+#~ msgstr "Gnrer les information de mise au point dans le format XCOFF"
+
+#~ msgid "Generate debug information in extended XCOFF format"
+#~ msgstr "Gnrer les informations de mise au point dans le format tendu XCOFF"
+
+#~ msgid "-idirafter <dir>\tAdd <dir> to the end of the system include path"
+#~ msgstr "-idirafter <rpertoire>\tajouter <rpertoire> la fin du chemin systme d'inclusion"
+
+#~ msgid "-imacros <file>\tAccept definition of macros in <file>"
+#~ msgstr "-imacros <fichier>\taccepter la dfinition de macros dans le <fichier>"
+
+#~ msgid "-include <file>\tInclude the contents of <file> before other files"
+#~ msgstr "-include <fichier>\tinclure le contenu du <fichier> avant les autres fichiers"
+
+#~ msgid "-iprefix <path>\tSpecify <path> as a prefix for next two options"
+#~ msgstr "-iprefix <chemin>\tslectionner le <chemin> comme prfixer aux deux prochaines options"
+
+#~ msgid "-isysroot <dir>\tSet <dir> to be the system root directory"
+#~ msgstr "-isysroot <rpertoire>\tslectionner le <rpertoire> comme rpertoire racine du systme"
+
+#~ msgid "-isystem <dir>\tAdd <dir> to the start of the system include path"
+#~ msgstr "-isystem <rpertoire>\tajouter le <rpertoire> au dbut du chemin d'inclusion principal"
+
+#~ msgid "-iwithprefix <dir>\tAdd <dir> to the end of the system include path"
+#~ msgstr "-iwithprefix <rpertoire>\tajouter le <rpertoire> la fin du chemin d'inclusion principal"
+
+#~ msgid "-iwithprefixbefore <dir>\tAdd <dir> to the end of the main include path"
+#~ msgstr "-iwithprefixbefore <rpertoire>\tajouter le <rpertoire> la fin du chemin d'inclusion principal"
+
+#~ msgid "Do not search standard system include directories (those specified with -isystem will still be used)"
+#~ msgstr "Ne pas rechercher les rpertoires standard systme d'inclusion (ceux spcifis avec -isystem seront encore utiliss)"
+
+#~ msgid "Do not search standard system include directories for C++"
+#~ msgstr "Ne pas rechercher les rpertoires standard systme d'inclusion pour C++"
+
+#~ msgid "-o <file>\tPlace output into <file>"
+#~ msgstr "-o <fichier>\tproduire la sortie dans le <fichier>"
+
+#~ msgid "Enable function profiling"
+#~ msgstr "Autoriser le profilage de fonction"
+
+#~ msgid "Issue warnings needed for strict compliance to the standard"
+#~ msgstr "mettre les avertissements ncessaires pour tre conforme au standard"
+
+#~ msgid "Like -pedantic but issue them as errors"
+#~ msgstr "Identique -pedantic mais les marque comme des erreurs"
+
+#~ msgid "Generate C header of platform-specific features"
+#~ msgstr "Gnrer les en-ttes C pour les options spcifiques la plate-forme"
+
+#~ msgid "Do not display functions compiled or elapsed time"
+#~ msgstr "Ne pas afficher les fonctions compiles ou le temps coul"
+
+#~ msgid "Remap file names when including files"
+#~ msgstr "Rampper les noms lors de l'inclusion des fichiers"
+
+#~ msgid "Conform to the ISO 1998 C++ standard"
+#~ msgstr "Conforme au standard ISO C++ de 1998"
+
+#~ msgid "Conform to the ISO 1990 C standard"
+#~ msgstr "Conforme au standard ISO C de 1990"
+
+#~ msgid "Conform to the ISO 1999 C standard"
+#~ msgstr "Conforme au standard ISO C de 1999"
+
+#~ msgid "Deprecated in favor of -std=c99"
+#~ msgstr "Obsolte la faveur de l'option -std=c99"
+
+#~ msgid "Conform to the ISO 1998 C++ standard with GNU extensions"
+#~ msgstr "Conforme au standard ISO C++ de 1998 avec les extensions de GNU"
+
+#~ msgid "Conform to the ISO 1990 C standard with GNU extensions"
+#~ msgstr "Conforme au standard ISO C de 1990 avec les extensions de GNU"
+
+#~ msgid "Conform to the ISO 1999 C standard with GNU extensions"
+#~ msgstr "Conforme au standard ISO C de 1999 avec les extensions de GNU"
+
+#~ msgid "Deprecated in favor of -std=gnu99"
+#~ msgstr "Obsolte la faveur de l'option -std=gnu99"
+
+#~ msgid "Deprecated in favor of -std=c89"
+#~ msgstr "Obsolte la faveur de l'option -std=c89"
+
+#~ msgid "Conform to the ISO 1990 C standard as amended in 1994"
+#~ msgstr "Conforme au standard ISO C de 1990 tel amend en 1994"
+
+#~ msgid "Enable traditional preprocessing"
+#~ msgstr "Autoriser le traitement traditionnel"
+
+#~ msgid "-trigraphs\tSupport ISO C trigraphs"
+#~ msgstr "-trigraphs\tSupporter les tri-graphes ISO C"
+
+#~ msgid "Do not predefine system-specific and GCC-specific macros"
+#~ msgstr "Ne pas prdfinir les macros spcifiques au systme ou GCC"
+
+#~ msgid "Enable verbose output"
+#~ msgstr "Autoriser le mode bavard sur la sortie"
+
+#~ msgid "Display the compiler's version"
+#~ msgstr "Afficher la version du compilateur"
+
+#~ msgid "Suppress warnings"
+#~ msgstr "Supprimer les avertissements"
+
+#~ msgid "`-p' not supported; use `-pg' and gprof(1)"
+#~ msgstr " -p n'est pas support; utiliser -pg et gprof(1)"
+
+#~ msgid "GCC does not support -C without using -E"
+#~ msgstr "GCC ne supporte pas -C sans utiliser -E"
+
+#~ msgid "GCC does not support -CC without using -E"
+#~ msgstr "GCC ne supporte pas -CC sans utiliser -E"
+
+#~ msgid "may not use both -m32 and -m64"
+#~ msgstr "ne peut utiliser ensemble -m32 et -m64"
+
+#~ msgid "shared and mdll are not compatible"
+#~ msgstr "shared et mdll ne sont pas compatibles"
+
+#~ msgid "-current_version only allowed with -dynamiclib"
+#~ msgstr "-current_version permis seulement avec -dynamiclib"
+
+#~ msgid "-install_name only allowed with -dynamiclib"
+#~ msgstr "-install_name permis seulement avec with -dynamiclib"
+
+#~ msgid "-bundle not allowed with -dynamiclib"
+#~ msgstr "-bundle n'est pas permis avec -dynamiclib"
+
+#~ msgid "-bundle_loader not allowed with -dynamiclib"
+#~ msgstr "-bundle_loader n'est pas permis avec -dynamiclib"
+
+#~ msgid "-client_name not allowed with -dynamiclib"
+#~ msgstr "-client_name n'est pas permis avec -dynamiclib"
+
+#~ msgid "-force_cpusubtype_ALL not allowed with -dynamiclib"
+#~ msgstr "-force_cpusubtype_ALL n'est pas permis avec -dynamiclib"
+
+#~ msgid "-force_flat_namespace not allowed with -dynamiclib"
+#~ msgstr "-force_flat_namespace n'est pas permis avec -dynamiclib"
+
+#~ msgid "-keep_private_externs not allowed with -dynamiclib"
+#~ msgstr "-keep_private_externs n'est pas permis avec -dynamiclib"
+
+#~ msgid "-private_bundle not allowed with -dynamiclib"
+#~ msgstr "-private_bundle n'est pas permis avec -dynamiclib"
+
+#~ msgid "The -shared option is not currently supported for VAX ELF."
+#~ msgstr "L'option -shared n'est pas couramment supporte pour VAS ELF."
+
+#~ msgid "profiling not supported with -mg\n"
+#~ msgstr "profilage n'est pas support avec -mg\n"
+
+#~ msgid "may not use both -EB and -EL"
+#~ msgstr "ne peut utiliser ensemble -EB et -EL"
+
+#~ msgid "-pipe is not supported"
+#~ msgstr "-pipe n'est pas support"
+
+#~ msgid "-pg and -fomit-frame-pointer are incompatible"
+#~ msgstr "-pg et -fomit-frame-pointer sont incompatibles"
+
+#~ msgid "-fjni and -femit-class-files are incompatible"
+#~ msgstr "-fjni et -femit-class-files sont incompatibles"
+
+#~ msgid "-fjni and -femit-class-file are incompatible"
+#~ msgstr "-fjni et -femit-class-file sont incompatibles"
+
+#~ msgid "-femit-class-file should used along with -fsyntax-only"
+#~ msgstr "-femit-class-file dervait tre utilis avec -fsyntax-only"
+
+#~ msgid "-pg or -p and -fomit-frame-pointer are incompatible"
+#~ msgstr "-pg et -p et -fomit-frame-pointer sont incompatibles"
+
+#~ msgid "does not support multilib"
+#~ msgstr "ne supporte pas multilib"
+
+#~ msgid "-pg not supported on this platform"
+#~ msgstr "-pg n'est pas support sur cette plate-forme"
+
+#~ msgid "-p and -pp specified - pick one"
+#~ msgstr "-p et -pp spcifi - n'en prendre qu'un seul"
+
+#~ msgid "-G and -static are mutually exclusive"
+#~ msgstr "-G et -static sont mutuellement exclusives"
+
+#~ msgid "-mapcs-26 and -mapcs-32 may not be used together"
+#~ msgstr "-mapcs-26 et -mapcs-32 ne peuvent tre utiliss ensembles"
+
+#~ msgid "-msoft-float and -mhard_float may not be used together"
+#~ msgstr "-msoft-float et -mhard_float ne peuvent tre utilises ensembles"
+
+#~ msgid "-mbig-endian and -mlittle-endian may not be used together"
+#~ msgstr "-mbig-endian et -mlittle-endian ne peuvent tre utiliss ensemble"
+
+#~ msgid "the m210 does not have little endian support"
+#~ msgstr "Le m210 ne supporte pas le code pour systme octets de poids faible"
+
+#~ msgid "one of -c, -S, -gnatc, -gnatz, or -gnats is required for Ada"
+#~ msgstr "une parmi -c, -S, -gnatc, -gnatz ou -gnats est requise pour Ada"
+
+#~ msgid "-mhard-float not supported"
+#~ msgstr "-mhard-float n'est pas support"
+
+#~ msgid "-msingle-float and -msoft-float can not both be specified"
+#~ msgstr "-msingle-float et -msoft-float ne peuvent tre spcifis ensembles"
+
+#~ msgid " conflicting code gen style switches are used"
+#~ msgstr " code de gnration de style de switches utilises est en conflit"
+
+#~ msgid "GCC does not support -C or -CC without -E"
+#~ msgstr "GCC ne supporte pas -C ou -CC sans utiliser -E"
+
+#~ msgid "-E required when input is from standard input"
+#~ msgstr "-E est requis lorsque l'entre est faite partir de l'entre standard"
+
+#~ msgid "mno-cygwin and mno-win32 are not compatible"
+#~ msgstr "mno-cygwin et mno-win32 ne sont pas compatibles"
+
+#~ msgid "pointer to a member used in arithmetic"
+#~ msgstr "usage en arithmtique d'un pointeur vers un membre"
+
+#~ msgid "declaration of \"%s\" shadows a parameter"
+#~ msgstr "la dclaration de %s masque un paramtre"
+
+#~ msgid "Copyright (C) 2003 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2003 Free Software Foundation, Inc.\n"
+
+#~ msgid "Use the 26-bit version of the APCS"
+#~ msgstr "Utiliser la version 26 bits de APCS"
+
+#~ msgid "duplicate enum value `%D'"
+#~ msgstr "valeur d'numrateur %D en double"
+
+#~ msgid "duplicate field `%D' (as enum and non-enum)"
+#~ msgstr "champ %D en double (comme enum et non enum)"
+
+#~ msgid "duplicate nested type `%D'"
+#~ msgstr "type %D imbriqu en double"
+
+#~ msgid "duplicate field `%D' (as type and non-type)"
+#~ msgstr "duplicattion du champ %D (comme type et non type)"
+
+#~ msgid "duplicate member `%D'"
+#~ msgstr "membre %D est double"
+
+#~ msgid "ISO C++ forbids member `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ interdit le membre %D avec le mme non de la classe de fermeture"
+
+#~ msgid "field `%D' declared static in union"
+#~ msgstr "champ %D dclar statique dans l'union"
+
+#~ msgid "ISO C++ forbids static data member `%D' with same name as enclosing class"
+#~ msgstr "ISO C++ interdit les donnes de membres statiques %D avec le mme nom comme classe de fermeture"
+
+#~ msgid "anachronistic use of array size in vector delete"
+#~ msgstr "utilisation anachronique de la taille d'un tableau dans un vecteur delete"
+
+#~ msgid "ISO C++ forbids aggregate initializer to new"
+#~ msgstr "ISO C++ interdit l'aggrgation d'initialiseur new"
+
+#~ msgid "neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined."
+#~ msgstr "ni le destructeur ni l'oprateur delete spcifique la classe ne sera appell, mme s'ils sont dclars lorsque la classe est dfinie"
+
+#~ msgid "Warn if deprecated class, method, or field is used"
+#~ msgstr "Avertir si une classe, une mthode ou un champ obsolte est utilis"
+
+#~ msgid "Warn if deprecated empty statements are found"
+#~ msgstr "Avertir si des dclarations vides obsoltes sont trouves"
+
+#~ msgid "Enable warnings about inter-procedural problems"
+#~ msgstr "Autoriser les avertissements propos des problmes inter-procdural"
+
+#~ msgid "Warn if .class files are out of date"
+#~ msgstr "Avertir si des fichier .class sont primes"
+
+#~ msgid "Warn if modifiers are specified when not necessary"
+#~ msgstr "Avertir si des modificateurs sont spcifis sans que cela ne soit ncessaires"
+
+#~ msgid "Warn about constructs with surprising meanings"
+#~ msgstr "Avertir propos des construits ayant des sens surprenants"
+
+#~ msgid "--CLASSPATH\tDeprecated; use --classpath instead"
+#~ msgstr "--CLASSPATH\tobsolte; utiliser --classpath la place"
+
+#~ msgid "Do not treat local variables and COMMON blocks as if they were named in SAVE statements"
+#~ msgstr "Traiter les variables locales et les blocs COMMON comme s'ils taient nomms dans une dclaration SAVE"
+
+#~ msgid "Backslashes in character and hollerith constants are special (not C-style)"
+#~ msgstr "Barres obliques inverses dans les constantes de caractres ou d'hollerith ne sont pas particulires (pas de style C)"
+
+#~ msgid "Delete libU77 intrinsics with bad interfaces"
+#~ msgstr "Dtruire les intrinsques libU77 ayant des interfaces errones"
+
+#~ msgid "Disable libU77 intrinsics with bad interfaces"
+#~ msgstr "Dsactiver les intrinsques libU77 ayant des interfaces errones"
+
+#~ msgid "Enable libU77 intrinsics with bad interfaces"
+#~ msgstr "Autoriser les intrinsques libU77 ayant des interfaces errones"
+
+#~ msgid "Hide libU77 intrinsics with bad interfaces"
+#~ msgstr "Cacher les intrinsques libU77 ayant des interfaces errones"
+
+#~ msgid "--bootclasspath=<path>\tReplace system path"
+#~ msgstr "--bootclasspath=<chemin>\tremplacer le <chemin> systme"
+
+#~ msgid "Program written in strict mixed-case"
+#~ msgstr "Programme crit dans une stricte casse mlange"
+
+#~ msgid "Compile as if program written in lowercase"
+#~ msgstr "Compiler comme si le programme tait crit en minuscules"
+
+#~ msgid "Preserve case used in program"
+#~ msgstr "Prserver la casse utilise dans un programme"
+
+#~ msgid "Program written in lowercase"
+#~ msgstr "Programmes crit en minuscules"
+
+#~ msgid "Program written in uppercase"
+#~ msgstr "Programme crit en majuscules"
+
+#~ msgid "Compile as if program written in uppercase"
+#~ msgstr "Compiler comme si le programme tait crit en majuscules"
+
+#~ msgid "--classpath=<path>\tSet class path"
+#~ msgstr "--classpath=<chemin>\tfixer le chemin des classes"
+
+#~ msgid "Emit special debugging information for COMMON and EQUIVALENCE (disabled)"
+#~ msgstr "Produire des information spciales de mise au point pour COMMON et EQUIVALENCE (dsactiv)"
+
+#~ msgid "Allow '$' in symbol names"
+#~ msgstr "Permettre '$' dans les noms de symboles"
+
+#~ msgid "Have front end emulate COMPLEX arithmetic to avoid bugs"
+#~ msgstr "Avoir un frontal d'mulation pour l'arithmtique COMPLEXE pour viter les bugs"
+
+#~ msgid "--encoding=<encoding>\tChoose input encoding (defaults from your locale)"
+#~ msgstr "--encoding=<encodage>\tchoisir l'encodade d'entre (par dfaut provient de la locale)"
+
+#~ msgid "f2c-compatible code can be generated"
+#~ msgstr "code f2c compatible peut tre gnr"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Dtruire les supports f2c intrinsques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Dsactiver les supports f2c intrinsques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Autoriser les supports f2c intrinsques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics f2c supports"
+#~ msgstr "Cacher les supports f2c intrinsques non Fortran 77"
+
+#~ msgid "Unsupported; generate libf2c-calling code"
+#~ msgstr "Non support; gnrer le code d'appel libf2c"
+
+#~ msgid "Program is written in typical FORTRAN 66 dialect"
+#~ msgstr "Programme est crit dans un dialecte typique FORTRAN 66"
+
+#~ msgid "Program is written in typical Unix-f77 dialect"
+#~ msgstr "Programme est crit dans un dialecte typique Unix f77"
+
+#~ msgid "Program is written in Fortran-90-ish dialect"
+#~ msgstr "Programme est crit dans un dialecte Fortran 90"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Dtruire les supports F90 intrinsques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Dsactiver les supports F90 intrinsques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Autoriser les supports F90 intrinsques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics F90 supports"
+#~ msgstr "Cacher les supports F90 intrinsques non Fortran 77"
+
+#~ msgid "ffixed-line-length-<number>\tSet the maximum line length to <number>"
+#~ msgstr "ffixed-line-limit-<nombre>\tfixer la longueur maximale de la ligne <nombre>"
+
+#~ msgid "Unsupported; affects code generation of arrays"
+#~ msgstr "Non support; affecte la gnration de code des tableaux"
+
+#~ msgid "Always check for non gcj generated classes archives"
+#~ msgstr "Toujours vrifier dans les archives de classes non gnres gcj"
+
+#~ msgid "Generate code to check subscript and substring bounds"
+#~ msgstr "Gnrer du code pour vrifier les bornes des souscripts et des sous-chanes"
+
+#~ msgid "Program is written in Fortran-90-ish free form"
+#~ msgstr "Programme est crit dans un style libre Fortran 90"
+
+#~ msgid "Enable fatal diagnostics about inter-procedural problems"
+#~ msgstr "Autoriser les diagnostiques fatals propos des problmes entre procdures"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics g77 supports"
+#~ msgstr "Dtruire les supports g77 intrinsques non Fortran 77"
+
+#~ msgid "Disable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Dsactiver les supports g77 intrinsques non Fortran 77"
+
+#~ msgid "Enable non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Autoriser les supports F90 intrinsques non Fortran 77"
+
+#~ msgid "Hide non-FORTRAN 77 intrinsics F90 supports"
+#~ msgstr "Cacher les supports g77 intrinsques non Fortran 77"
+
+#~ msgid "Use offset tables for virtual method calls"
+#~ msgstr "Utiliser des tables de dcalage pour les appels de mthodes virtuelles"
+
+#~ msgid "Initialize local vars and arrays to zero"
+#~ msgstr "Initialiser les vars locales et les tableaux zro"
+
+#~ msgid "Intrinsics letters in arbitrary cases"
+#~ msgstr "Lettres d'instrinsques en casse arbitraire"
+
+#~ msgid "Intrinsics spelled as e.g. SqRt"
+#~ msgstr "Intrinsques pelles tel que SqRt"
+
+#~ msgid "Intrinsics in lowercase"
+#~ msgstr "Intrinsques en minuscules"
+
+#~ msgid "Intrinsics in uppercase"
+#~ msgstr "Intrinsques en majuscules"
+
+#~ msgid "Assume native functions are implemented using JNI"
+#~ msgstr "Prsumer que les fonctions natives sont implantes et qu'elles utilisent JNI"
+
+#~ msgid "Language keyword letters in arbitrary cases"
+#~ msgstr "Lettres des mots cls du langage dans des casses arbitraires"
+
+#~ msgid "Language keywords spelled as e.g. IOStat"
+#~ msgstr "Mots cls du langage pells tel que IOStat"
+
+#~ msgid "Language keywords in lowercase"
+#~ msgstr "Mots cls du langage en minuscules"
+
+#~ msgid "Language keywords in uppercase"
+#~ msgstr "Mots cls du langage en majuscules"
+
+#~ msgid "Delete MIL-STD 1753 intrinsics"
+#~ msgstr "Dtruire les intrinsques MIL-STD 1753"
+
+#~ msgid "Disable MIL-STD 1753 intrinsics"
+#~ msgstr "Dsactiver les intrinsques MIL-STD 1753"
+
+#~ msgid "Enable MIL-STD 1753 intrinsics"
+#~ msgstr "Autoriser intrinsques MIL-STD 1753"
+
+#~ msgid "Hide MIL-STD 1753 intrinsics"
+#~ msgstr "Cacher les intrinsques MIL-STD 1753"
+
+#~ msgid "Take at least one trip through each iterative DO loop"
+#~ msgstr "Excuter une dernire fois la visite traves chaque boucle itrative DO"
+
+#~ msgid "Enable optimization of static class initialization code"
+#~ msgstr "Autorisser l'optimisation du code d'initialisation de classe statique"
+
+#~ msgid "Warn about use of (only a few for now) Fortran extensions"
+#~ msgstr "Avertir propos de l'utilisation (trs peu pour l'instant) des extensions Fortran"
+
+#~ msgid "Allow appending a second underscore to externals"
+#~ msgstr "Permettre l'ajout d'un second caractre de soulignement aux externes"
+
+#~ msgid "Do not print names of program units as they are compiled"
+#~ msgstr "Afficher les noms des units de programme tels que compiles"
+
+#~ msgid "Internally convert most source to lowercase"
+#~ msgstr "Convertir de manire interne la majorit des sources en majuscules"
+
+#~ msgid "Internally preserve source case"
+#~ msgstr "Prserver l'interne la casse des sources"
+
+#~ msgid "Internally convert most source to uppercase"
+#~ msgstr "Convertir l'interne la majorit des sources en majuscules"
+
+#~ msgid "Enable assignability checks for stores into object arrays"
+#~ msgstr "Autoriser la vrificaitions des affectations dans le stockage des tableaux d'objets"
+
+#~ msgid "Symbol names spelled in mixed case"
+#~ msgstr "Noms des symboles pells dans des casses mlanges"
+
+#~ msgid "Symbol names in lowercase"
+#~ msgstr "Noms de symboles en minuscules"
+
+#~ msgid "Symbol names in uppercase"
+#~ msgstr "Noms des symboles en majuscules"
+
+#~ msgid "Make prefix-radix non-decimal constants be typeless"
+#~ msgstr "Rendre les prfixes des bases des constantes non dcimales sans type"
+
+#~ msgid "Allow all ugly features"
+#~ msgstr "Permettre toutes les options laides"
+
+#~ msgid "Hollerith and typeless can be passed as arguments"
+#~ msgstr "Les Hollerith et sans type peuvent tre passs comme arguments"
+
+#~ msgid "Allow ordinary copying of ASSIGN'ed vars"
+#~ msgstr "Permettre le copie ordinaire des variable affectes"
+
+#~ msgid "Dummy array dimensioned to (1) is assumed-size"
+#~ msgstr "Tableau factice dont la taille des dimensions (1) est assume"
+
+#~ msgid "Trailing comma in procedure call denotes null argument"
+#~ msgstr "Virgule de fin dans l'appel de la procdure dnote un argument nul"
+
+#~ msgid "Allow REAL(Z) and AIMAG(Z) given DOUBLE COMPLEX Z"
+#~ msgstr "Permettre REAL(Z) et AIMAG(Z) pour les DOUBLE COMPLEX Z"
+
+#~ msgid "Initialization via DATA and PARAMETER is not type-compatible"
+#~ msgstr "Initialisation via DATA et PARAMETER n'est pas un type compatible"
+
+#~ msgid "Allow INTEGER and LOGICAL interchangeability"
+#~ msgstr "Permettre l'interchangeabilit de INTEGER et LOGICAL"
+
+#~ msgid "Append underscores to externals"
+#~ msgstr "Ajouter des caractres de soulignement aux externes"
+
+#~ msgid "Delete libU77 intrinsics"
+#~ msgstr "Dtruire les intrinsques libU77"
+
+#~ msgid "Disable libU77 intrinsics"
+#~ msgstr "Dsactiver les intrinsques libU77"
+
+#~ msgid "Enable libU77 intrinsics"
+#~ msgstr "Autoriser les intrinsques libU77"
+
+#~ msgid "Hide libU77 intrinsics"
+#~ msgstr "Cacher les intrinsques libU77"
+
+#~ msgid "Print g77-specific version information and run internal tests"
+#~ msgstr "Afficher les informations de version spcifiques du compilateur g77, excuter les tests internes"
+
+#~ msgid "Program is written in VXT (Digital-like) FORTRAN"
+#~ msgstr "Programme est crit en Fortran VXT (forme de Digital)"
+
+#~ msgid "Delete non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Dtruire les supports VXT Fortran intrinsques non Fortran-77"
+
+#~ msgid "Disable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Dsactiver les supports VXT Fortran intrinsques non Fortran-77"
+
+#~ msgid "Enable non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Dsactiver les supports VXT Fortran intrinsques non Fortran-77"
+
+#~ msgid "Hide non-FORTRAN-77 intrinsics VXT FORTRAN supports"
+#~ msgstr "Cacher les supports VXT Fortran des intrinsques non Fortran-77"
+
+#~ msgid "Print internal debugging-related information"
+#~ msgstr "Afficher les informations internes relies la mise au point"
+
+#~ msgid "Treat initial values of 0 like non-zero values"
+#~ msgstr "Traiter les valeurs initiales de 0 comme des valeurs non zros"
+
+#~ msgid "-gnat<options>\tSpecify options to GNAT"
+#~ msgstr "-gnat<options>\tSpcifier les options pour GNAT"
+
+#~ msgid "concatenation of string literals with __FUNCTION__ is deprecated"
+#~ msgstr "la concatnation de chanes de litraux avec __FUNCTION__ est obsolte"
+
+#~ msgid "ISO C++ forbids range expressions in switch statements"
+#~ msgstr "ISO C++ interdit les intervalles dans les dclarations de switch "
+
+#~ msgid "ISO C++ forbids taking the address of a label"
+#~ msgstr "ISO C++ interdit de prendre l'adresse d'une tiquette"
+
+#~ msgid "ISO C forbids taking the address of a label"
+#~ msgstr "ISO C interdit de prendre l'adresse d'une tiquette"
+
+#~ msgid "declaration of `%s' shadows %s"
+#~ msgstr "la dclaration de %s masque %s"
+
+#~ msgid "`struct %s' incomplete in scope ending here"
+#~ msgstr " struct %s incomplte dans le champ terminant ici"
+
+#~ msgid "`union %s' incomplete in scope ending here"
+#~ msgstr " union %s incomplte dans le champ terminant ici"
+
+#~ msgid "`enum %s' incomplete in scope ending here"
+#~ msgstr " enum %s incomplte dans le champ terminant ici"
+
+#~ msgid "label `%s' defined but not used"
+#~ msgstr "tiquette %s dfinie mais pas utilise"
+
+#~ msgid "shadowing library function `%s'"
+#~ msgstr "masquage de la fonction %s de la bibliothque"
+
+#~ msgid "library function `%s' declared as non-function"
+#~ msgstr "fonction %s de la bibliothque dclare comme n'tant pas une fonction"
+
+#~ msgid "conflicting types for `%s'"
+#~ msgstr "types conflictuels pour %s "
+
+#~ msgid "redeclaration of `%s'"
+#~ msgstr "redclaration de %s "
+
+#~ msgid "prototype for `%s' follows"
+#~ msgstr "le prototype de %s suit"
+
+#~ msgid "non-prototype definition here"
+#~ msgstr "dfinition d'un non prototype ici"
+
+#~ msgid "prototype for `%s' follows and number of arguments doesn't match"
+#~ msgstr "le prototype de %s suit mais le nombre d'arguments ne concorde pas"
+
+#~ msgid "prototype for `%s' follows and argument %d doesn't match"
+#~ msgstr "le prototype de %s suit mais le nombre d'arguments %d ne concorde pas"
+
+#~ msgid "type qualifiers for `%s' conflict with previous decl"
+#~ msgstr "le qualificateur du type de %s est en conflit avec une dclaration prcdente"
+
+#~ msgid "redundant redeclaration of `%s' in same scope"
+#~ msgstr "redclaration redondante de %s dans le mme champ"
+
+#~ msgid "a parameter"
+#~ msgstr "un paramtre"
+
+#~ msgid "a previous local"
+#~ msgstr "une locale prcdente"
+
+#~ msgid "a global declaration"
+#~ msgstr "une dclaration globale"
+
+#~ msgid "`%s' used prior to declaration"
+#~ msgstr " %s utilis avant sa dclaration"
+
+#~ msgid "`%s' was declared implicitly `extern' and later `static'"
+#~ msgstr " %s a t dclar implicitement extern et plus loin static "
+
+#~ msgid "previous external decl of `%s'"
+#~ msgstr "dclaration externe prcdente de %s "
+
+#~ msgid "type mismatch with previous implicit declaration"
+#~ msgstr "non concordance de type avec la dclaration implicite prcdente"
+
+#~ msgid "`%s' was previously implicitly declared to return `int'"
+#~ msgstr " %s a t prcdemment dclar implicitement comme retournant un int "
+
+#~ msgid "`%s' was declared `extern' and later `static'"
+#~ msgstr " %s a t dclar extern et plus loin static "
+
+#~ msgid "`%s' locally external but globally static"
+#~ msgstr " %s localement externe mais globalement statique"
+
+#~ msgid "function `%s' was previously declared within a block"
+#~ msgstr "la fonction %s a t prcdemment dclare l'intrieur d'un bloc"
+
+#~ msgid "declaration of `%s' has `extern' and is initialized"
+#~ msgstr " %s initialis et dclar extern "
+
+#~ msgid "initializer fails to determine size of `%s'"
+#~ msgstr "l'initialisation n'a pas pu dterminer la taille de %s "
+
+#~ msgid "array size missing in `%s'"
+#~ msgstr "taille du tableau manquante dans %s "
+
+#~ msgid "storage size of `%s' isn't known"
+#~ msgstr "taille de stockage de %s inconnue"
+
+#~ msgid "storage size of `%s' isn't constant"
+#~ msgstr "la taille de stockage de %s n'est pas une constante"
+
+#~ msgid "ISO C forbids parameter `%s' shadowing typedef"
+#~ msgstr "ISO C interdit que le paramtre %s masque un typedef"
+
+#~ msgid "parameter `%s' points to incomplete type"
+#~ msgstr "le paramtre %s pointe vers un type incomplet"
+
+#~ msgid "parameter points to incomplete type"
+#~ msgstr "le paramtre pointe vers un type incomplet"
+
+#~ msgid "`void' in parameter list must be the entire list"
+#~ msgstr "si void est dans une liste de paramtres, toute la liste doit l'tre"
+
+#~ msgid "`union %s' declared inside parameter list"
+#~ msgstr " union %s dclare l'intrieur de la liste de paramtres"
+
+#~ msgid "`enum %s' declared inside parameter list"
+#~ msgstr " enum %s dclare l'intrieur de la liste de paramtres"
+
+#~ msgid "anonymous union declared inside parameter list"
+#~ msgstr "union anonyme dclare l'intrieur de la liste des paramtres"
+
+#~ msgid "anonymous enum declared inside parameter list"
+#~ msgstr "numration anonyme dclare l'intrieur de la liste des paramtres"
+
+#~ msgid "bit-field `%s' type invalid in ISO C"
+#~ msgstr "le champ de bits %s a un type invalide en C ISO"
+
+#~ msgid "duplicate member `%s'"
+#~ msgstr "membre %s apparat en double"
+
+#~ msgid "parm types given both in parmlist and separately"
+#~ msgstr "types des paramtres la fois donns dans la liste et sparment"
+
+#~ msgid "parameter `%s' declared void"
+#~ msgstr "paramtre %s dclar void "
+
+#~ msgid "universal-character-name '\\u%04x' not valid in identifier"
+#~ msgstr "nom-de-caractre-universel \\U%04x invalide dans l'identificcateur"
+
+#~ msgid "ignoring invalid multibyte character"
+#~ msgstr "caractre multioctet invalide ignor"
+
+#~ msgid "options array incorrectly sorted: %s is before %s"
+#~ msgstr "tableau des options mal tri : %s est avant %s"
+
+#~ msgid "-Wno-strict-prototypes is not supported in C++"
+#~ msgstr "-Wno-strict-prototypes n'est pas permis en C++"
+
+#~ msgid ""
+#~ "Switches:\n"
+#~ " -include <file> Include the contents of <file> before other files\n"
+#~ " -imacros <file> Accept definition of macros in <file>\n"
+#~ " -iprefix <path> Specify <path> as a prefix for next two options\n"
+#~ " -iwithprefix <dir> Add <dir> to the end of the system include path\n"
+#~ " -iwithprefixbefore <dir> Add <dir> to the end of the main include path\n"
+#~ " -isystem <dir> Add <dir> to the start of the system include path\n"
+#~ msgstr ""
+#~ "Options:\n"
+#~ " -include <fichier> Inclure le contenu du <fichier> avant d'autres fichiers\n"
+#~ " -imacros <fichier> Accepter la dfinition de macros dans le <fichier>\n"
+#~ " -iprefix <chemin> Spcifier le <chemin> comme un prfixe aux prochaines deux options\n"
+#~ " -iwithprefix <rp> Ajouter le <rp>ertoire la fin du chemin d'inclusion systme\n"
+#~ " -iwithprefixbefore <rp> Ajouter le <rp>ertoire la fin du chemin d'inclusion principal\n"
+#~ " -isystem <rp> Ajouter le <rp>ertoire au dbut du chemin d'inclusion systme\n"
+
+#~ msgid ""
+#~ " -idirafter <dir> Add <dir> to the end of the system include path\n"
+#~ " -I <dir> Add <dir> to the end of the main include path\n"
+#~ " -I- Fine-grained include path control; see info docs\n"
+#~ " -nostdinc Do not search system include directories\n"
+#~ " (dirs specified with -isystem will still be used)\n"
+#~ " -nostdinc++ Do not search system include directories for C++\n"
+#~ " -o <file> Put output into <file>\n"
+#~ msgstr ""
+#~ " -idirafter <rp> Ajouter le <rp>ertoire la fin du chemin d'inclusion systme\n"
+#~ " -I <rp> Ajouter le <rp>ertoire la fin du chemin d'inclusion principal\n"
+#~ " -I- Raffiner le contrle du chemin d'inclusion; consulter la doc\n"
+#~ " -nostdinc Ne pas rechercher dans les rpertoires d'inclusion systme\n"
+#~ " (les rp spcifis avec -isystem seront encore utiliss)\n"
+#~ " -nostdinc++ Ne pas rechercher dans les rpertoires d'inclusion systme pour C++\n"
+#~ " -o <fichier> Produire la sortie dans le <fichier>\n"
+
+#~ msgid ""
+#~ " -trigraphs Support ISO C trigraphs\n"
+#~ " -std=<std name> Specify the conformance standard; one of:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999, c++98\n"
+#~ " -w Inhibit warning messages\n"
+#~ " -W[no-]trigraphs Warn if trigraphs are encountered\n"
+#~ " -W[no-]comment{s} Warn if one comment starts inside another\n"
+#~ msgstr ""
+#~ " -trigraphs Permettre les trigraphes C ISO\n"
+#~ " -std=<standard> Spcifier le <standard> de conformit utiliser; soit:\n"
+#~ " gnu89, gnu99, c89, c99, iso9899:1990,\n"
+#~ " iso9899:199409, iso9899:1999, c++98\n"
+#~ " -w Inhiber les messages d'avertissement\n"
+#~ " -W[no-]trigraphs Avertir [ou non] si des trigraphes sont rencontrs\n"
+#~ " -W[no-]comment{s} Avertir [ou non] si un commentaire dbute l'intrieur \n"
+#~ " d'un autre\n"
+
+#~ msgid ""
+#~ " -W[no-]traditional Warn about features not present in traditional C\n"
+#~ " -W[no-]undef Warn if an undefined macro is used by #if\n"
+#~ " -W[no-]import Warn about the use of the #import directive\n"
+#~ msgstr ""
+#~ " -W[no-]traditional Avertir [ou non] propos des fonctionnalits absentes\n"
+#~ " en C traditionnel\n"
+#~ " -W[no-]undef Avertir [ou non] propos des macros utilises dans des\n"
+#~ " #if sans tre dfinies\n"
+#~ " -W[no-]import Avertir [ou non] de l'utilisation de la directive #import\n"
+
+#~ msgid ""
+#~ " -W[no-]error Treat all warnings as errors\n"
+#~ " -W[no-]system-headers Do not suppress warnings from system headers\n"
+#~ " -W[no-]all Enable most preprocessor warnings\n"
+#~ msgstr ""
+#~ " -W[no-]error Changer [ou non] les avertissements en erreurs\n"
+#~ " -W[no-]system-headers Supprimer [ou non] les avertissements propos des \n"
+#~ " en-ttes systme\n"
+#~ " -W[no-]all Gnrer [ou non] la plupart des avertissements du\n"
+#~ " prprocesseur\n"
+
+#~ msgid ""
+#~ " -M Generate make dependencies\n"
+#~ " -MM As -M, but ignore system header files\n"
+#~ " -MD Generate make dependencies and compile\n"
+#~ " -MMD As -MD, but ignore system header files\n"
+#~ " -MF <file> Write dependency output to the given file\n"
+#~ " -MG Treat missing header file as generated files\n"
+#~ msgstr ""
+#~ " -M Gnrer les dpendances pour make\n"
+#~ " -MM Comme -M, en ignorant les fichiers d'en-ttes systme\n"
+#~ " -MD Gnrer les dpendances pour make et compiler\n"
+#~ " -MMD Comme -MD, en ignorant les fichiers d'en-ttes systme\n"
+#~ " -MF <fichier> crire les dpendances dans le <fichier>\n"
+#~ " -MG Traiter les en-ttes manquants comme des fichiers gnrs\n"
+
+#~ msgid ""
+#~ " -MP\t\t\t Generate phony targets for all headers\n"
+#~ " -MQ <target> Add a MAKE-quoted target\n"
+#~ " -MT <target> Add an unquoted target\n"
+#~ msgstr ""
+#~ " -MP\t\t\t Gnrer des cibles factices pour tous les en-ttes\n"
+#~ " -MQ <target> Ajouter une cible protge pour MAKE\n"
+#~ " -MT <target> Ajouter une cible non protge\n"
+
+#~ msgid ""
+#~ " -D<macro> Define a <macro> with string '1' as its value\n"
+#~ " -D<macro>=<val> Define a <macro> with <val> as its value\n"
+#~ " -A<question>=<answer> Assert the <answer> to <question>\n"
+#~ " -A-<question>=<answer> Disable the <answer> to <question>\n"
+#~ " -U<macro> Undefine <macro> \n"
+#~ " -v Display the version number\n"
+#~ msgstr ""
+#~ " -D<macro> Dfinir une <macro> avec la chane 1 pour valeur\n"
+#~ " -D<macro>=<valeur> Dfinir une <macro> de <valeur>\n"
+#~ " -A<question>=(<rponse>) Crer une assertion <question>=<rponse>\n"
+#~ " -A-<question>=(<rponse>) Dissocier la <rponse> la <question>\n"
+#~ " -U<macro> Oublier la dfinition de la <macro> \n"
+#~ " -v Afficher le numro de version\n"
+
+#~ msgid ""
+#~ " -H Print the name of header files as they are used\n"
+#~ " -C Do not discard comments\n"
+#~ " -dM Display a list of macro definitions active at end\n"
+#~ " -dD Preserve macro definitions in output\n"
+#~ " -dN As -dD except that only the names are preserved\n"
+#~ " -dI Include #include directives in the output\n"
+#~ msgstr ""
+#~ " -H Afficher le nom des fichiers en-tte tel qu'utiliss\n"
+#~ " -C Ne pas mettre de ct les commantaires\n"
+#~ " -dM Afficher la liste des dfinitions de macro actives la fin\n"
+#~ " -dD Prserver les dfinitions de macros dans la sortie\n"
+#~ " -dN Comme -dD, mais seuls les noms sont prservs\n"
+#~ " -dI Inclure la directive #include dans la sortie\n"
+
+#~ msgid ""
+#~ " -f[no-]preprocessed Treat the input file as already preprocessed\n"
+#~ " -ftabstop=<number> Distance between tab stops for column reporting\n"
+#~ " -P Do not generate #line directives\n"
+#~ " -remap Remap file names when including files\n"
+#~ " --help Display this information\n"
+#~ msgstr ""
+#~ " -f[no-]preprocessed Considrer [ou non] que le fichier d'entre est \n"
+#~ " dj pr-trait\n"
+#~ " -ftabstop=<nombre> Largeur des tabulations pour indiquer la colonne\n"
+#~ " -P Ne pas gnrer des directives #ligne\n"
+#~ " -remap Refaire la table des noms de fichiers lors de\n"
+#~ " l'inclusion de fichiers\n"
+#~ " --help Afficher cet l'aide-mmoire\n"
+
+# FIXME
+#~ msgid "ISO C forbids the address of a cast expression"
+#~ msgstr "ISO C interdit l'adresse d'une expression transtype"
+
+#~ msgid "initializer for static variable is not constant"
+#~ msgstr "l'initialisation d'une variable statique n'est pas une constante"
+
+#~ msgid "initializer for static variable uses complicated arithmetic"
+#~ msgstr "l'initialisation d'une variable statique utilise une artihmtique complique"
+
+# FIXME
+#~ msgid "aggregate initializer is not constant"
+#~ msgstr "l'initialisation d'aggrgat n'est pas une constante"
+
+# FIXME
+#~ msgid "aggregate initializer uses complicated arithmetic"
+#~ msgstr "l'initialisation d'un aggrgat utilise une arithmtique complique"
+
+# FIXME
+#~ msgid "variable offset is passed partially in stack and in reg"
+#~ msgstr "le dcalage de variable est pass partiellement dans la pile et dans le registre"
+
+#~ msgid "variable size is passed partially in stack and in reg"
+#~ msgstr "la taille de la variable est passe partiellement dans la pile et le registre"
+
+# I18N
+#~ msgid "open %s"
+#~ msgstr "open %s"
+
+#~ msgid "incompatibilities between object file & expected values"
+#~ msgstr "incompatibilits entre le fichier objet et les valeurs attendues"
+
+#~ msgid ""
+#~ "\n"
+#~ "Processing symbol table #%d, offset = 0x%.8lx, kind = %s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Traitement de la table des symboles #%d, dcalage = 0x%.8lx, sorte = %s\n"
+
+# FIXME
+#~ msgid "string section missing"
+#~ msgstr "chane de section manquante"
+
+#~ msgid "section pointer missing"
+#~ msgstr "pointeur de section manquant"
+
+#~ msgid "no symbol table found"
+#~ msgstr "aucune table des symboles trouve"
+
+#~ msgid ""
+#~ "\n"
+#~ "Updating header and load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Mise jour des en-ttes et des commandes de chargement.\n"
+#~ "\n"
+
+# FIXME
+#~ msgid "load command map, %d cmds, new size %ld.\n"
+#~ msgstr "Chargement de la carte des commandes, %d commandes, nouvelle taille %ld.\n"
+
+#~ msgid ""
+#~ "writing load commands.\n"
+#~ "\n"
+#~ msgstr ""
+#~ "criture des commandes de chargement.\n"
+#~ "\n"
+
+# I18N
+#~ msgid "close %s"
+#~ msgstr "close %s"
+
+#~ msgid "could not convert 0x%l.8x into a region"
+#~ msgstr "ne peut convertir 0x%l.8x en rgion"
+
+#~ msgid "%s function, region %d, offset = %ld (0x%.8lx)\n"
+#~ msgstr "fonction %s, rgion %d, dcalage = %ld (0x%.8lx)\n"
+
+#~ msgid "bad magic number"
+#~ msgstr "nombre magique erron"
+
+#~ msgid "bad header version"
+#~ msgstr "version d'en-tte errone"
+
+# FIXME: ou version d'en-tte brut errone
+#~ msgid "bad raw header version"
+#~ msgstr "version brute d'en-tte errone"
+
+# FIXME: ou tampon d'en-tte brut trop petit
+#~ msgid "raw header buffer too small"
+#~ msgstr "tampon brut d'en-tte trop petit"
+
+#~ msgid "old raw header file"
+#~ msgstr "ancien fichier d'en-tte brute"
+
+#~ msgid "unsupported version"
+#~ msgstr "version non reconnue"
+
+#~ msgid "unknown {de,en}code_mach_o_hdr return value %d"
+#~ msgstr "mauvaise valeur de retour (%d) de {de,en}code_mach_o_hdr"
+
+# I18N
+#~ msgid "fstat %s"
+#~ msgstr "fstat %s"
+
+# I18N
+#~ msgid "lseek %s 0"
+#~ msgstr "lseek %s 0"
+
+# I18N
+#~ msgid "read %s"
+#~ msgstr "read %s"
+
+#~ msgid "read %ld bytes, expected %ld, from %s"
+#~ msgstr "lu %ld octets, attendu %ld, de %s"
+
+# I18N
+#~ msgid "msync %s"
+#~ msgstr "msync %s"
+
+# I18N
+#~ msgid "munmap %s"
+#~ msgstr "munmap %s"
+
+# I18N
+#~ msgid "write %s"
+#~ msgstr "write %s"
+
+#~ msgid "wrote %ld bytes, expected %ld, to %s"
+#~ msgstr "crit %ld octets, attendu %ld, vers %s"
+
+#~ msgid "ISO C++ does not permit \"%s\" in #if"
+#~ msgstr "ISO C++ n'autorise pas %s dans #if"
+
+#~ msgid "invalid character '\\%03o' in #if"
+#~ msgstr "caractre \\%03o invalide dans #if"
+
+#~ msgid "absolute file name in remap_filename"
+#~ msgstr "nom de fichier absolu dans remap_filename"
+
+#~ msgid "%s: Not a directory"
+#~ msgstr "%s : ce n'est pas un rpertoire"
+
+#~ msgid "directory name missing after %s"
+#~ msgstr "nom de rpertoire manquant aprs %s"
+
+#~ msgid "file name missing after %s"
+#~ msgstr "nom de fichier manquant aprs %s"
+
+#~ msgid "path name missing after %s"
+#~ msgstr "nom de chemin manquant aprs %s"
+
+#~ msgid "unknown string token %s\n"
+#~ msgstr "lment lexical %s inconnu\n"
+
+#~ msgid "non-hex digit '%c' in universal-character-name"
+#~ msgstr "chiffre %c non hexadcimal dans le nom-de-caractre-universel"
+
+#~ msgid "universal-character-name on EBCDIC target"
+#~ msgstr "nom-de-caractre-universel pour une cible EBCDIC"
+
+#~ msgid "universal-character-name out of range"
+#~ msgstr "nom-de-caractre-universel est hors limite"
+
+#~ msgid "escape sequence out of range for its type"
+#~ msgstr "squence d'chappement hors limite pour son type"
+
+#~ msgid "#import is obsolete, use an #ifndef wrapper in the header file"
+#~ msgstr "#import est obsolte, enveloppez le avec #ifndef dans le fichier d'en-tte"
+
+# FIXME
+#~ msgid "#pragma once is obsolete"
+#~ msgstr "utiliser #pragma once est obsolte"
+
+#~ msgid "((anonymous))"
+#~ msgstr "((anonyme))"
+
+#~ msgid "%s: warnings being treated as errors\n"
+#~ msgstr "%s : les avertissements sont traits commes des erreurs\n"
+
+#~ msgid "At top level:"
+#~ msgstr "Hors de toute fonction :"
+
+#~ msgid "In member function `%s':"
+#~ msgstr "Dans la fonction membre %s :"
+
+#~ msgid "In function `%s':"
+#~ msgstr "Dans la fonction %s :"
+
+#~ msgid ""
+#~ "Please submit a full bug report,\n"
+#~ "with preprocessed source if appropriate.\n"
+#~ "See %s for instructions.\n"
+#~ msgstr ""
+#~ "Veuillez soumettre un rapport complet d'anomalies,\n"
+#~ "avec le source pr-trait si ncessaire.\n"
+#~ "Consultez %s pour plus de dtail.\n"
+
+# FRONT
+#~ msgid "In file included from %s:%d"
+#~ msgstr "Dans le fichier inclus depuis %s:%d"
+
+# I18N: This line should be indented with the previous entry
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%d"
+#~ msgstr ""
+#~ ",\n"
+#~ " depuis %s:%d"
+
+#~ msgid "internal regno botch: `%s' has regno = %d\n"
+#~ msgstr "regno interne mal fait : %s a regno = %d\n"
+
+#~ msgid "support for the DWARF1 debugging format is deprecated"
+#~ msgstr "le support du format de dbogage DWARF1 est obsolte"
+
+#~ msgid "can't get current directory"
+#~ msgstr "ne peut reprer le rpertoire courant"
+
+# FRONT
+#~ msgid "unsupported wide integer operation"
+#~ msgstr "opration sur de large entier non supporte"
+
+#~ msgid "Copyright (C) 2002 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2002 Free Software Foundation, Inc.\n"
+
+#~ msgid "mismatched braces in specs"
+#~ msgstr "accolades non concordantes dans les specs"
+
+#~ msgid "Could not open basic block file %s.\n"
+#~ msgstr "Ne pourrait pas ouvrir le fichier de blocs de base %s.\n"
+
+#~ msgid "Could not open program flow graph file %s.\n"
+#~ msgstr "Ne pourrait pas ouvrir le fichier de flux du programm %s.\n"
+
+#~ msgid "Could not open data file %s.\n"
+#~ msgstr "Ne pourrait pas ouvrir le fichier de donnes %s.\n"
+
+#~ msgid "Assuming that all execution counts are zero.\n"
+#~ msgstr "Suppose que tous les compteurs d'excution sont zro.\n"
+
+#~ msgid "No executable code associated with file %s.\n"
+#~ msgstr "Aucun code excutable associ avec le fichier %s.\n"
+
+#~ msgid "didn't use all bb entries of graph, function %s\n"
+#~ msgstr "N'a pas utiliser toutes les entres bb du graphe, fonction %s\n"
+
+#~ msgid "block_num = %ld, num_blocks = %d\n"
+#~ msgstr "block_num = %ld, num_blocks = %d\n"
+
+#~ msgid "ERROR: unexpected line number %ld\n"
+#~ msgstr "ERREUR : ligne numro %ld inattendue\n"
+
+#~ msgid "ERROR: too many basic blocks in function %s\n"
+#~ msgstr "ERREUR : trop de blocs de base dans la fonction %s\n"
+
+#~ msgid "ERROR: out of range line number in function %s\n"
+#~ msgstr "ERROR: numro de ligne hors limite dans la fonction %s\n"
+
+#~ msgid "Could not open source file %s.\n"
+#~ msgstr "N'a pu ouvrir le fichier source %s.\n"
+
+#~ msgid "Unexpected EOF while reading source file %s.\n"
+#~ msgstr "EOF inattendue lors de la lecture du fichier source %s.\n"
+
+#~ msgid "Creating %s.\n"
+#~ msgstr "Cration de %s.\n"
+
+#~ msgid "invalid string `%s' in define_cpu_unit"
+#~ msgstr "chane invalide %s dans define_cpu_unit"
+
+#~ msgid "invalid string `%s' in define_bypass"
+#~ msgstr "chane invalide %s dans define_bypass"
+
+#~ msgid "invalid first string `%s' in exclusion_set"
+#~ msgstr "premire chane invalide %s dans exclusion_set"
+
+#~ msgid "invalid second string `%s' in exclusion_set"
+#~ msgstr "seconde chane invalide %s dans exclusion_set"
+
+#~ msgid "invalid second string `%s' in presence_set"
+#~ msgstr "seconde chane invalide %s dans presence_set"
+
+#~ msgid "invalid option `%s' in automata_option"
+#~ msgstr "option invalide %s dans automata_option"
+
+#~ msgid "invalid `%s' in reservation `%s'"
+#~ msgstr " %s invalide dans la rservation %s "
+
+#~ msgid "unit `%s' in exclusion is not declared"
+#~ msgstr "unit %s dans l'exclusion n'est pas dclar"
+
+#~ msgid "unit `%s' excludes itself"
+#~ msgstr "unit %s s'exclue elle-mme"
+
+#~ msgid "repeated declaration of automaton `%s'"
+#~ msgstr "dclaration rpt de l'automate %s "
+
+#~ msgid "`%s' is already used as insn reservation name"
+#~ msgstr " %s est dj utilis dans le nom de rservation insn"
+
+#~ msgid "automaton `%s' is not declared"
+#~ msgstr "automate %s n'est pas dclar"
+
+#~ msgid "`%s' is declared as cpu unit"
+#~ msgstr " %s dclar comme unit cpu"
+
+#~ msgid "`%s' is declared as cpu reservation"
+#~ msgstr " %s est dclar comme rservation cpu"
+
+#~ msgid "repeated declaration of unit `%s'"
+#~ msgstr "dclaration rpt d'unit %s "
+
+#~ msgid "repeated declaration of reservation `%s'"
+#~ msgstr "dclaration rpt de rservation %s "
+
+#~ msgid "there is no insn reservation `%s'"
+#~ msgstr "il n'y a pas de rservation insn %s "
+
+#~ msgid "the same bypass `%s - %s' is already defined"
+#~ msgstr "le mme bypass %s - %s est dj dfini"
+
+#~ msgid "bypass `%s - %s' is already defined"
+#~ msgstr "bypass %s - %s est dj dfini"
+
+#~ msgid "undeclared unit or reservation `%s'"
+#~ msgstr "unit ou rservation %s non dclar"
+
+#~ msgid "unit `%s' is not used"
+#~ msgstr "unit %s n'est utilis"
+
+#~ msgid "reservation `%s' is not used"
+#~ msgstr "rservation %s n'est utilis"
+
+#~ msgid "cycle in definition of reservation `%s'"
+#~ msgstr "cycle de dfinition de rservation %s "
+
+#~ msgid "-split has no argument."
+#~ msgstr "-split n'a pas d'argument."
+
+#~ msgid "option `-split' has not been implemented yet\n"
+#~ msgstr "l'option -split n'a pas t implant encore\n"
+
+#~ msgid "Errors in DFA description"
+#~ msgstr "ERREURS dans la description DFA"
+
+#~ msgid "Error in writing DFA description file %s"
+#~ msgstr "Erreur dans l'criture du fichier de description DFA %s"
+
+#~ msgid "No input file name."
+#~ msgstr "Pas de nom de fichier."
+
+#~ msgid ".da file corrupted"
+#~ msgstr "fichier .da corrompu"
+
+#~ msgid "Generate STABS format debug info"
+#~ msgstr "Gnrer des infos de mise au point de format STABS"
+
+#~ msgid "Generate extended STABS format debug info"
+#~ msgstr "Gnrer des infos de mise au point de format STABS tendu"
+
+#~ msgid "Generate DWARF-1 format debug info"
+#~ msgstr "Gnrer les informations de mise au point du format DWARF-1"
+
+#~ msgid "Generate extended DWARF-1 format debug info"
+#~ msgstr "Gnrer les extensions des informations de mise au point du format DWARF-1"
+
+#~ msgid "Generate DWARF-2 debug info"
+#~ msgstr "Gnrer les informations de mise au point DWARF-2"
+
+#~ msgid "Generate XCOFF format debug info"
+#~ msgstr "Gnrer les informations de mise au point du format XCOFF"
+
+#~ msgid "Generate extended XCOFF format debug info"
+#~ msgstr "Gnrer les extensions de mise au point du format XCOFF"
+
+#~ msgid "Generate COFF format debug info"
+#~ msgstr "Gnrer les informations de mise au point du format COFF"
+
+#~ msgid "Generate VMS format debug info"
+#~ msgstr "Gnrer des infos de mise au point de format VMS"
+
+#~ msgid "Consider all mem refs through pointers as volatile"
+#~ msgstr "Considrer toutes les rfrence en mmoire comme faite par des pointeurs volatiles"
+
+#~ msgid "Consider all mem refs to global data to be volatile"
+#~ msgstr "Considrer toutes les rfrences mmoire des donnes globales comme volatiles"
+
+#~ msgid "Consider all mem refs to static data to be volatile"
+#~ msgstr "Considrer toutes les rfrences mmoire des donnes statiques comme volatiles"
+
+#~ msgid "Output GNU ld formatted global initializers"
+#~ msgstr "Produire des initialisations de globlales au format GNU ld"
+
+#~ msgid "Enable SSA optimizations"
+#~ msgstr "Autoriser les optimisations SSA"
+
+#~ msgid "Enable SSA conditional constant propagation"
+#~ msgstr "Autoriser la propagation SSA de constante conditionnelle"
+
+#~ msgid "Enable aggressive SSA dead code elimination"
+#~ msgstr "Autoriser l'limination agressive SSA du code mort"
+
+#~ msgid "Compile just for ISO C90"
+#~ msgstr "Compiler seulement pour ISO C90"
+
+#~ msgid "Determine language standard"
+#~ msgstr "Dterminer le standard du langage"
+
+#~ msgid "Make bit-fields by unsigned by default"
+#~ msgstr "Rendre les champs de bits non signs par dfaut"
+
+#~ msgid "Allow different types as args of ? operator"
+#~ msgstr "Permettre des types diffrents pour les arguments de l'oprateur ?"
+
+#~ msgid "Allow the use of $ inside identifiers"
+#~ msgstr "Permettre l'utilisation de $ l'intrieur d'identificateurs"
+
+#~ msgid "Use the smallest fitting integer to hold enums"
+#~ msgstr "Utiliser le plus petit entier pour contenir l'numration (enums)"
+
+#~ msgid "Warn if nested comments are detected"
+#~ msgstr "Avertir si des commentaires imbriqus sont dtects"
+
+#~ msgid "Don't warn about too many arguments to format functions"
+#~ msgstr "Ne pas avertir propos d'un surplus d'arguments pour des fonctions de format"
+
+#~ msgid "Warn about non-string-literal format strings"
+#~ msgstr "Avertir propos des chanes de format qui ne sont pas des chanes"
+
+#~ msgid "Warn about constructs whose meanings change in ISO C"
+#~ msgstr "Avertir propos de construits dont le sens change en C ISO"
+
+#~ msgid "Warn when trigraphs are encountered"
+#~ msgstr "Avertir lorsque des trigraphes sont rencontrs"
+
+#~ msgid "Mark strings as 'const char *'"
+#~ msgstr "Marque les chanes comme tant 'const char *'"
+
+#~ msgid " -pedantic-errors Like -pedantic except that errors are produced\n"
+#~ msgstr " -pedantic-errors identique -pedantic sauf que les erreurs sont produites\n"
+
+#~ msgid " -w Suppress warnings\n"
+#~ msgstr " -w supprimer les avertissements\n"
+
+#~ msgid " -W Enable extra warnings\n"
+#~ msgstr " -W autoriser les avertissements additionnels\n"
+
+#~ msgid " -Wunused Enable unused warnings\n"
+#~ msgstr " -Wunused autoriser les avertissements pour signaler les non utiliss\n"
+
+#~ msgid " -p Enable function profiling\n"
+#~ msgstr " -p autoriser le profilage des fonctions\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Language specific options:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Options spcifiques au langage:\n"
+
+#~ msgid " %-23.23s [undocumented]\n"
+#~ msgstr " %-23.23s [non document]\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "There are undocumented %s specific options as well.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Il y a des options spcifiques %s qui ne sont pas documents aussi.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ " Options for %s:\n"
+#~ msgstr ""
+#~ "\n"
+#~ " Options pour %s:\n"
+
+#~ msgid "unrecognized option `%s'"
+#~ msgstr "option %s non reconnue"
+
+#~ msgid "-Wid-clash-LEN is no longer supported"
+#~ msgstr "-Wid-clash-LEN n'est plus supporte"
+
+#~ msgid "use -gdwarf -g%d for DWARF v1, level %d"
+#~ msgstr "utiliser -gdwarf -g%d pour DWARF v1, niveau %d"
+
+#~ msgid "use -gdwarf-2 for DWARF v2"
+#~ msgstr "utiliser -gdwarf-2 pour DWARF v2"
+
+#~ msgid "ignoring option `%s' due to invalid debug level specification"
+#~ msgstr "option %s ignore en raison de la spcification du niveau de mise au poitn invalide"
+
+#~ msgid "`%s': unknown or unsupported -g option"
+#~ msgstr " %s : inconnu ou non support option -g"
+
+#~ msgid "`%s' ignored, conflicts with `-g%s'"
+#~ msgstr " %s ignor, en conflit avec -g%s"
+
+#~ msgid "-param option missing argument"
+#~ msgstr "argument manquant pour l'option -param"
+
+#~ msgid "invalid --param option: %s"
+#~ msgstr "option invalide --param: %s"
+
+#~ msgid "(it is valid for %s but not the selected language)"
+#~ msgstr "(c'est valide pour %s mais pas pour le langage sclectionn)"
+
+#~ msgid "#`%s' not supported by %s#"
+#~ msgstr " %s n'est pas support par %s#"
+
+#~ msgid "The maximuem number of instructions by repeated inlining before gcc starts to throttle inlining"
+#~ msgstr "Le nombre maximum d'instructions par type inline rpt avant l'excution de gcc au throttle enligne"
+
+#~ msgid "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining"
+#~ msgstr "Le nombre d'instructions dans une fonction simple encore ligible au type enligne aprs plusieurs inline rcursifs"
+
+#~ msgid "Use Mingw32 interface"
+#~ msgstr "Utiliser l'interface Mingw32"
+
+#~ msgid "Use Cygwin interface"
+#~ msgstr "Utiliser l'interface Cygwin"
+
+#~ msgid "Use bare Windows interface"
+#~ msgstr "Utiliser l'interface brute Windows"
+
+#~ msgid "Only initialized variables can be placed into program memory area."
+#~ msgstr "seules les variables initialises peuvent tre places dans la zone mmoire du programme"
+
+#~ msgid "const objects cannot go in .sdata/.sbss"
+#~ msgstr "constantes objets ne peuvent aller dans .sdata/.sbss"
+
+#~ msgid "Generate code for a Sun FPA"
+#~ msgstr "Gnrer le code pour un Sun FPA"
+
+#~ msgid "Do not generate code for a Sun FPA"
+#~ msgstr "Ne pas gnrer le code pour un Sun FPA"
+
+#~ msgid "Generate code for a Sun Sky board"
+#~ msgstr "Gnrer le code pour un Sun Sky board"
+
+#~ msgid "Do not use Sky linkage convention"
+#~ msgstr "Ne pas utiliser la convention d'dition de lien Sky"
+
+#~ msgid "Generate code for a 68881"
+#~ msgstr "Gnrer du code pour un 68881"
+
+#~ msgid "internal gcc monitor: short-branch(%x)"
+#~ msgstr "moniteur interne gcc: branchement court(%x)"
+
+#~ msgid "internal gcc error: Can't express symbolic location"
+#~ msgstr "erreur interne gcc: ne peut exprimer la localisation symbolique"
+
+#~ msgid "argument #%d is a structure"
+#~ msgstr "argument #%d est une structure"
+
+#~ msgid "%%R not followed by %%B/C/D/E"
+#~ msgstr "%%R n'est pas suivi de %%B/C/D/E"
+
+#~ msgid "invalid %%Q value"
+#~ msgstr "valeur %%Q invalide"
+
+#~ msgid "invalid %%o value"
+#~ msgstr "valeur %%o invalide"
+
+#~ msgid "invalid %%s/S value"
+#~ msgstr "valeur %%s/S invalide"
+
+#~ msgid "invalid %%B value"
+#~ msgstr "valeur %%B invalide"
+
+#~ msgid "`%%d' operand isn't a register"
+#~ msgstr "l'oprande %%d n'est pas un registre"
+
+#~ msgid "operand is r0"
+#~ msgstr "oprande est R0"
+
+#~ msgid "operand is const_double"
+#~ msgstr "oprande est de type const_double"
+
+#~ msgid "-mtrap-large-shift and -mhandle-large-shift are incompatible"
+#~ msgstr "-mtrap-large-shift et -mhandle-large-shift sont incompatibles"
+
+#~ msgid "invalid option `-mshort-data-%s'"
+#~ msgstr "option invalide -mshort-data-%s'"
+
+#~ msgid "-mshort-data-%s is too large "
+#~ msgstr "-mshort-data-%s est trop grande "
+
+#~ msgid "-mshort-data-%s and PIC are incompatible"
+#~ msgstr "-mshort-data-%s et PIC sont incompatibles"
+
+#~ msgid "bad value (%s) for -mips switch"
+#~ msgstr "valeur errone (%s) pour l'option -mips"
+
+#~ msgid "invalid option `entry%s'"
+#~ msgstr "option invalide entry%s'"
+
+#~ msgid "-mentry is only meaningful with -mips-16"
+#~ msgstr "-mentry n'a de sens qu'avec -mips-16"
+
+#~ msgid "MIPS ECOFF format does not allow changing filenames within functions with #line"
+#~ msgstr "format MIPS ECOFF ne permet pas de changer le nom des fichiers l'intrieur des fonction avec #ligne"
+
+#~ msgid "fp_offset (%ld) or end_offset (%ld) is less than zero"
+#~ msgstr "fp_offset (%ld) ou end_offset (%ld) est plus petit que zro"
+
+#~ msgid "Trap on integer divide overflow"
+#~ msgstr "Intercepter les dbordements lors de divisions avec des entiers"
+
+#~ msgid "Don't trap on integer divide overflow"
+#~ msgstr "Ne pas intercepter les dbordement lors de divisions avec des entiers"
+
+#~ msgid "Use mips16 entry/exit psuedo ops"
+#~ msgstr "Utiliser les pseudo-op mips16 d'entre/sortie"
+
+#~ msgid "Don't use MIPS16 instructions"
+#~ msgstr "Ne pas utiliser les instructions MIPS16"
+
+#~ msgid "invalid %%z value"
+#~ msgstr "valeur %%z invalide"
+
+#~ msgid "invalid %%Z value"
+#~ msgstr "valeur %%Z invalide"
+
+#~ msgid "invalid %%j value"
+#~ msgstr "valeur %%j invalide"
+
+#~ msgid "can't have varargs with -mfp-arg-in-fp-regs"
+#~ msgstr "ne peut avoir varargs avec -mfp-arg-in-fp-regs"
+
+#~ msgid "unknown -mvrsave= option specified: '%s'"
+#~ msgstr "option -mvrsave inconnue spcifis: %s "
+
+#~ msgid "64 bit mode"
+#~ msgstr "mode 64 bits"
+
+#~ msgid "31 bit mode"
+#~ msgstr "mode 31 bits"
+
+#~ msgid "Use the Xtensa code density option"
+#~ msgstr "Utiliser l'option de densit du code Xtensa"
+
+#~ msgid "Do not use the Xtensa code density option"
+#~ msgstr "Ne pas utiliser l'option de densit du code Xtensa"
+
+#~ msgid "Use the Xtensa MAC16 option"
+#~ msgstr "Utiliser l'option Xtensa MAC16"
+
+#~ msgid "Do not use the Xtensa MAC16 option"
+#~ msgstr "Ne pas utiliser l'option Xtensa MAC16"
+
+#~ msgid "Use the Xtensa MUL16 option"
+#~ msgstr "Utiliser l'option Xtensa MUL16"
+
+#~ msgid "Do not use the Xtensa MUL16 option"
+#~ msgstr "Ne pas utiliser l'option Xtensa MUL16"
+
+#~ msgid "Use the Xtensa MUL32 option"
+#~ msgstr "Utiliser l'option Xtensa MUL16"
+
+#~ msgid "Do not use the Xtensa MUL32 option"
+#~ msgstr "Ne pas utiliser l'option Xtensa MUL32"
+
+#~ msgid "Use the Xtensa NSA option"
+#~ msgstr "Utiliser l'option Xtensa NSA"
+
+#~ msgid "Do not use the Xtensa NSA option"
+#~ msgstr "Ne pas utiliser l'option Xtensa NSA"
+
+#~ msgid "Use the Xtensa MIN/MAX option"
+#~ msgstr "Utiliser l'option Xtensa MIN/MAX"
+
+#~ msgid "Do not use the Xtensa MIN/MAX option"
+#~ msgstr "Ne pas utiliser l'option Xtensa MIN/MAX"
+
+#~ msgid "Use the Xtensa SEXT option"
+#~ msgstr "Utiliser l'option Xtensa SEXT"
+
+#~ msgid "Do not use the Xtensa SEXT option"
+#~ msgstr "Ne pas utiliser l'option Xtensa SEXT"
+
+#~ msgid "Use the Xtensa boolean register option"
+#~ msgstr "Utiliser l'option des registres boolens Xtensa"
+
+#~ msgid "Do not use the Xtensa boolean register option"
+#~ msgstr "Ne pas utiliser l'option des registres boolens Xtensa"
+
+#~ msgid "Use the Xtensa floating-point unit"
+#~ msgstr "Utiliser l'unit matrielle pour virgule flottante Xtensa"
+
+#~ msgid "Do not use the Xtensa floating-point unit"
+#~ msgstr "Ne pas utiliser l'unit matrielle pour virgule flottante Xtensa"
+
+#~ msgid "Serialize volatile memory references with MEMW instructions"
+#~ msgstr "Srialiser les rfrences la mmoire volatile avec des instructions MEMW"
+
+#~ msgid "Do not serialize volatile memory references with MEMW instructions"
+#~ msgstr "Ne pas srialiser les rfrences la mmoire volatile avec des instructions MEMW"
+
+#~ msgid "type of `%E' does not match destructor type `%T' (type was `%T')"
+#~ msgstr "type de %E ne concorde pas avec le type du destructeur %T (type tait %T )"
+
+#~ msgid "`%D' is a namespace"
+#~ msgstr " %D est un nom d'espace"
+
+#~ msgid "base object `%E' of scoped method call is of non-aggregate type `%T'"
+#~ msgstr "objet de base %E de la porte d'appel de la mthode n'est pas de type aggrgat %T "
+
+#~ msgid "destructors take no parameters"
+#~ msgstr "destructeurs ne prend aucun paramtre"
+
+#~ msgid "destructor name `~%T' does not match type `%T' of expression"
+#~ msgstr "nom du destructeur ~%T ne concorde pas avec le type %T de l'expression"
+
+#~ msgid "%s %+#D%s"
+#~ msgstr "%s %+#D%s"
+
+#~ msgid "%s for `%T ? %T : %T' operator"
+#~ msgstr "%s pour %T ? %T : %T comme oprateur"
+
+#~ msgid "%s for `%T [%T]' operator"
+#~ msgstr "%s pour l'oprateur %T [%T]"
+
+#~ msgid "%s for `%T %s %T' operator"
+#~ msgstr "%s pour l'oprateur %T %s [%T]"
+
+#~ msgid "%s for `%s %T' operator"
+#~ msgstr "%s pour l'oprateur %s [%T]"
+
+#~ msgid "`%D' must be declared before use"
+#~ msgstr " %D doit tre dclar avant son usage"
+
+#~ msgid " initializing argument %P of `%D' from result of `%D'"
+#~ msgstr " initialisation de l'argument %P de %D partir du rsultat %D "
+
+#~ msgid " initializing temporary from result of `%D'"
+#~ msgstr " initialisation temporaire partir du rsultat %D "
+
+#~ msgid "cannot receive objects of non-POD type `%#T' through `...'"
+#~ msgstr "ne peut recevoir d'objets de type non POD %#T through ... "
+
+#~ msgid "field `%D' invalidly declared offset type"
+#~ msgstr "champ %D incorrectement valid comme type de dcalage"
+
+#~ msgid "lookup of `%D' finds `%#D'"
+#~ msgstr "recherche de %D a repr %#D "
+
+#~ msgid " instead of `%D' from dependent base class"
+#~ msgstr " au lieu de %D partir d'un classe de base dpendante"
+
+#~ msgid "lookup of `%D' in the scope of `%#T' (`%#D') does not match lookup in the current scope (`%#D')"
+#~ msgstr "recherche de %D dans la porte de %#T ( %#D ) ne concorde pas avec la recherche dans la porte courante ( %#D )"
+
+#~ msgid "invalid declarator"
+#~ msgstr "dclarateur invalide"
+
+#~ msgid "`%T' is implicitly a typename"
+#~ msgstr " %T est implicitement un typename"
+
+#~ msgid "parameter `%D' invalidly declared offset type"
+#~ msgstr "paramtre %D incorrectement valid comme type de dcalage"
+
+#~ msgid "`%s %T' declares a new type at namespace scope"
+#~ msgstr " %s %T dclare un nouveau type dans l'tendue de l'espace de noms"
+
+#~ msgid " names from dependent base classes are not visible to unqualified name lookup - to refer to the inherited type, say `%s %T::%T'"
+#~ msgstr " noms des classes de base dpendantes ne sont pas visibles la recherche de nom non qualifi - pour rfrer type par hritage, disons %s %T::%T"
+
+#~ msgid "base class `%T' has incomplete type"
+#~ msgstr "classe de base %T a un type incomplet"
+
+#~ msgid "semicolon missing after declaration of `%#T'"
+#~ msgstr "point-virgule manquant aprs la dclaration %#T"
+
+#~ msgid "template `%#D' instantiated in file without #pragma interface"
+#~ msgstr "canevas %#D instanci dans le fichier sans interface #pragma"
+
+#~ msgid "template `%#D' defined in file without #pragma interface"
+#~ msgstr "canevas %#D dfini dans le fichier sans interface #pragma"
+
+#~ msgid "parser may be lost: is there a '{' missing somewhere?"
+#~ msgstr "analyseur syntaxique est perdu: y-a-t-il un { manquant quelque part?"
+
+#~ msgid "invalid data member initialization"
+#~ msgstr "initialisation de donnes membres invalide"
+
+#~ msgid "(use `=' to initialize static data members)"
+#~ msgstr "(utiliser = pour initialiser les donnes de membres)"
+
+#~ msgid "too many initialization functions required"
+#~ msgstr "trop d'initialisations de fonctions requises"
+
+#~ msgid "`%D' is not a namespace"
+#~ msgstr " %D n'est pas un espace de noms"
+
+#~ msgid "a using-declaration cannot specify a template-id. Try `using %T::%D'"
+#~ msgstr "l'utilisation de dclaration ne peut spcifier template-id. Essayer using %T::%D'"
+
+#~ msgid "`%T' does not have a class or union named `%D'"
+#~ msgstr " %T n'a pas de classe ou d'union nomm %D "
+
+#~ msgid "`%T' is not a class or union type"
+#~ msgstr " %T n'est pas une classe ou un type d'union"
+
+#~ msgid "`%s' not supported by %s"
+#~ msgstr " %s n'est pas support par %s"
+
+#~ msgid "(static %s for %s)"
+#~ msgstr "(static %s pour %s)"
+
+#~ msgid "%s: In instantiation of `%s':\n"
+#~ msgstr "%s: dans l'instanciation de %s :\n"
+
+#~ msgid "%s:%d: instantiated from `%s'\n"
+#~ msgstr "%s:%d: instanci partir de %s \n"
+
+#~ msgid "%s:%d: instantiated from here\n"
+#~ msgstr "%s:%d: instanci partir d'ici\n"
+
+#~ msgid "previous friend declaration of `%D'"
+#~ msgstr "dclaration amie prcdente de %D "
+
+#~ msgid "cannot call destructor `%T::~%T' without object"
+#~ msgstr "ne peut appeler le destructeur %T::~%T sans objet"
+
+#~ msgid "invalid use of member `%D'"
+#~ msgstr "utilisation invalide du membre %D "
+
+#~ msgid "no method `%T::%D'"
+#~ msgstr "pas de mthode %T::%D"
+
+#~ msgid "object missing in use of pointer-to-member construct"
+#~ msgstr "objet manquant dans l'utilisation du construit pointeur--membre"
+
+#~ msgid "member `%D' is non-static but referenced as a static member"
+#~ msgstr "membre %D est non statique mais rfrenc comme membre statique"
+
+#~ msgid "object missing in `%E'"
+#~ msgstr "objet manquant dans %E "
+
+#~ msgid "initializer list being treated as compound expression"
+#~ msgstr "liste d'initaliseurs a t trait comme une expression compose"
+
+#~ msgid "cannot declare references to references"
+#~ msgstr "ne peut dcalrer des rfrences vers des rfrences"
+
+#~ msgid "cannot declare pointers to references"
+#~ msgstr "ne peut dclarer des pointeurs vers des rfrences"
+
+#~ msgid "type name expected before `&'"
+#~ msgstr "nom de type attendu avant &"
+
+#~ msgid "semicolon missing after %s declaration"
+#~ msgstr "; manquant aprs la dclaration de %s"
+
+#~ msgid "semicolon missing after declaration of `%T'"
+#~ msgstr "; manquant aprs la dclaration %T "
+
+#~ msgid "`::%D' undeclared (first use here)"
+#~ msgstr "::%D non dclar (premire utilisation ici)"
+
+#~ msgid "real-valued template parameters when cross-compiling"
+#~ msgstr "canevas de paramtre en valeur relle lors de la compilation croise"
+
+#~ msgid "use of linkage spec `%D' is different from previous spec `%D'"
+#~ msgstr "utilisation de spc de liaisons %D est diffrente de la spec prcdente %D "
+
+#~ msgid "no base or member initializers given following ':'"
+#~ msgstr "pas d'initialiseur de base ou membre donn aprs :"
+
+#~ msgid "use of template qualifier outside template"
+#~ msgstr "utilisation d'un qualificateur de canevas en dehors d'un canevas"
+
+#~ msgid "ISO C++ forbids an empty condition for `%s'"
+#~ msgstr "ISO C++ interdit une condition vide pour %s "
+
+#~ msgid "definition of class `%T' in condition"
+#~ msgstr "dfinition de la classe %T dans la condition"
+
+#~ msgid "definition of enum `%T' in condition"
+#~ msgstr "dfinition de l'aggrgat %T dans la condition"
+
+#~ msgid "definition of array `%#D' in condition"
+#~ msgstr "dfinition du tableau %#D dans la condition"
+
+#~ msgid "old style placement syntax, use () instead"
+#~ msgstr "ancien style de syntaxe de positionnement, utiliser () la place"
+
+#~ msgid "`%T' is not a valid expression"
+#~ msgstr " %T n'est pas une expression valide"
+
+#~ msgid "initialization of new expression with `='"
+#~ msgstr "initialisation de la nouvelle expression avec = "
+
+#~ msgid "sigof type specifier"
+#~ msgstr "spcificateur du type sigof"
+
+#~ msgid "`sigof' applied to non-aggregate expression"
+#~ msgstr " sigof appliqu une expression de non aggrgats"
+
+#~ msgid "`sigof' applied to non-aggregate type"
+#~ msgstr " sigof appliqu un type non aggrgat"
+
+#~ msgid "storage class specifier `%s' not allowed after struct or class"
+#~ msgstr "spcificateur de classe de stockages %s n'est pas permis aprs struct ou class"
+
+#~ msgid "type specifier `%s' not allowed after struct or class"
+#~ msgstr "spcificateur de type %s n'est pas permis aprs struct ou class"
+
+#~ msgid "type qualifier `%s' not allowed after struct or class"
+#~ msgstr "qualificateur de type %s n'est pas permis aprs struct ou class"
+
+#~ msgid "no body nor ';' separates two class, struct or union declarations"
+#~ msgstr "pas de corps ni de ; sparant les deux dclarations de classes, struct ou union"
+
+#~ msgid "no bases given following `:'"
+#~ msgstr "pas de base donne aprs :"
+
+#~ msgid "multiple access specifiers"
+#~ msgstr "spcificateurs d'accs multiples"
+
+#~ msgid "multiple `virtual' specifiers"
+#~ msgstr "spcificateurs virtual multiples"
+
+#~ msgid "missing ';' before right brace"
+#~ msgstr "; manquant avant l'accolade de droite"
+
+#~ msgid "ISO C++ forbids array dimensions with parenthesized type in new"
+#~ msgstr "ISO C++ interdit l'utilisation de parenthses autour du type pour les dimensions de tableaux avec new"
+
+#~ msgid "`%T' is not a class or namespace"
+#~ msgstr " %T n'est pas une classe ou un espace de noms"
+
+#~ msgid "ISO C++ forbids label declarations"
+#~ msgstr "ISO C++ interdit la dclaration d'tiquette"
+
+#~ msgid "label must be followed by statement"
+#~ msgstr "l'tiquette doit tre suivie d'une dclaration"
+
+#~ msgid "must have at least one catch per try block"
+#~ msgstr "doit avoir au moins un intercepteur par bloc d'essais"
+
+#~ msgid "ISO C++ forbids compound statements inside for initializations"
+#~ msgstr "ISO C++ interdit les dclarations composes l'intrieur des initialisations"
+
+#~ msgid "possibly missing ')'"
+#~ msgstr ") possiblement manquante"
+
+#~ msgid "type specifier omitted for parameter"
+#~ msgstr "spcificateur de type omis pour le paramtre"
+
+#~ msgid "`%E' is not a type, use `typename %E' to make it one"
+#~ msgstr " %E n'est pas un type, utiliser typename %E pour en faire un"
+
+#~ msgid "no type `%D' in `%T'"
+#~ msgstr "pas de type %D dans %T "
+
+#~ msgid "type specifier omitted for parameter `%E'"
+#~ msgstr "spcificateur de type omis pour le paramtre %E "
+
+#~ msgid "type `%T' composed from a local class is not a valid template-argument"
+#~ msgstr "type %T compos partir d'une classe locale n'est pas un canevas d'argument valide"
+
+#~ msgid "adjusting pointers for covariant returns"
+#~ msgstr "ajuster les pointeurs pour des retours co-variants"
+
+#~ msgid " overriding `%#D' (must be pointer or reference to class)"
+#~ msgstr " crasant %#D (doit tre un pointeur ou une rfrence vers un classe)"
+
+#~ msgid " overriding `%#D' (must use pointer or reference)"
+#~ msgstr " crasant %#D (doit utiliser un pointeur ou un rfrence)"
+
+#~ msgid "return identifier `%D' already in place"
+#~ msgstr "identificateur retourn %D est dj en place"
+
+#~ msgid "can't redefine default return value for constructors"
+#~ msgstr "ne peut redfinir la valeur retourne par dfaut pour les constructeurs"
+
+#~ msgid "calling type `%T' like a method"
+#~ msgstr "appel du type %T comme une mthode"
+
+#~ msgid "destructor specifier `%T::~%T()' must have matching names"
+#~ msgstr "spcificateur du destructeur %T::~%T() doit avoir des noms concordants"
+
+#~ msgid "identifier name `%s' conflicts with GNU C++ internal naming strategy"
+#~ msgstr "nom d'identificateur %s entre en conflit avec la stratgie interne de dnomination de GNU C++"
+
+#~ msgid "parse error at end of saved function text"
+#~ msgstr "erreur d'analyse syntaxique la fin de la sauvegarde de la fonction texte"
+
+#~ msgid "%Hend of file read inside definition"
+#~ msgstr "%H fin de fichier lors de la lecture l'intrieur d'une dfinition"
+
+#~ msgid "parse error in method specification"
+#~ msgstr "erreur d'analyse syntaxique dans la spcification de fonction"
+
+#~ msgid "function body for constructor missing"
+#~ msgstr "corps de fonction pour le constructeur est manquante"
+
+#~ msgid "circular dependency in default args of `%#D'"
+#~ msgstr "dpendance circulaire dans les arguments par dfaut de %#D "
+
+#~ msgid "invalid type `%T' for default argument to `%T'"
+#~ msgstr "type invalide %T pour l'argument par dfaut %T "
+
+#~ msgid "%s before `%c'"
+#~ msgstr "%s avant %c "
+
+#~ msgid "%s before `\\%o'"
+#~ msgstr "%s avant \\%o"
+
+#~ msgid "%s before `%s' token"
+#~ msgstr "%s avant l'lment lexical %s "
+
+#~ msgid "ISO C++ prohibits conversion from `%#T' to `(...)'"
+#~ msgstr "ISO C++ interdit la conversion de %#T en (...) "
+
+#~ msgid "invalid application of `%s' to non-static member"
+#~ msgstr "utilisation invalide de %s sur un membre non statique"
+
+#~ msgid "sizeof applied to a bit-field"
+#~ msgstr "sizeof appliqu sur un champ de bits"
+
+#~ msgid "destructor specifier `%T::~%T' must have matching names"
+#~ msgstr "spcificateur du destructeur %T::~%T doit des noms concordants"
+
+#~ msgid "parameter type of called function is incomplete"
+#~ msgstr "type de paramtre de la fonction appele est incomplet"
+
+#~ msgid "ISO C++ forbids using pointer to a member in subtraction"
+#~ msgstr "ISO C++ interdit l'utilisation d'un pointeur vers un membre dans une soustraction"
+
+#~ msgid "reinterpret_cast from `%T' to `%T' casts away const (or volatile)"
+#~ msgstr "reinterpret_cast de %T vers %T fait un transtypage cartant la constante (ou volatile)"
+
+#~ msgid "return-statement with no value, in function declared with a non-void return type"
+#~ msgstr "dclaration d'un retour sans valeur, dans la fonction dclare avec un type retourn non void"
+
+#~ msgid "return-statement with a value, in function declared with a void return type"
+#~ msgstr "dclaration d'un retour sans valeur, dans la fonction dclare avec un type retourn void"
+
+#~ msgid "comma expression used to initialize return value"
+#~ msgstr "expression virgule utilse pour initialiser la valeur de retour"
+
+#~ msgid "ISO C++ forbids non-constant aggregate initializer expressions"
+#~ msgstr "ISO C++ interdit les expressions d'initialiseur d'aggrgat de non constante"
+
+#~ msgid "`%T' fails to be a typedef or built-in type"
+#~ msgstr " %T a chou devenir un typedef ou un type construit interne"
+
+#~ msgid "ISO C++ forbids defining types within %s"
+#~ msgstr "ISO C++ interdit la dfinition de types l'intrieur de %s"
+
+#~ msgid "Only emit explicit template instatiations"
+#~ msgstr "Produire seulement des instanciations explicites du canevas"
+
+#~ msgid "Recognize and/bitand/bitor/compl/not/or/xor"
+#~ msgstr "Reconnatre and/bitand/bitor/compl/not/or/xor"
+
+#~ msgid "Warn about inconsistent return types"
+#~ msgstr "Avertir propos des types retourns inconsistants"
+
+#~ msgid "Warn when a function is declared extern, then inline"
+#~ msgstr "Avertir lorsqu'un fonction est dclare extern, puis inline"
+
+#~ msgid "directory name must immediately follow -I"
+#~ msgstr "nom du rpertoire doit suivre immdiatement -I"
+
+#~ msgid "ignoring pragma: %s"
+#~ msgstr "pragma: %s ignor"
+
+#~ msgid "Program does not use Unix-f77 dialectal features"
+#~ msgstr "Programme n'utilise pas les options du dialecte Unix f77"
+
+#~ msgid "Disable the appending of underscores to externals"
+#~ msgstr "Dsactiver l'ajout de caractres de soulignement aux externes"
+
+#~ msgid "Fortran-specific form of -fbounds-check"
+#~ msgstr "Forme spcifique Fortran de -fbounds-check"
+
+#~ msgid "Add a directory for INCLUDE searching"
+#~ msgstr "Ajouter un rpertoire pour la recherche par INCLUDE"
+
+#~ msgid "Set the maximum line length"
+#~ msgstr "Initialiser la longueur maximale des lignes"
+
+#~ msgid "Disable automatic array bounds checking"
+#~ msgstr "Vrification automatique dsactive des bornes de tableaux"
+
+#~ msgid "Set class path"
+#~ msgstr "Initialiser le chemin des classes"
+
+#~ msgid "Choose class whose main method should be used"
+#~ msgstr "Choisir la classe dont la mthode principale devrait tre utilise"
+
+#~ msgid "Add directory to class path"
+#~ msgstr "Ajouter un rpertoire au chemin des classes"
+
+#~ msgid "Directory where class files should be written"
+#~ msgstr "Rpertoire o les fichiers de classe devraient tre crits"
+
+#~ msgid "`%s' cannot be statically allocated"
+#~ msgstr " %s ne peut tre statiquement allou"
+
+#~ msgid "multiple declarations for method `%s'"
+#~ msgstr "multiples dclarations pour la mthode %s "
+
+#~ msgid "cannot find class (factory) method"
+#~ msgstr "ne peut reprer de mthode de classe (manufactur)"
+
+#~ msgid "return type for `%s' defaults to id"
+#~ msgstr "type retourn pour %s par dfaut est id"
+
+#~ msgid "return type defaults to id"
+#~ msgstr "type retourn par dfaut est id"
+
+#~ msgid "cannot find method"
+#~ msgstr "ne peut reprer la mthode"
+
+#~ msgid "duplicate definition of class method `%s'"
+#~ msgstr "duplication de dfinition de la mthode de la classe %s "
+
+#~ msgid "duplicate definition of instance method `%s'"
+#~ msgstr "duplication de dfinition de la mthode d'instanciation %s "
+
+#~ msgid "duplicate declaration of instance method `%s'"
+#~ msgstr "duplication de dclaration de la mthode d'instanciation %s "
+
+#~ msgid "potential selector conflict for method `%s'"
+#~ msgstr "conflit potentiel sur le slecteur pour la mthode %s "
+
+#~ msgid "Specify the name of the class for constant strings"
+#~ msgstr "Spcifier le nom de la classe pour les constantes chanes"
+
+#~ msgid "compilation of header file requested"
+#~ msgstr "fichier d'en-tte requis pour la compilation"
+
+#~ msgid "choose either big or little endian, not both"
+#~ msgstr "choisir un systme octets de poids fort ou faible mais pas les deux"
+
+#~ msgid "choose either m340 or m210 not both"
+#~ msgstr "choisir m340 ou m210 mais pas les deux"
+
+#~ msgid "-c or -S required for Ada"
+#~ msgstr "-c ou -S requis pour Ada"
+
+#~ msgid "-static not valid with -mcoff"
+#~ msgstr "-static n'est pas valide avec -mcoff"
+
+#~ msgid "-shared not valid with -mcoff"
+#~ msgstr "-shared n'est pas valide avec -mcoff"
+
+#~ msgid "-symbolic not valid with -mcoff"
+#~ msgstr "-symbolic n'est pas valide avec -mcoff"
+
+#~ msgid "-fpic is not valid with -mcoff"
+#~ msgstr "-fpic n'est pas valide avec -mcoff"
+
+#~ msgid "-fPIC is not valid with -mcoff"
+#~ msgstr "-fPic n'est pas valide avec -mcoff"
+
+#~ msgid "-fpic not valid with -mcoff"
+#~ msgstr "-fpic n'est pas valide avec -mcoff"
+
+#~ msgid "-fPIC not valid with -mcoff"
+#~ msgstr "-fPIC n'est pas valide avec -mcoff"
+
+#~ msgid "unnamed fields of type other than struct or union are not allowed"
+#~ msgstr "champs sans nom de type autre que struct ou union ne sont pas permis"
+
+#~ msgid "numeric constant with no digits"
+#~ msgstr "constante numrique sans chiffre"
+
+#~ msgid "numeric constant contains digits beyond the radix"
+#~ msgstr "constante numrique contient des chiffres en dehors la base numrique"
+
+#~ msgid "floating constant may not be in radix 16"
+#~ msgstr "constante flottante peut ne pas tre en base 16"
+
+#~ msgid "more than one 'f' suffix on floating constant"
+#~ msgstr "plus d'un f en suffixe sur une constante flottante"
+
+#~ msgid "more than one 'l' suffix on floating constant"
+#~ msgstr "plus d'un l en suffixe sur une constante flottante"
+
+#~ msgid "traditional C rejects the 'l' suffix"
+#~ msgstr "C traditionnel rejette le suffixe l "
+
+#~ msgid "more than one 'i' or 'j' suffix on floating constant"
+#~ msgstr "plus d'un i ou j en suffixe sur une constante flottante"
+
+#~ msgid "floating constant out of range"
+#~ msgstr "constante flottante est hors gamme"
+
+#~ msgid "floating point number exceeds range of 'double'"
+#~ msgstr "nombre en virgule flottante excde les limites de double "
+
+#~ msgid "two 'u' suffixes on integer constant"
+#~ msgstr "deux u en suffixe sur une constante entire"
+
+#~ msgid "traditional C rejects the 'u' suffix"
+#~ msgstr "C traditionnel rejette le suffixe u "
+
+#~ msgid "three 'l' suffixes on integer constant"
+#~ msgstr "trois l en suffixe sur une constante entire"
+
+#~ msgid "'lul' is not a valid integer suffix"
+#~ msgstr "'lul n'est pas un suffixe valide pour un entier"
+
+#~ msgid "'Ll' and 'lL' are not valid integer suffixes"
+#~ msgstr " Ll et 1L ne sont pas des suffixes valides pour un entier"
+
+#~ msgid "more than one 'i' or 'j' suffix on integer constant"
+#~ msgstr "plus d'un i ou j en suffixe sur une constante entire"
+
+#~ msgid "invalid suffix on integer constant"
+#~ msgstr "suffixe invalide pour une constante entire"
+
+#~ msgid "integer constant is too large for this configuration of the compiler - truncated to %d bits"
+#~ msgstr "constante entire trop grande pour la configuration du compilateur - tronqu %d bits"
+
+#~ msgid "width of integer constant changes with -traditional"
+#~ msgstr "largeur de la constante entire change avec -traditional"
+
+#~ msgid "width of integer constant may change on other systems with -traditional"
+#~ msgstr "largeur de la constante entire peut changer sur d'autres systme avec -traditional"
+
+#~ msgid "integer constant larger than the maximum value of %s"
+#~ msgstr "constante entire plus grande que la valeur maximale de %s"
+
+#~ msgid "an unsigned long long int"
+#~ msgstr "un entier long long non sign"
+
+#~ msgid "a long long int"
+#~ msgstr "un entier long long"
+
+#~ msgid "an unsigned long int"
+#~ msgstr "un entier long non sign"
+
+#~ msgid "decimal constant is so large that it is unsigned"
+#~ msgstr "constante dcimale est tellement grande qu'elle est non signe"
+
+#~ msgid "complex integer constant is too wide for 'complex int'"
+#~ msgstr "constante complexe entire est trop grande pour le type 'complex int'"
+
+#~ msgid "integer constant is larger than the maximum value for its type"
+#~ msgstr "constante entire est plus grande que la valeur maximale pour ce type"
+
+#~ msgid "missing white space after number '%.*s'"
+#~ msgstr "espace blanc manquant aprs le nombre '%.*s'"
+
+#~ msgid "storage class specifier in array declarator"
+#~ msgstr "spcificateur de classe de stockage dans le dclarateur de tableau"
+
+#~ msgid "sizeof applied to a function type"
+#~ msgstr "sizeof appliqu sur un type de fonction"
+
+#~ msgid "sizeof applied to a void type"
+#~ msgstr "sizeof appliqu sur un type void"
+
+#~ msgid "execvp %s"
+#~ msgstr "execvp %s"
+
+#~ msgid "floating point numbers are not valid in #if"
+#~ msgstr "nombres flottants ne sont pas valides dans un #if"
+
+#~ msgid "traditional C rejects the `U' suffix"
+#~ msgstr "C traditionel rejette le suffixe U "
+
+#~ msgid "too many 'l' suffixes in integer constant"
+#~ msgstr "trop de l en suffixe dans les constantes entires"
+
+#~ msgid "integer constant contains digits beyond the radix"
+#~ msgstr "constante entire contient des chiffres en dehors la base numrique"
+
+#~ msgid "integer constant out of range"
+#~ msgstr "constante entire est hors gamme"
+
+#~ msgid "string constants are not valid in #if"
+#~ msgstr "constantes de chane ne sont pas valides dasn un #if"
+
+#~ msgid "missing binary operator"
+#~ msgstr "oprateur binaire manquant"
+
+#~ msgid "changing search order for system directory \"%s\""
+#~ msgstr "modification de l'ordonnancement de recherche du rpertoire systme %s "
+
+#~ msgid " as it is the same as non-system directory \"%s\""
+#~ msgstr " comme c'est le mme qu'un rpertoire non systme %s "
+
+#~ msgid "I/O error on output"
+#~ msgstr "Erreur E/S sur la sortie"
+
+#~ msgid "argument missing after %s"
+#~ msgstr "argument manquant aprs %s"
+
+#~ msgid "number missing after %s"
+#~ msgstr "nombre manquant aprs %s"
+
+#~ msgid "target missing after %s"
+#~ msgstr "cible manquante aprs %s"
+
+#~ msgid "GNU CPP version %s (cpplib)"
+#~ msgstr "GNU CPP version %s (cpplib)"
+
+#~ msgid ""
+#~ " -lang-c++ Assume that the input sources are in C++\n"
+#~ " -lang-objc Assume that the input sources are in ObjectiveC\n"
+#~ " -lang-objc++ Assume that the input sources are in ObjectiveC++\n"
+#~ " -lang-asm Assume that the input sources are in assembler\n"
+#~ msgstr ""
+#~ " -lang-c++ Prsumer que les sources sont en C++\n"
+#~ " -lang-objc Prsumer que les sources sont en ObjectiveC\n"
+#~ " -lang-objc++ Prsumer que les sources sont en ObjectiveC++\n"
+#~ " -lang-asm Prsumer que les sources sont en assembleur\n"
+
+#~ msgid "possible start of unterminated string literal"
+#~ msgstr "dbut possible d'une chane de mot non termine"
+
+#~ msgid "multi-line string literals are deprecated"
+#~ msgstr "chane de mots multi-lignes sont obsoltes"
+
+#~ msgid "directives may not be used inside a macro argument"
+#~ msgstr "directives ne peuvent tre utilises l'intrieur d'un argument macro"
+
+#~ msgid "invalid option %s"
+#~ msgstr "option invalide %s"
+
+#~ msgid "%s:%d: warning: "
+#~ msgstr "%s:%d: AVERTISSEMENT: "
+
+#~ msgid "argument to `-b' is missing"
+#~ msgstr "argument de -b est manquant"
+
+#~ msgid "argument to `-V' is missing"
+#~ msgstr "argument de -V est manquant"
+
+#~ msgid "invalid version number format"
+#~ msgstr "format de numro de verson invalide"
+
+#~ msgid ".da file contents exhausted too early\n"
+#~ msgstr "Le contenu du fichier .da a t puis trop rapidement\n"
+
+#~ msgid ".da file contents not exhausted\n"
+#~ msgstr "Le contenu du fichier .da n'a pas t puis\n"
+
+#~ msgid "%6.2f%% of %d source lines executed in function %s\n"
+#~ msgstr "%6.2f%% des lignes sources %d excutes dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d branches executed in function %s\n"
+#~ msgstr "%6.2f%% de branchements %d excuts dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d branches taken at least once in function %s\n"
+#~ msgstr "%6.2f%% de branchements %d pris au mons une fois dans la fonction %s\n"
+
+#~ msgid "No branches in function %s\n"
+#~ msgstr "Pas de branchement dans la fonction %s\n"
+
+#~ msgid "%6.2f%% of %d calls executed in function %s\n"
+#~ msgstr "%6.2f%% d'appels %d excuts dans la fonction %s\n"
+
+#~ msgid "No calls in function %s\n"
+#~ msgstr "Pas d'appel dans la fonction %s\n"
+
+#~ msgid "call %d returns = %s%%\n"
+#~ msgstr "appel %d a retourn = %s%%\n"
+
+#~ msgid "branch %d taken = %s%%\n"
+#~ msgstr "branchement %d a pris = %s%%\n"
+
+#~ msgid ".da file contents exhausted too early"
+#~ msgstr "Le contenu du fichier .da a t puis trop rapidement"
+
+#~ msgid "conversion from NaN to int"
+#~ msgstr "conversion de NaN en int"
+
+#~ msgid "floating point overflow"
+#~ msgstr "dbordement de virgule flottante"
+
+#~ msgid "overflow on truncation to integer"
+#~ msgstr "dbordement de troncation d'un entier"
+
+#~ msgid "overflow on truncation to unsigned integer"
+#~ msgstr "dbordement lors de la troncation d'un entier non sign"
+
+#~ msgid "%s: argument domain error"
+#~ msgstr "%s: erreur d'argument de domaine"
+
+#~ msgid "%s: function singularity"
+#~ msgstr "%s: singularit de fonction"
+
+#~ msgid "%s: underflow range error"
+#~ msgstr "%s: erreur de sous dbordement de bornes"
+
+#~ msgid "%s: total loss of precision"
+#~ msgstr "%s: perte totale de prcision"
+
+#~ msgid "%s: partial loss of precision"
+#~ msgstr "%s: perte partielle de prcision"
+
+#~ msgid "%s: NaN - producing operation"
+#~ msgstr "%s: NaN - opration produite"
+
+#~ msgid "Pretend that host and target use the same FP format"
+#~ msgstr "Prtendre que l'hte et la cible utilise le format FP"
+
+#~ msgid "Compile pointers as triples: value, base & end"
+#~ msgstr "Compiler les pointeurs comme des triplets: valeur, base et fin"
+
+#~ msgid "Do not promote floats to double if using -traditional"
+#~ msgstr "Ne pas promouvoir les flottants des doubles avec -traditional"
+
+#~ msgid "Attempt to support traditional K&R style C"
+#~ msgstr "Tenter de supporter le style de langage C traditionnel K&R"
+
+#~ msgid "internal error: %s"
+#~ msgstr "erreur interne: %s"
+
+#~ msgid "crossjump disabled: %d > 1000 basic blocks and %d >= 20 edges/basic block"
+#~ msgstr "saut crois dsactiv: %d > 1000 blocs de base et %d >= 20 blocs edges/basic"
+
+#~ msgid " -a Enable block profiling \n"
+#~ msgstr " -a autoriser le profilage des blocs \n"
+
+#~ msgid " -ax Enable jump profiling \n"
+#~ msgstr " -ax autoriser le profilage des sauts \n"
+
+#~ msgid "profiling does not work without a frame pointer"
+#~ msgstr "profilage ne fonctionne pas sans un pointeur de trames"
+
+#~ msgid "floating point numbers not allowed in #if expressions"
+#~ msgstr "nombres flottants ne sont pas permis dans les expressions #if"
+
+#~ msgid "invalid number in #if expression"
+#~ msgstr "nombre invalide dans l'expression #if"
+
+#~ msgid "invalid character constant in #if"
+#~ msgstr "constante de caractres invalide dans le #if"
+
+#~ msgid "double quoted strings not allowed in #if expressions"
+#~ msgstr "chanes entre quillemets ne sont pas alloues dans les expression #if"
+
+#~ msgid "octal character constant does not fit in a byte"
+#~ msgstr "constante de caractres en octal ne peut tre insre dans un octet"
+
+#~ msgid "empty #if expression"
+#~ msgstr "expression #if vide"
+
+#~ msgid "Junk after end of expression."
+#~ msgstr "Rebut la fin de l'expression."
+
+#~ msgid "macro or #include recursion too deep"
+#~ msgstr "macro ou rcursion de #include trop profonde"
+
+#~ msgid "usage: %s [switches] input output"
+#~ msgstr "usage: %s [options] entre sortie"
+
+#~ msgid "-traditional is not supported in C++"
+#~ msgstr "-traditional n'est pas support en C++"
+
+#~ msgid "-traditional and -ansi are mutually exclusive"
+#~ msgstr "-traditional et -ansi sont mutuellement exclusives"
+
+#~ msgid "filename missing after -i option"
+#~ msgstr "nom de fichier manquant aprs l'option -i"
+
+#~ msgid "filename missing after -o option"
+#~ msgstr "nom de fichier manquant aprs l'option -o"
+
+#~ msgid "target missing after %s option"
+#~ msgstr "cible manquante aprs l'option %s"
+
+#~ msgid "filename missing after %s option"
+#~ msgstr "nom de fichier manquant aprs l'option %s"
+
+#~ msgid "macro name missing after -%c option"
+#~ msgstr "nom de macro manquant aprs l'option -%c"
+
+#~ msgid "-trigraphs and -traditional are mutually exclusive"
+#~ msgstr "-trigraphs et -traditional sont mutuellement exclusives"
+
+#~ msgid "directory name missing after -I option"
+#~ msgstr "nom de rpertoire manquant aprs l'option -I"
+
+#~ msgid "`/*' within comment"
+#~ msgstr " /* l'intrieur d'un commentaire"
+
+#~ msgid "unterminated #%s conditional"
+#~ msgstr "#%s conditionel non termin"
+
+#~ msgid "not in any file?!"
+#~ msgstr "n'est pas dans aucun fichier?!"
+
+#~ msgid "`defined' must be followed by ident or (ident)"
+#~ msgstr " defined doit tre suivi par ident ou (ident)"
+
+#~ msgid "cccp error: invalid special hash type"
+#~ msgstr "erreur cccp: type de hachage spcial invalide"
+
+#~ msgid "#include expects \"fname\" or <fname>"
+#~ msgstr "#include espre fname ou <fname>"
+
+#~ msgid "no include path in which to find %.*s"
+#~ msgstr "pas de chemin d'inclusion dans lequel trouver %.*s"
+
+#~ msgid "invalid macro name"
+#~ msgstr "nom de macro invalide"
+
+#~ msgid "invalid macro name `%s'"
+#~ msgstr "nom de macro invalide %s "
+
+#~ msgid "parameter name starts with a digit in #define"
+#~ msgstr "nom de paramtre dbute avec un chiffre dans #define"
+
+#~ msgid "badly punctuated parameter list in #define"
+#~ msgstr "liste de paramtres incorrectement ponctus dans #define"
+
+#~ msgid "unterminated parameter list in #define"
+#~ msgstr "liste de paramtres non termine dans #define"
+
+#~ msgid "\"%.*s\" redefined"
+#~ msgstr "\"%.*s\" redfini"
+
+#~ msgid "# operator should be followed by a macro argument name"
+#~ msgstr "# oprator derait tre suivi par le nom d'un argument macro"
+
+#~ msgid "invalid format #line command"
+#~ msgstr "format invalide dans la commande #ligne"
+
+#~ msgid "undefining `defined'"
+#~ msgstr "indfinition defined "
+
+#~ msgid "undefining `%s'"
+#~ msgstr "indfinition %s "
+
+#~ msgid "extra text at end of directive"
+#~ msgstr "texte superflu la fin de la directive"
+
+#~ msgid "#error%.*s"
+#~ msgstr "#error%.*s"
+
+#~ msgid "#warning%.*s"
+#~ msgstr "#warning%.*s"
+
+#~ msgid "#elif not within a conditional"
+#~ msgstr "#elif n'est pas l'intrieur d'un conditionel"
+
+#~ msgid "#%s not within a conditional"
+#~ msgstr "#%s n'est pas l'intrieur d'un conditionel"
+
+#~ msgid "#else or #elif after #else"
+#~ msgstr "#else ou #elif aprs #else"
+
+#~ msgid "#else not within a conditional"
+#~ msgstr "#else n'est pas l'intrieur d'un conditionel"
+
+#~ msgid "unbalanced #endif"
+#~ msgstr "#endif non pair"
+
+#~ msgid "unterminated string or character constant"
+#~ msgstr "chane non termine ou constante caractre"
+
+#~ msgid "arguments given to macro `%s'"
+#~ msgstr "argument donne la macro %s "
+
+#~ msgid "no args to macro `%s'"
+#~ msgstr "aucun argument pour la macro %s "
+
+#~ msgid "only 1 arg to macro `%s'"
+#~ msgstr "seulement 1 argument pour la macro %s "
+
+#~ msgid "only %d args to macro `%s'"
+#~ msgstr "seulement %d arguments pour la macro %s "
+
+#~ msgid "too many (%d) args to macro `%s'"
+#~ msgstr "trop d'arguments (%d) pour la macro %s "
+
+#~ msgid ""
+#~ "internal error in %s, at tradcpp.c:%d\n"
+#~ "Please submit a full bug report.\n"
+#~ "See %s for instructions."
+#~ msgstr ""
+#~ "Erreur interne dans %s, tradcpp.c:%d\n"
+#~ "SVP soumettre un rapport complet des anomalies rencontres.\n"
+#~ "Consulter %s pour les instructions."
+
+#~ msgid "optimization turned on"
+#~ msgstr "optimisation active"
+
+#~ msgid "optimization turned off"
+#~ msgstr "optimisation dsactive"
+
+#~ msgid "optimization level restored"
+#~ msgstr "niveau d'optimisation restaur"
+
+#~ msgid "Use VAX-C alignment"
+#~ msgstr "Utiliser l'alignement VAX-C"
+
+#~ msgid "Generate code assuming DW bit is set"
+#~ msgstr "Gnrer le code en assumant que le bit DW est initialis"
+
+#~ msgid "Generate code assuming DW bit is not set"
+#~ msgstr "Gnrer le code en assumant que le bit DW n'est pas initialis"
+
+#~ msgid "Generate code using byte writes"
+#~ msgstr "Gnrer le code en utilisant des critures par octets"
+
+#~ msgid "Do not generate byte writes"
+#~ msgstr "Ne pas gnrer des critures par octets"
+
+#~ msgid "Use small memory model"
+#~ msgstr "Utiliser le modle de petite mmoire"
+
+#~ msgid "Use normal memory model"
+#~ msgstr "Utiliser le modle normal de mmoire"
+
+#~ msgid "Use large memory model"
+#~ msgstr "Utiliser le modle de grande mmoire"
+
+#~ msgid "Generate 29050 code"
+#~ msgstr "Gnrer le code 29050"
+
+#~ msgid "Generate 29000 code"
+#~ msgstr "Gnrer le code 29000"
+
+#~ msgid "Use kernel global registers"
+#~ msgstr "Utiliser les registres globaux du kernel"
+
+#~ msgid "Use user global registers"
+#~ msgstr "Utiliser les registres globaux"
+
+#~ msgid "Emit stack checking code"
+#~ msgstr "Produire le code de vrification de la pile"
+
+#~ msgid "Do not emit stack checking code"
+#~ msgstr "Ne pas produire le code de vrification de la pile"
+
+#~ msgid "Work around storem hardware bug"
+#~ msgstr "Contourner le bug matriel de stockage"
+
+#~ msgid "Do not work around storem hardware bug"
+#~ msgstr "Ne pas contourner le bug matriel de stockage"
+
+#~ msgid "Store locals in argument registers"
+#~ msgstr "Stocker les var. locales dans redistres d'arguments"
+
+#~ msgid "Do not store locals in arg registers"
+#~ msgstr "Ne pas stocker les var. locales dans redistres d'arguments"
+
+#~ msgid "Do symbol renaming for BSD"
+#~ msgstr "Ne pas renommer les symboles pour BSD"
+
+#~ msgid "Do symbol renaming for X/OPEN"
+#~ msgstr "Ne pas renommer les symboles pour X/OPEN"
+
+#~ msgid "Don't do symbol renaming"
+#~ msgstr "Ne pas renommer les symboles"
+
+#~ msgid "Generate code for the C400"
+#~ msgstr "Gnrer le code pour le C400"
+
+#~ msgid "Generate code for the C300"
+#~ msgstr "Gnrer le code pour le C300"
+
+#~ msgid "Generate code for c1"
+#~ msgstr "Gnrer le code pour le c1"
+
+#~ msgid "Generate code for c2"
+#~ msgstr "Gnrer le code pour le c2"
+
+#~ msgid "Generate code for c32"
+#~ msgstr "Gnrer le code pour le c3"
+
+#~ msgid "Generate code for c34"
+#~ msgstr "Gnrer le code pour le c34"
+
+#~ msgid "Use standard calling sequence, with arg count word"
+#~ msgstr "Utiliser la squence standard d'appel, avec arg et mot compteur"
+
+#~ msgid "Place arg count in a nop instruction (faster than push)"
+#~ msgstr "Placer le compteur d'arg dans une instruction NOP (plus rapide que push)"
+
+#~ msgid "Don't push arg count, depend on symbol table"
+#~ msgstr "Ne pas empiler le compteur d'arg, dpend de la table de symboles"
+
+#~ msgid "Use data cache for volatile mem refs (default)"
+#~ msgstr "Utiliser la cache de donnes pour les rf. mmoire volatiles (par dfaut)"
+
+#~ msgid "Don't use data cache for volatile mem refs"
+#~ msgstr "Ne pas utiliser la cache de donnes pour les rf. mmoire volatiles"
+
+#~ msgid "Bypass data cache for volatile mem refs"
+#~ msgstr "viter la cache de donnes pour les rf. mmoire volatiles"
+
+#~ msgid "Use 64-bit longs"
+#~ msgstr "Utiliser des longs de 64 bits"
+
+#~ msgid "Use cc- and libc-compatible 32-bit longs"
+#~ msgstr "Utiliser cc- et libc-compatible longs de 32 bits"
+
+#~ msgid "inline float constants not supported on this host"
+#~ msgstr "enlignage des constantes flottantes n'est pas support sur cet hte"
+
+#~ msgid "Generate code the unix assembler can handle"
+#~ msgstr "Gnrer du code que l'assembleur UNIX peut traiter"
+
+#~ msgid "Retain standard MXDB information"
+#~ msgstr "Retenir l'information standard MXDB"
+
+#~ msgid "Retain legend information"
+#~ msgstr "Retenir les informations de lgende"
+
+#~ msgid "Generate external legend information"
+#~ msgstr "Gnrer les informations externes de lgende"
+
+#~ msgid "Emit identifying info in .s file"
+#~ msgstr "Produire les infos d'identification dans le fichier .s"
+
+#~ msgid "Warn when a function arg is a structure"
+#~ msgstr "Avertir lorsque l'arg d'une fonction est une structure"
+
+#~ msgid "argument is a structure"
+#~ msgstr "argument est une structure"
+
+#~ msgid "half-pic init called on systems that don't support it"
+#~ msgstr "init demi PIC appel sur un systme qui ne le supporte pas"
+
+#~ msgid "Profiling uses mcount"
+#~ msgstr "Profilage utilise mcount"
+
+#~ msgid "Emit half-PIC code"
+#~ msgstr "Produire du code moiti PIC"
+
+#~ msgid "Emit ELF object code"
+#~ msgstr "Produire du code objet ELF"
+
+#~ msgid "Emit ROSE object code"
+#~ msgstr "Produire du code objet ROSE"
+
+#~ msgid "Symbols have a leading underscore"
+#~ msgstr "Les symboles sont prcdes d'un caractre de soulignement "
+
+#~ msgid "Align to >word boundaries"
+#~ msgstr "Aligner sur >frontires de mots"
+
+#~ msgid "Use mcount for profiling"
+#~ msgstr "Utiliser mcount pour le profilage"
+
+#~ msgid "Use mcount_ptr for profiling"
+#~ msgstr "Utiliser mcount_ptr pour le profilage"
+
+#~ msgid "the -mlong-double-64 option does not work yet"
+#~ msgstr "l'option -mlong-double-64 n'est pas fonctionnelle encore"
+
+#~ msgid "The -march option is incompatible to -mipsN and therefore ignored."
+#~ msgstr "L'option -march est incompatible avec -mipsN et est alors ignore."
+
+#~ msgid "-mips%d not supported"
+#~ msgstr "-mips%d n'est pas support"
+
+#~ msgid "-mabi=%s does not support -mips%d"
+#~ msgstr "-mabi=%s ne supporte pas -mips%d"
+
+#~ msgid "this target does not support the -mabi switch"
+#~ msgstr "cette cible ne supporte pas l'option -mabi"
+
+#~ msgid "-mips%d does not support 64 bit fp registers"
+#~ msgstr "-mips%d ne supporte pas les registres FP de 64 bits"
+
+#~ msgid "-mips%d does not support 64 bit gp registers"
+#~ msgstr "-mips%d ne supporte pas les registres GP de 64 bits"
+
+#~ msgid "Use OSF PIC"
+#~ msgstr "Utiliser le code PIC OSF"
+
+#~ msgid "Don't use OSF PIC"
+#~ msgstr "Ne pas utiliser le code PIC OSF"
+
+#~ msgid "Optimize for 3900"
+#~ msgstr "Optimiser pour le 3900"
+
+#~ msgid "Optimize for 4650"
+#~ msgstr "Optimiser pour le 4650"
+
+#~ msgid "stack frame too big"
+#~ msgstr "trame de pile trop grande"
+
+#~ msgid "neither varargs or stdarg in mmix_setup_incoming_varargs"
+#~ msgstr "ni varargs ou stdarg dans mmix_setup_incoming_varargs"
+
+#~ msgid "oops, not debugged; fixing up value:"
+#~ msgstr "oops, pas mis au point; correction de la valeur:"
+
+#~ msgid "Generate little endian data"
+#~ msgstr "Gnrer des donnes pour systmes octets de poids faible"
+
+#~ msgid "Generate big endian data"
+#~ msgstr "Gnrer des donnes pour systmes octets de poids fort"
+
+#~ msgid "Turn on maintainer testing code"
+#~ msgstr "Mettre en marche le code d'entretien de mise au point"
+
+#~ msgid "Enable Transmeta picoJava extensions"
+#~ msgstr "Autoriser les extensions Transmeta picoJava"
+
+#~ msgid "Disable Transmeta picoJava extensions"
+#~ msgstr "Interdire les extensions Transmeta picoJava"
+
+#~ msgid "Disable reorganization pass"
+#~ msgstr "Dsactiver la passe de rorganisation"
+
+#~ msgid "-f%s ignored (all code is position independent)"
+#~ msgstr "-f%s ignor (tout le code est indpendant de la position)"
+
+#~ msgid "-ffunction-sections disabled on AIX when debugging"
+#~ msgstr "-ffunction-sections dsactiv sur AIX lors de la mise au point"
+
+#~ msgid "-fdata-sections not supported on AIX"
+#~ msgstr "-fdata-sections n'est pas support sur AIX"
+
+#~ msgid "%%S computed all 1's mask"
+#~ msgstr "%%S calcul avec un masque que uns"
+
+#~ msgid "%%S computed all 0's mask"
+#~ msgstr "%%S calcul avec un masque de zros"
+
+#~ msgid "no viable candidates"
+#~ msgstr "pas de candidats viables"
+
+#~ msgid "`%D' has already been declared in `%T'"
+#~ msgstr " %D a dj t dclar dans %T "
+
+#~ msgid "`%D' as declarator"
+#~ msgstr " %D comme dclarateur"
+
+#~ msgid "cannot declare %s to references"
+#~ msgstr "ne peut dclarer %s comme rfrences"
+
+#~ msgid "invalid type: `void &'"
+#~ msgstr "type invalide: void & "
+
+#~ msgid "typedef declaration includes an initializer"
+#~ msgstr "dclaration typedef inclut un initialiseur"
+
+#~ msgid "-fname-mangling-version is no longer supported"
+#~ msgstr "-fname-mangling-version n'est plus supporte"
+
+#~ msgid " %#D"
+#~ msgstr " %#D"
+
+#~ msgid "member initializers for `%#D'"
+#~ msgstr "initialiseur du membre pour %#D "
+
+#~ msgid " will be re-ordered to match declaration order"
+#~ msgstr " sera r-odonn pour concorder avec l'ordre dclar"
+
+#~ msgid "multiple initializations given for member `%D'"
+#~ msgstr "initialisations multiples donnes pour le membre %D "
+
+#~ msgid " will be re-ordered to match inheritance order"
+#~ msgstr " sera r-ordonn pour concorder avec l'ordre d'hritage"
+
+#~ msgid "implementation-reserved name `%D' used"
+#~ msgstr "nom d'implantation rserv %D est utilis"
+
+#~ msgid "explicit instantiation of `%#D' after"
+#~ msgstr "instanciation explicite de %#D aprs"
+
+#~ msgid "explicit specialization here"
+#~ msgstr "spcialisation explicite ici"
+
+#~ msgid "explicit instantiation of `%#T' after"
+#~ msgstr "instanciation explicite de %#T aprs"
+
+#~ msgid "base initializer for `%T'"
+#~ msgstr "initialiseur de base %T "
+
+#~ msgid " will be re-ordered to precede member initializations"
+#~ msgstr " sera r-ordonn pour prcder les initialisations de membre"
+
+#~ msgid "ignoring `%V' qualifiers on `%T'"
+#~ msgstr "qualificateurs %V ignors pour %T "
+
+#~ msgid "`sizeof' applied to non-static member"
+#~ msgstr " sizeof appliqu un membre non statique"
+
+#~ msgid "`sizeof' applied to incomplete type `%T'"
+#~ msgstr " sizeof appliqu sur un type incomplet %T "
+
+#~ msgid "request for member `%T::%D' in expression of non-aggregate type `%T'"
+#~ msgstr "requte du membre %T::%D dans l'expression du type non aggrgat %T "
+
+#~ msgid "invalid use of type decl `%#D' as expression"
+#~ msgstr "utilisation invalide du type decl %#D comme expression"
+
+#~ msgid "invalid use of template `%#D' as expression"
+#~ msgstr "utilisation invalide du canevas %#D comme expression"
+
+#~ msgid "invalid offsetof from non-POD type `%#T'; use pointer to member instead"
+#~ msgstr "offsetof invalide du type non POD %#T ; utiliser un pointeur vers un membre la place"
+
+#~ msgid "pointer to member function called, but not in class scope"
+#~ msgstr "appel d'un pointeur vers un membre de fonction, mais n'est pas dans le champ de la classe"
+
+#~ msgid "object missing in call to method `%D'"
+#~ msgstr "objet manquant dans l'appel de la mthode %D "
+
+#~ msgid "function `%D' declared overloaded, but no definitions appear with which to resolve it?!?"
+#~ msgstr "fontion %D dclare surcharge, mais aucune dfinition n'apparat pour la rsoudre?!?"
+
+#~ msgid "invalid call to member function needing `this' in static member function scope"
+#~ msgstr "appel invalide vers un membre de fonction ayant besoin de ceci dans le champ du membre statique de la fonction"
+
+#~ msgid "invalid use of undefined type `%#T'"
+#~ msgstr "utilisation invalide d'un type indfini %#T "
+
+#~ msgid "invalid use of `%T'"
+#~ msgstr "utilisation invalide de %T "
+
+#~ msgid "invalid use of member (did you forget the `&' ?)"
+#~ msgstr "utilisation invalide de membre (avez-vous oubli le & ?)"
+
+#~ msgid "address of overloaded function with no contextual type information"
+#~ msgstr "adresse de la fonction surcharge sans information contextuelle de type"
+
+#~ msgid "overloaded function with no contextual type information"
+#~ msgstr "fonction surcharge sans information contextuelle de type"
+
+#~ msgid "insufficient contextual information to determine type"
+#~ msgstr "information contextuelle insuffisante pour dterminer le type"
+
+#~ msgid "initializer list construction invalid for derived class object `%D'"
+#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe drive %D "
+
+#~ msgid "initializer list construction invalid for polymorphic class object `%D'"
+#~ msgstr "initialiseur de construction de liste invalide pour l'objet de classe polymorphique %D "
+
+#~ msgid "initializer list construction invalid for `%D'"
+#~ msgstr "construction de la liste d'initialiseurs invalide pour %D "
+
+#~ msgid "due to the presence of a constructor"
+#~ msgstr "en raison de la prsence d'un constructeur"
+
+#~ msgid "due to non-public access of member `%D'"
+#~ msgstr "en raison d'un accs non public du membre %D "
+
+#~ msgid "The meaning of `\\x' (at %0) varies with -traditional"
+#~ msgstr "La signification de \\x ( %0) varie avec l'option -traditional"
+
+#~ msgid "The meaning of `\\a' (at %0) varies with -traditional"
+#~ msgstr "La signification de \\a( %0) varie avec -traditional"
+
+#~ msgid "the meaning of `\\x' varies with -traditional"
+#~ msgstr "la signification de \\x varie avec l'option -traditional"
+
+#~ msgid "the meaning of `\\a' varies with -traditional"
+#~ msgstr "le sens de \\a varie avec -traditional"
+
+#~ msgid "parse error; also virtual memory exceeded"
+#~ msgstr "erreur d,analyse syntaxique; aussi la mmoire virtuelle est puise"
+
+#~ msgid "Can't specify array dimension in a declaration"
+#~ msgstr "Ne peut spcifier la dimension du tableau dans la dclaration"
+
+#~ msgid "internal error - use of undefined type"
+#~ msgstr "erreur interne - utilisation d'un type non dfini"
+
+#~ msgid "no class name specified as argument to -fconstant-string-class"
+#~ msgstr "pas de nom de classe spcifier dans l'argument -fconstant-string-class"
+
+#~ msgid "-p profiling is no longer supported. Use -pg instead"
+#~ msgstr "-p profilage n'est plus support. Utiliser -pg la place."
+
+#~ msgid "incompatible interworking options"
+#~ msgstr "options d'inter-rseautage incompatibles"
+
+#~ msgid "options -mabi=mmixware and -mabi=gnu are mutually exclusive"
+#~ msgstr "options -mabi=mmixware et -mabi=gnu sont mutuellement exclusives"
+
+#~ msgid "-p option not supported: use -pg instead"
+#~ msgstr "l'option -p n'est pas supporte: utitilse -pg la place"
+
+#~ msgid "-mbsd and -pedantic incompatible"
+#~ msgstr "-mbsd et -pedantic incompatibles"
+
+#~ msgid "-mbsd and -mxopen incompatible"
+#~ msgstr "-mbsd et -mxopen incompatibles"
+
+#~ msgid "-mxopen and -pedantic incompatible"
+#~ msgstr "-mxopen et -pedantic incompatibles"
+
+#~ msgid "may not use both -mfp64 and -msingle-float"
+#~ msgstr "ne peut utiliser ensemble -mfp64 et -msingle-float"
+
+#~ msgid "may not use both -mfp64 and -m4650"
+#~ msgstr "ne peut utiliser ensemble -mfp64 et -m4650"
+
+#~ msgid "may not use both -mgp32 and -mfp64"
+#~ msgstr "ne peut utiliser ensemble -mfp32 et -mfp64"
+
+#~ msgid "declaration of `%#T'"
+#~ msgstr "dclaration de %#T "
+
+#~ msgid "a -ifile option requires a -map option"
+#~ msgstr "l'option -ifile requiert l'option -map"
+
+#~ msgid "__builtin_trap not supported by this target"
+#~ msgstr "__builtin_trap n'est pas support par la cible"
+
+#~ msgid "`%s' previously defined here"
+#~ msgstr " %s prcdemment dfini ici"
+
+#~ msgid "`%s' previously declared here"
+#~ msgstr " %s prcdemment dclar ici"
+
+#~ msgid "increment"
+#~ msgstr "incrment"
+
+#~ msgid "decrement"
+#~ msgstr "dcrment"
+
+#~ msgid "Usage: %s [switches] input output\n"
+#~ msgstr "Usage: %s [options] entre sortie\n"
+
+#~ msgid "output_operand: %s"
+#~ msgstr "output_operand: %s"
+
+#~ msgid "invalid %H value"
+#~ msgstr "valeur %H invalide"
+
+#~ msgid "invalid %h value"
+#~ msgstr "valeur %h invalide"
+
+#~ msgid "invalid %Q value"
+#~ msgstr "valeur %Q invalide"
+
+#~ msgid "invalid %q value"
+#~ msgstr "valeur %q invalide"
+
+#~ msgid "invalid %p value"
+#~ msgstr "valeur %p invalide"
+
+#~ msgid "invalid %B value"
+#~ msgstr "valeur %B invalide"
+
+#~ msgid "invalid %C value"
+#~ msgstr "valeur %C invalide"
+
+#~ msgid "invalid %E value"
+#~ msgstr "valeur %E invalide"
+
+#~ msgid "invalid %r value"
+#~ msgstr "valeur %r invalide"
+
+#~ msgid "-march=%s does not support -mips%d"
+#~ msgstr "-march=%s ne supporte pas -mips%d"
+
+#~ msgid "no code label found"
+#~ msgstr "pas d'tiquette de code trouve"
+
+#~ msgid "profiling does not support code models other than medlow"
+#~ msgstr "profilage ne supporte pas le code pour les modles autre que medlow"
+
+#~ msgid "%s and profiling conflict: disabling %s"
+#~ msgstr "%s avec des conflit de profilage: dsactivation de %s"
+
+#~ msgid "Use function_epilogue()"
+#~ msgstr "Utiliser fonction_epilogue()"
+
+#~ msgid "Do not use function_epilogue()"
+#~ msgstr "Ne pas utiliser fonction_epilogue()"
+
+#~ msgid "%d errors, %d sorries, do granting"
+#~ msgstr "%d erreurs, %d plaintes, donner la permission"
+
+#~ msgid "GNU compiler does not support statically allocated objects"
+#~ msgstr "compilateur GNU ne supporte pas les objets allous de manire statique"
+
+#~ msgid "causing unhandled exception `%s' (this is flaged only once)"
+#~ msgstr "causant l'exception non trait %s (ceci est relev seulement une fois)"
+
+#~ msgid "range failure (not inside function)"
+#~ msgstr "chec sur l'tendue (n'est pas l'intrieur de la fonction)"
+
+#~ msgid "possible range failure (not inside function)"
+#~ msgstr "chec possible de l'tendue (pas l'intrique de la fonction)"
+
+#~ msgid "expression will always cause RANGEFAIL"
+#~ msgstr "l'expression causera toujours RENGEFAIL"
+
+#~ msgid "right hand side of assignment is a mode"
+#~ msgstr "ct droit de l'affectation est un mode"
+
+#~ msgid "bad string length in %s"
+#~ msgstr "chane de longueur errone dans %s"
+
+#~ msgid "mode mismatch in %s expression"
+#~ msgstr "non concordance de mode dans l'expression %s"
+
+#~ msgid "%s expression must be referable"
+#~ msgstr "expression %s doit tre rfrable"
+
+#~ msgid "%s not allowed outside a PROC"
+#~ msgstr "%s n'est pas permis en dehors d'une procdure"
+
+#~ msgid "%s action in PROC with no declared RESULTS"
+#~ msgstr "action %s dans la procdure sans RSULTATS dclars"
+
+#~ msgid "RETURN not allowed outside PROC"
+#~ msgstr "RETURN n'est pas permis en dehors d'une procdure"
+
+#~ msgid "RETURN with a value, in PROC returning void"
+#~ msgstr "RETURN avec valeur dans une procdure retournant void"
+
+#~ msgid "RETURN with no value and no RESULT action in procedure"
+#~ msgstr "RETURN sans valeur et sans RSULTAT d'action dans la procdure"
+
+#~ msgid "no label named `%s'"
+#~ msgstr "pas d'tiquette nomme %s "
+
+#~ msgid "cannot GOTO label `%s' outside current function"
+#~ msgstr "ne peut aller L'tiquette %s en dehors de la fonction courante"
+
+#~ msgid "no EXITable label named `%s'"
+#~ msgstr "pas d'tiquette de sortie portant le nom %s "
+
+#~ msgid "cannot EXIT label `%s' outside current function"
+#~ msgstr "ne sortir l'aide de l'tiquette %s en dehors de la fonction courante"
+
+#~ msgid "ELSE label not within a CASE statement"
+#~ msgstr "tiquette du ELSE n'est pas n'est pas l'intrieur de la dclaration du CASE"
+
+#~ msgid "multiple default labels found in a CASE statement"
+#~ msgstr "tiquettes multiples de dfaut dans la dclaration d'un case"
+
+#~ msgid "this is the first ELSE label"
+#~ msgstr "ceci est la premire tiquette ELSE"
+
+#~ msgid "label found outside of CASE statement"
+#~ msgstr "tiquette trouve en dehors de la dclaration du CASE"
+
+#~ msgid "duplicate CASE value"
+#~ msgstr "valeur de CASE double"
+
+#~ msgid "this is the first entry for that value"
+#~ msgstr "c'est la premire entre pour cette valeur"
+
+#~ msgid "CASE value out of range"
+#~ msgstr "valeur du CASE hors gamme"
+
+#~ msgid "empty range"
+#~ msgstr "bornes vides"
+
+#~ msgid "label within scope of cleanup or variable array"
+#~ msgstr "tiquette l'intrieur de la porte du nettoyage ou du tableau de variables"
+
+#~ msgid "mode in label is not discrete"
+#~ msgstr "mode dans l'tiquette n'est pas discret"
+
+#~ msgid "label not within a CASE statement"
+#~ msgstr "tiquette n'est pas l'intrieur de la dclaration du CASE"
+
+#~ msgid "lower bound of range must be a discrete literal expression"
+#~ msgstr "borne infrieure de l'tendue doit tre une expression litrale discrte"
+
+#~ msgid "upper bound of range must be a discrete literal expression"
+#~ msgstr "borne suprieure de l'tendue doit tre une expression litrale discrte"
+
+#~ msgid "CASE label is not valid"
+#~ msgstr "tiquette du CASE n'est pas valide"
+
+#~ msgid "number of CASE selectors does not match the number of CASE label lists"
+#~ msgstr "nombre de slecteurs de CASE ne concorde pas avec la liste des tiquettes du CASE"
+
+#~ msgid "incomplete CASE - %s not handled"
+#~ msgstr "CASE incomplet - %s n'est pas trait"
+
+#~ msgid "CASE selector with variable range"
+#~ msgstr "slecteur du CASE avec un tendue variable"
+
+#~ msgid "too many cases to do CASE completeness testing"
+#~ msgstr "trop de cas pour la compltion de tests du CASE"
+
+#~ msgid "type of tuple cannot be implicit in multiple assignent"
+#~ msgstr "type de tuple ne peut tre implicite dans de multiples affectations"
+
+#~ msgid "conditional expression cannot be used in multiple assignent"
+#~ msgstr "expression conditionnelle ne peut tre utilis dans de multiples affectations"
+
+#~ msgid "internal error - unknown type in multiple assignment"
+#~ msgstr "erreur interne - type inconnu dans une affectation multiple"
+
+#~ msgid "no operator allowed in multiple assignment,"
+#~ msgstr "pas d'oprateur permis dans de multiples affectations"
+
+#~ msgid "location modes in multiple assignment are not equivalent"
+#~ msgstr "modes de localisation dans de multiples affectations ne sont pas quivalents"
+
+#~ msgid "you may not assign a value to a BUFFER or EVENT location"
+#~ msgstr "vous pouvez affecter une valeur la localisation d'un TAMPON ou d'un VNEMENT "
+
+#~ msgid "can't assign value to READonly location"
+#~ msgstr "ne peut affecter une valeur une localisation en mode LECTURE seulement"
+
+#~ msgid "cannot assign to location with non-value property"
+#~ msgstr "ne peut affecter une localisation avec une proprit sans valeur"
+
+#~ msgid "lefthand side of assignment is not a location"
+#~ msgstr "ct gauche de l'affectation n'est pas un localisation"
+
+#~ msgid "bitstring slice"
+#~ msgstr "tranche d'une chane de bits"
+
+#~ msgid "LENGTH on left-hand-side is non-portable"
+#~ msgstr "LONGUEUR sur le ct droit n'est pas portable"
+
+#~ msgid "can only set LENGTH of array location"
+#~ msgstr "peut seulement fixer la LONGUEUR de la localisation d'un tableau"
+
+#~ msgid "internal error: trying to make loc-identity with non-location"
+#~ msgstr "erreur interne: tentative de crer une identit de localisation avec une non localisation"
+
+#~ msgid "cannot convert to a boolean mode"
+#~ msgstr "ne peut convertir en un mode boolen"
+
+#~ msgid "cannot convert to a char mode"
+#~ msgstr "ne peut convertir en mode caractre"
+
+#~ msgid "powerset tuple element out of range"
+#~ msgstr "lment du tuple du powerset est hors gamme"
+
+#~ msgid "incompatible member of powerset tuple (at position #%d)"
+#~ msgstr "membre incompatible du tuple du powerset ( la position #%d)"
+
+#~ msgid "non-constant value for tag field `%s'"
+#~ msgstr "valeur non constante pour l'tiquette de champ %s "
+
+#~ msgid "field `%s' in wrong variant"
+#~ msgstr "champ %s dans un variant erron"
+
+#~ msgid "missing variant fields (at least `%s')"
+#~ msgstr "champs variants manquants (au moins %s )"
+
+#~ msgid "bad initializer for field `%s'"
+#~ msgstr "initialiseur erron pour le champ %s "
+
+#~ msgid "no initializer value for variant field `%s'"
+#~ msgstr "pas de valeur d'initialiseur pour le champ %s "
+
+#~ msgid "no selected variant"
+#~ msgstr "pas de variant slectionn"
+
+#~ msgid "mixture of labelled and unlabelled tuple elements"
+#~ msgstr "mlange de tuple d'lments tiquetts et non tiquetts"
+
+#~ msgid "probably not a structure tuple"
+#~ msgstr "probablement pas une structure de tuple"
+
+#~ msgid "excess initializer for field `%s'"
+#~ msgstr "dbordement de l'initialiseur pour le champ %s "
+
+#~ msgid "excess unnamed initializers"
+#~ msgstr "dbordement d'initialiseurs sans nom"
+
+#~ msgid "non-constant start index for tuple"
+#~ msgstr "index de dpart du tuple n'est pas une constante"
+
+#~ msgid "invalid array tuple label"
+#~ msgstr "tiquette invalide d'un tuple de tableau"
+
+#~ msgid "non-constant array tuple index range"
+#~ msgstr "tendue de l'index du tableau de tuples n'est pas une constante"
+
+#~ msgid "incompatible array tuple element %s"
+#~ msgstr "lment incompatible du tableau de tuples %s"
+
+#~ msgid "multiple (*) or (ELSE) array tuple labels"
+#~ msgstr "multiples tiquettes de tuples de tableaux (*) ou (ELSE)"
+
+#~ msgid "empty range in array tuple"
+#~ msgstr "tendue vide dans le tableau de tuples"
+
+#~ msgid "array tuple has duplicate index %s"
+#~ msgstr "tableau de tuples a un double index %s"
+
+#~ msgid "array tuple index out of range"
+#~ msgstr "index du tableau de tuples est hors gamme"
+
+#~ msgid "too many array tuple values"
+#~ msgstr "trop de valeurs de tuples de tableaux"
+
+#~ msgid "dynamic array tuple without (*) or (ELSE)"
+#~ msgstr "tuple de tableau dynamique sans (*) ou (ELSE)"
+
+#~ msgid "missing array tuple element %s"
+#~ msgstr "lment de tuple de tableau manquant %s"
+
+#~ msgid "missing array tuple elements %s : %s"
+#~ msgstr "lments de tuple de tableau manquant %s : %s"
+
+#~ msgid "initializer is not an array or string mode"
+#~ msgstr "initialiseur n'est pas en mode tableau ou chane"
+
+#~ msgid "destination is too small"
+#~ msgstr "destination trop petite"
+
+#~ msgid "internal error: unknown type of expression"
+#~ msgstr "erreur interne: type d'expression inconnue"
+
+#~ msgid "`%s' must not be declared readonly"
+#~ msgstr " %s ne doit pas tre dclar en lecture seulement"
+
+#~ msgid "declaration of readonly variable without initialization"
+#~ msgstr "dclaration d'une variable en lecture seuelement sans initialisation"
+
+#~ msgid "no initialization allowed for `%s'"
+#~ msgstr "pas d'initialisation permise pour %s "
+
+#~ msgid "value for loc-identity `%s' is not a location"
+#~ msgstr "valeur pour l'identit de localisation %s n'est pas une localisation"
+
+#~ msgid "location for `%s' not read-compatible"
+#~ msgstr "localisation pour %s n'est pas compatible en lecture"
+
+#~ msgid "nonconstant initializer for `%s'"
+#~ msgstr "initialiseur n,est pas un constante pour %s "
+
+#~ msgid "do_decl: internal error: don't know what to initialize"
+#~ msgstr "do_decl: erreur interne: ne sait pas quoi initialiser"
+
+#~ msgid "RECURSIVE PROCs"
+#~ msgstr "PROCDURES RCURSIVES"
+
+#~ msgid "`%s' must not be READonly"
+#~ msgstr " %s ne doit pas tre en lecture seulement"
+
+#~ msgid "POS may not be specified for a list of field declarations"
+#~ msgstr "POS ne peut pas tre spcifis pour une liste de dclarations de champs"
+
+#~ msgid "(ELSE) case label as well as ELSE variant"
+#~ msgstr "tiquette du cas (ELSE) aussi bien que le ELSE variant"
+
+#~ msgid "inconsistent modes between labels and tag field"
+#~ msgstr "modes inconsistents entre les tiquettes et le champ tiquette"
+
+#~ msgid "too few tag labels"
+#~ msgstr "pas assez d'tiquettes"
+
+#~ msgid "too many tag labels"
+#~ msgstr "trop d'tiquettes"
+
+#~ msgid "case label lower limit is not a discrete constant expression"
+#~ msgstr "limite infrieure de l'tiquette du CASE n'est pas une expression d'une constante discrte"
+
+#~ msgid "case label upper limit is not a discrete constant expression"
+#~ msgstr "limite suprieure de l'tiquette du CASE n'est pas une expression d'une constante discrte"
+
+#~ msgid "case label must be a discrete constant expression"
+#~ msgstr "l'tiquette du CASE doit tre une expression de constante discrte"
+
+#~ msgid "variant label declared here..."
+#~ msgstr "tiquette variante dclare ici..."
+
+#~ msgid "...is duplicated here"
+#~ msgstr "...est dupliqu ici"
+
+#~ msgid "no field (yet) for tag %s"
+#~ msgstr "pas de champ (encore) pour l'tiquette %s"
+
+#~ msgid "non-value mode may only returned by LOC"
+#~ msgstr "mode non-valeur peut seulement tre retourn par LOC"
+
+#~ msgid "`%s' may only be passed by LOC"
+#~ msgstr " %s peut seulement tre pass par LOC"
+
+#~ msgid "nothing named `%s' to grant"
+#~ msgstr "rien de nomm %s autoriser"
+
+#~ msgid "duplicate grant for `%s'"
+#~ msgstr "duplication autorise pour %s "
+
+#~ msgid "duplicate definition `%s'"
+#~ msgstr "double dfinition de %s "
+
+#~ msgid "previous definition of `%s'"
+#~ msgstr "dfinition prcdente de %s "
+
+#~ msgid "ambiguous choice for seize `%s' -"
+#~ msgstr "choix ambigu pour valuer %s -"
+
+#~ msgid " - can seize this `%s' -"
+#~ msgstr " - peut valuer ceci %s -"
+
+#~ msgid " - or this granted decl `%s'"
+#~ msgstr " - ou cette decl %s autoris"
+
+#~ msgid "enumerator value for `%s' is less than 0"
+#~ msgstr "valeur de l'numrateur pour %s est plus petit que 0"
+
+#~ msgid "enumerators `%s' and `%s' have equal values"
+#~ msgstr "numrateurs %s et %s ont les mmes valeurs"
+
+#~ msgid "undefined value in SET mode is obsolete and deprecated"
+#~ msgstr "valeur non dfinie dans le mode SET est obsolte"
+
+#~ msgid "BASE variable never declared"
+#~ msgstr "variable de BASE jamais dclare"
+
+#~ msgid "cannot BASE a variable on a PROC/PROCESS name"
+#~ msgstr "ne peut tablir une variable sur le nom du PROC/PROCESSUS"
+
+#~ msgid "INTERNAL ERROR: handle_one_level is broken"
+#~ msgstr "ERREUR INTERNE: handle_one_level est bris"
+
+#~ msgid "tuple without specified mode not allowed in %s"
+#~ msgstr "tuple sans mode spcifi n'est pas permis dans %s"
+
+#~ msgid "conditional expression not allowed in %s"
+#~ msgstr "expression conditionnelle n'est pas permise dans %s "
+
+#~ msgid "internal error: unknown expression mode in %s"
+#~ msgstr "erreur interne: mode d'expression inconnnu dans %s"
+
+#~ msgid "CASE selector is not a discrete expression"
+#~ msgstr "slecteur du CASE n'est pas une expression discrte"
+
+#~ msgid "The number of CASE selectors does not match the number of CASE label lists"
+#~ msgstr "Le nombre de slecteurs de CASE ne concordent pas avec le nombre de listes d'tiquettes du CASE"
+
+#~ msgid "powerset is not addressable"
+#~ msgstr "powerset n'est pas adressable"
+
+#~ msgid "array is not addressable"
+#~ msgstr "tableau n'est pas adressable"
+
+#~ msgid "too few arguments in call to `%s'"
+#~ msgstr "pas assez d'argument pour l'appel de %s "
+
+#~ msgid "too many arguments in call to `%s'"
+#~ msgstr "trop d'arguments pour l'appel de %s "
+
+#~ msgid "cannot dereference, not a pointer"
+#~ msgstr "ne peut drfrencer, n'est pas un pointeur"
+
+#~ msgid "missing '.' operator or undefined mode name `%s'"
+#~ msgstr "oprateur . manquant ou nom de mode %s indfini"
+
+#~ msgid "you have forgotten the '.' operator which must"
+#~ msgstr "vous avez oubli l'oprateur . lequel doit tre"
+
+#~ msgid " precede a STRUCT field reference, or `%s' is an undefined mode"
+#~ msgstr " prcde une rfrence sur champ STRUCT ou %s est un mode indfini"
+
+#~ msgid "invalid type argument of `->'"
+#~ msgstr "type d'argument invalide de ->"
+
+#~ msgid "operand of '.' is not a STRUCT"
+#~ msgstr "l'oprande de '. nest pas un STRUCT"
+
+#~ msgid "no field named `%s'"
+#~ msgstr "pas de champ nomm %s "
+
+#~ msgid "ABS argument must be discrete or real mode"
+#~ msgstr "argument ABS doit tre en mode discret ou rel"
+
+#~ msgid "argument %d to ABSTIME must be of integer type"
+#~ msgstr "argument %d ABSTIME doit tre un type entier"
+
+#~ msgid "parameter 1 must be referable"
+#~ msgstr "paramtre 1 doit pouvoir tre rfrenc"
+
+#~ msgid "parameter 2 must be a positive integer"
+#~ msgstr "paramtre 2 doit tre un entier positif"
+
+#~ msgid "CARD argument must be powerset mode"
+#~ msgstr "argument CARD doit tre un mode powerset"
+
+#~ msgid "expression for DESCR-built-in must be referable"
+#~ msgstr "expression pour DESCR-built-in doit pouvoir tre rfrenc"
+
+#~ msgid "argument to `%s' must be of integer type"
+#~ msgstr "argument de %s doit tre de type entier"
+
+#~ msgid "argument 1 to `%s' must be of floating point mode"
+#~ msgstr "argument 1 de %s doit tre en mode virgule flottante"
+
+#~ msgid "first argument to `%s' must be a mode"
+#~ msgstr "premier argument de %s doit tre un mode"
+
+#~ msgid "READonly modes for %s must have a value"
+#~ msgstr "mode LECTRURE seulement pour %s doit avoir une valeur"
+
+#~ msgid "argument to TERMINATE must be a reference primitive value"
+#~ msgstr "argument TERMINATE doit tre une rfrence une valeur primitive"
+
+#~ msgid "argument 1 to INTTIME must be of mode TIME"
+#~ msgstr "argument 1 de INTTIME doit tre de mode TIME"
+
+#~ msgid "LENGTH argument must be string, buffer, event mode, text location or mode"
+#~ msgstr "LONGUEUR de l'argument doit tre une chane, un tampon, un mode d'vnement, la localisation d'un texte ou un mode"
+
+#~ msgid "UPPER argument must have a mode, or be a mode"
+#~ msgstr "argument du HAUT doit avoir un mode ou tre un mode"
+
+#~ msgid "LOWER argument must have a mode, or be a mode"
+#~ msgstr "argument du BAS doit avoir un mode ou tre un mode"
+
+#~ msgid "UPPER argument must be string, array, mode or integer"
+#~ msgstr "argument du HAUT doit tre une chane, un tableau, un mode ou un entier"
+
+#~ msgid "LOWER argument must be string, array, mode or integer"
+#~ msgstr "argument du BAS doit tre une chane, un tableau, un mode ou un entier"
+
+#~ msgid "%s argument must be POWERSET mode"
+#~ msgstr "argument %s doit tre un mode POWERSET"
+
+#~ msgid "%s called for empty POWERSET"
+#~ msgstr "%s appel pour un POWERSET vide"
+
+#~ msgid "argument to NUM is not discrete"
+#~ msgstr "argument NUM n'est pas discret"
+
+#~ msgid "no integer mode which matches expression's mode"
+#~ msgstr "pas de mode entier concordant au mode de l'expresion"
+
+#~ msgid "NUM's parameter is below its mode range"
+#~ msgstr "paramtre NUMRIQUE est en dessous de l'tendue de son mode"
+
+#~ msgid "NUM's parameter is above its mode range"
+#~ msgstr "paramtre NUMRIQUE est au dessus de l'tendue de son mode"
+
+#~ msgid "cannot take SUCC or PRED of a numbered SET"
+#~ msgstr "ne peut prendre le SUIVANT ou le PRCDENT d'un ensemble numr"
+
+#~ msgid "SUCC or PRED must not be done on a PTR"
+#~ msgstr "SUIVANT ou PRCDENT ne peuvent tre pris sur un PTR"
+
+#~ msgid "SUCC or PRED for a reference type is not standard"
+#~ msgstr "SUIVANT ou PRCDENT pour un type rfrenc n'est pas standard"
+
+#~ msgid "SUCC or PRED argument must be a discrete mode"
+#~ msgstr "SUIVANT ou PRCDENT comme argument doit tre en mode discret"
+
+#~ msgid "taking the %s of a value already at its %s value"
+#~ msgstr "prendre le %s d'une valeur dj sa %s valeur"
+
+#~ msgid "size applied to a function mode"
+#~ msgstr "taille applique au mode de la fonction"
+
+#~ msgid "sizeof applied to a void mode"
+#~ msgstr "sizeof appliqu sur un mode void"
+
+#~ msgid "sizeof applied to an incomplete mode"
+#~ msgstr "sizeof appliqu sur un mode incomplet"
+
+#~ msgid "cannot call a PROCESS, you START a PROCESS"
+#~ msgstr "ne peut lancer un PROCESSUS, vous devez lancer le PROCESSUS"
+
+#~ msgid "%s parameter %d must be a location"
+#~ msgstr "%s paramtre %d doit tre une localisation"
+
+#~ msgid "%s parameter %d is READ-only"
+#~ msgstr "%s paramtre %d est en mode LECTURE seulement"
+
+#~ msgid "LOC actual parameter %d is a non-referable location"
+#~ msgstr "LOCALISATION du paramtre actuel %d est dans une localisation non rfrenable"
+
+#~ msgid "mode mismatch in parameter %d"
+#~ msgstr "non concordance du mode dans le paramtre %d"
+
+#~ msgid "too many arguments to procedure `%s'"
+#~ msgstr "trop d'arguments pour la procdure %s "
+
+#~ msgid "too many arguments to procedure"
+#~ msgstr "trop d'arguments pour la procdure"
+
+#~ msgid "too few arguments to procedure `%s'"
+#~ msgstr "pas assez d'argument pour la procdure %s "
+
+#~ msgid "too few arguments to procedure"
+#~ msgstr "trop peu d'arguments pour la procdure"
+
+#~ msgid "syntax error (integer used as function)"
+#~ msgstr "erreur de syntaxe (entier utilis comme un fonction)"
+
+#~ msgid "syntax error - missing operator, comma, or '('?"
+#~ msgstr "erreur de syntaxe - oprateur manquant virgule ou (?"
+
+#~ msgid "unimplemented built-in function `%s'"
+#~ msgstr "fonction interne non implante %s "
+
+#~ msgid "internal error - bad built-in function `%s'"
+#~ msgstr "erreur interne - mauvaise fonction interne %s "
+
+#~ msgid "empty expression in string index"
+#~ msgstr "expression vide dans la chane d'index"
+
+#~ msgid "only one expression allowed in string index"
+#~ msgstr "seul un expression est permise dans une chane d'index"
+
+#~ msgid "invalid: primval ( untyped_exprlist )"
+#~ msgstr "invalide: primval ( untyped_exprlist )"
+
+#~ msgid "operand is variable-size bitstring/power-set"
+#~ msgstr "oprande est de taille variable bitstring/power-set"
+
+#~ msgid "tree code `%s' unhandled in build_compare_set_expr"
+#~ msgstr "code de l'arbre %s n'est pas traite dans build_compare_set_expr"
+
+#~ msgid "incompatible modes in concat expression"
+#~ msgstr "modes incompatibles dans l'expression de concatnation"
+
+#~ msgid "invalid operation on array of chars"
+#~ msgstr "opration invalide pour des tableaux de caractres"
+
+#~ msgid "comparison of variant structures is unsafe"
+#~ msgstr "comparaison de structures variantes n'est pas sre"
+
+#~ msgid "compare with variant records"
+#~ msgstr "comparaison avec des enregistrements vairants"
+
+#~ msgid "incompatible operands to %s"
+#~ msgstr "type d'oprandes incompatibles pour %s"
+
+#~ msgid "relational operator not allowed for this mode"
+#~ msgstr "oprateur relationnel n'est pas permis pour ce mode"
+
+#~ msgid "cannot use %s operator on PROC mode variable"
+#~ msgstr "ne peut utiliser l'oprateur %s pour une variable en mode PROCDURE"
+
+#~ msgid "invalid left operand of %s"
+#~ msgstr "oprande de gauche invalide pour %s"
+
+#~ msgid "invalid right operand of %s"
+#~ msgstr "oprande de droite invalide pour %s"
+
+#~ msgid "repetition expression must be constant"
+#~ msgstr "rptitions d'expressions doit tre une constante"
+
+#~ msgid "left argument to MOD/REM operator must be integral"
+#~ msgstr "argument de gauche de l'oprateur MOD/REM doit tre entier"
+
+#~ msgid "right argument to MOD/REM operator must be integral"
+#~ msgstr "argument de droite de l'oprateur MOD/REM doit tre entier"
+
+#~ msgid "right operand of IN is not a powerset"
+#~ msgstr "l'oprande de droite de IN n'est pas un POWERSET"
+
+#~ msgid "left operand of IN incompatible with right operand"
+#~ msgstr "oprande de gauche de IN incompatible avec l'oprande de droite"
+
+#~ msgid "-> operator not allow in constant expression"
+#~ msgstr "oprateur -> n'est pas permis dans l'expression d'une constante"
+
+#~ msgid "taking the address of a function is non-standard"
+#~ msgstr "prendre l'adresse d'une fonction n'est pas standard"
+
+#~ msgid "ADDR requires a LOCATION argument"
+#~ msgstr "ADDR requiert un argument de LOCALISATION"
+
+#~ msgid "-> expression is not addressable"
+#~ msgstr "expression -> n'est pas adressable"
+
+#~ msgid "ADDR parameter must be a LOCATION"
+#~ msgstr "paramtre ADDR doit tre une LOCALISATION"
+
+#~ msgid "possible internal error in build_chill_arrow_expr"
+#~ msgstr "erreur interne possible dans build_chill_arrow_expr"
+
+#~ msgid "%s is not addressable"
+#~ msgstr "%s n'est pas adressable"
+
+#~ msgid "repetition count is not an integer constant"
+#~ msgstr "compteur de rptition n'est pas une constante entire"
+
+#~ msgid "repetition count < 0"
+#~ msgstr "compteur de rptition > que 0"
+
+#~ msgid "repetition value not constant"
+#~ msgstr "valeur de rptition n'est pas une constante"
+
+#~ msgid "bitstring repetition of non-constant boolean"
+#~ msgstr "rptition de chane de bits d'un boolen non constant"
+
+#~ msgid "string repetition operand is non-constant bitstring"
+#~ msgstr "oprande de rptition de chanes n'est pas une contante de chane de bits"
+
+#~ msgid "non-char, non-bit string repetition"
+#~ msgstr "rptition de chane n'est pas de caractres ni de bits"
+
+#~ msgid "right operand of %s is not array of boolean"
+#~ msgstr "oprande de droite de %s n'est pas un tableau de boolens"
+
+#~ msgid "%s operator applied to boolean variable"
+#~ msgstr "oprateur %s appliqu une variable boolenne"
+
+#~ msgid "non-boolean mode in conditional expression"
+#~ msgstr "mode non boolen dans l'expression conditionnelle"
+
+#~ msgid "decode_constant: invalid component_ref"
+#~ msgstr "decode_constant: component_ref invalide"
+
+#~ msgid "decode_constant: mode and value mismatch"
+#~ msgstr "decode_constant: mode et valeur ne concordent pas"
+
+#~ msgid "decode_constant: cannot decode this mode"
+#~ msgstr "decode_constant: ne peut dcoder ce mode"
+
+#~ msgid "decode_constant_selective: mode and value mismatch"
+#~ msgstr "decode_constant_selective: mode et value ne concorde pas"
+
+#~ msgid "decode_constant_selective: cannot decode this mode"
+#~ msgstr "decode_constant_selective: ne peut dcoder ce mode"
+
+#~ msgid "FORBID is not yet implemented"
+#~ msgstr "FORBID n'est pas encore implante"
+
+#~ msgid "function \"really_grant_this\" called for `%s'"
+#~ msgstr "fonction really_grant_this appele pour %s "
+
+#~ msgid "non-integral text length"
+#~ msgstr "longueur de texte non entier"
+
+#~ msgid "non-constant text length"
+#~ msgstr "longueur de texte non constante"
+
+#~ msgid "text length must be greater than 0"
+#~ msgstr "la longueur de texte doit tre plus grande que 0"
+
+#~ msgid "argument %d of %s must be of mode ASSOCIATION"
+#~ msgstr "argument %d de %s doit tre de mode ASSOCIATION"
+
+#~ msgid "argument %d of %s must be a location"
+#~ msgstr "argument %d de %s doit tre une localisation"
+
+#~ msgid "argument 2 of ASSOCIATE must not be an empty string"
+#~ msgstr "argument 2 de ASSOCIATE ne doit pas tre une chane vide"
+
+#~ msgid "argument 2 to ASSOCIATE must be a string"
+#~ msgstr "argument 2 de ASSOCIATE doit tre une chane"
+
+#~ msgid "argument 3 to ASSOCIATE must be a string"
+#~ msgstr "argument 3 de ASSOCIATE doit tre une chane"
+
+#~ msgid "too many arguments in call to MODIFY"
+#~ msgstr "trop d'arguments dans l'appel de MODIFY"
+
+#~ msgid "argument 2 of MODIFY must not be an empty string"
+#~ msgstr "argument 2 de MODIFY ne doit pas tre une chane vide"
+
+#~ msgid "argument 2 to MODIFY must be a string"
+#~ msgstr "argument 2 de MODIFY doit tre une chane"
+
+#~ msgid "argument 3 to MODIFY must be a string"
+#~ msgstr "argument 3 de MODIFY doit tre une chane"
+
+#~ msgid "argument %d of %s must be an ACCESS or TEXT mode"
+#~ msgstr "argument %d de %s doit tre de mode ACCESS ou TEXT"
+
+#~ msgid "argument 4 of CONNECT must be of mode WHERE"
+#~ msgstr "argument 4 de CONNECT doit tre de mode WHERE"
+
+#~ msgid "index expression for ACCESS without index"
+#~ msgstr "expression d'index pour ACCESS sans index"
+
+#~ msgid "incompatible index mode"
+#~ msgstr "mode incompatible d'index"
+
+#~ msgid "argument 3 to CONNECT must be of mode USAGE"
+#~ msgstr "argument 3 de CONNECT doit tre de mode USAGE"
+
+#~ msgid "argument %d of %s must be of mode ACCESS"
+#~ msgstr "argument %d de %s doit tre de mode ACCESS"
+
+#~ msgid "too few arguments in call to `readrecord'"
+#~ msgstr "pas assez d'arguments dans l'appel de readrecord()"
+
+#~ msgid "store location must not be READonly"
+#~ msgstr "localisation de stockage ne doit pas tre en LECTURE seulement"
+
+#~ msgid "too few arguments in call to `writerecord'"
+#~ msgstr "pas assez d'arguments pour l'appel de writerecord()"
+
+#~ msgid "transfer to ACCESS without record mode"
+#~ msgstr "transfer vers ACCESS sans mode d'enregistrement"
+
+#~ msgid "argument %d of %s must be of mode TEXT"
+#~ msgstr "argument %d de %s doit tre de mode TEXT"
+
+#~ msgid "TEXT doesn't have a location"
+#~ msgstr "TEXT n'a pas de localisation"
+
+#~ msgid "incompatible index mode for SETETEXTACCESS"
+#~ msgstr "mode d'index incompatible pour SETETEXTACCESS"
+
+#~ msgid "incompatible record mode for SETTEXTACCESS"
+#~ msgstr "mode d'enregistrement incompatible pour SETTEXTACCESS"
+
+#~ msgid "parameter 2 must be a location"
+#~ msgstr "paramtre 2 doit tre une localisation"
+
+#~ msgid "incompatible modes in parameter 2"
+#~ msgstr "modes incompatible dans le paramtre 2"
+
+#~ msgid "conditional expression not allowed in this context"
+#~ msgstr "expression conditionnelle n'est pas permise dans ce contexte"
+
+#~ msgid "untyped expression as argument %d"
+#~ msgstr "expression sans type comme argument %d"
+
+#~ msgid "cannot process %d bits integer for READTEXT argument %d"
+#~ msgstr "ne peut traiter %d bits entiers pour l'argument de READTEXT %d"
+
+#~ msgid "cannot process %d bits integer WRITETEXT argument %d"
+#~ msgstr "ne peut traiter %d bits entiers pour l'argument de WRITETEXT %d"
+
+#~ msgid "argument %d is READonly"
+#~ msgstr "argument %d est en LECTURE seulement"
+
+#~ msgid "argument %d must be referable"
+#~ msgstr "argument %d doit pouvoir tre rfrenc"
+
+#~ msgid "cannot process argument %d of WRITETEXT, unknown size"
+#~ msgstr "ne peut traiter l'argument %d de WRITETEXT, taille inconnue"
+
+#~ msgid "cannot process mode of argument %d for %sTEXT"
+#~ msgstr "ne peut traiter le mode de l'argument %d pour %s de type TEXTE"
+
+#~ msgid "too few arguments for this format string"
+#~ msgstr "trop peu d'arguments pour ce format de chane"
+
+#~ msgid "type of argument %d invalid for conversion code at offset %d"
+#~ msgstr "type d'argument %d invalide pour la conversion du code au dcalage %d"
+
+#~ msgid "unmatched open paren"
+#~ msgstr "parenthse ouverte non paire"
+
+#~ msgid "bad format specification character (offset %d)"
+#~ msgstr "caractre de format de spcification erron (dcalage %d)"
+
+#~ msgid "repetition factor overflow (offset %d)"
+#~ msgstr "dbordement du facteur de rptition (dcalage %d)"
+
+#~ msgid "duplicate qualifier (offset %d)"
+#~ msgstr "duplication du qualificateur (dcalage %d)"
+
+#~ msgid "clause width overflow (offset %d)"
+#~ msgstr "dbordement de la largeur de la clause (dcalage %d)"
+
+#~ msgid "no fraction (offset %d)"
+#~ msgstr "pas de fraction (dcalage %d)"
+
+#~ msgid "no fraction width (offset %d)"
+#~ msgstr "pas de largeur de fraction (dcalage %d)"
+
+#~ msgid "fraction width overflow (offset %d)"
+#~ msgstr "dbordement de largeur de fraction (dcalage %d)"
+
+#~ msgid "no exponent (offset %d)"
+#~ msgstr "pas d'exposant (dcalage %d)"
+
+#~ msgid "no exponent width (offset %d)"
+#~ msgstr "pas de largeur d'exposant (dcalage %d)"
+
+#~ msgid "exponent width overflow (offset %d)"
+#~ msgstr "dbordement de largeur d'exposant (dcalage %d)"
+
+#~ msgid "internal error in check_format_string"
+#~ msgstr "erreur interne dans check_format_string"
+
+#~ msgid "no padding character (offset %d)"
+#~ msgstr "pas de caractre de remplissage (dcalage %d)"
+
+#~ msgid "missing index expression"
+#~ msgstr "expresion d'index manquante"
+
+#~ msgid "too few arguments in call to `writetext'"
+#~ msgstr "pas assez d'arguments pour l'appel de writext()"
+
+#~ msgid "argument 1 for WRITETEXT must be a TEXT or CHARS(n) VARYING location"
+#~ msgstr "argument 1 de WRITETEXT doit tre TEXT ou CHARS(n) VARYING location"
+
+#~ msgid "`format string' for WRITETEXT must be a CHARACTER string"
+#~ msgstr "format string pour WRITETEXT doit tre une chane de caractres"
+
+#~ msgid "too few arguments in call to `readtext'"
+#~ msgstr "trop peu d'arguments dans l'appel de readtext()"
+
+#~ msgid "argument 1 for READTEXT must be a TEXT location or CHARS(n) [ VARYING ] expression"
+#~ msgstr "argument 1 de READTEXT doit tre de localisation TEXT ou CHARS(n) [ VARYING ] expression"
+
+#~ msgid "`format string' for READTEXT must be a CHARACTER string"
+#~ msgstr "format string de READTEXT doit tre une chane de caractres"
+
+#~ msgid "non-constant expression"
+#~ msgstr "expression n'est pas une constante"
+
+#~ msgid "ignoring case upon input and"
+#~ msgstr "ignorer la casse durant l'entre et"
+
+#~ msgid "making special words uppercase wouldn't work"
+#~ msgstr "rendre les mots spciaux en majuscule ne fonctionnerait pas"
+
+#~ msgid "making special words uppercase and"
+#~ msgstr "rendant les mots spciaux en majuscule et"
+
+#~ msgid " ignoring case upon input wouldn't work"
+#~ msgstr " ignorer la casse durant ne fonctionnerait pas"
+
+#~ msgid "invalid C'xx' "
+#~ msgstr "Cxx invalide"
+
+#~ msgid "malformed exponent part of floating-point literal"
+#~ msgstr "partie de l'exposant mal compose du litral en virgule flottante"
+
+#~ msgid "real number exceeds range of REAL"
+#~ msgstr "nombre rel excde les limites de REAL"
+
+#~ msgid "end-of-file in '<>' directive"
+#~ msgstr "fin de fichier dans la directive <>"
+
+#~ msgid "unrecognized compiler directive"
+#~ msgstr "directive du compilateur non reconnue"
+
+#~ msgid "unrecognized compiler directive `%s'"
+#~ msgstr "directive du compilateur %s non reconnue"
+
+#~ msgid "unterminated control sequence"
+#~ msgstr "squence de contrle non termine"
+
+#~ msgid "invalid integer literal in control sequence"
+#~ msgstr "chane d'entiers invalide dans la squence de contrle"
+
+#~ msgid "control sequence overflow"
+#~ msgstr "dbordement de la chane de contrle"
+
+#~ msgid "invalid base in read control sequence"
+#~ msgstr "base invalide dans la squence de contrle de lecture"
+
+#~ msgid "unterminated string literal"
+#~ msgstr "chane litrale non termine"
+
+#~ msgid "invalid number format `%s'"
+#~ msgstr "format de numro %s invalide"
+
+#~ msgid "integer literal too big"
+#~ msgstr "litral d'entier trop grand"
+
+#~ msgid "can't find %s"
+#~ msgstr "ne peut reprer %s"
+
+#~ msgid "USE_SEIZE_FILE directive must be followed by string"
+#~ msgstr "directive USE_SEIZE_FILE doit tre suivie d'une chane"
+
+#~ msgid "missing `=' in compiler directive"
+#~ msgstr "= manquant dans la directtive au compilateur"
+
+#~ msgid "invalid value follows `=' in compiler directive"
+#~ msgstr "valeur invalide suivant = dans la directive au compilateur"
+
+#~ msgid "invalid `%c' character in name"
+#~ msgstr "caractre %c invalide dans le nom"
+
+#~ msgid "`%s' not integer constant synonym "
+#~ msgstr " %s n'est pas un synonyme de constante entire"
+
+#~ msgid "value out of range in compiler directive"
+#~ msgstr "valeur hors gamme dans la directive au compilateur"
+
+#~ msgid "no modules seen"
+#~ msgstr "aucun module vu"
+
+#~ msgid "modeless tuple not allowed in this context"
+#~ msgstr "tuple sans modle n'est pas permis dans ce contexte"
+
+#~ msgid "IN expression does not have a mode"
+#~ msgstr "expression IN n'a pas de mode"
+
+#~ msgid "location enumeration for BOOLS"
+#~ msgstr "localisation d'numration pour BOOLENS"
+
+#~ msgid "location enumeration for bit-packed arrays"
+#~ msgstr "localisation d'numration tableaux de bits paquets"
+
+#~ msgid "loop's IN expression is not a composite object"
+#~ msgstr "boucle dans l'expression IN n'est pas un objet composite"
+
+#~ msgid "start expr must have discrete mode"
+#~ msgstr "dbut de l'expression doit avoir un mode discret"
+
+#~ msgid "DO FOR start expression is a numbered SET"
+#~ msgstr "expression de dpart de DO FOR est un SET numr"
+
+#~ msgid "TO expression is a numbered SET"
+#~ msgstr "expression TO est un SET numr"
+
+#~ msgid "TO expr must have discrete mode"
+#~ msgstr "expression TO doit avoir un mode discret"
+
+#~ msgid "start expr and TO expr must be compatible"
+#~ msgstr "dbut de l'expression et l'expression TO doivent tre compatibles"
+
+#~ msgid "BY expr must have discrete mode"
+#~ msgstr "expression BY doit avoir un mode discret"
+
+#~ msgid "start expr and BY expr must be compatible"
+#~ msgstr "dbut de l'expression et l'expression BY doivent tre compatibles"
+
+#~ msgid "loop identifier undeclared"
+#~ msgstr "identificateur de boucle non dclar"
+
+#~ msgid "loop variable incompatible with start expression"
+#~ msgstr "variable de boucle incompatible avec le dbut de l'expression"
+
+#~ msgid "body of DO FOR will never execute"
+#~ msgstr "corps de DO FOR ne sera jamais excut"
+
+#~ msgid "BY expression is negative or zero"
+#~ msgstr "expression BY est ngative ou zro"
+
+#~ msgid "can't iterate through array of BOOL"
+#~ msgstr "ne peut faire d'itration travers le tableau de BOOLENS"
+
+#~ msgid "Can't iterate through array of BOOL"
+#~ msgstr "ne peut faire d'itration travers le tableau de BOOLENS"
+
+#~ msgid "there was no start label to match the end label '%s'"
+#~ msgstr "il n'y a pas d'tiquette de dpart concordant avec l'tiquette de fin %s "
+
+#~ msgid "start label '%s' does not match end label '%s'"
+#~ msgstr "tiquette de dpart %s ne concorde pas avec l'tiquette de fin %s "
+
+#~ msgid "no RETURN or RESULT in procedure"
+#~ msgstr "pas de RETURN ou RESULT dans la procdure"
+
+#~ msgid "PREFIXED clause with no prelix in unlabeled module"
+#~ msgstr "cluase PREFIX sans no prelix dans un module sans tiquette"
+
+#~ msgid "'%s!' is not followed by an identifier"
+#~ msgstr " %s n'est pas suivi d'un identificateur"
+
+#~ msgid "expected a name string here"
+#~ msgstr "un nom de chane est attendu ici"
+
+#~ msgid "`%s' undeclared"
+#~ msgstr " %s non dclar"
+
+#~ msgid "action not allowed in SPEC MODULE"
+#~ msgstr "action n,est pas permise dans le MODULE SPEC"
+
+#~ msgid "missing defining occurrence"
+#~ msgstr "dfinition d'occurence manquante"
+
+#~ msgid "bad defining occurrence following ','"
+#~ msgstr "dfinition d'occurence errone suivant ,"
+
+#~ msgid "missing '(' in exception list"
+#~ msgstr ") manquante dans la liste d'exceptions"
+
+#~ msgid "ON exception names must be unique"
+#~ msgstr "noms d'exception ON doivent tre uniques"
+
+#~ msgid "syntax error in exception list"
+#~ msgstr "erreur de syntaxe dans la liste d'exception"
+
+#~ msgid "empty ON-condition"
+#~ msgstr "condition ON vide"
+
+#~ msgid "INIT not allowed at loc-identity declaration"
+#~ msgstr "INIT n'est pas permis dans la dclaration d'identit de localisation"
+
+#~ msgid "'=' used where ':=' is required"
+#~ msgstr "= utilis o := est requis"
+
+#~ msgid "loc-identity declaration without initialization"
+#~ msgstr "dclaration de loc n'a pas d'initialisation"
+
+#~ msgid "bad syntax following FORBID"
+#~ msgstr "syntaxe errone suivant FORBID"
+
+#~ msgid "expected a postfix name here"
+#~ msgstr "nom postfixe attendu ici"
+
+#~ msgid "expected another rename clause"
+#~ msgstr "attendait une autre clause de changement de nom"
+
+#~ msgid "NONREF specific without LOC in result attribute"
+#~ msgstr "NONREF spcifique sans LOCALISATION dans l'attribut rsultant"
+
+#~ msgid "DYNAMIC specific without LOC in result attribute"
+#~ msgstr "DYNAMIC spcifique sans LOCALISATION dans l'attribut rsultant"
+
+#~ msgid "exception names must be unique"
+#~ msgstr "noms d'exceptions doivent tre uniques"
+
+#~ msgid "must specify a PROCESS name"
+#~ msgstr "doit spcifier un nom de processus"
+
+#~ msgid "SIGNAL must be in global reach"
+#~ msgstr "SIGNAL doit tre dans l'tendue globale"
+
+#~ msgid "syntax error while parsing signal definition statement"
+#~ msgstr "erreur de syntaxe lors de l'analyse syntaxique de la dclaration de la dfinition"
+
+#~ msgid "case range list"
+#~ msgstr "liste d'tendue du CASE"
+
+#~ msgid "misplaced colon in case label"
+#~ msgstr ": mal placs dans l'tiquette du CASE"
+
+#~ msgid "unrecognized case label list after ','"
+#~ msgstr "tiquette non reconnue du CASE aprs ,"
+
+#~ msgid "readonly location modified by 'asm'"
+#~ msgstr "localisation en lecture seulement modifie par asm"
+
+#~ msgid "expected 'TO' in step enumeration"
+#~ msgstr "attendait TO dans l'numration du PAS"
+
+#~ msgid "expected 'IN' in FOR control here"
+#~ msgstr "attendait IN dans le contrle du FOR ici"
+
+#~ msgid "missing DELAY CASE alternative"
+#~ msgstr "alternative de dlais du CASE manquante"
+
+#~ msgid "non-referable location in DO WITH"
+#~ msgstr "localisation non rfrenable dans le DO WITH"
+
+#~ msgid "WITH element must be of STRUCT mode"
+#~ msgstr "lment WITH doit tre de mode STRUCT"
+
+#~ msgid "missing ')' in signal/buffer receive alternative"
+#~ msgstr ") manquant dans la rception alternative de signal/tampon"
+
+#~ msgid "misplaced 'IN' in signal/buffer receive alternative"
+#~ msgstr "IN mal plac dans la rception alternative de signal/tampon"
+
+#~ msgid "missing RECEIVE alternative"
+#~ msgstr "RECEIVE alternative manquant"
+
+#~ msgid "PROCESS copy number must be integer"
+#~ msgstr "processus de copie de nombres doit tre entier"
+
+#~ msgid "missing parenthesis for procedure call"
+#~ msgstr "parenthse manquante dans l'appel de procdure"
+
+#~ msgid "syntax error in action"
+#~ msgstr "erreur de syntaxe dans l,action"
+
+#~ msgid "no handler is permitted on this action"
+#~ msgstr "pas de handler permis pour cette action"
+
+#~ msgid "definition follows action"
+#~ msgstr "dfinition suit l'action"
+
+#~ msgid "bad tuple field name list"
+#~ msgstr "nom erron de liste de champ de tuple"
+
+#~ msgid "invalid syntax for label in tuple"
+#~ msgstr "syntaxe invalide pour l'tiquette dans le tuple"
+
+#~ msgid "bad syntax in tuple"
+#~ msgstr "syntaxe errone dans le tuple"
+
+#~ msgid "non-mode name before tuple"
+#~ msgstr "nom sans mode avant le tuple"
+
+#~ msgid "invalid expression/location syntax"
+#~ msgstr "expression/localisation syntaxe invalide"
+
+#~ msgid "RECEIVE expression"
+#~ msgstr "expression RECEIVE"
+
+#~ msgid "there should not be a ';' here"
+#~ msgstr "il ne devrait pas y avoir un ; ici"
+
+#~ msgid "missing ELSE/ELSIF in IF expression"
+#~ msgstr "ELSE/ELSIF manquant dans l'expresion IF"
+
+#~ msgid "conditional expression not allowed inside parentheses"
+#~ msgstr "expression conditionnelle non permise l'intrieur des parenthses"
+
+#~ msgid "mode-less tuple not allowed inside parentheses"
+#~ msgstr "tuple sans modle n'est pas permis l'intrieur des parenthses"
+
+#~ msgid "mixed numbered and unnumbered set elements is not standard"
+#~ msgstr "lments de l'ensemble numrots et non numrots mlangs n'est pas standard"
+
+#~ msgid "SET mode must define at least one named value"
+#~ msgstr "mode SET doit dfinir au moins une valeur nomme"
+
+#~ msgid "POS not allowed for ARRAY"
+#~ msgstr "POSITION n'est pas permise pour un TABLEAU"
+
+#~ msgid "bad field name following ','"
+#~ msgstr "nom de champ erron aprs ,"
+
+#~ msgid "expected ':' in structure variant alternative"
+#~ msgstr ": attendu dans la structure variante alternative"
+
+#~ msgid "missing field"
+#~ msgstr "champ manquant"
+
+#~ msgid "VARYING bit-strings not implemented"
+#~ msgstr "chane variante de bits n'est pas implante"
+
+#~ msgid "BUFFER modes may not be readonly"
+#~ msgstr "modes des TAMPOONS ne peuvent pas tre en LECTURE seulement"
+
+#~ msgid "EVENT modes may not be readonly"
+#~ msgstr "modes d'VVEMENTS ne peuvent pas tre en LECTURE seulement"
+
+#~ msgid "SIGNAL is not a valid mode"
+#~ msgstr "SIGNAL n'est pas un mode valide"
+
+#~ msgid "syntax error - missing mode"
+#~ msgstr "erreur de syntaxe - mode manquant"
+
+#~ msgid "syntax error - expected a module or end of file"
+#~ msgstr "erreur de syntaxe - module attendu ou fin de fichier"
+
+#~ msgid " `%s', which depends on ..."
+#~ msgstr " %s , laquel dpend de ..."
+
+#~ msgid "cycle: `%s' depends on ..."
+#~ msgstr "cycle: %s dpend de ..."
+
+#~ msgid " `%s'"
+#~ msgstr " %s "
+
+#~ msgid "SYN of this mode not allowed"
+#~ msgstr "SYN de de mode n'est pas permis"
+
+#~ msgid "mode of SYN incompatible with value"
+#~ msgstr "mode de SYN incompatible avec la valeur"
+
+#~ msgid "SYN value outside range of its mode"
+#~ msgstr "valeur de SYN en dehors de l'tendue de son mode"
+
+#~ msgid "INIT string too large for mode"
+#~ msgstr "chane d'INIT trop grande pour ce mode"
+
+#~ msgid "mode with non-value property in signal definition"
+#~ msgstr "mode sans proprit de non valeur dans la dfinition de signal"
+
+#~ msgid "RETURNS spec with invalid mode"
+#~ msgstr "spcification de RETOUR avec un mode invalide"
+
+#~ msgid "operand to REF is not a mode"
+#~ msgstr "l'oprande de REF n'est pas un mode"
+
+#~ msgid "field with non-value mode in variant structure not allowed"
+#~ msgstr "champ avec un mode non valeur dans une structure variante n'est pas permis"
+
+#~ msgid "buffer element mode must not have non-value property"
+#~ msgstr "mode lment du tampon ne doit pas avoir une proprit de non valeur"
+
+#~ msgid "recordmode must not have the non-value property"
+#~ msgstr "mode d'enregistrement ne doit pas avoir une proprit de non valeur"
+
+#~ msgid "invalid attribute for argument `%s' (only IN or LOC allowed)"
+#~ msgstr "attribue invalide pour l'argument %s (seul IN ou LOC est permis)"
+
+#~ msgid "PROCESS may only be declared at module level"
+#~ msgstr "PROCESSUS peut seulement tre dclar au niveau module"
+
+#~ msgid "process name %s never declared"
+#~ msgstr "nom de processus %s n'a jamais t dclar"
+
+#~ msgid "you may only START a process, not a proc"
+#~ msgstr "vous pouvez seulement LANCER un processus, pas une procdure"
+
+#~ msgid "SET expression not a location"
+#~ msgstr "expression de l'ENSEMBLE n'est pas une localisation"
+
+#~ msgid "SET location must be INSTANCE mode"
+#~ msgstr "localisation de l'ENSEMBLE doit tre un mode d'INSTANCE"
+
+#~ msgid "too many arguments to process `%s'"
+#~ msgstr "trop d'arguments traiter pour %s "
+
+#~ msgid "too many arguments to process"
+#~ msgstr "trop d'arguments traiter"
+
+#~ msgid "too few arguments to process `%s'"
+#~ msgstr "pas assez d'arguments pour traiter %s "
+
+#~ msgid "too few arguments to process"
+#~ msgstr "trop peu d'arguments pour le traitement"
+
+#~ msgid "COPY_NUMBER argument must be INSTANCE expression"
+#~ msgstr "argument de COPY_NUMBER doit tre une expression d'INSTANCE"
+
+#~ msgid "GEN_CODE argument must be a process or signal name"
+#~ msgstr "argument GEN_CODE doit tre une processus ou un nom de signal"
+
+#~ msgid "GEN_INST parameter 2 must be an integer mode"
+#~ msgstr "paramtre 2 de GEN_INST doit tre un mode entier"
+
+#~ msgid "GEN_INST parameter 1 must be a PROCESS or an integer expression"
+#~ msgstr "paramtre 1 de GEN_INST doit tre une PROCESSUS ou une expression entire"
+
+#~ msgid "%s is not a declared process"
+#~ msgstr "%s n'est pas processus dclar"
+
+#~ msgid "PROC_TYPE argument must be INSTANCE expression"
+#~ msgstr "argument de PROC_TYPE doit tre une expression d'INSTANCE"
+
+#~ msgid "QUEUE_LENGTH argument must be a BUFFER/EVENT location"
+#~ msgstr "argument de QUEUE_LENGTH doit avoir une localisation de TAMPON/VNEMENT"
+
+#~ msgid "SEND requires a SIGNAL; %s is not a SIGNAL name"
+#~ msgstr "TRANSMISSION requiert un SIGNAL; %s n'est pas un nom de SIGNAL"
+
+#~ msgid "too many values for SIGNAL `%s'"
+#~ msgstr "trop de valeurs pour le SIGNAL %s "
+
+#~ msgid "too few values for SIGNAL `%s'"
+#~ msgstr "pas assez de valeurs pour le SIGNAL %s "
+
+#~ msgid "signal sent without priority"
+#~ msgstr "signal transmis sans priorit"
+
+#~ msgid " and no default priority was set."
+#~ msgstr " et aucune priorit par dfaut n'a t dfinie."
+
+#~ msgid " PRIORITY defaulted to 0"
+#~ msgstr " PRIORIT par dfaut est 0"
+
+#~ msgid "SEND without a destination instance"
+#~ msgstr "TRANSMISSION sans instance de destination"
+
+#~ msgid " and no destination process specified"
+#~ msgstr " et aucune destination de processus spcifie"
+
+#~ msgid " for the signal"
+#~ msgstr " pour le signal"
+
+#~ msgid "SEND to ANY copy of process `%s'"
+#~ msgstr "TRANSMISSION vers N'IMPORTE QUELLE copie de processus %s "
+
+#~ msgid "SEND TO must be an INSTANCE mode"
+#~ msgstr "TRANSMISSION TO doit avoir un mode d'INSTANCE"
+
+#~ msgid "SEND WITH must have a mode"
+#~ msgstr "TRANSMISSION WITH doit avoir un mode"
+
+#~ msgid "internal error: RECEIVE CASE stack invalid"
+#~ msgstr "erreur interne: pile du RECEIVE CASE invalide"
+
+#~ msgid "SET requires INSTANCE location"
+#~ msgstr "ENSEMBLE requiert une INSTANCE de localisation"
+
+#~ msgid "SIGNAL in RECEIVE CASE alternative follows"
+#~ msgstr "SIGNAL dans un CASE de RCEPTION alternative suit"
+
+#~ msgid " a BUFFER name on line %d"
+#~ msgstr " un nom de TAMPON sur la ligne %d"
+
+#~ msgid "SIGNAL `%s' has no data fields"
+#~ msgstr "SIGNAL %s n'a pas de champs de donnes"
+
+#~ msgid "SIGNAL `%s' requires data fields"
+#~ msgstr "SIGNAL %s requiert des champs de donnes"
+
+#~ msgid "too few data fields provided for `%s'"
+#~ msgstr "trop peu de champs de donnes fournies pour %s "
+
+#~ msgid "too many data fields provided for `%s'"
+#~ msgstr "trop de champs de donnes fournis pour %s "
+
+#~ msgid "BUFFER in RECEIVE CASE alternative follows"
+#~ msgstr "TAMPON du CASE de RCEPTION alternative suit"
+
+#~ msgid " a SIGNAL name on line %d"
+#~ msgstr " un nom de SIGNAL sur la ligne %d"
+
+#~ msgid "BUFFER in RECEIVE CASE alternative must be a location"
+#~ msgstr "TAMPON dans un CASE de RCEPTION alternative doit tre une localisation "
+
+#~ msgid "buffer receive alternative requires only 1 defining occurrence"
+#~ msgstr "tampon de rception alternatif requiert une seule dfinition d'occurence"
+
+#~ msgid "incompatible modes in receive buffer alternative"
+#~ msgstr "modes incompatibles dans le tampon alternatif de rception"
+
+#~ msgid "defining occurrence in receive buffer alternative must be a location"
+#~ msgstr "dfinition d'occurence dans un tampon de rception alternatif doit tre une localisation"
+
+#~ msgid "buffer receive alternative without `IN location'"
+#~ msgstr "tampon de rception alternative sans IN location"
+
+#~ msgid "RECEIVE CASE alternative must specify a SIGNAL name or BUFFER location"
+#~ msgstr "alternative de RCEPTION DE CASE doit spcifier un nom de SIGNAL ou la localisation d'un TAMPON"
+
+#~ msgid "RECEIVE CASE without alternatives"
+#~ msgstr "RCEPTION DE CASE sans alternative"
+
+#~ msgid "CONTINUE requires an event location"
+#~ msgstr "CONTINUE requiert une localisation d'vnement"
+
+#~ msgid "PRIORITY must be of integer type"
+#~ msgstr "PRIORIT doit avoir un type entier"
+
+#~ msgid "delay alternative must be an EVENT location"
+#~ msgstr "dlai alternatif doit avoir une localisation d'VNEMENT"
+
+#~ msgid "DELAY CASE without alternatives"
+#~ msgstr "DLAI du CASE sans alternative"
+
+#~ msgid "DELAY action requires an event location"
+#~ msgstr "DLAI d'action requiert une localisation d'vnement"
+
+#~ msgid "PRIORITY in DELAY action must be of integer type"
+#~ msgstr "PRIORIT dans le DLAI d'action doit avoir un type entier"
+
+#~ msgid "DELAY action without priority."
+#~ msgstr "DLAI d'action sans priorit"
+
+#~ msgid "send buffer action requires a BUFFER location"
+#~ msgstr "le tampon d'expdition de l'action requiert une localisation de TAMPON"
+
+#~ msgid "there must be only 1 value for send buffer action"
+#~ msgstr "il ne doit y avoir qu'une valeur pour le tampon de transmission d'action"
+
+#~ msgid "convert failed for send buffer action"
+#~ msgstr "chec de voncversion pour le tampon de transmission d'action"
+
+#~ msgid "incompatible modes in send buffer action"
+#~ msgstr "modes incompatibles dans le tampon de transmission d'action"
+
+#~ msgid "buffer sent without priority"
+#~ msgstr "tampon de transmission sans priorit"
+
+#~ msgid "WITH not allowed for send buffer action"
+#~ msgstr "WITH n'est pas permis pour le tampon de transmission d'action"
+
+#~ msgid "TO not allowed for send buffer action"
+#~ msgstr "TO n'est pas permis pour le tampon de transmission d'action"
+
+#~ msgid "SEND requires a BUFFER; `%s' is not a BUFFER name"
+#~ msgstr "SEND requiert un TAMPON; %s n'est pas un nom de TAMPON"
+
+#~ msgid "non-integral max queue size for EVENT/BUFFER mode"
+#~ msgstr "taille maximale de queue n'est pas un entier pour un mode VNEMENT/TAMPON"
+
+#~ msgid "non-constant max queue size for EVENT/BUFFER mode"
+#~ msgstr "taille maximale de queue n'est pas une constante pour un mode VNEMENT/TAMPON"
+
+#~ msgid "max queue_size for EVENT/BUFFER is not positive"
+#~ msgstr "taille maximale de queue pour un VNEMENT/TAMPON n'est pas positive"
+
+#~ msgid "absolute time value must be of mode TIME"
+#~ msgstr "valeur absolue de temps doit tre du mode TEMPS"
+
+#~ msgid "duration primitive value must be of mode DURATION"
+#~ msgstr "valeur de la dure de la primitive doit tre un mode de DURE"
+
+#~ msgid "string length > UPPER (UINT)"
+#~ msgstr "longueur de la chane > UPPER (UINT)"
+
+#~ msgid "can only build a powerset from a discrete mode"
+#~ msgstr "peut seulement construire un powerset partir d'un mode discret"
+
+#~ msgid "non-constant bitstring size invalid"
+#~ msgstr "taille du champ de bits n'est pas une constante valide"
+
+#~ msgid "non-constant powerset size invalid"
+#~ msgstr "taille de la non constante du powerset est invalide"
+
+#~ msgid "array or string index is a mode (instead of a value)"
+#~ msgstr "tableau ou chane d'index est une mode (au lieu d'une valeur)"
+
+#~ msgid "index is not an integer expression"
+#~ msgstr "index n'est pas une expression entire"
+
+#~ msgid "index is not discrete"
+#~ msgstr "index n'est pas discret"
+
+#~ msgid "possible internal error - slice argument is neither referable nor constant"
+#~ msgstr "erreur interne possible - l'argument de dcoupage n'est ni rfrenable ni une constante"
+
+#~ msgid "bit array slice with non-constant length"
+#~ msgstr "dcoupage de tableau de bits avec une longueur non constante"
+
+#~ msgid "bitstring slice with non-constant length"
+#~ msgstr "dcoupage de chane de bits avec une longueur non constante"
+
+#~ msgid "slice operation on non-array, non-bitstring value not supported"
+#~ msgstr "opration de dcoupage sur un non tableau ou sur une valeur non chane de bits n'est pas supporte"
+
+#~ msgid "can only take slice of array or string"
+#~ msgstr "peut seulement faire le dcoupage d'un tableau ou d'une chane"
+
+#~ msgid "slice length out-of-range"
+#~ msgstr "tranche de la longueur est hors gamme"
+
+#~ msgid "too many index expressions"
+#~ msgstr "trop d'expressions d'index"
+
+#~ msgid "array index is not discrete"
+#~ msgstr "index de tableau n'est pas discret"
+
+#~ msgid "invalid compound index for bitstring mode"
+#~ msgstr "index compos invalide pour un mode chane de bits"
+
+#~ msgid "conversions from variable_size value"
+#~ msgstr "conversions partir de la valeur variable_size"
+
+#~ msgid "conversions to variable_size mode"
+#~ msgstr "conversion vers un mode variable_size"
+
+#~ msgid "cannot convert to float"
+#~ msgstr "ne peut convertir en un type flottant"
+
+#~ msgid "cannot convert float to this mode"
+#~ msgstr "ne peut convertir un flottant vers ce mode"
+
+#~ msgid "OVERFLOW in expression conversion"
+#~ msgstr "DBORDEMENT dans la conversion d'expression"
+
+#~ msgid "overflow (not inside function)"
+#~ msgstr "dbordement (pas l'intrieur de la fonction)"
+
+#~ msgid "possible overflow (not inside function)"
+#~ msgstr "dbordement possible (pas l'intrieur de la fonction)"
+
+#~ msgid "expression will always cause OVERFLOW"
+#~ msgstr "expression causera toujours un DBORDEMENT"
+
+#~ msgid "not implemented: constant conversion from that kind of expression"
+#~ msgstr "pas implant: conversion de constante depuis quel sorte d'expression"
+
+#~ msgid "not implemented: constant conversion to that kind of mode"
+#~ msgstr "pas implant: conversion de constante vers quell sorte de mode"
+
+#~ msgid "non-standard, non-portable value conversion"
+#~ msgstr "non standard, conversion de valeur non portable"
+
+#~ msgid "location conversion between differently-sized modes"
+#~ msgstr "conversion de localisation entre des mode de taille diffrentes"
+
+#~ msgid "size %d of BIN too big - no such integer mode"
+#~ msgstr "taille %d de BIN trop grand - pas de tel mode entier"
+
+#~ msgid "BIN in pass 2"
+#~ msgstr "BIN dans la passe 2"
+
+#~ msgid "mode of tuple is neither ARRAY, STRUCT, nor POWERSET"
+#~ msgstr "mode du tuple n'est pas ARRAY, STRUCT, ni POWERSET"
+
+#~ msgid "internal error in chill_root_resulting_mode"
+#~ msgstr "erreur interne dans chill_root_resulting_mode"
+
+#~ msgid "string lengths not equal"
+#~ msgstr "longueurs de chanes ingales"
+
+#~ msgid "can't do ARRAY assignment - too large"
+#~ msgstr "ne peut effectuer une affectation de tableau - trop grand"
+
+#~ msgid "rhs of array assignment is not addressable"
+#~ msgstr "rhs de l'affectation de tableau n'est pas adressable"
+
+#~ msgid "non-constant expression for BIN"
+#~ msgstr "expression n'est pas un constante pour BIN"
+
+#~ msgid "expression for BIN must not be negative"
+#~ msgstr "expression pour BIN ne doit pas tre ngatif"
+
+#~ msgid "cannot process BIN (>32)"
+#~ msgstr "ne peut traiter BIN (>32)"
+
+#~ msgid "bounds of range are not compatible"
+#~ msgstr "bornes de l'tendue ne sont pas compatibles"
+
+#~ msgid "negative string length"
+#~ msgstr "longueur ngative de chane"
+
+#~ msgid "range's lower bound and parent mode don't match"
+#~ msgstr "borne infrieure de l'tendue et le mode parent ne concordent pas"
+
+#~ msgid "range's upper bound and parent mode don't match"
+#~ msgstr "borne suprieure de l'tendue et le mode parent ne concordent pas"
+
+#~ msgid "making range from non-mode"
+#~ msgstr "faisant une tendue partir de non mode"
+
+#~ msgid "floating point ranges"
+#~ msgstr "tendues en virgules flottantes"
+
+#~ msgid "range mode has non-constant limits"
+#~ msgstr "mode d'tendue a des limites non contantes"
+
+#~ msgid "range's high bound < mode's low bound"
+#~ msgstr "borne suprieure de l'tendue < mode de la borne infrieure"
+
+#~ msgid "range's high bound > mode's high bound"
+#~ msgstr "borne suprieure de l'tendue > mode de la borne suprieure"
+
+#~ msgid "range mode high bound < range mode low bound"
+#~ msgstr "borne suprieure de l'tendue < mode de l'tendue la borne infrieure"
+
+#~ msgid "range's low bound < mode's low bound"
+#~ msgstr "borne infrieure de l'tendue < mode de la borne infrieure"
+
+#~ msgid "range's low bound > mode's high bound"
+#~ msgstr "borne infrieure de l'tendue > mode de la borne suprieure"
+
+#~ msgid "stepsize in STEP must be an integer constant"
+#~ msgstr "taille du PAS doit tre une contante entire"
+
+#~ msgid "stepsize in STEP must be > 0"
+#~ msgstr "taille du PAS doit tre > 0"
+
+#~ msgid "stepsize in STEP must be the natural width of the array element mode"
+#~ msgstr "taille du PAS doit tre de largeur naturelle au mode d'lments du tableau"
+
+#~ msgid "starting word in POS must be an integer constant"
+#~ msgstr "dbut du mot dans la POSITION doit tre une constante entire"
+
+#~ msgid "starting word in POS must be >= 0"
+#~ msgstr "dbut du mot dans la POSITION doit tre >= 0"
+
+#~ msgid "starting word in POS within STEP must be 0"
+#~ msgstr "dbut du mot dans la POSITION l'intrieur du PAS doit tre 0"
+
+#~ msgid "starting bit in POS must be an integer constant"
+#~ msgstr "bit de dpart dans la POSITION doit tre une constante entire"
+
+#~ msgid "starting bit in POS within STEP must be 0"
+#~ msgstr "bit de dpart dans la POSITION l'intrieur du PAS doit tre 0"
+
+#~ msgid "starting bit in POS must be >= 0"
+#~ msgstr "bit de dpart dans la POSITION doit tre >= 0"
+
+#~ msgid "starting bit in POS must be < the width of a word"
+#~ msgstr "bit de dpart dans la POSITION doit tre < que la largeur d'un mot"
+
+#~ msgid "length in POS must be > 0"
+#~ msgstr "longueur dans la POSITION doit tre > 0"
+
+#~ msgid "end bit in POS must be an integer constant"
+#~ msgstr "bit final dans la POSITION doit tre une constante entire"
+
+#~ msgid "end bit in POS must be >= the start bit"
+#~ msgstr "bit final dans la POSITION doit tre >= bit de dpart"
+
+#~ msgid "end bit in POS must be < the width of a word"
+#~ msgstr "bit final dans la POSITION doit tre < la largeur de mot"
+
+#~ msgid "the length specified on POS within STEP must be the natural length of the array element type"
+#~ msgstr "la longueur spcifi de positionnement l'intrieur du pas doit tre naturelle la longueur des types des lments du tableau"
+
+#~ msgid "step size in STEP must be >= the length in POS"
+#~ msgstr "la taille du PAS doit tre >= la longueur dans la POSITION"
+
+#~ msgid "array index must be a range, not a single integer"
+#~ msgstr "l'index d'un tableau doit tre une tendue, pas un simple entier"
+
+#~ msgid "array index is not a discrete mode"
+#~ msgstr "index du tableau n'a pas un mode discret"
+
+#~ msgid "the length specified on POS must be the natural length of the field type"
+#~ msgstr "la longueur spcifie de positionnement doit tre de longueur naturel au type du champ"
+
+#~ msgid "STRUCT fields must be layed out in monotonically increasing order"
+#~ msgstr "champs STRUCT doit avoir t disposs en ordre monotonique croissant"
+
+#~ msgid "if one field has a POS layout, then all fields must have a POS layout"
+#~ msgstr "si un champ a une disposition de positionnement, alors tous les champs doivent avoir une disposition de positionnement"
+
+#~ msgid "parameterized structures not implemented"
+#~ msgstr "structure paramtrises ne sont pas implantes"
+
+#~ msgid "invalid parameterized type"
+#~ msgstr "type paramtris invalide"
+
+#~ msgid "abstract virtual `%#D' called from constructor"
+#~ msgstr "abstrait virtuel %#D appel partir d'un constructeur"
+
+#~ msgid "abstract virtual `%#D' called from destructor"
+#~ msgstr "abstrait virtuel %#D appel partir d'un destructeur"
+
+#~ msgid "discarding `const' applied to a reference"
+#~ msgstr "mis de ct const appliqu une rfrence"
+
+#~ msgid "discarding `volatile' applied to a reference"
+#~ msgstr "mis de ct volatile appliqu une rfrence"
+
+#~ msgid "parser lost in parsing declaration of `%D'"
+#~ msgstr "analyseur syntaxique perdu dans l'analyse de la dclaration de %D"
+
+#~ msgid "methods cannot be converted to function pointers"
+#~ msgstr "mthode ne peuvent tre converties en des pointeurs de fonction"
+
+#~ msgid "ambiguous request for method pointer `%s'"
+#~ msgstr "requte ambigue pour la mthode sur pointeur %s "
+
+#~ msgid "`%T' cannot be `restrict'-qualified"
+#~ msgstr "%T ne peut tre restrict-qualified"
+
+#~ msgid "`%T' cannot be `const'-, `volatile'-, or `restrict'-qualified"
+#~ msgstr "%T ne peut tre const-, volatile- ou restrict-qualified"
+
+#~ msgid "invalid reference to NULL ptr, use ptr-to-member instead"
+#~ msgstr "rfrence invalide un pointeur NUL, utiliser pointeur de membre la place"
+
+#~ msgid "internal error #%d"
+#~ msgstr "erreur interne #%d"
+
+#~ msgid "can't create cross-reference file `%s'"
+#~ msgstr "ne peut produire un fichier de rfrences croises %s "
+
+#~ msgid "support non-32-bit machines better as of version 0.6"
+#~ msgstr "le support des machines n'ayant pas 32 bits est meilleur avec la version 0.6"
+
+#~ msgid "Extra label definition %A at %0 -- perhaps previous label definition %B at %1 should have CONTINUE statement?"
+#~ msgstr "Dfinition superflue d'tiquette %A %0 -- peut-tre que la dfinition prcdente d'tiquette %B %1 aurait besoin d'une dclaration CONTINUE?"
+
+#~ msgid "Extra label definition %A at %0 following label definition %B at %1"
+#~ msgstr "Dfinition superflue d'tiquette %A %0 aprs la dfinition de l'tiquette %B %1"
+
+#~ msgid "Continuation indicator at %0 invalid on first non-comment line of file or following END or INCLUDE [info -f g77 M LEX]"
+#~ msgstr "Indicateur de continuation %0 invalide sur la premire ligne de non commentaire du fichier ou suivant END ou INCLUDE [info -f g77 M LEX]"
+
+#~ msgid "Continuation indicator at %0 invalid here [info -f g77 M LEX]"
+#~ msgstr "Indicateur de continuation %0 invalide ici [info -f g77 M LEX]"
+
+#~ msgid "Non-negative integer at %0 too large"
+#~ msgstr "Entier non ngatif %0 trop grand"
+
+#~ msgid "Integer at %0 too large (%2 has precedence over %1)"
+#~ msgstr "Entier %0 trop grand (%2 a prcdence sur %1)"
+
+#~ msgid "Period at %0 not followed by valid keyword forming a valid binary operator; `.%A.' is not a valid binary operator"
+#~ msgstr "Priode %0 n'est pas suivie d'un mot cl valide formant un oprateut binaire valide; .%A, n'est pas un oprateur binaire valide"
+
+#~ msgid "`.%A.' at %0 not a binary operator"
+#~ msgstr ".%A. n'est pas un oprateur binaire valide"
+
+#~ msgid "Double-quote at %0 not followed by a string of valid octal digits at %1"
+#~ msgstr "Double apostrophe %0 pas suivi par une chane valide de chiffres en octal %1"
+
+#~ msgid "Invalid octal constant at %0"
+#~ msgstr "constante octale invalide %0"
+
+#~ msgid "Invalid binary digit(s) found in string of digits at %0"
+#~ msgstr "Chiffre binaire invalide trouv dans la chane de chiffres %0"
+
+#~ msgid "Invalid binary constant at %0"
+#~ msgstr "constante binaire invalide %0"
+
+#~ msgid "Invalid hexadecimal digit(s) found in string of digits at %0"
+#~ msgstr "Chiffre hexadcimal invalide trouv dans la chane de chiffres %0"
+
+#~ msgid "Invalid hexadecimal constant at %0"
+#~ msgstr "constante hexadcimale invalide %0"
+
+#~ msgid "Invalid octal digit(s) found in string of digits at %0"
+#~ msgstr "Chiffre octal invalide trouv dans la chane de chiffres %0"
+
+#~ msgid "Invalid radix specifier `%A' at %0 for typeless constant at %1"
+#~ msgstr "Spcificateur de base invalide %A %0 pour un constante sans type %1"
+
+#~ msgid "Invalid typeless constant at %1"
+#~ msgstr "constante sans type invalide %1"
+
+#~ msgid "%A part of complex constant at %0 must be a real or integer constant -- otherwise use CMPLX() or COMPLEX() in place of ()"
+#~ msgstr "la partie %A de la constante complexe %0 doit tre une constante relle ou entire -- autrement utiliser CMPLX() ou COMPLEX() la place de ()"
+
+#~ msgid "%A part of complex constant at %0 not a real or integer constant"
+#~ msgstr "la partie %A de la constante complexe %0 n'est pas une constante relle ou entire"
+
+#~ msgid "Invalid keyword `%%%A' at %0 in this context"
+#~ msgstr "mot cl invalide %%%A %0 dans ce contexte"
+
+#~ msgid "Invalid keyword `%%%A' at %0"
+#~ msgstr "mot cl invalide %%%A %0"
+
+#~ msgid "Null expression between %0 and %1 invalid in this context"
+#~ msgstr "expression nulle entre %0 et %1 invalide dans ce contexte"
+
+#~ msgid "Invalid null expression between %0 and %1"
+#~ msgstr "expression null invalide entre %0 et %1"
+
+#~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but neither subexpression at %1 or %2 is of character type"
+#~ msgstr "oprateur de concatnation %0 doit oprer sur deux sous-expressions de type caractre, mais aucune des sous-expressions %1 ou %2 n'est de type caractre"
+
+#~ msgid "Invalid operands at %1 and %2 for concatenation operator at %0"
+#~ msgstr "Oprandes invalides %1 et %2 pour l'oprateur de concatnation %0"
+
+#~ msgid "Concatenation operator at %0 must operate on two subexpressions of character type, but the subexpression at %1 is not of character type"
+#~ msgstr "Oprateur de concatnation %0 doit oprer sur deux sous-expressions de type caractre, mais la sous-expression %1 n'est pas de type caractre"
+
+#~ msgid "Invalid operand at %1 for concatenation operator at %0"
+#~ msgstr "Oprande invalide %1 pour l'oprateur de concatnation %0"
+
+#~ msgid "Concatenation operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning character scalars, or a combination of both -- but the subexpression at %1 is %A"
+#~ msgstr "Oprateur de concatnation %0 doit oprer sur deux sous-expressions scalaires (non pas de tableau), deux invocations de fonctions retournant des caractres scalaires ou une combinaison des deux -- mais la sous-expression %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for concatenation operator at %0"
+#~ msgstr "Oprande invalide (est %A) %1 pour l'oprateur de concatnation %0"
+
+#~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but neither subexpression at %1 or %2 is of arithmetic type"
+#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions de type artihmtique, mais aucune des sous-expressions %1 ou %2 n'est pas de type arithmtique"
+
+#~ msgid "Invalid operands at %1 and %2 for arithmetic operator at %0"
+#~ msgstr "Oprande invalide %1 et %2 pour l'oprateur arithmtique %0"
+
+#~ msgid "Arithmetic operator at %0 must operate on two subexpressions of arithmetic type, but the subexpression at %1 is not of arithmetic type"
+#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions de type artihmtique, mais la sous-expression %1 n'est pas de type arithmtique"
+
+#~ msgid "Invalid operand at %1 for arithmetic operator at %0"
+#~ msgstr "Oprande invalide %1 pour l'oprateur arithmtique %0"
+
+#~ msgid "Arithmetic operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic scalars, or a combination of both -- but the subexpression at %1 is %A"
+#~ msgstr "Oprateur arithmtique %0 doit oprer sur deux sous-expressions scalaires (pas de tableau), l'invocation des deux fonctions retournant un scalaire arithmtique ou une combinaison des deux -- mais la sous-expressions %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for arithmetic operator at %0"
+#~ msgstr "Oprande invalide (est %A) %1 pour l'oprateur arithmtique %0"
+
+#~ msgid "Character constant at %0 has no closing quote at %1 [info -f g77 M LEX]"
+#~ msgstr "Constante caractre %0 n'a pas de guillemets de fermeture %1 [info -f g77 M LEX]"
+
+#~ msgid "Unterminated character constant at %0 [info -f g77 M LEX]"
+#~ msgstr "constante de caractres non termine %0 [info -f g77 M LEX]"
+
+#~ msgid "Missing initial `&' on continuation line at %0 [info -f g77 M LEX]"
+#~ msgstr "& initial manquant sur la ligne de continuation %0 [info -f g77 M LEX]"
+
+#~ msgid "Continuation line at %0 invalid because it consists only of a single `&' as the only nonblank character"
+#~ msgstr "Ligne de continuation %0 invalide parce qu'elle contient seulement un simple & comme seul caractre non blanc"
+
+#~ msgid "Invalid continuation line at %0"
+#~ msgstr "ligne de continuation invalide %0"
+
+#~ msgid "Invalid statement at %0 [info -f g77 M LEX]"
+#~ msgstr "Dclaration invalide %0 [info -f g77 M LEX]"
+
+#~ msgid "Unrecognized statement name at %0 and invalid form for assignment or statement-function definition at %1"
+#~ msgstr "Dclaration de nom non reconnue %0 et forme invalide pour l'affectation ou la dfinition de dclaration de fonction %1"
+
+#~ msgid "Invalid statement at %0"
+#~ msgstr "Dclaration invalide %0"
+
+#~ msgid "Invalid form for %A statement at %0"
+#~ msgstr "Forme invalide pour la dclaration %A %0"
+
+#~ msgid "Invalid %A statement at %0"
+#~ msgstr "Dclaration %A invalide %0"
+
+#~ msgid "Invalid use of hollerith constant in statement at %0 -- enclose the constant in parentheses (for example, change BACKSPACE 2HAB to BACKSPACE (2HAB))"
+#~ msgstr "Utilisation invalide d'une constante Hollerith la dclaration %0 -- encapsuler la constante entre parenthses (par exemple, changer BACKSPACE 2HAB en BACKSPACE (2HAB) )"
+
+#~ msgid "Invalid I specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur I invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid B specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur B invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid O specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur O invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid Z specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur Z invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid F specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur F invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid E specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur E invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid EN specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur EN invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid G specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur G invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid L specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur L invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid A specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur A invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid D specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur D invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid Q specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur Q invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid $ specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur $ invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid P specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur P invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid T specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur T invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid TL specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur TL invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid TR specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur TR invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid X specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur X invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid S specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur S invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid SP specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur SP invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid SS specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur SS invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid BN specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur BN invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid BZ specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur BZ invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Invalid : specifier in FORMAT statement at %0"
+#~ msgstr "Invalide: spcificateur de dclaration de FORMAT %0"
+
+#~ msgid "Invalid H specifier in FORMAT statement at %0"
+#~ msgstr "spcificateur H invalide dans la dclaration de FORMAT %0"
+
+#~ msgid "Nonletter in defined operator at %0"
+#~ msgstr "ne contient pas une non lettre dans l'oprateur dfini %0"
+
+#~ msgid "Invalid type-declaration attribute at %0"
+#~ msgstr "type d'attribut de dclaration invalide %0"
+
+#~ msgid "Unrecognized value for character constant at %0 -- expecting %A"
+#~ msgstr "valeur non reconnue pour la constante caractre %0 -- %A attendu"
+
+#~ msgid "Unrecognized value for character constant at %0"
+#~ msgstr "valeur non reconnnue pour la constante caractre %0"
+
+#~ msgid "Range specification at %0 invalid -- at least one expression must be specified, or use CASE DEFAULT"
+#~ msgstr "spcification d'tendue %0 invalide -- au moins une expression doit tre spcifi ou utiliser CASE DEFAULT"
+
+#~ msgid "Range specification at %0 invalid"
+#~ msgstr "spcification d'tendue %0 invalide"
+
+#~ msgid "Useless range at %0"
+#~ msgstr "tendue inutile %0"
+
+#~ msgid "Invalid kind at %0 for type at %1 -- unsupported or not permitted"
+#~ msgstr "sorte invalide %0 pour le type %1 -- non support ou non permis"
+
+#~ msgid "Invalid kind at %0 for type at %1"
+#~ msgstr "sorte invalide %0 pour le type %1"
+
+#~ msgid "Cannot establish implicit type for initial letter `%A' at %0 -- already explicitly established or used to set implicit type of some name, or backwards order of letters in letter range"
+#~ msgstr "ne peut tablir un type implicite pour la lettre initiale %A %0 -- dj explicitement tablie ou utilis pour initialiser un type implicite pour un nom quelconque ou un ordre arrire de lettres dans une tendue de lettres"
+
+#~ msgid "Cannot establish implicit type for initial letter `%A' at %0"
+#~ msgstr "ne peut tablir un type implicite pour la lettre initiale %A %0"
+
+#~ msgid "Label definition %A (at %0) invalid -- must be in columns 1-5"
+#~ msgstr "dfinition d'tiquette %A ( %0) invalide -- doit tre en colonnes 1-5"
+
+#~ msgid "Invalid label definition %A (at %0)"
+#~ msgstr "dfinition d'tiquette invalide %A ( %0)"
+
+#~ msgid "Run-time expression at %0 in FORMAT statement that does not follow the first executable statement in the program unit -- move the statement"
+#~ msgstr "expression lors de l'excution %0 dans la dclaration de FORMAT qui ne suit pas la premire dclaration excutable dans l'unit programme -- dplacer la dclaration"
+
+#~ msgid "FORMAT at %0 with run-time expression must follow first executable statement"
+#~ msgstr "FORMAT %0 dans l'expression lors de l'excution doit suivre la premire dclaration excutable"
+
+#~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but neither subexpression at %1 or %2 is of logical type"
+#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type logique mais aucune des sous-expressions %1 ou %2 n'est de type logique"
+
+#~ msgid "Invalid operands at %1 and %2 for boolean operator at %0"
+#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur boolen %0"
+
+#~ msgid "Boolean/logical operator at %0 must operate on two subexpressions of logical type, but the subexpression at %1 is not of logical type"
+#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type logique mais la sous-expression %1 n'est pas de type logique"
+
+#~ msgid "Invalid operand at %1 for boolean operator at %0"
+#~ msgstr "oprande invalide %1 pour l'oprateur boolen %0"
+
+#~ msgid "Boolean/logical operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning logical scalars, or a combination of both -- but the subexpression at %1 is %A"
+#~ msgstr "oprateur boolen/logique %0 doit oprer sur deux sous-expressions de type scalaire (pas tableau), deux invocations de fonction retournant des scalaires logique ou une combinaison des deux -- mais la sous-expression %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for boolean operator at %0"
+#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur boolen %0"
+
+#~ msgid ".NOT. operator at %0 must operate on subexpression of logical type, but the subexpression at %1 is not of logical type"
+#~ msgstr "oprateur .NOT. %0 doit oprer sur une sous-expression de type logique mais la sous-expression %1 n'est pas de type logique"
+
+#~ msgid "Invalid operand at %1 for .NOT. operator at %0"
+#~ msgstr "oprande invalide %1 pour l'oprateur .NOT. %0"
+
+#~ msgid ".NOT. operator at %0 must operate on scalar subexpressions -- but the subexpression at %1 is %A"
+#~ msgstr "oprateur .NOT. %0 doit oprer sur une sous-expression scalaire mais la sous-expression %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for .NOT. operator at %0"
+#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur .NOT. %0"
+
+#~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but neither subexpression at %1 or %2 is of arithmetic or character type"
+#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type artihmtique ou caractre mais aucune des sous-expressions %1 ou %2 n'est de type arithmtique ou caractre"
+
+#~ msgid "Invalid operands at %1 and %2 for equality operator at %0"
+#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur d'galit %0"
+
+#~ msgid "Equality operator at %0 must operate on two subexpressions of arithmetic or character type, but the subexpression at %1 is not of arithmetic or character type"
+#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type artihmtique ou caractre mais la sous-expression %1 n'est pas de type arithmtique ou caractre"
+
+#~ msgid "Invalid operand at %1 for equality operator at %0"
+#~ msgstr "oprande invalide %1 pour l'oprateur d'galit %0"
+
+#~ msgid "Equality operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning arithmetic or character scalars, or a combination of both -- but the subexpression at %1 is %A"
+#~ msgstr "oprateur d'galit %0 doit oprer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type arithmtique ou scalaires caractre ou une combinaison des deux mais la sous-expression %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for equality operator at %0"
+#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur d'galit %0"
+
+#~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but neither subexpression at %1 or %2 is of integer, real, or character type"
+#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type entier, rel ou caractre, mais aucune des sous-expression %1 ou %2 n'est de type entier, rel ou caractre"
+
+#~ msgid "Invalid operands at %1 and %2 for relational operator at %0"
+#~ msgstr "oprandes invalides %1 et %2 pour l'oprateur relationnel %0"
+
+#~ msgid "Relational operator at %0 must operate on two subexpressions of integer, real, or character type, but the subexpression at %1 is not of integer, real, or character type"
+#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type entier, rel ou caractre, mais la sous-expression %1 n'est pas de type entier, rel ou caractre"
+
+#~ msgid "Invalid operand at %1 for relational operator at %0"
+#~ msgstr "oprande invalide %1 pour l'oprateur relationnel %0"
+
+#~ msgid "Relational operator at %0 must operate on two scalar (not array) subexpressions, two function invocations returning integer, real, or character scalars, or a combination of both -- but the subexpression at %1 is %A"
+#~ msgstr "oprateur relationnal %0 doit oprer sur deux sous-expressions de type scalaire (non pas de tableau), deux invocations de fonction retournant un type entier, rel ou caractre ou une combinaison des deux mais la sous-expression %1 est %A"
+
+#~ msgid "Invalid operand (is %A) at %1 for relational operator at %0"
+#~ msgstr "oprande invalide (est %A) %1 pour l'oprateur relationnel %0"
+
+#~ msgid "Reference to intrinsic `%A' at %0 invalid -- one or more arguments have incorrect type"
+#~ msgstr "rfrence l'intrinsque %A %0 invalide -- un ou plusieurs d'arguments ont un type incorrect"
+
+#~ msgid "Invalid reference to intrinsic `%A' at %0"
+#~ msgstr "rfrence invalide vers l'intrinsque %A %0"
+
+#~ msgid "Too few arguments passed to intrinsic `%A' at %0"
+#~ msgstr "trop peu d'arguments passs l'intrinsque %A %0"
+
+#~ msgid "Too few arguments for intrinsic `%A' at %0"
+#~ msgstr "trop peu d'arguments passs l'intrinsque %A %0"
+
+#~ msgid "Too many arguments passed to intrinsic `%A' at %0"
+#~ msgstr "trop d'arguments passs l'intrinsque %A %0"
+
+#~ msgid "Too many arguments for intrinsic `%A' at %0"
+#~ msgstr "trop d'arguments passs l'intrinsque %A %0"
+
+#~ msgid "Reference to disabled intrinsic `%A' at %0"
+#~ msgstr "rfrence l'intrinsque dsactiv %A %0"
+
+#~ msgid "Disabled intrinsic `%A' at %0"
+#~ msgstr "Dsactiver les intrinsques %A %0"
+
+#~ msgid "Reference to intrinsic subroutine `%A' as if it were a function at %0"
+#~ msgstr "rfrence la sous-routine intrinsque %A comme s'il est une fonction %0"
+
+#~ msgid "Function reference to intrinsic subroutine `%A' at %0"
+#~ msgstr "rfrence de fonction la sous-routine intrinsque %A %0"
+
+#~ msgid "Reference to intrinsic function `%A' as if it were a subroutine at %0"
+#~ msgstr "rfrence une fonction intrinsque %A comme s'il est une sous-routine %0"
+
+#~ msgid "Subroutine reference to intrinsic function `%A' at %0"
+#~ msgstr "rfrence de sous-routine la fonction %A %0"
+
+#~ msgid "Reference to unimplemented intrinsic `%A' at %0 -- use EXTERNAL to reference user-written procedure with this name"
+#~ msgstr "rfrence un intrinsque non implant %A %0 -- utiliser EXTERNAL pour rfrence la procdure ayant ce nom et crite par l'usager"
+
+#~ msgid "Unimplemented intrinsic `%A' at %0"
+#~ msgstr "intrinsque %A non implant %0"
+
+#~ msgid "Reference to unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
+#~ msgstr "rfrence un intrinsque non implant %A (EXTERNAL assum)"
+
+#~ msgid "Unimplemented intrinsic `%A' at %0 (assumed EXTERNAL)"
+#~ msgstr "intrinsque non implante %A (EXTERNAL assum)"
+
+#~ msgid "Attempt to modify variable `%A' at %0 while it serves as DO-loop iterator at %1"
+#~ msgstr "Tentative de modification de la variable %A %0 alors qu'il sert l'itration de la boucle DO %1"
+
+#~ msgid "Modification of DO-loop iterator `%A' at %0"
+#~ msgstr "Modification de l'itration de la boucle DO %A %0"
+
+#~ msgid "Attempt to modify variable `%A' via item #%B in list at %0 while it serves as implied-DO iterator at %1"
+#~ msgstr "Tentative de modification de la variable %A par le biais de l'item #%b dans la liste %0 alors qu'il sert l'itration implicite de la boucle DO %1"
+
+#~ msgid "Array has too many dimensions, as of dimension specifier at %0"
+#~ msgstr "Tableau trop de dimensions comme spcificateur de dimension %0"
+
+#~ msgid "Too many dimensions at %0"
+#~ msgstr "trop de dimensions %0"
+
+#~ msgid "Unsupported OPEN control item at %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED=, and USEROPEN= are not supported"
+#~ msgstr "Item de contrle OPEN non support %0 -- ACTION=, ASSOCIATEVARIABLE=, BLOCKSIZE=, BUFFERCOUNT=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, DISPOSE=, EXTENDSIZE=, INITIALSIZE=, KEY=, MAXREC=, NOSPANBLOCKS, ORGANIZATION=, PAD=, POSITION=, READONLY=, RECORDTYPE=, SHARED= et USEROPEN= ne sont pas supports"
+
+#~ msgid "Unsupported OPEN control item at %0"
+#~ msgstr "item de contrle OPEN non support %0"
+
+#~ msgid "Unsupported INQUIRE control item at %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE=, and WRITE= are not supported"
+#~ msgstr "item de contrle INQUIRE non support %0 -- ACTION=, CARRIAGECONTROL=, DEFAULTFILE=, DELIM=, KEYED=, ORGANIZATION=, PAD=, POSITION=, READ=, READWRITE=, RECORDTYPE= et WRITE= ne sont pas supports"
+
+#~ msgid "Unsupported INQUIRE control item at %0"
+#~ msgstr "item de contrle INQUIRE non support %0"
+
+#~ msgid "Unsupported READ control item at %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS=, and SIZE= are not supported"
+#~ msgstr "item de contrle READ non support %0 -- ADVANCE=, EOR=, KEYEQ=, KEYGE=, KEYGT=, KEYID=, NULLS= et SIZE= ne sont pas supports"
+
+#~ msgid "Unsupported READ control item at %0"
+#~ msgstr "item de contrle READ non support %0"
+
+#~ msgid "Unsupported WRITE control item at %0 -- ADVANCE= and EOR= are not supported"
+#~ msgstr "item de contrle WRITE non support %0 -- ADVANCE= et EOR= ne sont pas supports"
+
+#~ msgid "Unsupported WRITE control item at %0"
+#~ msgstr "item de contrle WRITE non support %0"
+
+#~ msgid "Padding of %A %D required before `%B' in common block `%C' at %0 -- consider reordering members, largest-type-size first"
+#~ msgstr "Remplissage de %A %D requis avant %B dans le bloc commun %C %0 -- considrer reordonner les membres, celui de plus grande taille en premier"
+
+#~ msgid "Padding of %A %D required before `%B' in common block `%C' at %0"
+#~ msgstr "Remplissage de %A %D requis avant %B dans le bloc commun %C %0"
+
+#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s) -- must all be identical-length CHARACTER or none be CHARACTER type"
+#~ msgstr "Type du point d'entre %0 de la fonction est en conflit avec le type de point d'entre prcdent de la fonction -- doit tre de longueur indentique ou zro pour un type caractre"
+
+#~ msgid "Type of ENTRY point at %0 to function conflicts with type(s) of previous entrypoint(s)"
+#~ msgstr "type de point d'entr %0 la fonction est en conflit avec le type de point d'entre prcdent de la fonction"
+
+#~ msgid "Common block `%A' initialized at %0 already initialized at %1 -- only one program unit may specify initial values for a particular common block"
+#~ msgstr "bloc commun %A initialis %0 est dj initialis %1 -- une seule unit de programme peut spcifier les valeurs initiales pour un bloc commun particulier"
+
+#~ msgid "Common block `%A' initialized at %0 already initialized at %1"
+#~ msgstr "bloc commun %A initialis %0 est dj initialis %1"
+
+#~ msgid "Initial padding for common block `%A' is %B %C at %0 -- consider reordering members, largest-type-size first"
+#~ msgstr "remplissage initial pour le bloc commun %A est %B %C %0 -- considrer rordonner les membres, celui de plus grande taille en premier"
+
+#~ msgid "Initial padding for common block `%A' is %B %C at %0"
+#~ msgstr "remplissage initial pour le bloc commun %A est %B %C %0"
+
+#~ msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1 -- consider reordering members, largest-type-size first"
+#~ msgstr "remplissage initial pour le bloc commun %A est %B %D %0 mais %C %E %1 -- considrer rordonner les membres, ceux de plus grande taille en premier"
+
+#~ msgid "Initial padding for common block `%A' is %B %D at %0 but %C %E at %1"
+#~ msgstr "remplissage initial pour le bloc commun %A est %B %D %0 mais %C %E %1"
+
+#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1 -- use consistent definitions or reorder program units in source file"
+#~ msgstr "bloc commun %A initialis un longueur %B %D %0 mais augment %C %E %1 -- utiliser des dfinitions consistantes ou rordonner les units de programmes dans le fichier source"
+
+#~ msgid "Common block `%A' is initialized to %B %D long at %0 but enlarged to %C %E at %1"
+#~ msgstr "bloc commun %A initialis un longueur %B %D %0 mais augment %C %E %1"
+
+#~ msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0 -- unexpected behavior likely"
+#~ msgstr "variable DO %A est de type REEL ou DOUBLE PRECISION %0 -- comportement inattendue est prvoir"
+
+#~ msgid "DO-variable `%A' is type REAL or DOUBLE PRECISION at %0"
+#~ msgstr "variable DO %A est de type REEL ou DOUBLE PRECISION %0"
+
+#~ msgid "Invalid actual argument at %0 -- replace hollerith constants with %%REF('string') and typeless constants with INTEGER constant equivalents, or use -fugly-args or -fugly"
+#~ msgstr "argument actuel invalide %0 -- remplacer les constantes Hollerith avec %%REF('chane') et des constantes sans type avec des quivalents entiers ou utiliser -fugly-args ou -fugly"
+
+#~ msgid "Invalid actual argument at %0"
+#~ msgstr "argument actuel invalide %0"
+
+#~ msgid "Quadruple-precision floating-point unsupported -- treating constant at %0 as double-precision"
+#~ msgstr "virgule flottante en quadruple prcision non support -- tratement de la constante %0 en double prcision"
+
+#~ msgid "Quadruple-precision floating-point unsupported"
+#~ msgstr "virgule flottante en quadruple prcision non support"
+
+#~ msgid "Initialization of large (%B-unit) aggregate area `%A' at %0 currently very slow and takes lots of memory during g77 compile -- to be improved in 0.6"
+#~ msgstr "initialisation d'une large zone aggrgat (unit %B) %A %0 couramment lente et prenant beaucoup de mmoire durant la compilation g77 -- tre amlior dans 0.6"
+
+#~ msgid "This could take a while (initializing `%A' at %0)..."
+#~ msgstr "Cela pourrait prendre du temps (initialisation %A %0)..."
+
+#~ msgid "can't to open %s"
+#~ msgstr "ne peut ouvrir %s"
+
+#~ msgid "Set class path and suppress system path"
+#~ msgstr "Initialiser le chemin des classes et supprimer le chemin systmes"
+
+#~ msgid "<stdin>"
+#~ msgstr "<stdin>"
+
+#~ msgid "hard register `%s' listed as input operand to `asm'"
+#~ msgstr "registre matriel `%s' est list comme une oprande d'entre `asm'"
+
+#~ msgid "floating point trap outputting a constant"
+#~ msgstr "la trappe en virgule flottante produit une constante"
+
+#~ msgid "no file-scope type named `%D'"
+#~ msgstr "pas de type de porte de fichier nomm `%D'"
+
+#~ msgid "%T is not a class type"
+#~ msgstr " %T n'est pas un type de classe"
+
+#~ msgid "base clause without member specification for `%#T'"
+#~ msgstr "clause de base sans spcification de membre pour `%#T'"
+
+#~ msgid "non-`union' tag used in declaring `%#T'"
+#~ msgstr "tiquette non-`union' utilis dans la dclaration de `%#T'"
+
+#~ msgid "invalid use of %D"
+#~ msgstr "utilisation invalide de %D"
+
+#~ msgid "return value from function receives multiple initializations"
+#~ msgstr "valeur retourne de la fonction reoit de multiples initialisations"
+
+#~ msgid "Can't use '$' as a separator for inner classes"
+#~ msgstr "Ne peut utiliser '$' comme sparateur pour des classes internes"
+
+#~ msgid "-mlong32 and -mlong64 can not both be specified"
+#~ msgstr "-mlong32 et -mlong64 ne peuvent tre spcifis ensembles."
+
+#~ msgid "type with more precision than %s"
+#~ msgstr "type avec plus de precision que %s"
+
+#~ msgid "ANSI C forbids const or volatile function types"
+#~ msgstr "C ANSI interdit les types `const' ou de fonctions volatiles"
+
+#~ msgid "leaving more files than we entered"
+#~ msgstr "laissant plus de fichiers que nous en avons entre"
+
+#~ msgid "universal-character-name used for '%c'"
+#~ msgstr "nom-de-caractre-universel utilis pour `%c'"
+
+#~ msgid "unknown escape sequence: '\\' followed by char 0x%x"
+#~ msgstr "squence d'chappement inconnue: '\\' suivi du caractre 0x%x"
+
+#~ msgid "wrong type argument to %s"
+#~ msgstr "type d'argument erron pour %s"
+
+#~ msgid "deprecated initialization of zero-length array"
+#~ msgstr "initialisation obsolte d'un tableau de taille zro"
+
+#~ msgid "initialization of zero-length array before end of structure"
+#~ msgstr "initialisation d'un tableau de taille zro avant la fin de la structure"
+
+#~ msgid "initialization of zero-length array inside a nested context"
+#~ msgstr "initialisation d'un tableau de taille zro l'intrieur d'un contexte imbriqu"
+
+#~ msgid "Unable to find a temporary location for static chain register"
+#~ msgstr "Incapable de trouver une location temporaire pour un registre chan statique"
+
+#~ msgid "Internal gcc abort from %s:%d"
+#~ msgstr "Abandon interne gcc partir de %s:%d"
+
+#~ msgid "The local variable `insn' has the value:"
+#~ msgstr "La variable locale `insn' a la valeur:"
+
+#~ msgid "Register '%c' already specified in allocation order"
+#~ msgstr "Registre '%c' est dj spcifi dans l'ordre d'allocation"
+
+#~ msgid "Same as -mcpu=i386"
+#~ msgstr "Identique -mcpu=i386"
+
+#~ msgid "Same as -mcpu=i486"
+#~ msgstr "Identique -mcpu=i486"
+
+#~ msgid "Same as -mcpu=pentium"
+#~ msgstr "Identique -mcpu=pentium"
+
+#~ msgid "Same as -mcpu=pentiumpro"
+#~ msgstr "Identique -mcpu=pentiumpro"
+
+#~ msgid "Emit Intel syntax assembler opcodes"
+#~ msgstr "Produire les code-op pour la syntaxe d'assembleur Intel"
+
+#~ msgid "Control allocation order of integer registers"
+#~ msgstr "Contrle l'ordre d'allocation des registres entier"
+
+#~ msgid "The -mabi=32 support does not work yet."
+#~ msgstr "L'option -mabi=32 n'est pas fonctionnelle encore."
+
+#~ msgid "-mcpu=%s does not support -mips%d"
+#~ msgstr "-mcpu=%s ne supporte par -mips%d"
+
+#~ msgid "Use FUNCTION_EPILOGUE"
+#~ msgstr "Utiliser FUNCTION_EPILOGUE"
+
+#~ msgid "Do not use FUNCTION_EPILOGUE"
+#~ msgstr "Ne pas utiliser FUNCTION_EPILOGUE"
+
+#~ msgid "object size exceeds built-in limit for virtual function table implementation"
+#~ msgstr "taille des objets excde les limites internes pour la table implante de fonctions virtuelles"
+
+#~ msgid "object size exceeds normal limit for virtual function table implementation, recompile all source and use -fhuge-objects"
+#~ msgstr "taille des objets excde la limite normale pour la table implante de foncions virtuelles, recompiler tous les sources et utiliser -fhuge-objects"
+
+#~ msgid "the ABI requires vtable thunks"
+#~ msgstr "l'ABI requiert vtable thunks"
+
+#~ msgid "`__alignof__' applied to a bit-field"
+#~ msgstr "`__alignof__' appliqu un champ de bits"
+
+#~ msgid "Do not treat the namespace `std' as a normal namespace"
+#~ msgstr "Ne pas traiter l'espace nom `std' comme un espace nom normal"
+
+#~ msgid "taking dynamic typeid of object with -fno-rtti"
+#~ msgstr "prendre le typeid dynamique d'objet avec -fno-rtti"
+
+#~ msgid "recoverable compiler error, fixups for virtual function"
+#~ msgstr "erreur de recouvrement du compilateur, correctifs pour les fonctions virtuelles"
+
+#~ msgid "`com_interface' only supported with -fvtable-thunks"
+#~ msgstr "`com_interface' support seulement avec -fvtable-thunks"
+
+#~ msgid "\"defined\" operator appears during macro expansion"
+#~ msgstr "oprateur \"defined\" apparat durant l'expansion de macro"
+
+#~ msgid "-include and -imacros cannot be used with -fpreprocessed"
+#~ msgstr "-include et -imacros ne peuvent tre utiliss avec -fpreprocessed"
+
+#~ msgid "buffers still stacked in cpp_finish"
+#~ msgstr "tampons toujours empils dans cpp_finish"
+
+#~ msgid "# followed by integer"
+#~ msgstr "# suivi d'un entier"
+
+#~ msgid "attempt to push file buffer with contexts stacked"
+#~ msgstr "tentative d'empilage du tampon fichier dans un contexte de pile"
+
+#~ msgid "file \"%s\" left but not entered"
+#~ msgstr "fichier \"%s\" a t laiss mais n'a pas t entr"
+
+#~ msgid "expected to return to file \"%s\""
+#~ msgstr "attendait retourner au fichier \"%s\""
+
+#~ msgid "header flags for \"%s\" have changed"
+#~ msgstr "fanion d'en-tte de \"%s\" a chang"
+
+#~ msgid "file \"%s\" entered but not left"
+#~ msgstr "fichier \"%s\" entre mais non laiss"
+
+#~ msgid "NOTE_INSN_BASIC_BLOCK is missing for block %d\n"
+#~ msgstr "NOTE_INSN_BASIC_BLOCK est manquant por le bloc %d\n"
+
+#~ msgid "gcov [-b] [-v] [-n] [-l] [-f] [-o OBJDIR] file\n"
+#~ msgstr "gcov [-b] [-v] [-n] [-l] [-f] [-o RP_OBJ] fichier\n"
+
+#~ msgid "Premature end of input file %s"
+#~ msgstr "Fin prmatur du fichier d'entre %s"
+
+#~ msgid "Make is_compiled_class return 1"
+#~ msgstr "Faire que is_compiled_class retourne 1"
+
+#~ msgid "Dump class files to <name>.class"
+#~ msgstr "Vidanger les fichiers de classs dans <nom>.class"
+
+#~ msgid "input file is list of file names to compile"
+#~ msgstr "fichier d'entre est list dans les noms de fichiers compiler"
+
+#~ msgid "Generate code for Boehm GC"
+#~ msgstr "Gnrer le code pour Boehm GC"
+
+#~ msgid "Don't put synchronization structure in each object"
+#~ msgstr "Ne pas insrer de structure de synchronisation dans cahque objet"
+
+#~ msgid "Arc profiling: some edge counts were bad."
+#~ msgstr "profilage Arc: quelques compteurs de bordures taient errones."
+
+#~ msgid "`asm' cannot be used in function where memory usage is checked"
+#~ msgstr "`asm' ne peut tre utilis dans une fonction o l'usage de la mmoire est vrifi"
+
+#~ msgid "`asm' cannot be used with `-fcheck-memory-usage'"
+#~ msgstr "`asm' ne peut tre utilis `-fcheck-memory-usage'"
+
+#~ msgid "output operand constraint %d contains `+'"
+#~ msgstr "contrainte de sortie de l'oprande %d contient `+'"
+
+#~ msgid "\"%s\" and \"%s\" identical in first %d characters"
+#~ msgstr "\"%s\" et \"%s\" identique pour les premiers %d caractres"
+
+#~ msgid "Improve FP speed by violating ANSI & IEEE rules"
+#~ msgstr "Amliorer la vitesse FP en violant les rgles ANSI & IEEE"
+
+#~ msgid "Generate code to check every memory access"
+#~ msgstr "Gnrer du code pour vrifier chaque accs mmoire"
+
+#~ msgid "Add a prefix to all function names"
+#~ msgstr "Ajouter un prfixe tous les noms de fonctions"
+
+#~ msgid "Errors detected in input file (your bison.simple is out of date)\n"
+#~ msgstr "Erreurs dtectes dans le fichier d'entre (votre bison.simple est prim)\n"
+
+#~ msgid " -Wid-clash-<num> Warn if 2 identifiers have the same first <num> chars\n"
+#~ msgstr " -Wid-clash-<nombre> avertir si 2 identificateurs one les mmes premiers <nombre> de caractres\n"
+
+#~ msgid "Unrecognized option `%s'"
+#~ msgstr "Option non reconnue `%s'"
+
+#~ msgid "`-a' option (basic block profile) not supported"
+#~ msgstr "`-a' option (profile de blocs de base) non support"
+
+#~ msgid "`-ax' option (jump profiling) not supported"
+#~ msgstr "`-ax' option (profilage des sauts) non support"
+
+#~ msgid "`-ax' and `-a' are conflicting options. `-a' ignored."
+#~ msgstr "`-ax' et `-a' sont des options conflictuelles. `-a' ignor."
+
+#~ msgid "Data size %ld.\n"
+#~ msgstr "Taille des donnes %ld.\n"
+
+#~ msgid "Copyright (C) 2001 Free Software Foundation, Inc.\n"
+#~ msgstr "Copyright 2001 Free Software Foundation, Inc.\n"
+
+#~ msgid "Name `%s' contains quotes"
+#~ msgstr "Nom %s contient des guillemets"
+
+#~ msgid "invalid string `%s' in define_query_cpu_unit"
+#~ msgstr "chane invalide %s dans define_query_cpu_unit"
+
+#~ msgid "invalid first string `%s' in presence_set"
+#~ msgstr "premire chane invalide %s dans presence_set"
+
+#~ msgid "invalid first string `%s' in absence_set"
+#~ msgstr "premire chane invalide %s dans absence_set"
+
+#~ msgid "invalid second string `%s' in absence_set"
+#~ msgstr "seconde chane invalide %s dans absence_set"
+
+#~ msgid "invalid string `%s' in define_automaton"
+#~ msgstr "chane invalide %s dans define_automaton"
+
+#~ msgid "garbage after ) in reservation `%s'"
+#~ msgstr "rebut aprs ) dans la rservation %s "
+
+#~ msgid "repetition `%s' <= 1 in reservation `%s'"
+#~ msgstr "rptition %s <= 1 dans la rservation %s "
+
+#~ msgid "`%s' in exclusion is not unit"
+#~ msgstr " %s dans l'exclusion n'est pas une unit"
+
+#~ msgid "units `%s' and `%s' in exclusion set belong to different automata"
+#~ msgstr "units %s et %s dans l'ensemble d'exclusions appartient un automate diffrent"
+
+#~ msgid "unit `%s' excludes and requires presence of `%s'"
+#~ msgstr "unit %s exclue et requiert la prsence de %s "
+
+#~ msgid "unit `%s' requires absence and presence of `%s'"
+#~ msgstr "unit %s exclue et requiert l'absence ou la prsence de %s "
+
+#~ msgid "define_insn_reservation `%s' has negative latency time"
+#~ msgstr "define_insn_reservation %s a un temps de latence ngatif"
+
+#~ msgid "define_bypass `%s - %s' has negative latency time"
+#~ msgstr "define_bypass %s - %s a un temps de latence ngatif"
+
+#~ msgid "define_unit `%s' without automaton when one defined"
+#~ msgstr "define_unit %s sans automate alors qu'il y en a un dfini"
+
+#~ msgid "Units `%s' and `%s' should be in the same automaton"
+#~ msgstr "Units %s et %s devraient tre dans le mme automate"
+
+#~ msgid "Automaton `%s': Insn `%s' will never be issued"
+#~ msgstr "Automate %s : Insn %s ne sera jamais mis"
+
+#~ msgid "Insn `%s' will never be issued"
+#~ msgstr "Insn %s ne sera jamais mis"
+
+#~ msgid "Profile does not match flowgraph of function %s (out of date?)"
+#~ msgstr "Profil ne concorde pas le graphe de flux de la fonction %s (prim?)"
+
+#~ msgid "The slope of the linear function throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter"
+#~ msgstr "La pente de la fonction linaire d'trnaglement d'enlignage aprs avoir atteint rcursivement la limite d'enlignage rcursif est obtenue par la valeur ngative rciproque de ce paramtre"
+
+#~ msgid "push %s level %p line %d\n"
+#~ msgstr "empiler %s niveau %p ligne %d\n"
+
+#~ msgid "pop %s level %p line %d\n"
+#~ msgstr "dpiler %s niveau %p ligne %d\n"
+
+#~ msgid "suspend %s level %p line %d\n"
+#~ msgstr "suspendre %s niveau %p ligne %d\n"
+
+#~ msgid "resume %s level %p line %d\n"
+#~ msgstr "complter %s niveau %p ligne %d\n"
+
+#~ msgid "\\x%x"
+#~ msgstr "\\x%x"
+
+#~ msgid "invalid use of template `%D'"
+#~ msgstr "utilisation invalide du canevas %D "
+
+#~ msgid "qualified name does not name a class"
+#~ msgstr "nom qualifi ne nomme pas une classe"
+
+#~ msgid "assignment to non-static member `%D' of enclosing class `%T'"
+#~ msgstr "affectation un membre non statique %D de la classe %T entoure"
+
+#~ msgid "ISO C++ does not permit named return values"
+#~ msgstr "ISO C++ ne permet pas les valeurs retournes nommes"
+
+#~ msgid "exception handler inside code that is being protected"
+#~ msgstr "traitement d'exception l'intrieur du code qui est protg"
+
+#~ msgid "(debug) trace parsing process"
+#~ msgstr "(dbug) tracer le traitement de l'analyse"
+
+#~ msgid "(debug) trace lexical analysis"
+#~ msgstr "(dbug) trace l'analyse lexicale"
diff --git a/gcc-4.9/libcpp/po/id.po b/gcc-4.9/libcpp/po/id.po
new file mode 100644
index 000000000..fd88768e7
--- /dev/null
+++ b/gcc-4.9/libcpp/po/id.po
@@ -0,0 +1,981 @@
+# Pesan bahasa indonesia untuk cpplib
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.5-b20100204\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2010-02-05 19:00+0700\n"
+"Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
+"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
+"Language: id\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "konversi dari %s ke %s tidak didukung oleh iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "buka_iconv"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "tidak ada implementasi iconv, tidak dapat mengubah dari %s ke %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "karakter 0x%lx tidak dalam sumber dasar set karaketer\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "mengubah ke eksekusi set karakter"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "karakter 0x%lx bukan unibyte dalam eksekusi set karakter"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "nama karakter universal hanya valid dalam C++ dan C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "arti dari '\\%c' berbeda dalam tradisional C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Dalam _cpp_valid_ucn tetapi bukan sebuah UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nama karakter universal %.*s tidak lengkap"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s bukan sebuah karakter universal yang valid"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "'$' dalam identifier atau angka"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "karakter universal %.*s tidak valid dalam sebuah pengidentifikasi"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "karakter universal %.*s tidak valid di awal dari sebuah pengidentifikasi"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "mengubah UCN ke set karakter asal"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "mengubah UCN ke set karakter eksekusi"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "arti dari '\\x' berbeda dalam tradisional C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x digunakan dengan tidak mengikuti hex digits"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "hex escape sequence diluar dari jangkauan"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "oktal escape sequence diluar dari jangkauan"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "arti dari '\\a' berbeda dalam tradisional C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "bukan ISO standar escape sequence, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "escape sequence: '\\%c' tidak diketahui"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "escape sequence: '\\%s' tidak diketahui"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "mengubah escape sequence ke set karakter eksekusi"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "konstanta karakter terlalu panjang untuk tipenya"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "konstanta karakter multi-karakter"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "konstanta karakter kosong"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "gagal untuk mengubah %s ke %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "ekstra token di akhir dari #%s direktif"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s adalah sebuah ekstensi GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s adalah sebuah ekstensi GCC yang sudah ditinggalkan"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "disarankan tidak menggunakan #elif dalam tradisional C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "tradisional C mengabaikan #%s dengan # terindentasi"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "disarankan menyembunyikan #%s dari tradisional C dengan sebuah indentasi #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "embedding sebuah direktif didalam argumen makro yang bukan portabel"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "gaya dari baris direktif bukan sebuah ekstensi GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "preprosesing direktif #%s tidak valid"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" tidak dapat digunakan sebagai sebuah nama makro"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" tidak dapat digunakan sebagai sebuah nama makro karena ini adalah sebuah operator dalam C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "tidak ada nama makro yang diberikan dalam direktif #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "nama makro harus berupa pengidentifikasi"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "tidak terdefinisi \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "hilang karakter pengakhir >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s diduga \"NAMA BERKAS\" atau <NAMA BERKAS>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nama berkas kosong dalam #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include nested terlalu dalam"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next dalam berkas kode program utama"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "tanda \"%s\" tidak valid dalam baris direktif"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "tidak terduga akhir dari berkas setelah #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" setelah #line bukan sebuah integer positif"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "nomor baris diluar dari jangkauan"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" bukan sebuah nama berkas yang valid"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" setelah # bukan sebuah integer positif"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "direktif #%s tidak valid"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "mendaftarkan pragma dalam ruang-nama \"%s\" dengan ekspansi nama yang tidak cocok"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "mendaftarkan pragma \"%s\" dengan ekspansi nama dan tidak ada ruang-nama"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "mendaftarkan \"%s\" sebagai baik sebuah pragma dan sebuah ruang-nama"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s telah terdaftar"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s telah terdaftar"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "mendaftarkan pragma dengan penanganan KOSONG"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma sekali dalam berkas utama"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "#pragma push_macro direktif tidak valid"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "#pragma pop_macro direktif tidak valid"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "#pragma GCC tidak valid merusak direktif"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "merusak makro \"%s\" yang sudah ada"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header diabaikan diluar berkas include"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "tidak dapat menemukan berkas sumber %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "berkas ini lebih lama daripada %s"
+
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "#pragma GCC tidak valid merusak direktif"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma mengambil sebuah string literal tanda kurung"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else tanpa #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else setelah #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "kondisional berawal disini"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif tanpa #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif setelah #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif tanpa #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "hilang '(' setelah predikat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "hilang ')' untuk melengkapi jawaban"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "jawaban predikat kosong"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "assertion tanpa predikat"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predikat harus berupa sebuah pengidentifikasi"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" re-asserted"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "tidak terakhiri #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "komentar tidak terakhiri"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "konstanta titik-tetap adalah sebuah ekstensi GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "awalan \"0b\" tidak valid untuk konstanta pecahan"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "penggunaan dari konstanta pecahan heksa desimal C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "akhiran \"%.*s\" tidak valid dalam konstanta pecahan"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "dalam tradisi C menolak akhiran \"%.*s\""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "akhiran untuk konstanta ganda adalah sebuah ekstensi GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "akhiran \"%.*s\" tidak valid dengan konstanta pecahan heksa desimal"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "konstanta pecahan desimal adalah sebuah ekstensi GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "akhiran \"%.*s\" tidak valid dalam konstanta integer"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "penggunaan dari konstanta integer long long C++0x"
+
+#: expr.c:668
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C99 long long integer constant"
+msgstr "penggunaan dari konstanta integer long long C++0x"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "konstanta imaginari adalah sebuah ekstensi GCC"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "konstanta binari adalah sebuah ekstensi GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "konstanta integer terlalu besar untuk tipenya"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "konstanta integer terlalu besar yang itu unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "hilang ')' setelah \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "operator \"defined\" membutuhkan sebuah pengidentifikasi"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" adalah sebuah tanda alternatif untuk \"%s\" dalam C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "penggunaan ini dari \"defined\" mungkin tidak portabel"
+
+#: expr.c:998
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "integer overflow dalam ekspresi preprosesor"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "konstanta pecahan dalam ekspresi preprosesor"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "angka imaginari dalam ekspresi preprosesor"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" tidak didefinisikan"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "assertions adalah sebuah ekstensi GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "assertions adalah sebuah ekstensi yang sudah ditinggalkan"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "stack dalam %s tidak seimbang"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operator '%u' tidak mungkin"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "hilang ')' dalam ekspresi"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' tanpa diikuti ':'"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "integer overflow dalam ekspresi preprosesor"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "hilang '(' dalam ekspresi"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "operan kiri dari \"%s\" berubah tanda ketika dipromosikan"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "operan kanan dari \"%s\" berubah tanda ketika dipromosikan"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "tradisional C menolak operator unary plus"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "operator koma dalam operator dari #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "pembagian oleh nol dalam #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "direktori KOSONG dalam find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "satu atau lebih berkas PCH telah ditemukan, tetapi mereka tidak valid"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "gunakan -Winvalid-pch untuk informasi lebih lanjut"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s adalah sebuah perangkat blok"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s terlalu besar"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s lebih pendek dari yang diduga"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "tidak ada jalur include yang biasa digunakan untuk pencarian untuk %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Multiple include guards mungkin berguna untuk:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t harus berupa sebuah tipe unsigned"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "aritmetik preprosesor memiliki presisi maksimal dari %lu bits; target membutuhkan%lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "aritmetik CPP harus paling tidak sama tepatnya dengan sebuah target int"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "target char lebih kecil dari 8 bits wide"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "target wchar_t lebih kecil dari target char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "target int lebih kecil dari target char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP integer-setengah lebih kecil dari karakter CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP di host ini tidak dapat menangani konstanta karakter lebar diatas %lu bits, tetapi target membutuhkan %lu bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "backslash dan baris baru dipisahkan dengan spasi"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "backslash baris baru diakhir dari berkas"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c diubah ke %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c diabaikan, gunakan -trigraph untuk mengaktifkan"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" di dalam komentar"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s dalam direktif preprosesing"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "karakter kosong diabaikan"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' tidak dalam NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' tidak dalam NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "mencoba untuk menggunakan terusak \"%s\""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ hanya dapat muncul dalam ekspansi dari sebuah variadik makro C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "pengidentifikasi \"%s\" adalah nama operator spesial dalam C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "pembatas mentah string lebih panjang dari 16 karakter"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "karakter '%c' tidak valid dalam pembatas mentah string"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "karakter '%c' tidak valid dalam pembatas mentah string"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "tidak terselesaikan raw string"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "karakter kosong dijaga dalam literal"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "hilang karakter pengakhir %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "komentar gaya C++ tidak diijinkan dalam ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(ini hanya akan dilaporkan sekali setiap berkas masukan)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "komentar multi baris"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "tanda %s tidak dapat disebutkan"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makro \"%s\" tidak digunakan"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "makro bawaan \"%s\" tidak valid"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "tidak dapat menentukan berkas timestamp"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "tidak dapat menentukan tanggal dan waktu"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ diekspans didalam direktif dengan -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "string literal tidak valid, mengabaikan final '\\'"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "pasting \"%s\" dan \"%s\" tidak memberikan sebuah tanda preprosesing valid"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 membutuhkan argumen rest untuk digunakan"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makro \"%s\" membutuhkan %u argumen, tetapi hanya %u diberikan"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makro \"%s\" melewatkan %u argumen, tetapi hanya mengambil %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "daftar argumen tidak terselesaikan memanggil makro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "makro \"%s\" seperti fungsi harus digunakan dengan argumen dalam tradisional C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "memanggil makro %s argumen %d: argumen makro kosong tidak didefinisikan dalam ISO C90 dan ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "duplikasi parameter makro \"%s\""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" mungkin tidak muncul dalam daftar parameter makro"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "parameter makro yang berupa koma dipisahkan"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "nama parameter hilang"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonymous variadik makro diperkenalkan dalam C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tidak mengijinkan makro variadik bernama"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "hilang ')' dalam daftar parameter makro"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' tidak dapat muncul baik diakhir dari sebuah ekspansi makro"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 membutuhkan whitespace setelah nama makro"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "kurang spasi setelah nama makro"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' tidak diikuti dengan sebuah parameter makro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" redefinisi"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "ini adalah lokasi dari definisi sebelumnya"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "argumen makro \"%s\" akan stringified dalam tradisional C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipe hash %d tidak valid dalam cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "ketika menulis precompiled header"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: tidak digunakan karena `%.*s' teracuni"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: tidak digunakan karena `%.*s' tidak didefinisikan"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: tidak digunakan karena `%.*s' didefinisikan sebagai `%s' bukan `%.*s'"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: tidak digunakan karena `%s' didefinisikan"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: tidak digunakan karena `__COUNTER__' tidak valid"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "ketika membaca precompiled header"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "terdeteksi rekursi ketika mengekspan makro \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "sintaks erro dalam daftar parameter makro"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Karakter %x mungkin bukan NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "terlalu banyak titik desimal dalam angka"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "angka \"%c\" tidak valid dalam konstanta binari"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "angka \"%c\" tidak valid dalam konstanta oktal"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "tidak ada angka dalam konstanta pecahan heksa desimal"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "eksponen tidak memiliki digits"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "konstanta pecahan heksa desimal membutuhkan sebuah eksponen"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "hilang operator binari sebelum tanda \"%s\""
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "tanda \"%s\" bukan sebuah ekspresi preprosesor yang valid"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "hilang ekspresi diantara '(' dan ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s dengan tanpa ekspresi"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "operator '%s' tidak memiliki operan kanan"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operator '%s' tidak memiliki operan kiri"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' tanpa awalan '?'"
+
+#~ msgid "warning: "
+#~ msgstr "peringatan: "
+
+#~ msgid "internal error: "
+#~ msgstr "internal error: "
+
+#~ msgid "error: "
+#~ msgstr "error: "
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "Dalam berkas dimasukan dari %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " dari %s:%u"
diff --git a/gcc-4.9/libcpp/po/ja.po b/gcc-4.9/libcpp/po/ja.po
new file mode 100644
index 000000000..cb2c95e1c
--- /dev/null
+++ b/gcc-4.9/libcpp/po/ja.po
@@ -0,0 +1,964 @@
+# Japanese messages for GNU gcc cpplib
+# Copyright (C) 2001, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001
+# Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 1999.
+# IIDA Yosiaki <iida@secom.ne.jp>, 1999.
+# Yasuaki Taniguchi <yasuakit@gmail.com>, 2010, 2011.
+# Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>, 2012, 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.8-b20130224\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2013-03-04 18:01+0900\n"
+"Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "%s から %s への変換は iconv によってサポートされていません"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "iconv 実装がありません。 %s から %s へ変換できません"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "文字 0x%lx は基本ソース文字集合内にありません\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "実行時文字集合を変換しています"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "文字 0x%lx は実行時文字集合では単一バイトではありません"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "ユニバーサル文字名は C++ および C99 内でのみ有効です"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "'\\%c' の意味は古い (traditional) C では異なります"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "_cpp_valid_ucn の中ですが UCN ではありません"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "互換性のないユニバーサル文字名 %.*s です"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s は有効なユニバーサル文字ではありません"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "識別子または数字の中に '$' があります"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "ユニバーサル文字 %.*s は識別の中では有効ではありません"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "ユニバーサル文字 %.*s は識別子の最初の文字として有効ではありません"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "UCN をソースの文字集合に変換しています"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "UCN を実行時文字集合に変換しています"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x' の意味は古い (traditional) C では異なります"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x が使用されましたが、それに続く十六進数がありません"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "十六進エスケープシーケンスが範囲外です"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "八進エスケープシーケンスが範囲外です"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "'\\a' の意味は古い (traditional) C では異なります"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "非 ISO 標準のエスケープシーケンス, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "不明なエスケープシーケンス: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "不明なエスケープシーケンス: '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "エスケープシーケンスを実行時文字集合に変換しています"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "文字定数が型に対して長すぎます"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "複数文字からなる文字定数"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "空の文字定数"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "%s から %s への変換に失敗しました"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "余分なトークンが #%s 指示の後にあります"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s は GCC 拡張です"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s は廃止された GCC 拡張です"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "古い (traditional) C では #elif を使用しないことを推奨します"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "古い (traditional) C では # がインデントされていると #%s を無視します"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "インデントさた # がある古い (traditional) C では #%s を隠すことを推奨します"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "マクロの引数への指示の埋め込みは移植性がありません"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "行スタイル指示は GCC 拡張です"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "無効な前処理指示 #%s です"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" はマクロ名として使用できません"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" は C++ の演算子のためマクロ名として使用できません"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指示の中でマクロ名が与えられていません"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "マクロ名は識別子でなくてはいけません"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "\"%s\" を未定義状態にしています"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "終端する > 文字がありません"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s は \"FILENAME\" または <FILENAME> が必要です"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 内のファイル名が空です"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include の入れ子が深すぎます"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next が主のソースファイルにあります"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "\"%s\" は line 指示では無効なフラグです"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "#line 後に予期しないファイル終端 (EOF) です"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line の後にある \"%s\" が正の整数ではありません"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "行番号が範囲外です"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" は有効なファイル名ではありません"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# の後にある \"%s\" が正の整数ではありません"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "無効な #%s 指示です"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "名前空間 \"%s\" 内に pragma を一致しない名前展開で登録しています"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "pragma \"%s\" を名前展開有りおよび名前空間無しで登録しています"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "\"%s\" を pragma および pragma 名前空間の両方として登録しています"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s は既に登録されています"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s は既に登録されています"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "NULL ハンドラで pragma を登録しています"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once がメインファイルにあります"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "無効な #pragma push_macro 指示です"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "無効な #pragma pop_macro 指示です"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "#pragma GCC 汚染ディレクティヴが無効です"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "既存のマクロ \"%s' を汚染します"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "include ファイル外の #pragma system_header は無視されました"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "ソースファイル %s が見つかりません"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "現在のファイルは %s より古いです"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "#pragma GCC %s ディレクティヴが無効です"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pramga が括弧で囲まれた文字列リテラルを受け取りました"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else に #if がありません"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else が #else の後ろにあります"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "その条件はここから始まります"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif に #if がありません"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif が #else の後ろにあります"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif に #if がありません"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "述語の後ろの '(' を欠いています"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "解を補完する ')' を欠いています"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "述語の解が空です"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "述語のないアサーションです"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "述語は識別子でなければなりません"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" が再アサートされました"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "終端のない #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "終端されていないコメント"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "標準出力"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "固定小数点定数は GCC 拡張です"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "浮動小数定数に対する無効な接頭辞 \"0b\" です"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99 十六進浮動小数定数を使用しています"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮動小数定数に無効な接尾辞 \"%.*s\" があります"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "古い (traditional) C では \"%.*s\" 接尾辞は拒否されます"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "倍精度定数の接尾辞は GCC 拡張です"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "十六進浮動小数定数に無効な接尾辞 \"%.*s\" があります"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "十進浮動小数定数は GCC 拡張です"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整数定数に無効な接尾辞 \"%.*s\" があります"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "C++0x の long long 整数定数を使用しています"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "C99 の long long 整数定数を使用しています"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "虚数定数は GCC 拡張です"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "二進定数は GCC 拡張です"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "整数定数が型に対して大きすぎます"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "整数定数が大きすぎるので unsigned になりました"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "\"defined\" の後ろの ')' がありません"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "\"defined\" 演算子は識別子を要求します"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(C++ では \"%s\" が \"%s\" の代替トークンです)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "この \"defined\" の使用法は移植性がありません"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "前処理式内のユーザ定義リテラル"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "前処理式の中に浮動小数定数があります"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "前処理式の中に虚数があります"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" は定義されていません"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "アサーションは GCC 拡張です"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "アサーションは廃止された拡張です"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s 内に釣り合いがとれていないスタックがあります"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "不可能な演算子 '%u' です"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "式の中に ')' がありません"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "後に ':' が続いていない '?' です"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "整数が前処理式内で溢れました"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "式内に '(' がありません"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\" の左側の被演算子は実行時に符号を変更します"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\" の右側の演算子は実行時に符号を変更します"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "古い (traditional) C では単項プラス演算子は拒否されます"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "カンマ演算子が #if の被演算子内にあります"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "#if 内でゼロによる除算が行われました"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "find_file 内に NULL ディレクトリがあります"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "一個以上の PCH ファイルが見つかりましたが、それらは無効です"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "詳細な情報に関しては -Winvalid-pch を使用してください"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s はブロックデバイスです"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s は大きすぎます"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s が本来よりも短いです"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "%s を探索するためのインクルードパスがありません"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "多重 include からの保護が有益となるでしょう:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t は符号無し型でなければいけません"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "前処理の数値演算の最大精度は %lu ビットですが、ターゲットは %lu ビットを要求しています"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 数値演算はターゲットの int 以上の精度がなければいけません"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "ターゲットの char が 8 ビットより小さいです"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "ターゲットの wchar_t がターゲットの char より小さいです"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "ターゲットの int がターゲットの char より小さいです"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP ハーフ整数は CPP character より小さいです"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "このホストでの CPP は %lu ビット以上のワイド文字定数を扱えませんが、ターゲットは %lu ビットを要求しています"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "バックスラッシュと改行が空白で分割されました"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "ファイルの終りにバックスラッシュ-改行があります"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "トライグラフ ??%c は %c に変換されました"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "トライグラフ ??%c は無視されました。有効にするには -trigraphs を使用してください"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "コメント内に \"/*\" があります"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "前処理指示中に %s があります"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "null 文字は無視されました"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' は NFKC ではありません"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' は NFC ではありません"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "汚染された '%s' 使おうとしています"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ は C99 可変引数マクロ拡張でのみ出現できます"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "識別子 \"%s\" は C++ の特別な演算子名です"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "生の文字列区切りが 16 文字より大きいです"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "生の文字列区切り内に無効な文字 '%c' があります"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "生の文字列区切り内に無効な文字 '%c' があります"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "終端されていない生の文字列です"
+
+#: lex.c:1654 lex.c:1783
+#, fuzzy
+#| msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "リテラルの接尾辞が無効です。C++11 では、リテラルと識別子の間にスペースを入れる必要があります。"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "リテラル中で null 文字が確保されました"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "%c 文字での終端を欠いています"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ スタイルのコメントは ISO C90 では許可されていません"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(これは入力ファイルにつき一回だけ報告されます)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "複数行のコメント"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "綴ることができないトークン %s です"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "マクロ \"%s\" は使用されません"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "無効な組み込みマクロ \"%s\" です"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "ファイルのタイムスタンプを決定できません"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "日付と時間を決定できません"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ が -fdirectives-only がある指示内で展開されました"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "文字列リテラルが無効です、最後の '\\' を無視します"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "\"%s\" と \"%s\" を貼付けましたが正常な前処理トークンとなりません"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 は使用されるべき残りのの引数を要求します"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "マクロ \"%s\" は引数を %u 要求しますが、%u 個しか与えられていません"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "マクロ \"%s\" に引数が %u 渡されましたが、%u しか受け取りません"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "終端されていない引数リストがマクロ \"%s\" を起動しようとしました"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "古い C では、関数型マクロ \"%s\" に引数が与えられねばなりません"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "マクロ %s を引数 %d で起動しました。空のマクロ引数は ISO C90 および ISO C++98 内では定義されていません"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "マクロ仮引数 \"%s\" が重複しています"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" はマクロ仮引数リストに現れてはなりません"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "マクロ仮引数はカンマ区切りされなければなりません"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "仮引数名を欠いています"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "無名可変引数マクロは C99 で導入されました"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C では名前つき可変引数マクロを許しません"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "マクロ仮引数リストに ')' がありません"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' はマクロ展開の両端には出現できません"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 ではマクロ名の後に空白が必要です"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "マクロ名の後に空白がありません"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' にマクロ仮引数名が続いていません"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" が再定義されました"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "ここが以前の宣言がある位置です"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "マクロ引数 \"%s\" は古い (traditional) C では文字列化されます"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 内に無効なハッシュ型 %d があります"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "プリコンパイルヘッダ書き込み中"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: `%.*s' は汚染されているため使用できません"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: `%.*s' は定義されていないため使用できません"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: `%.*s' が `%s' として定義されていて、 `%.*s' ではないため使用できません"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: `%s' が定義されているため使用できません"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: `__COUNTER__' が無効なため使用できません"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "プリコンパイルヘッダを読み込み中"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "マクロ \"%s\" を展開中に再帰が検出されました"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "マクロ仮引数リストに構文エラーがあります"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "文字 %x は NFKC では無いようです"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "数字の中に小数点が多すぎます"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "二進定数内に無効な数字 \"%c\" があります"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "八進定数内に無効な数字 \"%c\" があります"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "十六進浮動小数定数内に数字がありません"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "べき乗の数字がありません"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "十六進浮動小数定数にはべき乗が必要です"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "トークン \"%s\" の前に二項演算子がありません"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "トークン \"%s\" は有効な前処理式ではありません"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "'(' と ')' の間に式がありません"
+
+#~ msgid "%s with no expression"
+#~ msgstr "式が無い %s です"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "演算子 '%s' に右側被演算子がありません"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "演算子 '%s' に左側被演算子がありません"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr "前に '?' が無い ':' です"
diff --git a/gcc-4.9/libcpp/po/nl.po b/gcc-4.9/libcpp/po/nl.po
new file mode 100644
index 000000000..130a4d1d5
--- /dev/null
+++ b/gcc-4.9/libcpp/po/nl.po
@@ -0,0 +1,978 @@
+# Dutch translations for GNU cpplib.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+#
+# Tim Van Holder <tim.van.holder@telenet.be>, 2008, 2009, 2010.
+# Benno Schulenberg <benno@vertaalt.nl>, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-03 12:18+0100\n"
+"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv ondersteunt geen omzetting van %s naar %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "geen implementatie van iconv beschikbaar; kan niet omzetten van %s naar %s"
+
+# of "tekenset" aangezien character door "teken" vertaald wordt?
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "teken 0x%lx zit niet in de basis brontekenset\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "omzetting naar uitvoeringstekenset"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "teken 0x%lx is niet enkelbyte in de uitvoeringstekenset"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universele tekennamen zijn alleen geldig in C++ en C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "de betekenis van '\\%c' is anders in traditioneel C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "In '_cpp_valid_ucn' maar het is geen UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "onvolledige universele tekennaam %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s is geen geldige universele tekennaam"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "'$' in naam of getal"
+
+# "identifier" is een verdomd rottig woord om te vertalen...
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universeel teken %.*s is niet geldig in een naam"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "universeel teken %.*s is niet geldig aan het begin van een naam"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "omzetting van UCN naar brontekenset"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "omzetting van UCN naar uitvoeringstekenset"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "de betekenis van '\\x' is anders in traditioneel C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x gebruikt zonder daaropvolgende hexadecimale cijfers"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "hexadecimale escape sequence buiten bereik"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "octale escape sequence buiten bereik"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "de betekenis van '\\a' is anders in traditioneel C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "escape sequence '\\%c' is niet ISO-standaard"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "onbekende escape sequence: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "onbekende escape sequence: '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "omzetting van escape sequence naar uitvoeringstekenset"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "tekenconstante is te lang voor zijn type"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "tekenconstante bevat meerdere tekens"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "lege tekenconstante"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "fout bij omzetten van %s naar %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "overbodige tokens aan einde van #%s commando"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s is een uitbreiding van GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s is een afgekeurde uitbreiding van GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "gebruik liefst geen #elif in traditioneel C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditioneel C negeert #%s wanneer het # geïndenteerd is"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "verberg #%s liefst van traditioneel C via een geïndenteerd #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "het plaatsen van een commando binnen macro-argumenten is niet overdraagbaar"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "dit soort #line commando is een uitbreiding van GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ongeldig preprocessing-commando #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" kan niet als macronaam gebruikt worden"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" kan niet als macronaam gebruikt worden omdat het een operator is in C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "geen macronaam opgegeven in #%s commando"
+
+# lap! hier heb ik het zitten... wat is verdorie een betere vertaling voor identifier?
+# Dit is wel langer maar zegt denk ik wel waar het om gaat.
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "macronamen moeten voldoen aan de regels voor namen in C/C++"
+
+# niet perfect, maar beter dan "wordt ongedefinieerd", "wordt geondefinieerd" of iets dergelijks...
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "definitie van \"%s\" wordt ongedaan gemaakt"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "afsluitend '>'-teken ontbreekt"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s verwacht \"BESTAND\" of <BESTAND>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "lege bestandsnaam in #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include is te diep genest"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next in primair bronbestand"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ongeldige vlag \"%s\" in #line commando"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "onverwacht einde van bestand na #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" (na #line) is geen positieve integer"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "regelnummer buiten bereik"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" is geen geldige bestandsnaam"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" (na #) is geen positieve integer"
+
+# Shouldn't have been marked as translatable I think
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ongeldig #%s commando"
+
+# goede vertaling voor 'mismatched'?
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "registratie van pragma's in naamsruimte \"%s\" met niet-overeenkomstige naamsexpansie"
+
+# moet namespace hier ook vertaald worden?
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registratie van pragma \"%s\" met naamsexpansie maar geen naamsruimte"
+
+# moet namespace hier ook vertaald worden?
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registratie van \"%s\" zowel als pragma en als pragma-naamsruimte"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s is reeds geregistreerd"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s is reeds geregistreerd"
+
+# betere vertaling voor 'handler'?
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "registratie van pragma met NULL als afhandelingsroutine"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once in hoofdbestand"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "ongeldig #pragma push_macro commando"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "ongeldig #pragma pop_macro commando"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "ongeldig #pragma GCC poison commando"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "bestaande macro \"%s\" wordt 'vergiftigd'"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header wordt genegeerd buiten een invoegbestand"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "kan bronbestand %s niet vinden"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "huidig bestand is ouder dan %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "ongeldig \"#pragma GCC %s\"-commando"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma verwacht als argument een stringconstante tussen haakjes"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else zonder #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else na #else"
+
+# of gewoon "de conditie"?
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "het conditionele blok begon hier"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif zonder #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif na #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif zonder #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "'(' ontbreekt na predicaat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "')' ontbreekt als afronding van het antwoord"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "antwoord van het predicaat is leeg"
+
+# dit moet beter kunnen...
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "assertie zonder predicaat"
+
+# ... dit klinkt echt niet - maar wat is hier een beter vertaling voor identifier?
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predicaat moet een naam zijn"
+
+# is "asserteren" wel een echt woord?
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" opnieuw geasserteerd"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "niet-beëindigde #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "niet-beëindigd commentaar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "standaarduitvoer"
+
+# hoort niet echt een vertaalbare string te zijn :-)
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "fixed-point constantes zijn een uitbreiding van GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ongeldige prefix \"0b\" voor floating-point constante"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "gebruik van C99 hexadecimale floating-point constante"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ongeldige suffix \"%.*s\" aan floating-point constante"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditioneel C aanvaardt de \"%.*s\" suffix niet"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "het gebruik van een suffix voor double constantes is een uitbreiding van GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ongeldige suffix \"%.*s\" bij hexadecimale floating-point constante"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "decimale floating-point constantes zijn een uitbreiding van GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ongeldige suffix \"%.*s\" aan integerconstante"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "gebruik van een C++11 long long integerconstante"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "gebruik van een C99 long long integerconstante"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginaire constantes zijn een uitbreiding van GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "binaire constantes zijn een C++1y-functie of een uitbreiding van GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "integerconstante is te groot voor zijn type"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "integerconstante is zo groot dat hij tekenloos is"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "')' ontbreekt na \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "de \"defined\" operator vereist een naam als argument"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" is een alternatieve schrijfwijze voor \"%s\" in C++)"
+
+# betere vertaling voor "portable"?
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "dit gebruik van \"define\" is mogelijk niet overdraagbaar"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "gebruikergedefinieerde constante in preprocessor-expressie"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "floating-point constante in preprocessor-expressie"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginair getal in preprocessor-expressie"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" is niet gedefinieerd"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "assertions zijn een uitbreiding van GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "assertions zijn een afgekeurde uitbreiding"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "niet-gebalanceerde stack in %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operator '%u' is onmogelijk"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "')' ontbreekt in expressie"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' zonder daaropvolgende ':'"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "integer-overflow in preprocessor-expressie"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "'(' ontbreekt in expressie"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "de linker operand van \"%s\" verandert van teken indien hij gepromoveerd wordt"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "de rechter operand van \"%s\" verandert van teken indien hij gepromoveerd wordt"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditioneel C verwerpt de unaire plus-operator"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "comma operator in operand van #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "deling door nul in '#if'"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "directory is NULL in 'find_file'"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "een of meer PCH-bestanden werden gevonden, maar ze waren ongeldig"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "gebruik -Winvalid-pch voor meer informatie"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s is een blok-apparaat"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s is te groot"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s is korter dan verwacht"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "geen invoegpad waarin naar %s gezocht kan worden"
+
+# goede vertaling voor "include guard"?
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Meerdere invoegbeschermingen zouden nuttig kunnen zijn voor:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "'cppchar_t' moet een tekenloos type zijn"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "preprocessor-rekensommen hebben een maximale precisie van %lu bits; de doelomgeving vereist %lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-rekensommen moet minstens even precies zijn als een int in de doelomgeving"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "char is minder dan 8 bits breed in de doelomgeving"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "'wchar_t' is smaller dan char in de doelomgeving"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "int is smaller dan char in de doelomgeving"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer is smaller dan een CPP char"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP kan op deze host geen brede tekenconstantes aan van meer dan %lu bits, maar de doelomgeving vereist %lu bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "backslash en newline gescheiden door spatie(s)"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "backslash-newline aan einde van bestand"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c is omgezet naar %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c is genegeerd; gebruik -trigraphs om ondersteuning in te schakelen"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" binnen commentaar"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s binnen preprocessor-commando"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "nulteken(s) worden genegeerd"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "'%.*s' zit niet in NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "'%.*s' zit niet in NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "poging tot gebruik van 'vergiftigde' \"%s\""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ mag enkel voorkomen in de expansie van een C99 variadische macro"
+
+# "identifier" is lastig te vertalen; ik neem meestal 'naam', maar hier klinkt dat niet...
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "de aanduiding \"%s\" is een speciale operatornaam in C++"
+
+# betere vertaling voor "raw string delimiter"?
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "rauwe stringscheiding is langer dan 16 tekens"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "ongeldige newline in rauwe stringscheiding"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ongeldig teken '%c' in rauwe stringscheiding"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "niet-beëindigde rauwe string"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "ongeldige suffix aan constante; C++11 vereist een spatie tussen constante en stringmacro"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "nulteken(s) in een constante worden behouden"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "afsluitend %c-teken ontbreekt"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "commentaar in C++-stijl is niet toegestaan in ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(dit wordt per invoerbestand maar één keer gemeld)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "commentaar gespreid over meerdere regels"
+
+# lijkt een vreemde boodschap...
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "kan token %s niet spellen"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "macro \"%s\" wordt nergens gebruikt"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ongeldige ingebouwde macro \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "macro \"%s\" kan reproduceerbare compilaties verhinderen"
+
+# betere vertaling voor 'timestamp'?
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "kan tijdsstempel van bestand niet achterhalen"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "kan datum en tijd niet achterhalen"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "expansie van __COUNTER__ binnenin commando terwijl -fdirectives-only opgegeven is"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ongeldige stringconstante, laatste '\\' wordt genegeerd"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "\"%s\" en \"%s\" aan elkaar plakken levert geen geldig preprocessing token op"
+
+# "rest arguments"?
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 verplicht het gebruik van restargumenten"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "macro \"%s\" vereist %u argumenten, maar er werden er slechts %u opgegeven"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "macro \"%s\" kreeg %u argumenten, maar heeft er slechts %u nodig"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "niet-beëindigde argumentenlijst bij aanroep van macro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "functie-achtige macro \"%s\" moet in traditioneel C altijd met argumenten gebruikt worden"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "aanroep van macro %s argument %d: lege macro-argumenten zijn niet gedefinieerd in ISO C90 en ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "herhaalde macro-parameter \"%s\""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" mag niet voorkomen in lijst van macro-parameters"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "macro-parameters moet door komma's gescheiden worden"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "parameternaam ontbreekt"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonieme variadische macro's werden door C99 ingevoerd"
+
+# variadic? " met variabele argumentenlijst" is nogal lang...
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C staat het gebruik benoemde variadische macro's niet toe"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "')' ontbreekt in lijst van macro-parameters"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' mag niet voorkomen aan het begin of einde van een macro-expansie"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 vereist witruimte na de macronaam"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "witruimte ontbreekt na de macronaam"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' wordt niet gevolgd door de naam van een macro-parameter"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" opnieuw gedefinieerd"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "dit is de plaats van de eerdere definitie"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "macro-argument \"%s\" zou string gemaakt worden in traditioneel C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ongeldig hash-type %d in 'cpp_macro_definition'"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "bij het schrijven van een voorgecompileerde header"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: niet gebruikt omdat \"%.*s\" vergiftigd is"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: niet gebruikt omdat \"%.*s\" niet gedefinieerd werd"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: niet gebruikt omdat \"%.*s\" als \"%s\" (en niet als \"%.*s\") gedefinieerd werd"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: niet gebruikt omdat \"%s\" gedefinieerd is"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: niet gebruikt omdat \"__COUNTER__\" ongeldig is"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "bij het lezen van een voorgecompileerde header"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "recursie gedetecteerd bij uitwerken van macro \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "syntaxfout in lijst van macro-parameters"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Teken %x is misschien niet NFKC"
+
+# betere vertaling voor decimal point?
+#~ msgid "too many decimal points in number"
+#~ msgstr "te veel komma's in getal"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "ongeldig cijfer \"%c\" in binaire constante"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "ongeldig cijfer \"%c\" in octale constante"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "geen cijfers in hexadecimale floating-point constante"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "exponent heeft geen cijfers"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "hexadecimale floating-point constante vereist een exponent"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "binaire operator ontbreekt voor het \"%s\"-token"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "token \"%s\" is niet geldig in preprocessor-expressies"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "expressie ontbreekt tussen '(' en ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s zonder expressie"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "operator '%s' heeft geen rechter operand"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "operator '%s' heeft geen linker operand"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' zonder voorafgaande '?'"
diff --git a/gcc-4.9/libcpp/po/pt_BR.po b/gcc-4.9/libcpp/po/pt_BR.po
new file mode 100644
index 000000000..135e4af92
--- /dev/null
+++ b/gcc-4.9/libcpp/po/pt_BR.po
@@ -0,0 +1,915 @@
+# Brazilian Portuguese translation for cpplib
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Rafael Ferreira <rafael.f.f1@gmail.com>, 2013, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-03 12:21-0200\n"
+"Last-Translator: Rafael Ferreira <rafael.f.f1@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.3\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "sem suporte a conversão de %s para %s por iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "nenhuma implementação iconv, não foi possível converter de %s para %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "caractere 0x%lx não está no conjunto de caracteres fonte básico\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "convertendo para conjunto de caracteres da execução"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "caractere 0x%lx não é unibyte no conjunto de caracteres de execução"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "nomes de caractere universais são válidos apenas em C++ e C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "o significado de \"\\%c\" é diferente em C tradicional"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Em _cpp_valid_ucn, mas não é um UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "nome de caractere universal incompleto %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s não é um caractere universal válido"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "\"$\" em identificador ou número"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "caractere universal %.*s não é válido em um identificador"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "caractere universal %.*s não é válido no começo de um identificador"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "convertendo UCN para conjunto de caracteres fonte"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "convertendo UCN para conjunto de caracteres de execução"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "o significado de \"\\x\" é diferente em C tradicional"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x usado com nenhum dígito hexa"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "sequência de escape hexa fora de alcance"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "sequência de escape octal fora de alcance"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "o significado de \"\\a\" é diferente em C tradicional"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "sequência de escape não padrão ISO, \"\\%c\""
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "sequência de escape desconhecida: \"\\%c\""
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "sequência de escape desconhecida: \"\\%s\""
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "convertendo sequência de escape para conjunto de caracteres de execução"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "constante caractere muito longa para seu tipo"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "constante de caractere multi-caractere"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "constante caractere vazia"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "falha ao converter %s para %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "tokens extras ao final da diretiva #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s é uma extensão GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s é uma extensão GCC obsoleta"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "sugere-se não usar #elif em C tradicional"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "C tradicional ignora #%s com o # com recuo"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "sugere-se ocultar #%s do C tradicional com um # com recuo"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "embutir uma diretiva dentro de argumentos macro não é portátil"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "estilo de diretiva de linha é uma extensão GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "diretiva de preprocessamento inválida #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" não pode ser usado como um nome de macro"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" não pode ser usado como um nome de macro, pois é um operador em C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "nenhum nome de macro fornecido na diretiva #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "nomes de macro devem ser identificadores"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "removendo definição de \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "faltando caractere terminador >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s espera \"NOME DE ARQUIVO\" OU <NOME DE ARQUIVO>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "nome de arquivo vazio em #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include aninhado profundo demais"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next no arquivo fonte primário"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "opção inválida \"%s\" na diretiva line"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "fim de arquivo inesperado após #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" após #line não é um inteiro positivo"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "número da linha fora de alcance"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" não é um nome de arquivo válido"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" após # não é um inteiro positivo"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "diretiva inválida #%s"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "registrando pragmas em espaço de nomes \"%s\" com expansão de nome incompatível"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registrando pragma \"%s\" com expansão de nome e nenhum espaço de nomes"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registrando \"%s\" como tanto um pragma e um espaço de nomes de pragma"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s já está registrado"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s já está registrado"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "registrando pragma com manipulador NULO"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma ocorre uma vez no arquivo principal"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "diretiva inválida #pragma push_macro"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "diretiva inválida #pragma pop_macro"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "diretiva inválida #pragma GCC poison"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "envenenando macro existente \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorado fora do arquivo include"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "não foi possível localizar o arquivo fonte %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "arquivo atual é mais velho do que %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "diretiva inválida \"#pragma GCC %s\""
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma leva uma literal de string entre parenteses"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else sem #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else após #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "a condicional começou aqui"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif sem #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif após #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif sem #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "faltando \"(\" após predicado"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "faltando \")\" para uma resposta completa"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "resposta do predicado está vazia"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "asserção sem predicado"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predicado deve ser um identificador"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" re-assertado"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s não terminado"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "comentário não terminado"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "saída padrão"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "constantes de ponto fixo (fixed-point constants) são uma extensão GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "prefixo inválido \"0b\" para constante flutuante"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "uso de constante flutuante hexadecimal de C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "sufixo inválido \"%.*s\" na constante flutuante"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "C tradicional rejeita o sufixo \"%.*s\""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "sufixo para constante dupla (suffix for double constant) é uma extensão GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "sufixo inválido \"%.*s\" com constante flutuante hexadecimal"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "constantes flutuante decimais (decimal float constants) são uma extensão GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "sufixo inválido \"%.*s\" em constante inteiro"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "uso de constante longo longo inteiro de C++11"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "uso de constante longo longo inteiro de C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "constantes imaginárias (imaginary constants) são uma extensão GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "constantes binárias (binary constants) são um recurso de C++1y ou uma extensão GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "constante inteira é muito grande para seu tipo"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "constante inteira é tão grande que não está assinada"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "faltando \")\" após \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "operador \"defined\" requer um identificador"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" é um token alternativo para \"%s\" em C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "esse uso de \"defined\" pode não ser portátil"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "literal definida pelo usuário em expressão do preprocessador"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "constante flutuante em expressão do preprocessador"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "número imaginário em expressão do preprocessador"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" não está definido"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "asserções (assertions) são uma extensão GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "asserções (assertions) são uma extensão obsoleta"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "pilha não balanceada em %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "operador impossível \"%u\""
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "faltando \")\" na expressão"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "\"?\" sem estar seguido por \":\""
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "estouro de inteiro em expressão do preprocessador"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "faltando \"(\" na expressão"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "o operador à esquerda de \"%s\" altera o sinal quando promovido"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "o operador à direita de \"%s\" altera o sinal quando promovido"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "C tradicional rejeita o operador unário mais"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "operador vírgula em operando de #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "divisão por zero em #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "diretório NULO em find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "um ou mais arquivos PCH foram encontrados, mas são inválidos"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "use -Winvalid-pch para mais informações"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s é um dispositivo de bloco"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s é muito grande"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s é muito menor do que esperado"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "não foi incluído nenhum caminho no qual se possa procurar por %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Múltiplos include guards podem ser úteis para:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t deve ser um tipo não assinado"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "aritmética do preprocessador possui uma precisão máxima de %lu bits; o alvo requer %lu bits"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "aritmética do CPP deve ser pelo menos tão precisa quanto um int alvo"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "char alvo é menor do que 8 bits"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "wchar_t alvo é mais estreito do que o char alvo"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "int alvo é mais estreito do que o char alvo"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "meio-inteiro do CPP é mais estreito do que o caractere do CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP nesta máquina não consegue manipular constantes de wide character acima de %lu bits, mas o alvo requer %lu bits"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "barra invertida e nova linha separadas por espaço"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "barra invertida e nova linha no final do arquivo"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trígrafo ??%c convertido para %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trígrafo ??%c ignorado, use -trigraphs para habilitá-lo"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" dentro de comentário"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s em diretiva de preprocessamento"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "um ou mais caracteres nulos ignorados"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "\"%.*s\" não está em NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "\"%.*s\" não está em NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "tentativa de usar \"%s\" envenenado"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ pode aparecer apenas na expansão de uma macro variádica C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "identificador \"%s\" é o nome de um operador especial em C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "delimitador de string não tratada (raw) maior do que 16 caracteres"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "nova linha inválida em delimitador de string não tratada (raw)"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "caractere inválido \"%c\" em delimitador de string não tratada (raw)"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "string não tratada (raw) não terminada"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "sufixo inválido em literal; C++11 requer um espaço entre literal e macro de string"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "um ou mais caracteres nulos preservados em literal"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "faltando o caractere de terminação %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "comentários no estilo C++ não são permitidos em ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(isso será relatado apenas uma vez por arquivo de entrada)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "comentário multilinha"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "token %s impronunciável"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "macro \"%s\" não é usada"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "macro interna inválida \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "macro \"%s\" pode evitar compilações reproduzíveis"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "não foi possível determinar o arquivo de marca de tempo"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "não foi possível determinar a data e a hora"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ expandido dentro diretiva com -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "literal de string inválida, ignorando final \"\\\""
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "colar \"%s\" em \"%s\" não resulta em nenhum token de preprocessamento válido"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 requer que argumentos restantes sejam usados"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "macro \"%s\" requer %u argumentos, mas apenas %u foram fornecidos"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "macro \"%s\" passou %u argumentos, mas usa apenas %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "lista de argumentos interminável chamando macro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "macro \"%s\" do tipo função deve ser usada com argumento em C tradicional"
+
+# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33305
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "chamando macro %s argumento %d: argumentos de macro vazios estão indefinidos em ISO C90 e ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "parâmetro de macro \"%s\" duplicado"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" não pode aparecer na lista de parâmetros de macro"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "parâmetros de macro devem ser separados por vírgula"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "faltando nome de parâmetro"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "macros variádicas anônimas foram introduzidas em C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C não permite macros variádicas nomeadas"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "faltando \")\" na lista de parâmetros de macro"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "\"##\" não pode aparecer no final da expansão de macro"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 requer espaço em branco após o nome de macro"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "faltando espaço em branco após o nome de macro"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "\"#\" não está seguido por um parâmetro de macro"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" re-definido"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "essa é a localização da definição anterior"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "argumento de macro \"%s\" estaria em uma string no C tradicional"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "tipo de hash inválido %d em cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "enquanto realizava escrita de header pré-compilado"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: não usado porque \"%.*s\" está envenenado"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: não usado porque \"%.*s\" não está definido"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: não usado porque \"%.*s\" está definido como \"%s\", e não \"%.*s\""
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: não usado porque \"%s\" está definido"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: não usado porque \"__COUNTER__\" é inválido"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "enquanto realizava leitura de header pré-compilado"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "detectada recursão enquanto expandia macro \"%s\""
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "erro de sintaxe na lista de parâmetros de macro"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Caractere %x pode não ser NFKC"
diff --git a/gcc-4.9/libcpp/po/ru.po b/gcc-4.9/libcpp/po/ru.po
new file mode 100644
index 000000000..50ca3b31e
--- /dev/null
+++ b/gcc-4.9/libcpp/po/ru.po
@@ -0,0 +1,953 @@
+# translation of cpplib to Russian
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+#
+# Yuri Kozlov <yuray@komyakino.ru>, 2011, 2012, 2013, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-03 19:41+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <gnu@mx.ru>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.4\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "преобразование из %s в %s не поддерживается iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "нет реализации в iconv, невозможно преобразовать из %s в %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "символ 0x%lx отсутствует в простом наборе символов исходного кода\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "преобразование в набор символов среды выполнения"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "символ 0x%lx не является юнибайтом (unibyte) в наборе символов среды выполнения"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "универсальные имена символов допустимы только в C++ и C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "назначение «\\%c» отличается в традиционном C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "В _cpp_valid_ucn, но не UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "неполное универсальное имя символа %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s не является допустимым универсальным именем символа"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "«$» в идентификаторе или числе"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "универсальный символ %.*s недопустим в идентификаторе"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "универсальный символ %.*s недопустим в начале идентификатора"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "преобразование UCN в простой набор символов исходного кода"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "преобразование UCN в набор символов среды выполнения"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "назначение «\\x» отличается в традиционном C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "после \\x нет шестнадцатеричных цифр"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "шестнадцатеричная экранирующая последовательность за пределами диапазона"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "восьмеричная экранированная последовательность за пределами диапазона"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "назначение «\\a» отличается в традиционном C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "не соответствующая стандарту ISO экранированная последовательность, «\\%c»"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "неизвестная экранированная последовательность «\\%c»"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "неизвестная экранированная последовательность «\\%s»"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "преобразование экранированной последовательности в набор символов среды выполнения"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "символьная константа слишком длинна для своего типа"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "многознаковая символьная константа"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "пустая символьная константа"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "ошибка при преобразовании %s в %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "лишние токены в конце директивы #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s является расширением GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s является устаревшим расширением GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "предполагается не использование #elif в традиционном C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "в традиционном C игнорируется #%s с отступом у #"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "предполагается скрытие #%s из традиционного C с отступом у #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "встраивание директивы внутрь аргументов макроса не переносимо"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "стиль строковых директив является расширением GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "неправильная препроцессорная директива #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "«defined» не может использоваться как имя макроса"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "«%s» не может использоваться как имя макроса в качестве оператора в C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "не указано имя макроса в директиве #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "имена макросов должны быть идентификаторами"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "неопределённая «%s»"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "отсутствует завершающий символ >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "для #%s ожидается \"ИМЯ_ФАЙЛА\" или <ИМЯ_ФАЙЛА>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "пустое имя файла в #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "слишком много вложенных #include"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next в первичном исходном файле"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "неверный флаг «%s» в строковой директиве"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "неожиданный конец файла после #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "«%s» после #line не является положительным целым числом"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "номер строки вне допустимых пределов"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "«%s» не является допустимым именем файла"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "«%s» после # не является положительным целым числом"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "неправильная директива #%s"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "регистрируется прагма в пространстве имён «%s» с несовпадающим именным расширением"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "регистрируется прагма «%s» с именным расширением, но без пространства имён"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "регистрируется «%s» как прагма и как пространство имён для прагм"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s уже зарегистрирована"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s уже зарегистрирована"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "регистрируется прагма со значением обработчика равным NULL"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once в главном файле"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "неверная директива #pragma push_macro"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "неверная директива #pragma pop_macro"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "неверная директива #pragma GCC poison"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "отравление существующего макроса «%s»"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header игнорируется вне включаемого файла"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не удалось найти исходный файл %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "текущий файл старее чем %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "неверная директива #pragma GCC %s"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "для _Pragma требуется указать строковый литерал в скобках"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else без #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else после #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "условие начинается здесь"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif без #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif после #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif без #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "отсутствует «(» после предиката"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "отсутствует «)» для завершения ответа"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "ответ предиката пуст"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "утверждение без предиката"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "предикат должен быть идентификатором"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "повторное утверждение «%s»"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "незавершённая #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "незавершённый комментарий"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "константы с фиксированный точкой являются расширением GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "неверный префикс «0b» в плавающей константе"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "использование шестнадцатеричной плавающей константы C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "неверный суффикс «%.*s» в плавающей константе"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "в традиционном C отвергается суффикс «%.*s»"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "суффикс для констант типа double является расширением GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "неверный суффикс «%.*s» в шестнадцатеричной плавающей константе"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "десятичные плавающие константы являются расширением GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "неверный суффикс «%.*s» в целочисленной константе"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "использование целочисленной long long константы C++11"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "использование целочисленной long long константы C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "мнимые константы являются расширением GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "двоичные константы являются свойством C++1y или расширением GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "значение целочисленной константы слишком велико для своего типа"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "значение целочисленной константы так велико что стало беззнаковым"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "отсутствует «)» после «defined»"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "для оператора «defined» требуется идентификатор"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(«%s» является альтернативой токену «%s» в C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "такое использование «defined» может оказаться непереносимым"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "определённый пользователем литерал в препроцессорном выражении"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "плавающая константа в препроцессорном выражении"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "мнимое число в препроцессорном выражении"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "«%s» не определена"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "утверждения являются расширением GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "утверждения являются устаревшим расширением"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "несбалансированный стек в %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "невозможный оператор «%u»"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "отсутствующая «)» в выражении"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "«?» без последующего «:»"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "целочисленное переполнение в препроцессорном выражении"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "отсутствующая «(» в выражении"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "левый операнд «%s» изменяет знак при появлении"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "операнд операнд «%s» изменяет знак при появлении"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "в традиционном C отвергается оператор унарного сложения"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "оператор запятая в операнде #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "деление на ноль в #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "каталог NULL в find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "найден один или более файлов PCH, но все они некорректные"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "используйте -Winvalid-pch для более подробной диагностики"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s является блочным устройством"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s слишком большое"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s короче чем ожидается"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "отсутствует путь для включаемых файлов, в котором ищется %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Несколько защит подключения может быть полезно для:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t должна быть беззнакового типа"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "препроцессорная арифметика имеет максимальную точность равную %lu бит; для цели требуется %lu бит"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "точность арифметики CPP должна быть не менее значения int цели"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "ширина char у цели менее 8 бит"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "wchar_t цели уже чем char цели"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "int цели уже чем char цели"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "ширина половины integer CPP уже чем символ CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP на данной машине не может работать с широкими символьными константами более %lu бит, но для цели требуется %lu бит"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "обратная косая черта и символ новой строки разделены пробелом"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "обратная косая черта/символ новой строки в конце файла"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "триграф ??%c преобразован в %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "триграф ??%c игнорируется, для включения используйте -trigraphs"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "«/*» внутри комментария"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s в препроцессорной директиве"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "игнорируется символ(ы) null"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "«%.*s» не является NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "«%.*s» не является NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "попытка использовать отравленный «%s»"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ может появляться только в расширении C99: вариативном макросе"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "идентификатор «%s» является именем специального оператора в C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "разделитель сырой строки больше 16 символов"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "неверный символ новой строки в разделителе сырой строки"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "неверный символ «%c» в разделителе сырой строки"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "незавершённая сырая строка"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "неверный суффикс в литерале; в C++11 требуется пробел между литералом и строкой макроса"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "символ(ы) null сохраняются в литерале"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "отсутствует завершающий символ %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "комментарии в стиле C++ не разрешены в ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(об этом будет сообщено только один раз для каждого файла)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "многострочный комментарий"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "неразбираемый токен %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "макрос «%s» не используется"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "неверный встроенный макрос «%s»"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "макрос «%s» может помешать повторным сборкам"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "не удалось определить временную метку файла"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "не удалось определить дату и время"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ раскрывается внутри директивы при указании параметра -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "неверный строковый литерал, игнорируется завершающий «\\»"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "вставка «%s» и «%s» не даёт правильного препроцессорного токена"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "согласно ISO C99 требуется использование остальных аргументов"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "для макроса «%s» требуется %u аргументов, но указано только %u"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "в макрос «%s» передано %u аргументов, но используется только %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "незавершённый список аргументов вызывает макрос «%s»"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "макрос «%s», похожий на функцию, должен использоваться с аргументами в традиционном C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "вызывается макрос %s аргументов %d: пустые аргументы макрос не определены в ISO C90 и ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "повторяющийся параметр макроса «%s»"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "«%s» может не появиться в списке параметров макроса"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "параметры макроса должны указываться через запятую"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "отсутствует имя параметра"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "анонимные вариатические макросы появились в C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "в ISO C не разрешены вариатические именованные макросы"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "отсутствует «)» в списке параметров макроса"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "«##» не может указываться в конце макрорасширения"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "в ISO C99 требуется пробельный символ после имени макроса"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "отсутствует пробельный символ после имени макроса"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "после «#» нет параметра макроса"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "«%s» переопределён"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "это расположение предыдущего определения"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "аргумент макроса «%s» был бы строкой, оформленной в традиционном стиле С"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "неверный тип хэша %d в cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "при записи прекомпилированного заголовка"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: не используется, так как «%.*s» отравлен"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: не используется, так как «%.*s» не определён"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: не используется, так как «%.*s», определённый как «%s», не «%.*s»"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: не используется, так как «%s» определён"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: не используется, так как значение «__COUNTER__» неправильно"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "при чтении прекомпилированного заголовка"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "обнаружена рекурсия во время раскрытия макроса «%s»"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "синтаксическая ошибка в списке параметров макроса"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Символ %x не может быть NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "слишком много десятичных точек в числе"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "неправильная цифра «%c» в двоичной константе"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "неправильная цифра «%c» в восьмеричной константе"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "отсутствуют цифры в шестнадцатеричной плавающей константе"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "в экспоненте нет цифр"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "в шестнадцатеричных плавающих константах должна быть экспонента"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "отсутствует двоичный оператор перед токеном «%s»"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "токен «%s» не допустим в препроцессорных расширениях"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "отсутствует выражение между «(» и «)»"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s без выражения"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "оператор «%s» не имеет правого операнда"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "оператор «%s» не имеет левого операнда"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " «:» без начального «?»"
diff --git a/gcc-4.9/libcpp/po/sr.po b/gcc-4.9/libcpp/po/sr.po
new file mode 100644
index 000000000..18411fea3
--- /dev/null
+++ b/gcc-4.9/libcpp/po/sr.po
@@ -0,0 +1,912 @@
+# Serbian translation of cpplib.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012—2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib-4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-24 08:51+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <(nothing)>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "иконв не подржава претварање из %s у %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "иконв_отвори"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "нема иконв примене, не могу да претворим из %s у %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "знак 0x%lx није у знаковном скупу основног извора\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "претварам у знаковни скуп извршавања"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "знак 0x%lx није једног бајта у знаковном скупу извршавања"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "називи свеопштег знака су једино исправни у Ц++ и Ц99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "значење „\\%c“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "У _цпп_исправан_нсз али није НСЗ"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "непотпун назив свеопштег знака %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s није исправан свеопшти знак"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "„$“ у одреднику или број"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "свеопшти знак %.*s није исправан у одреднику"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "свеопшти знак %.*s није исправан на почетку одредника"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "претварам НСЗ у изворни знаковни скуп"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "претварам НСЗ у извршни знаковни скуп"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "значење „\\x“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "„\\x“ је коришћено са не пратећим хекса цифрама"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "хекс низ промене је изван опсега"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "октални низ промене је изван опсега"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "значење „\\a“ је другачије у уобичајеном Ц-у"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "низ промене не-ИСО-стандарда, „\\%c“"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "непознат низ промене: „\\%c“"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "непознат низ промене: „\\%s“"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "претварам низ промене у знаковни скуп извршавања"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "константа знака је предуга за своју врсту"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "више-знаковна константа знака"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "празна константа знака"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "неуспех у претварању %s у %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "посебни симболи на крају #%s директиве"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s је ГЦЦ проширење"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s је превазиђено ГЦЦ проширење"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "саветује да се не користи „#elif“ у уобичајеном Ц-у"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "уобичајени Ц занемарује #%s са # увученим"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "саветује скривање #%s из уобичајеног Ц-а са увученим #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "угнежђивање директиве унутар аргумената макроа није преносиво"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "стил директиве реда је ГЦЦ проширење"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "неисправна директива предобраде #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "„defined“ не може бити коришћено као назив макроа"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "„%s“ не може бити коришћено као назив макроа јер је то оператор у Ц++-у"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "није дат назив макроа у #%s директиви"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "називи макроа морају бити одредници"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "неодређујем „%s“"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "недостаје завршни знак >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s очекује „НАЗИВДАТОТЕКЕ“ или <НАЗИВДАТОТЕКЕ>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "празан назив датотеке у #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include је угнежђено превише дубоко"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next у примарној изворној датотеци"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "неисправна опција „%s“ у директиви реда"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "неочекивани крај датотеке након „#line“"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "„%s“ након „#line“ није позитиван цео број"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "број реда је ван опсега"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "„%s“ није исправан назив датотеке"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "„%s“ након „#“ није позитиван цео број"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "неисправна #%s директива"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "бележим прагме у простору назива „%s“ са неодговарајућим ширењем назива"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "бележим прагму „%s“ са ширењем назива и без простора назива"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "бележим „%s“ и као прагму и као простор назива прагме"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s је већ забележено"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s је већ забележено"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "бележим прагму са НИШТАВНИМ руковаоцем"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma једном у главној датотеци"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "неисправна „#pragma push_macro“ директива"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "неисправна „#pragma pop_macro“ директива"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "неисправна „#pragma GCC poison“ директива"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "трујем постојећи макро „%s“"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "„#pragma system_header“ је занемарено изван датотеке укључивања"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не могу да пронађем изворну датотеку „%s“"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "текућа датотека је старија од %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "неисправна директива „#pragma GCC %s“"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Прагма узима словност ниске затворене заградом"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "„#else“ без „#if“"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "„#else“ након „#else“"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "условљеност почиње овде"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "„#elif“ без „#if“"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "„#elif“ након „#else“"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "„#endif“ без „#if“"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "недостаје ( након предиката"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "недостаје ) да доврши одговор"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "одговор предиката је празан"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "тврдња без предиката"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "предикат мора бити одредник"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "„%s“ је поново утврђен"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "неокончано #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "неокончана напомена"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "стдизлаз"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "константе сталне тачке су ГЦЦ проширења"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "неисправан префикс „0b“ за покретну константу"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "употреба Ц99 хексадецималне покретне константе"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "неисправан суфикс „%.*s“ на покретној константи"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "уобичајени Ц одбацује „%.*s“ суфикс"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "суфикс за двоструку константу је ГЦЦ проширење"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "неисправан суфикс „%.*s“ са хексадецималном покретном константом"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "децималне покретне константе су ГЦЦ проширења"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "неисправан суфикс „%.*s“ на константи целог броја"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "употреба Ц++11 дуге дуге константе целог броја"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "употреба Ц99 дуге дуге константе целог броја"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "имагинарне константе су ГЦЦ проширења"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "бинарне константе су Ц++1у функције или ГЦЦ проширења"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "константа целог броја је предуга за њену врсту"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "константа целог броја је толико велика тако да је неозначена"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "недостаје ( након „defined“"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "оператор „defined“ захтева одредника"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(„%s“ је резервни симбол за „%s“ у Ц++-у)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "ова употреба „defined“ не може бити преносива"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "словност коју је одредио корисник у изразу претпроцесора"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "покретна константа у изразу претптоцесора"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "имагинаран број у изразу претптоцесора"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "„%s“ није одређено"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "тврдње су ГЦЦ проширења"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "тврдње су застарела проширења"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "неуравнотежен стек у %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "немогућ оператор у „%u“"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "недостаје ) у изразу"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "„?“ без пратећег „:“"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "прекорачење целог броја у изразу претпроцесора"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "недостаје ( у изразу"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "леви операнд за „%s“ мења знак када је претворен"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "десни операнд за „%s“ мења знак када је претворен"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "уобичајени Ц одбацује унарни плус оператор"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "оператор зареза у операнду „#if“"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "дељење нулом у „#if“"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "НИШТАВАН директоријум у пронађи_датотеку"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "једна или више ПЦХ датотека је пронађено, али су неисправне"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "користите „-Winvalid-pch“ за више података"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s је блок уређај"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s је превелико"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s је краће од очекиваног"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "нема путање укључивања у којој потражити „%s“"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Више чувара укључивања може бити корисно за:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "„cppchar_t“ мора бити неозначена врста"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "аритметика претпроцесора има највећу тачност од %lu бита; мета затева %lu бита"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "ЦПП аритметика мора бити тачна барем колико и циљни цео број"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "циљни знак је дужи мање од 8 бита"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "циљни широки знак (wchar_t) је ужи од циљног знака"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "циљни цео број је ужи од циљног знака"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "ЦПП полуцео број је ужи од ЦПП знака"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "ЦПП на овом рачунару не може да рукује дуге константе знака преко %lu бита, али мета захтева %lu бита"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "контра коса и нови ред су раздвојени размаком"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "контра коса-нови ред на крају датотеке"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "триграф ??%c је претворен у %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "триграф ??%c је занемарен, користите „-trigraphs“ да укључите"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "„/*“ унутар напомене"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s у директиви претпроцесора"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "ништаван знак(ци) је занемарен(и)"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "„%.*s“ није у НФКЦ-у"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "„%.*s“ није у НФЦ-у"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "покушај коришћења отрованог „%s“"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "„__VA_ARGS__“ може само да се појави у ширењу вариадик макроа Ц99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "одредник „%s“ је назив посебног оператора у Ц++-у"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "граничник сирове ниске је дужи од 16 знака"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "неисправан нови ред у граничнику сирове ниске"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "неисправан знак „%c“ у граничнику сирове ниске"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "неокончана сирова ниска"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "неисправан суфикс у словности; Ц++11 захтева размак између словности и макроа ниске"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "ништаван знак је причуван у словности"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "недостаје завршни знак %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Напомене Ц++ стила нису допуштене у ИСО Ц90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(ово ће бити извештено само једном по улазној датотеци)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "напомена више редова"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "неизговорљив симбол %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "макро „%s“ није коришћен"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "неисправан макро уградње „%s“"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "макро „%s“ може да спречи поновљиве изградње"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "не могу да одредим временску ознаку датотеке"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "не могу да одредим датум и време"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "„__COUNTER__“ је проширен у директиви са „-fdirectives-only“"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "неисправна словност ниске, занемарујем завршну \\"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "налепљивање „%s“ и „%s“ не даје исправан симбол претпроцесора"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ИСО Ц99 захтева да остали аргументи буду коришћени"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "макро „%s“ захтева %u аргумента, али само %u су дата"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "макро „%s“ је проследио %u аргумента, али узима само %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "бесконачан списак аргумената призивајући макро „%s“"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "макро налик функцији „%s“ мора бити коришћен са аргументима у уобичајеном Ц-у"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "призивајући макро %s аргумент %d: празни аргументи макроа нису одређени у ИСО Ц90 и ИСО Ц++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "параметар двоструког макроа „%s“"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "„%s“ не може да се појави у списку параметара макроа"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "параметри макроа морају бити раздвојени зарезом"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "недостаје назив параметра"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "безимени вариадик макрои су уведени у Ц99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ИСО Ц не дозвољава именоване вариадик макрое"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "недостаје ) у списку параметара макроа"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "„##“ не може да се појави у или на крају макро ширења"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ИСО Ц99 захтева празнине након назива макроа"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "недостаје празнина након назива макроа"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "за „#“ не следи параметар макроа"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "„%s“ је поново одређено"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "ово је место претходне одреднице"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "макро аргумент „%s“ ће бити нискован у уобичајеном Ц-у"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "неисправна врста хеша %d у цпп_макро_одредници"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "за време уписивања претходно преведеног заглавља"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: није употребљено зато што је „%.*s“ отровано"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: није употребљено зато што „%.*s“ није одређено"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: није употребљено зато што „%.*s“ одређено као „%s“ није „%.*s“"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: није употребљено зато што је „%s“ одређено"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: није употребљено зато што „__COUNTER__“ није исправно"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "за време читања претходно преведеног заглавља"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "откривено је дубачење за време ширења макроа „%s“"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "садржајна грешка у списку параметара макроа"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Знак %x не може бити НФКЦ"
diff --git a/gcc-4.9/libcpp/po/sv.po b/gcc-4.9/libcpp/po/sv.po
new file mode 100644
index 000000000..d8dd6e624
--- /dev/null
+++ b/gcc-4.9/libcpp/po/sv.po
@@ -0,0 +1,912 @@
+# Swedish messages for cpplib.
+# Copyright © 2000, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Dennis Björklund <db@zigo.dhs.org>, 2000, 2001, 2002.
+# Göran Uddeborg <goeran@uddeborg.se>, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014.
+#
+# Remember: GCC team does not want RCS keywords in the header!
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-03 11:24+0100\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "konveretering från %s till %s stöds inte av iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "ingen iconv-implementation, kan inte konvertera från %s till %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "tecken 0x%lx finns inte i källkodens grundteckenuppsättning\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "konverterar till teckenuppsättning för körning"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "tecken 0x%lx är inte en byte i teckenupsättning för körning"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "universella teckennamn är endast giltiga i C++ och C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "betydelsen av ”%c” är annorlunda i traditionell C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "I _cpp_valid_ucn men inte en UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "ofullständigt unversellt teckennamn %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s är inte ett giltigt universellt tecken"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "”$” i identifierare eller tal"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "universellt tecken %.*s är inte giltigt i en identifierare"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "universellt tecken %.*s är inte giltigt vid början av en identifierare"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "vid konvertering av UCN källteckenuppsättning"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "vid konverting av UCN till teckenuppsättning för körning"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "betydelsen av ”\\x” är annorlunda i traditionell C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x använt utan några följande hexadecimala siffror"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "hexadecimal specialsekvens utanför intervallet"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "oktal specialsekvens utanför intervallet"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "betydelsen av ”\\a” är annorlunda i traditionell C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "icke-ISO-standardspecialsekvens, ”\\%c”"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "okänd escape-sekvens: ”\\%c”"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "okänd escape-sekvens: ”\\%s”"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "vid konvertering av specialsekvens till teckenuppsättning för körning"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "teckenkonstant för lång för sin typ"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "flerteckens teckenkonstant"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "tom teckenkonstant"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "misslyckades att konvertera %s till %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "extra symboler vid slutet av direktivet #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s är en GCC-utvidgning"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s är en GCC-utvidgning som avrådes ifrån"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "föreslår att inte använda #elif i traditionell C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "traditionell C ignorerar #%s dör tecknet # är indenterat"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "föreslår att dölja #%s från traditionell C med en indenterad #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "att bädda in ett direktiv i makroargument är inte portabelt"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "stil på raddirektiv är en GCC-utvidgning"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "ogiltigt preprocessordirektiv #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "”defined” kan inte användas som ett makronamn"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "”%s” kan inte användas som ett makronamn eftersom det är en operator i C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "inget makronamn angivet i direktivet #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "makronamn måste vara identifierare"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "avdefinierar ”%s”"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "saknar avslutande tecken >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s förväntar ”FILNAMN” eller <FILNAMN>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "tomt filnamn i #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include nästlad för djupt"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next i primär källkodsfil"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "ogiltigt flagga ”%s” i line-direktiv"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "oväntat filslut efter #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "”%s” efter #line är inte ett positivt heltal"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "radnummer utanför möjligt intervall"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "”%s” är inte ett giltigt filnamn"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "”%s” efter # är inte ett positivt heltal"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "ogiltigt #%s-direktiv"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "registrerar pragman i namnrymden ”%s” med namnexpansion som inte passar ihop"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "registrerar pragma ”%s” med namnexpansion och utan namnrymd"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "registrerar ”%s” både som ett pragma och ett pragma namespace"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s är redan registrerat"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s är redan registrerat"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "registrerar pragma med NULL-hanterare"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once i huvudfil"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "ogiltigt direktiv #pragma push_macro"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "ogiltigt direktiv #pragma pop_macro"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "ogiltigt direktiv #pragma GCC poison"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "förgiftar existerande makro ”%s”"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header ignorerat utanför huvudfil"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "kan inte hitta källfil %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "aktuell fil är äldre än %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "ogiltigt direktiv ”#pragma GCC %s”"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma tar en strängkonstant inom parenteser"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else utan #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else efter #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "villkorssatsen började här"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif utan #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif efter #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif utan #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "saknas '(' efter predikat"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "saknas ')' för att avsluta svaret"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "predikatets svar är tomt"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "försäkran utan predikat"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "predikat måste vara en identifierare"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "”%s” omförsäkrat"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "oavslutad #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "ej avslutad kommentar"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "standard ut"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "fastdecimalskonstanter är en GCC-utvidgning"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "ogiltigt prefix ”0b” på flyttalskonstant"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "användning av hexadecimal flyttalskonstant enligt C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "ogiltigt suffix ”%.*s” på flyttalskonstant"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "traditionell C tillåter inte suffixet ”%.*s”"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "suffix för double-konstanter är en GCC-utvidgning"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "ogiltigt suffix ”%.*s” på hexadecimal flyttalskonstant"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "decimala flyttalskonstanter är en GCC-utvidgning"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "ogiltig ändelse ”%.*s” på heltalskonstant"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "användning av long long heltalskonstant enligt C++11"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "användning av long long heltalskonstant enligt C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "imaginära konstanter är en GCC-utvidgning"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "binära konstanter är framtida C++1y-funktion eller GCC-utvidgning"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "heltalskonstant är för stor för sin typ"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "heltalskonstant är så stor att den är teckenlös"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "saknar ')' efter ”defined”"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "operatorn ”defined” måste ha en identiferare"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(”%s” är en alternativ symbol för ”%s” i C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "denna användning av ”defined” är kanske inte portabel"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "användardefinierad konstant i preprocessoruttryck"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "flyttalskonstant i preprocessoruttryck"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "imaginärt tal i preprocessoruttryck"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "”%s” är inte definierad"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "försäkringar är en GCC-utvidgning"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "försäkringar är en GCC-utvidgning som avrådes ifrån"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "obalanserad stack i %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "omöjlig operator ”%u”"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "saknad ”)” i uttryck"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "”?” utan följande ”:”"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "heltalsspill i preprocessoruttryck"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "saknad ”(” i uttryck"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "vänsteroperanden till ”%s” byter tecken vid befodran"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "högeroperanden till ”%s” byter tecken vid befodran"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "traditionell C hanterar inte operatorn unärt plus"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "kommaoperator i operand till #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "division med noll i #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "NOLL-katalog i find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "en eller flera PCH-filer hittades, men de var inte korrekta"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "använd -Winvalid-pch för mer information"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s är en blockenhet"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s är för stor"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s är kortare än förväntat"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "ingen huvudfilssökväg att leta efter %s i"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Multipla inkluderingsvakter kan vara användbart för:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t måste vare en teckenlös typ"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "preprocessoraretmetik har en högsta precision på %lu bitar; målet kräver %lu bitar"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP-aritmetik måste vara åtminstone så precis som målets int"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "målets char är mindre än 8 bitar bred"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "målets wchar_t är smalare än målets char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "målets int är smalare än målets char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP:s halva heltal är smalare än CPP:s tecken"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP på denna värd kan inte hantera breda teckenkonstanter över %lu bitar, men målet kräver %lu bitar"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "bakåtstreck och nyrad skiljda av mellanrum"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "bakåtstreck-nyrad vid filslut"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "trigraph ??%c konverterad till %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "trigraph ??%c ingorerad, använd -trigraphs för att aktivera"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "”/*” i kommentar"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s i preprocessordirektiv"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "nolltecken ignorerat"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "”%.*s” är inte i NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "”%.*s” är inte i NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "försök att använda förgiftad ”%s”"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ kan endast dyka upp i expansionen av ett C99-makro med variabelt argumentantal"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "identifieraren ”%s” är ett speciellt operatornamn i C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "avgränsare för rå sträng längre än 16 tecken"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "felaktig nyrad i rå sträng-avgränsare"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ogiltigt tecken ”%c” i avgränsare för rå sträng"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "oavslutad rå sträng"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "ogiltigt suffix på konstant; C++11 kräver ett mellanrum mellan konstanter och ett strängmakron"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "nolltecken bevarade i konstant"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "avslutande %c-tecken saknas"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ kommentarer tillåts inte i ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(detta rapporteras bara en gång per infil)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "flerradskommentar"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "ostavbar symbol %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "makrot ”%s” är inte använt"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "ogiltigt inbyggt makro ”%s”"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "makrot ”%s” kan förhindra reproducerbara byggen"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "det gick inte att avgöra fils tidsstämpel"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "det gick inte att avgöra datum och tid"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ expanderad inuti direktiv med -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "ogiltig strängkonstant, inorerar avslutande ”\\”"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "att sätta ihop ”%s” och ”%s” ger inte en giltigt preprocessorsymbol"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 kräver att restargument används"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makrot ”%s” kräver %u argument, men endast %u anges"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makro ”%s” skickade %u argument, men det tar bara %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "oavslutad argumentlista vid anrop av makrot ”%s”"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "funktionsliknande makrot ”%s” måste användas med ett argument i traditionell C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "vid anrop av makro %s argument %d: tomma makroargument är odefinierade i ISO C90 och ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "dubblerad makroparameter ”%s”"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "”%s” får inte förekomma i en makroparameterlista"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "makroparametrar måste avdelas av komman"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "parameternamn saknas"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "anonyma variabla makron introducerades i C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C tillåter inte namngivna variabla makron"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "saknad ”)” i makroparameterlista"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "”##” kan inte förekomma vid någon av ändarna av makroexpansionen"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 kräver mellanrum efter makronamnet"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "mellanrum saknas efter makronamn"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "”#” följs inte av en makroparameter"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "”%s” omdefinierad"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "detta är platsen för den tidigare definitionen"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makroargumentet ”%s” skulle bli gjort till sträng i traditionell C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "ogiltig hash-typ %d i cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "vid skrivning av förkompilerat huvud"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: inte använd för att ”%.*s” är förgiftad"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: inte använd för att ”%.*s” inte är definierad"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: används inte för att ”%.*s” definieras som ”%s” inte ”%.*s”"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: inte använd för att ”%s” är definierad"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: inte använd för att ”__COUNTER__” är ogiltig"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "vid läsning av förkompilerat huvud"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "upptäckte rekursion vid under expansion av makrot ”%s”"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "syntaxfel i makroparameterlista"
diff --git a/gcc-4.9/libcpp/po/tr.po b/gcc-4.9/libcpp/po/tr.po
new file mode 100644
index 000000000..02bf10221
--- /dev/null
+++ b/gcc-4.9/libcpp/po/tr.po
@@ -0,0 +1,980 @@
+# Turkish translations for cpplib messages.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.8.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2013-11-01 22:29+0100\n"
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
+"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "%s ile %s arasında dönüşüm iconv tarafından desteklenmiyor"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "iconv bulunamadığından %s ile %s karakter kümeleri arasında dönüşüm yapılamıyor"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "0x%lx karakteri temel kaynak karakter kümesinde değil\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "çalışma karakter kümesine dönüştürülüyor"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "0x%lx karakteri icra karakter kümesindeki tek baytlık karakterlerden değil"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "evrensel karakter isimleri sadece C++ ve C99 için geçerlidir"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "`\\%c'nin anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Bir UCN içinde değil, _cpp_valid_ucn içinde"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "evrensel karakter ismi %.*s tamamlanmamış"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s geçerli bir evrensel karakter değil"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "belirteç ya da sayı içinde '$'"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "evrensel karakter %.*s bir belirtecin başında geçerli değil"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "UCN'den kaynak karakter kümesine dönüşüm"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "UCN'den icra karakter kümesine dönüşüm"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "'\\x'in anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x izleyen onaltılık rakamlar olmaksızın kullanılmış"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "onaltılık önceleme dizgesi kapsamdışı"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "sekizlik önceleme dizgesi kapsamdışı"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "`\\a'nın anlamı geleneksel C'de farklıdır"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "bilinmeyen kaçış dizgesi: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "bilinmeyen önceleme dizgesi '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "önceleme diziliminden icra karakter kümesine dönüşüm"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "karakter sabiti, türü için çok uzun"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "çoklu-karakter karakter sabiti"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "karakter sabit boş"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "`%s' ile `%s' arasında dönüşüm başarısız"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s yönergesinin sonunda fazladan dizgecikler"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s bir GCC uzantısıdır"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s eskimiş bir GCC uzantısıdır"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "geleneksel C'de #elif kullanılmıyor varsayılır"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "geleneksel C'de girintili # ile #%s yoksayılır"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "geleneksel C'den #%s in saklanması için bir girintili # kullanılmış farzedilir"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "bir yönergenin makro argümanlarla gömülmesi uyarlanabilir değil"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "satır yönergesinin tarzı bir GCC özelliğidir"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "önişlem yönergesi #%s geçersiz"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" makro ismi olarak kullanılamaz"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" C++'da bir işleç olduğundan makro ismi olarak kullanılamaz"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s yönergesinde makro ismi verilmemiş"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "makro isimleri tanımlayıcılar olmalı"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "tanımsız yapılan \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "sonlandıran > karakteri eksik"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s \"DOSYA\" ya da <DOSYA> gerektirir"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s ile belirtilen dosya boş"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include iç içeliği çok derin"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "birncil kaynak dosyasında #include_next"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "satır yönergesinde geçersiz \"%s\" seçeneği"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "#line satırından sonra beklenmeyen dosya sonu"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line'dan sonraki \"%s\" bir pozitif tamsayı değil"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "satır numarası kapsam dışı"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" geçerli bir dosya ismi değil"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "#'dan sonraki \"%s\" bir pozitif tamsayı değil"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "#%s yönergesi geçersiz"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "\"%s\" isim-alanındaki pragmalar uyumsuz isim yorumlaması ile kaydediliyor"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "pragma \"%s\" isim alansız olarak isim yorumlamasıyla kaydediliyor"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "\"%s\" hem pragma hem de pragma isim alanı olarak kaydediliyor"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s zaten kayıtlı"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s zaten kayıtlı"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "pragma NULL eylemci ile kaydediliyor"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "main dosyasında '#pragma once'"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "geçersiz #pragma GCC poison yönergesi"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "zehirlenen mevcut makro \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "başlık dosyasının dışındaki '#pragma system_header' yoksayıldı"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "%s kaynak dosyası bulunamıyor"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "mevcut dosya %s den daha eski"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "geçersiz \"#pragma GCC %s\" yönergesi"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma bir parantezli dizge sabiti alır"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#if siz #else"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else den sonra #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "koşul başlangıcı burası"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#if siz #elif "
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#else den sonra #elif"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#if siz #endif"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "dayanaktan sonra '(' eksik"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "yanıtı tamamlayacak ')' eksik"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "dayanakların cevabı boş"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "dayanaksız olumlama"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "dayanak bir tanımlayıcı olmalı"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" tekrar olumlanmış"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "sonlandırılmamış #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "sonlandırılmamış açıklama"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdÇ"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "sabit noktalı sabitler bir GCC uzantısıdır"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "kayan nokta için geçerisz \"0b\" öntakısı"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "C99 onaltılık gerçel sayı sabit kullanımı"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "çift sabit için öntakı bir GCC uzantısıdır"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "onluk kayan sabitler bir GCC uzantısıdır"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "ISO C++0x long long tamsayı sabitlerinin kullanımı"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "sanal sabitler bir GCC genişletmesidir"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "ikili sabitler bir GCC uzantısıdır"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "tamsayı sabit, türü için oldukça büyük"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "tamsayı sabit unsigned olarak oldukça büyük"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "\"defined\" dan sonra ')' eksik"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "\"defined\" işleci bir tanımlayıcı gerektirir"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(C++'da \"%s\" \"%s\" için bir alternatif dizgeciktir)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "önişleyici ifadesinde kullanıcı tanımlı bağımlı"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "önişlemci ifadesinde gerçel sayı taşması"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "önişlemci ifadesinde sanal sayı"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" tanımlı değil"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "belirteçler bir GCC uzantısıdır"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "belirteçler artık kullanılmayan bir ifadedir"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s içinde dengelenmemiş yığın"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "işleç '%u' imkansız"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "ifadede ')' eksik"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' dan sonra ':' yok"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "önişlemci ifadesinde tamsayı taşması"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "ifadede '(' eksik"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\"in soldaki terimi yükseltgenirken işaret değiştiriyor"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "\"%s\"in sağdaki terimi yükseltgenirken işaret değiştiriyor"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "geleneksel C tekil artı işlecini dışlar"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "#if'in teriminde virgül"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "#if içinde sıfırla bölme"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "find_file içinde boş dizin"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "bir veya daha fazla PCH dosyası bulundu ama bunlar geçersiz"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s bir blok aygıtıdır"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s çok büyük"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s beklenenden daha kısa"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "%s için aranacaklar içinde başlık dosyaları yolu yok"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t bir usigned tür olmalı"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "önişlemci aritmetiği %lu bitlik maksimum genişliğe sahip; hedef için %lu bit gerekiyor"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP aritmetiği en azından bir hedef int kadar genişlikte olmalı "
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "hedef char 8bitlik genişlikten küçük"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "hedef wchar_t hedef char'dan daha dar"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "hedef int hedef char'dan daha dar"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer'ı CPP character'dan daha dar"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "Bu konaktaki CPP %lu bitten büyük karakter sabitleriyle çalışamaz, hedef ise %lu bit gerektiriyor"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "ters bölü ve satırsonu arasında boşluk var"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "dosyanın sonunda tersbölülü satırsonu"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "??%c üçlü harfi %c olarak dönüştürüldü"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "??%c üçlü harfi yoksayıldı, yoksayılmaması için -trigraphs kullanın"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "açıklama içinde \"/*\" bulundu"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "önişlem yönergesi içinde %s"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "null karakter(ler) yoksayıldı"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' NFKC'de yok"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' NFC'de yok"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "zehirli \"%s\" kullanılmaya çalışılıyor"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ sadece argümanlarının sayısı değişebilen bir C99 makrosunun genişleme alanında görünebilir"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "\"%s\" belirteci, C++'da özel bir işleç adıdır"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "ham dizge ayracı 16 karakterden uzun"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "ham dizge ayracında geçersiz karakter '%c'"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "ham dizge ayracında geçersiz karakter '%c'"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "bitirilmemiş ham dizge"
+
+#: lex.c:1654 lex.c:1783
+#, fuzzy
+#| msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "geçersiz ifade soneki; C++11 ifade ve tanımlayıcı arasında bir boşluk gerektirir"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "null karakter(ler) sabit içinde saklanmış"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "sonlandıran %c karakteri eksik"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ tarzı açıklamalara ISO C90'da izin verilmez"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(her girdi dosyasında sadece bir kere raporlanacaktır)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "çok satırlı açıklama"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "dizgecik %s okunabilir değil"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "\"%s\" makrosu kullanılmadı"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "geçersiz yerleşik makro \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "dosya tarih damgası saptanamadı"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "tarih ve saat saptanamadı"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ -fdirectives-only ile talimat içerisinde genişletildi"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "geçersiz dizge sabit, son '\\' yoksayılıyor"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "\"%s\" ve \"%s\" geçişi geçerli bir önişlem dizgeciği vermez"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C kalan argümanların kullanılmış olmasını gerektirir"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "makro \"%s\" %u argüman gerektiriyor ama sadece %u argüman verilmiş"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "makro \"%s\" için %u argüman verilmiş ama tam %u argüman alıyor"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "sonlandırılmamış argüman listesi çağıran makro \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "işlev benzeri makro \"%s\" geleneksel C'de argümanlarla kullanılmalıdır"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "%s makrosu %d argümanı uygulanıyor: ISO C90 ve ISO C++98 içerisinde boş makro argümanları tanımsızdır"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "yinelenmiş makro parametresi \"%s\""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" makro parametre listesinde görünmeyebilir"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "makro parametreleri virgüllerle ayrılmış olmalı"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "parametre ismi eksik"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "argümanlarının sayısı değişebilen anonim makrolar C99 da tanıtıldı"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C argümanlarının sayısı değişebilen isimli makrolara izin vermez"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "makro parametre listesinde ')' eksik"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' bir makronun her iki ucunda da görünemez"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 makro isminden sonra boşluk gerektirir"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "makro isminden sonra boşluk gerekir"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' işaretinden sonra bir makro parametresi yok"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "\"%s\" yeniden tanımlanmış"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "burası evvelki tanımın yapıldığı yer"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "makro argümanı \"%s\" geleneksel C'de dizgelenmiş olmalıydı"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "önderlemeli başlık yazılırken"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: `%.*s' zehirli olduğu için kullanılmadı"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: `%.*s' kullanılmadı çünkü `%s' olarak tanımlı, `%.*s' değil"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: `__COUNTER__' geçersiz olduğundan kullanılmadı"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "önderlemeli başlık okunurken"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "makro \"%s\" genişletilirken iç içelik saptandı"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "makro parametre listesinde sözdizimi hatası"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "%x karakteri NFKC olmayabilir"
+
+#~ msgid "warning: "
+#~ msgstr "uyarı: "
+
+#~ msgid "internal error: "
+#~ msgstr "iç hata: "
+
+#~ msgid "error: "
+#~ msgstr "hata: "
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "sayı içindeki ondalık nokta sayısı çok fazla"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "sekizlik sabit içindeki \"%c\" geçersiz"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "üs rakam içermiyor"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "onaltılık gerçel sabitler bir üs gerektirir"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "\"%s\" dizgeciğinden önceki iki terimli işleç eksik"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "\"%s\" dizgeciği önişlemci ifadelerinde geçersizdir"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "'(' ve ')' arasında ifade eksik"
+
+#~ msgid "#if with no expression"
+#~ msgstr "#if ifadesiz"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "`%s' işlecinin sağ tarafı yok"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "`%s' işlecinin sol terimi yok"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr "':' den önce '?' yok"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "dosya sonunda satırsonu karakteri yok"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr ""
+#~ "Sırayla bir altındaki dosyada içerilerek:\n"
+#~ "\t\t%s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ "\t\t%s:%u"
diff --git a/gcc-4.9/libcpp/po/uk.po b/gcc-4.9/libcpp/po/uk.po
new file mode 100644
index 000000000..ba0c9841f
--- /dev/null
+++ b/gcc-4.9/libcpp/po/uk.po
@@ -0,0 +1,976 @@
+# Ukrainian translation of cpplib.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+#
+# Maxim V. Dziumanenko <dziumanenko@gmail.com>, 2007.
+# Yuri Chornoivan <yurchor@ukr.net>, 2012, 2013, 2014.
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-03 15:04+0200\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "перетворення з %s у %s не підтримується iconv"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "не реалізовано у iconv, не вдається перетворити з %s на %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "символ 0x%lx відсутній у базовому первинному наборі символів\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "перетворення на виконуваний набір символів"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "символ 0x%lx не однобайтовий у виконуваному наборі символів"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "універсальні назви символів допустимі лише у C++ та C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "сенс '\\%c' відрізняється від традиційної мови C"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "У _cpp_valid_ucn але не UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "неповна універсальна назва символу %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s не є допустимим універсальним символом"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "'$' у ідентифікаторі чи числі"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "універсальний символ %.*s не є допустимим у ідентифікаторі"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "універсальний символ %.*s не є допустимим на початку ідентифікатора"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "перетворення UCN на первинний набір символів"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "перетворення UCN на виконуваний набір символів"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "сенс '\\x' відрізняється від традиційної мови C"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x використовується з наступними шістнадцятковими цифрами"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "шістнадцяткова escape-послідовність поза межами діапазону"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "вісімкова escape-послідовність поза межами діапазону"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "сенс '\\a' відрізняється від традиційної мови C"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "escape-послідовність не за стандартом ISO, '\\%c'"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "невідома керівна послідовність: '\\%c'"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "Невідома escape-послідовність: '\\%s'"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "escape-послідовність перетворюється на виконуваний набір символів"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "символьна константа надто довга для вказаного типу"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "багатосимвольна символьна константа"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "порожня символьна константа"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "помилка при перетворені %s на %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "зайві лексеми наприкінці директиви #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s є розширенням GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s є застарілим розширенням GCC"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "рекомендується не використовувати #elif у традиційній мові C"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "у традиційній мові C ігноруються #%s, якщо # з відступом"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "рекомендується приховувати #%s у традиційній мові C використовуючи відступ перед #"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "вбудована директива з макроаргументами не є переносимою"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "стиль директиви line є розширенням GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "неправильна директива препроцесора #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "\"defined\" не може використовуватись як назва макросу"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "\"%s\" не може використовуватись як назва макросу, оскільки це - оператор у C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "не вказаний макрос у директиві #%s"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "назви макросів повинні бути ідентифікаторами"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "скасовується визначення \"%s\""
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "відсутній завершальний символ >"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s очікує \"FILENAME\" або <FILENAME>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "порожня назва файлу у #%s"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "надто глибоке вкладання #include"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next у первинному файлі тексту програми"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "некоректна ознака \"%s\" у директиві line"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "неочікуване завершення файла після #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "\"%s\" після #line не є додатнім цілим числом"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "номер рядка за межами діапазону"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "\"%s\" не є коректною назвою файлу"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "\"%s\" після # не є додатнім цілим числом"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "некоректна директива #%s"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "прагми реєструються у просторі назв \"%s\" за відсутності розширення назв"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "прагма \"%s\" реєструється з розширенням назви але без простору назви"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "\"%s\" реєструється як прагма та як простір назв прагм"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s вже зареєстровано"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s вже зареєстровано"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "реєструється pragma з NULL-обробником"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma один раз у головному файлі"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "некоректна директива #pragma push_macro"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "некоректна директива #pragma pop_macro"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "некоректна директива #pragma GCC poison"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "використання отруєння (poisoning) вже створеного макросу \"%s\""
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header проігноровано за межами включеного файлу"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "не вдається знайти первинний файл %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "поточний файл старіший ніж %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "некоректна директива «#pragma GCC %s»"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma охоплює дужками символьний літерал"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else без #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else після #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "умова починається тут"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif без #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif після #else"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif без #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "відсутня '(' після предикату"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "відсутня ')' для завершення відповіді"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "відповідь предиката порожня"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "твердження без предиката"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "предикат має бути ідентифікатором"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "\"%s\" повторне ствердження"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "незавершене #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "незавершений коментар"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "константи з фіксованим розташуванням крапки є розширенням GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "некоректний префікс \"0b\" для константи з рухомою крапкою"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "використовуйте десятково-шістнадцяткову константу з плаваючою комою мови C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "некоректний суфікс \"%.*s\" у константі з плаваючою комою"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "традиційною мовою C не сприймається суфікс \"%.*s\""
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "суфікс для констант double є розширенням GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "некоректний суфікс \"%.*s\" з десятково-шістнадцятковою константою з плаваючою комою"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "десяткові константи з рухомою крапкою є розширенням GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "некоректний суфікс \"%.*s\" у цілій константі"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "використання цілої константи long long C++11"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "використання цілої константи long long з C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "уявні константи є розширенням GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "бінарні константи є можливістю C++11 або розширенням GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "ціла константа надто велика для вказаного типу"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "ціла константа така велика, що вона не матиме знаку"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "відсутня ')' після \"defined\""
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "для оператора \"defined\" потрібен ідентифікатор"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(\"%s\" - альтернативна лексема для \"%s\" у C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "використання \"defined\" може бути непереносимим"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "буквальне визначення користувача у виразі для препроцесора"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "константа з плаваючою комою у виразі препроцесора"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "уявне число у виразі препроцесора"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "\"%s\" не визначено"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "assertions є розширенням GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "розширення assertions вважається застарілим"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "незбалансований стек у %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "неможливий оператор '%u'"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "відсутня ')' у виразі"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "'?' без наступного ':'"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "переповнення цілого числа у виразі препроцесора"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "відсутня '(' у виразі"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "лівий операнд \"%s\" змінює знак при підвищенні"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "правий оператор \"%s\" змінює знак при підвищенні"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "у традиційній мові C не допускається унарний оператор плюс"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "оператор кома у операнді #if"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "ділення на нуль у #if"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "значення каталогу NULL у find_file"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "знайдено один або більше файлів PCH, але вони некоректні"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "докладніша інформація виводиться, якщо вказати -Winvalid-pch"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s є блочним пристроєм"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s надто великий"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s коротший ніж очікувалося"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "відсутні шлях включення у якому ведеться пошук для %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Декілька include guards можуть бути корисні для:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t має бути беззнакового типу"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "арифметика препроцесора має максимальну точність %lu біт; ціль вимагає %lu біт"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "арифметика CPP повинна мати принаймні таку ж точність я у цільового цілого числа"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "ширина цільового типу char менша за 8 біт"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "цільовий wchar_t є вужчим за цільовий char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "цільовий тип int є вужчим ніж цільовий char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP half-integer є вужчим за CPP character"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "CPP на цьому вузлі не може обробляти константи з символів шириною понад %lu біт, але для цілі вимагається %lu біт"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "зворотна коса риска та символ нового рядка відділяються пробілом"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "зворотна коса риска та символ нового рядка наприкінці файлу"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "тристоронній ??%c перетворено на %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "тристоронній ??%c проігноровано, використовуйте -trigraphs, щоб увімкнути"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "\"/*\" всередині коментаря"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "%s в директиві препроцесора"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "null-символи проігноровані"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "`%.*s' не у NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "`%.*s' не у NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "спроба використати отруєного (poisoned) \"%s\""
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ може з'являтися лише у розширенні макросу variadic з мови C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "ідентифікатор \"%s\" є особливою назвою оператора у C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "роздільник необроблених рядків довжиною, що перевищує 16 символів"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "некоректний символ нового рядка у роздільнику простого рядка"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "некоректний символ, «%c», у роздільнику простого рядка"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "незавершений простий рядок"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "некоректний суфікс у літералі; стандарт C++11 вимагає використання пробілу між літералом та рядком макросу"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "null-символи збережені буквально"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "відсутній завершальний символ %c"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "Коментарі у стилі C++ неприпустимі згідно ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(повідомлення про це з'явиться лише один для вхідного файлу)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "багаторядковий коментар"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "неможливо розібрати лексему %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "макрос \"%s\" не використовується"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "некоректний вбудований макрос \"%s\""
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "макрос \"%s\" може завадити відтворюваному збиранню"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "не вдається визначити часову мітку файлу"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "не вдається визначити дату та час"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ розгорнуто всередині директиви з -fdirectives-only"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "некоректний символьний літерал, ігнорується завершальний символ '\\'"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "вставка \"%s\" та \"%s\" не призводить до коректної лексеми препроцесора"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 вимагає, щоб використовувались решта аргументів"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "для макросу \"%s\" потрібно вказати %u аргументів, але вказано лише %u"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "макросу \"%s\" передано %u аргументів, але з них використано лише %u"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "незавершений список аргументів у виклику макросу \"%s\""
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "подібний до функції макрос \"%s\" має використовуватися з аргументами у традиційній мові C"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "виклик макросу %s, аргумент %d: порожні аргументи макросів вважаються невизначеними у ISO C90 та ISO C++98"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "дублікат параметра макросу \"%s\""
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "\"%s\" не може з'являтися у списку параметрів макросу"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "параметри макросу мають бути розділені комами"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "відсутня назва параметра"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "анонімні макроси variadic започатковані у C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C не припускає іменовані макроси variadic"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "відсутня ')' у списку параметрів макросу"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "'##' не може з'являтися з обох кінців макророзширення"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "у ISO C99 має бути пробіл після назви макросу"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "відсутні пробіл після назви макросу"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "'#' не супроводжується параметром макросу"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "повторне визначення \"%s\""
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "...це місце першого визначення"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "аргумент макросу \"%s\" був би перетворений на рядок у традиційній мові C"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "некоректний типу хешу %d у cpp_macro_definition"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "при записі попередньо скомпільованих заголовків"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: не використовується, оскільки отруєно (poisoned) `%.*s'"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: не використовується оскільки `%.*s' не визначено"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: не використовується, оскільки `%.*s' визначено як `%s' не `%.*s'"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: не використовується, оскільки визначено `%s'"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: не використовується через некоректність `__COUNTER__'"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "при читанні попередньо скомпільованого заголовка"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "при розширенні макросу \"%s\" виявлено рекурсію"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "синтаксична помилка у списку параметрів макросу"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Символ %x може не бути NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "надто багато десяткових точок у числі"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "некоректна цифра, \"%c\", у двійковій константі"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "некоректна цифра \"%c\" у вісімковій константі"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "немає цифр шістнадцяткової константи з рухомою крапкою"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "експонента не має цифр"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "для десятково-шістнадцяткової константи з плаваючою комою потрібна експонента"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "відсутній двійковий оператор перед лексемою \"%s\""
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "лексема \"%s\" не є допустимим у виразі препроцесора"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "відсутній вираз між '(' та ')'"
+
+#~ msgid "%s with no expression"
+#~ msgstr "немає виразу у %s"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "оператор '%s' не містить коректного операнду"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "оператор '%s' не містить лівого операнду"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " ':' без подовження '?'"
+
+#~ msgid "warning: "
+#~ msgstr "попередження: "
+
+#~ msgid "internal error: "
+#~ msgstr "внутрішня помилка: "
+
+#~ msgid "error: "
+#~ msgstr "error: "
+
+#~ msgid "no newline at end of file"
+#~ msgstr "відсутній символ нового рядка наприкінці файлу"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "У файлі включеному з %s:%u"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " з %s:%u"
diff --git a/gcc-4.9/libcpp/po/vi.po b/gcc-4.9/libcpp/po/vi.po
new file mode 100644
index 000000000..41041200f
--- /dev/null
+++ b/gcc-4.9/libcpp/po/vi.po
@@ -0,0 +1,957 @@
+# Vietnamese translation for CPPlib.
+# Bản dịch tiếng Việt dành cho cpplib.
+# Copyright © 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib-4.9-b20140202\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2014-02-06 09:01+0700\n"
+"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language-Team-Website: <http://translationproject.org/team/vi.html>\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.5.5\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv không hỗ trợ khả năng chuyển đổi từ %s sang %s"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "iconv chưa thực hiện nên không thể chuyển đổi từ %s sang %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "ký tự 0x%lx không phải nằm trong bộ ký tự nguồn cơ bản\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "đang chuyển đổi sang bộ ký tự thi hành"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "ký tự 0x%lx không có dạng byte đơn trong bộ ký tự thi hành"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "tên ký tự chung là hợp lệ chỉ trong ngôn ngữ C++ và C99"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "“\\%c” có nghĩa khác trong ngôn ngữ C truyền thống"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "Trong “_cpp_valid_ucn” nhưng mà không phải là một UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "tên ký tự chung %.*s chưa hoàn thành"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s không phải là ký tự chung hợp lệ"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "gặp “$” trong định danh hay con số"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "ký tự toàn cầu %.*s không hợp lệ trong một định danh"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "ký tự toàn cầu %.*s không hợp lệ tại đầu của một định danh"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự nguồn"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "đang chuyển đổi UCN sang bộ ký tự thi hành"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "“\\x” có nghĩa khác trong ngôn ngữ C truyền thống"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x được dùng mà không có chữ số thập lục theo sau"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "dãy thoát thập lục ở ngoài phạm vi"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "dãy thoát bát phân ở ngoài phạm vi"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "“\\a” có nghĩa khác trong ngôn ngữ C truyền thống"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "dãy thoát khác chuẩn ISO: “\\%c”"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "không hiểu dãy thoát: “\\%c”"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "không hiểu dãy thoát: “\\%s”"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "đang chuyển đổi dãy thoát sang bộ ký tự thi hành"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "hằng ký tự quá dài cho kiểu nó"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "hằng ký tự đa ký tự"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "hằng ký tự trống"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "gặp lỗi nghiêm trong khi chuyển đổi %s sang %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "gặp thẻ bài thừa tại kết thúc của chỉ thị #%s"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s là phần mở rộng kiểu GCC"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s là một phần mở rộng GCC đã lạc hậu"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "khuyên bạn không dùng #elif trong ngôn ngữ C truyền thống"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "ngôn ngữ C truyền thống bỏ qua #%s với # được thụt lề"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "khuyên bạn ẩn #%s ra ngôn ngữ C truyền thống bằng # được thụt lề"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "khả năng nhúng chỉ thị vào đối số vĩ lệnh không thể mạng theo"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "kiểu chỉ thị dòng là phần mở rộng GCC"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "chỉ thị tiền xử lý không hợp lệ #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "không thể dùng “defined” (đã định nghĩa) như là tên vĩ lệnh"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "không thể dùng “%s” như là tên vĩ lệnh vì nó là toán tử trong ngôn ngữ C++"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "chỉ thị #%s không chứa tên vĩ lệnh"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "mọi tên vĩ lệnh phải là một định danh"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "đang hủy định nghĩa “%s”"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "thiếu ký tự “>” chấm dứt"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s cần \"TÊN_TẬP_TIN\" hoặc <TÊN_TẬP_TIN>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s chứa tên tập tin trống"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "“#include” (bao gồm) lồng nhau quá sâu"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "gặp “#include_next” (bao gồm kế tiếp) nằm trong tập tin nguồn chính"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "gặp cờ không hợp lệ “%s” nằm trong chỉ thị dòng"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "gặp kết thúc tập tin bất thường đằng sau #line"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "“%s” nằm sau “#line” (dòng) không phải là số nguyên dương"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "số dòng nằm ngoài phạm vi"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "“%s” không phải là tên tập tin hợp lệ"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "“%s” nằm sau “#” không phải là số nguyên dương"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "chỉ thị #%s không hợp lệ"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "việc đăng ký các lệnh mã nguồn điều khiển trình biên dịch (pragma) trong miền tên “%s” sai mở rộng tên "
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "việc đăng ký lệnh mã nguồn điều khiển trình biên dịch (pragma) “%s” có mở rộng tên nhưng không có miền tên"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "đang đăng ký “%s” là cả lệnh nguồn điều khiển trình biện dịch (pragma), lẫn miền tên của lệnh nguồn điều khiển trình biên dịch."
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "“#pragma %s %s” đã được đăng ký"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "“#pragma %s” đã được đăng ký"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "việc đăng ký lệnh mã nguồn điều khiển trình biên dịch (pragma) có bộ quản lý vô giá trị (NULL)"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "Có “#pragma” một lần trong tập tin chính"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "gặp chỉ thị #pragma push_macro sai"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "gặp chỉ thị #pragma pop_macro sai"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "gặp chỉ thị vô hiệu hóa (poison) GCC “#pragma” không hợp lệ"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "đang vô hiệu hóa vĩ lệnh tồn tại “%s”"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "“#pragma system_header” (đầu trang hệ thống) bị bỏ qua ở ngoài tập tin bao gồm"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "không tìm thấy tập tin nguồn %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "tập tin hiện thời là cũ hơn %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "gặp chỉ thị \"#pragma GCC %s\" không hợp lệ"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "“_Pragma” nhận một hằng chuỗi được đặt trong ngoặc đơn"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else (nếu không) mà không có #if (nếu)"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else (nếu không) nằm sau #else"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "bộ điều kiện đã bắt đầu ở đây"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif (nếu không thì nếu) không có #if (nếu)"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif (nếu không thì nếu) nằm sau #else (nếu không)"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif (nếu không đúng) không có #if (nếu)"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "thiếu “(” nằm sau vị ngữ"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "thiếu “)” để hoàn tất câu trả lời"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "vị ngữ chứa trả lời trống"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "sự khẳng định không có vị ngữ"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "vị ngữ phải là định danh"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "“%s” được khẳng định lại"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "#%s chưa chấm dứt"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "gặp chú thích chưa được chấm dứt"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "thiết bị xuất chuẩn"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "hằng số thực dấu chấm tĩnh là phần mở rộng GCC"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "gặp tiền tố không hợp lệ “0b” cho hằng dấu chấm động"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "dùng hằng dấu chấm động thập lục C99"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "gặp hậu tố không hợp lệ “%.*s” nằm trên hằng dấu chấm động"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "ngôn ngữ C truyền thống từ chối hậu tố “%.*s”"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "hậu tố cho hằng số đôi là một phần mở rộng GCC"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "gặp hậu tố không hợp lệ “%.*s” có hằng dấu chấm động thập lục"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "hằng dấu chấm động thập lục là phần mở rộng GCC"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "gặp hậu tố không hợp lệ “%.*s” nằm trên hằng số nguyên"
+
+#: expr.c:667
+msgid "use of C++11 long long integer constant"
+msgstr "dùng hằng số nguyên dài dài C++11"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "dùng hằng số nguyên dài dài C99"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "hằng ảo là phần mở rộng GCC"
+
+#: expr.c:690
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "hằng nhị phân là đặc tính C++1y hoặc phần mở rộng GCC"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "hằng số nguyên quá lớn cho kiểu nó"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "hằng số nguyên quá lớn thì không có dấu"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "thiếu “)” nằm sau “defined” (đã định nghĩa)"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "toán tử “defined” (đã định nghĩa) cần đến định danh"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(“%s” là một thẻ bài thay thế cho “%s” trong ngôn ngữ C++)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "khả năng dùng “defined” (đã định nghĩa) có lẽ không khả chuyển"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "kiểu do người dùng định nghĩa trong biểu thức tiền xử lý"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "gặp hằng dấu chấm động nằm trong biểu thức tiền xử lý"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "gặp số ảo nằm trong biểu thức tiền xử lý"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "chưa định nghĩa “%s”"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "khẳng định là một phần mở rộng GCC"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "khẳng định là một phần mở rộng GCC bị phản đối"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "có stack không cân bằng trong %s"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "toán từ không thể “%u”"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "thiếu “)” trong biểu thức"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "Dấu hỏi “?” mà không có dấu hai chấm “:” đi sau"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "tràn số nguyên trong biểu thức tiền xử lý"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "thiếu “(” trong biểu thức"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "toán hạng bên trái của “%s” thay đổi dấu (dương/âm) khi được tăng cấp"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "toán hạng bên phải của “%s” thay đổi dấu (dương/âm) khi đươc tăng cấp"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "ngôn ngữ C truyền thống từ chối toán tử cộng chỉ có một toán hạng"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "toán tử dấu phẩy nằm trong toán hạng của #if (nếu)"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "chia cho số không trong #if (nếu)"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "thư mục RỖNG trong “find_file” (tìm tập tin)"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "tìm thấy một hay nhiều tập tin PCH, nhưng chúng không hợp lệ"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "dùng “-Winvalid-pch” để tìm thấy thêm thông tin cần thiết"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s là một thiết bị khối"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s quá lớn"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s ngắn hơn mong đợi"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "không có đường dẫn bao gồm trong đó có thể tìm kiếm %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "Nhiều bộ bảo vệ bao gồm có lẽ hiệu ích cho :\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "“cppchar_t” phải là kiểu không dấu"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "toán thuật của trình tiền xử lý có độ chính xác tối đa là %lu bit còn đích cần đến %lu bit"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "toán thuật CPP phải là ít nhất cùng chính xác với “int” đích"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "“char” đích có độ rộng ít hơn 8 bit"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "“wchar_t” đích có độ rộng ít hơn “char” đích"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "“int” đích có độ rộng ít hơn “char” đích"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "nửa-số-nguyên CPP có độ rộng ít hơn ký tự CPP"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "Trên máy này, CPP không thể xử lý hằng ký tự rộng hơn %lu bit, còn đích lại yêu cầu %lu bit"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "dấu gạch ngược và ký tự dòng mới phân cách nhau bởi dấu cách"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "gặp dấu gạch ngược tại kết thúc của tập tin"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "bộ ba “??%c” đã được chuyển đổi thành “%c”"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "bộ ba “??%c” bị bỏ qua nên hãy sử dụng tùy chọn “-trigraphs” (bộ ba) để hiệu lực nó"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "gặp “/*” nằm trong chú thích"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "gặp %s nằm trong chỉ thị tiền xử lý"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "(mọi) ký tự null bị bỏ qua"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "“%.*s” không phải nằm trong NFKC"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "“%.*s” không nằm trong NFC"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "đã cố gắng dùng “%s” bị vô hiệu hóa"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "“__VA_ARGS__” chỉ có thể xuất hiện trong sự mở rộng của vĩ lệnh biến thiên C99"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "định danh “%s” là một tên toán tử đặc biệt trong C++"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "gặp dấu giới hạn chuỗi thô dài hơn 16 ký tự"
+
+#: lex.c:1558
+msgid "invalid new-line in raw string delimiter"
+msgstr "ký tự dòng-mới không hợp lệ trong dấu giới hạn chuỗi thô"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "gặp ký tự sai “%c” trong dấu giới hạn chuỗi thô"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "chuỗi thô chưa được chấm dứt"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "hậu tố ở chuỗi văn bản không hợp lệ; C++11 yêu cầu cần có khoảng trắng giữ chuỗi văn bản và chuỗi vĩ lệnh"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "(các) ký tự rỗng được giữ lại trong chuỗi văn học"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "thiếu ký tự “%c” chấm dứt"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "không cho phép chú thích kiểu C++ nằm trong ISO C90"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(điều này sẽ được thông báo chỉ một lần cho mỗi tập tin đầu vào)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "gặp chú thích đa dòng"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "gặp thẻ bài không thể chính tả %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "vĩ lệnh “%s” không được dùng"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "vĩ lệnh dựng-sẵn không hợp lệ “%s”"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr "vĩ lệnh \"%s\" có thể ngăn cản việc dịch tái sinh"
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "không thể quyết định nhãn giờ của tập tin"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "không thể quyết định ngày và giờ"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ đã mở rộng bên trong chỉ thị với “-fdirectives-only”"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "chuỗi văn học không hợp lệ nên bỏ qua “\\” cuối cùng"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "việc dán “%s” và “%s” không đưa ra thẻ bài tiền xử lý hợp lệ"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 cần đến đối số còn lại trong khối được dùng"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "vĩ lệnh “%s” cần đến %u đối số, nhưng chỉ đưa ra %u thôi"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "vĩ lệnh “%s” đã gửi %u đối số, nhưng nhận chỉ %u thôi"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "danh sách đối số không được chấm dứt có gọi vĩ lệnh “%s”"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "vĩ lệnh giống hàm số “%s” phải được dùng với đối số trong ngôn ngữ C truyền thống"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "đang gọi vĩ lệnh %s đối số %d: đối số vĩ lệnh còn rộng chưa được định nghĩa tùy theo tiêu chuẩn ISO C90 và ISO C++98 "
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "tham số vĩ lệnh trùng lặp “%s”"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "không cho phép “%s” xuất hiện trong danh sách tham số vĩ lệnh"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "các tham số bộ đối số phải được ngăn cách bởi dấu phẩy"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "thiếu tên tham số"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "vĩ lệnh biến thiên vô danh đã được giới thiệu trong C99"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C không cho phép vĩ lệnh biến thiên có tên"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "thiếu “)” trong danh sách tham số bộ đối số"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "không cho phép “##” nằm hoặc trước hoặc sau sự mở rộng vĩ lệnh"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 cần đến khoảng trắng nằm sau tên vĩ lệnh"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "thiếu khoảng trắng nằm sau tên vĩ lệnh"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "“#” không cho phép đi theo sau một tham số vĩ lệnh"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "“%s” bị định nghĩa lại"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "đây là vị trí của lời định nghĩa trước"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "đối số vĩ lệnh “%s” nên được chuyển đổi thành chuỗi trong ngôn ngữ C truyền thống"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "gặp kiểu băm không hợp lệ %d trong “cpp_macro_definition” (lời định nghĩa vĩ lệnh)"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "trong khi ghi đầu trang biên dịch sẵn"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s: không được dùng vì “%.*s” không còn tin cậy lại (bị dữ liệu sai thay thế)"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s: không được dùng vì chưa định nghĩa “%.*s”"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s: không được dùng vì “%.*s” đã được định nghĩa là “%s” không phải “%.*s”"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s: không được dùng vì “%s” đã được định nghĩa"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s: không được dùng vì “__COUNTER__” không hợp lệ"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "trong khi đọc đầu trang biên dịch sẵn"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "đã phát hiện sự đệ qui trong khi mở rộng vĩ lệnh “%s”"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "gặp lỗi cú pháp trong danh sách tham số vĩ lệnh"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "Ký tự %x có lẽ không phải có kiểu NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "con số chứa quá nhiều dấu thập phân"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "gặp chữ số không hợp lệ “%c” trong hằng nhị phân"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "gặp chữ số không hợp lệ “%c” trong hằng bát phân"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "hằng dấu chấm động thập lục không chứa chữ số"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "số mũ không có chữ số nào"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "mỗi hằng dấu chấm động thập lục cần đến một số mũ"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "thiếu toán tử nhị phân nằm trước thẻ bài “%s”"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "thẻ bài “%s” không hợp lệ trong biểu thức tiền xử lý"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "thiếu biểu thức nằm giữa “(” và “)”"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s mà không có biểu thức"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "toán tử “%s” không có toán hạng bên phải"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "toán tử “%s” không có tác từ bên trái"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr " Dấu hai chấm “:” mà không có dấu hỏi “?” đi trước"
diff --git a/gcc-4.9/libcpp/po/zh_CN.po b/gcc-4.9/libcpp/po/zh_CN.po
new file mode 100644
index 000000000..d93d394b9
--- /dev/null
+++ b/gcc-4.9/libcpp/po/zh_CN.po
@@ -0,0 +1,984 @@
+# Simplified Chinese translation for cpplib.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Meng Jie <zuxy.meng@gmail.com>, 2005-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.6.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2011-05-12 17:23+0800\n"
+"Last-Translator: Meng Jie <zuxy.meng@gmail.com>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv 不支持从 %s 到 %s 的转换"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "没有 iconv 的实现,无法从 %s 转换到 %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "字符 0x%lx 不在基本源字符集中\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "转换到可执行文件的字符集"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "字符 0x%lx 在执行字符集中不是单字节的"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "Unicode 字符名只在 C++ 和 C99 中有效"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "‘\\%c’的意义与在传统 C 中不同"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "在 _cpp_valid_ucn 中但不是一个 UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "不完全的 Unicode 字符名 %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s 不是一个有效的 Unicode 字符"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "‘$’出现在标识符或数字中"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "Unicode 字符 %.*s 在标识符中无效"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "Unicode 字符 %.*s 在标识符开头无效"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "将 UCN 转换到源字符集"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "将 UCN 转换到执行字符集"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "‘\\x’的意义与在传统 C 中不同"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x 后没有 16 进制数字"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "16 进制转义序列越界"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "8 进制转义序列越界"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "‘\\a’的意义与在传统 C 中不同"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "非 ISO 标准的转义序列,‘\\%c’"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "未知的转义序列:‘\\%c’"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "未知的转义序列:‘\\%s’"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "将转义序列转换到执行字符集"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "字符常量大小超出其类型"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "多字节字符常量"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "空的字符常量"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "无法从 %s 转换到 %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s 指示的末尾有多余的标识符"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s 是一个 GCC 扩展"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s 是一个已过时的 GCC 扩展"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "建议在传统 C 中不使用 #elif"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "当 # 有缩进时传统 C 忽略 #%s"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "建议使用缩进的 # 以让 #%s 对传统 C 不可见"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "将一个指示嵌入宏参数中是不可移植的"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "line 指示的风格是一个 GCC 扩展"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "无效的预处理指示 #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "“defined”不能被用作宏名"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "“%s”不能被用作宏名,因为它是 C++ 中的一个操作符"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指示中未给出宏名"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "宏名必须是标识符"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "取消对“%s”的定义"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "缺少结尾的 > 字符"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s 需要 \"FILENAME\" 或 <FILENAME>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 中文件名为空"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include 嵌套过深"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next 出现在主源文件中"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "line 指示中有无效的标记“%s”"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "#line 后未预期的文件结束"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line 后的“%s”不是一个正整数"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "行号超出范围"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "“%s”不是一个有效的文件名"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# 后的“%s”不是一个正整数"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "无效的 #%s 指示"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "在命名空间“%s”中注册 pragma 时名称扩展不匹配"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "pragma “%s”被注册为一个命名扩展,而没有命名空间"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "“%s”既被注册为一个pragma 又被注册为一个 pragma 命名空间"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s 已经被注册"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s 已经被注册"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "pragma 注册为被 NULL 处理"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma once 出现在主文件中"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "无效的 #pragma push_macro 指示"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "无效的 #pragma pop_macro 指示"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "无效的 #pragma GCC poison 指示"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "对已存在的宏“%s”投毒"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_heade 在包含文件外被忽略"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "找不到源文件 %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "当前文件早于 %s"
+
+#: directives.c:1653
+#, fuzzy, c-format
+#| msgid "invalid #pragma GCC poison directive"
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "无效的 #pragma GCC poison 指示"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma 需要一个括起的字符串字面常量"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else 没有匹配的 #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else 出现在 #else 后"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "条件自此开始"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif 没有匹配的 #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif 出现在 #else 后"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif 没有匹配的 #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "谓词后缺少‘(’"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "完整的答案缺少‘)’"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "谓词的答案为空"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "断言后没有谓词"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "谓词必须是一个标识符"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "重断言“%s”"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "未终止的 #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "未结束的注释"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "定点常量是一个 GCC 扩展"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "浮点常量的“0b”前缀无效"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "使用 C99 式的 16 进制浮点常量"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮点常量的“%.*s”后缀无效"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "传统 C 不接受“%.*s”后缀"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "双精度常量后缀是一个 GCC 扩展"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "十六进制浮点常量的“%.*s”后缀无效"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "十进制浮点常量是一个 GCC 扩展"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整数常量的“%.*s”后缀无效"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "使用 C++0x long long 整数常量"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "使用 C99 long long 整数常量"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "虚数常量是一个 GCC 扩展"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "二进制常量是一个 GCC 扩展"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "整数常量值超出其类型"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "整数常量太大,认定为 unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "“defined” 后出现‘)’"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "操作符“defined”需要一个标识符"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(在 C++ 中“%s”会是“%s”的替代标识符)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "使用“defined”可能不利于移植"
+
+#: expr.c:998
+#, fuzzy
+#| msgid "integer overflow in preprocessor expression"
+msgid "user-defined literal in preprocessor expression"
+msgstr "预处理表达式中整数溢出"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "浮点常量出现在预处理表达式中"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "预处理表达式中出现虚数"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "“%s”未定义"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "断言是一个 GCC 扩展"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "断言是一个已过时的 GCC 扩展"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s 中堆栈不平衡"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "不可能的操作‘%u’"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "表达式中缺少‘)’"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "‘?’后没有‘:’"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "预处理表达式中整数溢出"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "表达式中缺少‘(’"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "“%s”的左操作数在提升时变换了符号"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "“%s”的右操作数在提升时变换了符号"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "传统 C 不接受单目 + 运算符"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "#if 操作数中出现逗号"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "#if 中用零做除数"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "find_file 中有 NULL 目录"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "找到一个或多个 PCH 文件,但它们是无效的"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "使用 -Winvalid-pch 以获得更多信息"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s 是一个块设备"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s 过大"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s 短于预期"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "没有包含路径可供搜索 %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "多个防止重包含可能对其有用:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t 必须是无符号型"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "预处理算术的最高精度为 %lu 位;目标需要 %lu 位"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 算术必须至少具有目标 int 的精度"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "目标 char 短于 8 位"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "目录 wchar_t 短于目标 char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "目标 int 短于目标 char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP 半整数短于 CPP 字符"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "在此宿主机上,CPP 不能处理长于 %lu 位的宽字符常量,但目标需要 %lu 位"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "反斜杠和换行为空格所分隔"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "反斜杠续行出现在文件末尾"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "三元符 ??%c 转换为 %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "三元符 ??%c 被忽略,请使用 -trigraphs 来启用"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "“/*”出现在注释中"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "预处理指示中出现 %s"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "忽略空字符"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "‘%.*s’不在 NFKC 中"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "‘%.*s’不在 NFC 中"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "试图使用有毒的“%s”"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ 只能出现在 C99 可变参数宏的展开中"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "标识符“%s”是 C++ 中的一个特殊操作符"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "原始字符串分隔符长过 16 个字符"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "原始字符串分隔符中有无效字符‘%c’"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "原始字符串分隔符中有无效字符‘%c’"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "未终止的原始字符串"
+
+#: lex.c:1654 lex.c:1783
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr ""
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "空字符将保留在字面字符串中"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "缺少结尾的 %c 字符"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ 风格的注释在 ISO C90 中不被允许"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(此警告为每个输入文件只报告一次)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "多行注释"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "无法拼出的标识符 %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "宏“%s”未被使用"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "无效的内建宏“%s”"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "无法决定文件的时间戳"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "无法决定日期与时间"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "带 -fdirectives-only 时 __COUNTER__ 在指示中扩展"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "无效的字面字符串,忽略最后的‘\\’"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "毗连“%s”和“%s”不能给出一个有效的预处理标识符"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 需要使用剩余的参数"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "宏“%s”需要 %u 个参数,但只给出了 %u 个"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "宏“%s”传递了 %u 个参数,但只需要 %u 个"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "调用宏“%s”时参数列表未终止"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "类似函数的宏“%s”在传统 C 中必须与参数一起使用"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "调用宏 %s 的参数 %d:空的宏参数未被 ISO C90 和 ISO C++98 定义"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "重复的宏参数“%s”"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "“%s”不能出现在宏参数列表中"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "宏参数必须由逗号隔开"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "缺少形参名"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "匿名可变参数宏在 C99 中被引入"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C 不允许有名的可变参数宏"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "在宏参数表中缺少‘)’"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "‘##’不能出现在宏展开的两端"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 要求宏名后必须有空白"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "宏名后缺少空白"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "‘#’后没有宏参数"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "“%s”重定义"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "这是先前定义的位置"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "宏参数“%s”将在传统 C 中被字符串化"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 中有无效的散列类型 %d"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "在写入预编译头时"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s:未使用因为‘%.*s’已被投毒"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s:未使用因为‘%.*s’未定义"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s:未使用因为‘%.*s’被定义为‘%s’而非‘%*.s’"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s:未使用因为‘%s’已定义"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s:未使用因为‘__COUNTER__’无效"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "在读取预编译头时"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "展开宏“%s”时检测到递归"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "宏参数列表语法错误"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "字符 %x 可能不是 NFKC"
+
+#~ msgid "too many decimal points in number"
+#~ msgstr "数字中有太多小数点"
+
+#~ msgid "invalid digit \"%c\" in binary constant"
+#~ msgstr "二进制常量中有无效数字“%c”"
+
+#~ msgid "invalid digit \"%c\" in octal constant"
+#~ msgstr "8 进制常量中有非法字符“%c”"
+
+#~ msgid "no digits in hexadecimal floating constant"
+#~ msgstr "16 进制浮点常量中没有数字"
+
+#~ msgid "exponent has no digits"
+#~ msgstr "指数部分没有数字"
+
+#~ msgid "hexadecimal floating constants require an exponent"
+#~ msgstr "16 进制浮点常量需要指数部分"
+
+#~ msgid "missing binary operator before token \"%s\""
+#~ msgstr "标识符“%s”前缺少二元运算符"
+
+#~ msgid "token \"%s\" is not valid in preprocessor expressions"
+#~ msgstr "标识符“%s”在预处理表达式中无效"
+
+#~ msgid "missing expression between '(' and ')'"
+#~ msgstr "‘(’与‘)’之间缺少表达式"
+
+#~ msgid "%s with no expression"
+#~ msgstr "%s 后没有表达式"
+
+#~ msgid "operator '%s' has no right operand"
+#~ msgstr "操作符‘%s’没有右操作数"
+
+#~ msgid "operator '%s' has no left operand"
+#~ msgstr "操作符‘%s’没有左操作数"
+
+#~ msgid " ':' without preceding '?'"
+#~ msgstr "‘:’前没有‘?’"
+
+#~ msgid "warning: "
+#~ msgstr "警告:"
+
+#~ msgid "internal error: "
+#~ msgstr "内部错误:"
+
+#~ msgid "error: "
+#~ msgstr "错误:"
+
+#~ msgid "In file included from %s:%u"
+#~ msgstr "在包含自 %s:%u 的文件中"
+
+#~ msgid ""
+#~ ",\n"
+#~ " from %s:%u"
+#~ msgstr ""
+#~ ",\n"
+#~ " 从 %s:%u"
+
+#~ msgid "no newline at end of file"
+#~ msgstr "文件未以空白行结束"
diff --git a/gcc-4.9/libcpp/po/zh_TW.po b/gcc-4.9/libcpp/po/zh_TW.po
new file mode 100644
index 000000000..f6d1eb602
--- /dev/null
+++ b/gcc-4.9/libcpp/po/zh_TW.po
@@ -0,0 +1,922 @@
+# Traditional Chinese translation for cpplib.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gcc package.
+# Meng Jie <zuxyhere@eastday.com>, 2005.
+# Wei-Lun Chao <bluebat@member.fsf.org>, 2006, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cpplib 4.8.0\n"
+"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
+"POT-Creation-Date: 2014-02-02 17:35+0000\n"
+"PO-Revision-Date: 2013-03-27 23:37+0800\n"
+"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n"
+"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
+"Language: zh_TW\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: charset.c:673
+#, c-format
+msgid "conversion from %s to %s not supported by iconv"
+msgstr "iconv 不支援從 %s 到 %s 的轉換"
+
+#: charset.c:676
+msgid "iconv_open"
+msgstr "iconv_open"
+
+#: charset.c:684
+#, c-format
+msgid "no iconv implementation, cannot convert from %s to %s"
+msgstr "沒有實作 iconv,無法從 %s 轉換到 %s"
+
+#: charset.c:780
+#, c-format
+msgid "character 0x%lx is not in the basic source character set\n"
+msgstr "字元 0x%lx 不在基本來源字元集中\n"
+
+#: charset.c:797 charset.c:1447
+msgid "converting to execution character set"
+msgstr "轉換到可執行檔案的字元集"
+
+#: charset.c:803
+#, c-format
+msgid "character 0x%lx is not unibyte in execution character set"
+msgstr "字元 0x%lx 在執行字元集中不是單位元組的"
+
+#: charset.c:997
+msgid "universal character names are only valid in C++ and C99"
+msgstr "萬國碼字元名稱只在 C++ 和 C99 中有效"
+
+#: charset.c:1000
+#, c-format
+msgid "the meaning of '\\%c' is different in traditional C"
+msgstr "「\\%c」的意義與在傳統 C 中不同"
+
+#: charset.c:1009
+msgid "In _cpp_valid_ucn but not a UCN"
+msgstr "在 _cpp_valid_ucn 中並不是一個 UCN"
+
+#: charset.c:1034
+#, c-format
+msgid "incomplete universal character name %.*s"
+msgstr "不完整的萬國碼字元名稱 %.*s"
+
+#: charset.c:1049
+#, c-format
+msgid "%.*s is not a valid universal character"
+msgstr "%.*s 不是一個有效的萬國碼字元"
+
+#: charset.c:1059 lex.c:1126
+msgid "'$' in identifier or number"
+msgstr "「$」出現在識別字或數字中"
+
+#: charset.c:1069
+#, c-format
+msgid "universal character %.*s is not valid in an identifier"
+msgstr "萬國碼字元 %.*s 在識別字中無效"
+
+#: charset.c:1073
+#, c-format
+msgid "universal character %.*s is not valid at the start of an identifier"
+msgstr "萬國碼字元 %.*s 在識別字開頭無效"
+
+#: charset.c:1105 charset.c:1677
+msgid "converting UCN to source character set"
+msgstr "將 UCN 轉換到來源字元集"
+
+#: charset.c:1109
+msgid "converting UCN to execution character set"
+msgstr "將 UCN 轉換到執行字元集"
+
+#: charset.c:1181
+msgid "the meaning of '\\x' is different in traditional C"
+msgstr "「\\x」的意義與在傳統 C 中不同"
+
+#: charset.c:1198
+msgid "\\x used with no following hex digits"
+msgstr "\\x 後沒有十六進位數字"
+
+#: charset.c:1205
+msgid "hex escape sequence out of range"
+msgstr "十六進位逸出序列越界"
+
+#: charset.c:1243
+msgid "octal escape sequence out of range"
+msgstr "八進位逸出序列越界"
+
+#: charset.c:1309
+msgid "the meaning of '\\a' is different in traditional C"
+msgstr "「\\a」的意義與在傳統 C 中不同"
+
+#: charset.c:1316
+#, c-format
+msgid "non-ISO-standard escape sequence, '\\%c'"
+msgstr "非 ISO 標準的逸出序列,「\\%c」"
+
+#: charset.c:1324
+#, c-format
+msgid "unknown escape sequence: '\\%c'"
+msgstr "不明的逸出序列:『\\%c』"
+
+#: charset.c:1332
+#, c-format
+msgid "unknown escape sequence: '\\%s'"
+msgstr "不明的逸出序列:「\\%s」"
+
+#: charset.c:1339
+msgid "converting escape sequence to execution character set"
+msgstr "將逸出序列轉換到執行字元集"
+
+#: charset.c:1512 charset.c:1576
+msgid "character constant too long for its type"
+msgstr "字元常數大小超出其類型"
+
+#: charset.c:1515
+msgid "multi-character character constant"
+msgstr "多位元組字元常數"
+
+#: charset.c:1615
+msgid "empty character constant"
+msgstr "空的字元常數"
+
+#: charset.c:1724
+#, c-format
+msgid "failure to convert %s to %s"
+msgstr "無法從 %s 轉換到 %s"
+
+#: directives.c:224 directives.c:250
+#, c-format
+msgid "extra tokens at end of #%s directive"
+msgstr "#%s 指令的末尾有多餘的符記"
+
+#: directives.c:357
+#, c-format
+msgid "#%s is a GCC extension"
+msgstr "#%s 是 GCC 擴充功能"
+
+#: directives.c:362
+#, c-format
+msgid "#%s is a deprecated GCC extension"
+msgstr "#%s 是不宜再用的 GCC 擴充功能"
+
+#: directives.c:375
+msgid "suggest not using #elif in traditional C"
+msgstr "建議在傳統 C 中不要使用 #elif"
+
+#: directives.c:378
+#, c-format
+msgid "traditional C ignores #%s with the # indented"
+msgstr "當 # 有縮排時傳統 C 忽略 #%s"
+
+#: directives.c:382
+#, c-format
+msgid "suggest hiding #%s from traditional C with an indented #"
+msgstr "建議使用縮排的 # 以讓 #%s 對傳統 C 不可見"
+
+#: directives.c:408
+msgid "embedding a directive within macro arguments is not portable"
+msgstr "將一個指令內嵌於巨集參數中是不可移植的"
+
+#: directives.c:428
+msgid "style of line directive is a GCC extension"
+msgstr "line 指令的風格是 GCC 擴充功能"
+
+#: directives.c:483
+#, c-format
+msgid "invalid preprocessing directive #%s"
+msgstr "無效的預先處理指令 #%s"
+
+#: directives.c:551
+msgid "\"defined\" cannot be used as a macro name"
+msgstr "「defined」不能做為巨集名"
+
+#: directives.c:557
+#, c-format
+msgid "\"%s\" cannot be used as a macro name as it is an operator in C++"
+msgstr "「%s」不能做為巨集名,因為它是 C++ 中的一個運算子"
+
+#: directives.c:560
+#, c-format
+msgid "no macro name given in #%s directive"
+msgstr "#%s 指令中未給出巨集名"
+
+#: directives.c:563
+msgid "macro names must be identifiers"
+msgstr "巨集名必須是識別字"
+
+#: directives.c:612
+#, c-format
+msgid "undefining \"%s\""
+msgstr "取消對「%s」的定義"
+
+#: directives.c:667
+msgid "missing terminating > character"
+msgstr "缺少結尾的 > 字元"
+
+#: directives.c:726
+#, c-format
+msgid "#%s expects \"FILENAME\" or <FILENAME>"
+msgstr "#%s 需要 \"FILENAME\" 或 <FILENAME>"
+
+#: directives.c:772
+#, c-format
+msgid "empty filename in #%s"
+msgstr "#%s 中檔案名稱為空"
+
+#: directives.c:782
+msgid "#include nested too deeply"
+msgstr "#include 巢狀過深"
+
+#: directives.c:823
+msgid "#include_next in primary source file"
+msgstr "#include_next 出現在主來源檔案中"
+
+#: directives.c:849
+#, c-format
+msgid "invalid flag \"%s\" in line directive"
+msgstr "line 指令中有無效的標記「%s」"
+
+#: directives.c:909
+msgid "unexpected end of file after #line"
+msgstr "#line 之後未預期的檔案結束"
+
+#: directives.c:912
+#, c-format
+msgid "\"%s\" after #line is not a positive integer"
+msgstr "#line 後的「%s」不是一個正整數"
+
+#: directives.c:918 directives.c:920
+msgid "line number out of range"
+msgstr "列號超出範圍"
+
+#: directives.c:933 directives.c:1013
+#, c-format
+msgid "\"%s\" is not a valid filename"
+msgstr "「%s」不是一個有效的檔案名稱"
+
+#: directives.c:973
+#, c-format
+msgid "\"%s\" after # is not a positive integer"
+msgstr "# 後的「%s」不是一個正整數"
+
+#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: directives.c:1096
+#, c-format
+msgid "invalid #%s directive"
+msgstr "無效的 #%s 指令"
+
+#: directives.c:1159
+#, c-format
+msgid "registering pragmas in namespace \"%s\" with mismatched name expansion"
+msgstr "以不匹配的名稱擴展去註冊命名空間「%s」中的編譯指示"
+
+#: directives.c:1168
+#, c-format
+msgid "registering pragma \"%s\" with name expansion and no namespace"
+msgstr "以名稱擴展以及無命名空間去註冊編譯指示「%s」"
+
+#: directives.c:1186
+#, c-format
+msgid "registering \"%s\" as both a pragma and a pragma namespace"
+msgstr "「%s」既被註冊為一個編譯指示又被註冊為一個編譯指示命名空間"
+
+#: directives.c:1189
+#, c-format
+msgid "#pragma %s %s is already registered"
+msgstr "#pragma %s %s 已經被註冊"
+
+#: directives.c:1192
+#, c-format
+msgid "#pragma %s is already registered"
+msgstr "#pragma %s 已經被註冊"
+
+#: directives.c:1222
+msgid "registering pragma with NULL handler"
+msgstr "以空值處理常式去註冊編譯指示"
+
+#: directives.c:1439
+msgid "#pragma once in main file"
+msgstr "#pragma 出現在主檔案中一次"
+
+#: directives.c:1462
+msgid "invalid #pragma push_macro directive"
+msgstr "無效的 #pragma push_macro 指令"
+
+#: directives.c:1517
+msgid "invalid #pragma pop_macro directive"
+msgstr "無效的 #pragma pop_macro 指令"
+
+#: directives.c:1572
+msgid "invalid #pragma GCC poison directive"
+msgstr "無效的 #pragma GCC poison 指令"
+
+#: directives.c:1581
+#, c-format
+msgid "poisoning existing macro \"%s\""
+msgstr "對已存在的巨集「%s」加料"
+
+#: directives.c:1600
+msgid "#pragma system_header ignored outside include file"
+msgstr "#pragma system_header 在包含檔案外被忽略"
+
+#: directives.c:1625
+#, c-format
+msgid "cannot find source file %s"
+msgstr "找不到來源檔案 %s"
+
+#: directives.c:1629
+#, c-format
+msgid "current file is older than %s"
+msgstr "目前檔案早於 %s"
+
+#: directives.c:1653
+#, c-format
+msgid "invalid \"#pragma GCC %s\" directive"
+msgstr "無效的 #pragma GCC %s 指令"
+
+#: directives.c:1847
+msgid "_Pragma takes a parenthesized string literal"
+msgstr "_Pragma 需要一個括起的字串原文"
+
+#: directives.c:1968
+msgid "#else without #if"
+msgstr "#else 沒有匹配的 #if"
+
+#: directives.c:1973
+msgid "#else after #else"
+msgstr "#else 出現在 #else 後"
+
+#: directives.c:1975 directives.c:2008
+msgid "the conditional began here"
+msgstr "條件自此開始"
+
+#: directives.c:2001
+msgid "#elif without #if"
+msgstr "#elif 沒有匹配的 #if"
+
+#: directives.c:2006
+msgid "#elif after #else"
+msgstr "#elif 出現在 #else 後"
+
+#: directives.c:2044
+msgid "#endif without #if"
+msgstr "#endif 沒有匹配的 #if"
+
+#: directives.c:2124
+msgid "missing '(' after predicate"
+msgstr "述語後缺少「(」"
+
+#: directives.c:2139
+msgid "missing ')' to complete answer"
+msgstr "完整的答案缺少「)」"
+
+#: directives.c:2159
+msgid "predicate's answer is empty"
+msgstr "述語的答案為空"
+
+#: directives.c:2186
+msgid "assertion without predicate"
+msgstr "判定語後沒有述語"
+
+#: directives.c:2189
+msgid "predicate must be an identifier"
+msgstr "述語必須是一個識別字"
+
+#: directives.c:2275
+#, c-format
+msgid "\"%s\" re-asserted"
+msgstr "已再判定「%s」"
+
+#: directives.c:2567
+#, c-format
+msgid "unterminated #%s"
+msgstr "未終止的 #%s"
+
+#: directives-only.c:221 lex.c:2311 traditional.c:162
+msgid "unterminated comment"
+msgstr "未終結的註釋"
+
+#: errors.c:234
+msgid "stdout"
+msgstr "stdout"
+
+#: errors.c:236
+#, c-format
+msgid "%s: %s"
+msgstr "%s:%s"
+
+#: expr.c:510 expr.c:620
+msgid "fixed-point constants are a GCC extension"
+msgstr "定點常數是一個 GCC 擴充功能"
+
+#: expr.c:535
+msgid "invalid prefix \"0b\" for floating constant"
+msgstr "無效的浮點常數前綴「0b」"
+
+#: expr.c:545
+msgid "use of C99 hexadecimal floating constant"
+msgstr "使用 C99 式的十六進位浮點常數"
+
+#: expr.c:588
+#, c-format
+msgid "invalid suffix \"%.*s\" on floating constant"
+msgstr "浮點常數的「%.*s」字尾無效"
+
+#: expr.c:599 expr.c:659
+#, c-format
+msgid "traditional C rejects the \"%.*s\" suffix"
+msgstr "傳統 C 不接受「%.*s」字尾"
+
+#: expr.c:607
+msgid "suffix for double constant is a GCC extension"
+msgstr "雙倍精度常數字尾是 GCC 的擴充功能"
+
+#: expr.c:613
+#, c-format
+msgid "invalid suffix \"%.*s\" with hexadecimal floating constant"
+msgstr "無效的十六進位浮點常數字尾「%.*s」"
+
+#: expr.c:624
+msgid "decimal float constants are a GCC extension"
+msgstr "十進位浮點數常數是 GCC 的擴充功能"
+
+#: expr.c:642
+#, c-format
+msgid "invalid suffix \"%.*s\" on integer constant"
+msgstr "整數常數的「%.*s」字尾無效"
+
+#: expr.c:667
+#, fuzzy
+#| msgid "use of C++0x long long integer constant"
+msgid "use of C++11 long long integer constant"
+msgstr "使用 C++0x long long 整數常數"
+
+#: expr.c:668
+msgid "use of C99 long long integer constant"
+msgstr "使用 C99 long long 整數常數"
+
+#: expr.c:684
+msgid "imaginary constants are a GCC extension"
+msgstr "虛數常數是 GCC 的擴充功能"
+
+#: expr.c:690
+#, fuzzy
+#| msgid "binary constants are a GCC extension"
+msgid "binary constants are a C++1y feature or GCC extension"
+msgstr "二進位常數是 GCC 的擴充功能"
+
+#: expr.c:787
+msgid "integer constant is too large for its type"
+msgstr "整數常數值超出其類型"
+
+#: expr.c:818
+msgid "integer constant is so large that it is unsigned"
+msgstr "整數常數太大,認定為 unsigned"
+
+#: expr.c:913
+msgid "missing ')' after \"defined\""
+msgstr "「defined」 後缺少「)」"
+
+#: expr.c:920
+msgid "operator \"defined\" requires an identifier"
+msgstr "運算子「defined」需要一個識別字"
+
+#: expr.c:928
+#, c-format
+msgid "(\"%s\" is an alternative token for \"%s\" in C++)"
+msgstr "(在 C++ 中「%s」會是「%s」的替代識別字)"
+
+#: expr.c:938
+msgid "this use of \"defined\" may not be portable"
+msgstr "使用「defined」可能不利於移植"
+
+#: expr.c:998
+msgid "user-defined literal in preprocessor expression"
+msgstr "在前置處理器運算式中有使用者定義的實字"
+
+#: expr.c:1003
+msgid "floating constant in preprocessor expression"
+msgstr "浮點常數出現在預先處理運算式中"
+
+#: expr.c:1009
+msgid "imaginary number in preprocessor expression"
+msgstr "預先處理運算式中出現虛數"
+
+#: expr.c:1057
+#, c-format
+msgid "\"%s\" is not defined"
+msgstr "「%s」未定義"
+
+#: expr.c:1070
+msgid "assertions are a GCC extension"
+msgstr "assertions 是 GCC 的擴充功能"
+
+#: expr.c:1073
+msgid "assertions are a deprecated extension"
+msgstr "assertions 是不宜再用的擴充功能"
+
+#: expr.c:1318
+#, c-format
+msgid "unbalanced stack in %s"
+msgstr "%s 中的堆疊不平衡"
+
+#: expr.c:1338
+#, c-format
+msgid "impossible operator '%u'"
+msgstr "不可能的運算子「%u」"
+
+#: expr.c:1439
+msgid "missing ')' in expression"
+msgstr "運算式中缺少「)」"
+
+#: expr.c:1468
+msgid "'?' without following ':'"
+msgstr "「?」後沒有「:」"
+
+#: expr.c:1478
+msgid "integer overflow in preprocessor expression"
+msgstr "預先處理運算式中整數溢出"
+
+#: expr.c:1483
+msgid "missing '(' in expression"
+msgstr "運算式中缺少「(」"
+
+#: expr.c:1515
+#, c-format
+msgid "the left operand of \"%s\" changes sign when promoted"
+msgstr "「%s」的左運算元在提升時變換了符號"
+
+#: expr.c:1520
+#, c-format
+msgid "the right operand of \"%s\" changes sign when promoted"
+msgstr "「%s」的右運算元在提升時變換了符號"
+
+#: expr.c:1779
+msgid "traditional C rejects the unary plus operator"
+msgstr "傳統 C 不接受單元 + 運算子"
+
+#: expr.c:1877
+msgid "comma operator in operand of #if"
+msgstr "#if 運算元中出現逗號"
+
+#: expr.c:2013
+msgid "division by zero in #if"
+msgstr "#if 中用零做除數"
+
+#: files.c:505
+msgid "NULL directory in find_file"
+msgstr "find_file 中有 NULL 目錄"
+
+#: files.c:553
+msgid "one or more PCH files were found, but they were invalid"
+msgstr "找到一個或多個 PCH 檔案,但它們是無效的"
+
+#: files.c:556
+msgid "use -Winvalid-pch for more information"
+msgstr "使用 -Winvalid-pch 以獲得更多資訊"
+
+#: files.c:660
+#, c-format
+msgid "%s is a block device"
+msgstr "%s 是一個區塊裝置"
+
+#: files.c:677
+#, c-format
+msgid "%s is too large"
+msgstr "%s 過大"
+
+#: files.c:717
+#, c-format
+msgid "%s is shorter than expected"
+msgstr "%s 短於預期"
+
+#: files.c:953
+#, c-format
+msgid "no include path in which to search for %s"
+msgstr "沒有包含路徑可供搜尋 %s"
+
+#: files.c:1389
+msgid "Multiple include guards may be useful for:\n"
+msgstr "多個防止重包含可能對其有用:\n"
+
+#: init.c:536
+msgid "cppchar_t must be an unsigned type"
+msgstr "cppchar_t 必須是無號類型"
+
+#: init.c:540
+#, c-format
+msgid "preprocessor arithmetic has maximum precision of %lu bits; target requires %lu bits"
+msgstr "預先處理算術的最高精度為 %lu 位;目標需要 %lu 位"
+
+#: init.c:547
+msgid "CPP arithmetic must be at least as precise as a target int"
+msgstr "CPP 算術必須至少具有目標 int 的精度"
+
+#: init.c:550
+msgid "target char is less than 8 bits wide"
+msgstr "目標 char 短於 8 位"
+
+#: init.c:554
+msgid "target wchar_t is narrower than target char"
+msgstr "目標 wchar_t 短於目標 char"
+
+#: init.c:558
+msgid "target int is narrower than target char"
+msgstr "目標 int 短於目標 char"
+
+#: init.c:563
+msgid "CPP half-integer narrower than CPP character"
+msgstr "CPP 半整數短於 CPP 字元"
+
+#: init.c:567
+#, c-format
+msgid "CPP on this host cannot handle wide character constants over %lu bits, but the target requires %lu bits"
+msgstr "在此宿主機上,CPP 不能處理長於 %lu 位的寬字元常數,但目標需要 %lu 位"
+
+#: lex.c:919
+msgid "backslash and newline separated by space"
+msgstr "反斜線和換列為空格所分隔"
+
+#: lex.c:924
+msgid "backslash-newline at end of file"
+msgstr "反斜線-換列出現在檔案末尾"
+
+#: lex.c:940
+#, c-format
+msgid "trigraph ??%c converted to %c"
+msgstr "三元符 ??%c 轉換為 %c"
+
+#: lex.c:948
+#, c-format
+msgid "trigraph ??%c ignored, use -trigraphs to enable"
+msgstr "三元符 ??%c 被忽略,請使用 -trigraphs 來啟用"
+
+#: lex.c:997
+msgid "\"/*\" within comment"
+msgstr "「/*」出現在註釋中"
+
+#: lex.c:1055
+#, c-format
+msgid "%s in preprocessing directive"
+msgstr "預先處理指令中出現 %s"
+
+#: lex.c:1064
+msgid "null character(s) ignored"
+msgstr "忽略空字元"
+
+#: lex.c:1101
+#, c-format
+msgid "`%.*s' is not in NFKC"
+msgstr "「%.*s」不在 NFKC 中"
+
+#: lex.c:1104
+#, c-format
+msgid "`%.*s' is not in NFC"
+msgstr "「%.*s」不在 NFC 中"
+
+#: lex.c:1173 lex.c:1253
+#, c-format
+msgid "attempt to use poisoned \"%s\""
+msgstr "試圖使用已加料的「%s」"
+
+#: lex.c:1181 lex.c:1261
+msgid "__VA_ARGS__ can only appear in the expansion of a C99 variadic macro"
+msgstr "__VA_ARGS__ 只能出現在 C99 可變參數巨集的展開中"
+
+#: lex.c:1187 lex.c:1267
+#, c-format
+msgid "identifier \"%s\" is a special operator name in C++"
+msgstr "識別碼「%s」在 C++ 中是特殊運算子名稱"
+
+#: lex.c:1554
+msgid "raw string delimiter longer than 16 characters"
+msgstr "原始字串分隔符號長度超過 16 字元"
+
+#: lex.c:1558
+#, fuzzy
+#| msgid "invalid character '%c' in raw string delimiter"
+msgid "invalid new-line in raw string delimiter"
+msgstr "無效字元『%c』出現於原始字串分隔符號"
+
+#: lex.c:1562
+#, c-format
+msgid "invalid character '%c' in raw string delimiter"
+msgstr "無效字元『%c』出現於原始字串分隔符號"
+
+#: lex.c:1611 lex.c:1633
+msgid "unterminated raw string"
+msgstr "未終結的原始字串"
+
+#: lex.c:1654 lex.c:1783
+#, fuzzy
+#| msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
+msgid "invalid suffix on literal; C++11 requires a space between literal and string macro"
+msgstr "無效的實字後綴;C++11 要求一個空白位在實字和識別字之間"
+
+#: lex.c:1765
+msgid "null character(s) preserved in literal"
+msgstr "空字元將保留在原文中"
+
+#: lex.c:1768
+#, c-format
+msgid "missing terminating %c character"
+msgstr "缺少終止 %c 字元"
+
+#: lex.c:2322
+msgid "C++ style comments are not allowed in ISO C90"
+msgstr "C++ 風格的註釋在 ISO C90 中不被允許"
+
+#: lex.c:2324
+msgid "(this will be reported only once per input file)"
+msgstr "(此警告為每個輸入檔案只報告一次)"
+
+#: lex.c:2329
+msgid "multi-line comment"
+msgstr "多列註釋"
+
+#: lex.c:2660
+#, c-format
+msgid "unspellable token %s"
+msgstr "無法拼出的識別字 %s"
+
+#: macro.c:191
+#, c-format
+msgid "macro \"%s\" is not used"
+msgstr "巨集「%s」未被使用"
+
+#: macro.c:229 macro.c:433
+#, c-format
+msgid "invalid built-in macro \"%s\""
+msgstr "無效的內建巨集「%s」"
+
+#: macro.c:236 macro.c:333
+#, c-format
+msgid "macro \"%s\" might prevent reproducible builds"
+msgstr ""
+
+#: macro.c:267
+msgid "could not determine file timestamp"
+msgstr "無法決定檔案時間戳記"
+
+#: macro.c:368
+msgid "could not determine date and time"
+msgstr "無法決定日期與時間"
+
+#: macro.c:384
+msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
+msgstr "__COUNTER__ 以 -fdirectives-only 在指令內部展開"
+
+#: macro.c:542
+msgid "invalid string literal, ignoring final '\\'"
+msgstr "無效的原文字串,忽略最後的「\\」"
+
+#: macro.c:604
+#, c-format
+msgid "pasting \"%s\" and \"%s\" does not give a valid preprocessing token"
+msgstr "粘貼「%s」和「%s」不能給出一個有效的預先處理識別字"
+
+#: macro.c:726
+msgid "ISO C99 requires rest arguments to be used"
+msgstr "ISO C99 需要使用剩餘的引數"
+
+#: macro.c:731
+#, c-format
+msgid "macro \"%s\" requires %u arguments, but only %u given"
+msgstr "巨集「%s」需要 %u 個引數,但只給出了 %u 個"
+
+#: macro.c:736
+#, c-format
+msgid "macro \"%s\" passed %u arguments, but takes just %u"
+msgstr "巨集「%s」傳遞了 %u 個引數,但只需要 %u 個"
+
+#: macro.c:930 traditional.c:680
+#, c-format
+msgid "unterminated argument list invoking macro \"%s\""
+msgstr "呼叫巨集「%s」時引數清單未終止"
+
+#: macro.c:1081
+#, c-format
+msgid "function-like macro \"%s\" must be used with arguments in traditional C"
+msgstr "類似函式的巨集「%s」在傳統 C 中必須與引數一起使用"
+
+#: macro.c:1753
+#, c-format
+msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
+msgstr "調用巨集 %s 引數 %d:空的巨集引數在 ISO C90 和 ISO C++98 中未定義"
+
+#: macro.c:2715
+#, c-format
+msgid "duplicate macro parameter \"%s\""
+msgstr "重複的巨集參數「%s」"
+
+#: macro.c:2761
+#, c-format
+msgid "\"%s\" may not appear in macro parameter list"
+msgstr "「%s」不能出現在巨集參數清單中"
+
+#: macro.c:2769
+msgid "macro parameters must be comma-separated"
+msgstr "巨集參數必須由逗號隔開"
+
+#: macro.c:2786
+msgid "parameter name missing"
+msgstr "缺少參數名"
+
+#: macro.c:2804
+msgid "anonymous variadic macros were introduced in C99"
+msgstr "匿名可變參數巨集在 C99 中被引入"
+
+#: macro.c:2809
+msgid "ISO C does not permit named variadic macros"
+msgstr "ISO C 不允許具名的可變參數巨集"
+
+#: macro.c:2818
+msgid "missing ')' in macro parameter list"
+msgstr "在巨集參數表中缺少「)」"
+
+#: macro.c:2867
+msgid "'##' cannot appear at either end of a macro expansion"
+msgstr "「##」不能出現在巨集展開的兩端"
+
+#: macro.c:2902
+msgid "ISO C99 requires whitespace after the macro name"
+msgstr "ISO C99 要求巨集名後必須有空白"
+
+#: macro.c:2926
+msgid "missing whitespace after the macro name"
+msgstr "巨集名後缺少空白"
+
+#: macro.c:2960
+msgid "'#' is not followed by a macro parameter"
+msgstr "「#」後沒有巨集參數"
+
+#: macro.c:3118
+#, c-format
+msgid "\"%s\" redefined"
+msgstr "「%s」重定義"
+
+#: macro.c:3124
+msgid "this is the location of the previous definition"
+msgstr "這是先前定義的位置"
+
+#: macro.c:3185
+#, c-format
+msgid "macro argument \"%s\" would be stringified in traditional C"
+msgstr "巨集引數「%s」將在傳統 C 中被字串化"
+
+#: macro.c:3212
+#, c-format
+msgid "invalid hash type %d in cpp_macro_definition"
+msgstr "cpp_macro_definition 中有無效的雜湊類型 %d"
+
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
+msgid "while writing precompiled header"
+msgstr "在寫入預先編譯標頭時"
+
+#: pch.c:619
+#, c-format
+msgid "%s: not used because `%.*s' is poisoned"
+msgstr "%s:未使用因為『%.*s』是有害的"
+
+#: pch.c:641
+#, c-format
+msgid "%s: not used because `%.*s' not defined"
+msgstr "%s:未使用,因為「%.*s」未定義"
+
+#: pch.c:653
+#, c-format
+msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
+msgstr "%s:未使用,因為「%.*s」被定義為「%s」而非「%*.s」"
+
+#: pch.c:694
+#, c-format
+msgid "%s: not used because `%s' is defined"
+msgstr "%s:未使用,因為「%s」已定義"
+
+#: pch.c:714
+#, c-format
+msgid "%s: not used because `__COUNTER__' is invalid"
+msgstr "%s:未使用因為『__COUNTER__』無效"
+
+#: pch.c:723 pch.c:898
+msgid "while reading precompiled header"
+msgstr "在讀取預先編譯標頭時"
+
+#: traditional.c:750
+#, c-format
+msgid "detected recursion whilst expanding macro \"%s\""
+msgstr "展開巨集「%s」時偵測到遞迴"
+
+#: traditional.c:968
+msgid "syntax error in macro parameter list"
+msgstr "巨集參數清單語法錯誤"
+
+#~ msgid "Character %x might not be NFKC"
+#~ msgstr "字元 %x 可能不是 NFKC"
diff --git a/gcc-4.9/libcpp/symtab.c b/gcc-4.9/libcpp/symtab.c
new file mode 100644
index 000000000..73c421e17
--- /dev/null
+++ b/gcc-4.9/libcpp/symtab.c
@@ -0,0 +1,362 @@
+/* Hash tables.
+ Copyright (C) 2000-2014 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>.
+
+ In other words, you are welcome to use, share and improve this program.
+ You are forbidden to forbid anyone else to use, share and improve
+ what you give them. Help stamp out software-hoarding! */
+
+#include "config.h"
+#include "system.h"
+#include "symtab.h"
+
+/* The code below is a specialization of Vladimir Makarov's expandable
+ hash tables (see libiberty/hashtab.c). The abstraction penalty was
+ too high to continue using the generic form. This code knows
+ intrinsically how to calculate a hash value, and how to compare an
+ existing entry with a potential new one. */
+
+static unsigned int calc_hash (const unsigned char *, size_t);
+static void ht_expand (cpp_hash_table *);
+static double approx_sqrt (double);
+
+/* A deleted entry. */
+#define DELETED ((hashnode) -1)
+
+/* Calculate the hash of the string STR of length LEN. */
+
+static unsigned int
+calc_hash (const unsigned char *str, size_t len)
+{
+ size_t n = len;
+ unsigned int r = 0;
+
+ while (n--)
+ r = HT_HASHSTEP (r, *str++);
+
+ return HT_HASHFINISH (r, len);
+}
+
+/* Initialize an identifier hashtable. */
+
+cpp_hash_table *
+ht_create (unsigned int order)
+{
+ unsigned int nslots = 1 << order;
+ cpp_hash_table *table;
+
+ table = XCNEW (cpp_hash_table);
+
+ /* Strings need no alignment. */
+ _obstack_begin (&table->stack, 0, 0,
+ (void *(*) (long)) xmalloc,
+ (void (*) (void *)) free);
+
+ obstack_alignment_mask (&table->stack) = 0;
+
+ table->entries = XCNEWVEC (hashnode, nslots);
+ table->entries_owned = true;
+ table->nslots = nslots;
+ return table;
+}
+
+/* Frees all memory associated with a hash table. */
+
+void
+ht_destroy (cpp_hash_table *table)
+{
+ obstack_free (&table->stack, NULL);
+ if (table->entries_owned)
+ free (table->entries);
+ free (table);
+}
+
+/* Returns the hash entry for the a STR of length LEN. If that string
+ already exists in the table, returns the existing entry. If the
+ identifier hasn't been seen before, and INSERT is CPP_NO_INSERT,
+ returns NULL. Otherwise insert and returns a new entry. A new
+ string is allocated. */
+hashnode
+ht_lookup (cpp_hash_table *table, const unsigned char *str, size_t len,
+ enum ht_lookup_option insert)
+{
+ return ht_lookup_with_hash (table, str, len, calc_hash (str, len),
+ insert);
+}
+
+hashnode
+ht_lookup_with_hash (cpp_hash_table *table, const unsigned char *str,
+ size_t len, unsigned int hash,
+ enum ht_lookup_option insert)
+{
+ unsigned int hash2;
+ unsigned int index;
+ unsigned int deleted_index = table->nslots;
+ size_t sizemask;
+ hashnode node;
+
+ sizemask = table->nslots - 1;
+ index = hash & sizemask;
+ table->searches++;
+
+ node = table->entries[index];
+
+ if (node != NULL)
+ {
+ if (node == DELETED)
+ deleted_index = index;
+ else if (node->hash_value == hash
+ && HT_LEN (node) == (unsigned int) len
+ && !memcmp (HT_STR (node), str, len))
+ return node;
+
+ /* hash2 must be odd, so we're guaranteed to visit every possible
+ location in the table during rehashing. */
+ hash2 = ((hash * 17) & sizemask) | 1;
+
+ for (;;)
+ {
+ table->collisions++;
+ index = (index + hash2) & sizemask;
+ node = table->entries[index];
+ if (node == NULL)
+ break;
+
+ if (node == DELETED)
+ {
+ if (deleted_index != table->nslots)
+ deleted_index = index;
+ }
+ else if (node->hash_value == hash
+ && HT_LEN (node) == (unsigned int) len
+ && !memcmp (HT_STR (node), str, len))
+ return node;
+ }
+ }
+
+ if (insert == HT_NO_INSERT)
+ return NULL;
+
+ /* We prefer to overwrite the first deleted slot we saw. */
+ if (deleted_index != table->nslots)
+ index = deleted_index;
+
+ node = (*table->alloc_node) (table);
+ table->entries[index] = node;
+
+ HT_LEN (node) = (unsigned int) len;
+ node->hash_value = hash;
+
+ if (table->alloc_subobject)
+ {
+ char *chars = (char *) table->alloc_subobject (len + 1);
+ memcpy (chars, str, len);
+ chars[len] = '\0';
+ HT_STR (node) = (const unsigned char *) chars;
+ }
+ else
+ HT_STR (node) = (const unsigned char *) obstack_copy0 (&table->stack,
+ str, len);
+
+ if (++table->nelements * 4 >= table->nslots * 3)
+ /* Must expand the string table. */
+ ht_expand (table);
+
+ return node;
+}
+
+/* Double the size of a hash table, re-hashing existing entries. */
+
+static void
+ht_expand (cpp_hash_table *table)
+{
+ hashnode *nentries, *p, *limit;
+ unsigned int size, sizemask;
+
+ size = table->nslots * 2;
+ nentries = XCNEWVEC (hashnode, size);
+ sizemask = size - 1;
+
+ p = table->entries;
+ limit = p + table->nslots;
+ do
+ if (*p && *p != DELETED)
+ {
+ unsigned int index, hash, hash2;
+
+ hash = (*p)->hash_value;
+ index = hash & sizemask;
+
+ if (nentries[index])
+ {
+ hash2 = ((hash * 17) & sizemask) | 1;
+ do
+ {
+ index = (index + hash2) & sizemask;
+ }
+ while (nentries[index]);
+ }
+ nentries[index] = *p;
+ }
+ while (++p < limit);
+
+ if (table->entries_owned)
+ free (table->entries);
+ table->entries_owned = true;
+ table->entries = nentries;
+ table->nslots = size;
+}
+
+/* For all nodes in TABLE, callback CB with parameters TABLE->PFILE,
+ the node, and V. */
+void
+ht_forall (cpp_hash_table *table, ht_cb cb, const void *v)
+{
+ hashnode *p, *limit;
+
+ p = table->entries;
+ limit = p + table->nslots;
+ do
+ if (*p && *p != DELETED)
+ {
+ if ((*cb) (table->pfile, *p, v) == 0)
+ break;
+ }
+ while (++p < limit);
+}
+
+/* Like ht_forall, but a nonzero return from the callback means that
+ the entry should be removed from the table. */
+void
+ht_purge (cpp_hash_table *table, ht_cb cb, const void *v)
+{
+ hashnode *p, *limit;
+
+ p = table->entries;
+ limit = p + table->nslots;
+ do
+ if (*p && *p != DELETED)
+ {
+ if ((*cb) (table->pfile, *p, v))
+ *p = DELETED;
+ }
+ while (++p < limit);
+}
+
+/* Restore the hash table. */
+void
+ht_load (cpp_hash_table *ht, hashnode *entries,
+ unsigned int nslots, unsigned int nelements,
+ bool own)
+{
+ if (ht->entries_owned)
+ free (ht->entries);
+ ht->entries = entries;
+ ht->nslots = nslots;
+ ht->nelements = nelements;
+ ht->entries_owned = own;
+}
+
+/* Dump allocation statistics to stderr. */
+
+void
+ht_dump_statistics (cpp_hash_table *table)
+{
+ size_t nelts, nids, overhead, headers;
+ size_t total_bytes, longest, deleted = 0;
+ double sum_of_squares, exp_len, exp_len2, exp2_len;
+ hashnode *p, *limit;
+
+#define SCALE(x) ((unsigned long) ((x) < 1024*10 \
+ ? (x) \
+ : ((x) < 1024*1024*10 \
+ ? (x) / 1024 \
+ : (x) / (1024*1024))))
+#define LABEL(x) ((x) < 1024*10 ? ' ' : ((x) < 1024*1024*10 ? 'k' : 'M'))
+
+ total_bytes = longest = sum_of_squares = nids = 0;
+ p = table->entries;
+ limit = p + table->nslots;
+ do
+ if (*p == DELETED)
+ ++deleted;
+ else if (*p)
+ {
+ size_t n = HT_LEN (*p);
+
+ total_bytes += n;
+ sum_of_squares += (double) n * n;
+ if (n > longest)
+ longest = n;
+ nids++;
+ }
+ while (++p < limit);
+
+ nelts = table->nelements;
+ overhead = obstack_memory_used (&table->stack) - total_bytes;
+ headers = table->nslots * sizeof (hashnode);
+
+ fprintf (stderr, "\nString pool\nentries\t\t%lu\n",
+ (unsigned long) nelts);
+ fprintf (stderr, "identifiers\t%lu (%.2f%%)\n",
+ (unsigned long) nids, nids * 100.0 / nelts);
+ fprintf (stderr, "slots\t\t%lu\n",
+ (unsigned long) table->nslots);
+ fprintf (stderr, "deleted\t\t%lu\n",
+ (unsigned long) deleted);
+ fprintf (stderr, "bytes\t\t%lu%c (%lu%c overhead)\n",
+ SCALE (total_bytes), LABEL (total_bytes),
+ SCALE (overhead), LABEL (overhead));
+ fprintf (stderr, "table size\t%lu%c\n",
+ SCALE (headers), LABEL (headers));
+
+ exp_len = (double)total_bytes / (double)nelts;
+ exp2_len = exp_len * exp_len;
+ exp_len2 = (double) sum_of_squares / (double) nelts;
+
+ fprintf (stderr, "coll/search\t%.4f\n",
+ (double) table->collisions / (double) table->searches);
+ fprintf (stderr, "ins/search\t%.4f\n",
+ (double) nelts / (double) table->searches);
+ fprintf (stderr, "avg. entry\t%.2f bytes (+/- %.2f)\n",
+ exp_len, approx_sqrt (exp_len2 - exp2_len));
+ fprintf (stderr, "longest entry\t%lu\n",
+ (unsigned long) longest);
+#undef SCALE
+#undef LABEL
+}
+
+/* Return the approximate positive square root of a number N. This is for
+ statistical reports, not code generation. */
+static double
+approx_sqrt (double x)
+{
+ double s, d;
+
+ if (x < 0)
+ abort ();
+ if (x == 0)
+ return 0;
+
+ s = x;
+ do
+ {
+ d = (s * s - x) / (2 * s);
+ s -= d;
+ }
+ while (d > .0001);
+ return s;
+}
diff --git a/gcc-4.9/libcpp/system.h b/gcc-4.9/libcpp/system.h
new file mode 100644
index 000000000..632a82184
--- /dev/null
+++ b/gcc-4.9/libcpp/system.h
@@ -0,0 +1,444 @@
+/* Get common system includes and various definitions and declarations based
+ on autoconf macros.
+ Copyright (C) 1998-2014 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+
+#ifndef LIBCPP_SYSTEM_H
+#define LIBCPP_SYSTEM_H
+
+/* We must include stdarg.h before stdio.h. */
+#include <stdarg.h>
+
+#ifdef HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+
+#include <stdio.h>
+
+/* Define a generic NULL if one hasn't already been defined. */
+#ifndef NULL
+#define NULL 0
+#endif
+
+/* Use the unlocked open routines from libiberty. */
+
+/* Some of these are #define on some systems, e.g. on AIX to redirect
+ the names to 64bit capable functions for LARGE_FILES support. These
+ redefs are pointless here so we can override them. */
+
+#undef fopen
+#undef freopen
+
+#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
+#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)
+#define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM)
+
+/* The compiler is not a multi-threaded application and therefore we
+ do not have to use the locking functions. In fact, using the locking
+ functions can cause the compiler to be significantly slower under
+ I/O bound conditions (such as -g -O0 on very large source files).
+
+ HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio
+ code is multi-thread safe by default. If it is set to 0, then do
+ not worry about using the _unlocked functions.
+
+ fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are
+ extensions and need to be prototyped by hand (since we do not
+ define _GNU_SOURCE). */
+
+#if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED
+
+# ifdef HAVE_PUTC_UNLOCKED
+# undef putc
+# define putc(C, Stream) putc_unlocked (C, Stream)
+# endif
+# ifdef HAVE_PUTCHAR_UNLOCKED
+# undef putchar
+# define putchar(C) putchar_unlocked (C)
+# endif
+# ifdef HAVE_GETC_UNLOCKED
+# undef getc
+# define getc(Stream) getc_unlocked (Stream)
+# endif
+# ifdef HAVE_GETCHAR_UNLOCKED
+# undef getchar
+# define getchar() getchar_unlocked ()
+# endif
+# ifdef HAVE_FPUTC_UNLOCKED
+# undef fputc
+# define fputc(C, Stream) fputc_unlocked (C, Stream)
+# endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+# ifdef HAVE_CLEARERR_UNLOCKED
+# undef clearerr
+# define clearerr(Stream) clearerr_unlocked (Stream)
+# if defined (HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED
+extern void clearerr_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FEOF_UNLOCKED
+# undef feof
+# define feof(Stream) feof_unlocked (Stream)
+# if defined (HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED
+extern int feof_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FILENO_UNLOCKED
+# undef fileno
+# define fileno(Stream) fileno_unlocked (Stream)
+# if defined (HAVE_DECL_FILENO_UNLOCKED) && !HAVE_DECL_FILENO_UNLOCKED
+extern int fileno_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FFLUSH_UNLOCKED
+# undef fflush
+# define fflush(Stream) fflush_unlocked (Stream)
+# if defined (HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED
+extern int fflush_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FGETC_UNLOCKED
+# undef fgetc
+# define fgetc(Stream) fgetc_unlocked (Stream)
+# if defined (HAVE_DECL_FGETC_UNLOCKED) && !HAVE_DECL_FGETC_UNLOCKED
+extern int fgetc_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FGETS_UNLOCKED
+# undef fgets
+# define fgets(S, n, Stream) fgets_unlocked (S, n, Stream)
+# if defined (HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED
+extern char *fgets_unlocked (char *, int, FILE *);
+# endif
+# endif
+# ifdef HAVE_FPUTS_UNLOCKED
+# undef fputs
+# define fputs(String, Stream) fputs_unlocked (String, Stream)
+# if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED
+extern int fputs_unlocked (const char *, FILE *);
+# endif
+# endif
+# ifdef HAVE_FERROR_UNLOCKED
+# undef ferror
+# define ferror(Stream) ferror_unlocked (Stream)
+# if defined (HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED
+extern int ferror_unlocked (FILE *);
+# endif
+# endif
+# ifdef HAVE_FREAD_UNLOCKED
+# undef fread
+# define fread(Ptr, Size, N, Stream) fread_unlocked (Ptr, Size, N, Stream)
+# if defined (HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED
+extern size_t fread_unlocked (void *, size_t, size_t, FILE *);
+# endif
+# endif
+# ifdef HAVE_FWRITE_UNLOCKED
+# undef fwrite
+# define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream)
+# if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED
+extern size_t fwrite_unlocked (const void *, size_t, size_t, FILE *);
+# endif
+# endif
+# ifdef HAVE_FPRINTF_UNLOCKED
+# undef fprintf
+/* We can't use a function-like macro here because we don't know if
+ we have varargs macros. */
+# define fprintf fprintf_unlocked
+# if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED
+extern int fprintf_unlocked (FILE *, const char *, ...);
+# endif
+# endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/* ??? Glibc's fwrite/fread_unlocked macros cause
+ "warning: signed and unsigned type in conditional expression". */
+#undef fread_unlocked
+#undef fwrite_unlocked
+
+#include <sys/types.h>
+#include <errno.h>
+
+#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO
+extern int errno;
+#endif
+
+/* Some of glibc's string inlines cause warnings. Plus we'd rather
+ rely on (and therefore test) GCC's string builtins. */
+#define __NO_STRING_INLINES
+
+#ifdef STRING_WITH_STRINGS
+# include <string.h>
+# include <strings.h>
+#else
+# ifdef HAVE_STRING_H
+# include <string.h>
+# else
+# ifdef HAVE_STRINGS_H
+# include <strings.h>
+# endif
+# endif
+#endif
+
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+/* Infrastructure for defining missing _MAX and _MIN macros. Note that
+ macros defined with these cannot be used in #if. */
+
+/* The extra casts work around common compiler bugs. */
+#define INTTYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+/* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
+ It is necessary at least when t == time_t. */
+#define INTTYPE_MINIMUM(t) ((t) (INTTYPE_SIGNED (t) \
+ ? ~ (t) 0 << (sizeof(t) * CHAR_BIT - 1) : (t) 0))
+#define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t)))
+
+/* Use that infrastructure to provide a few constants. */
+#ifndef UCHAR_MAX
+# define UCHAR_MAX INTTYPE_MAXIMUM (unsigned char)
+#endif
+
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# ifdef HAVE_TIME_H
+# include <time.h>
+# endif
+# endif
+#endif
+
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#else
+# ifdef HAVE_SYS_FILE_H
+# include <sys/file.h>
+# endif
+#endif
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#endif
+
+#ifdef HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+#endif
+
+#ifndef HAVE_SETLOCALE
+# define setlocale(category, locale) (locale)
+#endif
+
+#ifdef ENABLE_NLS
+#include <libintl.h>
+#else
+/* Stubs. */
+# undef dgettext
+# define dgettext(package, msgid) (msgid)
+#endif
+
+#ifndef _
+# define _(msgid) dgettext (PACKAGE, msgid)
+#endif
+
+#ifndef N_
+# define N_(msgid) msgid
+#endif
+
+/* Some systems define these in, e.g., param.h. We undefine these names
+ here to avoid the warnings. We prefer to use our definitions since we
+ know they are correct. */
+
+#undef MIN
+#undef MAX
+#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
+#define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
+
+/* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they
+ are defined to 0 then we must provide the relevant declaration
+ here. These checks will be in the undefined state while configure
+ is running so be careful to test "defined (HAVE_DECL_*)". */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT
+extern void abort (void);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+/* Test if something is a normal file. */
+#ifndef S_ISREG
+#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#endif
+
+/* Test if something is a directory. */
+#ifndef S_ISDIR
+#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#endif
+
+/* Test if something is a character special file. */
+#ifndef S_ISCHR
+#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+#endif
+
+/* Test if something is a block special file. */
+#ifndef S_ISBLK
+#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
+#endif
+
+/* Test if something is a socket. */
+#ifndef S_ISSOCK
+# ifdef S_IFSOCK
+# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+# else
+# define S_ISSOCK(m) 0
+# endif
+#endif
+
+/* Test if something is a FIFO. */
+#ifndef S_ISFIFO
+# ifdef S_IFIFO
+# define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
+# else
+# define S_ISFIFO(m) 0
+# endif
+#endif
+
+/* Approximate O_NOCTTY and O_BINARY. */
+#ifndef O_NOCTTY
+#define O_NOCTTY 0
+#endif
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
+/* Filename handling macros. */
+#include "filenames.h"
+
+/* Get libiberty declarations. */
+#include "libiberty.h"
+#include "safe-ctype.h"
+
+/* 1 if we have C99 designated initializers.
+
+ ??? C99 designated initializers are not supported by most C++
+ compilers, including G++. -- gdr, 2005-05-18 */
+#if !defined(HAVE_DESIGNATED_INITIALIZERS)
+#define HAVE_DESIGNATED_INITIALIZERS \
+ (!defined(__cplusplus) \
+ && ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)))
+#endif
+
+#ifndef offsetof
+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER)
+#endif
+
+/* __builtin_expect(A, B) evaluates to A, but notifies the compiler that
+ the most likely value of A is B. This feature was added at some point
+ between 2.95 and 3.0. Let's use 3.0 as the lower bound for now. */
+#if (GCC_VERSION < 3000)
+#define __builtin_expect(a, b) (a)
+#endif
+
+/* Provide a fake boolean type. We make no attempt to use the
+ C99 _Bool, as it may not be available in the bootstrap compiler,
+ and even if it is, it is liable to be buggy.
+ This must be after all inclusion of system headers, as some of
+ them will mess us up. */
+#undef bool
+#undef true
+#undef false
+#undef TRUE
+#undef FALSE
+
+#ifndef __cplusplus
+#define bool unsigned char
+#endif
+#define true 1
+#define false 0
+
+/* Some compilers do not allow the use of unsigned char in bitfields. */
+#define BOOL_BITFIELD unsigned int
+
+/* Poison identifiers we do not want to use. */
+#if (GCC_VERSION >= 3000)
+#undef calloc
+#undef strdup
+#undef malloc
+#undef realloc
+ #pragma GCC poison calloc strdup
+ #pragma GCC poison malloc realloc
+
+/* Libiberty macros that are no longer used in GCC. */
+#undef ANSI_PROTOTYPES
+#undef PTR_CONST
+#undef LONG_DOUBLE
+#undef VPARAMS
+#undef VA_OPEN
+#undef VA_FIXEDARG
+#undef VA_CLOSE
+#undef VA_START
+ #pragma GCC poison ANSI_PROTOTYPES PTR_CONST LONG_DOUBLE VPARAMS VA_OPEN \
+ VA_FIXEDARG VA_CLOSE VA_START
+
+/* Note: not all uses of the `index' token (e.g. variable names and
+ structure members) have been eliminated. */
+#undef bcopy
+#undef bzero
+#undef bcmp
+#undef rindex
+ #pragma GCC poison bcopy bzero bcmp rindex
+
+#endif /* GCC >= 3.0 */
+#endif /* ! LIBCPP_SYSTEM_H */
diff --git a/gcc-4.9/libcpp/traditional.c b/gcc-4.9/libcpp/traditional.c
new file mode 100644
index 000000000..b770db7ab
--- /dev/null
+++ b/gcc-4.9/libcpp/traditional.c
@@ -0,0 +1,1169 @@
+/* CPP Library - traditional lexical analysis and macro expansion.
+ Copyright (C) 2002-2014 Free Software Foundation, Inc.
+ Contributed by Neil Booth, May 2002
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 3, or (at your option) any
+later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#include "config.h"
+#include "system.h"
+#include "cpplib.h"
+#include "internal.h"
+
+/* The replacement text of a function-like macro is stored as a
+ contiguous sequence of aligned blocks, each representing the text
+ between subsequent parameters.
+
+ Each block comprises the text between its surrounding parameters,
+ the length of that text, and the one-based index of the following
+ parameter. The final block in the replacement text is easily
+ recognizable as it has an argument index of zero. */
+
+struct block
+{
+ unsigned int text_len;
+ unsigned short arg_index;
+ uchar text[1];
+};
+
+#define BLOCK_HEADER_LEN offsetof (struct block, text)
+#define BLOCK_LEN(TEXT_LEN) CPP_ALIGN (BLOCK_HEADER_LEN + (TEXT_LEN))
+
+/* Structure holding information about a function-like macro
+ invocation. */
+struct fun_macro
+{
+ /* Memory buffer holding the trad_arg array. */
+ _cpp_buff *buff;
+
+ /* An array of size the number of macro parameters + 1, containing
+ the offsets of the start of each macro argument in the output
+ buffer. The argument continues until the character before the
+ start of the next one. */
+ size_t *args;
+
+ /* The hashnode of the macro. */
+ cpp_hashnode *node;
+
+ /* The offset of the macro name in the output buffer. */
+ size_t offset;
+
+ /* The line the macro name appeared on. */
+ source_location line;
+
+ /* Zero-based index of argument being currently lexed. */
+ unsigned int argc;
+};
+
+/* Lexing state. It is mostly used to prevent macro expansion. */
+enum ls {ls_none = 0, /* Normal state. */
+ ls_fun_open, /* When looking for '('. */
+ ls_fun_close, /* When looking for ')'. */
+ ls_defined, /* After defined. */
+ ls_defined_close, /* Looking for ')' of defined(). */
+ ls_hash, /* After # in preprocessor conditional. */
+ ls_predicate, /* After the predicate, maybe paren? */
+ ls_answer}; /* In answer to predicate. */
+
+/* Lexing TODO: Maybe handle space in escaped newlines. Stop lex.c
+ from recognizing comments and directives during its lexing pass. */
+
+static const uchar *skip_whitespace (cpp_reader *, const uchar *, int);
+static cpp_hashnode *lex_identifier (cpp_reader *, const uchar *);
+static const uchar *copy_comment (cpp_reader *, const uchar *, int);
+static void check_output_buffer (cpp_reader *, size_t);
+static void push_replacement_text (cpp_reader *, cpp_hashnode *);
+static bool scan_parameters (cpp_reader *, cpp_macro *);
+static bool recursive_macro (cpp_reader *, cpp_hashnode *);
+static void save_replacement_text (cpp_reader *, cpp_macro *, unsigned int);
+static void maybe_start_funlike (cpp_reader *, cpp_hashnode *, const uchar *,
+ struct fun_macro *);
+static void save_argument (struct fun_macro *, size_t);
+static void replace_args_and_push (cpp_reader *, struct fun_macro *);
+static size_t canonicalize_text (uchar *, const uchar *, size_t, uchar *);
+
+/* Ensures we have N bytes' space in the output buffer, and
+ reallocates it if not. */
+static void
+check_output_buffer (cpp_reader *pfile, size_t n)
+{
+ /* We might need two bytes to terminate an unterminated comment, and
+ one more to terminate the line with a NUL. */
+ n += 2 + 1;
+
+ if (n > (size_t) (pfile->out.limit - pfile->out.cur))
+ {
+ size_t size = pfile->out.cur - pfile->out.base;
+ size_t new_size = (size + n) * 3 / 2;
+
+ pfile->out.base = XRESIZEVEC (unsigned char, pfile->out.base, new_size);
+ pfile->out.limit = pfile->out.base + new_size;
+ pfile->out.cur = pfile->out.base + size;
+ }
+}
+
+/* Skip a C-style block comment in a macro as a result of -CC.
+ Buffer->cur points to the initial asterisk of the comment. */
+static void
+skip_macro_block_comment (cpp_reader *pfile)
+{
+ const uchar *cur = pfile->buffer->cur;
+
+ cur++;
+ if (*cur == '/')
+ cur++;
+
+ /* People like decorating comments with '*', so check for '/'
+ instead for efficiency. */
+ while(! (*cur++ == '/' && cur[-2] == '*') )
+ ;
+
+ pfile->buffer->cur = cur;
+}
+
+/* CUR points to the asterisk introducing a comment in the current
+ context. IN_DEFINE is true if we are in the replacement text of a
+ macro.
+
+ The asterisk and following comment is copied to the buffer pointed
+ to by pfile->out.cur, which must be of sufficient size.
+ Unterminated comments are diagnosed, and correctly terminated in
+ the output. pfile->out.cur is updated depending upon IN_DEFINE,
+ -C, -CC and pfile->state.in_directive.
+
+ Returns a pointer to the first character after the comment in the
+ input buffer. */
+static const uchar *
+copy_comment (cpp_reader *pfile, const uchar *cur, int in_define)
+{
+ bool unterminated, copy = false;
+ source_location src_loc = pfile->line_table->highest_line;
+ cpp_buffer *buffer = pfile->buffer;
+
+ buffer->cur = cur;
+ if (pfile->context->prev)
+ unterminated = false, skip_macro_block_comment (pfile);
+ else
+ unterminated = _cpp_skip_block_comment (pfile);
+
+ if (unterminated)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, src_loc, 0,
+ "unterminated comment");
+
+ /* Comments in directives become spaces so that tokens are properly
+ separated when the ISO preprocessor re-lexes the line. The
+ exception is #define. */
+ if (pfile->state.in_directive)
+ {
+ if (in_define)
+ {
+ if (CPP_OPTION (pfile, discard_comments_in_macro_exp))
+ pfile->out.cur--;
+ else
+ copy = true;
+ }
+ else
+ pfile->out.cur[-1] = ' ';
+ }
+ else if (CPP_OPTION (pfile, discard_comments))
+ pfile->out.cur--;
+ else
+ copy = true;
+
+ if (copy)
+ {
+ size_t len = (size_t) (buffer->cur - cur);
+ memcpy (pfile->out.cur, cur, len);
+ pfile->out.cur += len;
+ if (unterminated)
+ {
+ *pfile->out.cur++ = '*';
+ *pfile->out.cur++ = '/';
+ }
+ }
+
+ return buffer->cur;
+}
+
+/* CUR points to any character in the input buffer. Skips over all
+ contiguous horizontal white space and NULs, including comments if
+ SKIP_COMMENTS, until reaching the first non-horizontal-whitespace
+ character or the end of the current context. Escaped newlines are
+ removed.
+
+ The whitespace is copied verbatim to the output buffer, except that
+ comments are handled as described in copy_comment().
+ pfile->out.cur is updated.
+
+ Returns a pointer to the first character after the whitespace in
+ the input buffer. */
+static const uchar *
+skip_whitespace (cpp_reader *pfile, const uchar *cur, int skip_comments)
+{
+ uchar *out = pfile->out.cur;
+
+ for (;;)
+ {
+ unsigned int c = *cur++;
+ *out++ = c;
+
+ if (is_nvspace (c))
+ continue;
+
+ if (c == '/' && *cur == '*' && skip_comments)
+ {
+ pfile->out.cur = out;
+ cur = copy_comment (pfile, cur, false /* in_define */);
+ out = pfile->out.cur;
+ continue;
+ }
+
+ out--;
+ break;
+ }
+
+ pfile->out.cur = out;
+ return cur - 1;
+}
+
+/* Lexes and outputs an identifier starting at CUR, which is assumed
+ to point to a valid first character of an identifier. Returns
+ the hashnode, and updates out.cur. */
+static cpp_hashnode *
+lex_identifier (cpp_reader *pfile, const uchar *cur)
+{
+ size_t len;
+ uchar *out = pfile->out.cur;
+ cpp_hashnode *result;
+
+ do
+ *out++ = *cur++;
+ while (is_numchar (*cur));
+
+ CUR (pfile->context) = cur;
+ len = out - pfile->out.cur;
+ result = CPP_HASHNODE (ht_lookup (pfile->hash_table, pfile->out.cur,
+ len, HT_ALLOC));
+ pfile->out.cur = out;
+ return result;
+}
+
+/* Overlays the true file buffer temporarily with text of length LEN
+ starting at START. The true buffer is restored upon calling
+ restore_buff(). */
+void
+_cpp_overlay_buffer (cpp_reader *pfile, const uchar *start, size_t len)
+{
+ cpp_buffer *buffer = pfile->buffer;
+
+ pfile->overlaid_buffer = buffer;
+ pfile->saved_cur = buffer->cur;
+ pfile->saved_rlimit = buffer->rlimit;
+ pfile->saved_line_base = buffer->next_line;
+ buffer->need_line = false;
+
+ buffer->cur = start;
+ buffer->line_base = start;
+ buffer->rlimit = start + len;
+}
+
+/* Restores a buffer overlaid by _cpp_overlay_buffer(). */
+void
+_cpp_remove_overlay (cpp_reader *pfile)
+{
+ cpp_buffer *buffer = pfile->overlaid_buffer;
+
+ buffer->cur = pfile->saved_cur;
+ buffer->rlimit = pfile->saved_rlimit;
+ buffer->line_base = pfile->saved_line_base;
+ buffer->need_line = true;
+
+ pfile->overlaid_buffer = NULL;
+}
+
+/* Reads a logical line into the output buffer. Returns TRUE if there
+ is more text left in the buffer. */
+bool
+_cpp_read_logical_line_trad (cpp_reader *pfile)
+{
+ do
+ {
+ if (pfile->buffer->need_line && !_cpp_get_fresh_line (pfile))
+ return false;
+ }
+ while (!_cpp_scan_out_logical_line (pfile, NULL) || pfile->state.skipping);
+
+ return pfile->buffer != NULL;
+}
+
+/* Set up state for finding the opening '(' of a function-like
+ macro. */
+static void
+maybe_start_funlike (cpp_reader *pfile, cpp_hashnode *node, const uchar *start, struct fun_macro *macro)
+{
+ unsigned int n = node->value.macro->paramc + 1;
+
+ if (macro->buff)
+ _cpp_release_buff (pfile, macro->buff);
+ macro->buff = _cpp_get_buff (pfile, n * sizeof (size_t));
+ macro->args = (size_t *) BUFF_FRONT (macro->buff);
+ macro->node = node;
+ macro->offset = start - pfile->out.base;
+ macro->argc = 0;
+}
+
+/* Save the OFFSET of the start of the next argument to MACRO. */
+static void
+save_argument (struct fun_macro *macro, size_t offset)
+{
+ macro->argc++;
+ if (macro->argc <= macro->node->value.macro->paramc)
+ macro->args[macro->argc] = offset;
+}
+
+/* Copies the next logical line in the current buffer (starting at
+ buffer->cur) to the output buffer. The output is guaranteed to
+ terminate with a NUL character. buffer->cur is updated.
+
+ If MACRO is non-NULL, then we are scanning the replacement list of
+ MACRO, and we call save_replacement_text() every time we meet an
+ argument. */
+bool
+_cpp_scan_out_logical_line (cpp_reader *pfile, cpp_macro *macro)
+{
+ bool result = true;
+ cpp_context *context;
+ const uchar *cur;
+ uchar *out;
+ struct fun_macro fmacro;
+ unsigned int c, paren_depth = 0, quote;
+ enum ls lex_state = ls_none;
+ bool header_ok;
+ const uchar *start_of_input_line;
+
+ fmacro.buff = NULL;
+ fmacro.args = NULL;
+ fmacro.node = NULL;
+ fmacro.offset = 0;
+ fmacro.line = 0;
+ fmacro.argc = 0;
+
+ quote = 0;
+ header_ok = pfile->state.angled_headers;
+ CUR (pfile->context) = pfile->buffer->cur;
+ RLIMIT (pfile->context) = pfile->buffer->rlimit;
+ pfile->out.cur = pfile->out.base;
+ pfile->out.first_line = pfile->line_table->highest_line;
+ /* start_of_input_line is needed to make sure that directives really,
+ really start at the first character of the line. */
+ start_of_input_line = pfile->buffer->cur;
+ new_context:
+ context = pfile->context;
+ cur = CUR (context);
+ check_output_buffer (pfile, RLIMIT (context) - cur);
+ out = pfile->out.cur;
+
+ for (;;)
+ {
+ if (!context->prev
+ && cur >= pfile->buffer->notes[pfile->buffer->cur_note].pos)
+ {
+ pfile->buffer->cur = cur;
+ _cpp_process_line_notes (pfile, false);
+ }
+ c = *cur++;
+ *out++ = c;
+
+ /* Whitespace should "continue" out of the switch,
+ non-whitespace should "break" out of it. */
+ switch (c)
+ {
+ case ' ':
+ case '\t':
+ case '\f':
+ case '\v':
+ case '\0':
+ continue;
+
+ case '\n':
+ /* If this is a macro's expansion, pop it. */
+ if (context->prev)
+ {
+ pfile->out.cur = out - 1;
+ _cpp_pop_context (pfile);
+ goto new_context;
+ }
+
+ /* Omit the newline from the output buffer. */
+ pfile->out.cur = out - 1;
+ pfile->buffer->cur = cur;
+ pfile->buffer->need_line = true;
+ CPP_INCREMENT_LINE (pfile, 0);
+
+ if ((lex_state == ls_fun_open || lex_state == ls_fun_close)
+ && !pfile->state.in_directive
+ && _cpp_get_fresh_line (pfile))
+ {
+ /* Newlines in arguments become a space, but we don't
+ clear any in-progress quote. */
+ if (lex_state == ls_fun_close)
+ out[-1] = ' ';
+ cur = pfile->buffer->cur;
+ continue;
+ }
+ goto done;
+
+ case '<':
+ if (header_ok)
+ quote = '>';
+ break;
+ case '>':
+ if (c == quote)
+ quote = 0;
+ break;
+
+ case '"':
+ case '\'':
+ if (c == quote)
+ quote = 0;
+ else if (!quote)
+ quote = c;
+ break;
+
+ case '\\':
+ /* Skip escaped quotes here, it's easier than above. */
+ if (*cur == '\\' || *cur == '"' || *cur == '\'')
+ *out++ = *cur++;
+ break;
+
+ case '/':
+ /* Traditional CPP does not recognize comments within
+ literals. */
+ if (!quote && *cur == '*')
+ {
+ pfile->out.cur = out;
+ cur = copy_comment (pfile, cur, macro != 0);
+ out = pfile->out.cur;
+ continue;
+ }
+ break;
+
+ case '_':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
+ case 's': case 't': case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
+ case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ if (!pfile->state.skipping && (quote == 0 || macro))
+ {
+ cpp_hashnode *node;
+ uchar *out_start = out - 1;
+
+ pfile->out.cur = out_start;
+ node = lex_identifier (pfile, cur - 1);
+ out = pfile->out.cur;
+ cur = CUR (context);
+
+ if (node->type == NT_MACRO
+ /* Should we expand for ls_answer? */
+ && (lex_state == ls_none || lex_state == ls_fun_open)
+ && !pfile->state.prevent_expansion)
+ {
+ /* Macros invalidate MI optimization. */
+ pfile->mi_valid = false;
+ if (! (node->flags & NODE_BUILTIN)
+ && node->value.macro->fun_like)
+ {
+ maybe_start_funlike (pfile, node, out_start, &fmacro);
+ lex_state = ls_fun_open;
+ fmacro.line = pfile->line_table->highest_line;
+ continue;
+ }
+ else if (!recursive_macro (pfile, node))
+ {
+ /* Remove the object-like macro's name from the
+ output, and push its replacement text. */
+ pfile->out.cur = out_start;
+ push_replacement_text (pfile, node);
+ lex_state = ls_none;
+ goto new_context;
+ }
+ }
+ else if (macro && (node->flags & NODE_MACRO_ARG) != 0)
+ {
+ /* Found a parameter in the replacement text of a
+ #define. Remove its name from the output. */
+ pfile->out.cur = out_start;
+ save_replacement_text (pfile, macro, node->value.arg_index);
+ out = pfile->out.base;
+ }
+ else if (lex_state == ls_hash)
+ {
+ lex_state = ls_predicate;
+ continue;
+ }
+ else if (pfile->state.in_expression
+ && node == pfile->spec_nodes.n_defined)
+ {
+ lex_state = ls_defined;
+ continue;
+ }
+ }
+ break;
+
+ case '(':
+ if (quote == 0)
+ {
+ paren_depth++;
+ if (lex_state == ls_fun_open)
+ {
+ if (recursive_macro (pfile, fmacro.node))
+ lex_state = ls_none;
+ else
+ {
+ lex_state = ls_fun_close;
+ paren_depth = 1;
+ out = pfile->out.base + fmacro.offset;
+ fmacro.args[0] = fmacro.offset;
+ }
+ }
+ else if (lex_state == ls_predicate)
+ lex_state = ls_answer;
+ else if (lex_state == ls_defined)
+ lex_state = ls_defined_close;
+ }
+ break;
+
+ case ',':
+ if (quote == 0 && lex_state == ls_fun_close && paren_depth == 1)
+ save_argument (&fmacro, out - pfile->out.base);
+ break;
+
+ case ')':
+ if (quote == 0)
+ {
+ paren_depth--;
+ if (lex_state == ls_fun_close && paren_depth == 0)
+ {
+ cpp_macro *m = fmacro.node->value.macro;
+
+ m->used = 1;
+ lex_state = ls_none;
+ save_argument (&fmacro, out - pfile->out.base);
+
+ /* A single zero-length argument is no argument. */
+ if (fmacro.argc == 1
+ && m->paramc == 0
+ && out == pfile->out.base + fmacro.offset + 1)
+ fmacro.argc = 0;
+
+ if (_cpp_arguments_ok (pfile, m, fmacro.node, fmacro.argc))
+ {
+ /* Remove the macro's invocation from the
+ output, and push its replacement text. */
+ pfile->out.cur = (pfile->out.base
+ + fmacro.offset);
+ CUR (context) = cur;
+ replace_args_and_push (pfile, &fmacro);
+ goto new_context;
+ }
+ }
+ else if (lex_state == ls_answer || lex_state == ls_defined_close)
+ lex_state = ls_none;
+ }
+ break;
+
+ case '#':
+ if (cur - 1 == start_of_input_line
+ /* A '#' from a macro doesn't start a directive. */
+ && !pfile->context->prev
+ && !pfile->state.in_directive)
+ {
+ /* A directive. With the way _cpp_handle_directive
+ currently works, we only want to call it if either we
+ know the directive is OK, or we want it to fail and
+ be removed from the output. If we want it to be
+ passed through (the assembler case) then we must not
+ call _cpp_handle_directive. */
+ pfile->out.cur = out;
+ cur = skip_whitespace (pfile, cur, true /* skip_comments */);
+ out = pfile->out.cur;
+
+ if (*cur == '\n')
+ {
+ /* Null directive. Ignore it and don't invalidate
+ the MI optimization. */
+ pfile->buffer->need_line = true;
+ CPP_INCREMENT_LINE (pfile, 0);
+ result = false;
+ goto done;
+ }
+ else
+ {
+ bool do_it = false;
+
+ if (is_numstart (*cur)
+ && CPP_OPTION (pfile, lang) != CLK_ASM)
+ do_it = true;
+ else if (is_idstart (*cur))
+ /* Check whether we know this directive, but don't
+ advance. */
+ do_it = lex_identifier (pfile, cur)->is_directive;
+
+ if (do_it || CPP_OPTION (pfile, lang) != CLK_ASM)
+ {
+ /* This is a kludge. We want to have the ISO
+ preprocessor lex the next token. */
+ pfile->buffer->cur = cur;
+ _cpp_handle_directive (pfile, false /* indented */);
+ result = false;
+ goto done;
+ }
+ }
+ }
+
+ if (pfile->state.in_expression)
+ {
+ lex_state = ls_hash;
+ continue;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ /* Non-whitespace disables MI optimization and stops treating
+ '<' as a quote in #include. */
+ header_ok = false;
+ if (!pfile->state.in_directive)
+ pfile->mi_valid = false;
+
+ if (lex_state == ls_none)
+ continue;
+
+ /* Some of these transitions of state are syntax errors. The
+ ISO preprocessor will issue errors later. */
+ if (lex_state == ls_fun_open)
+ /* Missing '('. */
+ lex_state = ls_none;
+ else if (lex_state == ls_hash
+ || lex_state == ls_predicate
+ || lex_state == ls_defined)
+ lex_state = ls_none;
+
+ /* ls_answer and ls_defined_close keep going until ')'. */
+ }
+
+ done:
+ if (fmacro.buff)
+ _cpp_release_buff (pfile, fmacro.buff);
+
+ if (lex_state == ls_fun_close)
+ cpp_error_with_line (pfile, CPP_DL_ERROR, fmacro.line, 0,
+ "unterminated argument list invoking macro \"%s\"",
+ NODE_NAME (fmacro.node));
+ return result;
+}
+
+/* Push a context holding the replacement text of the macro NODE on
+ the context stack. NODE is either object-like, or a function-like
+ macro with no arguments. */
+static void
+push_replacement_text (cpp_reader *pfile, cpp_hashnode *node)
+{
+ size_t len;
+ const uchar *text;
+ uchar *buf;
+
+ if (node->flags & NODE_BUILTIN)
+ {
+ text = _cpp_builtin_macro_text (pfile, node);
+ len = ustrlen (text);
+ buf = _cpp_unaligned_alloc (pfile, len + 1);
+ memcpy (buf, text, len);
+ buf[len]='\n';
+ text = buf;
+ }
+ else
+ {
+ cpp_macro *macro = node->value.macro;
+ macro->used = 1;
+ text = macro->exp.text;
+ macro->traditional = 1;
+ len = macro->count;
+ }
+
+ _cpp_push_text_context (pfile, node, text, len);
+}
+
+/* Returns TRUE if traditional macro recursion is detected. */
+static bool
+recursive_macro (cpp_reader *pfile, cpp_hashnode *node)
+{
+ bool recursing = !!(node->flags & NODE_DISABLED);
+
+ /* Object-like macros that are already expanding are necessarily
+ recursive.
+
+ However, it is possible to have traditional function-like macros
+ that are not infinitely recursive but recurse to any given depth.
+ Further, it is easy to construct examples that get ever longer
+ until the point they stop recursing. So there is no easy way to
+ detect true recursion; instead we assume any expansion more than
+ 20 deep since the first invocation of this macro must be
+ recursing. */
+ if (recursing && node->value.macro->fun_like)
+ {
+ size_t depth = 0;
+ cpp_context *context = pfile->context;
+
+ do
+ {
+ depth++;
+ if (context->c.macro == node && depth > 20)
+ break;
+ context = context->prev;
+ }
+ while (context);
+ recursing = context != NULL;
+ }
+
+ if (recursing)
+ cpp_error (pfile, CPP_DL_ERROR,
+ "detected recursion whilst expanding macro \"%s\"",
+ NODE_NAME (node));
+
+ return recursing;
+}
+
+/* Return the length of the replacement text of a function-like or
+ object-like non-builtin macro. */
+size_t
+_cpp_replacement_text_len (const cpp_macro *macro)
+{
+ size_t len;
+
+ if (macro->fun_like && (macro->paramc != 0))
+ {
+ const uchar *exp;
+
+ len = 0;
+ for (exp = macro->exp.text;;)
+ {
+ struct block *b = (struct block *) exp;
+
+ len += b->text_len;
+ if (b->arg_index == 0)
+ break;
+ len += NODE_LEN (macro->params[b->arg_index - 1]);
+ exp += BLOCK_LEN (b->text_len);
+ }
+ }
+ else
+ len = macro->count;
+
+ return len;
+}
+
+/* Copy the replacement text of MACRO to DEST, which must be of
+ sufficient size. It is not NUL-terminated. The next character is
+ returned. */
+uchar *
+_cpp_copy_replacement_text (const cpp_macro *macro, uchar *dest)
+{
+ if (macro->fun_like && (macro->paramc != 0))
+ {
+ const uchar *exp;
+
+ for (exp = macro->exp.text;;)
+ {
+ struct block *b = (struct block *) exp;
+ cpp_hashnode *param;
+
+ memcpy (dest, b->text, b->text_len);
+ dest += b->text_len;
+ if (b->arg_index == 0)
+ break;
+ param = macro->params[b->arg_index - 1];
+ memcpy (dest, NODE_NAME (param), NODE_LEN (param));
+ dest += NODE_LEN (param);
+ exp += BLOCK_LEN (b->text_len);
+ }
+ }
+ else
+ {
+ memcpy (dest, macro->exp.text, macro->count);
+ dest += macro->count;
+ }
+
+ return dest;
+}
+
+/* Push a context holding the replacement text of the macro NODE on
+ the context stack. NODE is either object-like, or a function-like
+ macro with no arguments. */
+static void
+replace_args_and_push (cpp_reader *pfile, struct fun_macro *fmacro)
+{
+ cpp_macro *macro = fmacro->node->value.macro;
+
+ if (macro->paramc == 0)
+ push_replacement_text (pfile, fmacro->node);
+ else
+ {
+ const uchar *exp;
+ uchar *p;
+ _cpp_buff *buff;
+ size_t len = 0;
+ int cxtquote = 0;
+
+ /* Get an estimate of the length of the argument-replaced text.
+ This is a worst case estimate, assuming that every replacement
+ text character needs quoting. */
+ for (exp = macro->exp.text;;)
+ {
+ struct block *b = (struct block *) exp;
+
+ len += b->text_len;
+ if (b->arg_index == 0)
+ break;
+ len += 2 * (fmacro->args[b->arg_index]
+ - fmacro->args[b->arg_index - 1] - 1);
+ exp += BLOCK_LEN (b->text_len);
+ }
+
+ /* Allocate room for the expansion plus \n. */
+ buff = _cpp_get_buff (pfile, len + 1);
+
+ /* Copy the expansion and replace arguments. */
+ /* Accumulate actual length, including quoting as necessary */
+ p = BUFF_FRONT (buff);
+ len = 0;
+ for (exp = macro->exp.text;;)
+ {
+ struct block *b = (struct block *) exp;
+ size_t arglen;
+ int argquote;
+ uchar *base;
+ uchar *in;
+
+ len += b->text_len;
+ /* Copy the non-argument text literally, keeping
+ track of whether matching quotes have been seen. */
+ for (arglen = b->text_len, in = b->text; arglen > 0; arglen--)
+ {
+ if (*in == '"')
+ cxtquote = ! cxtquote;
+ *p++ = *in++;
+ }
+ /* Done if no more arguments */
+ if (b->arg_index == 0)
+ break;
+ arglen = (fmacro->args[b->arg_index]
+ - fmacro->args[b->arg_index - 1] - 1);
+ base = pfile->out.base + fmacro->args[b->arg_index - 1];
+ in = base;
+#if 0
+ /* Skip leading whitespace in the text for the argument to
+ be substituted. To be compatible with gcc 2.95, we would
+ also need to trim trailing whitespace. Gcc 2.95 trims
+ leading and trailing whitespace, which may be a bug. The
+ current gcc testsuite explicitly checks that this leading
+ and trailing whitespace in actual arguments is
+ preserved. */
+ while (arglen > 0 && is_space (*in))
+ {
+ in++;
+ arglen--;
+ }
+#endif
+ for (argquote = 0; arglen > 0; arglen--)
+ {
+ if (cxtquote && *in == '"')
+ {
+ if (in > base && *(in-1) != '\\')
+ argquote = ! argquote;
+ /* Always add backslash before double quote if argument
+ is expanded in a quoted context */
+ *p++ = '\\';
+ len++;
+ }
+ else if (cxtquote && argquote && *in == '\\')
+ {
+ /* Always add backslash before a backslash in an argument
+ that is expanded in a quoted context and also in the
+ range of a quoted context in the argument itself. */
+ *p++ = '\\';
+ len++;
+ }
+ *p++ = *in++;
+ len++;
+ }
+ exp += BLOCK_LEN (b->text_len);
+ }
+
+ /* \n-terminate. */
+ *p = '\n';
+ _cpp_push_text_context (pfile, fmacro->node, BUFF_FRONT (buff), len);
+
+ /* So we free buffer allocation when macro is left. */
+ pfile->context->buff = buff;
+ }
+}
+
+/* Read and record the parameters, if any, of a function-like macro
+ definition. Destroys pfile->out.cur.
+
+ Returns true on success, false on failure (syntax error or a
+ duplicate parameter). On success, CUR (pfile->context) is just
+ past the closing parenthesis. */
+static bool
+scan_parameters (cpp_reader *pfile, cpp_macro *macro)
+{
+ const uchar *cur = CUR (pfile->context) + 1;
+ bool ok;
+
+ for (;;)
+ {
+ cur = skip_whitespace (pfile, cur, true /* skip_comments */);
+
+ if (is_idstart (*cur))
+ {
+ ok = false;
+ if (_cpp_save_parameter (pfile, macro, lex_identifier (pfile, cur)))
+ break;
+ cur = skip_whitespace (pfile, CUR (pfile->context),
+ true /* skip_comments */);
+ if (*cur == ',')
+ {
+ cur++;
+ continue;
+ }
+ ok = (*cur == ')');
+ break;
+ }
+
+ ok = (*cur == ')' && macro->paramc == 0);
+ break;
+ }
+
+ if (!ok)
+ cpp_error (pfile, CPP_DL_ERROR, "syntax error in macro parameter list");
+
+ CUR (pfile->context) = cur + (*cur == ')');
+
+ return ok;
+}
+
+/* Save the text from pfile->out.base to pfile->out.cur as
+ the replacement text for the current macro, followed by argument
+ ARG_INDEX, with zero indicating the end of the replacement
+ text. */
+static void
+save_replacement_text (cpp_reader *pfile, cpp_macro *macro,
+ unsigned int arg_index)
+{
+ size_t len = pfile->out.cur - pfile->out.base;
+ uchar *exp;
+
+ if (macro->paramc == 0)
+ {
+ /* Object-like and function-like macros without parameters
+ simply store their \n-terminated replacement text. */
+ exp = _cpp_unaligned_alloc (pfile, len + 1);
+ memcpy (exp, pfile->out.base, len);
+ exp[len] = '\n';
+ macro->exp.text = exp;
+ macro->traditional = 1;
+ macro->count = len;
+ }
+ else
+ {
+ /* Store the text's length (unsigned int), the argument index
+ (unsigned short, base 1) and then the text. */
+ size_t blen = BLOCK_LEN (len);
+ struct block *block;
+
+ if (macro->count + blen > BUFF_ROOM (pfile->a_buff))
+ _cpp_extend_buff (pfile, &pfile->a_buff, macro->count + blen);
+
+ exp = BUFF_FRONT (pfile->a_buff);
+ block = (struct block *) (exp + macro->count);
+ macro->exp.text = exp;
+ macro->traditional = 1;
+
+ /* Write out the block information. */
+ block->text_len = len;
+ block->arg_index = arg_index;
+ memcpy (block->text, pfile->out.base, len);
+
+ /* Lex the rest into the start of the output buffer. */
+ pfile->out.cur = pfile->out.base;
+
+ macro->count += blen;
+
+ /* If we've finished, commit the memory. */
+ if (arg_index == 0)
+ BUFF_FRONT (pfile->a_buff) += macro->count;
+ }
+}
+
+/* Analyze and save the replacement text of a macro. Returns true on
+ success. */
+bool
+_cpp_create_trad_definition (cpp_reader *pfile, cpp_macro *macro)
+{
+ const uchar *cur;
+ uchar *limit;
+ cpp_context *context = pfile->context;
+
+ /* The context has not been set up for command line defines, and CUR
+ has not been updated for the macro name for in-file defines. */
+ pfile->out.cur = pfile->out.base;
+ CUR (context) = pfile->buffer->cur;
+ RLIMIT (context) = pfile->buffer->rlimit;
+ check_output_buffer (pfile, RLIMIT (context) - CUR (context));
+
+ /* Is this a function-like macro? */
+ if (* CUR (context) == '(')
+ {
+ bool ok = scan_parameters (pfile, macro);
+
+ /* Remember the params so we can clear NODE_MACRO_ARG flags. */
+ macro->params = (cpp_hashnode **) BUFF_FRONT (pfile->a_buff);
+
+ /* Setting macro to NULL indicates an error occurred, and
+ prevents unnecessary work in _cpp_scan_out_logical_line. */
+ if (!ok)
+ macro = NULL;
+ else
+ {
+ BUFF_FRONT (pfile->a_buff) = (uchar *) &macro->params[macro->paramc];
+ macro->fun_like = 1;
+ }
+ }
+
+ /* Skip leading whitespace in the replacement text. */
+ pfile->buffer->cur
+ = skip_whitespace (pfile, CUR (context),
+ CPP_OPTION (pfile, discard_comments_in_macro_exp));
+
+ pfile->state.prevent_expansion++;
+ _cpp_scan_out_logical_line (pfile, macro);
+ pfile->state.prevent_expansion--;
+
+ if (!macro)
+ return false;
+
+ /* Skip trailing white space. */
+ cur = pfile->out.base;
+ limit = pfile->out.cur;
+ while (limit > cur && is_space (limit[-1]))
+ limit--;
+ pfile->out.cur = limit;
+ save_replacement_text (pfile, macro, 0);
+
+ return true;
+}
+
+/* Copy SRC of length LEN to DEST, but convert all contiguous
+ whitespace to a single space, provided it is not in quotes. The
+ quote currently in effect is pointed to by PQUOTE, and is updated
+ by the function. Returns the number of bytes copied. */
+static size_t
+canonicalize_text (uchar *dest, const uchar *src, size_t len, uchar *pquote)
+{
+ uchar *orig_dest = dest;
+ uchar quote = *pquote;
+
+ while (len)
+ {
+ if (is_space (*src) && !quote)
+ {
+ do
+ src++, len--;
+ while (len && is_space (*src));
+ *dest++ = ' ';
+ }
+ else
+ {
+ if (*src == '\'' || *src == '"')
+ {
+ if (!quote)
+ quote = *src;
+ else if (quote == *src)
+ quote = 0;
+ }
+ *dest++ = *src++, len--;
+ }
+ }
+
+ *pquote = quote;
+ return dest - orig_dest;
+}
+
+/* Returns true if MACRO1 and MACRO2 have expansions different other
+ than in the form of their whitespace. */
+bool
+_cpp_expansions_different_trad (const cpp_macro *macro1,
+ const cpp_macro *macro2)
+{
+ uchar *p1 = XNEWVEC (uchar, macro1->count + macro2->count);
+ uchar *p2 = p1 + macro1->count;
+ uchar quote1 = 0, quote2 = 0;
+ bool mismatch;
+ size_t len1, len2;
+
+ if (macro1->paramc > 0)
+ {
+ const uchar *exp1 = macro1->exp.text, *exp2 = macro2->exp.text;
+
+ mismatch = true;
+ for (;;)
+ {
+ struct block *b1 = (struct block *) exp1;
+ struct block *b2 = (struct block *) exp2;
+
+ if (b1->arg_index != b2->arg_index)
+ break;
+
+ len1 = canonicalize_text (p1, b1->text, b1->text_len, &quote1);
+ len2 = canonicalize_text (p2, b2->text, b2->text_len, &quote2);
+ if (len1 != len2 || memcmp (p1, p2, len1))
+ break;
+ if (b1->arg_index == 0)
+ {
+ mismatch = false;
+ break;
+ }
+ exp1 += BLOCK_LEN (b1->text_len);
+ exp2 += BLOCK_LEN (b2->text_len);
+ }
+ }
+ else
+ {
+ len1 = canonicalize_text (p1, macro1->exp.text, macro1->count, &quote1);
+ len2 = canonicalize_text (p2, macro2->exp.text, macro2->count, &quote2);
+ mismatch = (len1 != len2 || memcmp (p1, p2, len1));
+ }
+
+ free (p1);
+ return mismatch;
+}
diff --git a/gcc-4.9/libcpp/ucnid.h b/gcc-4.9/libcpp/ucnid.h
new file mode 100644
index 000000000..e93e6cb8f
--- /dev/null
+++ b/gcc-4.9/libcpp/ucnid.h
@@ -0,0 +1,4524 @@
+/* Unicode characters and various properties.
+ Copyright (C) 2003-2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 3, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING3. If not see
+ <http://www.gnu.org/licenses/>.
+
+
+ Copyright (C) 1991-2005 Unicode, Inc. All rights reserved.
+ Distributed under the Terms of Use in
+ http://www.unicode.org/copyright.html.
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of the Unicode data files and any associated
+ documentation (the "Data Files") or Unicode software and any
+ associated documentation (the "Software") to deal in the Data Files
+ or Software without restriction, including without limitation the
+ rights to use, copy, modify, merge, publish, distribute, and/or
+ sell copies of the Data Files or Software, and to permit persons to
+ whom the Data Files or Software are furnished to do so, provided
+ that (a) the above copyright notice(s) and this permission notice
+ appear with all copies of the Data Files or Software, (b) both the
+ above copyright notice(s) and this permission notice appear in
+ associated documentation, and (c) there is clear notice in each
+ modified Data File or in the Software as well as in the
+ documentation associated with the Data File(s) or Software that the
+ data or software has been modified.
+
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY
+ OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
+ ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
+ DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ OF THE DATA FILES OR SOFTWARE.
+
+ Except as contained in this notice, the name of a copyright holder
+ shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in these Data Files or Software without prior
+ written authorization of the copyright holder. */
+
+static const struct ucnrange ucnranges[] = {
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00a7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00a8 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00a9 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00aa },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00ac },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x00ad },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00ae },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00af },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b1 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00b4 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00b5 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00b6 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x00b7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00b9 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00ba },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00bb },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x00be },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00bf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x00d6 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00d7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x00f6 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x00f7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0131 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0133 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x013e },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0140 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0148 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0149 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x017e },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x017f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01c3 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x01cc },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01d4 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x01dc },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01dd },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x01e3 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01eb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x01ef },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01f0 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x01f3 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x01f5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x01f9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x01ff },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0217 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0229 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x022d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x022f },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0231 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x024f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x02a8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02af },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x02b8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02ba },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02bb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02bc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02c1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02cf },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02d1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02d7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x02dd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02df },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x02e4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x02ff },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0300 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0301 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0302 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0303 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0304 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0305 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0306 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0307 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0308 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0309 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x030d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x030e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0310 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0311 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0312 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0313 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0314 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 232, 0x0315 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0316 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0317 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0318 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0319 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 232, 0x031a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 216, 0x031b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x031c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x031d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x031e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x031f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0320 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 202, 0x0321 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 202, 0x0322 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0323 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0324 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0325 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0326 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0327 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0328 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0329 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x032a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x032b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x032c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x032f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0330 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0331 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0332 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0333 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x0334 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x0335 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x0336 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x0337 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 1, 0x0338 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0339 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x033a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x033b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x033c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x033d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x033e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x033f },
+{ 0| 0| 0|C11|N11| 0| 0| 0| 0, 230, 0x0340 },
+{ 0| 0| 0|C11|N11| 0| 0| 0| 0, 230, 0x0341 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0342 },
+{ 0| 0| 0|C11|N11| 0| 0| 0| 0, 230, 0x0343 },
+{ 0| 0| 0|C11|N11| 0| 0| 0| 0, 230, 0x0344 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC|CTX, 240, 0x0345 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0346 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0347 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0348 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0349 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x034a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x034b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x034c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x034d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0x034f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0350 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0351 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0352 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0353 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0354 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0355 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0356 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0357 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 232, 0x0358 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x0359 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x035a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x035b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 233, 0x035c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 234, 0x035d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 234, 0x035e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 233, 0x035f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 234, 0x0360 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 234, 0x0361 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 233, 0x0362 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0363 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0364 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0365 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0366 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0367 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0368 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x0369 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036a },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036b },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036c },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036d },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036e },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x036f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0373 },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0374 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0379 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x037a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x037d },
+{ 0| 0| 0|C11| 0|CID| 0| 0| 0, 0, 0x037e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0383 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0384 },
+{ 0| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x0385 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0386 },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0387 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x038a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x038b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x038c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x038d },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0390 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03a1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03a2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03a9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x03b0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03c9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x03ce },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03cf },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x03d2 },
+{ C99| 0|CXX|C11| 0| 0|NFC| 0| 0, 0, 0x03d4 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x03d6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03d9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03da },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03db },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03dc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03dd },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03de },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03df },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03e0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03e1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03ef },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x03f2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x03f3 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x03f5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03f8 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x03f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x03ff },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0400 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0401 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0402 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0403 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0406 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0407 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x040b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x040c },
+{ 0| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x040d },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x040e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0418 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0419 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0438 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0439 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x044f },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0450 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0451 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0452 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0453 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0456 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0457 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x045b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x045c },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x045d },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x045e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0475 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0477 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0481 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0482 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0483 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0484 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0485 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0486 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x048f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04c0 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04c2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04c4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x04c6 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04c8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x04ca },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04cc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x04cf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04d3 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04d5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04d7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04d9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04df },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04e1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04e7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x04e9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04eb },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x04ed },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04f5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x04f7 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x04f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0530 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0556 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0558 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0559 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0560 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0586 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0587 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0590 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0591 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0592 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0593 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0594 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0595 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0596 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0597 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0598 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0599 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 222, 0x059a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x059b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x059c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x059d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x059e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x059f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05a0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05a1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05a7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05a8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05a9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x05aa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05ab },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05ac },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 222, 0x05ad },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 228, 0x05ae },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05af },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 10, 0x05b0 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 11, 0x05b1 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 12, 0x05b2 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 13, 0x05b3 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 14, 0x05b4 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 15, 0x05b5 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 16, 0x05b6 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 17, 0x05b7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 18, 0x05b8 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 19, 0x05b9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 19, 0x05ba },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 20, 0x05bb },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 21, 0x05bc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 22, 0x05bd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05be },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 23, 0x05bf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05c0 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 24, 0x05c1 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 25, 0x05c2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05c3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x05c4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05c6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05cf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x05ea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x05ef },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x05f2 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x05f4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x060f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0610 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0611 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0612 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0613 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0614 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0615 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0616 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0617 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 30, 0x0618 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 31, 0x0619 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0620 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0621 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0626 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x063a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x063f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x064a },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 27, 0x064b },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 28, 0x064c },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 29, 0x064d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 30, 0x064e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 31, 0x064f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 32, 0x0650 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 33, 0x0651 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 34, 0x0652 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 230, 0x0653 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 230, 0x0654 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 220, 0x0655 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0656 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0657 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0658 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0659 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x065a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x065b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x065c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x065d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x065e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x065f },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0669 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x066f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0674 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0678 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x06b7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06b9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x06be },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06bf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x06c0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x06c1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x06c2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x06ce },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06cf },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06d2 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x06d3 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06d5 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06d6 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06d7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06d8 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06d9 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06da },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06db },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06dc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06de },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06df },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06e0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06e1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06e2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x06e3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06e4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x06e6 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 230, 0x06e7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06e8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06e9 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x06ea },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06eb },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x06ec },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x06ed },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06ef },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x06f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0710 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x072f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0730 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0731 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0732 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0733 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0734 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0735 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0736 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0737 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0738 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0739 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x073a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x073b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x073c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x073d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x073e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x073f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0740 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0741 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0742 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0743 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0744 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0745 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0746 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0747 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0748 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0749 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x07ea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07eb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07ec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07ed },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07ee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07ef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07f0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x07f1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x07f2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0815 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0816 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0817 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0818 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x081a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x081b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x081c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x081d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x081e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x081f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0820 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0821 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0822 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0824 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0825 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0826 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0828 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0829 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x082a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x082b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x082c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0858 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0859 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x085a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x08e3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08e4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08e5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08e6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08e7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08e8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08e9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08ea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08eb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08ec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08ed },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08ee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08ef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 27, 0x08f0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 28, 0x08f1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 29, 0x08f2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08f3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08f4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08f5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08f6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08f7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08f8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x08fa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08fb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08fc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x08fd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0900 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0903 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0904 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0928 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0929 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0930 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0931 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0933 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0934 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0939 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x093b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 7, 0x093c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x094c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x094d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x094f },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0950 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0951 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0952 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0953 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0957 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x095f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0962 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0963 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0965 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x096f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0980 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0983 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0984 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x098c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x098e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0990 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0992 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09a8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09a9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09b0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09b1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09b2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09b5 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09b9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09bb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09bd },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x09be },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09c4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09c6 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09c8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09ca },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x09cc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x09cd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09d6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x09d7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09db },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x09dd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09de },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x09df },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09e1 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09e3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09e5 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x09ef },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x09f1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a01 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a02 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a04 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a0a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a0e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a10 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a12 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a28 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a29 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a30 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a31 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a32 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x0a33 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a34 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a35 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x0a36 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a37 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a3b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a3d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a42 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a46 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a48 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a4a },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a4c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0a4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a58 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x0a5b },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a5c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a5d },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x0a5e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a65 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a73 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a74 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a80 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a83 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a84 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a8b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a8c },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a8d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a8e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0a91 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0a92 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0aa8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0aa9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ab0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ab1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ab3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ab4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ab9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0abb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 7, 0x0abc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ac5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ac6 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ac9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0aca },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0acc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0acd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0acf },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ad0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0adf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ae0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ae5 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0aef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b00 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b03 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b04 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b0e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b10 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b12 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b28 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b29 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b30 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b31 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b33 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b35 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b3b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 7, 0x0b3c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b3d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0b3e },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b43 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b46 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b47 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0b48 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b4a },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0b4c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0b4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b55 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0b57 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b5b },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x0b5d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b5e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b61 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b65 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b81 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b83 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b84 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b8a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b8d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b90 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b91 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b93 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x0b94 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b95 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b98 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b9a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b9b },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b9c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0b9d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0b9f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ba2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ba4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ba7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0baa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bad },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0bb5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bb6 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0bb9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bbd },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0bbe },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bc2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bc5 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bc8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bc9 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0bcc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0bcd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bd6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0bd7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0be6 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0bef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c00 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c03 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c04 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c0d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c10 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c11 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c28 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c29 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c33 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c34 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c3d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c44 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c45 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c47 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0c48 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c49 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c4c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0c4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c54 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 84, 0x0c55 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 91, 0x0c56 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c5f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c61 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c65 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c81 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c83 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c84 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c8c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c8d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0c90 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0c91 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ca8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ca9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0cb3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cb4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0cb9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cbb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cbd },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cbf },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0cc0 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cc1 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0cc2 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cc4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cc5 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cc6 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0cc8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cc9 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0ccb },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ccc },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0ccd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cd4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0cd6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cdd },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cde },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cdf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ce1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ce5 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0cef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d01 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d03 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d04 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0d0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d0d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0d10 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d11 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0d28 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d29 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0d39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d3d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0d3e },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d43 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d45 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d48 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d49 },
+{ C99| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0d4c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0d4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d56 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0d57 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d5f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0d61 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d65 },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0d6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0dc9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 9, 0x0dca },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0dce },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0dcf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0dd9 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0dda },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ddb },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x0dde },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x0ddf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e00 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e30 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e31 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e32 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0e33 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e37 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 103, 0x0e38 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 103, 0x0e39 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0e3a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e3f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e46 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e47 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 107, 0x0e48 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 107, 0x0e49 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 107, 0x0e4a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e4e },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e4f },
+{ C99|N99|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e59 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e5b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e80 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e82 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e83 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e84 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e86 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e88 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e89 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e8a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e8c },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e8d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e93 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e97 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0e98 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0e9f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea6 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ea9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0eab },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0eac },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0eae },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0eaf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0eb0 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0eb1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0eb2 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x0eb3 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0eb7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 118, 0x0eb8 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 118, 0x0eb9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0eba },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ebc },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ebd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ebf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ec4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ec5 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x0ec6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ec7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 122, 0x0ec8 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 122, 0x0ec9 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 122, 0x0eca },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ecd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ecf },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0ed9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0edb },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x0edd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0eff },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f00 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f0b },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x0f0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f17 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0f18 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0f19 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f1f },
+{ C99|N99| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f33 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f34 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0f35 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f36 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x0f37 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f38 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x0f39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f3d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f42 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f43 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f47 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f48 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f4c },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f4d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f51 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f52 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f56 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f57 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f5b },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f5c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f68 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f69 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f70 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 129, 0x0f71 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 130, 0x0f72 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f73 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 132, 0x0f74 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f76 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x0f77 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f78 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x0f79 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 130, 0x0f7a },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 130, 0x0f7b },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 130, 0x0f7c },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f7f },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 130, 0x0f80 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f81 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0f82 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0f83 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x0f84 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f85 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x0f86 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f8b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f8f },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f92 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f93 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f95 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f96 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f97 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f98 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0f9c },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0f9d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fa1 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0fa2 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fa6 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0fa7 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fab },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0fac },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fad },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fb0 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fb7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fb8 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x0fb9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x0fc5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1025 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1026 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x102d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x102e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1036 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1038 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x1039 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x108c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x109f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x10c5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10cf },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x10f6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10fb },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x10fc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10ff },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1159 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1160 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC|CTX, 0, 0x1175 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x11a2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x11a7 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC|CTX, 0, 0x11c2 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x11f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x135c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x135d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x135e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x167f },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1680 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1713 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1733 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x17d1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x17dc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x180d },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x180e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x18a8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1938 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 222, 0x1939 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x193a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1a16 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a17 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1a5f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1a74 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a75 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a76 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a77 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a78 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a79 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a7a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1a7b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1a7e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b05 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b06 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b07 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b08 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b09 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b0a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b0b },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b0d },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b0e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b11 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b12 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b33 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 7, 0x1b34 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x1b35 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b3a },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b3b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b3c },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b3d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b3f },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b41 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b42 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1b43 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1b6a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b6b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1b6c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b6d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b6e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b70 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b71 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1b72 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ba9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x1baa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1be5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1bf1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x1bf2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1c36 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ccf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1cd0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1cd1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1cd3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1cd4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cd5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cd6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cd7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cd8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cd9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1cda },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1cdb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cdc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cdd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cde },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1cdf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ce1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1ce7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1cec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1cf3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d2b },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d2e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d2f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d3a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d3b },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4e },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d6a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d77 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d78 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d9a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1dbf },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc0 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc1 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x1dc2 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc3 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc4 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc5 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc6 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc7 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc8 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dc9 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x1dca },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dcb },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dcc },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 234, 0x1dcd },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 214, 0x1dce },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x1dcf },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 202, 0x1dd0 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd1 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd2 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd3 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd4 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd5 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd6 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd7 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd8 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dd9 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dda },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1ddb },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1ddc },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1ddd },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dde },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1ddf },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de0 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de1 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de2 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de3 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de4 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1de5 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0x1dfb },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 233, 0x1dfc },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x1dfd },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x1dfe },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x1dff },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e07 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e09 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e13 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e17 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e1b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e1d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e2d },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e2f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e37 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e39 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e4b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e53 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e5b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e5d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e63 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e69 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e77 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1e7b },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1e99 },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x1e9a },
+{ C99| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x1e9b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1e9f },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1ea3 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1eb7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1ebd },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ec7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1ecf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ee3 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee7 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ef1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x1ef9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1eff },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f15 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f17 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f1d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f1f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f45 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f47 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f4d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f4f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f57 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f58 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f59 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f5a },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f5b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f5c },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f5d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f5e },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f70 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f71 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f72 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f73 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f74 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f75 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f76 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f77 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f78 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f79 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f7a },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f7b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1f7c },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1f7d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f7f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fb4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fb5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fba },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fbb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fbc },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1fbd },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x1fbe },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1fc0 },
+{ 0| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x1fc1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fc4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fc5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fc8 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fc9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fca },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fcb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fcc },
+{ 0| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x1fcf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fd2 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fd3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fd5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fda },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fdb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fdc },
+{ 0| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x1fdf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fe2 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1fe3 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fea },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1feb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1fec },
+{ 0| 0| 0|C11| 0| 0|NFC| 0| 0, 0, 0x1fed },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x1fee },
+{ 0| 0| 0|C11| 0|CID| 0| 0| 0, 0, 0x1fef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ff1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ff4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ff5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ff8 },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1ff9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ffa },
+{ C99| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0x1ffb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x1ffc },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x1ffd },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ffe },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fff },
+{ 0| 0| 0| 0| 0|CID| 0| 0| 0, 0, 0x200a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x200d },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2029 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x202e },
+{ 0| 0| 0| 0| 0|CID|NFC| 0| 0, 0, 0x203e },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2040 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2053 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2054 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x205f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x206f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2071 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2073 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x207e },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x207f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x208e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x208f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x209c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x20a7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x20a8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x20cf },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d0 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d1 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20d2 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20d3 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d4 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d5 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d6 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20d7 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20d8 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20d9 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20da },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20db },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0x20e0 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0x20e4 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20e5 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20e6 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20e7 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x20e8 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0x20e9 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20ea },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 1, 0x20eb },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x20ec },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x20ed },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x20ee },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 220, 0x20ef },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0x20ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2101 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2102 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2103 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2104 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2106 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2107 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2108 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2109 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2113 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2114 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2115 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2116 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2117 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2118 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x211d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x211f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2122 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2123 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2124 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2125 },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x2126 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2127 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2128 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2129 },
+{ C99| 0| 0|C11| 0|CID| 0| 0| 0, 0, 0x212a },
+{ C99| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x212b },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x212d },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x212e },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2131 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2132 },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2138 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2139 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x213a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2140 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2144 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2149 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x214f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x215f },
+{ C99| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x217f },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2182 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2188 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2189 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x218f },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x245f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x24ea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x24ff },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2775 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2793 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2bff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2c7b },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2c7d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2cee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2cef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2cf0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2d6e },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2d6f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2d7e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2ddf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2de9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2deb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2ded },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2def },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2df9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dfa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dfb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dfc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dfd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dfe },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x2dff },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2e7f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2e9e },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2e9f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2ef2 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2ef3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2eff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x2fd5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2fff },
+{ 0| 0| 0| 0| 0|CID|NFC| 0| 0, 0, 0x3003 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3004 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3007 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3020 },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3029 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 218, 0x302a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 228, 0x302b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 232, 0x302c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 222, 0x302d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 224, 0x302e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 224, 0x302f },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3030 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3035 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x3036 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3037 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x303a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3040 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x304b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x304c },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x304d },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x304e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x304f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3050 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3051 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3052 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3053 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3054 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3055 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3056 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3057 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3058 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3059 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x305a },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x305b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x305c },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x305d },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x305e },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x305f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3060 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3061 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3062 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3064 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3065 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3066 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3067 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3068 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3069 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x306f },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3071 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3072 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3074 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3075 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3077 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3078 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x307a },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x307b },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x307d },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x3093 },
+{ 0| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x3094 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3098 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 8, 0x3099 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 8, 0x309a },
+{ C99| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0x309c },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x309d },
+{ 0| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x309e },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x309f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x30a0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30ab },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30ac },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30ad },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30ae },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30af },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30b0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30b1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30b2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30b3 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30b4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30b5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30b6 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30b7 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30b8 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30b9 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30ba },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30bb },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30bc },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30bd },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30be },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30bf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30c0 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30c1 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30c2 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30c4 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30c5 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30c6 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30c7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30c8 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30c9 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30cf },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30d1 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30d2 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30d4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30d5 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30d7 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30d8 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30da },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30db },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30dd },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30f3 },
+{ C99| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30f4 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30f6 },
+{ 0| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30fa },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30fc },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x30fd },
+{ 0| 0|CXX|C11| 0| 0|NFC|NKC| 0, 0, 0x30fe },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x30ff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3104 },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x312c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3130 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x318e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3191 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x319f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x31ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x321e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x321f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x3247 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x324f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x327e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x327f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x32fe },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x32ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x33ff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x4dff },
+{ C99| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0x9fa5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa66e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa673 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa674 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa675 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa676 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa677 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa678 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa679 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa67a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa67b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa67c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa69e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa6ef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa6f0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa76f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xa770 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa7f7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xa7f9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa805 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa8c3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa8df },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e4 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8e9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8ea },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8eb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8ec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8ed },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8ee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8ef },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xa8f0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa92a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0xa92b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0xa92c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa952 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa9b2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xa9bf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaaaf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaab1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xaab2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xaab3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaab6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xaab7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaabd },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0xaabe },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaac0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xaaf5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xabec },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xabff },
+{ C99| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xd7a3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xd7ff },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xf8ff },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa0d },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa0f },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa10 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa11 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa12 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa14 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa1e },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa1f },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa20 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa21 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa22 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa24 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa26 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfa29 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfa2d },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0xfa6d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfa6f },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0xfad9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfaff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfb06 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb12 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfb17 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb1c },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0xfb1d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 26, 0xfb1e },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb1f },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfb29 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb36 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb37 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb3c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb3d },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb3e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb3f },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb41 },
+{ 0| 0|CXX|C11| 0|CID|NFC|NKC| 0, 0, 0xfb42 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb44 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfb45 },
+{ 0| 0|CXX|C11| 0| 0| 0| 0| 0, 0, 0xfb4e },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfbb1 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfbd2 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfd3d },
+{ 0| 0|CXX| 0| 0|CID|NFC|NKC| 0, 0, 0xfd3f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfd4f },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfd8f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfd91 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfdc7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfdcf },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfdef },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfdfb },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfdfc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe0f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfe19 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe1f },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe20 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe21 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe22 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe23 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe24 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 230, 0xfe25 },
+{ 0| 0| 0|C11|N11|CID|NFC|NKC| 0, 0, 0xfe2f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfe44 },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xfe46 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfe52 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe53 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfe66 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe67 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xfe6b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe6f },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfe72 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe73 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfe74 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfe75 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xfefc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xff00 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xff20 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xff3a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xff40 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xff5a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xff65 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xffbe },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffc1 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xffc7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffc9 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xffcf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffd1 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xffd7 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffd9 },
+{ 0| 0|CXX|C11| 0|CID|NFC| 0| 0, 0, 0xffdc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffdf },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xffe6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xffe7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0xffee },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xfffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x101fc },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10a0c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10a0e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10a37 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x10a38 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x10a39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x10a3e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x11045 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x11099 },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1109a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1109b },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1109c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x110aa },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x110ab },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x110b8 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x110b9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 7, 0x110ba },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x110ff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x11100 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x11101 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x11126 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC|CTX, 0, 0x11127 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1112d },
+{ 0| 0| 0|C11| 0| 0|NFC|NKC| 0, 0, 0x1112f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x11132 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x11133 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x111bf },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x116b5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 9, 0x116b6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d15d },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x1d164 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d165 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d166 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1d167 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 1, 0x1d168 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d16c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 226, 0x1d16d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d16e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d16f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d170 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 216, 0x1d171 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d17a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d17b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d17c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d17d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d17e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d17f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d180 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d181 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d184 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d185 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d186 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d187 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d188 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d189 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 220, 0x1d18a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d1a9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d1aa },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d1ab },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d1ac },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d1ba },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x1d1c0 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d241 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d242 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 230, 0x1d243 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d3ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d454 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d455 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d49c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d49d },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d49f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4a1 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4a2 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4a4 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4a6 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4a8 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4ac },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4ad },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4b9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4ba },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4bb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4bc },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d4c3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d4c4 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d505 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d506 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d50a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d50c },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d514 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d515 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d51c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d51d },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d539 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d53a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d53e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d53f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d544 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d545 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d546 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d549 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d550 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d551 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d6a5 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d6a7 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d7cb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1d7cd },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1d7ff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1edff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee03 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee04 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee1f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee20 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee22 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee23 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee24 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee26 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee27 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee28 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee32 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee33 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee37 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee38 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee39 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee3a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee3b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee41 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee42 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee46 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee47 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee48 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee49 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee4a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee4b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee4c },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee4f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee50 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee52 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee53 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee54 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee56 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee57 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee58 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee59 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee5a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee5b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee5c },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee5d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee5e },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee5f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee60 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee62 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee63 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee64 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee66 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee6a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee6b },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee72 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee73 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee77 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee78 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee7c },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee7d },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee7e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee7f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee89 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1ee8a },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1ee9b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1eea0 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1eea3 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1eea4 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1eea9 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1eeaa },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1eebb },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f0ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f10a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f10f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f12e },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f12f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f14f },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f169 },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f16b },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f18f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f190 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f1ff },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f202 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f20f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f23a },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f23f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f248 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1f24f },
+{ 0| 0| 0|C11| 0|CID|NFC| 0| 0, 0, 0x1f251 },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x1fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2f7ff },
+{ 0| 0| 0|C11| 0| 0| 0| 0| 0, 0, 0x2fa1d },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x2fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x3fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x4fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x4ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x5fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x5ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x6fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x6ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x7fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x7ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x8fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x8ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0x9fffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x9ffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xafffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xaffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xbfffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xbffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xcfffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xcffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xdfffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xdffff },
+{ 0| 0| 0|C11| 0|CID|NFC|NKC| 0, 0, 0xefffd },
+{ 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ffff },
+};
+static bool
+check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)
+{
+ switch (c)
+ {
+ case 0x0300:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0045:
+ case 0x0049:
+ case 0x004f:
+ case 0x0055:
+ case 0x0061:
+ case 0x0065:
+ case 0x0069:
+ case 0x006f:
+ case 0x0075:
+ case 0x00dc:
+ case 0x00fc:
+ case 0x004e:
+ case 0x006e:
+ case 0x0415:
+ case 0x0418:
+ case 0x0435:
+ case 0x0438:
+ case 0x0112:
+ case 0x0113:
+ case 0x014c:
+ case 0x014d:
+ case 0x0057:
+ case 0x0077:
+ case 0x00c2:
+ case 0x00e2:
+ case 0x0102:
+ case 0x0103:
+ case 0x00ca:
+ case 0x00ea:
+ case 0x00d4:
+ case 0x00f4:
+ case 0x01a0:
+ case 0x01a1:
+ case 0x01af:
+ case 0x01b0:
+ case 0x0059:
+ case 0x0079:
+ case 0x1f00:
+ case 0x1f80:
+ case 0x1f01:
+ case 0x1f81:
+ case 0x1f08:
+ case 0x1f88:
+ case 0x1f09:
+ case 0x1f89:
+ case 0x1f10:
+ case 0x1f11:
+ case 0x1f18:
+ case 0x1f19:
+ case 0x1f20:
+ case 0x1f90:
+ case 0x1f21:
+ case 0x1f91:
+ case 0x1f28:
+ case 0x1f98:
+ case 0x1f29:
+ case 0x1f99:
+ case 0x1f30:
+ case 0x1f31:
+ case 0x1f38:
+ case 0x1f39:
+ case 0x1f40:
+ case 0x1f41:
+ case 0x1f48:
+ case 0x1f49:
+ case 0x1f50:
+ case 0x1f51:
+ case 0x1f59:
+ case 0x1f60:
+ case 0x1fa0:
+ case 0x1f61:
+ case 0x1fa1:
+ case 0x1f68:
+ case 0x1fa8:
+ case 0x1f69:
+ case 0x1fa9:
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x03b5:
+ case 0x03b7:
+ case 0x1fc3:
+ case 0x03b9:
+ case 0x03bf:
+ case 0x03c5:
+ case 0x03c9:
+ case 0x1ff3:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x0395:
+ case 0x0397:
+ case 0x1fcc:
+ case 0x1fbf:
+ case 0x03ca:
+ case 0x0399:
+ case 0x1ffe:
+ case 0x03cb:
+ case 0x03a5:
+ case 0x00a8:
+ case 0x039f:
+ case 0x03a9:
+ case 0x1ffc:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0301:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0045:
+ case 0x0049:
+ case 0x004f:
+ case 0x0055:
+ case 0x0059:
+ case 0x0061:
+ case 0x0065:
+ case 0x0069:
+ case 0x006f:
+ case 0x0075:
+ case 0x0079:
+ case 0x0043:
+ case 0x0063:
+ case 0x004c:
+ case 0x006c:
+ case 0x004e:
+ case 0x006e:
+ case 0x0052:
+ case 0x0072:
+ case 0x0053:
+ case 0x0073:
+ case 0x005a:
+ case 0x007a:
+ case 0x00dc:
+ case 0x00fc:
+ case 0x0047:
+ case 0x0067:
+ case 0x00c5:
+ case 0x00e5:
+ case 0x00c6:
+ case 0x00e6:
+ case 0x00d8:
+ case 0x00f8:
+ case 0x00a8:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x0395:
+ case 0x0397:
+ case 0x1fcc:
+ case 0x0399:
+ case 0x039f:
+ case 0x03a5:
+ case 0x03a9:
+ case 0x1ffc:
+ case 0x03ca:
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x03b5:
+ case 0x03b7:
+ case 0x1fc3:
+ case 0x03b9:
+ case 0x03cb:
+ case 0x03bf:
+ case 0x03c5:
+ case 0x03c9:
+ case 0x1ff3:
+ case 0x03d2:
+ case 0x0413:
+ case 0x041a:
+ case 0x0433:
+ case 0x043a:
+ case 0x00c7:
+ case 0x00e7:
+ case 0x0112:
+ case 0x0113:
+ case 0x00cf:
+ case 0x00ef:
+ case 0x004b:
+ case 0x006b:
+ case 0x004d:
+ case 0x006d:
+ case 0x00d5:
+ case 0x00f5:
+ case 0x014c:
+ case 0x014d:
+ case 0x0050:
+ case 0x0070:
+ case 0x0168:
+ case 0x0169:
+ case 0x0057:
+ case 0x0077:
+ case 0x00c2:
+ case 0x00e2:
+ case 0x0102:
+ case 0x0103:
+ case 0x00ca:
+ case 0x00ea:
+ case 0x00d4:
+ case 0x00f4:
+ case 0x01a0:
+ case 0x01a1:
+ case 0x01af:
+ case 0x01b0:
+ case 0x1f00:
+ case 0x1f80:
+ case 0x1f01:
+ case 0x1f81:
+ case 0x1f08:
+ case 0x1f88:
+ case 0x1f09:
+ case 0x1f89:
+ case 0x1f10:
+ case 0x1f11:
+ case 0x1f18:
+ case 0x1f19:
+ case 0x1f20:
+ case 0x1f90:
+ case 0x1f21:
+ case 0x1f91:
+ case 0x1f28:
+ case 0x1f98:
+ case 0x1f29:
+ case 0x1f99:
+ case 0x1f30:
+ case 0x1f31:
+ case 0x1f38:
+ case 0x1f39:
+ case 0x1f40:
+ case 0x1f41:
+ case 0x1f48:
+ case 0x1f49:
+ case 0x1f50:
+ case 0x1f51:
+ case 0x1f59:
+ case 0x1f60:
+ case 0x1fa0:
+ case 0x1f61:
+ case 0x1fa1:
+ case 0x1f68:
+ case 0x1fa8:
+ case 0x1f69:
+ case 0x1fa9:
+ case 0x1fbf:
+ case 0x1ffe:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0302:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0045:
+ case 0x0049:
+ case 0x004f:
+ case 0x0055:
+ case 0x0061:
+ case 0x0065:
+ case 0x0069:
+ case 0x006f:
+ case 0x0075:
+ case 0x0043:
+ case 0x0063:
+ case 0x0047:
+ case 0x0067:
+ case 0x0048:
+ case 0x0068:
+ case 0x004a:
+ case 0x006a:
+ case 0x0053:
+ case 0x0073:
+ case 0x0057:
+ case 0x0077:
+ case 0x0059:
+ case 0x0079:
+ case 0x005a:
+ case 0x007a:
+ case 0x1ea0:
+ case 0x1ea1:
+ case 0x1eb8:
+ case 0x1eb9:
+ case 0x1ecc:
+ case 0x1ecd:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0303:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x004e:
+ case 0x004f:
+ case 0x0061:
+ case 0x006e:
+ case 0x006f:
+ case 0x0049:
+ case 0x0069:
+ case 0x0055:
+ case 0x0075:
+ case 0x0056:
+ case 0x0076:
+ case 0x00c2:
+ case 0x00e2:
+ case 0x0102:
+ case 0x0103:
+ case 0x0045:
+ case 0x0065:
+ case 0x00ca:
+ case 0x00ea:
+ case 0x00d4:
+ case 0x00f4:
+ case 0x01a0:
+ case 0x01a1:
+ case 0x01af:
+ case 0x01b0:
+ case 0x0059:
+ case 0x0079:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0304:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x0045:
+ case 0x0065:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x0055:
+ case 0x0075:
+ case 0x00dc:
+ case 0x00fc:
+ case 0x00c4:
+ case 0x00e4:
+ case 0x0226:
+ case 0x0227:
+ case 0x00c6:
+ case 0x00e6:
+ case 0x01ea:
+ case 0x01eb:
+ case 0x00d6:
+ case 0x00f6:
+ case 0x00d5:
+ case 0x00f5:
+ case 0x022e:
+ case 0x022f:
+ case 0x0059:
+ case 0x0079:
+ case 0x0418:
+ case 0x0438:
+ case 0x0423:
+ case 0x0443:
+ case 0x0047:
+ case 0x0067:
+ case 0x1e36:
+ case 0x1e37:
+ case 0x1e5a:
+ case 0x1e5b:
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x03b9:
+ case 0x0399:
+ case 0x03c5:
+ case 0x03a5:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0306:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x0045:
+ case 0x0065:
+ case 0x0047:
+ case 0x0067:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x0055:
+ case 0x0075:
+ case 0x0423:
+ case 0x0418:
+ case 0x0438:
+ case 0x0443:
+ case 0x0416:
+ case 0x0436:
+ case 0x0410:
+ case 0x0430:
+ case 0x0415:
+ case 0x0435:
+ case 0x0228:
+ case 0x0229:
+ case 0x1ea0:
+ case 0x1ea1:
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x03b9:
+ case 0x0399:
+ case 0x03c5:
+ case 0x03a5:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0307:
+ switch (p)
+ {
+ case 0x0043:
+ case 0x0063:
+ case 0x0045:
+ case 0x0065:
+ case 0x0047:
+ case 0x0067:
+ case 0x0049:
+ case 0x005a:
+ case 0x007a:
+ case 0x0041:
+ case 0x0061:
+ case 0x004f:
+ case 0x006f:
+ case 0x0042:
+ case 0x0062:
+ case 0x0044:
+ case 0x0064:
+ case 0x0046:
+ case 0x0066:
+ case 0x0048:
+ case 0x0068:
+ case 0x004d:
+ case 0x006d:
+ case 0x004e:
+ case 0x006e:
+ case 0x0050:
+ case 0x0070:
+ case 0x0052:
+ case 0x0072:
+ case 0x0053:
+ case 0x0073:
+ case 0x015a:
+ case 0x015b:
+ case 0x0160:
+ case 0x0161:
+ case 0x1e62:
+ case 0x1e63:
+ case 0x0054:
+ case 0x0074:
+ case 0x0057:
+ case 0x0077:
+ case 0x0058:
+ case 0x0078:
+ case 0x0059:
+ case 0x0079:
+ case 0x017f:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0308:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0045:
+ case 0x0049:
+ case 0x004f:
+ case 0x0055:
+ case 0x0061:
+ case 0x0065:
+ case 0x0069:
+ case 0x006f:
+ case 0x0075:
+ case 0x0079:
+ case 0x0059:
+ case 0x0399:
+ case 0x03a5:
+ case 0x03b9:
+ case 0x03c5:
+ case 0x03d2:
+ case 0x0415:
+ case 0x0406:
+ case 0x0435:
+ case 0x0456:
+ case 0x0410:
+ case 0x0430:
+ case 0x04d8:
+ case 0x04d9:
+ case 0x0416:
+ case 0x0436:
+ case 0x0417:
+ case 0x0437:
+ case 0x0418:
+ case 0x0438:
+ case 0x041e:
+ case 0x043e:
+ case 0x04e8:
+ case 0x04e9:
+ case 0x042d:
+ case 0x044d:
+ case 0x0423:
+ case 0x0443:
+ case 0x0427:
+ case 0x0447:
+ case 0x042b:
+ case 0x044b:
+ case 0x0048:
+ case 0x0068:
+ case 0x00d5:
+ case 0x00f5:
+ case 0x016a:
+ case 0x016b:
+ case 0x0057:
+ case 0x0077:
+ case 0x0058:
+ case 0x0078:
+ case 0x0074:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0309:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x00c2:
+ case 0x00e2:
+ case 0x0102:
+ case 0x0103:
+ case 0x0045:
+ case 0x0065:
+ case 0x00ca:
+ case 0x00ea:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x00d4:
+ case 0x00f4:
+ case 0x01a0:
+ case 0x01a1:
+ case 0x0055:
+ case 0x0075:
+ case 0x01af:
+ case 0x01b0:
+ case 0x0059:
+ case 0x0079:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x030a:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x0055:
+ case 0x0075:
+ case 0x0077:
+ case 0x0079:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x030b:
+ switch (p)
+ {
+ case 0x004f:
+ case 0x006f:
+ case 0x0055:
+ case 0x0075:
+ case 0x0423:
+ case 0x0443:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x030c:
+ switch (p)
+ {
+ case 0x0043:
+ case 0x0063:
+ case 0x0044:
+ case 0x0064:
+ case 0x0045:
+ case 0x0065:
+ case 0x004c:
+ case 0x006c:
+ case 0x004e:
+ case 0x006e:
+ case 0x0052:
+ case 0x0072:
+ case 0x0053:
+ case 0x0073:
+ case 0x0054:
+ case 0x0074:
+ case 0x005a:
+ case 0x007a:
+ case 0x0041:
+ case 0x0061:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x0055:
+ case 0x0075:
+ case 0x00dc:
+ case 0x00fc:
+ case 0x0047:
+ case 0x0067:
+ case 0x004b:
+ case 0x006b:
+ case 0x01b7:
+ case 0x0292:
+ case 0x006a:
+ case 0x0048:
+ case 0x0068:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x030f:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x0045:
+ case 0x0065:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x0052:
+ case 0x0072:
+ case 0x0055:
+ case 0x0075:
+ case 0x0474:
+ case 0x0475:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0311:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x0061:
+ case 0x0045:
+ case 0x0065:
+ case 0x0049:
+ case 0x0069:
+ case 0x004f:
+ case 0x006f:
+ case 0x0052:
+ case 0x0072:
+ case 0x0055:
+ case 0x0075:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0313:
+ switch (p)
+ {
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x03b5:
+ case 0x0395:
+ case 0x03b7:
+ case 0x1fc3:
+ case 0x0397:
+ case 0x1fcc:
+ case 0x03b9:
+ case 0x0399:
+ case 0x03bf:
+ case 0x039f:
+ case 0x03c5:
+ case 0x03c9:
+ case 0x1ff3:
+ case 0x03a9:
+ case 0x1ffc:
+ case 0x03c1:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0314:
+ switch (p)
+ {
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x0391:
+ case 0x1fbc:
+ case 0x03b5:
+ case 0x0395:
+ case 0x03b7:
+ case 0x1fc3:
+ case 0x0397:
+ case 0x1fcc:
+ case 0x03b9:
+ case 0x0399:
+ case 0x03bf:
+ case 0x039f:
+ case 0x03c5:
+ case 0x03a5:
+ case 0x03c9:
+ case 0x1ff3:
+ case 0x03a9:
+ case 0x1ffc:
+ case 0x03c1:
+ case 0x03a1:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x031b:
+ switch (p)
+ {
+ case 0x004f:
+ case 0x00d2:
+ case 0x00d3:
+ case 0x00d4:
+ case 0x00d5:
+ case 0x00d6:
+ case 0x014c:
+ case 0x014e:
+ case 0x0150:
+ case 0x01d1:
+ case 0x020c:
+ case 0x020e:
+ case 0x022a:
+ case 0x022c:
+ case 0x022e:
+ case 0x0230:
+ case 0x1e4c:
+ case 0x1e4e:
+ case 0x1e50:
+ case 0x1e52:
+ case 0x1ecc:
+ case 0x1ece:
+ case 0x1ed0:
+ case 0x1ed2:
+ case 0x1ed4:
+ case 0x1ed6:
+ case 0x1ed8:
+ case 0x006f:
+ case 0x00f2:
+ case 0x00f3:
+ case 0x00f4:
+ case 0x00f5:
+ case 0x00f6:
+ case 0x014d:
+ case 0x014f:
+ case 0x0151:
+ case 0x01d2:
+ case 0x020d:
+ case 0x020f:
+ case 0x022b:
+ case 0x022d:
+ case 0x022f:
+ case 0x0231:
+ case 0x1e4d:
+ case 0x1e4f:
+ case 0x1e51:
+ case 0x1e53:
+ case 0x1ecd:
+ case 0x1ecf:
+ case 0x1ed1:
+ case 0x1ed3:
+ case 0x1ed5:
+ case 0x1ed7:
+ case 0x1ed9:
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e72:
+ case 0x1e74:
+ case 0x1e76:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee4:
+ case 0x1ee6:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e73:
+ case 0x1e75:
+ case 0x1e77:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee5:
+ case 0x1ee7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0323:
+ switch (p)
+ {
+ case 0x0042:
+ case 0x1e02:
+ case 0x0062:
+ case 0x1e03:
+ case 0x0044:
+ case 0x010e:
+ case 0x1e0a:
+ case 0x0064:
+ case 0x010f:
+ case 0x1e0b:
+ case 0x0048:
+ case 0x0124:
+ case 0x021e:
+ case 0x1e22:
+ case 0x1e26:
+ case 0x0068:
+ case 0x0125:
+ case 0x021f:
+ case 0x1e23:
+ case 0x1e27:
+ case 0x004b:
+ case 0x01e8:
+ case 0x1e30:
+ case 0x006b:
+ case 0x01e9:
+ case 0x1e31:
+ case 0x004c:
+ case 0x0139:
+ case 0x013d:
+ case 0x006c:
+ case 0x013a:
+ case 0x013e:
+ case 0x004d:
+ case 0x1e3e:
+ case 0x1e40:
+ case 0x006d:
+ case 0x1e3f:
+ case 0x1e41:
+ case 0x004e:
+ case 0x00d1:
+ case 0x0143:
+ case 0x0147:
+ case 0x01f8:
+ case 0x1e44:
+ case 0x006e:
+ case 0x00f1:
+ case 0x0144:
+ case 0x0148:
+ case 0x01f9:
+ case 0x1e45:
+ case 0x0052:
+ case 0x0154:
+ case 0x0158:
+ case 0x0210:
+ case 0x0212:
+ case 0x1e58:
+ case 0x0072:
+ case 0x0155:
+ case 0x0159:
+ case 0x0211:
+ case 0x0213:
+ case 0x1e59:
+ case 0x0053:
+ case 0x015a:
+ case 0x015c:
+ case 0x0160:
+ case 0x1e60:
+ case 0x1e64:
+ case 0x1e66:
+ case 0x0073:
+ case 0x015b:
+ case 0x015d:
+ case 0x0161:
+ case 0x1e61:
+ case 0x1e65:
+ case 0x1e67:
+ case 0x0054:
+ case 0x0164:
+ case 0x1e6a:
+ case 0x0074:
+ case 0x0165:
+ case 0x1e6b:
+ case 0x1e97:
+ case 0x0056:
+ case 0x1e7c:
+ case 0x0076:
+ case 0x1e7d:
+ case 0x0057:
+ case 0x0174:
+ case 0x1e80:
+ case 0x1e82:
+ case 0x1e84:
+ case 0x1e86:
+ case 0x0077:
+ case 0x0175:
+ case 0x1e81:
+ case 0x1e83:
+ case 0x1e85:
+ case 0x1e87:
+ case 0x1e98:
+ case 0x005a:
+ case 0x0179:
+ case 0x017b:
+ case 0x017d:
+ case 0x1e90:
+ case 0x007a:
+ case 0x017a:
+ case 0x017c:
+ case 0x017e:
+ case 0x1e91:
+ case 0x0041:
+ case 0x00c0:
+ case 0x00c1:
+ case 0x00c2:
+ case 0x00c3:
+ case 0x00c4:
+ case 0x00c5:
+ case 0x0100:
+ case 0x0102:
+ case 0x01cd:
+ case 0x01de:
+ case 0x01e0:
+ case 0x01fa:
+ case 0x0200:
+ case 0x0202:
+ case 0x0226:
+ case 0x1ea2:
+ case 0x1ea4:
+ case 0x1ea6:
+ case 0x1ea8:
+ case 0x1eaa:
+ case 0x1eae:
+ case 0x1eb0:
+ case 0x1eb2:
+ case 0x1eb4:
+ case 0x0061:
+ case 0x00e0:
+ case 0x00e1:
+ case 0x00e2:
+ case 0x00e3:
+ case 0x00e4:
+ case 0x00e5:
+ case 0x0101:
+ case 0x0103:
+ case 0x01ce:
+ case 0x01df:
+ case 0x01e1:
+ case 0x01fb:
+ case 0x0201:
+ case 0x0203:
+ case 0x0227:
+ case 0x1ea3:
+ case 0x1ea5:
+ case 0x1ea7:
+ case 0x1ea9:
+ case 0x1eab:
+ case 0x1eaf:
+ case 0x1eb1:
+ case 0x1eb3:
+ case 0x1eb5:
+ case 0x0045:
+ case 0x00c8:
+ case 0x00c9:
+ case 0x00ca:
+ case 0x00cb:
+ case 0x0112:
+ case 0x0114:
+ case 0x0116:
+ case 0x011a:
+ case 0x0204:
+ case 0x0206:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x0065:
+ case 0x00e8:
+ case 0x00e9:
+ case 0x00ea:
+ case 0x00eb:
+ case 0x0113:
+ case 0x0115:
+ case 0x0117:
+ case 0x011b:
+ case 0x0205:
+ case 0x0207:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x0049:
+ case 0x00cc:
+ case 0x00cd:
+ case 0x00ce:
+ case 0x00cf:
+ case 0x0128:
+ case 0x012a:
+ case 0x012c:
+ case 0x0130:
+ case 0x01cf:
+ case 0x0208:
+ case 0x020a:
+ case 0x1e2e:
+ case 0x1ec8:
+ case 0x0069:
+ case 0x00ec:
+ case 0x00ed:
+ case 0x00ee:
+ case 0x00ef:
+ case 0x0129:
+ case 0x012b:
+ case 0x012d:
+ case 0x01d0:
+ case 0x0209:
+ case 0x020b:
+ case 0x1e2f:
+ case 0x1ec9:
+ case 0x004f:
+ case 0x00d2:
+ case 0x00d3:
+ case 0x00d4:
+ case 0x00d5:
+ case 0x00d6:
+ case 0x014c:
+ case 0x014e:
+ case 0x0150:
+ case 0x01d1:
+ case 0x020c:
+ case 0x020e:
+ case 0x022a:
+ case 0x022c:
+ case 0x022e:
+ case 0x0230:
+ case 0x1e4c:
+ case 0x1e4e:
+ case 0x1e50:
+ case 0x1e52:
+ case 0x1ece:
+ case 0x1ed0:
+ case 0x1ed2:
+ case 0x1ed4:
+ case 0x1ed6:
+ case 0x006f:
+ case 0x00f2:
+ case 0x00f3:
+ case 0x00f4:
+ case 0x00f5:
+ case 0x00f6:
+ case 0x014d:
+ case 0x014f:
+ case 0x0151:
+ case 0x01d2:
+ case 0x020d:
+ case 0x020f:
+ case 0x022b:
+ case 0x022d:
+ case 0x022f:
+ case 0x0231:
+ case 0x1e4d:
+ case 0x1e4f:
+ case 0x1e51:
+ case 0x1e53:
+ case 0x1ecf:
+ case 0x1ed1:
+ case 0x1ed3:
+ case 0x1ed5:
+ case 0x1ed7:
+ case 0x01a0:
+ case 0x1eda:
+ case 0x1edc:
+ case 0x1ede:
+ case 0x1ee0:
+ case 0x01a1:
+ case 0x1edb:
+ case 0x1edd:
+ case 0x1edf:
+ case 0x1ee1:
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee6:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee7:
+ case 0x01af:
+ case 0x1ee8:
+ case 0x1eea:
+ case 0x1eec:
+ case 0x1eee:
+ case 0x01b0:
+ case 0x1ee9:
+ case 0x1eeb:
+ case 0x1eed:
+ case 0x1eef:
+ case 0x0059:
+ case 0x00dd:
+ case 0x0176:
+ case 0x0178:
+ case 0x0232:
+ case 0x1e8e:
+ case 0x1ef2:
+ case 0x1ef6:
+ case 0x1ef8:
+ case 0x0079:
+ case 0x00fd:
+ case 0x00ff:
+ case 0x0177:
+ case 0x0233:
+ case 0x1e8f:
+ case 0x1e99:
+ case 0x1ef3:
+ case 0x1ef7:
+ case 0x1ef9:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0324:
+ switch (p)
+ {
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee6:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0325:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x00c0:
+ case 0x00c1:
+ case 0x00c2:
+ case 0x00c3:
+ case 0x00c4:
+ case 0x00c5:
+ case 0x0100:
+ case 0x0102:
+ case 0x01cd:
+ case 0x01de:
+ case 0x01e0:
+ case 0x01fa:
+ case 0x0200:
+ case 0x0202:
+ case 0x0226:
+ case 0x1ea2:
+ case 0x1ea4:
+ case 0x1ea6:
+ case 0x1ea8:
+ case 0x1eaa:
+ case 0x1eae:
+ case 0x1eb0:
+ case 0x1eb2:
+ case 0x1eb4:
+ case 0x0061:
+ case 0x00e0:
+ case 0x00e1:
+ case 0x00e2:
+ case 0x00e3:
+ case 0x00e4:
+ case 0x00e5:
+ case 0x0101:
+ case 0x0103:
+ case 0x01ce:
+ case 0x01df:
+ case 0x01e1:
+ case 0x01fb:
+ case 0x0201:
+ case 0x0203:
+ case 0x0227:
+ case 0x1ea3:
+ case 0x1ea5:
+ case 0x1ea7:
+ case 0x1ea9:
+ case 0x1eab:
+ case 0x1eaf:
+ case 0x1eb1:
+ case 0x1eb3:
+ case 0x1eb5:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0326:
+ switch (p)
+ {
+ case 0x0053:
+ case 0x015a:
+ case 0x015c:
+ case 0x0160:
+ case 0x1e60:
+ case 0x1e64:
+ case 0x1e66:
+ case 0x0073:
+ case 0x015b:
+ case 0x015d:
+ case 0x0161:
+ case 0x1e61:
+ case 0x1e65:
+ case 0x1e67:
+ case 0x0054:
+ case 0x0164:
+ case 0x1e6a:
+ case 0x0074:
+ case 0x0165:
+ case 0x1e6b:
+ case 0x1e97:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0327:
+ switch (p)
+ {
+ case 0x0043:
+ case 0x0106:
+ case 0x0108:
+ case 0x010a:
+ case 0x010c:
+ case 0x0063:
+ case 0x0107:
+ case 0x0109:
+ case 0x010b:
+ case 0x010d:
+ case 0x0047:
+ case 0x011c:
+ case 0x011e:
+ case 0x0120:
+ case 0x01e6:
+ case 0x01f4:
+ case 0x1e20:
+ case 0x0067:
+ case 0x011d:
+ case 0x011f:
+ case 0x0121:
+ case 0x01e7:
+ case 0x01f5:
+ case 0x1e21:
+ case 0x004b:
+ case 0x01e8:
+ case 0x1e30:
+ case 0x1e32:
+ case 0x1e34:
+ case 0x006b:
+ case 0x01e9:
+ case 0x1e31:
+ case 0x1e33:
+ case 0x1e35:
+ case 0x004c:
+ case 0x0139:
+ case 0x013d:
+ case 0x1e36:
+ case 0x1e38:
+ case 0x1e3a:
+ case 0x1e3c:
+ case 0x006c:
+ case 0x013a:
+ case 0x013e:
+ case 0x1e37:
+ case 0x1e39:
+ case 0x1e3b:
+ case 0x1e3d:
+ case 0x004e:
+ case 0x00d1:
+ case 0x0143:
+ case 0x0147:
+ case 0x01f8:
+ case 0x1e44:
+ case 0x1e46:
+ case 0x1e48:
+ case 0x1e4a:
+ case 0x006e:
+ case 0x00f1:
+ case 0x0144:
+ case 0x0148:
+ case 0x01f9:
+ case 0x1e45:
+ case 0x1e47:
+ case 0x1e49:
+ case 0x1e4b:
+ case 0x0052:
+ case 0x0154:
+ case 0x0158:
+ case 0x0210:
+ case 0x0212:
+ case 0x1e58:
+ case 0x1e5a:
+ case 0x1e5c:
+ case 0x1e5e:
+ case 0x0072:
+ case 0x0155:
+ case 0x0159:
+ case 0x0211:
+ case 0x0213:
+ case 0x1e59:
+ case 0x1e5b:
+ case 0x1e5d:
+ case 0x1e5f:
+ case 0x0053:
+ case 0x015a:
+ case 0x015c:
+ case 0x0160:
+ case 0x0218:
+ case 0x1e60:
+ case 0x1e62:
+ case 0x1e64:
+ case 0x1e66:
+ case 0x1e68:
+ case 0x0073:
+ case 0x015b:
+ case 0x015d:
+ case 0x0161:
+ case 0x0219:
+ case 0x1e61:
+ case 0x1e63:
+ case 0x1e65:
+ case 0x1e67:
+ case 0x1e69:
+ case 0x0054:
+ case 0x0164:
+ case 0x021a:
+ case 0x1e6a:
+ case 0x1e6c:
+ case 0x1e6e:
+ case 0x1e70:
+ case 0x0074:
+ case 0x0165:
+ case 0x021b:
+ case 0x1e6b:
+ case 0x1e6d:
+ case 0x1e6f:
+ case 0x1e71:
+ case 0x1e97:
+ case 0x0045:
+ case 0x00c8:
+ case 0x00c9:
+ case 0x00ca:
+ case 0x00cb:
+ case 0x0112:
+ case 0x0114:
+ case 0x0116:
+ case 0x011a:
+ case 0x0204:
+ case 0x0206:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1e18:
+ case 0x1e1a:
+ case 0x1eb8:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x1ec6:
+ case 0x0065:
+ case 0x00e8:
+ case 0x00e9:
+ case 0x00ea:
+ case 0x00eb:
+ case 0x0113:
+ case 0x0115:
+ case 0x0117:
+ case 0x011b:
+ case 0x0205:
+ case 0x0207:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1e19:
+ case 0x1e1b:
+ case 0x1eb9:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x1ec7:
+ case 0x0044:
+ case 0x010e:
+ case 0x1e0a:
+ case 0x1e0c:
+ case 0x1e0e:
+ case 0x1e12:
+ case 0x0064:
+ case 0x010f:
+ case 0x1e0b:
+ case 0x1e0d:
+ case 0x1e0f:
+ case 0x1e13:
+ case 0x0048:
+ case 0x0124:
+ case 0x021e:
+ case 0x1e22:
+ case 0x1e24:
+ case 0x1e26:
+ case 0x1e2a:
+ case 0x0068:
+ case 0x0125:
+ case 0x021f:
+ case 0x1e23:
+ case 0x1e25:
+ case 0x1e27:
+ case 0x1e2b:
+ case 0x1e96:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0328:
+ switch (p)
+ {
+ case 0x0041:
+ case 0x00c0:
+ case 0x00c1:
+ case 0x00c2:
+ case 0x00c3:
+ case 0x00c4:
+ case 0x00c5:
+ case 0x0100:
+ case 0x0102:
+ case 0x01cd:
+ case 0x01de:
+ case 0x01e0:
+ case 0x01fa:
+ case 0x0200:
+ case 0x0202:
+ case 0x0226:
+ case 0x1e00:
+ case 0x1ea0:
+ case 0x1ea2:
+ case 0x1ea4:
+ case 0x1ea6:
+ case 0x1ea8:
+ case 0x1eaa:
+ case 0x1eac:
+ case 0x1eae:
+ case 0x1eb0:
+ case 0x1eb2:
+ case 0x1eb4:
+ case 0x1eb6:
+ case 0x0061:
+ case 0x00e0:
+ case 0x00e1:
+ case 0x00e2:
+ case 0x00e3:
+ case 0x00e4:
+ case 0x00e5:
+ case 0x0101:
+ case 0x0103:
+ case 0x01ce:
+ case 0x01df:
+ case 0x01e1:
+ case 0x01fb:
+ case 0x0201:
+ case 0x0203:
+ case 0x0227:
+ case 0x1e01:
+ case 0x1ea1:
+ case 0x1ea3:
+ case 0x1ea5:
+ case 0x1ea7:
+ case 0x1ea9:
+ case 0x1eab:
+ case 0x1ead:
+ case 0x1eaf:
+ case 0x1eb1:
+ case 0x1eb3:
+ case 0x1eb5:
+ case 0x1eb7:
+ case 0x0045:
+ case 0x00c8:
+ case 0x00c9:
+ case 0x00ca:
+ case 0x00cb:
+ case 0x0112:
+ case 0x0114:
+ case 0x0116:
+ case 0x011a:
+ case 0x0204:
+ case 0x0206:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1e18:
+ case 0x1e1a:
+ case 0x1eb8:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x1ec6:
+ case 0x0065:
+ case 0x00e8:
+ case 0x00e9:
+ case 0x00ea:
+ case 0x00eb:
+ case 0x0113:
+ case 0x0115:
+ case 0x0117:
+ case 0x011b:
+ case 0x0205:
+ case 0x0207:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1e19:
+ case 0x1e1b:
+ case 0x1eb9:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x1ec7:
+ case 0x0049:
+ case 0x00cc:
+ case 0x00cd:
+ case 0x00ce:
+ case 0x00cf:
+ case 0x0128:
+ case 0x012a:
+ case 0x012c:
+ case 0x0130:
+ case 0x01cf:
+ case 0x0208:
+ case 0x020a:
+ case 0x1e2c:
+ case 0x1e2e:
+ case 0x1ec8:
+ case 0x1eca:
+ case 0x0069:
+ case 0x00ec:
+ case 0x00ed:
+ case 0x00ee:
+ case 0x00ef:
+ case 0x0129:
+ case 0x012b:
+ case 0x012d:
+ case 0x01d0:
+ case 0x0209:
+ case 0x020b:
+ case 0x1e2d:
+ case 0x1e2f:
+ case 0x1ec9:
+ case 0x1ecb:
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01af:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e72:
+ case 0x1e74:
+ case 0x1e76:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee4:
+ case 0x1ee6:
+ case 0x1ee8:
+ case 0x1eea:
+ case 0x1eec:
+ case 0x1eee:
+ case 0x1ef0:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01b0:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e73:
+ case 0x1e75:
+ case 0x1e77:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee5:
+ case 0x1ee7:
+ case 0x1ee9:
+ case 0x1eeb:
+ case 0x1eed:
+ case 0x1eef:
+ case 0x1ef1:
+ case 0x004f:
+ case 0x00d2:
+ case 0x00d3:
+ case 0x00d4:
+ case 0x00d5:
+ case 0x00d6:
+ case 0x014c:
+ case 0x014e:
+ case 0x0150:
+ case 0x01a0:
+ case 0x01d1:
+ case 0x020c:
+ case 0x020e:
+ case 0x022a:
+ case 0x022c:
+ case 0x022e:
+ case 0x0230:
+ case 0x1e4c:
+ case 0x1e4e:
+ case 0x1e50:
+ case 0x1e52:
+ case 0x1ecc:
+ case 0x1ece:
+ case 0x1ed0:
+ case 0x1ed2:
+ case 0x1ed4:
+ case 0x1ed6:
+ case 0x1ed8:
+ case 0x1eda:
+ case 0x1edc:
+ case 0x1ede:
+ case 0x1ee0:
+ case 0x1ee2:
+ case 0x006f:
+ case 0x00f2:
+ case 0x00f3:
+ case 0x00f4:
+ case 0x00f5:
+ case 0x00f6:
+ case 0x014d:
+ case 0x014f:
+ case 0x0151:
+ case 0x01a1:
+ case 0x01d2:
+ case 0x020d:
+ case 0x020f:
+ case 0x022b:
+ case 0x022d:
+ case 0x022f:
+ case 0x0231:
+ case 0x1e4d:
+ case 0x1e4f:
+ case 0x1e51:
+ case 0x1e53:
+ case 0x1ecd:
+ case 0x1ecf:
+ case 0x1ed1:
+ case 0x1ed3:
+ case 0x1ed5:
+ case 0x1ed7:
+ case 0x1ed9:
+ case 0x1edb:
+ case 0x1edd:
+ case 0x1edf:
+ case 0x1ee1:
+ case 0x1ee3:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x032d:
+ switch (p)
+ {
+ case 0x0044:
+ case 0x010e:
+ case 0x1e0a:
+ case 0x0064:
+ case 0x010f:
+ case 0x1e0b:
+ case 0x0045:
+ case 0x00c8:
+ case 0x00c9:
+ case 0x00ca:
+ case 0x00cb:
+ case 0x0112:
+ case 0x0114:
+ case 0x0116:
+ case 0x011a:
+ case 0x0204:
+ case 0x0206:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x0065:
+ case 0x00e8:
+ case 0x00e9:
+ case 0x00ea:
+ case 0x00eb:
+ case 0x0113:
+ case 0x0115:
+ case 0x0117:
+ case 0x011b:
+ case 0x0205:
+ case 0x0207:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x004c:
+ case 0x0139:
+ case 0x013d:
+ case 0x006c:
+ case 0x013a:
+ case 0x013e:
+ case 0x004e:
+ case 0x00d1:
+ case 0x0143:
+ case 0x0147:
+ case 0x01f8:
+ case 0x1e44:
+ case 0x006e:
+ case 0x00f1:
+ case 0x0144:
+ case 0x0148:
+ case 0x01f9:
+ case 0x1e45:
+ case 0x0054:
+ case 0x0164:
+ case 0x1e6a:
+ case 0x0074:
+ case 0x0165:
+ case 0x1e6b:
+ case 0x1e97:
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee6:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x032e:
+ switch (p)
+ {
+ case 0x0048:
+ case 0x0124:
+ case 0x021e:
+ case 0x1e22:
+ case 0x1e26:
+ case 0x0068:
+ case 0x0125:
+ case 0x021f:
+ case 0x1e23:
+ case 0x1e27:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0330:
+ switch (p)
+ {
+ case 0x0045:
+ case 0x00c8:
+ case 0x00c9:
+ case 0x00ca:
+ case 0x00cb:
+ case 0x0112:
+ case 0x0114:
+ case 0x0116:
+ case 0x011a:
+ case 0x0204:
+ case 0x0206:
+ case 0x1e14:
+ case 0x1e16:
+ case 0x1eba:
+ case 0x1ebc:
+ case 0x1ebe:
+ case 0x1ec0:
+ case 0x1ec2:
+ case 0x1ec4:
+ case 0x0065:
+ case 0x00e8:
+ case 0x00e9:
+ case 0x00ea:
+ case 0x00eb:
+ case 0x0113:
+ case 0x0115:
+ case 0x0117:
+ case 0x011b:
+ case 0x0205:
+ case 0x0207:
+ case 0x1e15:
+ case 0x1e17:
+ case 0x1ebb:
+ case 0x1ebd:
+ case 0x1ebf:
+ case 0x1ec1:
+ case 0x1ec3:
+ case 0x1ec5:
+ case 0x0049:
+ case 0x00cc:
+ case 0x00cd:
+ case 0x00ce:
+ case 0x00cf:
+ case 0x0128:
+ case 0x012a:
+ case 0x012c:
+ case 0x0130:
+ case 0x01cf:
+ case 0x0208:
+ case 0x020a:
+ case 0x1e2e:
+ case 0x1ec8:
+ case 0x0069:
+ case 0x00ec:
+ case 0x00ed:
+ case 0x00ee:
+ case 0x00ef:
+ case 0x0129:
+ case 0x012b:
+ case 0x012d:
+ case 0x01d0:
+ case 0x0209:
+ case 0x020b:
+ case 0x1e2f:
+ case 0x1ec9:
+ case 0x0055:
+ case 0x00d9:
+ case 0x00da:
+ case 0x00db:
+ case 0x00dc:
+ case 0x0168:
+ case 0x016a:
+ case 0x016c:
+ case 0x016e:
+ case 0x0170:
+ case 0x01d3:
+ case 0x01d5:
+ case 0x01d7:
+ case 0x01d9:
+ case 0x01db:
+ case 0x0214:
+ case 0x0216:
+ case 0x1e78:
+ case 0x1e7a:
+ case 0x1ee6:
+ case 0x0075:
+ case 0x00f9:
+ case 0x00fa:
+ case 0x00fb:
+ case 0x00fc:
+ case 0x0169:
+ case 0x016b:
+ case 0x016d:
+ case 0x016f:
+ case 0x0171:
+ case 0x01d4:
+ case 0x01d6:
+ case 0x01d8:
+ case 0x01da:
+ case 0x01dc:
+ case 0x0215:
+ case 0x0217:
+ case 0x1e79:
+ case 0x1e7b:
+ case 0x1ee7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0331:
+ switch (p)
+ {
+ case 0x0042:
+ case 0x1e02:
+ case 0x0062:
+ case 0x1e03:
+ case 0x0044:
+ case 0x010e:
+ case 0x1e0a:
+ case 0x0064:
+ case 0x010f:
+ case 0x1e0b:
+ case 0x004b:
+ case 0x01e8:
+ case 0x1e30:
+ case 0x006b:
+ case 0x01e9:
+ case 0x1e31:
+ case 0x004c:
+ case 0x0139:
+ case 0x013d:
+ case 0x006c:
+ case 0x013a:
+ case 0x013e:
+ case 0x004e:
+ case 0x00d1:
+ case 0x0143:
+ case 0x0147:
+ case 0x01f8:
+ case 0x1e44:
+ case 0x006e:
+ case 0x00f1:
+ case 0x0144:
+ case 0x0148:
+ case 0x01f9:
+ case 0x1e45:
+ case 0x0052:
+ case 0x0154:
+ case 0x0158:
+ case 0x0210:
+ case 0x0212:
+ case 0x1e58:
+ case 0x0072:
+ case 0x0155:
+ case 0x0159:
+ case 0x0211:
+ case 0x0213:
+ case 0x1e59:
+ case 0x0054:
+ case 0x0164:
+ case 0x1e6a:
+ case 0x0074:
+ case 0x0165:
+ case 0x1e6b:
+ case 0x1e97:
+ case 0x005a:
+ case 0x0179:
+ case 0x017b:
+ case 0x017d:
+ case 0x1e90:
+ case 0x007a:
+ case 0x017a:
+ case 0x017c:
+ case 0x017e:
+ case 0x1e91:
+ case 0x0068:
+ case 0x0125:
+ case 0x021f:
+ case 0x1e23:
+ case 0x1e27:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0338:
+ switch (p)
+ {
+ /* Non-NFC cases not applicable to C/C++. */
+ default:
+ return true;
+ }
+
+ case 0x0342:
+ switch (p)
+ {
+ case 0x1f00:
+ case 0x1f80:
+ case 0x1f01:
+ case 0x1f81:
+ case 0x1f08:
+ case 0x1f88:
+ case 0x1f09:
+ case 0x1f89:
+ case 0x1f20:
+ case 0x1f90:
+ case 0x1f21:
+ case 0x1f91:
+ case 0x1f28:
+ case 0x1f98:
+ case 0x1f29:
+ case 0x1f99:
+ case 0x1f30:
+ case 0x1f31:
+ case 0x1f38:
+ case 0x1f39:
+ case 0x1f50:
+ case 0x1f51:
+ case 0x1f59:
+ case 0x1f60:
+ case 0x1fa0:
+ case 0x1f61:
+ case 0x1fa1:
+ case 0x1f68:
+ case 0x1fa8:
+ case 0x1f69:
+ case 0x1fa9:
+ case 0x03b1:
+ case 0x1fb3:
+ case 0x00a8:
+ case 0x03b7:
+ case 0x1fc3:
+ case 0x1fbf:
+ case 0x03b9:
+ case 0x03ca:
+ case 0x1ffe:
+ case 0x03c5:
+ case 0x03cb:
+ case 0x03c9:
+ case 0x1ff3:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0345:
+ switch (p)
+ {
+ case 0x1f00:
+ case 0x1f01:
+ case 0x1f02:
+ case 0x1f03:
+ case 0x1f04:
+ case 0x1f05:
+ case 0x1f06:
+ case 0x1f07:
+ case 0x1f08:
+ case 0x1f09:
+ case 0x1f0a:
+ case 0x1f0b:
+ case 0x1f0c:
+ case 0x1f0d:
+ case 0x1f0e:
+ case 0x1f0f:
+ case 0x1f20:
+ case 0x1f21:
+ case 0x1f22:
+ case 0x1f23:
+ case 0x1f24:
+ case 0x1f25:
+ case 0x1f26:
+ case 0x1f27:
+ case 0x1f28:
+ case 0x1f29:
+ case 0x1f2a:
+ case 0x1f2b:
+ case 0x1f2c:
+ case 0x1f2d:
+ case 0x1f2e:
+ case 0x1f2f:
+ case 0x1f60:
+ case 0x1f61:
+ case 0x1f62:
+ case 0x1f63:
+ case 0x1f64:
+ case 0x1f65:
+ case 0x1f66:
+ case 0x1f67:
+ case 0x1f68:
+ case 0x1f69:
+ case 0x1f6a:
+ case 0x1f6b:
+ case 0x1f6c:
+ case 0x1f6d:
+ case 0x1f6e:
+ case 0x1f6f:
+ case 0x1f70:
+ case 0x03b1:
+ case 0x03ac:
+ case 0x1fb6:
+ case 0x0391:
+ case 0x1f74:
+ case 0x03b7:
+ case 0x03ae:
+ case 0x1fc6:
+ case 0x0397:
+ case 0x1f7c:
+ case 0x03c9:
+ case 0x03ce:
+ case 0x1ff6:
+ case 0x03a9:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0653:
+ switch (p)
+ {
+ case 0x0627:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0654:
+ switch (p)
+ {
+ case 0x0627:
+ case 0x0648:
+ case 0x064a:
+ case 0x06d5:
+ case 0x06c1:
+ case 0x06d2:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0655:
+ switch (p)
+ {
+ case 0x0627:
+ case 0x0622:
+ case 0x0623:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x093c:
+ switch (p)
+ {
+ case 0x0928:
+ case 0x0930:
+ case 0x0933:
+ case 0x0915:
+ case 0x0916:
+ case 0x0917:
+ case 0x091c:
+ case 0x0921:
+ case 0x0922:
+ case 0x092b:
+ case 0x092f:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x09be:
+ switch (p)
+ {
+ case 0x09c7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x09d7:
+ switch (p)
+ {
+ case 0x09c7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0b3e:
+ switch (p)
+ {
+ case 0x0b47:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0b56:
+ switch (p)
+ {
+ case 0x0b47:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0b57:
+ switch (p)
+ {
+ case 0x0b47:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0bbe:
+ switch (p)
+ {
+ case 0x0bc6:
+ case 0x0bc7:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0bd7:
+ switch (p)
+ {
+ case 0x0b92:
+ case 0x0bc6:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0c56:
+ switch (p)
+ {
+ case 0x0c46:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0cc2:
+ switch (p)
+ {
+ case 0x0cc6:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0cd5:
+ switch (p)
+ {
+ case 0x0cbf:
+ case 0x0cc6:
+ case 0x0cca:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0cd6:
+ switch (p)
+ {
+ case 0x0cc6:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0d3e:
+ switch (p)
+ {
+ case 0x0d46:
+ case 0x0d47:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0d57:
+ switch (p)
+ {
+ case 0x0d46:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0dca:
+ switch (p)
+ {
+ case 0x0dd9:
+ case 0x0ddc:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0dcf:
+ switch (p)
+ {
+ case 0x0dd9:
+ case 0x0dda:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x0ddf:
+ switch (p)
+ {
+ case 0x0dd9:
+ case 0x0dda:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x102e:
+ switch (p)
+ {
+ case 0x1025:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x1b35:
+ switch (p)
+ {
+ case 0x1b05:
+ case 0x1b07:
+ case 0x1b09:
+ case 0x1b0b:
+ case 0x1b0d:
+ case 0x1b11:
+ case 0x1b3a:
+ case 0x1b3c:
+ case 0x1b3e:
+ case 0x1b3f:
+ case 0x1b42:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x3099:
+ switch (p)
+ {
+ case 0x304b:
+ case 0x304d:
+ case 0x304f:
+ case 0x3051:
+ case 0x3053:
+ case 0x3055:
+ case 0x3057:
+ case 0x3059:
+ case 0x305b:
+ case 0x305d:
+ case 0x305f:
+ case 0x3061:
+ case 0x3064:
+ case 0x3066:
+ case 0x3068:
+ case 0x306f:
+ case 0x3072:
+ case 0x3075:
+ case 0x3078:
+ case 0x307b:
+ case 0x3046:
+ case 0x309d:
+ case 0x30ab:
+ case 0x30ad:
+ case 0x30af:
+ case 0x30b1:
+ case 0x30b3:
+ case 0x30b5:
+ case 0x30b7:
+ case 0x30b9:
+ case 0x30bb:
+ case 0x30bd:
+ case 0x30bf:
+ case 0x30c1:
+ case 0x30c4:
+ case 0x30c6:
+ case 0x30c8:
+ case 0x30cf:
+ case 0x30d2:
+ case 0x30d5:
+ case 0x30d8:
+ case 0x30db:
+ case 0x30a6:
+ case 0x30ef:
+ case 0x30f0:
+ case 0x30f1:
+ case 0x30f2:
+ case 0x30fd:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x309a:
+ switch (p)
+ {
+ case 0x306f:
+ case 0x3072:
+ case 0x3075:
+ case 0x3078:
+ case 0x307b:
+ case 0x30cf:
+ case 0x30d2:
+ case 0x30d5:
+ case 0x30d8:
+ case 0x30db:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x110ba:
+ switch (p)
+ {
+ case 0x11099:
+ case 0x1109b:
+ case 0x110a5:
+ return false;
+ default:
+ return true;
+ }
+
+ case 0x11127:
+ switch (p)
+ {
+ case 0x11131:
+ case 0x11132:
+ return false;
+ default:
+ return true;
+ }
+
+ default:
+ cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
+ return true;
+ }
+}
diff --git a/gcc-4.9/libcpp/ucnid.tab b/gcc-4.9/libcpp/ucnid.tab
new file mode 100644
index 000000000..9910bd44b
--- /dev/null
+++ b/gcc-4.9/libcpp/ucnid.tab
@@ -0,0 +1,243 @@
+; Table of UCNs which are valid in identifiers.
+; Copyright (C) 2003-2014 Free Software Foundation, Inc.
+;
+; This program is free software; you can redistribute it and/or modify it
+; under the terms of the GNU General Public License as published by the
+; Free Software Foundation; either version 3, or (at your option) any
+; later version.
+;
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this program; see the file COPYING3. If not see
+; <http://www.gnu.org/licenses/>.
+;
+; This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
+; D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
+; the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
+; a reproduction of ISO/IEC PDTR 10176. Unfortunately these tables
+; are not identical. It also reproduces the somewhat different tables
+; in C11 and C++11, which are identical to each other.
+
+[C99]
+
+; Latin
+00aa 00ba 00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9b
+1ea0-1ef9 207f
+
+; Greek
+0386 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0
+03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
+1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3
+1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
+
+; Cyrillic
+0401-040c 040e-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
+04d0-04eb 04ee-04f5 04f8-04f9
+
+; Armenian
+0531-0556 0561-0587
+
+; Hebrew
+05b0-05b9 05bb-05bd 05bf 05c1-05c2 05d0-05ea 05f0-05f2
+
+; Arabic
+0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06d0-06dc 06e5-06e8
+06ea-06ed
+
+; Devanagari
+0901-0903 0905-0939 093e-094d 0950-0952 0958-0963
+
+; Bengali
+0981-0983 0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9
+09be-09c4 09c7-09c8 09cb-09cd 09dc-09dd 09df-09e3 09f0-09f1
+
+; Gurmukhi
+0a02 0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36
+0a38-0a39 0a3e-0a42 0a47-0a48 0a4b-0a4d 0a59-0a5c 0a5e 0a74
+
+; Gujarati
+0a81-0a83 0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3
+0ab5-0ab9 0abd-0ac5 0ac7-0ac9 0acb-0acd 0ad0 0ae0
+
+; Oriya
+0b01-0b03 0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39
+0b3e-0b43 0b47-0b48 0b4b-0b4d 0b5c-0b5d 0b5f-0b61
+
+; Tamil
+0b82-0b83 0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f
+0ba3-0ba4 0ba8-0baa 0bae-0bb5 0bb7-0bb9 0bbe-0bc2 0bc6-0bc8 0bca-0bcd
+
+; Telugu
+0c01-0c03 0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c3e-0c44
+0c46-0c48 0c4a-0c4d 0c60-0c61
+
+; Kannada
+0c82-0c83 0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0cbe-0cc4
+0cc6-0cc8 0cca-0ccd 0cde 0ce0-0ce1
+
+; Malayalam
+0d02-0d03 0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d3e-0d43 0d46-0d48
+0d4a-0d4d 0d60-0d61
+
+# CORRECTION: exclude 0e50-0e59 from the Thai range as it also appears
+# in the Digits range below.
+; Thai
+0e01-0e3a 0e40-0e49 0e5a-0e5b
+
+; Lao
+0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
+0ea7 0eaa-0eab 0ead-0eae 0eb0-0eb9 0ebb-0ebd 0ec0-0ec4 0ec6 0ec8-0ecd
+0edc-0edd
+
+; Tibetan
+0f00 0f18-0f19 0f35 0f37 0f39 0f3e-0f47 0f49-0f69 0f71-0f84 0f86-0f8b
+0f90-0f95 0f97 0f99-0fad 0fb1-0fb7 0fb9
+
+; Georgian
+10a0-10c5 10d0-10f6
+
+; Hiragana
+3041-3093 309b-309c
+
+; Katakana
+30a1-30f6 30fb-30fc
+
+; Bopomofo
+3105-312c
+
+; CJK Unified Ideographs
+4e00-9fa5
+
+; Hangul
+ac00-d7a3
+
+; Special characters
+00b5 00b7 02b0-02b8 02bb 02bd-02c1 02d0-02d1 02e0-02e4 037a 0559 093d
+0b3d 1fbe 203f-2040 2102 2107 210a-2113 2115 2118-211d 2124 2126 2128
+212a-2131 2133-2138 2160-2182 3005-3007 3021-3029
+
+[C99DIG]
+0660-0669 06f0-06f9 0966-096f 09e6-09ef 0a66-0a6f 0ae6-0aef 0b66-0b6f
+0be7-0bef 0c66-0c6f 0ce6-0cef 0d66-0d6f 0e50-0e59 0ed0-0ed9 0f20-0f33
+
+[CXX]
+
+; Latin
+00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9a 1ea0-1ef9
+
+; Greek
+0384 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0
+03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
+1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3
+1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
+
+; Cyrillic
+0401-040d 040f-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
+04d0-04eb 04ee-04f5 04f8-04f9
+
+; Armenian
+0531-0556 0561-0587
+
+; Hebrew
+05d0-05ea 05f0-05f4
+
+; Arabic
+0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06e5-06e7
+
+; Devanagari
+0905-0939 0958-0962
+
+; Bengali
+0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9 09dc-09dd
+09df-09e1 09f0-09f1
+
+; Gurmukhi
+0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36 0a38-0a39
+0a59-0a5c 0a5e
+
+; Gujarati
+0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3 0ab5-0ab9 0ae0
+
+; Oriya
+0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39 0b5c-0b5d
+0b5f-0b61
+
+; Tamil
+0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f 0ba3-0ba4
+0ba8-0baa 0bae-0bb5 0bb7-0bb9
+
+; Telugu
+0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c60-0c61
+
+; Kannada
+0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0ce0-0ce1
+
+; Malayalam
+0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d60-0d61
+
+; Thai
+0e01-0e30 0e32-0e33 0e40-0e46 0e4f-0e5b
+
+; Digits
+0e50-0e59
+
+; Lao
+0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
+0ea7 0eaa-0eab 0ead-0eb0 0eb2 0eb3 0ebd 0ec0-0ec4 0ec6
+
+; Georgian
+10a0-10c5 10d0-10f6
+
+; Hiragana
+3041-3094 309b-309e
+
+; Katakana
+30a1-30fe
+
+; Bopomofo
+3105-312c
+
+; Hangul
+1100-1159 1161-11a2 11a8-11f9
+
+; CJK Unified Ideographs
+f900-fa2d fb1f-fb36 fb38-fb3c fb3e fb40-fb41 fb42-fb44 fb46-fbb1
+fbd3-fd3f fd50-fd8f fd92-fdc7 fdf0-fdfb fe70-fe72 fe74 fe76-fefc
+ff21-ff3a ff41-ff5a ff66-ffbe ffc2-ffc7 ffca-ffcf ffd2-ffd7
+ffda-ffdc 4e00-9fa5
+
+[C11]
+; Group 1
+00a8 00aa 00ad 00af 00b2-00b5 00b7-00ba 00bc-00be 00c0-00d6 00d8-00f6
+00f8-00ff
+
+; Group 2, minus characters under C11NOSTART
+0100-02ff 0370-167f 1681-180d 180f-1dbf 1e00-1fff
+
+; Group 3
+200b-200d 202a-202e 203f-2040 2054 2060-206f
+
+; Group 4, minus characters under C11NOSTART
+2070-20cf 2100-218f 2460-24ff 2776-2793 2c00-2dff 2e80-2fff
+
+; Group 5
+3004-3007 3021-302f 3031-303f
+
+; Group 6
+3040-d7ff
+
+; Group 7, minus characters under C11NOSTART
+f900-fd3d fd40-fdcf fdf0-fe1f fe30-fe44 fe47-fffd
+
+; Group 8
+10000-1fffd 20000-2fffd 30000-3fffd 40000-4fffd 50000-5fffd
+60000-6fffd 70000-7fffd 80000-8fffd 90000-9fffd a0000-afffd
+b0000-bfffd c0000-cfffd d0000-dfffd e0000-efffd
+
+[C11NOSTART]
+; Group 1
+0300-036f 1dc0-1dff 20d0-20ff fe20-fe2f